Estoy leyendo el libro: " Código: el lenguaje oculto del hardware y software de la computadora " y en el Capítulo 2 el autor dice:
Se dice que el código Morse es un código binario (que significa literalmente dos por dos) porque los componentes del código consisten en solo dos cosas: un punto y un guión.
Wikipedia por otro lado dice:
Estrictamente hablando, no es binario, ya que hay cinco elementos fundamentales (ver quinario). Sin embargo, esto no significa que el código Morse no se pueda representar como un código binario. En un sentido abstracto, esta es la función que realizan los operadores de telégrafos cuando transmiten mensajes (ver quinario).
Pero, de nuevo, otra página de Wikipedia incluye el Código Morse en 'Lista de códigos binarios'.
Estoy muy confundido porque creo que el Código Morse en realidad es ternario . Tiene 3 tipos diferentes de 'posibilidades': un silencio, un pitido corto o un pitido largo.
Es imposible representar el Código Morse en 'mover binario' ¿no?
Por "binario estricto" quiero decir, piense en la secuencia de binario: 1010111101010 .. ¿Cómo se supone que represente un silencio, un pitido corto y / o un pitido largo?
La única forma en que puedo pensar es en el 'tamaño de palabra' que implementa una computadora. Si yo (y la CPU / el intérprete del código) sé que leerá 8 bits cada vez, entonces puedo representar el Código Morse. Simplemente puedo representar un pitido corto con un 1 o un pitido largo con un 0 y los silencios estarán implícitamente representados por la longitud de la palabra. (Digamos 8 bits ...) Entonces, nuevamente, tengo esta tercera variable / el tercer activo en mi mano: el tamaño de la palabra.
Mi pensamiento es así: puedo reservar los primeros 3 bits para cuántos bits se leerán, y los últimos 5 bits para el código Morse en una palabra de 8 bits. Como 00110000 significará 'A'. Y todavía estoy en 'binario' PERO necesito el tamaño de la palabra que lo hace ternario, ¿no? Los primeros 3 bits dicen: Lea solo 1 bit de los siguientes 5 bits.
En lugar de binario, si usamos trinario, podemos mostrar código morse como: 101021110102110222 etc. donde 1 es: dit 0 es: dah y 2 es silencio. Al usar 222 podemos codificar el silencio largo, por lo que si tiene una señal como * - * --- * - puede mostrarlo como: 102100022210, pero no es directamente posible usando solo con 1 y 0 A MENOS que aparezca algo como un tamaño de palabra 'fijo' como mencioné, pero bueno, esto es interpretar, no guardar el Código Morse como está en binario. Imagina algo como un piano, solo tienes los botones del piano. Desea dejar un mensaje en Código Morse para alguien y puede pintar los botones en negro. No hay forma de dejar un mensaje claro, ¿no? Necesita al menos un color más para poder poner los silencios (los que están entre caracteres y palabras. Esto es lo que quiero decir con trenary.
No estoy preguntando si puedes representar el Código Morse en 57-ary o cualquier otra cosa.
He enviado un correo electrónico al autor (Charles Petzold) sobre esto; él dice que demuestra en el Capítulo 9 del "Código" que el Código Morse puede interpretarse como un código binario.
¿Dónde me equivoco con mi pensamiento? ¿Lo que estoy leyendo en el libro es que el Código Morse es un hecho binario o no? ¿Es de alguna manera discutible? ¿Por qué se dice que el Código Morse es quinario en una página de Wikipedia, y también aparece en la página Lista de códigos binarios ?
Editar: He enviado un correo electrónico al autor y obtuve una respuesta:
-----Mensaje original-----
De: Koray Tugay [mailto: [email protected]]
Enviado: martes 3 de marzo de 2015 3:16 PM
Para: [email protected]
Asunto: ¿El código Morse es realmente binario?
Señor, ¿podría echar un vistazo a mi pregunta aquí: el Código Morse es binario, ternario o quinario? quinario?
Saludos, Koray Tugay
De: "Charles Petzold"
Para: "'Koray Tugay'"
Asunto: RE: ¿El código Morse es realmente binario? Fecha: 3
Mar 2015 23:04:35 EET
Hacia el final del Capítulo 9 en "Código" demuestro que el Código Morse puede interpretarse como un código binario.
-----Mensaje original-----
De: Koray Tugay [mailto: [email protected]]
Enviado: martes 3 de marzo de 2015 3:16 PM
Para: [email protected]
Asunto: ¿El código Morse es realmente binario?
Señor, ¿podría echar un vistazo a mi pregunta aquí: el Código Morse es binario, ternario o quinario? quinario?
Saludos, Koray Tugay
No estoy ocultando su correo electrónico, ya que es muy fácil de encontrar en la web de todos modos.
fuente
Respuestas:
El código Morse es un código ternario de prefijo (para codificar 58 caracteres) encima de un código binario de prefijo que codifica los tres símbolos.
Esta fue una respuesta mucho más corta cuando fue aceptada. Sin embargo, considerando los considerables malentendidos entre los usuarios y siguiendo una solicitud del OP, escribí esta respuesta mucho más larga. La primera sección de "cáscara de nuez" le da la esencia.
Contenido
En una cáscara de nuez (grande)
Al preguntar "¿El código Morse es binario, ternario o quinario?" no hay comparación de posibles respuestas a menos que uno arregle algunos criterios para una respuesta aceptable. De hecho, sin los criterios adecuados, uno puede idear explicaciones para casi cualquier tipo de estructura. Los criterios que he elegido son los siguientes:
debe reflejar la descripción de tres niveles del código Morse con la representación de punto / guión en el segundo nivel;
debe ajustarse a la presentación y las herramientas matemáticas desarrolladas para el análisis teórico de códigos, tanto como sea posible;
debería ser lo más simple posible;
Debería hacer evidentes las propiedades del código Morse
Esto tiene la intención de impedir la piratería arbitraria, que ignora los conceptos básicos de la teoría del código tal como se estudió científicamente, y que puede tener cierto atractivo al dar una ilusión de análisis sistemático, aunque se aborda de manera demasiado informal para ser concluyente. Se supone que este sitio trata sobre informática , no sobre programación. Deberíamos usar un mínimo de ciencia establecida y conceptos aceptados para responder una pregunta técnica.
Un análisis rápido del estándar muestra que todos los símbolos utilizados en el código Morse se codifican en última instancia en binario , ya que se transmite como una cadena de unidades de igual longitud, con una señal que puede activarse o desactivarse para cada unidad. Esto indica que los mensajes Morse finalmente están codificados en un alfabeto lógico .Σ1={0,1}
Pero eso no dice nada de la estructura interna del código. La información a codificar es una cadena en un alfabeto de 58 símbolos (según el estándar) que incluye 57 caracteres y un espacio. Esto corresponde a un alfabetoΣ3={A,B,…,Z,0,1,…,9,?,=,…,×,@,[]} , el último símbolo es el espacio.
Sin embargo, los previsto por la norma de que hay un alfabeto intermedio , sobre la base de y y posiblemente otros símbolos. Es bastante claroΣ2
dot
dash
que las cadenas en deben codificarse como cadenas en Σ ∗ 2 , yΣ∗3 Σ∗2
que las cadenas en deben codificarse como cadenas en Σ ∗ 1Σ∗2 Σ∗1
Entonces, dado que no hay opción para y Σ 3 , la pregunta debe entenderse como: " ¿Qué número de símbolos deberíamos considerar en el alfabeto intermedio Σ 2 para explicar mejor la estructura y las propiedades de todo el Morse? código " , que también implica especificar las dos codificaciones entre los tres niveles.Σ1 Σ3 Σ2
Dado el hecho de que el código Morse es un prefijo de código homomorphic (longitud variable) que se opone a cualquier ambigüedad cuando se decodifica una señal, que pueden explicar simplemente esta propiedad esencial con un ternario alfabeto { , , }, y dos esquema de codificación C 3 → 2 de Σ 3 a Σ 2 , y C 2 → 1 de Σ 2 a Σ 1Σ2= C3→2 Σ3 Σ2 C2→1 Σ2 Σ1 , que son a la vez homomórficos y prefijos, por lo tanto, ambos códigos no ambiguos y, por lo tanto, pueden componerse para proporcionar una codificación de prefijo inequívoco de los 58 símbolos en binario.
dot
dash
sep
Por lo tanto el código Morse se compone de un código de prefijo ternario expresado en el alfabeto , , } , con estos tres símbolos mismos codificado en binario con las siguientes palabras de código:{ }
dot
dash
sep
dot
, → 1110 y → 00dash
sep
Tenga en cuenta que lo que se conoce como el espacio entre consecutivos
dot
odash
realmente se incluye en la representación dedot
ydash
, como esta es la representación matemática habitual para tales tipos de códigos, que generalmente se definen como homomorfismos de cadena de símbolos de origen a palabras de código expresadas con símbolos de destino, como acabo de hacer.Esto se aleja un poco de parte de la presentación dada en el estándar, que apunta más a especificar intuitivamente el código para los usuarios, en lugar de analizarlo por sus propiedades estructurales. Pero la codificación es la misma en ambos casos.
Incluso sin los tiempos precisos del estándar, un decodificador de la señal analógica podría traducirlo al alfabeto ternario que sugerimos, de modo que la comprensión anterior del código ternario aún sería válida.
Códigos: puntos básicos
Esta respuesta se basa en la Norma UIT-R M.1677-1 , fechada en octubre de 2009 (gracias a Jason C por la referencia). Usaré la terminología
dot
ydash
, en lugar dedit
ydah
, ya que es la terminología utilizada por esta norma.Antes de comenzar a discutir el código Morse, debemos acordar qué es un código. Las difíciles discusiones sobre esta cuestión obviamente lo requieren.
Fundamentalmente, la información necesita ser representada para ser transmitida o procesada de otra manera. Un código es un sistema para traducir información de un sistema de representación a otro . Esta es una definición muy general. Debemos tener cuidado de no confundir el concepto de una representación y el de un código de una representación (la fuente ) a otra (el destino ).
Una representación puede tomar muchas formas, como voltaje eléctrico variable, puntos de color en papel, cadena de caracteres, números, cadenas binarias de 0 y 1, etc. Es importante distinguir entre representación analógica y formal (o lógica o abstracta) .
Una representación analógica / física es un dibujo, un nivel de voltaje variable, una forma (para una letra).
Una representación lógica / formal / abstracta es una representación matemática con gráficos abstractos, cadenas de símbolos u otras entidades matemáticas.
Aunque parte de la información puede ser originalmente analógica, generalmente la convertimos en una representación lógica para poder definir con precisión su procesamiento por medios matemáticos o por personas.
Por el contrario, al tratar con la representación lógica utilizando dispositivos físicos, como una computadora o transmisores, necesitamos darle una forma analógica a la representación lógica.
Para el propósito de este análisis, la única forma analógica que consideramos es la utilizada para la transmisión, como se describe en el estándar. Pero incluso entonces, consideraremos que el primer paso es interpretar esta representación analógica como una implementación directa de una representación lógica estructurada idénticamente, sobre la cual construimos nuestro análisis de qué tipo de código puede ser el código Morse. La teoría del código es un cuerpo matemático de conocimiento basado en el análisis de representaciones lógicas.
Sin embargo, volveremos sobre la transición analógica / lógica en la discusión al final.
Códigos: definiciones
Nuestro punto de vista lógico es que el código se utiliza para traducir las fuentes de cuerdas en un alfabeto fuente a un alfabeto objetivo T . A menudo se da el caso de que ambos alfabetos son idénticos, generalmente binarios, cuando el propósito es agregar alguna propiedad adicional a la representación de la información, como hacerla más resistente a los errores (detección y corrección de errores), o hacer que la representación sea más pequeña eliminar la redundancia (compresión de código sin pérdida) y posiblemente con la pérdida cuidadosamente controlada de cierta información (compresión con pérdida).S T
Sin embargo, el propósito del código Morse es proporcionar solo una forma de representar cadenas en un alfabeto grande, en cadenas basadas en un alfabeto mucho más pequeño (en realidad binario), utilizando un alfabeto intermedio casi binario (puntos y guiones) para adaptarse mejor al humano percepción y habilidades de manipulación. Esto se logra mediante lo que se llama código de longitud variable :
Llamamos palabra de código de la imagen de un símbolo s ∈ S .do( s ) ∈ T∗ s ∈ S
Un código de longitud variable es decodificable de forma única si el homomorfismo correspondiente de S ∗ en T ∗ es inyectivo . Eso significa que cualquier cadena en T ∗ puede ser la imagen de como máximo una cadena en S ∗ . También decimos que el código no es ambiguo , lo que significa que cualquier cadena puede decodificarse sin ambigüedad, si es que lo hace.do S∗ T∗ T∗ S∗
Un código de longitud variable es un código de prefijo si ninguna palabra de código es el prefijo de otro. También se denomina código instantáneo o código sin contexto . La razón de estos nombres es que, cuando lee una cadena de destino que comienza con una palabra de código de un código de prefijo, reconoce el final de la palabra de código tan pronto como lee su último símbolo, sin tener que saber / leer el siguiente símbolo. Como consecuencia, los códigos de prefijo son inequívocos y muy fáciles de decodificar rápidamente.w
Se muestra fácilmente que la decodabilidad única y la propiedad del prefijo se cierran bajo la composición de códigos.
Tenga en cuenta que la definición de homomorfismo implica que no existe una separación especial entre las palabras de código. Es su estructura, como la propiedad del prefijo, lo que permite identificarlos sin ambigüedades.
De hecho, si existieran tales símbolos de separación, tendrían que ser parte del alfabeto objetivo, ya que serían necesarios para decodificar la cadena del alfabeto objetivo. Entonces sería bastante simple volver al modelo teórico de código de longitud variable agregando el separador a la palabra de código anterior. Si eso aumentara la dificultad contextual (debido, por ejemplo, a múltiples separadores), eso solo sería una pista de que el código es más complejo de lo que parece. Esta es una buena razón para apegarse al modelo teórico descrito anteriormente.
El código Morse
El código Morse se describe en el estándar en tres niveles:
3) está destinado a proporcionar una codificación de texto en lenguaje natural, utilizando 57 caracteres (27 letras, 10 dígitos, 20 símbolos y ponderaciones) y un espacio entre palabras para cortar la cadena de caracteres en palabras. El espacio entre palabras se usa como un carácter especial, que se puede mezclar con los otros, lo cual señalaré
SEP
.2) Todos estos caracteres deben codificarse como sucesiones
dash
ydot
, utilizando un espacio entre letras, que debo señalarsep
, para separar eldash
ydot
de una letra de los de la siguiente letra.1) El
dash
ydot
, así comosep
se codificarán como señal o ausencia de señal (llamado espaciado) con una longitud definida con precisión en términos de alguna unidad aceptada. En particular, ladash
y quedot
codifica una letra debe estar separada por un espacio entre elementos, que debo señalarσ
.Esto ya requiere algunas conclusiones.
El mensaje que se transmitirá y recibirá en forma analógica es una sucesión de unidades de longitud (longitud del espacio o longitud del tiempo), de modo que una señal esté encendida o apagada durante toda la duración de cada unidad como se especifica en el anexo 1, Parte I, sección 2 de la norma :
Esta es claramente una codificación analógica en lo que se conoce como un flujo de bits, que se puede representar lógicamente en notación binaria mediante una cadena de
0
ans1
, que representa el análogo apagado y encendido .Para abstraer los problemas relacionados con la representación analógica, podemos considerar que los mensajes de código Morse se transmiten como cadenas de bits, que notaremos con
0
y1
.Por lo tanto, el extracto anterior del estándar se puede expresar lógicamente como:
dot
está representado por1
.dash
está representado por111
.σ
está representado por0
.sep
está representado por000
.SEP
está representado por0000000
.Entonces podríamos ver el código Morse como el uso de 5 palabras de código en binario para codificar estos 5 símbolos. Excepto por el hecho de que no es así como se describe el sistema, hay algo más, y no es la forma más conveniente en la que se pueda pensar, desde un punto de vista ingenuo o matemático.
Tenga en cuenta también que esta descripción está destinada a laicos, no a especialistas en teoría de códigos. Por esa razón, describe más la apariencia visible que la estructura interna que lo justifica. No tiene ninguna razón para excluir otras descripciones que sean compatibles con esta, aunque matemáticamente más estructuradas, para enfatizar las propiedades del código.
Pero primero, debemos tener en cuenta que la descripción completa del código involucra 3 niveles de representación, inmediatamente reconocibles:
SEP
.dot
,dash
ysep
.symbols
como una cadena binaria.Posiblemente podamos discutir qué símbolos están codificados en qué, pero es un aspecto esencial del código Morse que tiene estos tres niveles de representación, con caracteres en la parte superior,
dot
s ydash
es en el medio, y bits0
y1
en la parte inferior .Esto implica que necesariamente hay dos códigos, uno del nivel 3 al nivel 2 y el otro del nivel 2 al nivel 1.
Analizando los tres niveles de representación
Para tener un análisis consistente de este sistema de codificación de 3 niveles, primero debemos analizar qué tipo de información es relevante en cada nivel.
1) La cadena de bits, por definición, y por necesidad de su representación analógica, se compone solo de
0
y1
.3) A nivel de texto, necesitamos un alfabeto de 58 símbolos, incluidos los 57 caracteres y el espacio entre palabras
SEP
. Todos los 58 tienen que tener en última instancia una codificación binaria. Pero, aunque el estándar del código Morse especifica estos 57 + 1 caracteres, no especifica cómo deben usarse para codificar la información. Ese es el papel del inglés y otros idiomas naturales. El código Morse proporciona otro sistema con un alfabeto de 58 símbolos, sobre los cuales podrían construir un código de 58 arios, pero el código Morse no es en sí un código de 58 arios.2) En el nivel
dot
ydash
, todo lo que necesitamos son estos dos símbolos para codificar los 57 caracteres, es decir, proporcionar una palabra de código para cada uno como una cadena dedot
ydash
, junto con un separadorsep
para marcar cuando una letra termina y otra comienza. También necesitamos algunos medios para codificar el espacio entre palabrasSEP
. Podríamos intentar proporcionarlo directamente en el nivel 1, pero esto estropearía la organización del código, que de otro modo estaría estructurada en niveles.De hecho, la descripción de la norma podría ser criticada por hacer justamente eso. Pero los autores pueden haber pensado que su presentación sería más fácil de entender para el usuario promedio. También sigue una descripción tradicional del código Morse, anterior a este tipo de análisis matemático.
Esto requiere varios comentarios:
en el nivel 3, el nivel de letra, el espacio entre letras
sep
ya no tiene sentido. Esto es bastante normal, ya que no tiene más significado en el universo de las letras que el espacio que separa dos caracteres escritos en papel. Es necesario en el nivel 2 reconocer las palabras de código que representan las letras, pero eso es todo.de manera similar en el nivel 2, el espacio entre elementos
σ
ya no tiene sentido. No tiene ningún significado en el mundo dedot
ydash
, pero sólo es necesario en el nivel 1 para identificar las palabras de código binario que representadot
,dash
. Pero en el nivel 1, no se distingue del bit0
.Entonces el espacio entre elementos
σ
ya no es nada especial. Es solo un uso de0
.dot
10
dash
1110
sep
000
0
dot
dash
00
sep
0
dot
dash
0
dot
dash
sep
dot
10
dash
1110
sep
00
Y tenemos la buena sorpresa de descubrir que ninguna palabra de código es el prefijo de otra. Por lo tanto, tenemos un código de prefijo, que es inequívoco y fácil de decodificar.
dot
dash
dot
dot
dash
dot
dot
dot
dash
dot
sep
SEP
0000000
0
sep
0
dot
dash
SEP
0000
SEP
sep
00
SEP
sep
sep
SEP
dot
dash
se
dash
do
dot
dot
sep
dash
dash
dot
dot
sep
dash
dash
dot
dot
dot
sep
SEP
sep
sep
Por lo tanto podemos concluir que el código Morse puede ser entendida, y fácilmente analizada, como la composición de un prefijo binario que codifica de un alfabeto de 3 símbolos {
dot
,dash
,sep
} en un alfabeto binario, y un prefijo que codifica de un alfabeto de 58 símbolos (57 caracteres y un espacio) en el alfabeto de 3 letras.La composición en sí es una codificación de prefijo de los 58 símbolos en una representación binaria.
Observaciones sobre este análisis.
Siempre es difícil establecer que una presentación de una estructura es lo mejor que se puede encontrar. Sin embargo, parece que el análisis anterior cumple con los criterios establecidos al comienzo de esta respuesta: cercanía a la definición de 3 niveles, presentada formalmente de acuerdo con la teoría de codificación actual, simplicidad y evidencia de las principales propiedades del código.
Tenga en cuenta que no tiene mucho sentido buscar propiedades de corrección de errores. Es posible que el código Morse ni siquiera detecte un error de un solo bit, ya que simplemente puede cambiar dos
dot
en unodash
. Sin embargo, solo causa errores locales.Con respecto a la compresión, la codificación ternaria se diseñó para reducir aproximadamente el número de puntos y rayas, en un tipo aproximado de codificación Huffman . Pero los dos códigos compuestos podrían fácilmente hacerse más densos.
Con respecto al tamaño de los alfabetos, no hay opción para el alfabeto binario y el de 58 símbolos. El alfabeto intermedio podría contener más símbolos, pero ¿cuál sería el propósito?
Sin embargo, algunas personas se sentirían inclinadas a reconocer el espacio
DET
en el nivel 2, haciendo que el alfabeto sea cuaternario y luego usándolo directamente en el nivel 3, codificado como sí mismo en el nivel 2.DET
0000
De hecho, tal elección haría que la cadena binaria sea
0000
ambigua, decodificable comoSEP
o comosep
sep
. La ambigüedad tendría que resolverse con una regla contextual quesep
no puede seguirse, lo que hace que la formalización sea más compleja.La importancia de la transición analógica a la lógica.
Este análisis se basa en gran medida en el hecho de que la descomposición de la señal de encendido / apagado en unidades de igual longitud indica claramente una representación analógica de una cadena binaria. Además, las longitudes en unidades son exactamente correctas para el análisis anterior, que parece poco probable que haya sucedido por casualidad (aunque es posible).
Sin embargo, desde una mirada (demasiado superficial) a la patente original 1647 , no parece haber sido tan preciso, con oraciones como (en la parte superior de la página 2):
Tampoco era probable que las personas que luego enviaban en mano o recibían por oído fueran tan precisas. De hecho, su puño , es decir, su sincronización, a menudo era reconocible. Esta vista también está respaldada por el hecho de que las longitudes de espacio no siempre se respetan , particularmente cuando se aprende el código Morse.
Estas situaciones corresponden a una vista analógica del código como señal corta (punto), señal media (guión) y pausa corta, media y larga. La transposición directa a un alfabeto lógico daría naturalmente un alfabeto quinario , en el que los 58 símbolos deben codificarse. Esto, por supuesto, ya no es una presentación de 3 niveles del código Morse.
Sin embargo, para tener sentido (y posiblemente evitar la ambigüedad), este alfabeto debe usarse con la restricción de que dos símbolos de señal (
dot
odash
) no pueden seguirse, y que los símbolos de pausa tampoco pueden seguirse. El análisis del código y sus propiedades se haría más complejo, y la forma natural de simplificarlo sería hacer lo que se hizo: introducir los tiempos adecuados para convertirlo en la composición de dos códigos, lo que lleva al análisis bastante simple dado anteriormente ( recuerda que incluye mostrar que el código es prefijo).Además, no es estrictamente necesario seguir tiempos exactos en la representación analógica. Dado que el decodificador de la traducción analógica puede distinguir pausas cortas, medias y largas, por cualquier medio, simplemente debe imitar lo que se hizo en el caso binario. Por lo tanto, la señal corta y media (necesariamente seguida de una pausa) se reconoce como lógica
dot
odash
. Las pausas cortas se olvidan, ya que solo sirven para marcar el final dedot
odash
. Las pausas medias se reconocen comosep
, y las pausas largas se reconocen como dossep
en sucesión. Por lo tanto, la señal analógica se representa en un alfabeto ternario, que se puede usar como antes para codificar el alfabeto de 58 símbolos. Nuestro análisis inicial puede usarse incluso cuando los tiempos no se respetan estrictamente.Alternativamente, la alternancia señal-pausa podría usarse para convertir este alfabeto quinario en uno ternario, manteniendo solo las tres duraciones como símbolos del alfabeto y utilizando el análisis contextual para determinar si una duración dada es señal o pausa. Pero esto es nuevamente un poco complejo de analizar.
Esto solo muestra que hay muchas formas de ver las cosas, pero no son necesariamente convenientes y es posible que no todas se presten fácilmente al análisis con las herramientas matemáticas que se han desarrollado para analizar códigos.
Se pueden encontrar más referencias a las patentes en Internet.
Conclusión
Dados los tiempos precisos del estándar, una buena respuesta parece ser considerar el código Morse como la composición de una codificación de prefijo ternario (de 58 caracteres) en un alfabeto de 3 símbolos, compuesto con una codificación de prefijo binario de estos tres símbolos.
Sin la sincronización precisa del estándar, el nivel binario ya no puede considerarse. Entonces, la decodificación analógica a lógica tiene lugar naturalmente en el nivel del alfabeto intermedio de
dot
ydash
. Sin embargo, el decodificador analógico a lógico puede decodificar el alfabeto de los 3 símbolos anteriores, preservando así la aplicabilidad de nuestro análisis.fuente
Esta respuesta no es tan larga como parece; ¡Este sitio solo pone mucho espacio entre los elementos de la lista! Actualización: en realidad se está haciendo bastante largo ...
El Código Morse no es "oficialmente" binario, ternario, cuaternario, quinario o incluso 57 años (si cuento correctamente). Discutir sobre cuál es sin contexto no es productivo. Depende de usted definir cuál de esos cinco se basa en su aplicación y los requisitos de codificación para su situación específica . Para ese fin, hay ventajas y desventajas para cada tamaño de conjunto de símbolos, que debe considerar para su situación antes de tomar una decisión.
Para la base, M.1677 , el estándar internacional del Código Morse, sección 2, define los tiempos como:
Tenga en cuenta que eso define solo los tiempos, por ejemplo, un guión no significa lo mismo que tres puntos, es simplemente la misma longitud. La unidad de tiempo base es un punto.
Binario
Podemos elegir binario si lo deseamos. Es posible representar el Código Morse con "binario estricto", como lo llama, el enfoque de ese autor fue asignar los dígitos a "punto" y "guión". Ese enfoque no funciona y no creo que el autor tenga una comprensión firme del código Morse. Pero hay un enfoque diferente que funciona. Si elegimos binario, esencialmente representamos si la señal es alta o baja con cada símbolo ocupando un solo segmento de tiempo de punto largo. Tenga en cuenta que este es también el enfoque descrito en la página Lista de códigos binarios que citó.
También se pueden elegir otras codificaciones binarias (por ejemplo , la respuesta de Bob Jarvis ) a expensas de los aumentos en la dificultad de decodificación de nuevo al Código Morse audible (la codificación de Bob no se puede decodificar sin estado, por ejemplo, la compensación es que proporciona secuencias codificadas más cortas).
Símbolos:
Ejemplos de codificación:
Pros:
Contras:
Ternario
Con esta opción, definimos los espacios entre letras y palabras como descansos, y los espacios entre las señales están implícitos (aunque puede optar por requerir símbolos de descanso de longitud de punto entre las señales, si le conviene más).
Símbolos:
Ejemplos de codificación:
Pros:
Contras:
Cuaternario
Símbolos:
Ejemplos de codificación:
Pros:
Contras:
Quinario
Una interpretación directa de la lista de Wikipedia. Tenga en cuenta que esto es muy similar a la elección binaria, excepto que las diversas combinaciones válidas de 0 o 1 binarios reciben sus propios símbolos.
Símbolos:
Ejemplos de codificación:
Pros (en comparación con el cuaternario):
Contras (en comparación con el cuaternario):
57-ario:
Incluido para completar.
Símbolos:
Ejemplos de codificación:
son
is a
Pros:
Contras:
Terminación
Para el almacenamiento como un flujo de símbolos en un dispositivo, si necesita hacer eso, vale la pena señalar que M.1677 define secuencias de terminación de transmisión y mensajes. De la parte II:
Desafortunadamente, el estándar no dice nada sobre la capacidad de distinguir, por ejemplo, la cadena "+ K" de la secuencia ( fin de telegrama , invitación a transmitir ). Sin embargo, el final del trabajo es único. Si está almacenando código morse, entonces, deberá elegir cómo desea indicar el final de una secuencia almacenada.
Si está almacenando una conversación completa, por ejemplo, y está usando el conjunto de símbolos binarios, podría considerar razonablemente que el fin del trabajo es el indicador de fin de secuencia, representado como la secuencia de bits única 101010111010111. Debe considerar el tipo de los datos que está almacenando (por ejemplo, fragmentos de mensajes, mensajes completos, conversaciones completas), así como las facilidades que le ofrece su medio de almacenamiento (por ejemplo, capacidad de prefijar con la longitud del mensaje) antes de decidir. Supongo que podría llegar a definir su propio indicador de fin de secuencia. En cualquier caso, estos son todos asuntos de almacenamiento subyacente y tienen demasiadas posibilidades para enumerarlos aquí. La elección depende de usted según lo que sea apropiado para su situación.
† No se puede decodificar sin estado: estas codificaciones requieren que se mantenga algún estado para decodificar en código Morse audible. Todos requieren "Si el símbolo anterior era un punto / guión y el símbolo actual es un punto / guión, entonces inserte el separador de señal". Si bien podría intentar "hacer trampa" y agregar automáticamente un separador de señal a todos los símbolos al tiempo que reduce el separador de palabras a 5 restos y el separador de letras a 1, el hecho M.1677 no prohíbe explícitamente los separadores de palabras consecutivos, lo que rompe este error.
‡ Los separadores de señal están implícitos: esto está directamente relacionado con la nota anterior pero más orientado semánticamente. Estas codificaciones tienen separadores de señal implícitos en su notación. Es decir, "zzz" es intuitivamente tres z separadas, los límites están "superpuestos" en lo que sea que separe los símbolos en la codificación misma. Considere la descripción "tres puntos seguidos"; intuitivamente tomamos esto para significar tres separadospuntos, pero si los separadores no estuvieran implícitos, esto podría tomarse como indistinguible de un guión. Solo las representaciones binarias y quinarias de estilo Wikipedia (o ternarias con la opción de separador de señal explícito) eliminan aquí toda ambigüedad y "atajos", que pueden ser de gran valor dependiendo de la situación. Es por esta razón que existe un fuerte argumento para la elección quinaria.
TL; DR:
Como puede ver, hay ventajas y desventajas para cada uno, y depende de usted decidir cómo desea tratarlo según sus requisitos . No hay respuesta correcta. Podría intentar argumentar que uno es más apropiado que el otro en general, pero estos argumentos se reducirían a preferencias pedantes, ya que sin contexto, no hay una respuesta correcta.
Ahora, todo lo dicho, en mi propia opinión, la elección quinaria es la representación que me parece más "correcta" para el propio Código Morse (originalmente había favorecido el cuaternario). Es la única opción que ofrece todo lo siguiente:
{ dot, dot, dash }
, esos,
son significativos y fáciles de pasar por alto).Sin embargo, hay fuertes argumentos para todos. Los argumentos relacionados con la codificación también son aplicables al tratamiento de Morse. No hay una respuesta 100% concreta, pero ciertamente puede ser un buen tema para debatir con sus amigos en el bar.
. . . -. -
fuente
A pesar de mis pensamientos iniciales sobre esto, resulta que esta pregunta puede formalizarse de una manera que admite una respuesta bastante precisa (módulo de un par de cuestiones de definición). La respuesta resulta ser 3 o 4, es decir, ternaria o cuaternaria. La respuesta de "todo va de 2 a 57" para complacer a la multitud es correcta solo en el sentido de que si alguien te pide una caracterización de grupos abelianos, le dices que son grupos.
Comencemos mirando la codificación física del código Morse. Eso es realmente B ASK , es decir, la codificación de desplazamiento de amplitud binaria, que es solo una forma elaborada de decir que hay dos niveles de amplitud física (eléctrica / óptica, etc.) para que codifiquemos nuestro mensaje. Entonces, la pregunta inmediata es: ¿no significa que la respuesta es que el código Morse es binario? Bueno, es binario solo de una manera no informativa, en el sentido de que la señal binaria de encendido / apagado enviada por el cable no corresponde directamente a líneas o puntos. En este nivel vago de correspondencia, incluso podríamos enviar el código ASCII (con la codificación de bits directa y obvia) y llamarlo "Morse" y / o "binario"; Lo mismo se aplicaría a cualquier código Huffman (en lugar de ASCII).
Entonces, ¿cómo podemos hacer que la correspondencia sea más precisa y al mismo tiempo formalizar nuestra pregunta? La teoría de la codificación viene a ayudar. DejarMETRO ser el conjunto de símbolos "morsables", aproximadamente 66 símbolos si entiendo el universo del código Morse correctamente; esto incluye las 26 letras latinas, los dígitos 0-9 y un montón de accesorios como signos de puntuación, "prosignos", etc. En realidad no es tan importante lo que son. Un código es un mapeo inyectivo c : M→ T∗ dónde T (no T∗ ) es un conjunto de palabras de código. Para ser físicamente representable en nuestro hardware BASK subyacente, requerimos queT⊂ { 0 , 1 }∗ , es decir, nuestras palabras de código deben ser cadenas de bits; tenga en cuenta que esto implicado Los valores son cadenas de palabras de código, por lo tanto, cadenas de cadenas de bits, pero finalmente linealizadas como cadenas de bits.
Para ser una caracterización fiel del código Morse, necesitamosT para contener algunos equivalentes directos de líneas y puntos, en el sentido de que debe haber una biyección entre estas palabras de código y los puntos y líneas que representan el código Morse en papel. T también se requiere que sea [casi] un código descifrable único, lo que significa que cualquier factorización de un elemento de T∗ en términos de elementos / palabras de código de T [idealmente] debe ser único. (Tenga en cuenta que algunos autores, por ejemplo , Berstel , ni siquiera llamanT un código a menos que sea descifrable de forma única, pero otros, por ejemplo, Steve Roman tienen una terminología diferente en la que cualquier mapeo es un código, pero aquellos que son descifrables de manera única solo se dicen y abrevian códigos UD. Aquí voy solo la última terminología. También verás un poco más tarde por qué dije "idealmente".)
Ya quedo solo se requiere que sea una inyección y no una inyección, podemos poblar T con "basura" arbitraria más allá de lo que se necesita para obtener un código UD, siempre y cuando las cadenas generadas por esta basura no sean la preimagen de algo morsable. Por ejemplo, una cadena de exactamente 42 puntos no corresponde a nada en ninguna variante del código Morse que vi. Entonces, cuando preguntamos si el código Morse es binario, ternario, cuaternario, quinario, etc., la pregunta debería ser la cardinalidad mínima deT con las dos propiedades anteriores, es decir: es [casi] un código UD y tenemos una biyección obvia entre la "línea" y el "punto" en papel a algunos elementos de T .
Hay dos formas de proceder en la construcciónT , ya sea de arriba hacia abajo al observar que necesita un separador entre la representación de letras Morse en línea y en papel para obtener un código UD, o de abajo hacia arriba, ya que en el código Morse internacional de la UIT tenemos el tiempo -longitudes de las líneas, puntos y varias pausas. Usaré el último enfoque aquí porque hay numerosas formas de obtener algunosT de lo contrario, es decir, puede elegir períodos de tiempo bastante arbitrarios, por ejemplo, el código Morse americano desaparecido usó líneas más cortas que la versión ITU.
Comencemos con la representación derivada de la longitud de señal de ITU que tiene cinco palabras de código básicas, generadas a partir de la señal de "encendido" de longitud de unidad (1) y la señal de "apagado" (0):0 0 -determinación de
just-dot
(1),just-line
(111),unit-space
(0) ,letter-space
(000) yword-space
[asumió siete 0 en el Morse internacional pero puede variar en la práctica]. Observe de inmediato queunit-space
solo puede aparecer seguido de un 1 justo despuésjust-dot
yjust-line
; y estojust-dot
yjust-line
(que es un código de coma; más sobre esto más adelante) es realmente necesario, de lo contrario, ni siquiera podría distinguir las líneas de los puntos. Esto le da la reducción obvia a cuatro palabras de código con:dit
=just-dot
unit-space
= 10 ydah
=just-line
unit-space
= 1110.Así que eso es el código Morse cuaternario:
dit
,dah
,letter-space
,word-space
. La siguiente observación es queword-space
se puede aproximar (o incluso suponer que es) dosletter-space
s, es decir, seis ceros. Entonces, ¿cómo es cómo se obtiene el conjunto de palabras de código ternario; Como referencias para esta línea de razonamiento, véase, por ejemplo, [1] [2] .También hay una razón técnica para preferir las palabras de código ternario:T= { 10 , 1110 , 000 } es un código descifrable único, de hecho es un código de prefijo. sin embargo{ 10 , 1110 , 000 , 07 7} (o la versión con solo seis ceros) ya no es descifrable únicamente porque 0 010= 030 07 7= 07 70 03 entonces hay una factorización no única. Si bien esto es teóricamente un problema, no es una preocupación práctica porque el "metrónomo" humano tiene dificultades para medir silencios muy largos de todos modos, por lo que básicamente cualquier silencio más largo que una cierta longitud se supone (por un humano) como un
word-space
especie de.También tenga en cuenta que si se pega0 0 en ese conjunto también (es decir, tener una vista "quinaria"), se pone "aún más mal", en el sentido de que incluso 000 ya no tiene una factorización única (ya que también es una palabra de código). Además,0 0 no está en la preimagen de ningún símbolo Morse, por lo que es basura en T , al igual que puedes agregar 1420 0 a T ; de hecho, agregar este último es menos problemático ya que a diferencia de agregar0 0 no hará que el código pierda la propiedad UD.
La reducción / abstracción de0 0 para hacerlos distinguibles unos de otros. Una vez que abstraiga esa construcción a los dos trits diferentes ( 000 que el tercer trit.
dit
,dah
,letter-space
como palabras de código binario a tres símbolos abstractos (Trits) es útil para mostrar rápidamente que el (ternaria) código Morse es UD; eso es obvio de inmediato porqueletter-space
actúa como una coma, es decir, el código Morse ternario es un código de coma. (Tenga en cuenta que otros autores definen el "código de coma" en un sentido más restrictivo donde todos los símbolos que no sean la coma son el mismo; lo estoy usando aquí en el sentido más amplio dado en "Álgebra postmoderna" de DH Smith , que simplemente significa usar un símbolo de terminación único para cada palabra de código.) También tenga en cuenta que la técnica de código de coma se usa en dos niveles en el código Morse; eljust-line
yjust-dot
son terminados por la "coma corta"unit-space
=dit
ydah
), todas las letras del código Morse también se codifican con comas al terminarlas conTambién puede utilizar el cálculo de la entropía enfoque trit suponiendo una
dah
ydit
yletter-space
son "equivalentes" como trits [3] , en el sentido de que, por ejemplo-'e' toma 2 trits y 'y' toma 5 trits. El enfoque de trit abstracto no es tan útil si le importa lo caro que es transmitir cada símbolo en la codificación BASK Morse real en una línea. Para este último, debe llegar a las longitudes de bits reales de los 3 (o 4) símbolos, que se ven como transiciones en un autómata. Por ejemplo, la letra 'e' toma 5 bits para codificar (asdit
letter-space
) mientras que 'y' toma 17 bits (tresdah
s, unodit
y aletter-space
). Esta línea de pensamiento se remonta a Shannon (ver págs. 3-4). Más detalles se pueden encontraren "Teoría y codificación de la información" de Blahut , por ejemplo, calcula "un promedio de 9,296 unidades de tiempo de señalización por letra de salida" para el código Morse usando las probabilidades (incondicionales) de letras en inglés. Para una exposición ligeramente diferente (¡por un zoólogo!) Podría mirar JP Hailman's ; obtiene un promedio diferente (10.2) porque asume probabilidades ligeramente diferentes para las letras en inglés, pero por lo demás su análisis es conceptualmente el mismo.Para resumir esto: puede tomar varias vistas del código Morse, pero algunas son más fructíferas que otras al decir algo interesante al respecto. No conozco ningún análisis que use la vista "quinaria" y para que este modelo no se reduzca a cuatro símbolos, tendría que hacer algunas suposiciones sobre la ocurrencia del espacio unitario que no se mantiene en Morse real , por ejemplo, que podría tener dos pero no necesariamente tres espacios unitarios adyacentes (que no es válido Morse). La vista ternaria le compra un análisis rápido de la decodificación única. La vista más profunda / fructífera es la que ve los 3 o 4 símbolos como realmente representados por cantidades desiguales de bits como en el código Morse real (|
dit
| = 2, |dah
| = 4, |letter-space
| = 3 y |word-space
| = 6 o 7); Todavía es perspicaz en este nivel bajo considerar los símbolos ternarios / cuaternarios como transiciones en un autómata.En cuanto a por qué Wikipedia apesta a esto ... bueno, en algunos temas simplemente lo hace. Su artículo principal en http://en.wikipedia.org/wiki/Coding_theory tampoco es realmente algo que recomendaría leer. No puedo decir mucho sobre el libro (Petzold) que ha mencionado que no aparece escrito por un experto en teoría de la información. Petzold solo tiene razón en el sentido de que si los mensajes codificados en Morse constaran de una sola letra, podría decirse razonablemente que están en algún código binario; Sin embargo, si desea enviar palabras, necesita un separador de letras, de lo contrario, el código sería horriblemente no UD, hasta el punto de no ser práctico.
Es un poco tarde aquí para que revise toda la publicación, pero @babou hace un punto válido debajo de que aparentemente Shannon, Blahut y otros han malinterpretado el estándar ITU (actual) (suponiendo que no haya cambiado desde su momento) en lo siguiente tecnicismo: el espacio de la unidad se agrega entre dits y dahs de la misma letra , pero soloT= { 10 , 1110 , 00 } . Eso también significa que (por ejemplo) el tamaño de 'e' es de solo 4 bits, no de 5.
letter-space
se agrega entre letras. Esta lectura de la norma parece salir basada en un libro de práctica bastante reciente . Por lo tanto, debemos tomar prestado un 0 deletter-space
cada unodit
ydah
cuando están en posiciones terminales de una letra, dejando solo dos 0 para elletter-space
, es decirfuente
Originalmente, el código Morse tenía la intención de ser marcas escritas en una tira de papel, pero los operadores de telégrafos pronto pudieron "leer" los clics del equipo. Esta versión de Morse (Morse estadounidense o "tierra") tenía tres elementos de "marca", el punto, el guión y el guión largo.
El uso de International Morse durante el siglo pasado, a través de la transmisión de radio, generalmente se codificaba a mano (en una tecla de telégrafo) y se decodificaba por el oído, al escuchar el patrón de pitidos producidos por el receptor. Los operadores calificados podrían recibir mejores que los no calificados, y algunas personas podrían producir código que fuera más fácil de entender que el de otros. Se decía que un buen operador de transmisión tenía un "buen puño". Un operador inepto se llamaba LID. (Para el origen de "lid", que creo que proviene de un error común en American Morse de enviar LID para DD, daaahh, dit dit, dah dit dit en lugar de dah dit dit, dah dit dit, vea esta referencia: https://english.stackexchange.com/questions/31818/how-did-the-word-lid-come-to-mean-poor-operator-in-the-context-of-telegraph .)
Por lo tanto, se deduce que la "codificación" de Morse en un formato binario depende del propósito y, por lo tanto, de si se debe conservar la calidad de "puño bueno" versus "puño pobre". ¿Una cadena de encendido y apagado debe coincidir con un reloj y "corregirse" por dificultades en la fase o la duración de cada parte de la señal? ¿O se tomarán muestras a una velocidad suficiente para retener variaciones aleatorias o confusas, presumiblemente para su posterior inspección o deleite?
fuente