Esta página describe, en estilo de página de manual de Unix, un programa disponible para descargar desde este sitio que codifica archivos binarios en el formato ldquoBase64rdquo utilizado por documentos codificados con MIME tales como mensajes de correo electrónico con imágenes incrustadas y archivos de audio. NAME base64 - codificar y decodificar archivos base64 DESCRIPCIÓN DE LA SINOPSIS La especificación MIME (Extensiones de correo de Internet multifunción) (RFC 1341 y sucesores) define un mecanismo para codificar información binaria arbitraria para su transmisión por correo electrónico. Las tripletas de octetos de 8 bits están codificadas como grupos de cuatro caracteres, cada uno representando 6 bits de la fuente 24 bits. Sólo se utilizan caracteres presentes en todas las variantes de ASCII y EBCDIC, evitando incompatibilidades en otras formas de codificación como uuencode / uudecode. Base64 es una utilidad de línea de comandos que codifica y decodifica archivos en este formato. Puede ser utilizado dentro de una tubería como un filtro de codificación o decodificación, y es más comúnmente usado de esta manera como parte de un sistema automatizado de procesamiento de correo. OPCIONES --copyright Imprima la información de copyright. D --decode Decodifica la entrada, previamente creada por base64. Para recuperar el archivo de entrada original. Ee --encode Codifica la entrada en un archivo de texto de salida que contiene su codificación base64. - n. --noerrcheck Suprime la comprobación de errores al decodificar. De forma predeterminada, al encontrar un carácter de espacio en blanco que no pertenece al conjunto base64, o descubrir que el archivo de entrada se rellena incorrectamente a un múltiplo de cuatro caracteres, base64 emite un mensaje de error y termina el procesamiento con el estado de salida 1. El - n Opción suprime incluso este error rudimentario que comprueba que los caracteres inválidos se silencian silenciosamente y la salida truncada a los últimos tres octetos válidos si la entrada se rellena incorrectamente. - u. --help Imprime cómo llamar a la información y un resumen de las opciones. --version Imprime la información de la versión del programa. ESTADO DE SALIDA base64 devuelve el estado 0 si el procesamiento se completó sin errores, 1 si se produjo un error de E / S o se detectaron errores al decodificar un archivo que indica que es incorrecto o incompleto y 2 si no se pudo procesar en absoluto Ejemplo, a un archivo de entrada inexistente. Si no se especifica infile o infile es un solo ldquo - rdquo, base64 lee de entrada estándar si no se da outfile, o outfile es un solo ldquo - rdquo, la salida se envía a la salida estándar. La entrada y la salida se procesan estrictamente en serie, por lo que se puede usar base64 en las tuberías. BUGS Se realiza poca o ninguna comprobación de errores al decodificar, aparte de validar que la entrada consiste en un múltiplo de cuatro caracteres en el conjunto de codificación. Esto es inherente en el diseño de base64, que asume la integridad de la transmisión es la responsabilidad de un protocolo de nivel superior. VER TAMBIÉN Descargar base64-1.5.tar. gz (archivo Gzipped TAR) El archivo contiene el código fuente de la utilidad, un Makefile para sistemas Unix y un ejecutable listo para ejecutarse para plataformas Windows de 32 bits. Los usuarios de Windows también pueden descargar base64.zip. Un archivo ZIPped que contiene el ejecutable de Windows. AUTOR Christian Ferrari aportó código que permite a la utilidad base64 trabajar en sistemas basados en EBCDIC como UNIX Services para OS / 390 2.7 (ESA / 390). Este software está en el dominio público. Se concede el permiso para usar, copiar, modificar y distribuir este software y su documentación para cualquier propósito y sin cargo, sin ninguna condición o restricción. Este software se proporciona ldquoas isrdquo sin garantía expresa o implícita. Imágenes binarias Identificar métodos para codificar imágenes en binario Relacionar imágenes con un par utilizando codificación binaria Reproducir una imagen, basada en código binario Materiales, recursos y preparación Para las imágenes binarias de Student One Hoja de trabajo por par Una hoja de cálculo de la imagen binaria por estudiante Papel en blanco, bolígrafos, lápices Otras baratijas que pueden mostrar los opuestos, tales como: tarjetas de juego, damas, monedas, etc. Imprima una hoja de cálculo de la evaluación de la imagen binaria por alumno Reúna agrupaciones de elementos que pueden mostrar opuestos para que los estudiantes usen al crear sus propias codificaciones binarias (Opcional) Introducción (10 min) 1) Revisión Este es un buen momento para repasar la última lección Que pasaste con tu clase. Le sugerimos alternar entre hacer preguntas de toda la clase y hacer que los estudiantes hablen sobre sus respuestas en grupos pequeños. Estas son algunas preguntas que puedes hacer en la revisión: ¿Qué hicimos la última vez? ¿Qué deseabas que hubiéramos tenido la oportunidad de hacer? ¿Pensaste en alguna pregunta después de la lección que quieras preguntar ¿Cuál era tu parte favorita de la última lección. Sugerencia para la lección Finalizar la revisión preguntando sobre las cosas favoritas de los estudiantes ayuda a dejar una impresión positiva del ejercicio anterior, aumentando el entusiasmo por la actividad que está a punto de introducir. 2) Vocabulario Esta lección tiene una palabra importante para revisar y un nuevo término: Binario - Dígalo conmigo: Bi-nare-ee Una manera de representar la información usando sólo dos opciones Alfabeto binario - Dígalo conmigo: Bi-nare-ee Al-fa-bet Las dos opciones usadas en su código binario 3) Revisión binaria Vea si su clase recuerda la lección de las Pulseras Binarias del curso 2. ¿Recuerda cómo usamos de vez en cuando para representar letras? Puede que quiera hacer un ejemplo Con ellos usando una letra o dos para refrescar su memoria. ¿Qué otras maneras podríamos haber representado esas cartas ¿Qué si no podríamos usar encendido y apagado Anime a su clase a venir para arriba con algunos otros sistemas de opuestos para representar las mismas cartas que usted acaba de hacer. Esas son grandes sugerencias. Permite usar una de ellas para codificar una nueva letra. Una vez que el código de otra letra o dos, comenzar un ejercicio sin embargo. ¿Cómo podríamos usar ese mismo alfabeto binario para codificar una imagen? Los estudiantes pueden no tener idea de lo que estás hablando. Esta bien. Usted puede llevarlos a la respuesta paso a paso. ¿Qué pasaría si tuviéramos una foto como esta, donde sólo hay dos opciones diferentes para cada cuadrado, negro o blanco. ¿Cómo podríamos codificar esto para que otra persona pudiera recrear la imagen sin verla Algunos estudiantes podrían volver a la lección de Programación de Papel Gráfico. Si bien puede haber muchas similitudes, hágales saber que esto es lo suficientemente diferente como para que no usen esa lección para guiarla. Puede escuchar sugerencias como: Diga blanco, negro, blanco, negro. Eso es una gran sugerencia Ahora voy a romper en pares. Trabaje con su compañero de equipo para decidir sobre un alfabeto binario. Decida si desea que sus parejas compartan sus codificaciones con los otros grupos antes de tiempo, y dígales si van a crear una clave, o mantener sus métodos en secreto. Ahora, permite codificar algunas imágenes, al igual que una computadora Actividad: Imágenes binarias (20 min) 4) Imágenes binarias Ahora su los estudiantes a su vez 1) Divida a los estudiantes en pares. 2) Pídales que escojan una imagen con su pareja. 3) Anímelos a averiguar cuál será su alfabeto binario. 4) Pídales que codifiquen su imagen usando su nuevo alfabeto binario. 5) Instruya a los estudiantes para intercambiar codificaciones con otro equipo y ver si pueden averiguar en qué imagen trabajó el otro. 6) Elija un nivel - Fácil: Deje que el otro equipo sepa cuál era su método de codificación - Resistente: Haga que el otro equipo adivine su método de codificación. Wrap-up (10 min) 5) Flash Chat: ¿Qué aprendimos? ¿Qué aprendimos hoy? ¿Qué tipo de alfabeto binario creaste? ¿Puedes pensar en cómo podrías codificar una imagen usando sólo tus dedos? Crees que podrías crear una Alfabeto binario fuera de los sonidos 6) Vocab Shmocab Usted puede elegir hacer esto como una clase, o los estudiantes discutir con un compañero de codo y compartir. ¿Recuerda la definición del término alfabeto binario? Las dos opciones utilizadas en su código binario Un polígono de tres lados Un número mayor que cero Evaluación (10 min) 7) Hoja de trabajo de evaluación de imágenes binarias Aprendizaje extendido Utilice estas actividades para mejorar el aprendizaje del estudiante. Pueden utilizarse como actividades fuera de la clase u otro enriquecimiento. Almacenamiento de imágenes en color Si su clase realmente tiene la idea de almacenar imágenes binarias, es posible que deseen saber cómo hacer imágenes en color. En primer lugar, necesitará discutir cómo funciona el color usando binario (como en Binary Baubles, página 21). A continuación, introduzca algunas imágenes que usen combinaciones de esos colores Anime a sus estudiantes a encontrar formas de codificar estas imágenes en color. Conexiones hexadecimales e información de fondo Estándares ISTE (anteriormente NETS) Satisfechos por esta lección incluyen: 1c. Utilizar modelos y simulaciones para explorar sistemas y problemas complejos 2d. Contribuir a los equipos de proyecto para producir trabajos originales o resolver problemas 4b. Planificar y gestionar actividades para desarrollar una solución o completar un proyecto 4d. Utilizar múltiples procesos y diversas perspectivas para explorar soluciones alternativas 6d. Transferencia de conocimientos actuales al aprendizaje de nuevas tecnologías Las actividades de esta lección apoyan a CSTA K-12 Normas de Ciencias de la Computación: CL. L1: 3-02 Trabajar cooperativamente y en colaboración con otros profesores y otros que utilizan la tecnología CT. L1: 6-01 Comprender y usar Los pasos básicos en la resolución algorítmica de problemas CL. L2-03 Colaborar con compañeros, expertos y otros utilizando prácticas colaborativas como la programación de pares, el trabajo en equipos de proyectos y la participación en actividades de aprendizaje activo de grupo CT. L2-06 Describir y analizar un Secuencia de instrucciones beign seguido CT. L2-07 Representar datos en una variedad de formas: texto, sonidos, cuadros, números CT. L2-14 Examinar conexiones entre elementos de matemáticas y ciencias de la computación incluyendo números binarios, lógica, conjuntos y funciones CT. L3A-05 Describir la relación entre representaciones binarias y hexadecimales CT. L3B-07 Discus la interpretación de secuencias binarias en una variedad de formas CT. L1: 6-02 Desarrollar una comprensión sencilla de un algoritmo utilizando ejercicios sin ordenador Next-Gen Ciencia Normas 3-5-ETS1-2 Generar y comparar múltiples posibles soluciones a un problema basado en la forma en que cada uno es probable que cumpla con los criterios y limitaciones del problema Núcleo básico Prácticas matemáticas 1. Hacer sentido de los problemas y perseverar en su solución 2 4. Razonar de manera abstracta y cuantitativa 4. Modelo con matemáticas 6. Atender a la precisión 7. Buscar y hacer uso de la estructura 8. Buscar y expresar regularidad en el razonamiento repetido Núcleo Común Matemáticas Estándares 4.OA. C.5 Generar un número o forma Patrón que sigue una regla dada. Identificar rasgos aparentes del patrón que no fueran explícitos en la regla. L.3.6 Adquirir y usar palabras y frases de conversación, académicas generales y específicas del dominio, incluyendo las que señalan las relaciones espaciales y temporales L.4.6 Adquirir y usar palabras y frases generales académicas y específicas del dominio apropiadas para el grado, incluyendo aquéllas que señalan acciones precisas, emociones o estados de ser y que son fundamentales para un tema en particular. L.5.6 Adquirir y usar con precisión, Las palabras y frases académicas y específicas del dominio, incluyendo aquellas que señalan el contraste, la adición y otras relaciones lógicas. El código Morse se dice que es un código binario (literalmente significa dos por dos) porque los componentes del código consisten en sólo 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 quinary). Sin embargo, esto no significa que el código Morse no puede ser representado como un código binario. En un sentido abstracto, esta es la función que los operadores telegráficos realizan al transmitir mensajes (ver quinary). Pero otra vez, otra página de Wikipedia incluye código Morse en la lista de códigos binarios. Estoy muy confundido porque creo que Morse Code en realidad es ternario. Usted tiene 3 tipos diferentes de posibilidades: un silencio, un pitido corto o un pitido largo. Es imposible representar el código Morse en el binario del stirct isnt él Por el binario estricto quiero decir, pienso del flujo del binario: 1010111101010. ¿Cómo se supone que represento un silencio, un pitido corto y / o un pitido largo de la única manera que puedo pensar en Es el tamaño de la palabra que implementa una computadora. Si yo (y la CPU / el intérprete del código) sabemos que va a 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 ..) Así que de nuevo, tengo esta tercera variable / el 3er 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. Al igual que 00110000 significará A. Y todavía estoy en binario, pero necesito el tamaño de la palabra que lo hace ternario no es Los primeros 3 bits dicen: Leer sólo 1 bit de los siguientes 5 bits. En lugar de binario, si usamos trinary, podemos mostrar código morse como: 101021110102110222 etc. donde 1 es: dit 0 es: dah y 2 es silencio. Usando 222 podemos codificar el silencio largo, así que si usted tiene una señal como - --- - usted puede demostrarla como: 102100022210, pero no es directamente posible usar solamente con 1s y 0s A menos que usted suba con algo como un Tamaño fijo de la palabra como he mencionado, pero bien esto está interpretando, no salvando el código Morse como está en binario. Imagina algo como un piano, solo tienes los botones del piano. Quieres dejar un mensaje en Morse Code para alguien y puedes pintar los botones en negro. No hay forma de que dejes un mensaje claro, no lo necesitas Necesitas al menos un color más para que puedas poner los silencios (los que están entre los caracteres y las palabras, esto es lo que quiero decir con el tren) No te pregunto si puedes representar Morse Code en 57-ary o cualquier otra cosa. He enviado un correo electrónico al autor (Charles Petzold) acerca de esto él dice que él demuestra en el capítulo 9 de Código que el código Morse puede ser interpretado como un código binario.¿Dónde estoy equivocado con mi Pensar Es lo que estoy leyendo en el libro, que el Código Morse es un binario un hecho o no ¿Es de alguna manera discutible ¿Por qué se dice que el Código Morse es quinary en una página de Wikipedia, y también aparece en la lista de la página de códigos binarios Editar sección : He enviado un correo electrónico al autor y recibí una respuesta: De: Koray Tugay mailto: koraytugay. biz Enviado: martes, 3 de marzo de 2015 15:16 Asunto: ¿Es Morse Code realmente binario Señor, podría echar un vistazo a mi Pregunta: ¿Es el Código Morse binario, ternario o quinary quinary Respetos, Koray Tugay De: Charles Petzold Asunto: RE: ¿Es Morse Código realmente binario Fecha: 3 Mar 2015 23:04:35 EET Hacia el final del Capítulo 9 en el Código I demuestran Que el código Morse se puede interpretar como un código binario. De: Koray Tugay mailto: koraytugay. biz Enviado: martes, 3 de marzo de 2015 15:16 Asunto: El código Morse es realmente binario Señor, ¿podrías echar un vistazo a mi pregunta aquí: es Morse Code binario, ternario o quinary quinary Saludos , Koray Tugay No estoy escondiendo su correo electrónico ya que es realmente fácil de encontrar en la web de todos modos. WanderingLogic El enfoque correcto, más eficaz y libre de ruidos es señalar silenciosamente la pregunta para la limpieza de comentarios y sugerir que los comentarios se muevan al chat en la bandera, no para reproducir públicamente la policía de comentarios e intentar crear una sala de chat para combinar todos los comentarios en todos Respuestas sin contexto. Sus enlaces también ahora sólo confundir el asunto desde Raphael ha publicado enlaces correctos. Ndash Jason C Mar 5 15 at 9:49 J.-E. Pin Bueno, yo no dar una definición formal, porque he dado por sentado que la gente que responde a la pregunta sabría que, y yo tenía una referencia o dos a wikipedia a Establecer el contexto. Incluso si wikipedia puede estar lejos de ser perfecto, esto debería ser capaz de tomar el papel de las definiciones, como a menudo se hace aquí. Me tomó un tiempo para darse cuenta de que era el problema, en realidad aparentemente generalizada. Yo mismo estaba en el proceso de reescribirlo todo en profundidad, con definiciones explícitas, citas, referencias y explicaciones formales con homomorfismos inyectivos. ¿Debo terminar ndash babou Mar 7 15 at 20:28 4 Respuestas Morse código es un prefijo ternario código (para la codificación de 58 caracteres) en la parte superior de un prefijo código binario que codifica los tres símbolos. Esta fue una respuesta mucho más corta cuando se aceptó. Sin embargo, teniendo en cuenta los malentendidos considerables entre los usuarios, y siguiendo una solicitud del OP, escribí esta respuesta mucho más larga. La primera sección de frutos secos le da la esencia de la misma. En una (grande) cáscara de nuez Al preguntar es Morse Code binario, ternario o quinary no hay comparación de posibles respuestas a menos que uno fija algunos criterios para una respuesta aceptable. De hecho, sin criterios adecuados, uno puede inventar explicaciones para casi cualquier tipo de estructura. Los criterios que he elegido son los siguientes: debe reflejar la descripción de tres niveles de Morse-código con la representación de puntos / guiones en el segundo nivel que debe ajustarse a la presentación y las herramientas matemáticas desarrolladas para el análisis teórico de los códigos, tanto como Posible debe ser tan simple como sea posible debe claramente hacer aparente las propiedades del código Morse. Esto pretende evitar el piratería arbitraria, que ignora los conceptos básicos de la teoría del código como científicamente estudiados, y que puede tener cierto atractivo al dar una ilusión de análisis sistemático, aunque demasiado informal para ser concluyente. Este sitio se supone que se trata de la informática. No la programación. Debemos utilizar un mínimo de ciencia establecida y conceptos aceptados para responder a una pregunta técnica. Un análisis rápido de la norma muestra que todos los símbolos utilizados en el código Morse son finalmente codificados en binario. Ya que se transmite como una cadena de unidades de igual longitud, con una señal que puede estar activada o desactivada para cada unidad. Esto indica que los mensajes Morse se codifican en última instancia en un alfabeto lógico Sigma1. Pero eso no dice nada de la estructura interna del código. La información a ser codificada es una cadena en un alfabeto de 58 símbolos (de acuerdo con el estándar), incluyendo 57 caracteres y un espacio. Esto corresponde a un alfabeto Sigma3, siendo el último symbl el espacio. Sin embargo, la norma especifica que hay un alfabeto intermedio Sigma2, basado en puntos y guiones y posiblemente otros símbolos. Es bastante claro que las cadenas en Sigma3 deben codificarse como cadenas en Sigma2, y que las cadenas en Sigma2 deben codificarse como cadenas en Sigma1. Por lo tanto, dado que no hay elección para Sigma1 y Sigma3, la pregunta debe entenderse como: ¿Qué número de símbolos deberíamos considerar en el alfabeto intermedio Sigma2 para explicar mejor la estructura y las propiedades de todo el código Morse, que también implica especificar las dos codificaciones entre los tres niveles. Dado el hecho de que el código Morse es un prefijo homomórfico (longitud variable) código que impide cualquier ambigüedad al decodificar una señal, podemos explicar simplemente esta propiedad esencial con un alfabeto ternario Sigma2, y dos esquema de codificación C de Sigma3 a Sigma2, y C De Sigma2 a Sigma1, que son tanto homomórficos y prefijo, por lo tanto ambos códigos inequívocos, y por lo tanto, capaz de ser compuesto para dar un prefijo inequívoco de codificación de los 58 símbolos en binario. Por lo tanto, el código Morse se compone de un código ternario prefijo expresado en el alfabeto, con estos tres símbolos mismos codificados en binario con las siguientes palabras clave: punto a 10, guión a 1110 y sep a 00 Tenga en cuenta que lo que se conoce como el espacio entre consecutivas Punto o guión está realmente incluido en la representación de punto y guión. Ya que esta es la representación matemática usual para estos tipos de códigos, que normalmente se definen como homomorfismos de cadenas de símbolos de origen a palabras de código expresadas con símbolos de destino, como acabo de hacer. Esto parte un poco de algunas de las presentaciones dadas en la norma, que apunta más a especificar intuitivamente el código para los usuarios, que a analizarla por sus propiedades estructurales. Pero la codificación es la misma en ambos casos. Incluso sin los tiempos precisos de la norma, un decodificador de la señal analógica todavía podría traducirlo en el alfabeto ternario que sugerimos, de modo que la comprensión anterior del código ternario todavía sería válida. Códigos: puntos básicos Esta respuesta se basa en el estándar UIT-R M.1677-1. Fechado el octubre de 2009 (gracias a Jason C para la referencia). Usaré la terminología punto y guión. En lugar de dit y dah. Ya que es la terminología utilizada por esta norma. Antes de comenzar a discutir el código Morse, necesitamos ponernos de acuerdo sobre qué es un código. Obviamente, las difíciles discusiones sobre esta cuestión lo requieren. Fundamentalmente, la información debe 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 la de un código de una representación (la fuente) a otra (el objetivo). Una representación puede tomar muchas formas, tales como voltaje eléctrico variable, puntos coloreados en papel, cadena de caracteres, números, cadenas binarias de 0s y 1s, 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 alguna información puede ser originalmente analógica, usualmente la convertimos en una representación lógica para poder definir con precisión su procesamiento por medios matemáticos, o por personas. A la inversa, tratamos con la representación lógica usando dispositivos físicos, como computadoras o transmisores, necesitamos dar 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, tal como se describe en la norma. 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 idénticamente estructurada, sobre la cual construiremos nuestro análisis de qué tipo de código Morse puede ser. La teoría del código es un cuerpo matemático de conocimiento basado en el análisis de las representaciones lógicas. Sin embargo, volveremos sobre la transición analógica / lógica en la discusión al final. Códigos: definiciones Nuestra visión lógica es que el código se utiliza para traducir cadenas de fuentes en un alfabeto fuente S a un alfabeto objetivo T. A menudo es el caso de que ambos alfabetos son idénticos, generalmente binarios, cuando el propósito es agregar alguna propiedad extra A la representación de la información, por ejemplo haciéndola más resistente a errores (detección y corrección de errores), o reduciendo la representación mediante la eliminación de la redundancia (compresión de código sin pérdida) y posiblemente con una pérdida cuidadosamente controlada de alguna información (compresión con pérdida). Sin embargo, el propósito del código Morse es proporcionar sólo 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 a los humanos Percepción y habilidades de manipulación. Esto se logra por lo que se llama código de longitud variable: Usando términos de la teoría del lenguaje formal, la definición matemática precisa es la siguiente: Sea S y T dos conjuntos finitos, llamados alfabetos fuente y objetivo, respectivamente. Un código C: S a T es una función total que asigna cada símbolo de S a una secuencia de símbolos sobre T, y la extensión de C a un homomorfismo de S en T, que naturalmente asigna cada secuencia de símbolos fuente a una secuencia de objetivo Símbolos, se conoce como su extensión. Llamamos a codificar la imagen C (s) en T de un símbolo sin S. Un código de longitud variable C es decodable únicamente si el homomorfismo correspondiente de S en T es inyectivo. Esto 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 es inequívoco. Lo que significa que cualquier cadena puede ser inequívocamente decodificado, si es que en absoluto. 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 alled código instantáneo. O código sin contexto. La razón de estos nombres es que al leer una cadena de destino que comienza con una palabra de código w de un prefijo, reconoce el final de la palabra de código tan pronto como lea 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. Se demuestra fácilmente que la descodificación única y la propiedad de prefijo están cerradas bajo la composición de los códigos. Obsérvese que la definición como homomorfismo implica que no existe una separación especial entre las palabras de código. Es su estructura, como la propiedad prefijo, que permite identificarlas inequívocamente. De hecho, si hubiera tales símbolos de separación, tendrían que ser parte del alfabeto objetivo, ya que serían necesarios para decodificar cadena del alfabeto objetivo. Entonces sería muy sencillo volver al modelo teórico de código de longitud variable añadiendo el separador a la palabra de código precedente. Si eso fuera a aumentar la dificultad contextual (debido, por ejemplo, a múltiples separadores), que sólo sería una pista de que el código es más complejo de lo aparente. Esta es una buena razón para atenerse al modelo teórico descrito anteriormente. El código Morse El código Morse se describe en el estándar en tres niveles: 3. se pretende proporcionar una codificación de texto en lenguaje natural, utilizando 57 caracteres (27 letras, 10 dígitos, 20 sin - bolos y ponctuaciones) y un espacio inter-word Para cortar la cadena de caracteres en palabras. El espacio entre palabras se utiliza como un carácter especial, que se puede mezclar con los demás, que voy a notar SEP. 2. todos estos caracteres se deben codificar como sucesiones de guión y punto. Utilizando un espacio entre letras, que notaré sep. Para separar el guión y el punto de una letra de los de la letra siguiente. 1. El guión y el punto. Así como sep deben ser codificados como señal o ausencia de señal (llamado espaciamiento) con longitud definida con precisión en términos de alguna unidad aceptada. En particular, el guión y el punto que codifican una letra deben estar separados por un espacio entre elementos, que notaré. 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 de espacio o longitud de tiempo), de modo que una señal se apague durante toda la duración de cada unidad, tal como se especifica en la sección I de la Parte I del Anexo 1 2 de la norma: Esta es claramente una codificación analógica en lo que se conoce como un flujo de bits, que puede ser representado lógicamente en la notación binaria por una cadena de 0 ans 1. de pie para el análogo de encendido y apagado. Con el fin de abstraer las cuestiones relacionadas con la representación analógica, podemos considerar que los mensajes de código Morse se transmiten como cadenas de bits, que vamos a notar con 0 y 1. Por lo tanto, el extracto anterior de la norma puede expresarse lógicamente como: 0. Un punto está representado por 1. 1. Un guión está representado por 111. 2. Un espacio entre elementos está representado por 0. 3. Un espacio inter-letra sep es representado por 000. 4. Un espacio entre palabras SEP está representado por 0000000. Así que pudimos 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 se trata precisamente de cómo se describe el sistema, hay algo más en él, y no es la manera más conveniente de pensarlo, desde un punto de vista ingenuo o matemático. Tenga en cuenta también que esta descripción está dirigida a laicos, no especialistas en teoría de códigos. Por eso describe más la apariencia visible que la estructura interna que la justifica. No tiene ninguna razón para excluir otras descripciones que sean compatibles con ésta, aunque matemáticamente más estructurada, para enfatizar las propiedades del código. Pero primero, debemos notar que la descripción completa del código implica 3 niveles de representación, inmediatamente reconocibles: 3. El texto, compuesto de una cadena de caracteres, incluyendo SEP. 2. La codificación de una cadena de letras como una cadena de puntos. Guión y sep. 1. La codificación de una cadena de nivel 2 de estos tres símbolos como una cadena binaria. Podemos discutir sobre qué símbolos se codifican 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, puntos y puntos en el centro, y los bits 0 y 1 en la parte inferior. Esto implica que hay necesariamente dos códigos, uno del nivel 3 al nivel 2 y el otro del nivel 2 al nivel 1. Analizar los tres niveles de representación Para tener un análisis consistente de este sistema de codificación de 3 niveles, debemos Primero 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, está compuesta solamente de 0 y 1. 3. En el nivel de texto, necesitamos un alfabeto de 58 símbolos, incluyendo los 57 caracteres y el espacio inter-word SEP. Todos los 58 de ellos tienen que tener en última instancia una codificación binaria. Pero, aunque el estándar de código Morse especifica estos 571 caracteres, no especifica cómo se deben utilizar para codificar información. Ese es el papel del inglés y de otros lenguajes naturales. El código Morse proporciona otro sistema con un alfabeto de 58 símbolos, en el que podrían construir un código de 58-ary, pero el código Morse no es en sí un código de 58-ary. 2. A nivel de punto y de guión, 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 de puntos y guiones. Junto con un separador sep para marcar cuando terminó una letra, y otro inicio. También necesitamos algunos medios para codificar el espacio inter-word SEP. Podríamos tratar de proporcionarlo directamente al nivel 1, pero esto desordenaría la organización estructurada por niveles del código. De hecho, la descripción de la norma podría ser criticada por hacer precisamente 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, que es anterior a este tipo de análisis matemático. Esto requiere varias observaciones: en el nivel 3, el nivel de letra, el espacio inter-letra sep ya no es significativo. 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 el papel. Es necesario en el nivel 2 reconocer las palabras de código que representan las letras, pero eso es todo. Similarmente en el nivel 2, el espacio entre elementos ya no es significativo. No tiene sentido en el mundo del punto y el guión. Pero sólo es necesario en el nivel 1 para identificar las palabras de código binario que representan el punto. guión. Pero en el nivel 1, no se puede distinguir del bit 0. Así que el espacio inter-elemento ya no es nada especial. Es sólo un uso de 0. Sin embargo, como se explicó anteriormente, si el código Sigma2toSigma1 debe analizarse utilizando el conocimiento de los códigos de longitud variable, los separadores deben añadirse a las palabras de código que siguen, para definir el código como un homomorfismo de cadena simple. Esto implica la siguiente especificación parcial del código: dot to10 y dashto 1110 El alfabeto de nivel 2 Sigma2 necesita al menos otro símbolo, el espacio entre letras notado sep. Que debe ser 000 según la letra de la norma. Sin embargo, la definición del código de longitud variable como un homomorfismo requiere anexar el espacio entre elementos 0 a cada palabra de código para el punto y el guión. Por lo tanto debemos tener sólo 00 como palabra clave para sep. De modo que junto con la terminación 0 desde el punto o guión precedente. Hace 3 0 como lo requiere la norma. Esto siempre funciona ya que no hay ninguna disposición en el estándar para tener dos separadores entre letras que se suceden. Esto basta para codificar el alfabeto Sigma2 con un código homomórfico C. Sigma2toSigma1 definido como sigue: Y tenemos la buena sorpresa de descubrir que ninguna palabra de código es un prefijo de otro. Por lo tanto, tenemos un prefijo de código, que es inequívoco y fácil de decodificar. Ahora podemos proceder de manera similar para definir el código C: Sigma3toSigma2. El estándar utiliza cadenas de puntos y guiones como palabras de código para los caracteres en Sigma3, en la forma dada por las tablas de la norma por ejemplo punto punto punto de guión para representar la letra f. Nuevamente, estas palabras de código están separadas por espacios entre letras. Para definir el código como un homomorfismo, debemos incluir el separador en las palabras de código, de modo que la definición del homomorfismo se convierta en algo: fto punto punto punto punto sep Esto se aplica a cada uno de los 57 caracteres del alfabeto Sigma3. Pero también necesitamos la palabra separador SEP. Que, según la norma, es 0000000. Observamos primero que ya 3 bits 0 son proporcionados por el código, 2 por el sep que termina la última letra de la palabra, y 1 por el bit 0 que terminan el último punto o guión De la codificación de esa última letra. Por lo tanto SEP debe ser finalmente codificado como el resto 0000. Pero para respetar el enfoque en niveles, SEP debe ser codificado en algún código de Sigma2. Dado que sep es binario codificado como 00. se sigue que SEP puede codificarse como sep sep. Por lo tanto podemos codificar el alfabeto Sigma3, con un código homomórfico C. Sigma3toSigma2 definido de la siguiente manera: A a punto dash se p B a dash do t dot punto sep. Z al dash punto punto dot sep. 7 al guión punto punto punto punto sep. SEP a sep sep (para el separador de palabras) Y tenemos la sorpresa adicional de ver que ninguna palabra de código es un prefijo de otro. Por lo tanto, el código C es también un prefijo. Dado que la propiedad prefijo está cerrada bajo la composición de los códigos, el código Morse C C circ C es un prefijo. Podemos concluir que el código Morse puede ser entendido y analizado fácilmente como la composición de un prefijo de codificación binaria de un alfabeto de 3 símbolos en un alfabeto binario y un prefijo que codifica un alfabeto de 58 símbolos (57 caracteres y un espacio) En el alfabeto de 3 letras. La propia composición es un prefijo de codificación de los 58 símbolos en una representación binaria. Observaciones sobre este análisis. Siempre es difícil establecer que la presentación de una estructura es la mejor que se puede llegar a. Parece, sin embargo, que el análisis anterior cumple con los criterios establecidos al principio de esta respuesta: la proximidad a la definición de tres niveles, formalmente presentada de acuerdo con la teoría de codificación actual, la simplicidad y la evidencia de las principales propiedades del código. Tenga en cuenta que no tiene mucho sentido buscar propiedades de corrección de errores. El código Morse puede incluso no detectar un solo error de bit, ya que simplemente puede cambiar dos puntos en un guión. Sin embargo, sólo provoca errores locales. Con respecto a la compresión, la codificación ternaria fue diseñada para reducir aproximadamente el número de puntos y guiones, en un tipo aproximativo de codificación de Huffman. Pero los dos códigos compuestos podrían hacerse fácilmente más densos. En cuanto al tamaño de los alfabetos, no hay elección para el binario y los 58 símbolos del alfabeto. El alfabeto intermedio podría contener más símbolos, pero cuál sería el propósito Sin embargo, algunas personas estarían inclinadas a reconocer el espacio DET en el nivel 2, haciendo así el alfabeto cuaternario. A continuación, utilizarlo directamente en el nivel 3, codificado como sí mismo en el nivel 2. Esto cumpliría con la definición estándar, para DET codificado en binario como 0000. Pero evitaría el análisis de la codificación binaria C como un prefijo de código, lo que hace más difícil Muestran que C es un código prefijo, por lo tanto inequívoco. De hecho, tal elección haría que la cadena binaria 0000 fuera ambigua, decodificable como SEP o como sep sep. La ambigüedad tendría que ser resuelta con una regla contextual que sep no puede seguirse, haciendo la formalización 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 longitudes iguales 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, lo que parece poco probable que haya ocurrido por casualidad (aunque es posible). Sin embargo, a partir de una mirada (demasiado superficial) a la patente original 1647. no parece haber sido tan preciso, con frases como (en la parte superior de la página 2): El signo de un número distinto, o de un número compuesto cuando Utilizado en una oración de palabras o de números, consiste en una distancia o espacio de separación entre los caracteres de mayor extensión que la distancia utilizada para separar los caracteres que componen dicho número distinto o compuesto. Las personas que más tarde fueron enviadas a mano o recibidas por oído también eran poco probable que sea precisos tampoco. De hecho, su puño. Es decir, su sincronización, era a menudo reconocible. Esta opinión también es apoyada por el hecho de que las longitudes de espaciado no siempre se respetan. Particularmente al aprender 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 en un alfabeto lógico daría naturalmente un alfabeto quínico, en el cual los 58 símbolos tienen que ser codificados. Esto por supuesto ya no es una presentación de tres niveles del código Morse. However, in order to make sense (and possibly avoid ambiguity), this alphabet should be used with the constraint that two signal symbols ( dot or dash ) cannot follow each other, and that pause symbols cannot follow each other either. Analysis of the code and its properties would be made more complex, and the natural way to simplify it would be to do what was done: introduce proper timings to turn it into the composition of two codes, leading to the fairly simple analysis given above (remember that it includes showing the code is prefix). Furthermore, it is not strictly necessary to follow exact timings in the analog representation. Since the decoder of the analog translation can distinguish short, medium and long pauses, by whatever means, it should just mimic what was done in the binary case. Hence short and medium signal (necessarily followed by a pause) are recognized as logical dot or dash. Short pauses are forgotten, as only serving to mark the end of dot or dash. Medium pauses are recognized as sep. and long pauses are recognized as two sep in succession. Hence the analog signal is represented in a ternary alphabet, which can be used as before to encode the 58 symbols alphabet. Our initial analysis can be used even when timings are not strictly respected. Alternatively, the signal-pause alternance could be used to turn this quinary alphabet into a ternary one, keeping only the three durations as symbols of the alphabet, and using contextual analysis to determine whether a given duration is signal or pause. But this is again a bit complex to analyze. This just shows that there are many ways to look at things, but they are not necessarily convenient, and may not all lend themselves easily to analysis with the mathematical tools that have been developed to analyze codes. More references to the patents can be found on the Internet. Conclusion Given the precise timings of the standard, a good answer seems to be to consider Morse code as the composition of a ternary prefix encoding (of 58 characters) into a 3 symbols alphabet, composed with a binary prefix encoding of these three symbol. Without the precise timing of the standard, the binary level can no longer be considered. Then the analog to logical decoding naturally takes place at the level of the intermediate alphabet of dot and dash. However, the analog to logical decoder can stil decode to the previous 3 symbols alphabet, thus preserving the applicability of our analysis. Question: In the ternary argument you start with an alphabet , from this you construct four symbols , from this you construct a ternary code word set by allowing sep2sep1 sep1 sep1 . The code word set was chosen because it implicitly ties the symbols to the encoding, which is convenient, and the OP is asking about binary storage. However, why can39t you instead use code word set then say quotdotonquot, quotdashon on onquot, sep0quotoffquot, sep1quotoff off offquot, sep2quotoff off off off off off offquot (where sep0 is intersignal rest) ndash Jason C Mar 6 15 at 15:02 This answer isnt as long as it looks this site just puts a lot of spacing between list items Update: Actually its getting pretty long. Morse Code isnt officially binary, ternary, quaternary, quinary, or even 57-ary (if I count correctly). Arguing about which one it is without context is not productive. It is up to you to define which of those five it is based on your application and the encoding requirements for your specific situation . To that end, there are pros and cons to each symbol set size, which you should consider for your situation before making a decision. For the basis, M.1677. the international Morse Code standard, section 2, defines timings as: 2 Spacing and length of the signals 2.1 A dash is equal to three dots. 2.2 The space between the signals forming the same letter is equal to one dot. 2.3 The space between two letters is equal to three dots. 2.4 The space between two words is equal to seven dots. Note that that defines timings only, e. g. a dash does not mean the same thing as three dots, it is simply the same length. The base unit of time is a dot. Binary We can choose binary if wed like. It is possible to represent Morse Code with strict binary, as you call it -- that authors approach was to assign the digits to dot and dash. That approach does not work and I do not think the author has a firm grasp of Morse code. But there is a different approach that works. If we choose binary, we essentially represent whether the signal is high or low with each symbol occupying a single dot-lengthed time slice. Note that this is also the approach described on the List of Binary Codes page you cited. Other binary codings can be chosen as well (e. g. Bob Jarvis answer ) at the expense of increases in difficulty decoding back to audible Morse Code (Bobs encoding cannot be decoded statelessly, for example, the tradeoff is it provides shorter encoded sequences). Signal separator: 0 Letter separator: 000 Word separator: 0000000 Three dots: 10101 Three dashes: 11101110111 The word son: 101010001110111011100011101 The phrase is a: 10100010101000000010111 Minimal symbol set size Easily managed with typical digital logic Easy to decode into audible Morse Code (presuming no validation is done) stateless decoding and does not require storing information about the timing of symbols (every symbol is the same length). Long encodings. Many opportunities for invalid encodings. Individual symbol meanings (0, 1) depend on context. Ternary With this choice, we define letter and word spacings as rests, and signal spacings are implicit (although you could choose to require dot length rest symbols between signals, if it suits you better). Letter separator: 000 Word separator: 0000000 Three dots: 111 Three dashes: 222 The word son: 11100022200021 The phrase is a: 11000111000000012 Small symbol set size. Signal separator no longer needed. Shorter encoding lengths than binary. Removes some invalid encodings (e. g. 0110 with the binary choice no longer possible). Still lengthy encodings. Still many possibilities for invalid encodings, in particular, the rests. Cannot be decoded statelessly unless you choose to place explicit dot length rests between signals. Signal separators are implicit unless you choose to place explicit dot length rests between signals. Some individual symbol meanings (0) depend on context. Quaternary Three dots: 222 Three dashes: 333 The word son: 2220333032 The phrase is a: 220222123 Very short encoded length. Possibility of invalid encodings is reduced. Symbols are semantically accurate. Arguably, more human-readable. Large symbol set size. Cannot be decoded statelessly. Signal separators are implicit. Quinary A direct interpretation of Wikipedias list. Note this is very similar to the binary choice except the various valid combination of binary 0s or 1s are given their own symbols. Signal separator (0) Letter separator (1) Word separator (2) Dot (3) Dash (4) Three dots: 30303 Three dashes: 40404 The word son: 303031404041403 The phrase is a: 3031303032304 Pros (compared to quaternary): Can be decoded statelessly. The only symbol set size that unambiguously, directly and concisely represents the five objects mentioned in section 2 of the standard: dot (to which all timings are relative to), dash, space between the signals, space between two letters, space between two words. Cons (compared to quaternary): Higher possibility for invalid encodings. Increased encoding lengths without adding extra information (tradeoff is decoding ease). Not as easy to decode as the binary choice, in that each symbol is a different length in time and this association must be maintained somewhere. 57-ary: Included for completeness. 26 letters 10 numbers 20 punctuation marks and miscellaneous signs Word separator (space) The word son: son The phrase is a: is a Shortest encoding Human readable Invalid encodings are impossible. Largest symbol set Difficult to decode into Morse Code necessary to maintain tables of Morse Code output sequences for each symbol and necessary to detect word boundaries and adjacent letters to determine where to insert various rests. Impossible to expand beyond the Morse Code specification without adding new symbols (tradeoff for being immune to invalid encodings). Signal and letter separators are implicit. Termination For storage as a symbol stream on a device, if you need to do that, its worth noting that M.1677 defines message and transmission termination sequences. From Part II: 5 Every telegram shall be terminated with a cross signal (. . .) 6 The end of the transmission shall be indicated by the cross signal (. . .) followed by the invitation to transmit signal K (. ) 7 The end of work shall be indicated by the station that transmitted the last telegram. The correct indication is the end of work signal (. . ) Unfortunately, the standard is silent on the ability to distinguish e. g. the string K from the sequence ( end-of-telegram . invitation-to-transmit ). However, end-of-work is unique. If you are storing morse code, then, you will have to make a choice as to how you want to indicate the end of a stored sequence. If you are storing an entire conversation, for example, and are using the binary symbol set, you could reasonably consider end-of-work to be the end of sequence indicator, represented as the unique bit sequence 101010111010111. You need to consider the type of data you are storing (e. g. message fragments, entire messages, entire conversations) as well as the facilities offered to you by your storage medium (e. g. ability to prefix with message length) before deciding. I suppose you could go so far as to define your own end of sequence indicator. In any case these are all matters of underlying storage and have too many possibilities to list here. The choice is really up to you based on whatever is appropriate for your situation. Cannot be decoded statelessly: These encodings require some state to be maintained in order to decode into audible Morse Code. They all require If preceding symbol was a dot/dash and current symbol is a dot/dash then insert signal separator. While you could try and cheat and automatically append a signal separator to all symbols while reducing word separator to 5 rests and letter separator to 1, M.1677 afaict does not explicitly prohibit consecutive word separators, which breaks this kludge. Signal separators are implicit: This is directly related to the above note but more semantically oriented. These encodings have implicit signal separators in their notation. That is zzz is intuitively three separate zs, the boundaries are piggybacked on whatever it is that separates symbols in the encoding itself. Consider the description three dots in a row intuitively we take this to mean three separate dots, but if separators werent implied this could be taken to be indistinguishable from a dash. Only the Wikipedia-style binary and quinary (or ternary with the explicit signal separator option) representations remove all ambiguity and shortcuts here, which can be of great value depending on the situation. It is for this reason that there is a strong argument for the quinary choice. TLDR: As you can see, there are advantages and disadvantages to each, and its up to you to decide how you want to treat it based on your requirements . There is no right answer. You could attempt to argue that one is more appropriate than the other in general, but these arguments would boil down to pedantic preferences, as without context, there is no correct answer. Now, all that said, in my own opinion, the quinary choice is the representation that feels the most right to me for Morse Code itself (originally I had favored quaternary). It is the only choice that provides all of the following: Context-free symbols (a symbol on its own contains all information about its meaning without examining adjacent symbols). Representation of all primitives defined in M.1667. Separators (signal, letter, word) are not implied by notation or underlying encoding (this is important, if I wrote . those. s are significant and easy to overlook). However, there are strong arguments for all. The arguments related to encoding are also applicable to the treatment of Morse itself. There is no 100 concrete answer, but it can certainly make a good topic for debate with your friends at the bar. You keep referring to stateless decoding in your arguments. In coding theory, states seem to be used only rarely, in convolutional codes, which are a family of error correcting codes. This is completely off-topic as Morse code is anything but error correcting. Indeed, it cannot even detect some one bit errors, let alone correct them. You contrive various kinds of arbitrary codes as being a version of Morse code, but they bring no understanding. Why present them Not requiring states, i. e. homomorphic encoding, seems a minimum requirement. And you miss the interesting encodings. cc KorayTugay ndash babou Mar 6 15 at 11:34 babou I don39t mind having a couple off-topic points. Of course the symbol sets are arbitrary that39s precisely the point I39m making with this answer. The ternary word set on top of binary prefix code argument is equally arbitrary. At first glance no, but fundamentally, you made the arbitrary choice to base the argument on a code word set with a two letter alphabet (0 and 1). It is an arbitrary choice, because the choice to give quotsep sep sepquot special meaning but not do that to a quotunit 1quot is arbitrary. You could just as easily say that quotdashquot is quotdot dot dotquot and argue for binary over ternary. ndash Jason C Mar 6 15 at 15:16 Despite my initial thoughts on this, it turns out this question can be formalized in a way that admits a fairly precise answer (modulo a couple of definition issues). The answer turns out to be 3 or 4, i. e. ternary or quaternary. The crowd-pleaser everything goes from 2 to 57 answer is correct only in the sense that if someone asks you for a characterization of abelian groups, you tell him they are sets. Lets start by looking at the physical encoding for Morse code. Thats actually BASK. i. e. binary amplitude-shift keying, which is just an elaborate way o saying there two physical (electrical/optical etc.) amplitude levels for us to encode our message. So, the immediate question is: doesnt this mean that answer is that Morse code is binary Well, its binary only in a rather non-informative way, in the sense that the binary on/off signal sent over the wire doesnt correspond directly to either lines or dots. At this vague level of correspondence, we could even send the ASCII code (with the direct, obvious bit encoding) and call it Morse and/or binary the same would apply to any Huffman code (instead of ASCII). So how can we make the correspondence more precise and at the same time formalize our question Coding theory comes to help. Let M be the set of morsable symbols, roughly 66 symbols if I understand the Morse code universe correctly this includes the 26 Latin letters, the 0-9 digits, and a bunch of ancillaries like some punctuations, prosigns etc. Its actually not terribly important what these are. A code is an injective mapping c:Mto T where T (not T) is a set of codewords. To be physically representable in our underlying BASK hardware, we require that Tsubset , i. e. our codewords need to be a strings of bits note that this entails cs values are strings of codewords, so strings of strings of bits, but ultimately linearized as just strings of bits. To be a faithful characterization of Morse code, we need T to contain some direct equivalents of lines and dots, in the sense that there must be a bijection between these codewords and the dots and lines representing Morse code on paper. T is also required to be almost a uniquely decipherable code, meaning that any factoring of an element of T in terms of elements/codewords of T ideally must be unique. (Note that some authors, e. g. Berstel. dont even call T a code unless it is uniquely decipherable, but others, e. g. Steve Roman have a different terminology where any mapping is a code, but those that are uniquely decipherable are just said so and abbreviated UD codes. Here Ill just the latter terminology. Youll also see a bit later why I said ideally.) Since c is only required to be an injection and not a surjection, we can populate T with arbitrary junk beyond whats needed to get a UD code, as long as the strings generated by this junk arent the preimage of anything morsable. For example, a string of exactly 42 dots doesnt correspond to anything in any variant of Morse code I saw. So when when we ask if the Morse code binary, ternary, quaternary, quinary etc. the question should is asking for the minimal cardinality of T with the above two properties, i. e. it is almost an UD code and we have an obvious bijection between the paper-based line and dot to some elements of T. There a two ways to proceed in constructing T, either top-down by observing that you need a separator between the paper-based, line-dot representation of Morse letters in order to get a UD code, or bottom-up since in the ITU international Morse code were given the time-lengths of the lines, dots, and various pauses. Ill use the latter approach here because there are numerous ways to get some T otherwise, i. e. you can pick fairly arbitrary time-lengths, e. g. the defunct American Morse code used shorter lines than the ITU version. Start lets with the ITU signal-length-derived representation which has five basic codewords, generated from the unit-length on signal (1) and off signal (0): just-dot (1), just-line (111), unit-space (0), letter-space (000), and word-space assumed seven 0s in the International Morse but can vary in practice. Immediately note that the unit-space can only appear followed by a 1 only right after just-dot and just-line and this 0-termination of just-dot and just-line (which is a comma code more on this later) is actually required otherwise you couldnt even tell apart lines from dots. This gives you the obvious reduction to four codewords with: dit just-dot unit-space 10 and dah just-line unit-space 1110. So thats the quaternary Morse code: dit. dah. letter-space. word-space. The next observation is that the word-space can be approximated (or even assumed to be) two letter-space s, i. e. six zeros. So how thats how you get the ternary codeword set As references for this line of reasoning see e. g. 1 2 . There is also a technical reason to prefer the ternary codewords: T is a uniquely decipherable code, in fact it is a prefix code. However (or the version with just six zeros) is no longer uniquely decipherable because 0 03070703 so theres a non-unique factorization. While this is theoretically a problem, it is of no practical concern because the human metronome has difficulty measuring very long silences anyway, so basically any silence longer than a certain length is assumed (by a human) to be a word-space of sorts. Also note that if you stick 0 in that set too (i. e. take quinary view), it gets even more wrong, in the sense that even 000 no longer has unique factorization (as itself is a code word too). Furthermore, 0 is not in the preimage of any Morse symbol, so it is junk in T, much like you can add 1 0 to T in fact adding the latter is less troublesome as unlike adding 0 it wont make the code lose the UD property. The reduction/abstraction from dit. dah. letter-space as binary codewords to three abstract symbols (trits) is useful for showing quickly that the (ternary) Morse code is UD thats immediately obvious because letter-space acts as a comma, i. e. the ternary Morse code is a comma code. (Note that other authors define comma code in a more restrictive sense where all symbols other than the comma are the same one Im using it here in the wider sense given in D. H. Smiths Post-modern algebra. which just means using a unique terminating symbol for ever codeword.) Also note that the comma0code technique is used at two levels in the Morse code the just-line and just-dot are terminated by the short comma unit-space 0 to make them distinguishable from each other. Once you abstract that construction to the two different ( dit and dah ) trits, all the Morse code letters are also comma-coded by terminating them with 000 which the third trit. You can also use the trit approach calculate entropy assuming a dah and dit and letter-space are equivalent as trits 3. in the sense thatmdashfor examplemdashe takes 2 trits and y takes 5 trits. The abstract trit approach is not so useful if you care about how expensive each symbol is to actually transmit in the real BASK Morse encoding on a line. For the latter, you need to get down to the real bit lengths of the 3 (or 4) symbols, which are seen as just as transitions in an automaton. For instance the letter e takes 5 bits to encode (as dit letter-space ) while y takes 17 bits (three dah s, one dit and a letter-space ). This line of thinking goes back to Shannon (see pp. 3-4). More details can be found in Blahuts Information Theory and Coding. p. ej. he calculates an average of 9.296 units of signaling time per source output letter for Morse code using the (unconditional) probabilities of letter occurrences in English. For a slightly different exposition (by a zoologist) you could look at J. P. Hailmans he gets a different average (10.2) because he assumes slightly different probabilities for English letters, but otherwise his analysis is conceptually the same. To summarize this: you can take several views of the Morse code, but some are more fruitful than others in saying anything interesting about it. Im not aware of any analyses using the quinary view and in order for this model to not be reducible to four symbols youd have to make some assumptions about the occurrence the unit-space that dont hold in actual Morse, e. g. that you could have two but not necessarily three adjacent unit-spaces (which is invalid Morse). The ternary view buys you a quick analysis of the unique decodability. The most deep/fruitful view is the one which sees the 3 or 4 symbols as actually represented by unequal amounts of bits as they are in the real Morse code ( dit 2, dah 4, letter-space 3 and word-space 6 or 7) its still insightful at this low-level to consider the ternary/quaternary symbols as transitions in an automaton. As to why Wikipedia sucks on this. well on some topics it just does. Their main article on en. wikipedia. org/wiki/Codingtheory is not really something Id recommend reading either. I cant say much about the (Petzold) book youve mentioned other than it doesnt appear written by an expert in information theory. Petzold is correct only in the sense that if Morse-coded messages consisted of only one letter you could reasonably say they are in some binary code if you want to send words though, you need a letter separator, otherwise the code would be horribly not UD, to the point of impracticality. Its a bit late here for me to revise the entire post, but babou makes a valid point below that apparently Shannon, Blahut and others have misinterpreted the (current) ITU standard (assuming it hasnt changed since their time) in the following technicality: the unit space is added between dits and dahs of the same letter . but only the letter-space is added between letters. This reading of the standard seems to check out based on a fairly recent practitioners book. So we need to borrow one 0 from letter-space into each dit and dah when they are in terminal positions of a letter, leaving only two 0s for the letter-space. i. e. T . That also means that (for example) the size of e is only 4 bits, not 5. Originally Morse code was intended to be written marks on a strip of paper, but telegraph operators soon became able to read the clicks of the equipment. This version of Morse (American or land Morse) had three mark elements, the dot, the dash, and the long dash. The use of International Morse during the last century, via radio transmission, was usually encoded by hand (on a telegraph key) and decoded by ear, by listening to the pattern of beeps produced by the receiver. Skilled operators could receive better than unskilled ones, and some people could produce code that was easier to understand than that of others. A good transmitting operator was said to have a good fist. An inept operator was called a LID. (For the origin of lid -- which I believe comes from a common error in American Morse of sending LID for DD, daaahh, dit dit, dah dit dit instead of dah dit dit, dah dit dit -- see this reference: english. stackexchange/questions/31818/how-did-the-word-lid-come-to-mean-poor-operator-in-the-context-of-telegraph .) Thus it follows that the encoding of Morse into a binary format depends upon purpose, and thus whether the quality of good fist versus poor fist is to be retained. Is a string of on-and-off switching to be matched to a clock and corrected for difficulties in phase or duration of each portion of the signal Or is it instead to be sampled at a rate sufficient to retain random or confusing variations, presumably for later inspection or delight answered Mar 2 15 at 11:49
No comments:
Post a Comment