Le code Morse est-il binaire, ternaire ou quinaire?

27

Je lis le livre: " Code: Le langage caché du matériel informatique et des logiciels " et dans le chapitre 2, l'auteur dit:

Le code Morse est dit être un code binaire (signifiant littéralement deux par deux) parce que les composants du code ne se composent que de deux choses - un point et un tiret.

Wikipédia en revanche dit:

À proprement parler, ce n'est pas binaire, car il y a cinq éléments fondamentaux (voir quinaire). Cependant, cela ne signifie pas que le code Morse ne peut pas être représenté comme un code binaire. Dans un sens abstrait, c'est la fonction que les opérateurs télégraphiques remplissent lors de la transmission des messages (voir quinaire).

Mais là encore, une autre page Wikipedia inclut le code Morse dans la «Liste des codes binaires».

Je suis très confus parce que je pense que le code Morse est en fait ternaire . Vous avez 3 types différents de «possibilités»: un silence, un bip court ou un bip long.

Il est impossible de représenter le code Morse en «binaire agitateur» n'est-ce pas?

Par «strict binaire» je veux dire, pensez au flux de binaire: 1010111101010 .. Comment suis-je censé représenter un silence, un bip court et / ou un bip long?

La seule façon dont je peux penser est la «taille des mots» qu'un ordinateur implémente. Si je (et le CPU / l'interprète du code) sais qu'il lira 8 bits à chaque fois, alors je pourrai représenter le code Morse. Je peux simplement représenter un bip court avec un 1 ou un bip long avec un 0 et les silences seront implicitement représentés par la longueur du mot (disons 8 bits ..) Encore une fois, j'ai cette 3ème variable / le 3ème atout dans ma main: la taille du mot.

Ma réflexion est la suivante: je peux réserver les 3 premiers bits pour le nombre de bits à lire, et les 5 derniers bits pour le code Morse dans un mot de 8 bits. Comme 00110000 signifie «A». Et je suis toujours en «binaire» MAIS j'ai besoin de la taille du mot qui le rend ternaire n'est-ce pas? Les 3 premiers bits disent: Lire seulement 1 bit parmi les 5 bits suivants.

Au lieu du binaire, si nous utilisons le trinaire, nous pouvons afficher du code morse comme: 101021110102110222 etc. où 1 est: dit 0 est: dah et 2 est silence. En utilisant 222, nous pouvons coder le long silence, donc si vous avez un signal comme * - * --- * - vous pouvez le montrer comme: 102100022210, mais ce n'est pas directement possible en utilisant uniquement avec 1 et 0 À MOINS QUE vous arriviez avec quelque chose comme une taille de mot «fixe» comme je l'ai mentionné, mais bon, c'est interpréter, pas enregistrer le code Morse comme il est en binaire. Imaginez quelque chose comme un piano, vous n'avez que les boutons du piano. Vous voulez laisser un message en Morse pour quelqu'un et vous pouvez peindre les boutons en noir. Il n'y a aucun moyen de laisser un message clair, n'est-ce pas? Vous avez besoin d'au moins une couleur de plus pour pouvoir mettre les silences (ceux entre les caractères et les mots. C'est ce que je veux dire par trénaire.

Je ne vous demande pas si vous pouvez représenter le code Morse en 57-aire ou quoi que ce soit d'autre.

J'ai envoyé un e-mail à l'auteur (Charles Petzold) à ce sujet; il dit qu'il démontre au chapitre 9 de "Code" que le code Morse peut être interprété comme un code binaire.

Où ai-je tort avec ma pensée? Est-ce que je lis dans le livre, que le code Morse étant un binaire est un fait ou non? Est-il en quelque sorte discutable? Pourquoi le code Morse est-il dit quinaire dans une page Wikipédia, et il est également répertorié dans la page Liste des codes binaires ?

Edit: J'ai envoyé un e-mail à l'auteur et j'ai obtenu une réponse:

----- Message d'origine -----

De: Koray Tugay [mailto: [email protected]]

Envoyé: mardi 3 mars 2015 15h16

À: [email protected]

Objet: Le code Morse est-il vraiment binaire?

Monsieur, pourriez-vous jeter un œil à ma question ici: le code Morse est-il binaire, ternaire ou quinaire? quinaire?

Cordialement, Koray Tugay

De: "Charles Petzold"

À: "'Koray Tugay'"

Objet: RE: Le code Morse est-il vraiment binaire? Date: 3

Mars 2015 23:04:35 EET

Vers la fin du chapitre 9 de "Code", je démontre que le code Morse peut être interprété comme un code binaire.

----- Message d'origine -----

De: Koray Tugay [mailto: [email protected]]

Envoyé: mardi 3 mars 2015 15h16

À: [email protected]

Objet: Le code Morse est-il vraiment binaire?

Monsieur, pourriez-vous jeter un œil à ma question ici: le code Morse est-il binaire, ternaire ou quinaire? quinaire?

Cordialement, Koray Tugay

Je ne cache pas son e-mail car il est de toute façon très facile à trouver sur le Web.

Koray Tugay
la source
Veuillez déplacer toute autre conversation vers chat.stackexchange.com/rooms/21638/…
Wandering Logic
Les commentaires ne sont pas pour une discussion approfondie; cette conversation a été déplacée vers le chat .
Raphael
J'ai corrigé les liens que j'ai accidentellement supprimés (whoops); veuillez vous abstenir de revenir à des révisions pires.
Raphael
1
@WanderingLogic L'approche correcte, la plus efficace et la plus silencieuse consiste à signaler silencieusement la question pour le nettoyage des commentaires et à suggérer que les commentaires soient déplacés pour chatter dans le drapeau, pas de jouer publiquement la police des commentaires et d'essayer de créer une salle de chat pour combiner tous les commentaires sur toutes les réponses sans contexte. Vos liens confondent également la question, car Raphael a publié des liens corrects.
Jason C
1
@ J.-E.Pin Eh bien, je n'ai pas donné de définition formelle parce que je tenais pour acquis que les personnes répondant à la question le sauraient, et j'avais une référence ou deux à Wikipédia pour définir le contexte. Même si wikipedia peut être loin d'être parfait, cela devrait pouvoir jouer le rôle de définitions, comme c'est souvent le cas ici. Il m'a fallu un certain temps pour réaliser que c'était le problème, apparemment très répandu. J'étais moi-même en train de tout réécrire, avec des définitions explicites, des citations, des références et des explications formelles avec des homomorphismes injectifs. Dois-je finir?
babou

Réponses:

19

Le code Morse est un préfixe ternaire (pour coder 58 caractères) au-dessus d'un préfixe binaire codant les trois symboles.

C'était une réponse beaucoup plus courte lorsqu'elle a été acceptée. Cependant, compte tenu des incompréhensions considérables entre les utilisateurs et suite à une demande du PO, j'ai écrit cette réponse beaucoup plus longue. La première section «bref» vous en donne l'essentiel.

Contenu

En un (gros) mot

Lorsque vous demandez "Le code Morse est-il binaire, ternaire ou quinaire?" il n'y a pas de comparaison des réponses possibles à moins que l'on fixe certains critères pour une réponse acceptable. En effet, sans critères appropriés, on peut trouver des explications pour presque n'importe quel type de structure. Les critères que j'ai choisis sont les suivants:

  • il doit refléter la description à trois niveaux du code Morse avec la représentation point / tiret dans le deuxième niveau;

  • il doit correspondre autant que possible à la présentation et aux outils mathématiques développés pour l'analyse théorique des codes;

  • cela devrait être aussi simple que possible;

  • il doit clairement faire apparaître les propriétés du code Morse.

Ceci est destiné à empêcher le piratage arbitraire, qui ignore les concepts de base de la théorie des codes telle qu'étudiée scientifiquement, et qui peut avoir un certain attrait en donnant une illusion d'analyse systématique, bien que traité de manière trop informelle pour être concluant. Ce site est censé concerner l' informatique , pas la programmation. Nous devons utiliser un minimum de science établie et de concepts acceptés pour répondre à une question technique.

Une analyse rapide de la norme montre que tous les symboles utilisés dans le code Morse sont finalement codés en binaire , car il est transmis sous la forme d'une chaîne d'unités de longueur égale, avec un signal qui peut être activé ou désactivé pour chaque unité. Cela indique que les messages Morse sont finalement codés dans un alphabet logique .Σ1={0,1}

Mais cela ne dit rien de la structure interne du code. Les informations à encoder sont une chaîne sur un alphabet de 58 symboles (selon la norme) comprenant 57 caractères et un espace. Cela correspond à un alphabet Σ3={UNE,B,,Z,0,1,,9,?,=,,×,@,[]}, le dernier symbl étant l'espace.

Cependant, la norme précise qu'il ya un alphabet intermédiaire , sur la base et et éventuellement d' autres symboles. C'est assez clairΣ2dotdash

  • qui enchaîne dans Σ3 doivent être codées comme des chaînes de , etΣ2

  • qui enchaîne dans Σ2 doivent être codées comme des chaînes de Σ1

Donc, étant donné qu'il n'y a pas de choix pour Σ1 et , la question doit être comprise comme: " Quel nombre de symboles faut-il considérer dans l'alphabet intermédiaire Σ 2 pour mieux expliquer la structure et les propriétés de l'ensemble du Morse code ", ce qui implique également de spécifier les deux encodages entre les trois niveaux.Σ3Σ2

Compte tenu du fait que le code Morse est un préfixe de code homomorphic (longueur variable) qui exclut toute ambiguïté lors du décodage d' un signal, nous pouvons expliquer simplement cette propriété essentielle avec un ternaire alphabet { , , }, et deux schéma de codage C 3 2 de Σ 3 à Σ 2 , et C 2Σ2=dotdashsepC32Σ3Σ2 de Σ 2 à Σ 1C21Σ2Σ1, qui sont à la fois homomorphes et préfixes, donc tous deux des codes sans ambiguïté, et donc capables d'être composés pour donner un codage de préfixe sans ambiguïté des 58 symboles en binaire.

Par conséquent le code Morse est composé d'un code ternaire préfixe exprimé dans l'alphabet , , } , avec ces trois symboles se codés en binaire avec les mots de code suivants:{ dotdashsep }

