Ist Morsecode binär, ternär oder quinär?


27

Ich lese das Buch: " Code: Die verborgene Sprache von Computerhardware und -software " und der Autor in Kapitel 2 sagt:

Man sagt, Morsecode sei ein binärer Code (was wörtlich zwei mal zwei bedeutet), da die Komponenten des Codes nur aus zwei Dingen bestehen - einem Punkt und einem Bindestrich.

Wikipedia hingegen sagt:

Streng genommen ist es nicht binär, da es fünf grundlegende Elemente gibt (siehe Quinary). Dies bedeutet jedoch nicht, dass Morsecode nicht als Binärcode dargestellt werden kann. In einem abstrakten Sinne ist dies die Funktion, die Telegraphenoperatoren beim Senden von Nachrichten ausführen (siehe Quinary).

Aber andererseits eine andere Wikipedia Andererseits enthält eine Seite Morsecode in der Liste der Binärcodes.

Ich bin sehr verwirrt, weil ich denke, dass Morse-Code tatsächlich so ist ternär ist . Sie haben 3 verschiedene Arten von 'Möglichkeiten': eine Stille, einen kurzen Piepton oder einen langen Piepton.

Es ist unmöglich, Morse-Code in "Stirct Binary" darzustellen, nicht wahr?

Mit 'strikt binär' meine ich, denke an den Binärstrom: 1010111101010 .. Wie soll ich eine Stille, einen kurzen Piepton und / oder einen langen Piepton darstellen?

Die einzige Möglichkeit, die ich mir vorstellen kann, ist die Wortgröße, die ein Computer implementiert. Wenn ich (und die CPU / der Interpreter des Codes) weiß, dass er jedes Mal 8 Bits liest, kann ich Morsecode darstellen. Ich kann einfach einen kurzen Piepton mit einer 1 oder einen langen Piepton mit einer 0 darstellen und die Stille wird implizit durch die Wortlänge dargestellt meine Hand: die Wortgröße.

Mein Denken ist wie folgt: Ich kann die ersten 3 Bits für die Anzahl der zu lesenden Bits und die letzten 5 Bits für den Morsecode in einem 8-Bit-Wort reservieren. Wie 00110000 wird "A" bedeuten. Und ich bin immer noch "binär", ABER ich brauche die Wortgröße, die es ternär macht, nicht wahr? Die ersten 3 Bits sagen: Nur 1 Bit von den folgenden 5 Bits lesen.

Anstelle von binär können wir, wenn wir trinary verwenden, Morsecode wie 101021110102110222 usw. anzeigen. Dabei ist 1: dit 0 ist: dah und 2 ist Stille. Mit 222 können wir die lange Stille codieren. Wenn Sie also ein Signal wie * - * --- * haben, können Sie es wie folgt anzeigen: 102100022210, aber es ist nicht direkt möglich, nur mit Einsen und Nullen zu arbeiten, WENN Sie dies nicht tun so etwas wie eine "feste" Wortgröße, wie ich bereits erwähnte, aber das ist eine Interpretation, die den Morsecode nicht so speichert, wie er binär ist. Stellen Sie sich so etwas wie ein Klavier vor, Sie haben nur die Klaviertasten. Sie möchten jemandem eine Nachricht im Morse-Code hinterlassen und können Knöpfe schwarz malen. Es gibt keine Möglichkeit, eine klare Botschaft zu hinterlassen, nicht wahr? Sie benötigen mindestens eine weitere Farbe, damit Sie die Stille (die zwischen Zeichen und Wörtern liegt) einfügen können. Das meine ich mit Trenary.

Ich frage nicht, ob Sie Morsecode in 57-ary oder etwas anderem darstellen können.

Ich habe dem Autor (Charles Petzold) eine E-Mail darüber geschickt. Er sagt, dass er in Kapitel 9 von "Code" demonstriert, dass Morsecode als Binärcode interpretiert werden kann.

Wo irre ich mich mit meinem Denken? Ist das, was ich in dem Buch lese, dass der Morsecode eine binäre Tatsache ist oder nicht? Ist es irgendwie umstritten? Warum wird angegeben, dass Morsecode in einer Wikipedia-Seite als Quinärcode angegeben ist und dass er auch in der Liste der Binärcodes aufgeführt ist? Seite ?

Edit: Ich habe dem Autor eine E-Mail geschickt und eine Antwort erhalten:

-----Originale Nachricht-----

Von: Koray Tugay [mailto: koray@tugay.biz]

Gesendet: Dienstag, 3. März 2015, 15:16 Uhr

An: cp@charlespetzold.com

Betreff: Ist Morsecode wirklich binär?

Sir, können Sie sich meine Frage hier ansehen: Ist Morsecode binär, ternär oder quinär? quinary?

Grüße, Koray Tugay

Aus: "Charles Petzold"

An: "'Koray Tugay'"

Betreff: RE: Ist Morsecode wirklich binär? Datum: 3

März 2015 23:04:35 EET

Gegen Ende von Kapitel 9 in "Code" zeige ich, dass Morsecode als Binärcode interpretiert werden kann.

-----Originale Nachricht-----

Von: Koray Tugay [mailto: koray@tugay.biz]

Gesendet: Dienstag, 3. März 2015, 15:16 Uhr

An: cp@charlespetzold.com

Betreff: Ist Morsecode wirklich binär?

Sir, können Sie sich meine Frage hier ansehen: Ist Morsecode binär, ternär oder quinär? quinary?

Grüße, Koray Tugay

Ich verstecke seine E-Mail nicht, da sie sowieso sehr leicht im Web zu finden ist.


Bitte verschieben Sie jede weitere Konversation auf chat.stackexchange.com/rooms/21638/…
Wandering Logic

Kommentare sind nicht für eine längere Diskussion gedacht. Diese Unterhaltung wurde in den Chat verschoben .
Raphael

Ich habe die Links behoben, die ich versehentlich gelöscht habe (whoops); Bitte verzichten Sie darauf, zu schlechteren Revisionen zurückzukehren.
Raphael

1
@WanderingLogic Der richtige, effektivste und lärmfreieste Ansatz besteht darin, die Frage stillschweigend für die Kommentarbereinigung zu markieren und vorzuschlagen, dass Kommentare in den Chat in der Flagge verschoben werden Alle Antworten ohne Kontext. Deine Links verwirren jetzt auch nur die Sache, da Raphael korrekte Links gepostet hat.
Jason C

1
@ J.-E.Pin Nun, ich habe keine formale Definition angegeben, da ich davon ausgegangen bin, dass die Beantworter der Frage dies wissen würden, und ich hatte einen oder zwei Verweise auf Wikipedia, um den Kontext festzulegen. Auch wenn Wikipedia alles andere als perfekt sein kann, sollte es die Rolle von Definitionen übernehmen können, wie es hier oft gemacht wird. Es dauerte einige Zeit, bis mir klar wurde, dass es sich um das anscheinend weit verbreitete Problem handelte. Ich war selbst dabei, alles ausführlich umzuschreiben, mit expliziten Definitionen, Zitaten, Referenzen und formalen Erklärungen mit injektiven Homomorphismen. Soll ich fertig werden?
Babou

Antworten:


19

Morsecode ist ein Präfix-Ternärcode (zum Codieren von 58 Zeichen) über einem Präfix-Binärcode, der die drei Symbole codiert.

Dies war eine viel kürzere Antwort, als sie angenommen wurde. Angesichts der erheblichen Missverständnisse zwischen den Nutzern und einer Aufforderung des OP schrieb ich diese Antwort jedoch viel länger. Die erste "Kurzfassung" gibt Ihnen den Kern der Sache.

Inhalt

Kurz gesagt

Bei der Frage "Ist Morsecode binär, ternär oder quinär?" Es gibt keinen Vergleich möglicher Antworten, es sei denn, man legt einige Kriterien für eine akzeptable Antwort fest. In der Tat kann man ohne geeignete Kriterien Erklärungen für nahezu jede Art von Struktur finden. Die Kriterien, die ich gewählt habe, sind die folgenden:

  • es sollte die dreistufige Beschreibung des Morsecodes mit der Punkt- / Strichdarstellung in der zweiten Stufe widerspiegeln;

  • es sollte so gut wie möglich zu der Präsentation und den mathematischen Werkzeugen passen, die für die theoretische Analyse von Codes entwickelt wurden;

  • es sollte so einfach wie möglich sein;

  • es sollte die Eigenschaften des Morsecodes deutlich machen.

