Informatik / TAMS / Applets / Jython Console / T1: Kodierung (Morce-Code)
Beschreibung
Diese Seite demonstriert die Verbindung von Text, Graphiken und interaktiven Audioausgabe. Als Beispiel dafür dienen Skripte zur Demonstration des Morse-Codes. Der Inhalt entspricht Kapitel 1.4 des T1-Matlab-Skripts.

Die Applets auf dieser Seite verwenden wieder die digital-signierte Version unserer interaktiven Jython-Console und laden bei Bedarf kleinere Jython-Skripte direkt vom Webserver nach. Abhängig von den Sicherheitseinstellungen Ihres Browsers bzw. ihres JREs bekommen Sie eventuell eine Nachfrage und Warnung. Bitte bestätigen Sie die Ausführung des signierten Applets.

Codes variabler Länge

Bei der seriellen Übertragung können die Codewörter eines Blockcodes einfach aneinandergehängt (concateniert) werden. Wegen der festen Länge der Codewörter sind diese später wieder zu rekonstruieren, sofern kein Bit verlorengeht.

Die Zerlegung einer unstrukturierten Bitsequenz in Codewörter ist auch möglich, wenn die Codewörter unterschiedliche Länge haben. Eine hinreichende Bedingung dafür ist die Fano-Bedingung: Kein Codewort ist identisch mit dem Anfang eines anderen Codewortes.

Als Beispiel nehmen wir den einfachsten Fall eines binären Fano-Codes, bei dem drei Symbole codiert werden in die Codewörter 1 ; 01 ; 00. Als Symbole nehmen wir der Reihe nach die Symbole "Punkt" ; "Strich" und "Zeichentrennung" des Morsecodes. Damit kann nun jeder Text aus dem Alphabet
"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-?/"
zunächst nach Morse codiert und anschliessend mit obigem Fano-Code binär umcodiert werden.

Zur Umcodierung von ASCII nach Morse nehmen wir die Funktion str2morse :


Und zur Umcodierung dieses Strings in den oben genannten speziellen Fano-Code die Funktion:


Die Umkehrung erfolgt mit:


Im Gegensatz zum Blockcode gelingt das Zerlegen der Bitsequenz in Codewörter in diesem Fall auch dann sicher, wenn Bits verloren gehen oder eingefügt werden. Bei der folgenden Demonstration wird der korrekten Bitsequenz eine zufällige Anzahl von 0...n-1 zufälliger Bits vorangestellt. Dann wird dieser Bitvektor dekodiert um zu zeigen, dass der Code auch nach beliebigen Fehlern sofort wieder dekodiert werden kann. Zum Vergleich wird das selbe mit der ASCII-Codierung durchgeführt. In diesem Fall gelingt das Lesen nur, wenn die Anzahl der eingefügten Bits ein Vielfaches von 8 ist.


Das automatische Decodieren realer tönender Morsesignale ist ein Problem der Nachrichtentechnik, das hier nicht behandelt wird.


14.07.2004 Impressum
http://tams-www.informatik.uni-hamburg.de/applets/jython/index.html