dot ,1110 et00dixdash 1110sep 00

Notez que ce qui est connu comme l'espace entre consécutifs dotou dashest réellement inclus dans la représentation de, dotet dashcomme il s'agit de la représentation mathématique habituelle pour de tels types de codes, qui sont généralement définis comme des homomorphismes de chaîne des symboles source aux mots de code exprimés avec des symboles cibles, comme je viens de le faire.

Cela s'écarte un peu de la présentation donnée dans la norme, qui vise plus à spécifier intuitivement le code pour les utilisateurs, plutôt qu'à l'analyser pour ses propriétés structurelles. Mais l'encodage est le même dans les deux cas.

Même sans les synchronisations précises de la norme, un décodeur du signal analogique pourrait toujours le traduire dans l'alphabet ternaire que nous suggérons, de sorte que la compréhension ci-dessus du code ternaire serait toujours valide.

Codes: points de base

Cette réponse est basée sur la norme UIT-R M.1677-1 , datée d'octobre 2009 (merci à Jason C pour la référence). J'utiliserai la terminologie dotet dash, plutôt que ditet dah, car c'est la terminologie utilisée par cette norme.

Avant de commencer à discuter du code Morse, nous devons nous mettre d'accord sur ce qu'est un code. Les discussions difficiles sur cette question l'exigent évidemment.

Fondamentalement, les informations doivent être représentées afin d'être transmises ou traitées d'une autre manière. Un code est un système permettant de traduire des informations d'un système de représentation à un autre . Il s'agit d'une définition très générale. Il faut faire attention à ne pas confondre le concept de représentation et celui de code d'une représentation (la source ) à une autre (la cible ).

Une représentation peut prendre plusieurs formes, telles que tension électrique variable, points colorés sur papier, chaîne de caractères, chiffres, chaînes binaires de 0 et 1, etc. Il est important de faire la distinction entre la représentation analogique et la représentation formelle (ou logique ou abstraite). .

Une représentation analogique / physique est un dessin, un niveau de tension variable, une forme (pour une lettre).

Une représentation logique / formelle / abstraite est une représentation mathématique avec des graphiques abstraits, des chaînes de symboles ou d'autres entités mathématiques.

Bien que certaines informations puissent à l'origine être analogiques, nous les convertissons généralement en une représentation logique afin de pouvoir définir précisément leur traitement par des moyens mathématiques ou par des personnes.

Inversement, pour traiter de la représentation logique à l'aide de dispositifs physiques, tels que des ordinateurs ou des émetteurs, nous devons donner une forme analogique à la représentation logique.

Aux fins de cette analyse, la seule forme analogique que nous considérons est celle utilisée pour la transmission, comme décrit dans la norme. Mais même alors, nous considérerons que la première étape consiste à interpréter cette représentation analogique comme une implémentation directe d'une représentation logique structurée de manière identique, sur laquelle nous construisons notre analyse de quel type de code le code Morse peut être. La théorie des codes est un ensemble mathématique de connaissances basé sur l'analyse des représentations logiques.

Cependant, nous reviendrons sur la transition analogique / logique dans la discussion de la fin.

Codes: définitions

Notre point de vue logique est que le code est utilisé pour traduire les chaînes sources d'un alphabet source en un alphabet cible TST . Il arrive souvent que les deux alphabets soient identiques, généralement binaires, lorsque le but est d'ajouter une propriété supplémentaire à la représentation des informations, comme la rendre plus résistante aux erreurs (détection et correction des erreurs), ou rendre la représentation plus petite en suppression de la redondance (compression de code sans perte) et éventuellement avec une perte soigneusement contrôlée de certaines informations (compression avec perte).

Cependant, le but du code Morse est de fournir uniquement un moyen de représenter des chaînes sur un grand alphabet, en chaînes basées sur un alphabet beaucoup plus petit (en fait binaire), en utilisant un alphabet intermédiaire presque binaire (points et tirets) mieux adapté à l'homme. perception et capacités de manipulation. Ceci est réalisé par ce qu'on appelle un code de longueur variable :

En utilisant des termes issus de la théorie formelle du langage, la définition mathématique précise est la suivante: Soit et T deux ensembles finis, appelés respectivement alphabets source et cible. Un code C : S T est une fonction totale mappant chaque symbole de S à une séquence de symboles sur T , et l'extension de C à un homomorphisme de S en T , qui mappe naturellement chaque séquence de symboles source à un séquence de symboles cibles, est appelée son extension.STC:STSTCST