Dies soll willkürliches Hacken ausschließen, bei dem grundlegende Konzepte der Codetheorie, die wissenschaftlich untersucht wurden, ignoriert werden und das möglicherweise eine gewisse Anziehungskraft hat, indem es eine Illusion systematischer Analyse vermittelt, obwohl es zu informell angesprochen wird, um schlüssig zu sein. Diese Seite soll sich mit Informatik befassen , nicht mit Programmierung. Wir sollten ein Minimum an etablierter Wissenschaft und akzeptierten Konzepten verwenden, um eine technische Frage zu beantworten.

Eine schnelle Analyse des Standards zeigt, dass alle im Morse-Code verwendeten Symbole letztendlich binär codiert sind , da sie als eine Folge von Einheiten gleicher Länge übertragen werden, wobei für jede Einheit ein Signal ein- oder ausgeschaltet werden kann. Dies zeigt an, dass Morse-Nachrichten letztendlich in einem logischen Alphabet codiert sind .Σ1={0,1}

Aber das sagt nichts über die interne Struktur des Codes aus. Die zu codierende Information ist eine Zeichenfolge in einem Alphabet mit 58 Symbolen (gemäß Standard), einschließlich 57 Zeichen und einem Leerzeichen. Dies entspricht ein Alphabet Σ3={EIN,B,,Z,0,1,,9,?,=,,×,@,[]}Das letzte Symbol ist der Raum.

Jedoch ist der Standard spezifiziert , dass es ein Zwischen Alphabet , bezogen auf und möglicherweise anderen Symbolen. Es ist ganz klarΣ2dotdash

  • dass Strings in sind in codierter als Strings werden Σ * 2 , undΣ3Σ2

  • dass Strings in codiert als Strings werden in Σ * 1Σ2Σ1

Da es für und Σ 3 keine Wahl gibt , muss die Frage wie folgt verstanden werden: " Welche Anzahl von Symbolen sollten wir im Zwischenalphabet Σ 2 berücksichtigen, um die Struktur und die Eigenschaften der gesamten Morse am besten zu erklären Code ", bei dem auch die beiden Kodierungen zwischen den drei Ebenen angegeben werden.Σ1Σ3Σ2

In Anbetracht der Tatsache , dass der Morse - Code ist ein Präfix homomorphes (variable Länge) Code, schließt jede Zweideutigkeit , wenn ein Signal decodiert, wir einfach diese wesentliche Eigenschaft erklären können , mit einem ternären Alphabet { , , } und zwei Codierungsschemata C 3 2 von Σ 3 bis Σ 2 und C 2 1 von Σ 2 bis Σ 1Σ2=dotdashsepC32Σ3Σ2C21Σ2Σ1, die beide homomorph und Präfix sind, also beide eindeutige Codes, und somit zusammengesetzt werden können, um eine eindeutige Präfixcodierung der 58 Symbole in Binär zu ergeben.

Daher wird Morsealphabet zusammengesetzt aus einem Präfix ternären Code im Alphabet ausgedrückt , , } , mit diesen drei Symbolen selbst in binär codierte mit den folgenden Codeworten:{ dotdashsep }

dot ,1110 und0010dash 1110sep 00

Es ist zu beachten, dass der sogenannte Abstand zwischen aufeinanderfolgenden dotoder dashtatsächlich in der Darstellung von dotund enthalten ist dash, da dies die übliche mathematische Darstellung für solche Codetypen ist, die üblicherweise als Zeichenkettenhomomorphismen von Quellensymbolen zu Codewörtern definiert sind, die mit Zielsymbolen ausgedrückt werden. wie ich es gerade getan habe.

Dies weicht ein wenig von der Darstellung in der Norm ab, die eher darauf abzielt, den Code für Benutzer intuitiv zu spezifizieren, als ihn auf seine strukturellen Eigenschaften hin zu analysieren. Die Kodierung ist jedoch in beiden Fällen gleich.

Selbst ohne die genauen Timings des Standards könnte ein Decoder des analogen Signals es immer noch in das von uns vorgeschlagene ternäre Alphabet übersetzen, so dass das obige Verständnis des ternären Codes weiterhin gültig wäre.

Codes: grundlegende Punkte

Diese Antwort basiert auf dem Standard ITU-R M.1677-1 vom Oktober 2009 (Dank an Jason C für die Referenz). Ich werde die Terminologie dotund dashanstelle von ditund verwenden dah, da dies die Terminologie ist, die in dieser Norm verwendet wird.

Bevor wir den Morsecode besprechen, müssen wir uns darauf einigen, was ein Code ist. Die schwierigen Diskussionen zu dieser Frage erfordern dies offensichtlich.

Grundsätzlich müssen Informationen dargestellt werden, um übertragen oder auf andere Weise verarbeitet zu werden. Ein Code ist ein System zum Übersetzen von Informationen von einem Repräsentationssystem in ein anderes . Dies ist eine sehr allgemeine Definition. Wir müssen darauf achten, das Konzept einer Repräsentation und das eines Codes von einer Repräsentation (der Quelle ) zu einer anderen (dem Ziel ) nicht zu verwechseln .

Eine Darstellung kann viele Formen annehmen, wie z. B. variable elektrische Spannung, farbige Punkte auf Papier, Zeichenfolgen, Ziffern, binäre Folgen von Nullen und Einsen usw. Es ist wichtig, zwischen analoger und formaler (oder logischer oder abstrakter) Darstellung zu unterscheiden .

Eine analoge / physikalische Darstellung ist eine Zeichnung, ein variierender Spannungspegel, eine Form (für einen Buchstaben).

Eine logische / formale / abstrakte Darstellung ist eine mathematische Darstellung mit abstrakten Graphen, Zeichenfolgen oder anderen mathematischen Einheiten.

Obwohl einige Informationen ursprünglich analog sein mögen, konvertieren wir sie normalerweise in eine logische Darstellung, um ihre Verarbeitung durch mathematische Mittel oder durch Personen genau definieren zu können.

Umgekehrt müssen wir bei der logischen Darstellung mit physischen Geräten wie Computern oder Sendern der logischen Darstellung eine analoge Form geben.

Für die Zwecke dieser Analyse betrachten wir nur die für die Übertragung verwendete analoge Form, wie in der Norm beschrieben. Aber selbst dann werden wir betrachten, dass der erste Schritt darin besteht, diese analoge Darstellung als direkte Implementierung einer identisch strukturierten logischen Darstellung zu interpretieren, auf der wir unsere Analyse aufbauen, welche Art von Code Morsecode sein kann. Die Code-Theorie ist ein mathematischer Wissensbestand, der auf der Analyse logischer Darstellungen basiert.

Wir werden jedoch am Ende der Diskussion auf den Analog / Logik-Übergang zurückkommen.

Codes: Definitionen

Unsere logische Ansicht ist, dass der Code verwendet wird, um Quellzeichenfolgen auf einem Quellalphabet in ein Zielalphabet T zu übersetzen . Es ist häufig der Fall, dass beide Alphabete identisch sind, normalerweise binär, wenn der Darstellung von Informationen eine zusätzliche Eigenschaft hinzugefügt werden soll, z. B. um sie fehlerresistenter zu machen (Fehlererkennung und -korrektur) oder um die Darstellung zu verkleinern Entfernen von Redundanz (verlustfreie Codekomprimierung) und möglicherweise mit sorgfältig kontrolliertem Informationsverlust (verlustbehaftete Komprimierung).ST

Der Zweck von Morsecode besteht jedoch darin, nur eine Möglichkeit bereitzustellen, Zeichenfolgen in einem großen Alphabet in Zeichenfolgen darzustellen, die auf einem viel kleineren Alphabet (tatsächlich binär) basieren, wobei ein fast binäres Zwischenalphabet (Punkte und Bindestriche) verwendet wird, um eine bessere Anpassung an den Menschen zu erreichen Wahrnehmung und manipulative Fähigkeiten. Dies wird durch den sogenannten Code variabler Länge erreicht :

STC:STSTCST

C(s)TsS

CSTTS

w

Es ist leicht zu zeigen, dass die eindeutige Decodierbarkeit und die Präfixeigenschaft unter der Zusammensetzung von Codes geschlossen sind.

