Baudot-Code
5-Bit-Code für Fernschreiber und RTTY — 32 Codewörter reichen für Buchstaben, Ziffern UND Satzzeichen, weil zwei davon als Umschalter zwischen zwei Zeichensätzen dienen.
Der Baudot-Code (in seiner heute gebräuchlichen, verfeinerten Form auch ITA2 oder Baudot-Murray-Code genannt) ist ein 5-Bit-Zeichencode für Fernschreiber, entwickelt in den 1870er-Jahren von Émile Baudot und in den 1920er-Jahren von Donald Murray zum internationalen Telegrafenalphabet Nr. 2 weiterentwickelt. Er ist bis heute im Amateurfunk aktiv im Einsatz — als Zeichencode für RTTY (Radioteletype), einen der ältesten digitalen Betriebsarten überhaupt.
1. Warum nur 5 Bit nicht reichen — und wie der Code das trotzdem löst
5 Bit ergeben $2^5 = 32$ mögliche Codewörter. Das reicht rechnerisch nicht einmal für die 26 Buchstaben des Alphabets plus die 10 Ziffern plus die gängigsten Satzzeichen — zusammen deutlich über 32 Zeichen. Der Baudot-Code löst das, indem er zwei Codewörter als Umschalter reserviert statt als Zeichen zu nutzen:
11111= LTRS (Letters): Ab jetzt gelten die restlichen 30 Codewörter als Buchstaben.11011= FIGS (Figures): Ab jetzt gelten dieselben 30 Codewörter als Ziffern und Satzzeichen.
Jedes der 30 übrigen Codewörter hat also zwei Bedeutungen — welche davon gemeint ist, hängt einzig davon ab, welcher Umschalter zuletzt gesendet wurde. Das Codewort 00110 bedeutet zum Beispiel „I“ im Buchstaben-Modus, aber „8“ im Ziffern-Modus. Diese Mehrdeutigkeit ist der Kernkompromiss des Verfahrens: Sie spart Bits, macht den Code aber davon abhängig, dass Sender und Empfänger immer denselben Umschaltzustand mitführen — dazu mehr in Abschnitt 3.
2. Die Codetabelle
| Bits | Buchstaben | Ziffern/Zeichen | Bits | Buchstaben | Ziffern/Zeichen |
|---|---|---|---|---|---|
00011 |
A | − | 10010 |
L | ) |
11001 |
B | ? | 01100 |
N | , |
01110 |
C | : | 11000 |
O | 9 |
01001 |
D | $ | 10110 |
P | 0 |
00001 |
E | 3 | 10111 |
Q | 1 |
01101 |
F | ! | 01010 |
R | 4 |
11010 |
G | & | 00101 |
S | ' |
10100 |
H | # | 10000 |
T | 5 |
00110 |
I | 8 | 00111 |
U | 7 |
01011 |
J | BEL | 10011 |
W | 2 |
01111 |
K | ( | 11101 |
X | / |
| — | — | — | 10101 |
Y | 6 |
| — | — | — | 10001 |
Z | + |
| Bits | Bedeutung | Bits | Bedeutung |
|---|---|---|---|
00100 |
Leerzeichen (in beiden Modi gleich) | 01000 |
Wagenrücklauf CR (in beiden Modi gleich) |
00010 |
Zeilenvorschub LF (in beiden Modi gleich) | 11111 |
LTRS — Umschalter auf Buchstaben |
11011 |
FIGS — Umschalter auf Ziffern/Zeichen | 00000 |
Leerlauf (Blank/NUL) |
Diese Tabelle ist identisch mit der Zuordnung im ITA2-Decoder-Block, der im DDK9-RTTY-Projekt real gegen empfangene RTTY-Signale getestet wurde.
3. Die Schwachstelle: Umschaltfehler
Genau dieses Verhalten lässt sich im Simulator unten direkt ausprobieren: Ein gekipptes Bit in einem normalen Zeichen verfälscht nur dieses eine Zeichen, ein gekipptes Bit in einem Umschalter reißt dagegen den gesamten restlichen Text mit.
Die gängige Gegenmaßnahme heißt Unshift on Space (UOS): Da ein Leerzeichen in beiden Modi denselben Code hat, kann ein Decoder bei jedem empfangenen Leerzeichen automatisch in den Buchstaben-Modus zurückschalten — ein cleverer Kompromiss, der auf Kosten seltener FIGS-Leerzeichen-Kombinationen verhindert, dass ein einzelner verlorener Umschalter den kompletten Rest der Übertragung zerstört. Der bereits erwähnte ITA2-Decoder-Block implementiert UOS als Parameter, genau wie im Simulator unten.
4. Verwandtes Verfahren: der 7-Bit-„Moore-Code" (CCIR 476, AMTOR)
UOS mildert das Umschaltproblem ab, beseitigt aber nicht die grundsätzliche Schwäche aus Abschnitt 3: Baudot selbst hat keinerlei Fehlererkennung eingebaut. Die kommerzielle Fernschreib-über-Funk-Technik ging dieses Problem direkter an, indem sie Baudot/ITA2 auf 7 Bit erweiterte — bekannt als CCIR 476, dessen zugrundeliegende Konstruktion in der Fachliteratur als „Moore-Code" bezeichnet wird.
Die Kernidee: Jedes gültige Zeichen besteht aus exakt 7 Bit mit einem festen Verhältnis von 4 Mark- zu 3 Space-Bits (oder umgekehrt, je nach Konvention) — ein sogenannter Code mit konstantem Gewicht. Von den $\binom{7}{4}=35$ möglichen 4-aus-7-Kombinationen werden 32 für die Baudot-Zeichen benötigt, die restlichen 3 dienen als Steuersignale für das unten beschriebene Wiederholungsprotokoll. Der entscheidende Vorteil gegenüber reinem Baudot: Jedes gültige Codewort hat zu jedem anderen einen Hamming-Abstand von mindestens 2 — kippt ein einzelnes Bit, stimmt die 4:3-Verteilung nicht mehr, und der Empfänger erkennt sofort „das kann kein gültiges Zeichen sein", ganz ohne zusätzliches Prüfbit.
Diese eingebaute Fehlererkennung wird mit einem ARQ-Mechanismus (Automatic Repeat reQuest) zu echter Fehlerbehebung kombiniert: Der Sender überträgt in kurzen Dreier-Zeichen-Blöcken, der Empfänger prüft jedes Zeichen auf die 4:3-Verteilung und fordert bei einer Verletzung über einen Rückkanal die Wiederholung des Blocks an, statt (wie bei FEC-Codes à la Hamming oder Golay) den Fehler direkt selbst zu korrigieren. Das historische Grundprinzip — ein automatisches Wiederholungsprotokoll für Fernschreibverbindungen über gestörte Funkstrecken — entwickelte Hendrik van Duuren in den Niederlanden in den 1940er-Jahren; die erste Verbindung dieser Art ging 1947 zwischen den Niederlanden und New York in Betrieb. Im Amateurfunk ist dieses Verfahren als AMTOR (Amateur Teleprinting Over Radio) bekannt — von Peter Martinez, G3PLX, in den 1980er-Jahren aus der kommerziellen SITOR-Technik adaptiert. Bemerkenswerterweise ist das derselbe G3PLX, der später auch Varicode und PSK31 entwickelte — beide Verfahren lösen dasselbe Grundproblem (robuste Zeichenübertragung über gestörte Funkkanäle), nur mit gegensätzlichen Strategien: AMTOR per Fehlererkennung plus Wiederholung, PSK31/Varicode ganz ohne Fehlerschutz auf Zeichenebene, dafür mit minimaler Bandbreite.
5. Simulator: Kodierung, Umschaltzustand und Fehlerausbreitung
Text kodieren, Bits kippen, Kaskadeneffekt beobachten
Text eingeben (nur Großbuchstaben, Ziffern, Leerzeichen unterstützt) — Umschalter (LTRS/FIGS, farbig markiert) werden automatisch eingefügt. Auf ein Bit klicken, um einen Übertragungsfehler zu simulieren. Unten erscheint das live dekodierte Ergebnis; abweichende Zeichen sind rot markiert. Ein gekipptes Bit in einem lila/orangen Umschalter-Feld reißt typischerweise alle folgenden Zeichen mit — ein gekipptes Bit in einem blauen Datenfeld meist nur das eine Zeichen selbst.
6. Framing: Start-, Daten- und Stoppbit
Für die Übertragung auf der Leitung (oder per Funk) wird jedes 5-Bit-Zeichen zusätzlich in ein Startbit (immer 0) und ein oder mehrere Stoppbits (immer 1) eingerahmt — der Empfänger erkennt am Übergang von 1 (Ruhezustand) auf 0 (Startbit) den Beginn eines neuen Zeichens und tastet danach im festen Bit-Takt weiter ab. Im Amateurfunk-Standard RTTY 45 (auch „45-Baud-RTTY") sind das konkret: 1 Startbit, 5 Datenbits, 1,5 Stoppbits, bei einer Symbolrate von 45,45 Baud (rund 60 Wörter pro Minute) und einem Frequenzhub (Shift) von 170 Hz zwischen den beiden FSK-Tönen (bei AFSK typischerweise Mark 2125 Hz / Space 2295 Hz).
7. Praktischer Einsatz
RTTY (Radioteletype) im Amateurfunk: RTTY ist bis heute eine aktiv genutzte Digimode auf Kurzwelle, bei der Baudot-/ITA2-kodierter Text per FSK übertragen wird — eine der ältesten digitalen Betriebsarten im Amateurfunk überhaupt, seit den 1930er-Jahren im Einsatz und weiterhin populär für Contest- und DX-Betrieb. Der ITA2-Decoder-Block in diesem Wiki demoduliert genau solche Signale und dekodiert sie nach exakt der Tabelle aus Abschnitt 2 — inklusive Flywheel-Synchronisation und optionalem UOS, um mit genau der in Abschnitt 3 beschriebenen Schwachstelle robust umzugehen.
Historische Fernschreibnetze (Telex): Vor der Ablösung durch E-Mail und Fax war ITA2 jahrzehntelang der Standardzeichensatz kommerzieller und diplomatischer Fernschreibnetze weltweit.
8. Grenzen
- Keinerlei Fehlererkennung: Anders als ASCII-Übertragungen mit Paritätsbit oder die in dieser Artikelserie behandelten Codes (Hamming, BCH, CRC) hat Baudot/ITA2 von Haus aus keinen Schutz gegen Bitfehler — jedes gekippte Bit ändert stillschweigend ein Zeichen.
- Umschaltzustand als Fehlerverstärker: Wie in Abschnitt 3 gezeigt, kann ein einzelner verlorener Umschalter beliebig viele nachfolgende Zeichen falsch dekodieren lassen — ein Fehlerverhalten, das robustere Codes wie ASCII (fester 7/8-Bit-Zeichensatz ohne Modus-Abhängigkeit) grundsätzlich nicht kennen.
- Nur Großbuchstaben, kleiner Zeichenvorrat: 32 Codewörter (abzüglich der beiden Umschalter und Sonderzeichen) reichen nicht für Kleinbuchstaben oder einen größeren internationalen Zeichensatz — ein struktureller Kompromiss der ursprünglichen Bit-Budget-Entscheidung.
ITA2 Decoder Block
Ein realer GNU-Radio-Block, der diesen Code mit Flywheel-Sync und UOS aus echten RTTY-Signalen dekodiert.
DDK9-RTTY-Demodulation
Der Projektkontext, in dem der Decoder-Block entstanden ist.
Frequency Shift Keying
Die Modulationsart, mit der Baudot-kodierte RTTY-Signale physikalisch übertragen werden.
Varicode
Der modernere, selbstsynchronisierende Zeichencode hinter PSK31 — variable statt fester Codelänge.
Codes-Übersicht
Einordnung von Baudot/ITA2 neben Leitungscodes und Fehlerkorrekturverfahren.