Viterbi-Demonstrator

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".
 

QPSK-Demonstrator

Eine SMS wird über einen gestörten Kanal mittels einer QPSK Modulation übertragen. Der Kanal ist ein AWGN Kanal. Das Signal- zu Rauschleistungsverhältnis lässt sich im Bereich SNR=0dB bis 30dB einstellen. 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 QPSK moduliert, d.h. immer zwei Bits werden zu einem Symbol zusammengefasst.
  • Die modulierten Symbole werden übertragen. Es erfolgt eine Störung mit weißem Gaußschen Rauschen.
  • Die Symbole werden im Empfänger demoduliert. Es liegt eine ML-Detektion zugrunde.
  • Schließlich erfolgt eine Umwandlung des decodierten Bitstroms in ASCII Zeichen.

Bedienungsanleitung:


Im linken Textfeld kann eine Textnachricht (ohne Umlaute) mit maximal 160 Zeichen eingegeben werden. Die Nachricht wird mit dem Senden -Button abgeschickt. Rechts daneben befindet sich ein Schieberegler zur Einstellung des Signal- zu Rauschleistungsverhältnisses. Das mittlere Fenster ist das Logfenster. Hier werden alle Schritte der Encodierung und Decodierung angezeigt. Im rechten Fenster kann man die in ASCII Zeichen dargestellte empfangene Nachricht sehen. Der Abbruch -Button löscht den Inhalt aller drei Fenster und setzt ihn auf den Anfangswert zurück. Durch Drücken des Signalraumdiagramm -Buttons erscheint ein neues Fenster mit dem QPSK-Signalraumdiagramm. Nach Auswahl des Menüpunktes Start → Go werden die gestörten übertragenen Symbole nacheinander eingezeichnet. Das Fenster lässt sich mit dem Menüpunkt Close → Exit wieder schließen.