Nous appelons CodeWord l'image d'un symbole de S .C(s)TsS

Un code de longueur variable est uniquement décodable si l'homomorphisme correspondant de S en T est injectif . Cela signifie que toute chaîne dans T peut être l'image d'au plus une chaîne dans S . Nous disons également que le code est sans ambiguïté , ce qui signifie que toute chaîne peut être décodée sans ambiguïté, le cas échéant.CSTTS

Un code de longueur variable est un code de préfixe si aucun mot de code n'est le préfixe d'un autre. Il s'agit également d' un code instantané allié ou d' un code sans contexte . La raison de ces noms est que, lors de la lecture d'une chaîne cible qui commence par un mot de code d'un code de préfixe, vous reconnaissez la fin du mot de code dès que vous lisez son dernier symbole, sans avoir à connaître / lire le symbole suivant. En conséquence, les codes de préfixe sont sans ambiguïté et très faciles à décoder rapidement.w

Il est facile de montrer que la décodabilité unique et la propriété de préfixe sont fermées sous la composition de codes.

Notez que la définition en tant qu'homomorphisme implique qu'il n'y a pas de séparation spéciale entre les mots de code. C'est leur structure, comme la propriété prefix, qui permet de les identifier sans ambiguïté.

En effet, s'il existait de tels symboles de séparation, ils devraient faire partie de l'alphabet cible, car ils seraient nécessaires pour décoder la chaîne de l'alphabet cible. Il serait alors assez simple de revenir au modèle théorique du code de longueur variable en ajoutant le séparateur au mot de code précédent. Si cela devait soulever des difficultés contextuelles (dues par exemple à plusieurs séparateurs), ce ne serait qu'un indice que le code est plus complexe qu'il n'y paraît. C'est une bonne raison de s'en tenir au modèle théorique décrit ci-dessus.

Le code Morse

Le code Morse est décrit dans la norme à trois niveaux:

  • 3. il est destiné à fournir un encodage de texte en langage naturel, en utilisant 57 caractères (27 lettres, 10 chiffres, 20 synboles et ponctuations) et un espace inter-mots pour couper la chaîne de caractères en mots. L'espace inter-mots est utilisé comme un caractère spécial, qui peut être mélangé avec les autres, que je noterai SEP.

  • 2. tous ces caractères doivent être codés comme des successions de dash et dot, en utilisant un espace inter-lettres, que je noterai sep, pour séparer le dashet dotd'une lettre de ceux de la lettre suivante.

  • 1 . Le dashet dot, ainsi que sepdoivent être codés en tant que signal ou absence de signal (appelé espacement) avec une longueur définie avec précision en termes d'unité acceptée. En particulier, le dashet l' dot encodage d'une lettre doivent être séparés par un espace inter-éléments, que je noterai σ.

Cela appelle déjà quelques conclusions.

Le message à transmettre et à recevoir sous forme analogique est une succession d'unités de longueur (longueur d'espace ou longueur de temps), de telle sorte qu'un signal soit activé ou désactivé pendant toute la durée de chaque unité, comme spécifié dans l'annexe 1, partie I, section 2 de la norme :

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.

Il s'agit clairement d'un codage analogique dans ce qui est connu comme un flux binaire, qui peut être logiquement représenté en notation binaire par une chaîne de 0ans 1, représentant l'analogique off et on .

Afin d'abstraire les problèmes liés à la représentation analogique, nous pouvons donc considérer que les messages en code Morse sont transmis sous forme de chaînes de bits, que nous noterons avec 0et 1.

Par conséquent, l'extrait ci-dessus de la norme peut être exprimé logiquement comme:

  • 0. A dotest représenté par 1.
  • 1 . A dashest représenté par 111.
  • 2. Un espace inter-éléments σest représenté par 0.
  • 3. Un espace inter-lettres sepest représenté par 000.
  • 4. Un espace inter-mots SEPest représenté par 0000000.

Nous avons donc pu voir le code Morse comme utilisant 5 mots de code en binaire pour coder ces 5 symboles. Hormis le fait que ce n'est pas tout à fait ainsi que le système est décrit, il y en a encore plus, et ce n'est pas la manière la plus pratique de penser, d'un point de vue naïf ou mathématique.

Notez également que cette description est destinée aux profanes, pas aux spécialistes de la théorie des codes. Pour cette raison, il décrit plus l'apparence visible que la structure interne qui le justifie. Il n'a aucune raison d'exclure d'autres descriptions compatibles avec celle-ci, bien que mathématiquement plus structurées, pour souligner les propriétés du code.

Mais d'abord, il faut noter que la description complète du code implique 3 niveaux de représentation, immédiatement reconnaissables:

  • 3. Le texte, composé d'une chaîne de caractères, y compris SEP.
  • 2. L'encodage d'une chaîne de lettres sous la forme d'une chaîne de dot, dashet sep.
  • 1 . L'encodage d'une chaîne de niveau 2 de ces trois en symbolstant que chaîne binaire.

Nous pouvons éventuellement discuter de quels symboles sont encodés dans quoi, mais c'est un aspect essentiel du code Morse qu'il a ces trois niveaux de représentation, avec des caractères en haut, dots et dashes au milieu, et des bits 0et 1en bas .

Cela implique qu'il y a nécessairement deux codes, l'un du niveau 3 au niveau 2, et l'autre du niveau 2 au niveau 1.

Analyser les trois niveaux de représentation

Afin d'avoir une analyse cohérente de ce système de codage à 3 niveaux, nous devons d'abord analyser le type d'informations pertinentes à chaque niveau.

  • 1 . La chaîne de bits, par définition, et par nécessité de sa représentation analogique, est composée uniquement de 0et 1.

  • 3. Au niveau du texte, nous avons besoin d'un alphabet de 58 symboles, dont les 57 caractères et l'espace inter-mots SEP. Tous les 58 d'entre eux doivent avoir finalement un encodage binaire. Mais, bien que la norme de code Morse spécifie ces 57 + 1 caractères, elle ne spécifie pas comment ils doivent être utilisés pour coder les informations. C'est le rôle de l'anglais et des autres langues naturelles. Le code Morse fournit à un autre système un alphabet de 58 symboles, sur lequel ils pourraient construire du code 58-aire, mais le code Morse n'est pas lui-même un code 58-aire.

  • 2. Au niveau dotet dash, tout ce dont nous avons besoin est ces deux symboles afin de coder les 57 caractères, c'est-à-dire fournir un mot de code pour chacun comme une chaîne de dotet dash, avec un séparateur seppour marquer quand une lettre se termine et un autre commence. Nous avons également besoin de certains moyens de coder l'espace inter-mots SEP. Nous pourrions essayer de le fournir directement au niveau 1, mais cela perturberait l'organisation autrement structurée du code.

En effet, la description de la norme pourrait à juste titre être critiquée pour avoir fait cela. Mais les auteurs ont peut-être pensé que leur présentation serait plus simple à saisir pour l'utilisateur moyen. Il suit également une description traditionnelle du code Morse, antérieure à ce type d'analyse mathématique.