Man beachte, dass die Definition als Homomorphismus impliziert, dass es keine spezielle Trennung zwischen Codewörtern gibt. Es ist ihre Struktur, wie die Eigenschaft prefix, die es ermöglicht, sie eindeutig zu identifizieren.

In der Tat müssten solche Trennsymbole Teil des Zielalphabets sein, da sie erforderlich wären, um Zeichenfolgen aus dem Zielalphabet zu dekodieren. Dann wäre es ziemlich einfach, zum theoretischen Modell des Codes variabler Länge zurückzukehren, indem das Trennzeichen an das vorhergehende Codewort angehängt wird. Wenn dies zu kontextuellen Schwierigkeiten führen würde (zum Beispiel aufgrund mehrerer Trennzeichen), wäre dies nur ein Hinweis darauf, dass der Code komplexer als offensichtlich ist. Dies ist ein guter Grund, sich an das oben beschriebene theoretische Modell zu halten.

Der Morsecode

Der Morsecode wird im Standard auf drei Ebenen beschrieben:

  • 3 . Es ist beabsichtigt, eine Kodierung von Texten in natürlicher Sprache mit 57 Zeichen (27 Buchstaben, 10 Ziffern, 20 Synbolen und Interpunktionszeichen) und einem Leerzeichen zwischen den Wörtern bereitzustellen, um die Zeichenfolge in Wörter zu schneiden. Der Zwischenraum wird wie ein Sonderzeichen verwendet, das mit den anderen gemischt werden kann, was ich noch erwähnen werde SEP.

  • 2. Alle diese Zeichen sind als Abfolgen von dash und dotunter Verwendung eines Zwischenbuchstabens zu codieren , den ich notieren werde sep, um das dashund doteines Buchstabens von denen des nächsten Buchstabens zu trennen .

  • 1. Das dashund dotsowie sepsind als Signal oder Abwesenheit eines Signals (als Abstand bezeichnet) mit einer Länge zu codieren, die in Bezug auf eine akzeptierte Einheit genau definiert ist. Insbesondere muss das dashund die dot Kodierung eines Buchstabens durch ein Zwischenelement getrennt sein, das ich noch vermerken werde σ.

Dies erfordert bereits einige Schlussfolgerungen.

Die in analoger Form zu sendende und zu empfangende Nachricht ist eine Folge von Längeneinheiten (Raumlänge oder Zeitlänge), so dass ein Signal für die gesamte Dauer jeder Einheit gemäß Anhang 1 Teil I Abschnitt 1 ein- oder ausgeschaltet ist 2 des Standards :

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.

Dies ist eindeutig eine analoge Codierung in dem, was als Bitstrom bekannt ist, die logisch in binärer Schreibweise durch eine Reihe von dargestellt werden können , 0am 1, für die analoge stehen ab und auf .

Um Fragen im Zusammenhang mit der analogen Darstellung zu abstrahieren, können wir daher berücksichtigen, dass Morsecode-Nachrichten als Bitfolgen übertragen werden, die wir mit 0und notieren werden 1.

Daher kann der obige Auszug aus der Norm logisch ausgedrückt werden als:

  • 0. A dotwird dargestellt durch 1.
  • 1. A dashwird dargestellt durch 111.
  • 2. Ein Zwischenelementraum σwird durch dargestellt 0.
  • 3 . Ein Zwischenbuchstabenraum sepwird durch dargestellt 000.
  • 4. Ein Zwischenwortraum SEPwird durch dargestellt 0000000.

Wir könnten also sehen, dass Morsecode 5 Codewörter in Binärform verwendet, um diese 5 Symbole zu codieren. Abgesehen von der Tatsache, dass das System nicht ganz so beschrieben wird, steckt noch einiges mehr dahinter, und es ist aus naiver oder mathematischer Sicht nicht die bequemste Art, wie man es sich vorstellen kann.

Beachten Sie auch, dass diese Beschreibung für Laien gedacht ist, nicht für Spezialisten der Codetheorie. Aus diesem Grund beschreibt es mehr das sichtbare Erscheinungsbild als die interne Struktur, die es rechtfertigt. Es gibt keinen Grund, andere Beschreibungen auszuschließen, die mit dieser kompatibel sind, obwohl sie mathematisch strukturierter sind, um die Eigenschaften des Codes hervorzuheben.

Zuvor ist jedoch zu beachten, dass die vollständige Beschreibung des Codes drei unmittelbar erkennbare Darstellungsebenen umfasst:

  • 3 . Der aus einer Zeichenfolge zusammengesetzte Text, einschließlich SEP.
  • 2. Die Kodierung einer Buchstabenfolge als Zeichenfolge von dot, dashund sep.
  • 1. Die Codierung einer Zeichenfolge der Ebene 2 dieser drei symbolsZeichenfolgen als Binärzeichenfolge.

Wir können möglicherweise diskutieren, welche Symbole in was codiert sind, aber es ist ein wesentlicher Aspekt des Morsecodes, dass er diese drei Darstellungsebenen mit Zeichen oben, dots und dashes in der Mitte und Bits 0und 1unten aufweist .

Dies impliziert, dass es notwendigerweise zwei Codes gibt, einen von Stufe 3 bis Stufe 2 und einen von Stufe 2 bis Stufe 1.

Analyse der drei Repräsentationsebenen

Um eine konsistente Analyse dieses dreistufigen Kodierungssystems zu erhalten, sollten wir zunächst analysieren, welche Art von Informationen auf jeder Ebene relevant sind.

  • 1. Die Bitfolge setzt sich definitionsgemäß und notwendigerweise aus 0und zusammen 1.

  • 3 . Auf der Textebene benötigen wir ein Alphabet mit 58 Symbolen, einschließlich der 57 Zeichen und des Zwischenwortraums SEP. Alle 58 müssen letztendlich eine binäre Kodierung haben. Obwohl der Morsecode-Standard diese 57 + 1-Zeichen festlegt, gibt er nicht an, wie sie zum Codieren von Informationen verwendet werden sollen. Das ist die Rolle von Englisch und anderen natürlichen Sprachen. Der Morsecode stellt anderen Systemen ein Alphabet mit 58 Symbolen zur Verfügung, auf denen sie einen 58-stelligen Code aufbauen können, aber der Morsecode selbst ist kein 58-stelliger Code.

  • 2. Auf der dotund dash-Ebene brauchen wir nur diese beiden Symbole, um die 57 Zeichen zu codieren, dh für jedes Zeichen ein Codewort als Zeichenfolge dotund dashzusammen mit einem Trennzeichen sep, das angibt, wann ein Buchstabe fertig ist, und einen weiteren Anfang. Wir brauchen auch Mittel, um den Zwischenwortraum zu codieren SEP. Wir könnten versuchen, dies direkt auf Ebene 1 bereitzustellen, aber dies würde die ansonsten nach Ebenen strukturierte Organisation des Codes durcheinander bringen.

In der Tat könnte die Beschreibung der Norm zu Recht dafür kritisiert werden. Aber die Autoren haben vielleicht gedacht, dass ihre Präsentation für den Durchschnittsnutzer einfacher zu verstehen wäre. Es folgt auch eine traditionelle Beschreibung des Morsecodes, die dieser Art der mathematischen Analyse vorausgeht.

Dies erfordert mehrere Bemerkungen:

  • Auf Ebene 3, der Buchstabenebene, ist das Leerzeichen zwischen den Buchstaben sepnicht mehr von Bedeutung. Dies ist ganz normal, da es im Universum der Buchstaben nicht mehr Bedeutung hat als das Leerzeichen, das zwei auf Papier geschriebene Zeichen voneinander trennt. Auf Stufe 2 müssen Codewörter erkannt werden, die die Buchstaben darstellen, aber das ist alles.

  • Ähnlich wie auf Ebene 2 ist der Zwischenelementraum σnicht mehr aussagekräftig. Es hat keine Bedeutung in der Welt von dotund dash, sondern ist nur auf Ebene 1 erforderlich, um die binären Codewörter zu identifizieren dot, die dash. Auf Stufe 1 ist es jedoch nicht vom Bit zu unterscheiden 0.

Der Raum zwischen den Elementen σist also nichts Besonderes mehr. Es ist nur eine Verwendung von 0.

