Kanalcodierung Ziele Mit diesen rechnerischen und experimentellen Übungen wird die prinzipielle Vorgehensweise zur Kanalcodierung mit linearen Block-Codes und mit Faltungscodes erarbeitet. Die konkrete Anwendung zur Übertragung von Sprache und Bildern über einen gestörten Kanal wird aufgezeigt. Übungsaufgabe 1 Es wird ein symmetrischer Binärkanal mit einer Bitfehlerwahrscheinlichkeit p = 0.1 betrachtet. a) Bestimmen Sie die Wahrscheinlichkeit für das Auftreten eines zweifachen Bitfehlers in Codewörtern mit 7 Bits. b) Bestimmen Sie die Wahrscheinlichkeit für das Auftreten eines dreifachen Bitfehlers in Codewörtern mit 8 Bits. Übungsaufgabe 2 Gegeben ist die nachstehende Generatormatrix eines systematischen, linearen (7,4)-Blockcodes, bei dem die informationstragenden Bits als vorderste (linksstehende) Bits des Codevektors auftreten. 1 0 0 0 0 1 1 0 1 0 0 1 0 1 G 0 0 1 0 1 1 1 0 0 0 1 1 1 0 Bestimmen Sie mit Hilfe der Multiplikation Y X i i G alle zu diesem Blockcode gehörigen Codevektoren Y i. Informationsvektor X i Codevektor Y i x 1 x 2 x 3 x 4 y 1 y 2 y 3 y 4 y 5 y 6 y 7 H. Günter Hirsch Version: pa3 Seite 1 (8)
Experimentelle Aufgabe 2 Zur Kontrolle der in der vorherigen Aufgabe bestimmten Codevektoren steht unter dem Auswahlmenü zur Kanalcodierung eine Oberfläche mit der Bezeichnung Generatormatrix zur Verfügung. Darin können zunächst die Zeilen- und die Spaltenanzahl einer Matrix vorgegeben werden. Dimensionieren Sie die Werte zur Eingabe der zuvor bestimmten Generatormatrix und geben Sie anschließend die binären Werte zeilenweise ein. Dabei können Sie die 0 und 1 Werte ohne Trennzeichen unmittelbar hintereinander eingeben. Sie können nun nacheinander die binären Werte der informationstragenden Vektoren und durch Anklicken des entsprechenden Feldes die Multiplikation ausführen. X i eingeben Übungsaufgabe 3 a) Wie groß ist die minimale Hammingdistanz dieses Codes : b) Wie viele Bitfehler lassen sich damit maximal in einem Codewort erkennen: c) Wie viele Bitfehler lassen sich damit maximal in einem Codewort korrigieren: Können bei Verwendung des Codes zur Fehlerkorrektur auch noch Codewörter, bei denen mehr als 1 Bitfehler auftreten, erkannt werden: d) Wie groß ist die Wahrscheinlichkeit, dass ein 7 Bit langes Codewort bei Übertragung über einen symmetrischen Binärkanal mit einer Bitfehlerrate von 1 % einen einfachen Bitfehler beinhaltet: e) Wie groß ist die Wahrscheinlichkeit, dass ein 7 Bit langes Codewort bei Übertragung über einen symmetrischen Binärkanal mit einer Bitfehlerrate von 1 % einen zweifachen Bitfehler beinhaltet: H. Günter Hirsch Version: pa3 Seite 2 (8)
Experimentelle Aufgabe 3 Geben Sie die zu der zuvor benutzten Generatormatrix gehörige Prüfmatrix an: H t = Ermitteln Sie mit Hilfe der Prüfmatrix in der graphischen Oberfläche Generatormatrix die Syndromvektoren S i für die in der folgenden Tabelle angegebenen Fehlervektoren E i, die alle möglichen einfachen Bitfehler innerhalb eines Codeworts beschreiben. Fehlervektor E i Syndrom S i e 1 e 2 e 3 e 4 e 5 e 6 e 7 s 1 s 2 s 3 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 Wie sehen die Bits eines Syndromvektors aus, wenn Sie ein zulässiges Codewort mit der Prüfmatrix multiplizieren: s 1 = s 2 = s 3 = Übungsaufgabe 4 a) Ein empfangenes Codewort Z i, das einen einfachen Bitfehler behaltet, kann man als eine Modulo-2 Addition eines zulässigen Codevektors Y i und eines in der vorstehenden Tabelle angegebenen Fehlervektors E darstellen. H. Günter Hirsch Version: pa3 Seite 3 (8)
Erzeugen Sie sich durch Modulo-2 Addition einen fehlerhaft empfangenen Codevektor, in dem Sie zu einem beliebigen, zulässigen Codevektor den Fehlervektor E addieren, der einen Fehler in der 3. Bitstelle beinhaltet: Y i E Z i Y i 1. 2. 3. 4. 5. 6. 7. b) Welcher Syndromvektor resultiert aus einer Multiplikation des zuvor bestimmten Codevektors Z i Z i mit der Prüfmatrix t H : s 1 = s 2 = s 3 = c) Von dem Syndromvektor kann man mit Hilfe der in der vorherigen Aufgabe erstellten Syndromtabelle auf die fehlerhafte Bitstelle schließen. Führen Sie die Korrektur in der nachstehenden Tabelle aus, in dem Sie den empfangenen Codevektor Syndromtabelle ermittelten Fehlervektor E addieren: Z i und den aus der 1. 2. 3. 4. 5. 6. 7. Z i E Y korr d) Erzeugen Sie sich durch Modulo-2 Addition einen fehlerhaft empfangenen Codevektor, in dem Sie zu einem beliebigen, zulässigen Codevektor den Fehlervektor E addieren, der einen Fehler in der 3. Bitstelle und einen weiteren Bitfehler in der 6. Bitstelle beinhaltet: Y i E Z i Y i 1. 2. 3. 4. 5. 6. 7. e) Welcher Syndromvektor resultiert aus einer Multiplikation des zuvor bestimmten Codevektors Z i Z i mit der Prüfmatrix t H : s 1 = s 2 = s 3 = f) Von dem Syndromvektor kann man mit Hilfe der in der vorherigen Aufgabe erstellten Syndromtabelle auf die fehlerhafte Bitstelle schließen. Führen Sie die Korrektur in der H. Günter Hirsch Version: pa3 Seite 4 (8)
nachstehenden Tabelle aus, in dem Sie den empfangenen Codevektor Syndromtabelle ermittelten Fehlervektor E addieren: Z i und den aus der 1. 2. 3. 4. 5. 6. 7. Z i E Y korr Vergleichen Sie den Vektor Y korr mit dem Vektor Y i, den Sie unter d) gewählt haben. In wie vielen Bitstellen unterscheiden sich die beiden Vektoren:. Wie lässt sich diese Anzahl fehlerhafter Bitstellen erklären:.... Experimentelle Aufgabe 4 Mit Hilfe der graphischen Oberfläche Kanalcodierung kann der Einfluss einer Übertragung eines Sprach- oder Bildsignals über einen gestörten Kanal mit und ohne Einsatz einer Kanalcodierung untersucht werden. Dabei kann ein symmetrischer Binärkanal durch Angabe einer Nettobitfehlerwahrscheinlichkeit definiert werden. Ein Sprach- oder Bildsignal kann über das Signal -Menü am oberen Rand ausgewählt und geladen werden. Der Signalverlauf des Sprachsignals bzw. das Bild werden vor und nach der Übertragung dargestellt. Im Auswahlmenü zur Codierung kann eine Übertragung ohne Kanalcodierung bzw. bei Einsatz verschiedener linear Block-Codes festgelegt werden. Durch Anklicken des Codierungsfelds kann eine Codierung vorgenommen werden. Da zur Simulation der Übertragungsfehler ein Zufallsgenerator verwendet wird, ist das Ergebnis einer wiederholten Übertragung über einen gestörten Kanal in der Regel nicht gleich. Laden Sie das Sprachsignal artos_ofenrohr_8k.wav, das mit einer Frequenz von 8 khz abgetastet wurde und eine zeitliche Länge von etwa 3,35s besitzt. Aus wie vielen Bits besteht der binäre Datenstrom, wenn jeder Abtastwert mit 16 Bit quantisiert wurde: Wie viele Bits des Datenstroms werden bei den nachstehend angeführten Nettobitfehlerraten gestört werden: Nettobitfehlerrate / % 0.001 0.01 0.1 1 Anzahl gestörter Bits H. Günter Hirsch Version: pa3 Seite 5 (8)
Hören Sie sich das Signal nach einer Übertragung ohne Kanalcodierung für die zuvor angegebenen Bitfehlerraten an. Bestimmen Sie bei Einsatz eines (7,4)-Hammingcodes, der zur Fehlerkorrektur verwendet wird, die Restbitfehlerraten für die in der nachstehenden Tabelle angegebenen Nettobitfehlerraten: Nettobitfehlerrate / % 0.01 0.1 1 5 6 Restbitfehlerrate / % Warum wird die Restbitfehlerrate ab einem gewissen Wert größer als die Nettobitfehlerrate: Laden Sie eines der Bilder smiley_lucky.bmp oder smiley_devil.bmp. Dabei wird jeder Bildpunkt durch die 3 Intensitätswerte für die Grundfarben rot, grün und blau beschrieben. Jeder Intensitätswert wird mit 8 Bit quantisiert. Aus wie vielen Bits besteht der binäre Datenstrom, der zur Übertragung eines Bilds benötigt wird: Bits Im Folgenden sollen vergleichend ein (7,4)-Hammingcode, ein (15,11)-Hammingcode und ein (31,26)-Hammingcode zur Übertragung des Bilds verwendet werden. Aus wie vielen Bits besteht der zu übertragende, binäre Datenstrom bei Verwendung des (7,4)-Hammingcodes: (15,11)-Hammingcodes: (31,26)-Hammingcodes: Bestimmen Sie die Restbitfehlerraten für die in der nachstehenden Tabelle angegebenen Nettobitfehlerraten: Nettobitfehlerrate / % 0.01 0.1 1 5 Restbitfehlerrate / % (15,11)-Code (7,4)-Code (31,26)-Code Welcher Code besitzt die besten Korrektureigenschaften: H. Günter Hirsch Version: pa3 Seite 6 (8)
Übungsaufgabe 5 Es wird ein Faltungscode betrachtet, dessen Coderate 3 (n=1, m=3) beträgt und dessen Generatorvektoren wie folgt aussehen: G ( X ) G G 1 2 3 ( X ) ( X ) 1 1 X X X X X 2 2 a) Skizzieren Sie das Blockschaltbild dieses Faltungscodierers. b) Welche Ausgangsbits werden erzeugt und welche inneren Zustände stellen sich bei dem Codierer ein für die Eingangsbitfolge (1 0 0), wenn sich der Faltungscodierer zuvor im zurückgesetzten Zustand befand. c) Zeichnen Sie das den Faltungscode charakterisierende Zustandsdiagramm. d) Zeichnen Sie das den Faltungscode charakterisierende Trellis-Diagramm. e) Nach einer Übertragung über einen möglicherweise gestörten Kanal wird die Bitfolge Z = (0 1 1 1 0 1 1 1 0 0 1 1) empfangen), wobei sich der Faltungscodierer zuvor im zurückgesetzten Zustand befand.. Bestimmen Sie den Maximum-Likelihood Pfad im Trellis-Diagramm. Geben Sie die vier informationstragenden Bits an, die aus einer Betrachtung des wahrscheinlichsten Pfades resultieren. Übungsaufgabe 6 Bestimmen Sie die Generatormatrix eines systematischen, linearen (7,4)-Hammingcodes, bei dem die informationstragenden Bits als vorderste (linksstehende) Bits des Codevektors auftreten. Die drei Prüfbits eines Codeworts werden so bestimmt, dass das das 5. Bit des Codeworts als Paritätsbit fungiert und dabei das 1. und 2. und 3. informationstragende Bit auf eine gerade Anzahl von Einsen ergänzt ( y x x x ), 5 1 2 3 das 6. Bit des Codeworts als Paritätsbit fungiert und dabei das 1. und 3. und 4. informationstragende Bit auf eine gerade Anzahl von Einsen ergänzt ( y6 x1 x3 x4 ), H. Günter Hirsch Version: pa3 Seite 7 (8)
das 7. Bit des Codeworts als Paritätsbit fungiert und dabei das 2. und 3. und 4. informationstragende Bit auf eine gerade Anzahl von Einsen ergänzt( y7 x2 x3 x ). 4 G = H. Günter Hirsch Version: pa3 Seite 8 (8)