Cela appelle plusieurs remarques:

  • au niveau 3, le niveau lettre, l'espace inter-lettres sepn'a plus de sens. C'est tout à fait normal, car il n'a pas plus de sens dans l'univers des lettres que l'espace séparant deux caractères écrits sur du papier. Il est nécessaire au niveau 2 de reconnaître les mots de code représentant les lettres, mais c'est tout.

  • de même au niveau 2, l'espace inter-éléments σn'a plus de sens. Il n'a pas de sens dans le monde dotet dash, mais il est seulement nécessaire au niveau 1 pour identifier les mots de code binaire représentant dot, dash. Mais au niveau 1, il ne se distingue pas du mors 0.

L'espace inter-éléments σn'a donc plus rien de spécial. Ce n'est qu'une utilisation de 0.

Σ2Σ1

dot10dash1110

Σ2sep0000dotdash00sep0dotdash0

Σ2=dotdashsepC21:Σ2Σ1

  • dot10

  • dash1110

  • sep00

Et nous avons la bonne surprise de découvrir qu'aucun mot de code n'est le préfixe d'un autre. Par conséquent, nous avons un code de préfixe, qui est sans ambiguïté et facile à décoder.

C32:Σ3Σ2

dotdashΣ3dot dot dash dotF

F dot dot dash dot sep

Σ3SEP00000000sep0dotdashSEP0000

SEPΣ2sep00SEPsep sep

Σ3={UNE,B,,Z,0,1,,9,?,=,,×,@, SEP}C32:Σ3Σ2

  • UNE dot dash se

  • B dash dodot dot sep

  • Z dash dash dot dot sep

  • 7 dash dash dot dot dot sep
  • SEP sep sep

C32

CMorse=C21C32

Nous pouvons donc conclure que le code morse peut être comprise et facile à analyser, comme la composition d'un préfixe binaire codage d'un 3 symboles alphabet { dot, dash, sep} dans un alphabet binaire, et un préfixe codage d'un alphabet de symboles 58 (57 caractères et un espace) dans l'alphabet à 3 lettres.

La composition elle-même est un préfixe codant les 58 symboles en une représentation binaire.

Remarques sur cette analyse.

Il est toujours difficile d'établir qu'une présentation d'une structure est la meilleure possible. Il semble cependant que l'analyse ci-dessus réponde aux critères définis au début de cette réponse: proximité de la définition à 3 niveaux, présentée formellement selon la théorie de codage actuelle, simplicité et mise en évidence des principales propriétés du code.

Notez qu'il est inutile de rechercher des propriétés de correction d'erreur. Le code Morse peut même ne pas détecter une seule erreur de bit car il peut simplement en changer deux doten un dash. Cependant, il ne provoque que des erreurs locales.

En ce qui concerne la compression, l'encodage ternaire a été conçu pour réduire approximativement le nombre de points et de tirets, dans un type approximatif de codage Huffman . Mais les deux codes composés pourraient facilement être densifiés.

Concernant la taille des alphabets, il n'y a pas de choix pour l'alphabet binaire et 58 symboles. L'alphabet intermédiaire pourrait contenir plus de symboles, mais quel serait le but?

Cependant, certaines personnes seraient enclines à reconnaître l'espace DETau niveau 2, rendant ainsi l'alphabet quaternaire , puis à l'utiliser directement au niveau 3, encodé comme lui-même au niveau 2.

DET0000C21CMorse

En effet, un tel choix rendrait la chaîne binaire 0000ambiguë, décodable soit comme, soit SEPcomme sep sep. L'ambiguïté devrait être résolue avec une règle contextuelle qui sepne peut pas se suivre, ce qui rend la formalisation plus complexe.

L'importance de la transition analogique-logique.

Cette analyse repose fortement sur le fait que la décomposition du signal marche / arrêt en unités de longueurs égales indique clairement une représentation analogique d'une chaîne binaire. De plus, les longueurs en unités sont exactement correctes pour l'analyse ci-dessus, ce qui semble peu probable d'avoir été le fruit du hasard (bien que cela soit possible).

Cependant, d'un regard (trop superficiel) sur le brevet original 1647 , il ne semble pas avoir été aussi précis, avec des phrases comme (en haut de la page 2):

Le signe d'un chiffre distinct, ou d'un chiffre composé lorsqu'il est utilisé dans une phrase de mots ou de chiffres, consiste en une distance ou un espace de séparation entre les caractères plus étendu que la distance utilisée pour séparer les caractères qui composent un tel caractère distinct. ou un nombre composé.

Les personnes qui envoyaient plus tard à la main ou recevaient à l'oreille étaient également peu susceptibles d'être aussi précises. En effet, leur poing , c'est-à-dire leur timing, était souvent reconnaissable. Ce point de vue est également soutenu par le fait que les longueurs d'espacement ne sont pas toujours respectées , en particulier lors de l'apprentissage du code Morse.

Ces situations correspondent à une vue analogique du code en tant que signal court (point), signal moyen (tiret) et pause courte, moyenne et longue. La transposition directe dans un alphabet logique donnerait naturellement un alphabet quinaire , dans lequel les 58 symboles doivent être codés. Bien sûr, ce n'est plus une présentation à trois niveaux du code Morse.

Cependant, afin de donner un sens (et éventuellement d'éviter toute ambiguïté), cet alphabet doit être utilisé avec la contrainte que deux symboles de signal ( dotou dash) ne peuvent pas se suivre, et que les symboles de pause ne peuvent pas non plus se suivre. L'analyse du code et de ses propriétés serait rendue plus complexe, et la manière naturelle de le simplifier serait de faire ce qui a été fait: introduire des synchronisations appropriées pour le transformer en la composition de deux codes, conduisant à l'analyse assez simple donnée ci-dessus ( rappelez-vous qu'il inclut l'affichage du code est le préfixe).

De plus, il n'est pas strictement nécessaire de suivre des temporisations exactes dans la représentation analogique. Étant donné que le décodeur de la traduction analogique peut distinguer les pauses courtes, moyennes et longues, par quelque moyen que ce soit, il devrait simplement imiter ce qui a été fait dans le cas binaire. Par conséquent, les signaux courts et moyens (nécessairement suivis d'une pause) sont reconnus comme logiques dotou dash. Les courtes pauses sont oubliées, car elles ne servent qu'à marquer la fin de dotou dash. Les pauses moyennes sont reconnues comme sep, et les pauses longues sont reconnues comme deux sepsuccessives. Par conséquent, le signal analogique est représenté dans un alphabet ternaire, qui peut être utilisé comme précédemment pour coder l'alphabet de 58 symboles. Notre analyse initiale peut être utilisée même lorsque les délais ne sont pas strictement respectés.

Alternativement, l'alternance signal-pause pourrait être utilisée pour transformer cet alphabet quinaire en un alphabet ternaire, en ne gardant que les trois durées comme symboles de l'alphabet, et en utilisant une analyse contextuelle pour déterminer si une durée donnée est un signal ou une pause. Mais c'est encore un peu complexe à analyser.

Cela montre simplement qu'il existe de nombreuses façons de voir les choses, mais elles ne sont pas nécessairement pratiques et peuvent ne pas toutes se prêter facilement à l'analyse avec les outils mathématiques qui ont été développés pour analyser les codes.

Plus de références aux brevets peuvent être trouvées sur Internet.

Conclusion