Σ2Σ1

dot10dash1110

Σ2sep0000dotdash00sep0dotdash0

Σ2=dotdashsepC21:Σ2Σ1

  • dot10

  • dash1110

  • sep00

Und wir haben die gute Überraschung zu entdecken, dass kein Codewort ein Präfix eines anderen ist. Daher haben wir einen Präfix-Code, der eindeutig und leicht zu dekodieren ist.

C32:Σ3Σ2

dotdashΣ3dot dot dash dotf

f dot dot dash dot sep

Σ3SEP00000000sep0dotdashSEP0000

SEPΣ2sep00SEPsep sep

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

  • EIN 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

So können wir schließen , dass der Morsecode verstanden werden kann und leicht analysiert werden , wie die Zusammensetzung aus einem Präfix Binärkodierung eines 3 Symbole Alphabet { dot, dash, sep} in ein binäres Alphabet, und ein Präfix Codierung eines 58 Symbolalphabets (57 Zeichen und ein Leerzeichen) in das 3-Buchstaben-Alphabet.

Die Komposition selbst ist eine Präfixkodierung der 58 Symbole in einer binären Darstellung.

Anmerkungen zu dieser Analyse.

Es ist immer schwierig festzustellen, dass eine Präsentation einer Struktur die beste ist, die man sich vorstellen kann. Es scheint jedoch, dass die obige Analyse die Kriterien erfüllt, die zu Beginn dieser Antwort aufgestellt wurden: Nähe zur dreistufigen Definition, die gemäß der aktuellen Codierungstheorie formal dargestellt wird, Einfachheit und Nachweis der Haupteigenschaften des Codes.

Beachten Sie, dass es wenig Sinn macht, nach Fehlerkorrektur-Eigenschaften zu suchen. Der Morsecode erkennt möglicherweise nicht einmal einen einzelnen Bitfehler, da er einfach zwei dotin einen ändern kann dash. Es werden jedoch nur lokale Fehler verursacht.

In Bezug auf die Komprimierung wurde die ternäre Codierung so konzipiert, dass die Anzahl der Punkte und Striche in einer ungefähren Art der Huffman-Codierung ungefähr verringert wird . Die beiden zusammengesetzten Codes könnten jedoch leicht dichter gemacht werden.

In Bezug auf die Größe der Alphabete gibt es keine Wahl zwischen dem binären Alphabet und dem Alphabet mit 58 Symbolen. Das Zwischenalphabet könnte mehr Symbole enthalten, aber was wäre der Zweck?

Einige Leute neigen jedoch dazu, das Leerzeichen DETauf Ebene 2 zu erkennen, wodurch das Alphabet quaternär wird und es dann direkt auf Ebene 3 verwendet wird, das in Ebene 2 selbst codiert ist.

DET0000C21CMOrse

In der Tat würde eine solche Wahl die Binärzeichenfolge 0000mehrdeutig und als entweder SEPoder als dekodierbar machen sep sep. Die Mehrdeutigkeit müsste mit einer Kontextregel gelöst werden, sepdie sich nicht selbst folgen kann, was die Formalisierung komplexer macht.

Die Bedeutung des analogen zum logischen Übergang.

Diese Analyse beruht stark auf der Tatsache, dass die Zerlegung des Ein / Aus-Signals in Einheiten gleicher Länge eindeutig eine analoge Darstellung einer Binärfolge anzeigt. Darüber hinaus sind die Längen in Einheiten genau richtig für die obige Analyse, was wahrscheinlich nicht zufällig passiert ist (obwohl dies möglich ist).

Aus einem (zu flüchtigen) Blick auf das ursprüngliche Patent 1647 scheint es jedoch nicht so genau gewesen zu sein, mit Sätzen wie (oben auf Seite 2):

Das Zeichen einer bestimmten Ziffer oder einer zusammengesetzten Ziffer, wenn es in einem Satz aus Wörtern oder Ziffern verwendet wird, besteht aus einem Abstand oder einem Trennungsraum zwischen den Zeichen, der größer ist als der Abstand, der zum Trennen der Zeichen verwendet wird, aus denen ein solches Zeichen besteht oder zusammengesetzte Ziffer.

Es war auch unwahrscheinlich, dass Personen, die später per Hand sendeten oder per Ohr empfingen, so genau waren. In der Tat war ihre Faust , dh ihr Timing, oft erkennbar. Diese Ansicht wird auch durch die Tatsache gestützt, dass Abstandslängen , insbesondere beim Lernen von Morsecode, nicht immer eingehalten werden.

Diese Situationen entsprechen einer analogen Ansicht des Codes als kurzes Signal (Punkt), mittleres Signal (Strich) und kurze, mittlere und lange Pause. Eine direkte Umsetzung in ein logisches Alphabet würde natürlich ein quinäres Alphabet ergeben, in das die 58 Symbole codiert werden müssen. Dies ist natürlich keine dreistufige Darstellung des Morsecodes mehr.

