Eine SMS wird über einen gestörten Kanal übertragen und soll mit Hilfe eines Faltungscodes gesichert werden. Am Empfänger wird die übertragene Information durch einen Viterbidecoder geschätzt. Folgende Schritte werden im Demonstrator ausgeführt:
- Die maximal eingegebenen 160 alphanumerischen Zeichen werden gemäß ASCII in einen Bitstrom codiert.
- Der so entstandene Bitstrom wird in Blöcke a 16 Bit eingeteilt.
- Eine terminierte Faltungsencodierung wird durchgeführt, d.h. an jeden Block werden zwei Terminierungsbits angehängt und anschließend faltungscodiert.
- Der encodierte Bitstrom wird gestört. Dazu kann eine Bitfehlerwahrscheinlichkeit pro Block zwischen 0,01 und 0,1 eingestellt werden.
- Im Empfänger wird der Viterbi-Algorithmus zur Decodierung der übertragenen Daten angewendet.
- Schließlich erfolgt eine Umwandlung des decodierten Bitstroms in ASCII Zeichen.
Der Faltungsencoder aus Bild 1 hat die Coderate R=0,5. Das Generatorpolynom für das erste Codebit lautet: g1(x)=x^2+x+1, für das zweite Codebit: g2(x)=x^2+1. Es handelt sich um das Standardbeispiel aus dem Skript Nachrichtenübertragung von Friedrich Jondral.
Bild 1: Faltungsencoder
Das Zustandsdiagramm (Bild 2) gibt die Codebitausgabe in Abhängigkeit vom aktuellen Zustand und dem aktuellen Infobit an. An den Kanten zwischen zwei Zuständen steht das Infobit und das dazugehörige Codetupel, das ausgegeben wird.
Bild 2: Zustandsdiagramm
You need a Browser with Java2 support, Netscape 6.2 for example.
Bedienungsanleitung:
Im linken Textfeld kann eine Textnachricht (ohne Umlaute) mit maximal 160 Zeichen eingegeben werden. Die Nachricht wird mit dem Send -Button abgeschickt. In der Mitte befindet sich ein Schieberegler zur Einstellung der Bitfehlerrate. Am linken Anschlag werden 1% und am rechten Anschlag 10% der Bits verfälscht. Im rechten Fenster werden alle intern ausgeführten Schritte aufgelistet (Logfenster). Es wird der originale Bitstrom angezeigt, die darauf folgende Blockbildung, das Anfügen der Terminierungsbits (blau) und der gestörte Bitstrom am Empfänger. Die gestörten Bits sind rot dargestellt. Im Empfänger wird der Bitstrom decodiert, die Terminierung abgeschnitten und die so erhaltene Bitfolge ausgegeben. Schließlich wird noch der Bitstrom in Klartext transformiert. Wenn die Korrekturfähigkeit des Faltungscodes überschritten ist, kann der ursprünglich gesendete Text nicht wiederhergestellt werden. Will man sich die Trellisstruktur anschauen, kann ein empfangener Bitstrom, nach Markieren mit der Maus, mit STRG-C in den Zwischenspeicher kopiert werden und im Textfeld des Trellisfensters (Aufruf durch Drücken des Trellis-Buttons) mit STRG-V eingefügt werden. Danach ist das Trellisdiagramm zur Decodierung dieses Bitstroms sichtbar. Angezeigt werden die vier möglichen Zustände (A: 00=0, B: 01=1, C: 10=2, D:11=3) mit ihren Übergängen pro Codesymbol. In jedem Knoten befindet sich der augenblickliche Hammingabstand (hd). In jedem Zustand enden nur die Survivor-Übergänge. Die anderen Kanten werden nicht dargestellt. Die am wahrscheinlichsten gesendete Codefolge ist mit den blauen Kanten markiert. Die geschätzte Bitfolge lässt sich an den Kanten ablesen. Ein Übergang nach oben entspricht einer "0" und ein Übergang nach unten einer "1".