Übung zu
Drahtlose Kommunikation
9. Übung
07.01.2012
Faltungscodes (Wiederholung)
(n,k,K)
k -> Eingangsbit (Informationszeichen ist 1 Bit lang)
K -> Begrenzungsfaktor (Länge des Schieberegisters ist k*K)
n -> Ausgangsbit (für jedes Eingangsbit entstehen n Ausgangsbits) -> somit n Verknüpfungen
– (n, k, K) code
• Input processes k bits at a time
• Output produces n bits for every k input bits
• K = constraint factor
• k and n generally very small
– n-bit output of (n, k, K) code depends on:
• Current block of k input bits
• Previous K-1 blocks of k input bits
Faltungscodes (Wiederholung)
(n,k,K) = (2,1,3)
Beispiel: Eingangscodefolge: 10 11 Coderate R = 12
Faltungscode: 11 10 00 01 01 11
3
input un un-1 un-2 vn1=un-2⊕un-1⊕un vn2=un-2⊕un vn1+vn2
0 0 0 0 0 --
1 1 0 0 1 1 11
0 0 1 0 1 0 10
1 1 0 1 0 0 00
1 1 1 0 0 1 01
0 0 1 1 0 1 01
0 0 0 1 1 1 11
0 0 0 0 0 --
9. Übung – Drahtlose Kommunikation
Faltungscodes (Wiederholung)
(n,k,K) = (2,1,3) Codebaum
Eingangscodefolge: 1 0 1 1 0 0 Faltungscode: 11 10 00 01 01 11
Beim Codebaum repräsentiert jedes Eingangsbit eine neue Verzweigung des Baumes.
Die Ausgabefolge wird an den dazugehörigen Ästen abgelesen. Dabei ist besonders wichtig, dass jede Eingebefolge mit ’00’ abgeschlossen wird.
Aus der Eingangsfolge ’1011’ wird deshalb ’101100’.
Somit entspricht jede Informationsfolge genau einem Pfad durch den Baum, dies führt zu einem
exponentiellen Anwachsen des Baumes mit entsprechend großer Redundanz.
Der Codebaum wird benutzt um die sequentielle Decodierung zu beschreiben.
Faltungscodes (Wiederholung)
(n,k,K) = (2,1,3) Netzdiagramm (trellis)
Eingangscodefolge: 1 0 1 1 0 0 Faltungscode: 11 10 00 01 01 11
Das Netzdiagramm besteht aus Knoten und Zweigen, dabei stellen die Knoten die Zustände (also das Gedächtnis des Codierers) dar.
Die Zweige beschreiben den Übergang von einem Zustand in den darauf folgenden. An den Zweigen stehen wie beim Codebaum die durch die jeweiligen Eingangsbit erzeugten Ausgangsbit, auch hier muss die Eingangsfolge mit ’00’ abschließen.
Das trellis enthält weniger Redundanz als der Codebaum, da hier gleiche Zweige für mehrere Wege benutzt werden können.
5 9. Übung – Drahtlose Kommunikation
(n,k,K) = (2,1,3) Zustandsdiagramm Eingangscodefolge: 1 0 1 1 0 0
Faltungscode: 11 10 00 01 01 11
Der Darstellung des Zustandsdiagramm liegt ein Mealy-Automat zugrunde.
Sie geht im Endeffekt aus dem Netzdiagramm hervor, indem man die zeitliche Komponente des trellis weglässt.
Die Darstellung ist sehr kompakt.
Jegliche Redundanz, die das Netzdiagramm noch aufwies entfällt Jeder Zustand wird genau einmal gekennzeichnet.
Da die Darstellung ein Mealy-Automat ist,
steht in den Zuständen der Inhalt des Gedächtnisses und an den Kanten die Ausgabe bzw. das Eingangsbit.
Für unsere Eingangsfolge 10 11 ergibt sich wieder der Faltungscode 11 10 00 01 01 11.
Allgemein ist zum Zustandsdiagramm zu sagen, dass diese
Faltungscodes (Wiederholung)
Faltungscodes (Wiederholung)
Betrachten Sie einen Encoder für Faltungscodes der mit (vn1=un ⊕un-2) und (vn2= un-1 ⊕ un-2) definiert ist.
1) Zeichnen Sie eine Register Implementation.
2) Zeichnen Sie ein Zustandsdiagramm für diesen Encoder.
3) Zeichnen Sie ein Trellis Diagramm für diesen Encoder
7 9. Übung – Drahtlose Kommunikation
Faltungscodes (Wiederholung)
b) Betrachten Sie einen Encoder für Faltungscodes der mit (vn1=un ⊕un-2) und (vn2= un-1 ⊕ un-2) definiert ist.
1) Zeichnen Sie eine Register Implementation.
Faltungscodes (Wiederholung)
9
un un-1 un-2 vn1=un-2⊕un vn2=un-2⊕un-1 vn1+vn2
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
9. Übung – Drahtlose Kommunikation
Faltungscodes (Wiederholung)
un un-1 un-2 vn1=un-2⊕un vn2=un-2⊕un-1 vn1+vn2
0 0 0 0 0 00
0 0 1 1 1 11
0 1 0 0 1 01
0 1 1 1 0 10
1 0 0 1 0 10
1 0 1 0 1 01
1 1 0 1 1 11
1 1 1 0 0 00
Faltungscodes (Wiederholung)
b) Betrachten Sie einen Encoder für Faltungscodes der mit (vn1=un ⊕un-2) und (vn2= un-1 ⊕ un-2) definiert ist.
2) Zeichnen Sie ein Zustandsdiagramm für diesen Encoder.
11 9. Übung – Drahtlose Kommunikation
Faltungscodes (Wiederholung)
b) Betrachten Sie einen Encoder für Faltungscodes der mit (vn1=un ⊕un-2) und (vn2= un-1 ⊕ un-2) definiert ist.
2) Zeichnen Sie ein Zustandsdiagramm für diesen Encoder.
Trellis-Diagramm
9. Übung – Drahtlose Kommunikation 13
00 01 10 11
Faltungscodes (Wiederholung)
b) Betrachten Sie einen Encoder für Faltungscodes der mit (vn1=un ⊕un-2) und (vn2= un-1 ⊕ un-2) definiert ist.
3) Zeichnen Sie ein Trellis Diagramm für diesen Encoder
Faltungscodes (Wiederholung)
b) Betrachten Sie einen Encoder für Faltungscodes der mit (vn1=un ⊕un-2) und (vn2= un-1 ⊕ un-2) definiert ist.
3) Zeichnen Sie ein Trellis Diagramm für diesen Encoder
15 Gruppe: BlaisePascal
9. Übung – Drahtlose Kommunikation
Faltungscodes (Wiederholung)
• Trellis diagram – expanded encoder diagram
• Viterbi code – error correction algorithm
– Compares received sequence with all possible transmitted sequences
– Algorithm chooses path through trellis whose coded sequence differs from received sequence in the fewest number of places – Once a valid path is selected as the correct path, the decoder can
recover the input data bits from the output code bits
Faltungscodes (Wiederholung)
Decodieren von Faltungscodes mithilfe des Viterbi-Decodierverfahrens
Maximum-Likelihood-Decoder, d.h., er wählt aus allen möglichen Codefolgen die wahrscheinlichste aus.
Die Codefolge ist am wahrscheinlichsten, die sich in möglichst wenigen Stellen von der empfangenen Folge unterscheidet,
-> bedeutet, den geringsten Hammingabstand zur Empfangscodefolge besitzt.
Um diese Unterscheidung fassbar zu machen, wurde eine Metrik λ wie folgt eingeführt.
Hierbei entspricht i der jeweiligen Bitstelle xi, der empfangenen Codefolge und yi eines von allen möglichen Codewörtern.
Für jede mögliche mögliche Codefolge Yi wird die Summe i = i gebildet und am Ende des Decodiervorgangs ist die Codefolge am wahrscheinlichsten, die die kleinste Summe i hat -> diese ist dann die richtige Eingangsfolge.
17 9. Übung – Drahtlose Kommunikation
Faltungscodes (Wiederholung)
Decodieren von Faltungscodes mithilfe des Viterbi-Decodierverfahrens
1) Beginne Netzdiagramm im Nullzustand zum Zeitpunkt i =0
2) Berechne ( x(i) | y(1) ) zwischen empfangenen Codewort x(i) und allen möglichen Codewörtern y(i)
3) Addiere unter 2. berechnete Pfadmetriken zu alten Zustandsmetriken
4) An jedem Zustand Auswahl des jenigen Pfades mit kleinster euklidischer Distanz und Verwerfung der anderen Pfade
5) Wiederholung ab 2. bis alle n empfangenen Wörter abgearbeitet wurden 6) Ende des Netzdiagramms:
- Netzdiagramm endet im Nullzustand
- Bestimmung des Pfades mit der besten Metrik (n)
7) Zurückverfolgen des in 6. bestimmten Pfades und Ausgabe der zugehörigen Informationsbit.
Faltungscodes (Wiederholung)
Decodieren von Faltungscodes mithilfe des Viterbi-Decodierverfahrens
Beispiel für Fehlerkorrektur des Viterbi-Decoders:
Richtiger Faltungscode: 11 10 10 01 00 11 Falscher Faltungscode: 11 10 00 01 01 11
19 9. Übung – Drahtlose Kommunikation
http://www.tu-chemnitz.de/informatik/ThIS/downloads/courses/ss03/kv/Faltungscodes.pdf
Faltungscodes (Wiederholung)
1 0 1 1 0 0 Falscher Faltungscode: 11 10 00 01 01 11
00 01 10 11
Faltungscodes (Wiederholung)
Falscher Faltungscode: 11 10 00 01 01 11
21 9. Übung – Drahtlose Kommunikation
Faltungscodes (Wiederholung)
Falscher Faltungscode: 11 10 00 01 01 11
Faltungscodes (Wiederholung)
Falscher Faltungscode: 11 10 00 01 01 11
23 9. Übung – Drahtlose Kommunikation
Faltungscodes (Wiederholung)
Falscher Faltungscode: 11 10 00 01 01 11