Um jedoch Sinn zu machen (und möglicherweise Mehrdeutigkeiten zu vermeiden), sollte dieses Alphabet mit der Einschränkung verwendet werden, dass zwei Signalsymbole ( dotoder dash) nicht aufeinander folgen können und dass Pausensymbole auch nicht aufeinander folgen können. Die Analyse des Codes und seiner Eigenschaften würde komplexer, und der natürliche Weg zu seiner Vereinfachung wäre, das zu tun, was getan wurde: Einführung geeigneter Zeitabläufe, um ihn in die Zusammensetzung von zwei Codes umzuwandeln, was zu der oben angegebenen relativ einfachen Analyse führt ( Denken Sie daran, dass der Code als Präfix angezeigt wird.

Darüber hinaus ist es nicht unbedingt erforderlich, in der analogen Darstellung genaue Zeitabläufe zu befolgen. Da der Decoder der analogen Übersetzung kurze, mittlere und lange Pausen unterscheiden kann, sollte er nur nachahmen, was im Binärfall getan wurde. Daher werden kurzes und mittleres Signal (notwendigerweise gefolgt von einer Pause) als logisch dotoder erkannt dash. Kurze Pausen werden vergessen, da sie nur dazu dienen, das Ende von dotoder zu markieren dash. Mittlere Pausen werden als sepund lange Pausen als zwei sepaufeinanderfolgende Pausen erkannt . Daher wird das analoge Signal in einem ternären Alphabet dargestellt, das wie zuvor zum Codieren des Alphabets mit 58 Symbolen verwendet werden kann. Unsere anfängliche Analyse kann auch dann verwendet werden, wenn Timings nicht genau eingehalten werden.

Alternativ könnte die Signalpausenalternanz verwendet werden, um dieses quinäre Alphabet in ein ternäres Alphabet umzuwandeln, wobei nur die drei Zeitdauern als Symbole des Alphabets beibehalten werden und unter Verwendung einer Kontextanalyse bestimmt wird, ob eine gegebene Dauer ein Signal oder eine Pause ist. Aber das ist wieder etwas komplex zu analysieren.

Dies zeigt nur, dass es viele Möglichkeiten gibt, Dinge zu betrachten, aber sie sind nicht unbedingt bequem und eignen sich möglicherweise nicht alle für die Analyse mit den mathematischen Werkzeugen, die für die Analyse von Codes entwickelt wurden.

Weitere Verweise auf die Patente finden Sie im Internet.

Fazit

Angesichts des genauen Zeitplans des Standards scheint es eine gute Antwort zu sein, Morsecode als die Zusammensetzung einer ternären Präfixkodierung (von 58 Zeichen) in ein Alphabet mit 3 Symbolen zu betrachten, das aus einer binären Präfixkodierung dieser drei Symbole besteht.

Ohne das genaue Timing des Standards kann der Binärpegel nicht mehr berücksichtigt werden. Das Analogon zur logischen Dekodierung findet dann natürlich auf der Ebene des Zwischenalphabets von dotund statt dash. Der Analog-zu-Logik-Decoder kann jedoch immer noch das vorherige Alphabet mit 3 Symbolen decodieren, wodurch die Anwendbarkeit unserer Analyse erhalten bleibt.


1
Bitte verschieben Sie jede weitere Konversation auf chat.stackexchange.com/rooms/21638/…
Wandering Logic

1
Kommentare sind nicht für eine längere Diskussion gedacht. Diese Unterhaltung wurde in den Chat verschoben .
Raphael

Frage: Im ternären Argument beginnen Sie mit einem Alphabet {0,1}, daraus konstruieren Sie vier Symbole {dot = 10, dash = 1110, sep1 = 00, sep2 = 000000}, daraus konstruieren Sie eine ternäre Codewortmenge durch Erlauben von sep2 = sep1 sep1 sep1 . Der Codewortsatz wurde gewählt, weil er die Symbole implizit mit der Codierung verknüpft, was praktisch ist, und das OP nach dem binären Speicher fragt. Warum können Sie jedoch nicht stattdessen das Codewortset {rest = 0, on = 1} verwenden und dann "dot = on", "dash = on on on", sep0 = "off", sep1 = "off off off" sagen? , sep2 = "aus aus aus aus aus aus aus" (wo sep0 intersignal rest ist)?
Jason C

^ In diesem Fall ist das Argument für ein binäres Codewort, das über ein ternäres gesetzt ist, wobei jedoch ein ähnliches und ebenso starkes Argument wie das hier angegebene verwendet wird. Das heißt, die Wahl, mehreren Trennzeichen in einer Reihe eine besondere Bedeutung zu geben, mehreren Elementen in einer Reihe jedoch keine besondere Bedeutung zuzuweisen, ist für das ternäre Argument von grundlegender Bedeutung, scheint aber auch willkürlich.
Jason C


28

Diese Antwort ist nicht so lange wie sie aussieht. Diese Seite fügt nur viel Abstand zwischen Listenelementen ein! Update: Eigentlich wird es ziemlich lang ...

Morsecode ist nicht "offiziell" binär, ternär, quaternär, quinär oder sogar 57-fach (wenn ich richtig zähle). Darüber zu streiten, um welches es sich ohne Kontext handelt, ist nicht produktiv. Es ist bis Sie an , welche dieser fünf zu definieren es auf Ihre Anwendung und die Codierung Anforderungen für Ihre spezifische Situation basiert . Zu diesem Zweck gibt es Vor- und Nachteile für jede Symbolsatzgröße, die Sie für Ihre Situation berücksichtigen sollten, bevor Sie eine Entscheidung treffen.

Für die Basis definiert M.1677 , der internationale Morsecode-Standard, Abschnitt 2, Timings als:

2 Abstand und Länge der Signale
2.1 Ein Strich entspricht drei Punkten.
2.2 Der Abstand zwischen den Signalen, die denselben Buchstaben bilden, entspricht einem Punkt.
2.3 Der Abstand zwischen zwei Buchstaben entspricht drei Punkten.
2.4 Der Abstand zwischen zwei Wörtern beträgt sieben Punkte.

Beachten Sie, dass dies nur Timings definiert, dh ein Strich bedeutet nicht dasselbe wie drei Punkte, er hat einfach die gleiche Länge. Die Basiseinheit der Zeit ist ein Punkt.


Binär

Wir können binär wählen, wenn wir möchten. Es ist möglich, Morse-Code mit "strikter Binärzahl", wie Sie es nennen, darzustellen - der Ansatz des Autors bestand darin, die Ziffern "Punkt" und "Strich" zuzuweisen. Dieser Ansatz funktioniert nicht und ich glaube nicht, dass der Autor den Morse-Code genau versteht. Aber es gibt einen anderen Ansatz, der funktioniert. Wenn wir binär wählen, stellen wir im Wesentlichen dar, ob das Signal hoch oder niedrig ist, wobei jedes Symbol eine einzelne Zeitscheibe mit Punktlänge belegt. Beachten Sie, dass dies auch der Ansatz ist, der auf der Seite Liste der Binärcodes beschrieben ist, die Sie zitiert haben.

Es können auch andere binäre Codierungen gewählt werden (z. B. die Antwort von Bob Jarvis ), was zu einer Erhöhung der Schwierigkeit führt, den hörbaren Morsecode wiederherzustellen.

Symbole:

  • Niedrig, Aus usw. (0)
  • Hoch, ein usw. (1)

Codierungsbeispiele:

  • Signaltrenner: 0
  • Buchstabentrennzeichen: 000
  • Worttrennzeichen: 0000000
  • Drei Punkte: 10101
  • Drei Striche: 11101110111
  • Das Wort "Sohn": 101010001110111011100011101
  • Der Ausdruck "ist ein": 10100010101000000010111

Vorteile:

  • Minimale Symbolsatzgröße
  • Einfache Verwaltung mit typischer digitaler Logik
  • Einfach in hörbaren Morsecode zu dekodieren (vorausgesetzt, es erfolgt keine Validierung); zustandslose Dekodierung und erfordert keine Speicherung von Informationen über das Timing von Symbolen (jedes Symbol ist gleich lang).

Nachteile:

  • Lange Kodierungen.
  • Viele Möglichkeiten für ungültige Kodierungen.
  • Einzelne Symbolbedeutungen (0, 1) hängen vom Kontext ab.


Ternary

Bei dieser Auswahl definieren wir Buchstaben- und Wortabstände als Pausen, und die Signalabstände sind implizit (obwohl Sie auch Pausenzeichen für die Punktlänge zwischen den Signalen festlegen können, falls dies für Sie besser geeignet ist).

Symbole:

  • Punktlange Pause (0)
  • Punkt (1)
  • Strich (2)

Codierungsbeispiele:

  • Buchstabentrennzeichen: 000
  • Worttrennzeichen: 0000000
  • Drei Punkte: 111
  • Drei Striche: 222
  • Das Wort "Sohn": 11100022200021
  • Der Ausdruck "ist ein": 11000111000000012

Vorteile:

  • Kleine Symbolsatzgröße.
  • Signaltrenner nicht mehr benötigt.
  • Kürzere Codierungslängen als binär.
  • Entfernt einige ungültige Kodierungen (zB 0110 mit der binären Auswahl nicht mehr möglich).

Nachteile:

  • Noch lange Kodierungen.
  • Noch viele Möglichkeiten für ungültige Kodierungen, insbesondere die Pausen.
  • Kann nicht zustandslos dekodiert werden sei denn, Sie platzieren explizite Punktlängen-Pausen zwischen Signalen.
  • Signaltrennzeichen sind implizit ‡, es sei denn, Sie möchten explizite Punktlängenreste zwischen Signalen einfügen.
  • Einige einzelne Symbolbedeutungen (0) hängen vom Kontext ab.


Quartär

Symbole:

  • Buchstabentrenner (0)
  • Worttrennzeichen (1)
  • Punkt (2)
  • Strich (3)

Codierungsbeispiele:

  • Drei Punkte: 222
  • Drei Striche: 333
  • Das Wort "Sohn": 2220333032
  • Der Ausdruck "ist ein": 220222123

Vorteile:

  • Sehr kurze codierte Länge.
  • Die Möglichkeit ungültiger Codierungen wird verringert.
  • Symbole sind semantisch korrekt.
  • Wohl besser lesbar.

Nachteile:

  • Große Symbolsatzgröße.
  • Kann nicht zustandslos dekodiert werden.
  • Signaltrennzeichen sind implizit.


Quinary

Eine direkte Interpretation der Wikipedia-Liste. Beachten Sie, dass dies der binären Auswahl sehr ähnlich ist, mit der Ausnahme, dass die verschiedenen gültigen Kombinationen von binären Nullen oder Einsen ihre eigenen Symbole erhalten.

Symbole:

  • Signaltrenner (0)
  • Buchstabentrenner (1)
  • Worttrennzeichen (2)
  • Punkt (3)
  • Strich (4)

Codierungsbeispiele:

  • Drei Punkte: 30303
  • Drei Striche: 40404
  • Das Wort "Sohn": 303031404041403
  • Der Ausdruck "ist ein": 3031303032304

Vorteile (im Vergleich zu quaternären):

  • Kann zustandslos dekodiert werden.
  • Die einzige Zeichensatzgröße, die eindeutig, direkt und präzise die fünf in Abschnitt 2 der Norm genannten Objekte darstellt: "Punkt" (auf den sich alle Zeitangaben beziehen), "Strich", "Abstand zwischen den Signalen", "Abstand zwischen" zwei Buchstaben "," Leerzeichen zwischen zwei Wörtern ".

Nachteile (im Vergleich zu quartär):

  • Höhere Wahrscheinlichkeit für ungültige Kodierungen.
  • Erhöhte Codierungslängen, ohne zusätzliche Informationen hinzuzufügen (Kompromiss ist die einfache Decodierung).
  • Nicht so einfach zu dekodieren wie die binäre Auswahl, da jedes Symbol eine andere Zeitdauer hat und diese Zuordnung irgendwo beibehalten werden muss.


57 Jahre:

Der Vollständigkeit halber enthalten.

Symbole:

  • 26 Buchstaben
  • 10 Zahlen
  • 20 Satzzeichen und verschiedene Zeichen
  • Worttrennzeichen (Leerzeichen)

Codierungsbeispiele:

  • Das Wort "Sohn": son
  • Der Ausdruck "ist ein": is a

Vorteile:

  • Kürzeste Kodierung
  • Für Menschen lesbar
  • Ungültige Kodierungen sind nicht möglich.

Nachteile:

  • Größter Symbolsatz
  • Schwierig in Morsecode zu dekodieren; Es ist erforderlich, Tabellen mit Morsecode-Ausgabesequenzen für jedes Symbol zu führen und Wortgrenzen und benachbarte Buchstaben zu erkennen, um zu bestimmen, wo verschiedene Pausen eingefügt werden sollen.
  • Es ist unmöglich, über die Morse-Code-Spezifikation hinaus zu expandieren, ohne neue Symbole hinzuzufügen (Kompromiss für die Immunität gegen ungültige Kodierungen).
  • Signal- und Buchstabentrennzeichen sind implizit.

Beendigung

Für die Lagerung als Symbolstrom auf einem Gerät, wenn Sie das tun müssen, ist es erwähnenswert, dass M.1677 definiert Nachricht und Übertragung Terminierungssequenzen. Aus Teil II:

5 Jedes Telegramm muss mit einem Quersignal (. -. -.) Abgeschlossen werden.
6 Das Ende der Übertragung muss durch das Quersignal (. -. -.) Gefolgt von der Aufforderung zum Senden des Signals K (-. -) angezeigt werden.
7 Das Ende der Arbeiten ist durch die Station anzuzeigen, die das letzte Telegramm gesendet hat. Die korrekte Anzeige ist das Arbeitsende- Signal (... -. -)

Leider sagt die Norm nichts über die Fähigkeit aus, z. B. den String "+ K" von der Sequenz ( Telegrammende , Aufforderung zum Senden ) zu unterscheiden. Das Ende der Arbeit ist jedoch einzigartig. Wenn Sie Morsecode speichern, müssen Sie auswählen, wie Sie das Ende einer gespeicherten Sequenz anzeigen möchten.

Wenn Sie beispielsweise eine gesamte Konversation speichern und den binären Symbolsatz verwenden, können Sie das Ende der Arbeit als End of Sequence-Indikator betrachten, der als eindeutige Bitsequenz 101010111010111 dargestellt wird. Sie müssen den Typ berücksichtigen von Daten, die Sie speichern (z. B. Nachrichtenfragmente, ganze Nachrichten, ganze Unterhaltungen), sowie die Möglichkeiten, die Ihnen Ihr Speichermedium bietet (z. B. die Fähigkeit, Nachrichtenlänge als Präfix zu verwenden), bevor Sie sich entscheiden. Ich nehme an, Sie könnten so weit gehen, Ihr eigenes Ende der Sequenzkennzeichen zu definieren. In jedem Fall handelt es sich hierbei um Fragen des zugrunde liegenden Speichers, und es gibt zu viele Möglichkeiten, diese hier aufzulisten. Die Wahl liegt ganz bei Ihnen, je nachdem, was für Ihre Situation angemessen ist.


Kann nicht zustandslos decodiert werden: Für diese Codierungen muss ein bestimmter Status beibehalten werden, damit sie in hörbaren Morsecode decodiert werden können. Sie alle erfordern "Wenn das vorangegangene Symbol ein Punkt / Strich war und das aktuelle Symbol ein Punkt / Strich ist, fügen Sie ein Signaltrennzeichen ein". Während Sie versuchen könnten, alle Symbole zu "betrügen" und automatisch ein Signaltrennzeichen anzufügen, während Sie das Worttrennzeichen auf 5 Pausen und das Buchstabentrennzeichen auf 1 reduzieren, verbietet M.1677 afaict konsekutive Worttrennzeichen nicht explizit, was diesen Kludge bricht.

Signaltrennzeichen sind implizit: Dies steht in direktem Zusammenhang mit der obigen Anmerkung, ist jedoch mehr semantisch orientiert. Diese Codierungen haben implizite Signaltrennzeichen in ihrer Notation. Das heißt, "zzz" besteht intuitiv aus drei getrennten z, die Grenzen sind "huckepack" für alles, was Symbole in der Codierung selbst trennt. Betrachten Sie die Beschreibung "drei Punkte in einer Reihe"; intuitiv verstehen wir unter drei getrenntePunkte, aber wenn Trennzeichen nicht impliziert würden, könnte dies als nicht von einem Bindestrich unterscheidbar angesehen werden. Nur die binären und quinären Darstellungen im Wikipedia-Stil (oder die ternären Darstellungen mit der expliziten Option "Signaltrennzeichen") entfernen hier alle Mehrdeutigkeiten und "Verknüpfungen", die je nach Situation von großem Wert sein können. Aus diesem Grund gibt es ein starkes Argument für die Wahl des Quinärs.


TL; DR:

Wie Sie sehen, gibt es Vor- und Nachteile, und es liegt an Ihnen, zu entscheiden, wie Sie es auf der Grundlage Ihrer Anforderungen behandeln möchten . Es gibt keine richtige Antwort. Sie könnten versuchen zu argumentieren, dass eines angemessener ist als das andere im Allgemeinen, aber diese Argumente würden sich auf pedantische Präferenzen beschränken, da es ohne Kontext keine richtige Antwort gibt.

Nun, alles, was gesagt wurde, ist meiner Meinung nach die quinäre Wahl die Darstellung, die mir für den Morsecode selbst am "richtigsten" erscheint (ursprünglich hatte ich den quaternären favorisiert). Dies ist die einzige Option, die Folgendes bietet:

  • Kontextfreie Symbole (ein Symbol allein enthält alle Informationen zu seiner Bedeutung, ohne benachbarte Symbole zu untersuchen).
  • Darstellung aller in M.1667 definierten Primitive.
  • Trennzeichen (Signal, Buchstabe, Wort) werden nicht durch Notation oder zugrunde liegende Codierung impliziert (dies ist wichtig, wenn ich geschrieben habe { dot, dot, dash }, diese ,sind signifikant und leicht zu übersehen).

Es gibt jedoch starke Argumente für alle. Die Argumente in Bezug auf die Kodierung gelten auch für die Behandlung von Morse selbst. Es gibt keine 100% konkrete Antwort, aber es kann sicherlich ein gutes Thema für die Debatte mit Ihren Freunden an der Bar sein.

. . . -. -


1
Bitte verschieben Sie jede weitere Konversation auf chat.stackexchange.com/rooms/21638/…
Wandering Logic

1
Kommentare sind nicht für eine längere Diskussion gedacht. Diese Unterhaltung wurde in den Chat verschoben .
Raphael

Sie verweisen in Ihren Argumenten immer wieder auf die zustandslose Dekodierung. In der Codierungstheorie scheinen Zustände in Faltungscodes, bei denen es sich um eine Familie von Fehlerkorrekturcodes handelt, nur selten verwendet zu werden. Dies ist völlig unangebracht, da Morse-Code alles andere als eine Fehlerkorrektur ist. In der Tat kann es nicht einmal einige Ein-Bit-Fehler erkennen, geschweige denn korrigieren. Sie erfinden verschiedene Arten von willkürlichen Codes als eine Version von Morse-Code, aber sie bringen kein Verständnis. Warum sie präsentieren? Die Nichtanforderung von Zuständen, dh homomorphe Codierung, scheint eine Mindestanforderung zu sein. Und du vermisst die interessanten Kodierungen. cc @KorayTugay
babou

@babou Statless Dekodierungsargumente?
Koray Tugay

@babou Ich habe nichts dagegen, ein paar Off-Topic-Punkte zu haben. Natürlich sind die Symbolsätze beliebig; Das ist genau der Punkt, den ich mit dieser Antwort anspreche. Das ternäre Wort, das über dem Argument des Binärpräfixcodes steht, ist ebenfalls willkürlich. Auf den ersten Blick nein, aber im Grunde haben Sie die willkürliche Entscheidung getroffen, das Argument auf ein Codewort zu stützen, das aus zwei Buchstaben (0 und 1) besteht. Es ist eine willkürliche Wahl, weil die Wahl, "sep sep sep" eine besondere Bedeutung zu geben, dies aber nicht für eine "Einheit 1" zu tun, willkürlich ist. Man könnte genauso gut sagen, dass "dash" "dot dot dot" ist und für binär über ternär argumentiert.
Jason C

5

Trotz meiner anfänglichen Überlegungen hat sich herausgestellt, dass diese Frage auf eine Weise formalisiert werden kann, die eine ziemlich genaue Antwort zulässt (modulo einige Definitionsprobleme). Die Antwort ist 3 oder 4, dh ternär oder quaternär. Die Publikumsliebling-Antwort "Alles geht von 2 bis 57" ist nur in dem Sinne richtig, dass wenn jemand Sie nach einer Charakterisierung abelscher Gruppen fragt, Sie ihm sagen, dass es sich um Mengen handelt.

Beginnen wir mit der physikalischen Codierung für Morse-Code. Das ist eigentlich B ASK , dh binäre Amplitudenumtastung. Dies ist nur eine aufwendige Methode, um zwei physikalische (elektrische / optische usw.) Amplitudenpegel für die Kodierung unserer Nachricht anzugeben. Die unmittelbare Frage lautet also: Bedeutet dies nicht, dass der Morsecode binär ist? Nun, es ist nur in einer eher nicht informativen Weise binär, in dem Sinne, dass das über die Leitung gesendete binäre Ein / Aus-Signal weder Linien noch Punkten direkt entspricht . Bei dieser vagen Entsprechungsebene könnten wir sogar den ASCII-Code (mit der direkten, offensichtlichen Bitcodierung) senden und ihn "Morse" und / oder "Binär" nennen. Gleiches gilt für jeden Huffman-Code (anstelle von ASCII).

Wie können wir also die Korrespondenz präzisieren und gleichzeitig unsere Frage formalisieren? Die Codierungstheorie hilft dabei. LassenMSeien Sie die Menge der "morsable" Symbole, ungefähr 66 Symbole, wenn ich das Morse-Code-Universum richtig verstehe; Dazu gehören die 26 lateinischen Buchstaben, die 0-9 Ziffern und eine Reihe von Hilfssätzen wie Satzzeichen, "Prosigns" usw. Es ist eigentlich nicht sonderlich wichtig, was diese sind. Ein Code ist ein injektives Mapping c:MT woher T (nicht T) ist ein Satz von Codewörtern. Um in unserer zugrunde liegenden BASK-Hardware physisch darstellbar zu sein, benötigen wir dasT{0,1}, dh unsere Codewörter müssen eine Folge von Bits sein; Beachten Sie, dass dies beinhaltetcDie Werte von sind Zeichenfolgen von Codewörtern, also Zeichenfolgen von Zeichenfolgen von Bits, die letztendlich nur als Zeichenfolgen von Bits linearisiert werden.

Um eine getreue Charakterisierung des Morsecodes zu sein, brauchen wir T um einige direkte Äquivalente von Linien und Punkten zu enthalten, in dem Sinne, dass zwischen diesen Codewörtern und den Punkten und Linien, die den Morsecode auf Papier darstellen, ein Bruch bestehen muss. T ist auch erforderlich, um [fast] ein eindeutig entschlüsselbarer Code zu sein, was bedeutet, dass jeder Faktor eines Elements von T in Bezug auf Elemente / Codewörter von T[idealerweise] muss einzigartig sein. (Beachten Sie, dass manche Autoren, z. B. Berstel , nicht einmal anrufenTein Code, es sei denn, er ist eindeutig entschlüsselbar, aber andere, z. B. Steve Roman, haben eine andere Terminologie, in der jede Zuordnung ein Code ist, aber diejenigen, die eindeutig entschlüsselbar sind, werden nur so und mit UD-Codes abgekürzt. Hier werde ich nur die letztere Terminologie. Du wirst auch etwas später sehen, warum ich "ideal" gesagt habe.)

Schon seit c Es ist nur erforderlich, eine Injektion und keine Surjection zu sein, die wir besiedeln können Tmit willkürlichem "Junk", der über das hinausgeht, was benötigt wird, um einen UD-Code zu erhalten, solange die von diesem Junk erzeugten Zeichenfolgen nicht das Vorbild von irgendetwas Schlechtem sind. Beispielsweise entspricht eine Zeichenfolge von genau 42 Punkten in keiner der Varianten des Morsecodes, die ich gesehen habe, etwas. Wenn wir also fragen, ob der Morsecode binär, ternär, quaternär, quinär usw. ist, muss die Frage nach der minimalen Kardinalität von gestellt werdenT mit den obigen zwei Eigenschaften, dh: es ist [fast] ein UD-Code und wir haben einen offensichtlichen Unterschied zwischen der papierbasierten "Linie" und "Punkt" zu einigen Elementen von T.

Beim Konstruieren gibt es zwei Möglichkeiten TEntweder von oben nach unten, indem Sie beobachten, dass Sie ein Trennzeichen zwischen der papierbasierten, strichpunktierten Darstellung von Morse-Buchstaben benötigen, um einen UD-Code zu erhalten, oder von unten nach oben, da wir im internationalen Morse-Code der ITU die Zeit haben -Längen der Linien, Punkte und verschiedene Pausen. Ich werde hier den letzteren Ansatz verwenden, da es zahlreiche Möglichkeiten gibt, an welche zu gelangenT Andernfalls können Sie also beliebig lange Zeiträume auswählen, z. B. wenn der nicht mehr existierende amerikanische Morsecode kürzere Zeilen als die ITU-Version verwendet.

Beginnen wir mit der von der ITU-Signallänge abgeleiteten Darstellung, die fünf Grundcodewörter aufweist, die aus dem Einheitslängensignal (1) und dem Ausschaltsignal (0) erzeugt werden: just-dot(1), just-line(111), unit-space(0) , letter-space(000) und word-space[angenommene sieben Nullen in der internationalen Morse, können jedoch in der Praxis variieren]. Beachten Sie sofort, dass die unit-spaceDose nur unmittelbar nach und gefolgt von einer 1 angezeigt wird . und dasjust-dotjust-line0-Ermittlung von just-dotund just-line(das ist ein Komma-Code; dazu später mehr) ist tatsächlich erforderlich, da man sonst nicht einmal Linien von Punkten unterscheiden kann. Dies gibt Ihnen die offensichtliche Reduktion auf vier Codewörter mit:

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

Das ist also der quartären Morse - Code: dit, dah, letter-space, word-space. Die nächste Beobachtung ist, dass die word-spacezwei letter-spaces, dh sechs Nullen angenähert (oder sogar angenommen) werden können . So erhalten Sie das ternäre Codewort-Set. Als Referenz für diese Argumentation siehe zB [1] [2] .

Es gibt auch einen technischen Grund, die ternären Codewörter vorzuziehen: T={10,1110,000}ist ein eindeutig entschlüsselbarer Code, in der Tat ist es ein Präfix-Code. jedoch{10,1110,000,07} (oder die Version mit nur sechs Nullen) ist da nicht mehr eindeutig zu entziffern 010=0307=0703Es gibt also eine nicht eindeutige Faktorisierung. Während dies theoretisch ein Problem ist, ist es praktisch nicht von Belang, da das menschliche "Metronom" ohnehin Schwierigkeiten hat, sehr lange Stillezeiten zu messen, weshalb grundsätzlich angenommen wird, dass jede Stille, die länger als eine bestimmte Länge ist (von einem Menschen), eine word-spaceArt von Stille ist .

Beachten Sie auch, dass, wenn Sie bleiben 0 Auch in dieser Menge (dh aus "quinärer" Sicht) wird es "noch falscher", in dem Sinne, dass sogar 000hat keine eindeutige Faktorisierung mehr (da es sich auch um ein Codewort handelt). Außerdem,0 ist nicht im Vorbild irgendeines Morse-Symbols, also ist es Junk-In TÄhnlich wie Sie hinzufügen können 1420 zu T; in der Tat ist das Hinzufügen des letzteren weniger mühsam als das Hinzufügen0 Der Code verliert dadurch nicht die UD-Eigenschaft.

Die Reduktion / Abstraktion aus dit, dah, letter-spaceals binäre Codeworte zu drei abstrakten Symbolen (trits) ist geeignet zeigt schnell , dass der (ternäre) Morsecode UD ist; Das ist sofort offensichtlich, da es sich letter-spaceum ein Komma handelt, dh der ternäre Morsecode ist ein Kommacode. (Beachten Sie, dass andere Autoren "Komma-Code" in einem restriktiveren Sinne definieren, in dem alle Symbole außer dem Komma dasselbe sind. Ich verwende es hier im weiteren Sinne, wie es in DH Smiths "Postmoderner Algebra" beschrieben ist bedeutet die Verwendung eines eindeutigen Abschlusssymbols für jedes Codewort.) Beachten Sie auch, dass die Komma0code-Technik auf zwei Ebenen im Morsecode verwendet wird. die just-lineund just-dotwerden durch das "kurze Komma" abgeschlossen unit-space=0um sie voneinander unterscheidbar zu machen. Sobald Sie diese Konstruktion in die zwei verschiedenen ( ditund dah) Trits abstrahieren, werden alle Morse-Codebuchstaben durch Beenden mit durch Komma codiert000 was der dritte trit.

Sie können auch den Trit-Ansatz verwenden, bei dem die Entropie unter der Annahme von a dahund ditund letter-spaceals Trits [3] "äquivalent" ist , in dem Sinne, dass beispielsweise "e" 2 Trits und "y" 5 Trits benötigt. Der abstrakte Trit-Ansatz ist nicht so nützlich, wenn Sie sich Gedanken darüber machen, wie teuer jedes Symbol für die tatsächliche Übertragung in der echten BASK-Morse-Codierung in einer Zeile ist. Für letzteres müssen Sie sich auf die tatsächlichen Bitlängen der 3 (oder 4) Symbole beschränken, die als Übergänge in einem Automaten angesehen werden. Zum Beispiel benötigt der Buchstabe 'e' 5 Bits zum Codieren (as dit letter-space), während 'y' 17 Bits benötigt (drei dahs, eins ditund a letter-space). Diese Denkrichtung geht auf Shannon zurück (siehe S. 3-4). Weitere Details finden Sie hierIn Blahuts "Informationstheorie und Codierung"Zum Beispiel berechnet er "einen Durchschnitt von 9,296 Signalisierungseinheiten pro Quellausgangsbuchstabe" für Morsecode unter Verwendung der (unbedingten) Wahrscheinlichkeiten des Auftretens von Buchstaben in Englisch. Für eine etwas andere Darstellung (von einem Zoologen!) Könnten Sie JP Hailmans ansehen ; er erhält einen anderen Durchschnitt (10,2), weil er für englische Buchstaben leicht unterschiedliche Wahrscheinlichkeiten annimmt, ansonsten ist seine Analyse konzeptionell dieselbe.

Um dies zusammenzufassen: Sie können den Morse-Code auf mehrere Arten betrachten, aber einige sind fruchtbarer als andere, wenn sie etwas Interessantes dazu sagen. Mir sind keine Analysen mit der "Quinary" -Ansicht bekannt, und damit dieses Modell nicht auf vier Symbole reduziert werden kann, müssen Sie einige Annahmen über das Vorkommen des Einheitsraums treffen, der in der tatsächlichen Morse nicht enthalten ist Zum Beispiel, dass Sie zwei, aber nicht unbedingt drei benachbarte Einheitsräume haben könnten (was ungültige Morse ist). Die ternäre Ansicht bietet Ihnen eine schnelle Analyse der einzigartigen Dekodierbarkeit. Die tiefste / fruchtbarste Ansicht ist die, bei der 3 oder 4 Symbole als tatsächlich durch ungleiche Mengen von Bits dargestellt betrachtet werden, wie sie im realen Morsecode (| dit| = 2, |dah | = 4, | letter-space| = 3 und |) sindword-space| = 6 oder 7); Auf dieser niedrigen Ebene ist es immer noch aufschlussreich, die ternären / quaternären Symbole als Übergänge in einem Automaten zu betrachten.