Compte tenu des délais précis de la norme, une bonne réponse semble être de considérer le code Morse comme la composition d'un codage de préfixe ternaire (de 58 caractères) en un alphabet à 3 symboles, composé d'un codage de préfixe binaire de ces trois symboles.

Sans le timing précis de la norme, le niveau binaire ne peut plus être pris en compte. Ensuite, le décodage analogique-logique se déroule naturellement au niveau de l'alphabet intermédiaire de dotet dash. Cependant, le décodeur analogique-logique peut décoder jusqu'à l'alphabet des 3 symboles précédents, préservant ainsi l'applicabilité de notre analyse.

babou
la source
1
Veuillez déplacer toute autre conversation vers chat.stackexchange.com/rooms/21638/…
Wandering Logic
1
Les commentaires ne sont pas pour une discussion approfondie; cette conversation a été déplacée vers le chat .
Raphael
Question: Dans l'argument ternaire, vous commencez avec un alphabet {0,1}, à partir de cela, vous construisez quatre symboles {point = 10, tiret = 1110, sep1 = 00, sep2 = 000000}, à partir de cela, vous construisez un ensemble de mots de code ternaire en autorisant sep2 = sep1 sep1 sep1 . L'ensemble de mots de code a été choisi car il lie implicitement les symboles au codage, ce qui est pratique, et l'OP pose des questions sur le stockage binaire. Cependant, pourquoi ne pouvez-vous pas utiliser à la place le jeu de mots de code {rest = 0, on = 1} puis dire "dot = on", "dash = on on on", sep0 = "off", sep1 = "off off off" , sep2 = "off off off off off off off off" (où sep0 est le repos intersignal)?
Jason C
^ Dans ce cas, l'argument est pour un mot de code binaire défini sur un mot ternaire, mais en utilisant un argument similaire et tout aussi fort que l'argument ternaire donné ici. C'est-à-dire que le choix de donner une signification spéciale à plusieurs séparateurs dans une rangée mais pas de donner une signification spéciale à plusieurs choses - une autre dans une rangée est fondamental pour l'argument ternaire, mais semble également arbitraire.
Jason C
1
Continuons cette discussion dans le chat .
babou
28

Cette réponse n'est pas aussi longue qu'elle en a l'air; ce site met juste beaucoup d'espacement entre les éléments de la liste! Mise à jour: En fait, cela devient assez long ...

Le code Morse n'est pas "officiellement" binaire, ternaire, quaternaire, quinaire ou même 57-aire (si je compte correctement). Discuter de laquelle il s'agit sans contexte n'est pas productif. C'est à vous de définir lequel de ces cinq il est basé sur votre application et les exigences d'encodage pour votre situation spécifique . À cette fin, chaque taille de jeu de symboles présente des avantages et des inconvénients, que vous devez prendre en compte pour votre situation avant de prendre une décision.

Pour la base, M.1677 , la norme internationale du code Morse, section 2, définit les temporisations comme:

2 Espacement et longueur des signaux
2.1 Un tiret équivaut à trois points.
2.2 L'espace entre les signaux formant la même lettre est égal à un point.
2.3 L'espace entre deux lettres est égal à trois points.
2.4 L'espace entre deux mots est égal à sept points.

Notez que cela ne définit que les timings, par exemple un tiret ne signifie pas la même chose que trois points, c'est simplement la même longueur. L'unité de base du temps est un point.


Binaire

Nous pouvons choisir le binaire si nous le souhaitons. Il est possible de représenter le code Morse avec un "binaire strict", comme vous l'appelez - l'approche de cet auteur était d'attribuer les chiffres à "point" et "tiret". Cette approche ne fonctionne pas et je ne pense pas que l'auteur ait une bonne compréhension du code Morse. Mais il existe une approche différente qui fonctionne. Si nous choisissons le binaire, nous représentons essentiellement si le signal est haut ou bas avec chaque symbole occupant une seule tranche de temps de longueur de point. Notez que c'est également l'approche décrite sur la page Liste des codes binaires que vous avez citée.