Warum Wikipedia daran scheiße findet ... nun, bei einigen Themen tut es einfach. Ihr Hauptartikel auf http://en.wikipedia.org/wiki/Coding_theory ist nicht wirklich etwas, was ich empfehlen würde, zu lesen. Ich kann nicht viel über das (Petzold-) Buch sagen, das Sie erwähnt haben, außer dass es nicht von einem Experten für Informationstheorie geschrieben zu sein scheint. Petzold ist nur in dem Sinne richtig, dass man, wenn morsecodierte Nachrichten nur aus einem Buchstaben bestehen, vernünftigerweise sagen könnte, dass sie sich in einem Binärcode befinden. Wenn Sie jedoch Wörter senden möchten, benötigen Sie ein Buchstabentrennzeichen. Andernfalls wäre der Code fürchterlich unleserlich, bis zur Unpraktikabilität.


Es ist etwas spät für mich, den gesamten Beitrag zu überarbeiten, aber @babou weist darauf hin, dass Shannon, Blahut und andere anscheinend den (aktuellen) ITU-Standard im Folgenden falsch interpretiert haben (vorausgesetzt, er hat sich seitdem nicht geändert) Technisch: Der Einheitsraum wird zwischen dits und dahs desselben Buchstabensletter-space hinzugefügt , aber nur der zwischen den Buchstaben. Diese Lektüre der Norm scheint sich auf ein relativ aktuelles Praktizierbuch zu stützen . Also brauchen wir ein leihen 0 von letter-spacein jeder ditund dahwenn sie in Endpositionen eines Briefes, so dass nur zwei 0en für das letter-space, dhT={10,1110,00}. Das bedeutet auch, dass (zum Beispiel) die Größe von 'e' nur 4 Bits beträgt, nicht 5.