D'autres codages binaires peuvent également être choisis (par exemple, la réponse de Bob Jarvis ) au détriment de l'augmentation de la difficulté à décoder le code Morse audible (le codage de Bob ne peut pas être décodé sans état, par exemple, le compromis est qu'il fournit des séquences codées plus courtes).

Symboles:

  • Bas, éteint, etc. (0)
  • Élevé, allumé, etc. (1)

Exemples d'encodage:

  • Séparateur de signal: 0
  • Séparateur de lettres: 000
  • Séparateur de mots: 0000000
  • Trois points: 10101
  • Trois tirets: 11101110111
  • Le mot "fils": 101010001110111011100011101
  • L'expression "est un": 10100010101000000010111

Avantages:

  • Taille minimale du jeu de symboles
  • Géré facilement avec une logique numérique typique
  • Facile à décoder en code Morse audible (en supposant qu'aucune validation n'est effectuée); décodage sans état et ne nécessite pas de stocker des informations sur la synchronisation des symboles (chaque symbole a la même longueur).

Les inconvénients:

  • Encodages longs.
  • De nombreuses possibilités d'encodages invalides.
  • Les significations des symboles individuels (0, 1) dépendent du contexte.


Ternaire

Avec ce choix, nous définissons les espacements de lettres et de mots comme des silences, et les espacements de signaux sont implicites (bien que vous puissiez choisir d'exiger des symboles de reste de longueur de point entre les signaux, si cela vous convient mieux).

Symboles:

  • Repose en pointillé (0)
  • Point (1)
  • Dash (2)

Exemples d'encodage:

  • Séparateur de lettres: 000
  • Séparateur de mots: 0000000
  • Trois points: 111
  • Trois tirets: 222
  • Le mot "fils": 11100022200021
  • L'expression "est un": 11000111000000012

Avantages:

  • Petite taille de jeu de symboles.
  • Le séparateur de signaux n'est plus nécessaire.
  • Des longueurs d'encodage plus courtes qu'en binaire.
  • Supprime certains encodages invalides (par exemple 0110 avec le choix binaire plus possible).

Les inconvénients:

  • Encodages encore longs.
  • Encore de nombreuses possibilités d'encodages invalides, en particulier, les restes.
  • Ne peut pas être décodé sans état sauf si vous choisissez de placer des silences de points explicites entre les signaux.
  • Les séparateurs de signaux sont implicites sauf si vous choisissez de placer des silences de points explicites entre les signaux.
  • Certaines significations de symboles individuels (0) dépendent du contexte.


Quaternaire

Symboles:

  • Séparateur de lettres (0)
  • Séparateur de mots (1)
  • Point (2)
  • Dash (3)

Exemples d'encodage:

  • Trois points: 222
  • Trois tirets: 333
  • Le mot "fils": 2220333032
  • L'expression "est un": 220222123

Avantages:

  • Longueur codée très courte.
  • La possibilité de codages invalides est réduite.
  • Les symboles sont sémantiquement précis.
  • Sans doute, plus lisible par l'homme.

Les inconvénients:

  • Grande taille de jeu de symboles.
  • Ne peut pas être décodé sans état.
  • Les séparateurs de signaux sont implicites.


Quinaire

Une interprétation directe de la liste de Wikipédia. Notez que cela est très similaire au choix binaire, sauf que les différentes combinaisons valides de 0 ou de 1 binaires reçoivent leurs propres symboles.

Symboles:

  • Séparateur de signal (0)
  • Séparateur de lettres (1)
  • Séparateur de mots (2)
  • Point (3)
  • Dash (4)

Exemples d'encodage:

  • Trois points: 30303
  • Trois tirets: 40404
  • Le mot "fils": 303031404041403
  • L'expression "est un": 3031303032304

Avantages (par rapport au quaternaire):

  • Peut être décodé sans état.
  • La seule taille de jeu de symboles qui représente sans ambiguïté, directement et avec concision les cinq objets mentionnés dans la section 2 de la norme: "point" (auquel tous les timings sont relatifs), "tiret", "espace entre les signaux", "espace entre deux lettres "," espace entre deux mots ".

Inconvénients (par rapport au quaternaire):

  • Plus grande possibilité d'encodages invalides.
  • Augmentation des longueurs d'encodage sans ajout d'informations supplémentaires (le compromis est la facilité de décodage).
  • Pas aussi facile à décoder que le choix binaire, en ce que chaque symbole a une durée différente et cette association doit être maintenue quelque part.


57 ans:

Inclus pour l'exhaustivité.

Symboles:

  • 26 lettres
  • 10 numéros
  • 20 signes de ponctuation et signes divers
  • Séparateur de mots (espace)

Exemples d'encodage:

  • Le mot "fils": son
  • L'expression "est un": is a

Avantages:

  • Encodage le plus court
  • Lisible par l'homme
  • Les encodages invalides sont impossibles.

Les inconvénients:

  • Le plus grand jeu de symboles
  • Difficile à décoder en Morse Code; nécessaire pour maintenir des tableaux de séquences de sortie de code Morse pour chaque symbole et nécessaire pour détecter les limites des mots et les lettres adjacentes afin de déterminer où insérer divers silences.
  • Impossible d'étendre au-delà de la spécification du code Morse sans ajouter de nouveaux symboles (compromis pour être immunisé contre les encodages invalides).
  • Les séparateurs de signaux et de lettres sont implicites.

Résiliation

Pour le stockage en tant que flux de symboles sur un périphérique, si vous devez le faire, il convient de noter que M.1677 définit les séquences de terminaison de message et de transmission. De la partie II:

5 Chaque télégramme se termine par un signal croisé (. -. -.)
6 La fin de la transmission est indiquée par le signal croisé (. -. -.) Suivi de l' invitation à transmettre le signal K (-. -)
7 La fin des travaux doit être indiquée par la station qui a transmis le dernier télégramme. L'indication correcte est le signal de fin de travail (... -. -)

Malheureusement, la norme ne dit rien sur la possibilité de distinguer, par exemple, la chaîne "+ K" de la séquence ( fin de télégramme , invitation à transmettre ). Cependant, la fin du travail est unique. Si vous stockez du code morse, vous devrez alors choisir comment indiquer la fin d'une séquence stockée.

Si vous stockez une conversation entière, par exemple, et que vous utilisez le jeu de symboles binaires, vous pouvez raisonnablement considérer que la fin du travail est l'indicateur de fin de séquence, représenté comme la séquence de bits unique 101010111010111. Vous devez considérer le type des données que vous stockez (par exemple des fragments de message, des messages entiers, des conversations entières) ainsi que les facilités qui vous sont offertes par votre support de stockage (par exemple la possibilité de préfixer la longueur du message) avant de décider. Je suppose que vous pourriez aller jusqu'à définir votre propre indicateur de fin de séquence. Dans tous les cas, ce sont toutes des questions de stockage sous-jacent et ont trop de possibilités pour les énumérer ici. Le choix vous appartient vraiment en fonction de ce qui convient à votre situation.


Ne peut pas être décodé sans état: ces encodages nécessitent un certain état pour être décodés en code Morse audible. Ils nécessitent tous "Si le symbole précédent était un point / tiret et que le symbole actuel est un point / tiret, insérez un séparateur de signal". Bien que vous puissiez essayer de "tricher" et ajouter automatiquement un séparateur de signal à tous les symboles tout en réduisant le séparateur de mots à 5 silences et le séparateur de lettres à 1, M.1677 afaict n'interdit pas explicitement les séparateurs de mots consécutifs, ce qui brise ce tracas.

Les séparateurs de signaux sont implicites: cela est directement lié à la note ci-dessus mais plus sémantiquement orienté. Ces codages ont des séparateurs de signaux implicites dans leur notation. C'est-à-dire que "zzz" est intuitivement trois z séparés, les frontières sont "superposées" sur tout ce qui sépare les symboles dans l'encodage lui-même. Considérez la description «trois points d'affilée»; intuitivement, nous considérons que cela signifie trois séparéspoints, mais si les séparateurs n'étaient pas sous-entendus, cela pourrait être considéré comme impossible à distinguer d'un tiret. Seules les représentations binaires et quinaires de style Wikipedia (ou ternaire avec l'option de séparateur de signal explicite) suppriment ici toute ambiguïté et "raccourcis", qui peuvent être d'une grande valeur selon la situation. C'est pour cette raison qu'il existe un argument fort pour le choix quinaire.


TL; DR:

Comme vous pouvez le voir, chacun présente des avantages et des inconvénients, et c'est à vous de décider comment vous souhaitez le traiter en fonction de vos besoins . Il n'y a pas de bonne réponse. Vous pourriez essayer de faire valoir que l'un est plus approprié que l'autre en général, mais ces arguments se résumeraient à des préférences pédantes, car sans contexte, il n'y a pas de bonne réponse.

Maintenant, tout cela dit, à mon avis, le choix quinaire est la représentation qui me semble la plus "juste" pour le Morse Code lui-même (à l'origine j'avais privilégié le quaternaire). C'est le seul choix qui offre tous les éléments suivants:

  • Symboles sans contexte (un symbole à lui seul contient toutes les informations sur sa signification sans examiner les symboles adjacents).
  • Représentation de toutes les primitives définies dans M.1667.
  • Les séparateurs (signal, lettre, mot) ne sont pas impliqués par la notation ou l'encodage sous-jacent (c'est important, si j'ai écrit { dot, dot, dash }, ceux ,-ci sont significatifs et faciles à ignorer).

Cependant, il existe de solides arguments pour tous. Les arguments liés à l'encodage sont également applicables au traitement de Morse lui-même. Il n'y a pas de réponse 100% concrète, mais cela peut certainement constituer un bon sujet de débat avec vos amis au bar.

. . . -. -

Jason C
la source
1
Veuillez déplacer toute autre conversation vers chat.stackexchange.com/rooms/21638/…
Wandering Logic
1
Les commentaires ne sont pas pour une discussion approfondie; cette conversation a été déplacée vers le chat .
Raphael
Vous continuez de faire référence au décodage sans état dans vos arguments. Dans la théorie du codage, les états ne semblent être utilisés que rarement, dans les codes convolutifs, qui sont une famille de codes correcteurs d'erreurs. Ceci est complètement hors sujet car le code Morse est tout sauf une correction d'erreur. En effet, il ne peut même pas détecter certaines erreurs d'un bit, et encore moins les corriger. Vous inventez différents types de codes arbitraires comme étant une version du code Morse, mais ils n'apportent aucune compréhension. Pourquoi les présenter? Ne pas exiger d'états, c'est-à-dire un codage homomorphique, semble une exigence minimale. Et vous manquez les encodages intéressants. cc @KorayTugay
babou
@babou Arguments de décodage sans état?
Koray Tugay
@babou Cela ne me dérange pas d'avoir quelques points hors sujet. Bien sûr, les jeux de symboles sont arbitraires; c'est précisément le point que je fais avec cette réponse. Le mot ternaire placé au-dessus de l'argument du code de préfixe binaire est également arbitraire. À première vue non, mais fondamentalement, vous avez fait le choix arbitraire de baser l'argument sur un mot de code défini avec un alphabet à deux lettres (0 et 1). C'est un choix arbitraire, car le choix de donner à "sep sep sep" une signification spéciale mais pas de le faire à une "unité 1" est arbitraire. Vous pourriez tout aussi bien dire que "tiret" est "point point point" et plaider pour le binaire sur le ternaire.
Jason C
5

Malgré mes premières réflexions à ce sujet, il s'avère que cette question peut être formalisée d'une manière qui admet une réponse assez précise (modulo quelques problèmes de définition). La réponse s'avère être 3 ou 4, c'est-à-dire ternaire ou quaternaire. La réponse de la foule "tout va de 2 à 57" n'est correcte que dans le sens où si quelqu'un vous demande une caractérisation des groupes abéliens, vous lui dites que ce sont des ensembles.

Commençons par regarder l'encodage physique du code Morse. Il s'agit en fait de B ASK , c'est-à-dire de la clé de décalage d'amplitude binaire, qui est juste une manière élaborée de dire qu'il y a deux niveaux d'amplitude physique (électrique / optique, etc.) pour nous de coder notre message. Donc, la question immédiate est: cela ne signifie-t-il pas que la réponse est que le code Morse est binaire? Eh bien, c'est binaire uniquement de manière plutôt non informative, dans le sens où le signal binaire marche / arrêt envoyé sur le fil ne correspond pas directement aux lignes ou aux points. A ce vague niveau de correspondance, nous pourrions même envoyer le code ASCII (avec l'encodage binaire direct et évident) et l'appeler "Morse" et / ou "binaire"; la même chose s'appliquerait à tout code Huffman (au lieu de ASCII).