Bitte verschieben Sie jede weitere Konversation auf chat.stackexchange.com/rooms/21638/…
Wandering Logic

Kommentare sind nicht für eine längere Diskussion gedacht. Diese Unterhaltung wurde in den Chat verschoben .
Raphael

-1

Ursprünglich sollte Morsecode Markierungen auf einen Papierstreifen schreiben, aber Telegraphenbetreiber konnten bald die Klicks der Geräte "lesen". Diese Version von Morse (American oder "Land" Morse) hatte drei "Mark" -Elemente, den Punkt, den Strich und den langen Strich.

Die Verwendung von International Morse während des letzten Jahrhunderts über Funk wurde normalerweise von Hand (auf einem Telegraphenschlüssel) verschlüsselt und von Ohr zu Ohr entschlüsselt, indem das vom Empfänger erzeugte Muster von Signaltönen abgehört wurde. Erfahrene Bediener konnten bessere Ergebnisse erzielen als ungelernte, und einige Leute konnten Code erstellen, der leichter zu verstehen war als der von anderen. Einem guten Sender wurde eine "gute Faust" nachgesagt. Ein unfähiger Operator wurde als LID bezeichnet. (Für den Ursprung von "lid" - der meines Erachtens aus einem verbreiteten Fehler in der amerikanischen Morse stammt, LID für DD zu senden, daaahh, dit dit, dah, dit, dit, anstatt dah, dit, dah, dit, dit - siehe diesen Verweis: https://english.stackexchange.com/questions/31818/how-did-the-word-lid-come-to-mean-poor-operator-in-context-of-telegraph .)

Daraus folgt, dass die "Codierung" von Morse in ein Binärformat vom Zweck abhängt und somit davon, ob die Qualität von "guter Faust" gegenüber "schlechter Faust" beibehalten werden soll. Soll eine Folge von Ein- und Ausschalten an einen Takt angepaßt und auf Schwierigkeiten in der Phase oder Dauer jedes Teils des Signals "korrigiert" werden? Oder soll es stattdessen mit einer Rate abgetastet werden, die ausreicht, um zufällige oder verwirrende Variationen beizubehalten, vermutlich für eine spätere Prüfung oder Begeisterung?


1
Entschuldigung, wie beantwortet das die Frage?
Koray Tugay
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.