Alors, comment pouvons-nous rendre la correspondance plus précise et en même temps formaliser notre question? La théorie du codage vient en aide. LaisserMêtre l'ensemble des symboles «mornes», environ 66 symboles si je comprends bien l'univers du code Morse; cela inclut les 26 lettres latines, les chiffres 0-9, et un tas d'auxiliaires comme certaines ponctuations, "prosigns" etc. Ce n'est en fait pas très important ce que ce sont. Un code est une cartographie injective c:MTT (ne pas T) est un ensemble de mots de code. Pour être physiquement représentable dans notre matériel BASK sous-jacent, nous exigeons queT{0,1}, c'est-à-dire que nos mots de code doivent être des chaînes de bits; notez que cela impliquecLes valeurs sont des chaînes de mots de code, donc des chaînes de chaînes de bits, mais finalement linéarisées comme de simples chaînes de bits.

Pour être une caractérisation fidèle du code Morse, nous avons besoin T contenir des équivalents directs de lignes et de points, en ce sens qu'il doit y avoir une bijection entre ces mots de code et les points et lignes représentant le code Morse sur papier. T doit également être [presque] un code déchiffrable unique, ce qui signifie que toute factorisation d'un élément de T en termes d'éléments / mots de code de T[idéalement] doit être unique. (Notez que certains auteurs, par exemple Berstel , n'appellent même pasTun code à moins qu'il ne soit déchiffrable de façon unique, mais d'autres, par exemple Steve Roman ont une terminologie différente où tout mappage est un code, mais ceux qui sont déchiffrables de manière unique sont simplement dits ainsi et des codes UD abrégés. Ici, je vais juste la dernière terminologie. Vous verrez également un peu plus tard pourquoi j'ai dit "idéalement".)

Puisque c ne doit être qu'une injection et non une surjection, nous pouvons remplir Tavec des "ordures" arbitraires au-delà de ce qui est nécessaire pour obtenir un code UD, tant que les chaînes générées par ces ordures ne sont pas la pré-image de quelque chose de lamentable. Par exemple, une chaîne d'exactement 42 points ne correspond à rien dans aucune variante du code Morse que j'ai vu. Ainsi, lorsque nous demandons si le code Morse est binaire, ternaire, quaternaire, quinaire, etc., la question devrait être de demander la cardinalité minimale deT avec les deux propriétés ci-dessus, à savoir: c'est [presque] un code UD et nous avons une bijection évidente entre la "ligne" et le "point" sur papier à certains éléments de T.

Il y a deux façons de procéder à la construction T, soit de haut en bas en observant que vous avez besoin d'un séparateur entre la représentation papier et ligne-point des lettres Morse pour obtenir un code UD, ou de bas en haut puisque dans le code Morse international de l'UIT, nous avons le temps -longueurs des lignes, des points et diverses pauses. Je vais utiliser cette dernière approche ici car il existe de nombreuses façons d'en obtenirT autrement, c'est-à-dire que vous pouvez choisir des durées assez arbitraires, par exemple le code américain Morse défunt utilisait des lignes plus courtes que la version ITU.

Commençons avec la représentation dérivée de la longueur du signal de l'UIT qui a cinq mots de code de base, générés à partir du signal de longueur unitaire "on" (1) et du signal "off" (0): just-dot(1), just-line(111), unit-space(0) , letter-space(000), et word-space[supposé sept 0 dans le Morse international mais peut varier dans la pratique]. Notez immédiatement que le unit-spacene peut apparaître que suivi d'un 1 juste après just-dotet just-line; et ça0- la terminaison de just-dotand just-line(qui est un code virgule; plus d'informations à ce sujet plus tard) est en fait requise sinon vous ne pourriez même pas distinguer les lignes des points. Cela vous donne la réduction évidente à quatre mots de code avec:

  • dit= just-dot unit-space= 10 et
  • dah= just-line unit-space= 1110.

Donc , c'est le code Morse quaternaire: dit, dah, letter-space, word-space. L'observation suivante est que le word-spacepeut être approché (ou même supposé être) deux letter-spaces, c'est-à-dire six zéros. Alors, comment vous obtenez l'ensemble de mots de code ternaire; Comme références pour cette ligne de raisonnement, voir par exemple [1] [2] .

Il y a aussi une raison technique de préférer les mots de code ternaires: T={dix,1110,000}est un code déchiffrable unique, en fait c'est un code préfixe. toutefois{dix,1110,000,07} (ou la version avec seulement six zéros) n'est plus déchiffrable de façon unique car 0dix=0307=0703il y a donc une factorisation non unique. Bien que cela soit théoriquement un problème, cela n'a aucune importance pratique car le "métronome" humain a de la difficulté à mesurer de très longs silences de toute façon, donc fondamentalement tout silence plus long qu'une certaine longueur est supposé (par un humain) être unword-space sorte.

Notez également que si vous vous en tenez 0 dans cet ensemble aussi (c'est-à-dire adopter une vue "quinaire"), cela devient "encore plus faux", dans le sens où même 000n'a plus de factorisation unique (comme lui-même est aussi un mot de code). En outre,0 n'est pas dans la préimage d'un symbole Morse, il est donc indésirable dans T, tout comme vous pouvez ajouter 1420 à T; en fait, l'ajout de ce dernier est moins gênant que contrairement à l'ajout0 cela ne fera pas perdre au code la propriété UD.

La réduction / abstraction de dit, dahen letter-spacetant que mots de code binaires en trois symboles abstraits (trits) est utile pour montrer rapidement que le code Morse (ternaire) est UD; c'est immédiatement évident parce qu'il letter-spaceagit comme une virgule, c'est-à-dire que le code Morse ternaire est un code virgule. (Notez que d'autres auteurs définissent le «code virgule» dans un sens plus restrictif où tous les symboles autres que la virgule sont les mêmes; je l'utilise ici dans le sens large donné dans «L'algèbre post-moderne» de DH Smith , qui signifie utiliser un symbole de terminaison unique pour chaque mot de code.) Notez également que la technique comma0code est utilisée à deux niveaux dans le code Morse; la just-lineet just-dotse terminent par la « courte virgule » unit-space=0pour les distinguer des autres. Une fois que vous avez résumé cette construction aux deux trits différents ( ditet dah), toutes les lettres du code Morse sont également codées par des virgules en les terminant par000 dont le troisième trit.

Vous pouvez également utiliser l'approche trit calculer l'entropie en supposant a dahet ditet letter-spacesont "équivalents" comme trits [3] , dans le sens que, par exemple, "e" prend 2 trits et "y" prend 5 trits. L'approche trit abstraite n'est pas si utile si vous vous souciez du coût réel de chaque symbole à transmettre dans le véritable codage BASK Morse sur une ligne. Pour ce dernier, vous devez descendre à la longueur réelle des bits des 3 (ou 4) symboles, qui sont vus comme des transitions dans un automate. Par exemple, la lettre «e» prend 5 bits pour coder (as dit letter-space) tandis que «y» prend 17 bits (trois dahs, un ditet a letter-space). Cette ligne de pensée remonte à Shannon (voir pp. 3-4). Plus de détails peuvent être trouvésdans "Théorie de l'information et codage" de Blahut, par exemple, il calcule "une moyenne de 9.296 unités de temps de signalisation par lettre de sortie source" pour le code Morse en utilisant les probabilités (inconditionnelles) d'occurrences de lettres en anglais. Pour une exposition légèrement différente (par un zoologiste!), Vous pouvez consulter JP Hailman ; il obtient une moyenne différente (10,2) parce qu'il suppose des probabilités légèrement différentes pour les lettres anglaises, mais sinon son analyse est conceptuellement la même.

Pour résumer ceci: vous pouvez avoir plusieurs vues du code Morse, mais certaines sont plus fructueuses que d'autres en disant quelque chose d'intéressant à ce sujet. Je ne suis au courant d'aucune analyse utilisant la vue "quinaire" et pour que ce modèle ne soit pas réductible à quatre symboles, vous devrez faire quelques hypothèses sur l'occurrence de l'unité-espace qui ne tient pas dans le Morse réel , par exemple que vous pourriez avoir deux mais pas nécessairement trois espaces unitaires adjacents (ce qui n'est pas un Morse invalide). La vue ternaire vous achète une analyse rapide de la décodabilité unique. La vue la plus profonde / fructueuse est celle qui voit les 3 ou 4 symboles comme réellement représentés par des quantités inégales de bits comme ils le sont dans le vrai code Morse (| dit| = 2, | dah| = 4, | letter-space| = 3 et |word-space| = 6 ou 7); il est toujours judicieux à ce bas niveau de considérer les symboles ternaires / quaternaires comme des transitions dans un automate.

Quant à savoir pourquoi Wikipédia aspire à cela ... et bien sur certains sujets, il le fait. Leur article principal sur http://en.wikipedia.org/wiki/Coding_theory n'est pas vraiment quelque chose que je recommanderais de lire non plus. Je ne peux pas en dire beaucoup sur le livre (Petzold) que vous avez mentionné, à part qu'il ne semble pas écrit par un expert en théorie de l'information. Petzold n'a raison que dans le sens où si les messages codés en Morse ne comprenaient qu'une seule lettre, on pourrait raisonnablement dire qu'ils se trouvent dans un code binaire; si vous voulez envoyer des mots, vous avez besoin d'un séparateur de lettres, sinon le code ne serait pas horriblement UD, au point d'impraticabilité.


Il est un peu tard pour moi de réviser l'intégralité du message, mais @babou fait valoir ci-dessous qu'apparemment Shannon, Blahut et d'autres ont mal interprété la norme (actuelle) de l'UIT (en supposant qu'elle n'a pas changé depuis leur époque) dans ce qui suit technicité: l'espace unitaire est ajouté entre les points et les dahs de la même lettre , mais seul le letter-spaceest ajouté entre les lettres. Cette lecture de la norme semble vérifier sur la base d'un livre de pratiquant assez récent . Nous devons donc emprunter un 0 letter-spacedans chacun ditet dahquand ils sont dans les positions terminales d'une lettre, ne laissant que deux 0 pour le letter-space, c'est-à-direT={dix,1110,00}. Cela signifie également que (par exemple) la taille de 'e' n'est que de 4 bits, pas 5.

Pétiller
la source
Veuillez déplacer toute autre conversation vers chat.stackexchange.com/rooms/21638/…
Wandering Logic
Les commentaires ne sont pas pour une discussion approfondie; cette conversation a été déplacée vers le chat .
Raphael
-1

À l'origine, le code Morse était censé être des marques écrites sur une bande de papier, mais les opérateurs télégraphiques sont rapidement parvenus à "lire" les clics de l'équipement. Cette version du Morse (Morse américain ou «terrestre») avait trois éléments «marque», le point, le tiret et le long tiret.

L'utilisation d'International Morse au cours du siècle dernier, par transmission radio, était généralement codée à la main (sur une clé télégraphique) et décodée à l'oreille, en écoutant le schéma des bips émis par le récepteur. Les opérateurs qualifiés pourraient recevoir mieux que les opérateurs non qualifiés, et certaines personnes pourraient produire du code plus facile à comprendre que celui des autres. Un bon opérateur de transmission aurait un «bon poing». Un opérateur inepte était appelé LID. (Pour l'origine de "couvercle" - qui, je crois, provient d'une erreur courante dans American Morse d'envoyer LID pour DD, daaahh, dit dit, dah dit dit au lieu de dah dit dit, dah dit dit - voir cette référence: https://english.stackexchange.com/questions/31818/how-did-the-word-lid-come-to-mean-poor-operator-in-the-context-of-telegraph .)

Ainsi, il s'ensuit que le "codage" de Morse dans un format binaire dépend du but, et donc de la conservation de la qualité du "bon poing" par rapport au "mauvais poing". Une chaîne de commutation marche / arrêt doit-elle être mise en correspondance avec une horloge et "corrigée" pour les difficultés de phase ou de durée de chaque partie du signal? Ou faut-il plutôt l'échantillonner à un taux suffisant pour conserver des variations aléatoires ou déroutantes, vraisemblablement pour une inspection ou un plaisir ultérieur?

ex-jambon
la source
1
Désolé, comment cela répond-il à la question?
Koray Tugay