Gemeinsame iterative Kanalschätzung und

Werbung
Gemeinsame iterative Kanalschätzung
und Turbodecodierung für drahtlose
Übertragungssysteme
COMLAB
University of Kassel
Diplomarbeit II
Verfasser: Stephan Matthes
Marc Selig
Februar 2007
Universität Kassel, Fachbereich 16
FG Nachrichtentechnik
Wilhelmshöher Allee 73, 34121 Kassel
1. Gutachter: Prof. Dr. sc.techn. Dirk Dahlhaus
2. Gutachter: Prof. Dr.-Ing. Henning Früchting
Betreuer: Prof. Dr. sc.techn. Dirk Dahlhaus
Erklärung
Hiermit versichern wir, dass wir die vorliegende Diplomarbeit selbstständig und ohne unerlaubte Hilfsmittel angefertigt und andere als die in der Diplomarbeit angegebenen Hilfsmittel
nicht benutzt haben. Alle Stellen, die wörtlich oder sinngemäß aus veröffentlichten oder unveröffentlichten Schriften entnommen sind, haben wir als solche kenntlich gemacht.
Kassel, den.....................................................................................
I
Danksagung
Wir möchten uns ganz herzlich bedanken bei allen, die uns in dieser Diplomarbeit unterstützt
haben. Dank geht allen voran an unsere Eltern für die unerlässliche Unterstützung, ohne die
dieses Studium nicht möglich gewesen wäre.
Weiterhin möchten wir uns bedanken bei Herrn Prof. Dr. sc.techn. Dirk Dahlhaus und Herrn
Prof. Dr.-Ing. Henning Früchting für die Übernahme der Begutachtung der Diplomarbeit.
Bei Herrn Prof. Dr. sc.techn. Dirk Dahlhaus möchten wir uns nochmals bedanken für die sehr
gute Betreuung während unserer Diplomarbeit mit vielen wertvollen Diskussionen.
Bedanken möchten wir uns auch bei Herrn Dipl.-Ing. Herbert Lindenborn und dem gesamten Team des ComLab für die gute Zusammenarbeit und das angenehme Klima. Danke auch
an Herrn Dipl.-Ing. Thomas Edlich und Herrn Dr. sc.techn. Thomas Hunziker für wertvolle
Diskussionen.
II
Aufgabenstellung
Turbodecodierung basiert auf iterativen Algorithmen zur Maximierung einer bestimmten Metrik. Im Fall einer drahtlosen Übertragung über frequenz-/zeit-selektive Kanäle hängt die Metrik von den Kanalparametern ab, welche komplexe Amplituden, Verzögerungen oder Einfallswinkel bei Mehrantennenübertragung mit kohärentem Combining umfassen. Bekanntlich
können iterative Kanalschätzverfahren zur Maximierung der Likelihood-Funktion die Übertragungsgüte drahtloser Luftschnittstellen massiv erhöhen. In dieser Arbeit soll die Möglichkeit der gemeinsamen iterativen Kanalschätzung und Turbodecodierung untersucht werden.
Zunächst dienen eine einfache Luftschnittstelle und ein entsprechend einfaches Kanalmodell
zur Herleitung der prinzipiellen Empfängerstruktur. Anschließend soll die Empfängerstruktur
mit einem geeigneten Kanalschätzalgorithmus kombiniert werden, sodass die Kanalparameter eines Kanals mit Rayleigh-Schwund ohne Pilotsymbole bestimmt werden können. Die
Turbocodes, Übertragungskanäle und Empfänger sind in M ATLAB® zu implementieren und
bezüglich der erreichbaren Fehlerrate und Kanalschätzgüte zu untersuchen.
III
Inhaltsverzeichnis
Erklärung
I
Aufgabenstellung
III
1
Einleitung
1
2
Mathematische Grundlagen der Informationsübertragung
3
2.1
2.2
2.3
3
Grundlagen der Wahrscheinlichkeitsrechnung . . . . . . . . . . .
2.1.1 Wahrscheinlichkeiten von zwei Ereignissen . . . . . . . .
2.1.2 Axiome von Kolmogorov . . . . . . . . . . . . . . . . .
2.1.3 Bayes’sches Theorem . . . . . . . . . . . . . . . . . . . .
2.1.4 Zentraler Grenzwertsatz und das Gesetz der großen Zahlen
Wichtige Begriffe der Statistik . . . . . . . . . . . . . . . . . . .
2.2.1 Zufallsvariable X . . . . . . . . . . . . . . . . . . . . . .
2.2.2 Zwei Zufallsvariablen . . . . . . . . . . . . . . . . . . .
2.2.3 Charakteristische Funktion . . . . . . . . . . . . . . . . .
2.2.4 Zufallsprozesse . . . . . . . . . . . . . . . . . . . . . . .
2.2.5 Log-Likelihood-Ratio (LLR) . . . . . . . . . . . . . . . .
Verteilungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.1 Gaußverteilung . . . . . . . . . . . . . . . . . . . . . . .
2.3.2 Rayleighverteilung . . . . . . . . . . . . . . . . . . . . .
2.3.3 Chi-Quadrat-Verteilung . . . . . . . . . . . . . . . . . . .
Der Kanal
3.1 AWGN-Kanal . . . . . . . . . . . . . . . . . . . . . . . .
3.1.1 Störabstand . . . . . . . . . . . . . . . . . . . . .
3.1.2 BPSK-Übertragung in AWGN . . . . . . . . . . .
3.1.3 Energie des codierten Bits . . . . . . . . . . . . .
3.1.4 Normierung der Ergebnisse bei Kanalcodierung . .
3.2 Kanal mit Rayleigh-Schwund . . . . . . . . . . . . . . . .
3.2.1 Was bewirkt Rayleigh-Schwund? . . . . . . . . .
3.2.2 Implementierung . . . . . . . . . . . . . . . . . .
3.2.3 Num. Berechnung der Bitfehlerwahrscheinlichkeit
IV
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
4
4
5
5
7
7
8
9
9
10
12
13
13
14
15
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
16
17
18
20
20
21
22
23
24
4
Faltungscodierung
4.1
4.2
5
6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
26
33
34
37
37
38
38
46
Turbocodierung
54
5.1
5.2
54
60
Turboencoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Turbodecoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Kanalschätzung
6.1
6.2
6.3
7
Faltungsencoder . . . . . . .
4.1.1 Distanzeigenschaften
4.1.2 Gewichtsverteilung .
4.1.3 Punktierung . . . . .
4.1.4 Terminierung . . . .
Faltungsdecodierung . . . .
4.2.1 Viterbi-Decodierung
4.2.2 MAP-Decodierung .
26
Schätzung durch Betragsmittelwertbildung . . . . . . . .
Schätzung mit Hilfe der Maximum-Likelihood-Methode
6.2.1 Newton-Raphson-Verfahren . . . . . . . . . . .
Iterativer Ansatz . . . . . . . . . . . . . . . . . . . . . .
64
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
65
70
72
76
Ergebnisse
78
7.1
7.2
79
83
AWGN-Kanal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Kanal mit Rayleigh-Schwund . . . . . . . . . . . . . . . . . . . . . . . . . .
Abkürzungsverzeichnis
95
Abbildungsverzeichnis
97
Literaturverzeichnis
99
1 Einleitung
Durch die Übertragung von Daten über Funkkanäle kann das Sendesignal derart beeinflusst
werden, dass Fehler in der Nachricht entstehen. Die Nachricht kann ganz oder nur teilweise
zerstört werden. Bei einem Gespräch, das mit Mobiltelefonen getätigt wird, können die Fehler
dazu führen, dass der Empfänger die Nachricht nicht mehr verstehen kann. Um den Einfluss
von Störungen vermindern zu können, werden in der digitalen Übertragungstechnik der Nachricht Redundanzen hinzugefügt, die auf der Empfängerseite dazu genutzt werden können, die
Fehler in der Nachricht zu entdecken und zu korrigieren. Das Hinzufügen von Redundanz wird
Kanalcodierung genannt und wird heutzutage praktisch in jeder digitalen Datenübertragung
verwendet. Es gibt viele verschiedene Kanalcodierungen, die in zwei Gruppen, die Blockcodierung und die Faltungscodierung, unterteilt werden können. Bei der Wahl der Kanalcodierung für ein Übertragungssystem muss immer der Mittelweg zwischen Leistungsfähigkeit
und Komplexität gefunden werden. Es nützt nichts, wenn ein System sehr leistungsfähig ist,
aber die Realisierung zum Beispiel des Empfängers derart komplex und damit auch teuer ist,
dass es niemand nutzen will. Ein solcher Kompromiss zwischen Leistungsfähigkeit und Komplexität wird durch die Verkettung von verschiedenen oder auch gleichen Kanalcodierungen
erreicht. In 1993 stellten Berrou, Glavieux und Thitimajshima [BGT93] erstmals Turbocodes vor, die aus der parallelen Verkettung von Faltungscodes entstanden sind. Durch diese
parallele Verkettung verringert sich die Komplexität des Decoders, da für jeden Teilcode ein
einfacher Decoder verwendet werden kann. So kann eine hohe Leistungsfähigkeit bei relativ
geringer Komplexität erzielt werden. Ein weiterer Vorteil der Turbocodes ist die Verwendung
von Zuverlässigkeitsinformationen für jedes Bit zwischen den einzelnen Decodern in einem
iterativen Decodierprozess. So können Fehler, die zum Beispiel im ersten Decoder nicht korrigiert werden konnten, im zweiten Decoder korrigiert werden. Für den Decodiervorgang ist
es notwendig, Informationen über die Eigenschaften des zu Grunde liegenden Kanals, wie
zum Beispiel die Rauschleistung und den Einfluss von Schwundeffekten, zu haben. Da diese
Informationen nicht vorliegen, ist es notwendig, sie aus den empfangenen Daten abzuschätzen. Dazu gibt es verschiedene Möglichkeiten, wie zum Beispiel die Schätzung anhand von
vorher eingefügten und bekannten Pilotsymbolen durchzuführen oder sie „blind“ anhand der
Eigenschaften der empfangenen Bits zu schätzen. Je besser die Abschätzung der genannten
Kanaleigenschaften ist, desto besser wird die Decodierung der empfangenen Nachricht.
Ziel dieser Arbeit ist es, zuerst ein einfaches Übertragungssystem auf Grundlage von Turboco-
1
1 Einleitung
des in der Simulationsumgebung M ATLAB® zu implementieren. Dazu werden ein Sender, verschiedene Kanäle sowie der Empfänger programmiert und auf ihre Leistungsfähigkeit getestet.
Anschließend wird ein Schätzverfahren untersucht, das die Eigenschaften eines Schwundkanals in geeigneter Form abschätzt und so die Decodierung unterstützt. Auch die gefundenen
Schätzverfahren werden in M ATLAB® implementiert und auf ihre Leistungsfähigkeit untersucht.
In Kapitel 2 wird auf die mathematischen Grundlagen, die für die Informationsübertragung
und somit auch zum Verständnis der Arbeit notwendig sind, eingegangen. Es werden vor allem wichtige Aspekte der Wahrscheinlichkeitsrechnung und Stochastik beleuchtet. Die äußeren Bedingungen, die bei einer Übertragung herrschen und in Form von Kanalmodellen
wiedergegeben werden, sind Gegenstand von Kapitel 3. Hier werden der AWGN-Kanal und
der in dieser Arbeit verwendete Schwundkanal beschrieben. In Kapitel 4 wird die Faltungscodierung vorgestellt, da sie ein wesentlicher Bestandteil der Turbocodierung ist. Es werden ein einfacher Encoder erklärt und verschiedene Decodieralgorithmen vorgestellt. Auf die
Turbocodierung selbst wird dann in Kapitel 5 eingegangen. Auch hier werden ein einfacher
Encoder und die iterative Decodierung der Turbocodes vorgestellt. In Kapitel 6 wird die benötigte Kanalschätzung beschrieben und es werden die Schätzalgorithmen vorgestellt, die in
dieser Arbeit implementiert wurden. Mit dem programmierten Übertragungssystem werden
dann Simulationen durchgeführt, um das System auf seine Leistungsfähigkeit zu überprüfen.
Die Ergebnisse dieser Simulationen werden in Kapitel 7 diskutiert.
Von Herrn Matthes wurden folgende Teile der vorliegenden Arbeit bearbeitet:
•
•
•
•
•
Kapitel 2: Mathematische Grundlagen der Informationsübertragung
Kapitel 3: Der Kanal
Abschnitt 4.2.2: MAP-Decodierung
Abschnitt 5.2: Turbodecoder
Abschnitt 7.1: AWGN-Kanal.
Von Herrn Selig wurden folgende Teile der vorliegenden Arbeit bearbeitet:
•
•
•
•
Kapitel 4: Faltungscodierung (ohne Abschnitt 4.2.2)
Abschnitt 5.1: Turboencoder
Kapitel 6: Kanalschätzung
Abschnitt 7.2: Kanal mit Rayleigh-Schwund.
Die übrigen Teile wurden zusammen erarbeitet.
2
2 Mathematische Grundlagen der
Informationsübertragung
2.1 Grundlagen der Wahrscheinlichkeitsrechnung
Wir betrachten zunächst den Wurf eines Würfels. Alle möglichen Ergebnisse eines Wurfes
bezeichnen wir mit dem Ereignis
S = {1, 2, 3, 4, 5, 6},
(2.1)
das das sichere Ereignis darstellt. Die Wahrscheinlichkeit, dass S bei einem Wurf eintritt, ist
P(S) = 1,
(2.2)
denn es ist sicher, dass der Würfel auf einer Seite liegen bleibt und ein Ergebnis zeigt.
Wir legen jetzt das Ereignis A fest als ’Wurf ergibt eine Zwei’ oder ’ Wurf ergibt eine Vier’,
also ist
A = {2, 4}.
(2.3)
Da alle sechs möglichen Ergebnisse gleichwahrscheinlich sind, ist die Wahrscheinlichkeit für
das Auftreten einer bestimmten Zahl gleich 61 . Diese einzelnen Ereignisse werden Elementarereignisse genannt. Für die Wahrscheinlichkeit P(A) errechnet sich damit der Wert
2 1
= .
6 3
(2.4)
Ā = {1, 3, 5, 6}.
(2.5)
P(A) =
Die Komplementärmenge zu A ist
Die beiden Ereignisse A und Ā schließen sich gegenseitig aus, die Schnittmenge von A und Ā
ist die leere Menge:
A ∩ Ā = 0.
/
(2.6)
3
2 Mathematische Grundlagen der Informationsübertragung
Ein weiteres Ereignis sei
B = {1, 3, 6}.
(2.7)
A ∩ B = 0.
/
(2.8)
Man sieht leicht, dass sich die beiden Ereignisse A und B gegenseitig ausschließen. Die
Schnittmenge von A und B ist ebenfalls die leere Menge:
2.1.1 Wahrscheinlichkeiten von zwei Ereignissen
Wir bleiben beim Würfel und nehmen nun ein weiteres Ereignis
C = {1, 2, 3}
(2.9)
an. Die Wahrscheinlichkeit, dass bei einem Wurf C eintritt, ist P(C) = 12 , da auch hier alle
möglichen Elementarereignisse jeweils die Wahrscheinlichkeit 16 besitzen. Mit B aus (2.7) ist
ebenfalls P(B) = 12 . Die Wahrscheinlichkeit, dass beide Ereignisse gleichzeitig auftreten, ist
aber
1
(2.10)
P(B ∩C) = ,
3
wobei das gleichzeitige Auftreten von B und C durch die Schnittmenge B ∩C definiert wird.
Nun kann man sich fragen, wie hoch die Wahrscheinlichkeit von C noch ist, wenn man weiß,
dass B eingetreten ist. Man stelle sich also vor, zwei Personen sitzen an einem Tisch. Person
(1) würfelt und Person (2) hat die Augen geschlossen. Person (1) teilt Person (2) mit: „Ereignis
B ist eingetreten.“ Person (2) sagt daraufhin: „Dann ist die Wahrscheinlichkeit, dass C auch
eingetreten ist, 32 .“ Dieser Wert stellt die auf das Ereignis B bedingte Wahrscheinlichkeit von
C dar. Diese Wahrscheinlichkeit wird als P(C|B) bezeichnet und ergibt sich zu
P(C|B) =
Also ist
P(C|B) =
P(B,C)
.
P(B)
1
3
1
2
2
= .
3
(2.11)
(2.12)
2.1.2 Axiome von Kolmogorov
In der Maßtheorie hat Kolmogorov Axiome für die Berechnung von Wahrscheinlichkeiten
definiert [PP02]. Im einführenden Beispiel wurden diese Axiome vorausgesetzt.
4
2 Mathematische Grundlagen der Informationsübertragung
• 1. Axiom: Die Wahrscheinlichkeit, dass ein Ereignis (hier bezeichnet mit A) eintritt, ist
nicht kleiner als null:
P(A) ≥ 0.
(2.13)
• 2. Axiom: Die Wahrscheinlichkeit für das sichere Ereignis S ist eins:
P(S) = 1.
(2.14)
• 3. Axiom: Schließen sich zwei Ereignisse A und B gegenseitig aus, dann ist die Wahrscheinlichkeit für die Vereinigungsmenge von A und B gleich der Summe der Einzelwahrscheinlichkeiten:
wenn A ∩ B = 0/ dann ist P(A ∪ B) = P(A) + P(B).
(2.15)
2.1.3 Bayes’sches Theorem
Seien Ai Elementarereignisse und B eine Untermenge der Vereinigungsmenge aller Ai . Dann
ist
n
P(B) = ∑ P(Ai ) · P(B|Ai ).
(2.16)
i=1
P(B|Ai ) bezeichnet dabei die Wahrscheinlichkeit, dass das Ereignis B eintritt, gegeben, dass Ai
bereits eingetreten ist. Der unvollständige Ereignisbaum in Abbildung 2.1 auf Seite 6 verdeutlicht diesen Sachverhalt. Ist die Vereinigungsmenge aller Ai das sichere Ereignis S, so spricht
man bei (2.16) von der totalen Wahrscheinlichkeit für das Eintreten des Ereignisses B. Mit der
Definitionsgleichung für die bedingte Wahrscheinlichkeit (2.11) ergibt sich für P(B) > 0
P(A j |B) =
P(A j , B)
P(A j ) · P(B|A j )
= n
.
P(B)
∑ P(Ai ) · P(B|Ai )
(2.17)
i=1
(2.17) ist das Bayes’sche Theorem.
2.1.4 Zentraler Grenzwertsatz und das Gesetz der großen Zahlen
In [Roh06] wird beschrieben, dass der zentrale Grenzwertsatz eine Sammlung von Grenzwerten ist, die sich mit unbekannten Wahrscheinlichkeitsverteilungen beschäftigt. Wichtig ist
5
2 Mathematische Grundlagen der Informationsübertragung
P(A1 )
P(A2 )
P(B)
..
.
P(An )
Abbildung 2.1: Das Ereignis B ist über verschiedene „Zwischenstationen“ Ai erreichbar
[Pap05].
in diesem Zusammenhang der Grenzwertsatz von Lindeberg-Lévy: Für beliebige unabhängige
identisch verteilte Zufallsvariablen Xi mit Mittelwert mX und Varianz σX2 gilt, dass die Folge
(∑ni=1 Xi ) − nmX
q
Zn =
nσX2
(2.18)
asymptotisch eine Standardnormalverteilung
1
lim P(Zn < z) = Φ(z) = √
n→∞
2π
ξ2
dξ
exp −
2
−∞
Z z
(2.19)
besitzt. Dadurch ist die Bedeutung der Gaußverteilung für die Wahrscheinlichkeitsrechnung
besonders hervorgehoben.
Zusammen mit dem zentralen Grenzwertsatz wird häufig das Gesetz der großen Zahlen genannt, das sich aufteilen lässt in ein schwaches Gesetz der großen Zahlen und ein starkes
Gesetz der großen Zahlen. Wir betrachten hier nur das schwache Gesetz der großen Zahlen.
Hat man eine Menge von n Realisierungen einer Zufallsvariablen Xi , so konvergiert der arithmetische Mittelwert der Realisierungen mit steigender Anzahl n gegen den Erwartungswert.
Für die neue Zufallsvariable
1 n
Zn = ∑ Xi
(2.20)
n i=1
gilt:
lim P(|Zn − E{X}| > ε ) = 0
n→∞
6
(2.21)
2 Mathematische Grundlagen der Informationsübertragung
Das bedeutet, dass das Ereignis „Die Abweichung zwischen arithmetischem Mittelwert und
Erwartungswert ist kleiner als ein ε “ mit der Wahrscheinlichkeit null auftritt.
2.2 Wichtige Begriffe der Statistik
2.2.1 Zufallsvariable X
Die Zufallsvariable X ist eine Funktion, die jedem Elementarereignis ω aus der Ergebnismenge Ω eines Zufallsexperiments genau eine reelle Zahl X(ω ) = x zuordnet. Dabei ist x eine Realisierung der Zufallsvariablen X und hängt somit von den Eigenschaften von X ab. Betrachtet
man ausreichend viele Realisierungen x von unabhängigen und gleichverteilten Zufallsvariablen X, so kann man daraus nach dem Gesetz der großen Zahlen (vgl. Abschnitt 2.1.4) die
Eigenschaften von X näherungsweise bestimmen.
Die Zufallsvariable X wird durch die Verteilungsfunktion F(x) (engl.: cumulative distribution
function - CDF) beschrieben, für die
F(x) =
Zx
p(u)du
(2.22)
−∞
gilt, wobei p(u) wiederum die Wahrscheinlichkeitsverteilung bzw. Dichte (engl.: PDF - probability density function) angibt.
Die Verteilungen können durch eine Taylorentwicklung der charakteristischen Funktion (vgl.
Abschnitt 2.2.3) um den Ursprung durch ihre k-ten Momente beschrieben werden, wobei im
Allgemeinen alle Momente mit k ∈ N0 benötigt werden. Die Momente werden hier kurz erläutert.
Der Erwartungswert E {·}
E {X} ≡ mX =
Z∞
xp(x)dx
(2.23)
−∞
bildet das erste Moment. Im Englischen bezeichnet man den Erwartungswert E {X} auch als
„mean“ mX , was nicht mit dem Mittelwert von Realisierungen zu verwechseln ist. Das Moment n-ter Ordnung wird definiert als
n
E {X } =
Z∞
−∞
7
xn p(x)dx.
(2.24)
2 Mathematische Grundlagen der Informationsübertragung
Das zweite zentrale Moment bzw. die Varianz ist definiert als
σX2
=
Z∞
−∞
(x − mX )2 p(x)dx.
Mit Hilfe der ersten und zweiten Momente kann man die Varianz beschreiben als
σX2 = E (X − mX )2
= E X 2 − 2mX E {X} + m2X
= E X 2 − m2X .
(2.25)
(2.26)
2.2.2 Zwei Zufallsvariablen
Für zwei Zufallsvariablen (engl.: random variables) X1 und X2 mit der Verbundwahrscheinlichkeitsdichtefunktion (engl.: joint PDF) p(x1 , x2 ) wird das Verbundmoment (engl.: joint
moment) definiert als
o Z∞ Z∞
n
E X1k X2n ≡
x1k x2n p(x1 , x2 )dx1 dx2
(2.27)
−∞ −∞
und das zentrale Verbundmoment (engl.: joint central moment) wird definiert als
n
o Z∞ Z∞
k
n
E (X1 − m1 ) (X2 − m2 ) =
(x1 − m1 )k (x2 − m2 )n p(x1 , x2 )dx1 dx2 .
(2.28)
−∞ −∞
Besonders wichtig sind in dem Zusammenhang das Verbundmoment und zentrale Verbundmoment, bei dem k = n = 1 gilt. Sie werden Korrelation (engl.: correlation) und Kovarianz
(engl.: covariance) genannt. Für die Kovarianz gilt:
µi j ≡ E (Xi − mi )(X j − m j )
=
Z∞ Z∞
−∞ −∞
(xi − mi )(x j − m j )p(xi , x j )dxi dx j
= E Xi X j − mi m j
mit mi = E {Xi } bzw. m j = E X j .
Unkorreliert
sind zwei Zufallsvariablen, wenn
E Xi X j = E {Xi } E X j = mi m j .
In diesem Fall ist die Kovarianz µi j = 0.
8
(2.29)
(2.30)
2 Mathematische Grundlagen der Informationsübertragung
Orthogonalität
Zwei Zufallsvariablen werden zueinander als orthogonal bezeichnet, wenn
(2.31)
E Xi X j = 0
ist. Diese Bedingung ist erfüllt, wenn Xi und X j unkorreliert sind und mindestens eine der
Zufallsvariablen einen Mittelwert von null (engl.: zero-mean) hat, also mittelwertfrei ist.
2.2.3 Charakteristische Funktion
Die charakteristische Funktion einer Zufallsvariablen X vereinfacht die Berechnung der Dichtefunktion p(x), sofern X eine lineare Superposition unabhängiger Zufallsvariablen darstellt.
Die charakteristische Funktion ist die Fouriertransformierte der PDF und ist definiert als
jν X Z jν x
ψ ( jν ) ≡ E e
= e p(x)dx
(2.32)
R
mit der Rücktransformation
1
p(x) =
2π
Z
R
ψ ( jν )e− jν x dν .
(2.33)
Die Ableitung der charakteristischen Funktion ergibt
dψ ( jν )
=j
dν
Z
xe jν x p(x)dx.
(2.34)
R
Für ν = 0 ergibt sich direkt der Erwartungswert
dψ ( jν ) E {X} = mX = − j
.
dν ν =0
(2.35)
2.2.4 Zufallsprozesse
Möchte man ein Nachrichtensignal empfangen, so kennt man vorher den genauen Verlauf des
Signals nicht. Man nutzt daher die Beschreibung der Zufallsprozesse. Zufallsprozesse werden durch eine mit t parametrierte Zufallsvariable beschrieben, wobei t den zeitlichen Verlauf
9
2 Mathematische Grundlagen der Informationsübertragung
indiziert. Wir bezeichnen einen solchen Prozess, der die Menge aller möglichen Einzelrealisierungen einschließt, mit X(t). Im Allgemeinen ist der Parameter t kontinuierlich und X(t)
kann diskret oder kontinuierlich sein. Da wir einen Zufallsprozess X(t) als Gesamtheit der
Einzelrealisierungen definiert haben, können wir Werte dieses Prozesses für eine beliebige
Menge von verschiedenen Zeitpunkten t1 < t2 < · · · < tn betrachten, wobei n eine natürliche
Zahl ist. Anschaulich kann man sagen, dass eine Realisierung eines Zufallsprozesses X(t) eine Funktion x(t) ist. Die Zufallsvariablen Xti ≡ X(ti ), i = 1, 2, · · · , n, werden statistisch durch
ihre Verbunddichte p(xt1 , xt2 , · · · , xtn ) charakterisiert.
Stationarität
Gilt für beliebiges t und beliebige n
p(xt1 , xt2 , . . . , xtn ) = p(xt1 +t , xt2 +t , . . . , xtn +t ),
(2.36)
so spricht man von einem Prozess, der stationär im engeren Sinn (engl.: strict-sense stationary) ist [Pro01]. Hier ist gefordert, dass die Verbunddichte zu n beliebigen Zeitpunkten und die
Verbundichte zu n anderen beliebigen Zeitpunkten gleich sein muss. Das kann nur funktionieren, wenn man von identischen Zufallsvariablen X(t) mit gleichen Verteilungen ausgeht. Sind
die Verbunddichten nicht gleich, so ist der Prozess nichtstationär.
Ähnlich wie bei Zufallsvariablen können wir auch Zufallsprozesse durch ihre Momente ausdrücken. Betrachten wir dabei einen Zeitpunkt ti , so ist das n-te Moment
∞
n Z n
E Xti = xti p(xti )dx.
(2.37)
−∞
Ist der Prozess stationär, so ist p(xti +t ) = p(xti ). Dann ist auch das n-te Moment zeitunabhängig. Die Autokorrelationsfunktion φ (t1 ,t2 ) hängt dann nicht mehr explizit von zwei festen Zeitpunkten ab, sondern nurnoch von
der Zeitverschiebung τ . Die Autokorrelationsfunk2
tion an der Stelle null φ (0) = E X (t) bezeichnet die mittlere Leistung des Zufallsprozesses
X(t). Es gibt nichtstationäre Prozesse, für die ebenfalls die Autokorrelationsfunktion φ (τ ) nur
von der Zeitverschiebung τ abhängt. Ist diese Bedingung erfüllt, spricht man von einem Prozess, der schwach stationär bzw. stationär im weiteren Sinn (engl.: wide-sense stationary) ist
[Pro01].
2.2.5 Log-Likelihood-Ratio (LLR)
In der digitalen Kommunikation entscheidet man oft zwischen genau zwei möglichen Ereignissen, die sich gegenseitig ausschließen. Diesen Ereignissen seien die beiden Wahrscheinlichkeiten a ∈ [0, 1] und b ∈ [0, 1] zugeordnet. Sicher ist, dass einer der Zustände eintritt. Damit
10
2 Mathematische Grundlagen der Informationsübertragung
ist
1 = a + b.
Um ein einfaches Maß zu haben, wie wahrscheinlich das eine oder das andere Ereignis eingetreten ist, bildet man den Quotienten aus beiden und nimmt davon den natürlichen Logarithmus. Daraus entsteht das logarithmische Wahrscheinlichkeitsverhältnis (engl.: log likelihood
ratio - LLR)
a
a
Lab = ln = ln
, a, b ∈ (0, 1).
b
1−a
Hierbei können a und b nicht mehr im beidseitig abgeschlossenen Intervall definiert sein, da
die Grenzen sonst nicht definiert sind.
Die Darstellung mit Hilfe des LLR-Wertes hat für die Implementierung iterativer Algorithmen einige Vorteile. Allerdings birgt diese Darstellung einige Nachteile für das Verständnis.
Allgemein kann man die Darstellung einer Zufallsvariablen A durch den LLR-Wert als eine
Transformation ansehen. In dem hier betrachteten Fall einer Zufallsvariablen A mit Trägerintervall A ∈ (0, 1) bildet die bijektive1 Abbildung [Hub02]
L : eI p 7→ R : L(a) = ln
a
△
für a ∈ eI p = (0, 1)
1−a
(2.38)
das beidseitig offene Intervall eI p auf die Gesamtmenge der reellen Zahlen ab, wobei der
mittlere Term die eigentliche Transformation ausdrückt. Ist z = L(a), so ergibt sich die Rücktransformation oder Umkehrfunktion a = L−1 (z), z ∈ R zu [Hub02]:
a=
ez
1
1
z 1
=
= tanh + .
z
−z
1+e
1+e
2
2 2
(2.39)
Diese Darstellung hat einen entscheidenden Vorteil. Sämtliche Multiplikationen werden in
einfache Additionen umgewandelt. Somit ist die Darstellung und insbesondere die Implementierung wesentlich einfacher. Allerdings muss man sich über die Transformation einer Summe
Gedanken machen. Hier hilft folgender Ausdruck [VY00]:
ln(ea + eb ) = max(a, b) + ln(1 + e−|b−a| )
= max(a, b) + fc (|b − a|).
(2.40)
Die Additionen werden also zu Argumenten einer Maximumfunktion mit einer Korrekturfunktion fc . Bei Gleichheit von a und b wird der Maximalwert ln 2 von fc erreicht. Es gilt
also: fc ≤ ln 2.
1 Bijektiv
impliziert, dass die Funktion eindeutig umkehrbar ist.
11
2 Mathematische Grundlagen der Informationsübertragung
2.3 Verteilungen
Für Berechnungen mit Zufallsvariablen sind die zu Grunde liegenden Verteilungen der Zufallsvariablen von hoher Bedeutung. Die für diese Arbeit wichtigen Verteilungen sind hier
angegeben. Sie sind entnommen aus [Pro01]. Am Anfang stehen hier drei wichtige Funktionen, die ebenfalls aus [Pro01] entnommen sind.
Gammafunktion
Γ(p) =
R∞ p−1 −t
t e dt,
p>0
0
Γ(p) = (p − 1)!,
Γ(p + 1) = p!,
√
Γ( 21 ) =
π,
p ist eine natürliche Zahl > 0
Γ( 23 ) =
(2.41)
1√
2 π.
Eigenschaften der Gammafunktion:
Γ(x + 1) = xΓ(x).
(2.42)
[Pro01] Für einige Anwendungen ist die Fehlerfunktion (engl.: error function) wichtig. Sie ist definiert als
Fehlerfunktion
2
erf(x) = √
π
Z x
0
2
e−t dt.
(2.43)
Ihr Komplement ist definiert als
erfc(x) = 1 − erf(x).
(2.44)
Die Q-Funktion ist die Funktion für die Fläche unter dem Rest2 der Standardnormalverteilung N (0; 1) und ist definiert als
Q-Funktion
Z∞
2
t
dt
exp −
2
x
1
x
=
erfc √ .
2
2
1
Q(x) = √
2π
2 Mit
(2.45)
(2.46)
Rest ist hier das Integral über die Gaußdichte von einer unteren Grenze bis unendlich bezeichnet.
12
2 Mathematische Grundlagen der Informationsübertragung
2.3.1 Gaußverteilung
Die Gaußverteilung ist definiert durch ihre PDF
−
1
p(x) = √
e
2πσX
(x−mX )2
2
2σX
,
(2.47)
wobei σX2 die Varianz und mX den Erwartungswert der Gaußverteilung bezeichnen. Die CDF
berechnet sich zu
F(x) =
Z x
p(u)du,
1 1
x − mX
.
=
+ erf √
2 2
2 σX
(2.48)
−∞
Das k-te zentrale Moment ist definiert durch
(
n
o
1 · 3 · · · (k − 1)σXk
E (X − mX )k ≡ µk =
0
(für gerade k)
(für ungerade k)
(2.49)
(2.50)
und das k-te Moment ergibt sich zu
n o
k k i
k
mX µk−i .
E X =∑
i=0 i
(2.51)
Die Gaußverteilung hat die Eigenschaft, dass sie durch die beiden ersten Momente vollständig
beschrieben werden kann. Die Gauß- oder Normalverteilung mit dem Erwartungswert mX und
der Varianz σX2 wird oft durch N (mX ; σX2 ) ausgedrückt.
2.3.2 Rayleighverteilung
Die Rayleighverteilung beschreibt die Amplitude eines komplexen Signals mit gaußverteiltem
Real- und Imaginärteil. Die Dichtefunktion der Rayleighverteilung ist
pR (r) =
r − r22
e 2σ ,
σ2
r ≥ 0,
wobei σ 2 die Varianz des Real- bzw. Imaginärteils ist. Das k-te Moment von R ist
n o
1
2 k/2
k
Γ 1+ k .
E R = 2σ
2
13
(2.52)
(2.53)
2 Mathematische Grundlagen der Informationsübertragung
Der Erwartungswert der Rayleighverteilung ist
π
.
2
(2.54)
4−π 2
σ .
2
(2.55)
E {R} = σ
Die Varianz ergibt sich zu
σR2 =
r
2.3.3 χ 2 -Verteilung
Wenn X eine mittelwertfreie gaußverteilte Zufallsvariable ist, so besitzt Y = X 2 eine zentrale
χ 2 -Verteilung mit einem Freiheitsgrad. Die Dichtefunktion der χ 2 -Verteilung ist dann
2
1
e−y/2σ .
pY (y) = √
2π yσ
(2.56)
n
Ist nun Y = ∑ Xi2 , wobei n die Anzahl der Freiheitsgrade bezeichnet, so ist die Verteilungsi=1
dichte
pY (y) =
und der Erwartungswert
Die Varianz berechnet sich zu
1
yn/2−1 e−y/2σ ,
2
σ n 2n/2 Γ( 12 n)
y≥0
(2.57)
E {Y } = nσ 2 .
(2.58)
σy2 = 2nσ 4 .
(2.59)
Die zentrale χ 2 -Verteilung mit zwei Freiheitsgraden entspricht der Exponentialverteilung. Die
PDF ist
y 1
pY (y) =
(2.60)
exp − 2 .
2σ 2
2σ
Der Erwartungswert ergibt sich dann als
E {Y } = 2σ 2 .
(2.61)
Möchte man die Verteilung normieren, so ergibt sich für die normierte zentrale χ 2 -Verteilung
mit zwei Freiheitsgraden die PDF
1
y
pY (y) =
exp −
.
(2.62)
E {Y }
E {Y }
Die nichtzentralen χ 2 -Verteilungen werden hier nicht betrachtet. Nichtzentral bedeutet, dass
die zu Grunde liegenden Gaußverteilungen nicht mittelwertfrei sind.
14
3 Der Kanal
In Abbildung 3.1 erkennt man ein Übertragungssystem. Am Anfang steht die Daten- oder
Informationsquelle. Diese Daten oder Informationen werden von einem sog. Quellencodierer
(engl.: source encoder) in eine Bitfolge gewandelt. Die Information selbst hat keine oder nur
wenig Redundanz. Diese Informationsbitfolge wird nun zum Kanalcodierer (engl.: channel
encoder) geschickt. Der Kanalcodierer soll nun kontrolliert Redundanz hinzufügen, um die
Anzahl der Fehler, die durch Verluste im Kanal entstehen, gering zu halten. Dabei werden jeweils k Informationsbits durch n verschiedene Codebits repräsentiert. Die M = 2n verschiedenen Sequenzen der n Codebits nennt man Codewörter (engl.: code word). Jede k-bit Sequenz
wird so durch eine n-bit Sequenz ersetzt. Der Quotient aus n/k gibt das Maß an hinzugefügter
Redundanz an. Der reziproke Term k/n = Rc gibt die Coderate (engl.: code rate) an.
Informationsquelle
Quellcodierer
Kanalcodierer
Modulator
Kanal
Ausgangssignal
Ausgangsverstärker
Quelldecoder
Kanaldecoder
Demodulator
Abbildung 3.1: Basiselemente eines digitalen Kommunikationssystems.
Nun wird diese kanalcodierte Bitfolge an den digitalen Modulator (engl.: digital modulator)
geschickt. Je nach Art des Modulators können Ms = 2b verschiedene Wellenformen erzeugt
werden, wodurch jeweils b Bits pro Wellenform dargestellt werden können.
Dieses Signal wird über den physikalischen Kanal übertragen und anschließend vom Empfänger ausgewertet [Pro01]. Als Kanal bezeichnet man die Übertragungsstrecke zwischen Sender
15
3 Der Kanal
und Empfänger. Dies können sowohl drahtgebundene oder drahtlose Übertragungsstrecken
sein. Wir betrachten hier den Kanal für drahtlose Übertragungssysteme. Je nachdem, welche
Elemente des Übertragungssystems in den Kanal miteinbezogen werden, unterscheidet man
verschiedene Arten von Kanälen. Darunter sind [Lin05]:
der physikalische Kanal Der Kanal zwischen den beiden Antennenanschlüssen (für analo-
ge Signale).
der Modemkanal Dieser Kanal bezieht sowohl die Antennen als auch die beiden HF-Mischer
mit ein. Hier muss das Übertragungssignal schon moduliert im Basisband vorliegen.
der diskrete Kanal Dieser Kanal beinhaltet weiterhin die Digital-Analog- bzw. die Analog-
Digital-Wandlung. In der weiteren Arbeit werden wir uns auf diesen Kanal beziehen.
Weiterhin können die oben genannten Arten von Kanälen auch verschiedene Eigenschaften
aufweisen. Je nach Anwendungsgebiet kann das Signal verzerrt, verrauscht oder anderweitig
verändert sein. Eine deterministische Herangehensweise erscheint hier wenig sinnvoll. Die
Beschreibung solcher Eigenschaften mit Zufallsprozessen ist mathematisch besser fassbar.
Auf dieser Grundlage existieren einige Modelle von Kanälen. Im Folgenden wollen wir uns
mit dem sog. AWGN-Kanal beschäftigen.
3.1 AWGN-Kanal
Eine Eigenschaft, die in gewissem Maße alle Kanäle aufweisen, ist das Rauschen. Das Rauschen ist gedächtnislos. Es wird mathematisch als Zufallsprozess N(t), der eine multivariate
Normalverteilung hat, zum Übertragungssignal addiert. Dabei sind die einzelnen Zufallsvariablen N(ti ) statistisch unabhängig. Der Prozess wird beschrieben durch die ersten und die
zweiten Momente
E {N(t)}
= 0
und
∗
E {N(t − τ )N (t)} = σN2 δ (τ ).
(3.1)
Daher bezeichnet man dieses Rauschen als additives normalverteiltes Rauschen oder AWGN
(engl.: additive white Gaussian noise). Das Empfangssignal R(t) ist also gegeben durch:
R(t) = X(t) + N(t),
(3.2)
wobei X(t) das Sendesignal repräsentiert, das Ms verschiedene Signalformen annehmen kann.
Dabei wird von zeitdiskreten Werten ausgegangen. Wird das Signal zu K Zeitpunkten abgetastet, können wir das Signal als Vektor beschreiben. Es können nun K-orthonormale Signalformen gefunden werden, die den K-dimensionalen Signalraum beschreiben. Das Rauschen
16
3 Der Kanal
ist hier unendlich-dimensional. Bei der Demodulation wird das empfangene Signal mit allen
Ms Signalformen verglichen. Dabei wird nur der Teil der Rauschleistung mit dem Sendesignal
demoduliert, der in den K Dimensionen liegt [Pro01].
Üblicherweise geht man von Rauschen aus, das in der komplexen Signalebene die spektrale
Rauschleistungsdichte N0 hat (siehe Abbildung 3.2). Überträgt man nun rein reelle Signale,
wird der Imaginärteil des Rauschens bei der Demodulation ausgefiltert. Die spektrale Rauschleistungsdichte, die das reelle Signal überlagert, ist N0 /2. Das Sendesignal sei in der weiteren
Betrachtung reell.
Re{s(t)}
N0
σN2 = N0
2
εs
Im{s(t)}
t
Abbildung 3.2: Komplexes normalverteiltes Rauschen mit reellem Signal.
3.1.1 Störabstand
Wir gehen von zeitlich begrenzten Signalen aus, so dass jedes Signal endliche Energie hat.
Jedes Signal, das über den Kanal übertragen wird, hat demnach eine bestimmte Energie, die
17
3 Der Kanal
durch
εs =
Z∞
x2 (t)dt
(3.3)
−∞
gegeben ist. Die Leistung des Rauschsignals ist dessen Autokorrelation an der Stelle τ = 0
und für stationäre Prozesse ist diese unendlich:
Z∞
φnn (0) =
Φ( f )d f ,
(3.4)
−∞
= E N(t)2
σN2 δ (0).
=
(3.5)
(3.6)
Bei der Demodulation wird nun der Teil der Rauschleistung ausgefiltert, der nicht im Bereich
der möglichen Sendesignale liegt. Daher ist die Rauschleistung am Ausgang des Demodulators, die ein Signal überlagert, endlich.
Das Verhältnis von Sendeenergie und spektraler Rauschleistungsdichte wird Störabstand oder
SNR (engl.: signal-to-noise ratio) genannt. In einem optimalen Empfänger wird oft ein MFDetektor (engl.: matched filter detector) verwendet. In [Pro01] in Kapitel 5.1.2 ist der maximal
am Ausgang des MF-Detektors erreichbare Störabstand durch die Beziehung
SNR =
2ε s
N0
(3.7)
gegeben, wobei ε s die Energie eines übertragenen Symbols bezeichnet. Für eine BPSK1 Übertragung entspricht ε S auch der Energie für ein übertragenes Bit. Da die Energie eines
Symbols üblicherweise mit ε s = 1 angenommen wird, muss die spektrale Rauschleistungsdichte
N0
σN2 =
(3.8)
2
gewählt werden, damit SNR = 1/σN2 = 2/N0 gilt. Wenn man davon ausgeht, dass die Energie
des Symbols konstant ist, so kann aus dem SNRdB -Wert die Rauschvarianz berechnet werden
als
−SNRdB
(3.9)
σN2 = 10( 10 ) .
3.1.2 BPSK-Übertragung in AWGN
Wir wollen nun theoretisch die Bitfehlerrate für eine uncodierte BPSK-Übertragung in Abhängigkeit des SNR ermitteln. In Abbildung 3.3 sieht man die beiden Gaußverteilungen um
1 BPSK
- binäre Phasenumtastung (engl.: binary phase shift keying)
18
3 Der Kanal
die beiden möglichen Eingangsbits 1 bzw. −1. Ein Signal wird nur dann falsch decodiert,
wenn es zum schraffierten Bereich unter den Kurven gehört. Wurde beispielsweise eine −1
gesendet, aber eine 0.3 empfangen, so wird dieses Bit falsch decodiert. Da man null als Entscheidungsgrenze annimmt, kann man für eine gesendete −1 über die PDF der Gaußverteilung
von null bis unendlich integrieren und erhält so die Wahrscheinlichkeit für einen Fehler. Für
die Verteilung um 1 integrieren wir die PDF von minus unendlich bis null. Unter der Annahme
gleichwahrscheinlicher Symbole 1 und −1 und durch Ausnutzen der Symmetrieeigenschaften
der bedingten Fehlerwahrscheinlichkeiten in Abbildung 3.3 folgt, dass die totale Fehlerwahrscheinlichkeit gleich einer der genannten beiden bedingten Fehlerwahrscheinlichkeiten ist.
p(x)
-1
0
1
x
Abbildung 3.3: Wahrscheinlichkeitsverteilungen beider Bits für einen AWGN-Kanal.
Für den fälschlicherweise als 1 detektierten Rest der Gaußverteilung mit dem Erwartungswert
mN = −1 kann man ansetzen:
Pb =
Z∞
1
(x + 1)2
√
dx.
exp −
2σN2
2πσN
(3.10)
Z∞
!
1
x+1 2
√
exp − √
dx,
2πσN
2σN
(3.11)
0
Daraus ergibt sich weiter
Pb =
0
1
=
π
Z∞
√1
2σN
exp −y2 dy.
(3.12)
Mit der komplementären Fehlerfunktion (siehe (2.44)) und der Q-Funktion (siehe (2.46)) wird
19
3 Der Kanal
daraus
Pb
1
1
,
=
erfc √
2
2σN
!
s
1
1
=
erfc
,
2
2σN2
1
.
= Q
σN
(3.13)
(3.14)
(3.15)
Im Fall beliebiger Werte von ε S und N0 ergibt sich die Fehlerwahrscheinlichkeit entsprechend
zu
s
!
2ε s
Pb = Q
.
(3.16)
N0
3.1.3 Energie des codierten Bits
Für die digitale Übertragung ist die Energie eines einzelnen Bits mit ε b bezeichnet, wobei hier
die Modulation und die Kanalcodierung berücksichtigt werden. Das Verhältnis ε b /N0 dient
dem Vergleich von Übertragungen mit verschiedenen Modulationsarten und Kanalcodierungen. Bei einer Kanalcodierung werden k Bits durch eine Anzahl von n Bits wiedergegeben,
wobei k/n = Rc die Coderate ist. Es ist also die 1/Rc -fache Energie im Vergleich zu uncodierter Übertragung nötig, um ein Bit zu übertragen. Daher ist klar, dass für die Energie eines
codierten Bits
ε c = Rc ε b
(3.17)
gilt. Wird eine Ms -stufige Modulation verwendet, werden also log2 (Ms ) Bits pro Symbol übertragen, so wird die Symbolenergie zu
ε s = log2(Ms)ε c = log2(Ms)Rcε b.
(3.18)
Da wir für die Übertragung BPSK verwenden, Ms also zwei ist, vereinfacht sich (3.18) zu
ε s = Rc ε b .
(3.19)
3.1.4 Normierung der Ergebnisse auf ε b /N0 bei Kanalcodierung
Um die Simulationsergebnisse in ε b /N0 darstellen zu können, müssen Coderate und Bitenergie wie oben gezeigt berücksichtigt werden. In den Simulationen wird jedoch der nichtnormierte SNRdB -Wert verwendet. Daher müssen die Störabstandswerte normiert werden.
20
3 Der Kanal
Für den vorliegenden Turbocode ist die Coderate Rc = 31 . Setzt man (3.19) in (3.7) ein, so
ergibt sich
SNR = 2Rc
=
εb,
N0
2 εb
.
3 N0
Durch Umformung in dB erhält man
ε
3
b
10 log10
= 10 log10
+ 10 log10 (SNR)
N0
2
ε b = 1.76dB + SNR
dB
N0 dB
(3.20)
(3.21)
(3.22)
(3.23)
Für die praktische Realisierung ergeben sich nun zwei Möglichkeiten. Die erste Möglichkeit
besteht darin, die Simulationen mit vorgegebenen nichtnormierten SNRdB -Werten durchzuführen und die Ergebnisse anschließend zu „verschieben“. Als zweite Variante kann die Normierung bereits in der Simulation geschehen, indem man mit normierten Werten rechnen lässt.
Für Turbocodes mit einer Coderate Rc = 13 müssen für die Simulation um 1.76 dB kleinere
Werte verwendet werden. Letztere Variante fand in unseren Simulationen Anwendung.
Für Codes mit einer Coderate von Rc =
1
2
ist keine Veränderung notwendig.
Für uncodierte Übertragung gilt:
1
ε
b
= 10 log10
+ 10 log10 (SNR)
10 log10
N0
2
ε b = −3.01dB + SNR .
dB
N0 dB
(3.24)
(3.25)
Zur Darstellung einer uncodierten Übertragung in ε b /N0 müssen in der Simulation um 3 dB
größere Werte verwendet werden.
3.2 Kanal mit Rayleigh-Schwund
Bislang sind wir von einem einfachen AWGN-Kanal
R(t) = X(t) + N(t)
21
(3.26)
3 Der Kanal
ausgegangen, wobei R(t), X(t) und N(t) Zufallsprozesse des empfangenen Signals, des gesendeten Signals und des thermischen Rauschens bezeichnen.
Signale am Empfänger sind jedoch nicht nur durch Rauschen beeinflusst. Durch Mehrwegeausbreitung und Überlagerung einzelner Pfade an der Empfangsantenne können Amplitude
und Phase der entsprechenden Teilsignale variieren. Zudem können sich nacheinander gesendete Signale überlagern, was zu ISI (engl.: intersymbol interference) führt.
Das Sendesignal x(t) sei eine unmodulierte Trägerfrequenz und werde über verschiedene Pfade empfangen. Das empfangene Signal ist dann
R(t) = ∑ ai e( jθi ) x(t) + N(t),
(3.27)
i
wobei ai die Dämpfung und θi die Phase des i-ten Übertragungspfads bezeichnet. Die verschiedenen Phasen überlagern sich an der Empfangsantenne je nach Lage konstruktiv oder
destruktiv. Die Änderung der Phasenlage um 2π eines Pfads kann schon durch eine Laufzeitänderung von f1c hervorgerufen werden, wobei fc die Trägerfrequenz ist. Ist die Anzahl
der Pfade ausreichend groß und kein Pfad besonders ausgeprägt, kann diese Überlagerung
der verschiedenen Pfade mit ähnlicher Amplitude, aber unterschiedlicher Phasenlage, als rayleighverteilte Zufallsvariable A aufgefasst werden, die man Schwundamplitude nennt (vgl.
[Pro01] Kap. 14.1). Da wir von einem unmodulierten Träger ausgegangen sind, können wir
ISI ausschließen. Wir gehen weiterhin davon aus, dass wir die Phase perfekt schätzen können.
Wir nehmen also eine kohärente Detektion an. Wir erweitern das AWGN-Kanalmodell um die
rayleighverteilte Schwundamplitude A
R(t) = AX(t) + N(t),
(3.28)
wobei X(t) nun einen binären Zufallsprozess darstellt, der zu diskreten Zeitpunkten t die Werte
−1 und 1 annehmen kann. Da es sich um ein sehr schmalbandiges Signal handelt, haben wir
ISI ausgeschlossen. Wir wollen weiterhin annehmen, dass die Schwundamplitude für einen
Block konstant ist, was man insgesamt als nicht-frequenzselektiven, langsamen Schwundkanal
(engl.: non-frequency selective slowly fading channel) bezeichnet (vgl. [Pro01] Kap. 14.3).
3.2.1 Was bewirkt Rayleigh-Schwund?
Wie oben beschrieben, wird die Amplitude des Signals zu einer Zufallsvariablen A, die durch
die Rayleighverteilung beschrieben werden kann. Damit ist die Energie des Signals χ 2 -verteilt
und somit ist auch der Störabstand, gegeben als γb = a2 ε b /N0 [Pro01], χ 2 -verteilt. Für den
mittleren Störabstand Γb gilt:
22
3 Der Kanal
εb
E {Γb } = E A2
,
N0
=
Z ∞
−∞
(3.29)
γb p(γb ) dγb = Γb .
| {z }
(3.30)
χ 2 −verteilt
Die Schwundamplitude
Amuss dabei so normiert werden, dass das zweite Moment dieser
Schwundamplitude E A2 = 1 ist, damit der mittlere Störabstand nur von dem Ausdruck
ε s/N0 abhängt. Für die mittlere Bitfehlerrate ergibt sich:
BER(Γb ) = E {P(γb )} =
Z ∞
−∞
P(γb ) p(γb ) dγb ,
| {z }
(3.31)
χ 2 −verteilt
wobei P(γb ) die Bitfehlerrate im AWGN-Kanal beschreibt. Um eine Kurve der Bitfehlerwahrscheinlichkeit als Funktion des mittleren Störabstands Γb zu erhalten, muss diese Berechnung
für jeden mittleren SNR-Wert durchgeführt werden. Das Ergebnis stellt die Bitfehlerwahrscheinlichkeit für eine Übertragung mit einer rayleighverteilten Amplitude A dar.
3.2.2 Implementierung
Bislang haben wir für die Berechnung des Störabstands im AWGN-Kanal die Sendeenergie konstant gehalten und die Rauschvarianz errechnet (vgl. (3.9)). Einfacher wird es, wenn
wir im Weiteren für die Berechnung des Störabstands die Schwundamplitude A so variieren,
dass deren zweites Moment der geforderten Sendeleistung entspricht. Für die Simulation des
Rauschprozesses kann anschließend eine standardnormalverteilte Zufallsvariable hinzuaddiert
werden.
Für jede mittlere Schwundamplitude Γb ergeben sich andere Parameter der Verteilung. Erwartungswert und Varianz ändern sich dabei in Abhängigkeit des Störabstands. Sei für die
folgende Überlegung der mittlere Störabstand Γb = E A2 εN0b = 1. Damit ε b /N0 dem mitt leren Störabstand entspricht, muss das zweite Moment der Amplitude E A2 = 1 sein. Das
zweite Moment einer Rayleighverteilung ist gegeben als
2
2
2
2 2
E R
= 2σ
(3.32)
Γ 1+
= 2σ 2 ,
2
wobei σ 2 die Varianz der zu Grunde liegenden Gaußverteilung ist und Γ(·) die Gammafunktion bezeichnet. Man erkennt sofort, dass die Varianz der zu Grunde liegenden Gaußvertei-
23
3 Der Kanal
lung
2σ 2 = 1
1
σ = √
2
(3.33)
sein muss, um E A2 = 1 zu erhalten.
Die Implementierung einer Rayleighverteilung lässt sich realisieren, indem man die Wurzel
aus der Summe der Quadrate zweier Gaußverteilungen zieht. Die Standardnormalverteilung
N (0; 1) ist in M ATLAB® implementiert. Um daraus eine beliebige Gaußverteilung zu generieren, wird von der Formel
X − mX
Z=
(3.34)
σX
Gebrauch gemacht, die jede Zufallsvariable X ∼ N (mX ; σX ) in eine standardnormalverteilte
Zufallsvariable Z ∼ N (0; 1) umrechnet [Bro05]. Umgestellt nach X ergibt sich:
X = σX Z + mX .
(3.35)
Um nun die o.g. Normierung in die Gaußverteilung zu implementieren, muss man die Varianz
σX2 beider Gaußverteilungen so ändern, dass der Erwartungswert der Rayleighverteilung eins
ist. Der Normierungsfaktor ist √12 . Für jeden anderen mittleren Störabstand kann dieser Faktor
konstant bleiben, da er ein neutrales Element in der Berechnung ist. Hier der dazugehörige
Quelltext in Matlab, wobei die Variable SNR das Verhältnis ε b /N0 bezeichnet:
% Berechnung der momentanen Fadingamplitude a
a = sqrt(1/2 * (sqrt(10^(SNR/10)) * randn(1,1)).^2 ...
+ (sqrt(10^(SNR/10)) * randn(1,1)).^2);
% Berechnung der einzelnen Bits
r_ges = a*x_ges + randn(length(x_ges),1)’;
3.2.3 Numerische Berechnung der Bitfehlerwahrscheinlichkeit im
Kanal mit Rayleigh-Schwund
Die Bitfehlerkurve für eine BPSK-Übertragung im Kanal mit Rayleigh-Schwund gibt Proakis
[Pro01] mit


s
P2 =
1
1−
2
24
Γb 
1 + Γb
(3.36)
3 Der Kanal
an. Um eine theoretische Bitfehlerkurve für den Fall einer Turbocodierung erzeugen zu können, braucht man eine analytische Funktion für die Bitfehlerraten des Turbocodes. Die Herleitung würde jedoch den Rahmen dieser Arbeit sprengen. Allerdings kann man annäherungsweise auch numerisch zu einer Lösung kommen. Dazu wird das Integral in (3.31) in eine
Summe gewandelt:
n
γbi
1
BER(Γb ) ≈ ∑ BER(γbi ) exp(− )∆γbi ,
(3.37)
Γb
Γb
i=0
wobei n die Anzahl der simulierten Werte ist. Die Abstände ∆γb i müssen äquidistant sein. Da
eine Berechnung mit logarithmischen Werten hier keinen Sinn ergibt, wurden hierfür Simulationen mit äquidistanten Abständen durchgeführt.
25
4 Faltungscodierung
Um die Bitfehlerwahrscheinlichkeit bei einer Übertragung über einen Kanal mit Rauschen und
Schwund zu reduzieren, wird strukturiert Redundanz zu der eigentlichen Nachricht hinzugefügt, mit deren Hilfe Fehler erkannt und teilweise korrigiert werden können. Das Hinzufügen
von Redundanz wird Kanalcodierung genannt. Ein Kanalencoder weist jeder Nachricht mit
einer Länge von k Bits ein Codewort mit der Länge n Bits zu, wobei n > k ist. Jeder Code
ist durch seine Coderate R = k/n < 1 charakterisiert. Je unterschiedlicher die Codewörter untereinander sind, desto besser ist die Fehlerkorrektur des Codes [VY00]. Die Nachteile, die
durch das Hinzufügen von Redundanz gegenüber einem uncodierten System entstehen, sind
eine verminderte Übertragungsrate oder ein größerer Bedarf an Bandbreite. Die folgenden
Beschreibungen beruhen hauptsächlich auf [VY00], [Pro01] und [Vog02].
4.1 Faltungsencoder
Die Faltungscodierung (engl.: convolutional coding) wird in dieser Arbeit kurz beschrieben,
weil sie ein Bestandteil der Turbocodierung ist. Außerdem gehören die Faltungscodes neben den Blockcodes zu den wichtigsten Codes in der Nachrichtentechnik. Die Faltungscodierung kommt in Anwendungen wie zum Beispiel der Satellitenkommunikation, im Mobilfunk
und der digitalen Videoübertragung (engl.: Digital Video Broadcasting (DVB)) zum Einsatz.
Faltungscodes sind lineare Codes, die sich relativ einfach durch eine Maximum-LikelihoodDecodierung, den Viterbi-Algorithmus, decodieren lassen [VY00], [Vog02]. Linear bedeutet
in diesem Zusammenhang, dass die Summe zweier Codeworte wieder ein Codewort ergibt.
In Bild 4.1 ist ein Faltungsencoder mit der Coderate R = 1/2 zu sehen. Dieser Encoder besteht
aus einem Schieberegister mit zwei Speicherelementen und zwei Modulo-2-Addierern. Für
ein Eingangsbit ct erzeugt der Encoder zwei codierte Ausgangsbits vt,0 und vt,1 . Die binäre
Eingangssequenz des Encoders sei
c = (· · · , c−1 , c0 , c1 , · · · , ct , · · · ),
26
(4.1)
4 Faltungscodierung
wobei t eine Zeitkonstante ist [VY00].
+
v0
c
v
v1
+
Abbildung 4.1: Ein Faltungsencoder mit der Coderate R = 1/2, [VY00].
Der Encoder erzeugt zwei ebenfalls binäre Ausgangssequenzen
v0 = (· · · , v−1,0 , v0,0 , v1,0 , · · · , vt,0 , · · · )
v1 = (· · · , v−1,1 , v0,1 , v1,1 , · · · , vt,1 , · · · ),
(4.2)
indem die Elemente der Eingangssequenz addiert werden gemäß
vt,0 = ct + ct−1 + ct−2
vt,1 = ct + ct−2 ,
(4.3)
wobei + einer Modulo-2 Addition entspricht. Da der Encoder zwei Speicherelemente hat, sagt
man, dass er ein Gedächtnis von m = 2 hat. Die Ausgangsbits werden von den zwei Bits in
den Speicherelementen und dem Eingangsbit zum Zeitpunkt t bestimmt, d.h. die drei letzten
Bits beeinflussen den Wert des Ausgangsbits. Aus diesem Grund sagt man, dass der Encoder
eine Einflußlänge (engl.: constraint length) von k = 3 hat. Die Bitsequenzen v0 und v1 werden
mittels eines Multiplexers zu einer Ausgangsbitsequenz
27
4 Faltungscodierung
v = (· · · , v−1,0 , v−1,1 , v0,0 , v0,1 , v1,0 , v1,1 , · · · , vt,0 , vt,1 , · · · )
(4.4)
zusammengefasst. Zusätzlich kann ein Encoder durch seine Generatorvektoren beschrieben
werden. Die Vektoren ergeben sich durch die Verbindungen zwischen den Speicherelementen
und den Addierern. Der obere Addierer ist zum Beispiel direkt mit dem Eingang des Encoders, dem Ausgang des ersten Speicherelements und mit dem Ausgang des zweiten Speicherelements verbunden. Daraus ergibt sich der Generatorvektor zu
g0 = (g0,0 g1,0 g2,0 ) = (111)2 = (7)8 .
(4.5)
Für den unteren Addierer ergibt sich der Vektor
g1 = (g0,1 g1,1 g2,1 ) = (101)2 = (5)8 ,
(4.6)
da er mit dem Eingang des Encoders und dem Ausgang des zweiten Speicherelements verbunden ist. In den meisten Fällen werden die Vektoren in oktaler Form angegeben. Neben (4.3)
können die Ausgangsbitsequenzen auch mit Hilfe der Generatorvektoren
vi = c ∗ gi
(4.7)
errechnet werden, wobei ∗ der Faltungsoperator ist. Aus dieser Tatsache ergibt sich auch der
Name für die Faltungscodierung [VY00]. Für einen Zeitpunkt t gilt dann entsprechend
m
vt,i =
∑ ct− j g j,i ,
i = 0, 1 ,
(4.8)
j=0
wobei m die Anzahl der Speicherelemente ist. Neben den Generatorvektoren kann ein Faltungsencoder auch durch Generatorpolynome beschrieben werden, was einer Z-Transformation
−k
−1
in den Bildbereich entspricht. Für die Z-Transformation gilt X(z) = ∑∞
k=0 xk z , mit D = z
k
folgt daraus X(D) = ∑∞
k=0 xk D . So hat der Encoder aus Abbildung 4.1 die Generatorpolynome
g0 (D) = 1 + D + D2
28
(4.9)
4 Faltungscodierung
und
g1 (D) = 1 + D2 ,
(4.10)
wobei D ein Verzögerungsoperator ist und der Exponent die Anzahl der Verzögerungsschritte
angibt. Üblicherweise werden die Generatorpolynome in der sogenannten Generatormatrix
G(D) = [1 + D + D2
1 + D2 ]
(4.11)
angeordnet [VY00]. Die Codierung kann nun folgendermaßen beschrieben werden:
v0 (D) = c(D)g0 (D)
v1 (D) = c(D)g1 (D).
(4.12)
Für die Ausgangssequenz v ergibt sich daraus
v(D) = c(D)G(D),
(4.13)
wobei
G(D) = [g0 (D) g1 (D)
···
gn−1 (D)]
(4.14)
v(D) = [v0 (D) v1 (D)
···
vn−1 (D)]
(4.15)
und
sind.
Da es sich bei einem Faltungsencoder um einen lineares Netzwerk mit festen Zuständen S
handelt, gibt es zwei gängige Methoden um einen Faltungscode grafisch zu beschreiben. Die
Methoden sind das Zustandsdiagramm und das Trellisdiagramm. In Abbildung 4.2 ist das
29
4 Faltungscodierung
Zustandsdiagramm des Faltungsencoders aus Abbildung 4.1 zu sehen. Es zeigt den Speicherinhalt der Speicherelemente innerhalb des Encoders, die als Zustand zum Zeitpunkt t beschrieben werden. Die Anzahl der Zustände ist 2m , wobei m die Anzahl der Speicherelemente ist.
Der Encoder in Abbildung 4.1 hat somit vier Zustände. Die Zustände des Encoders sind im
Diagramm als Knoten dargestellt und die Übergänge von einem Zustand zum anderen sind
als Linien zwischen den Knoten dargestellt. Die Beschriftung an den Linien zeigt zuerst das
Eingangsbit in den Encoder und dann die Ausgangsbits aus dem Encoder. Der aktuelle Zustand des Encoders ist abhängig vom vorigen Zustand und dem aktuellen Eingangsbit. Die
vier Zustände des Encoders in Abbildung 4.1 sind mit S0 , S1 , S2 , S3 benannt, wobei der Index
dem jeweiligen Integerwert des Zustands entspricht. Jeden Knoten verlassen zwei Linien, die
dem jeweiligen Zustand des Eingangsbits entsprechen.
0/00
S0 00
0/11
1/11
1/00
S1 01
10 S2
0/01
0/10
1/10
11 S3
1/01
Abbildung 4.2: Zustandsdiagramm für den Faltungsencoder in Abbildung 4.1 [VY00].
Eine Darstellung, in der zusätzlich zu den Zuständen noch die Zeitabhängigkeit gezeigt werden kann, ist das Trellisdiagramm. Bei diesem Diagramm werden alle Zustände zu jedem
Zeitpunkt und die Übergänge von einem Zustand zum anderen dargestellt. In Abbildung 4.3
ist das Trellisdiagramm des Faltungsencoders aus Abbildung 4.1 zu sehen. Es wird immer
davon ausgegangen, dass die beiden Speicherelemente des Encoders im Nullzustand starten
und somit auch das Trellisdiagramm im Nullzustand beginnt. Anschließend folgt das erste
Eingangsbit des Encoders, das entweder 1 oder 0 sein kann. Deswegen verlassen jeden Zustand zwei Linien. In Abbildung 4.3 steht eine gestrichelte Linie für eine 1 als Eingangsbit
und eine durchgezogene Linie für eine 0 als Eingangsbit. Die Anzahl der möglichen Zustände
ist abhängig vom Zeitpunkt der Codierung. Bei dem ersten Eingangsbit gibt es zwei mögliche
Zustände, den Zustand S = 10, falls es sich um eine 1 handelt und S = 00, falls es sich um
eine 0 handelt. Bei Zeitpunkt zwei gibt es schon 2 mal 2 mögliche Zustände, d.h. die An-
30
4 Faltungscodierung
zahl der Möglichkeiten verdoppelt sich von Zeitpunkt zu Zeitpunkt, bis die maximale Anzahl
erreicht ist [VY00]. Die maximale Anzahl wird nach dem Zeitpunkt m, also der Anzahl der
Speicherelemente, erreicht. Bei dem Encoder aus Abbildung 4.1 heißt das, dass zum Zeitpunkt t = m = 2 die maximale Anzahl von acht Möglichkeiten zu einem nächsten Zustand zu
gelangen erreicht ist und sich das Trellisdiagramm für die Zeitpunkte t > m wiederholt. Der
Vorteil eines Trellisdiagramms liegt darin, dass eine Eingangssequenz durch einen Pfad im
Diagramm dargestellt und codiert werden kann. Die Eingangssequenz c = (11001) führt zum
Beispiel zur codierten Ausgangssequenz v = (1110101111).
00
00
00
11
01
11
00
01
10
01
00
11
11
11
11
...
10
...
01
0
1
00
01
10
10
11
...
00
10
10
3
2
...
01
4
Abbildung 4.3: Trellisdiagramm für den Faltungsencoder in Abbildung 4.1 [VY00].
Bei der Codierung kann zwischen systematischen und nichtsystematischen Codes unterschieden werden. Ein systematischer Code ist ein Code, in dem die zu codierende Sequenz in
ihrer ursprünglichen Form enthalten ist. Bei dem Beispiel aus Abbildung 4.1 handelt es sich
um einen nichtsystematischen Code, da beide Ausgänge des Encoders durch die Generatorvektoren verändert werden. Bei einem Faltungscode kann ein systematischer Code dadurch
erzeugt werden, dass ein Ausgang direkt die Eingangssequenz weitergibt und der zweite Ausgang eine codierte Sequenz ausgibt, die durch eine Rückkopplung des Encoders erzeugt wird.
Solche Encoder werden rekursive systematische Faltungsencoder (engl.: recursive systematic convolutional-(RSC)-encoder) genannt. Ein Beispiel für einen RSC-Encoder ist in Abbildung 4.4 zu sehen. In diesem Beispiel wird der obere Zweig an den Eingang rückgekoppelt,
dadurch ergibt sich die Generatormatrix
G(D) = [1
g1 (D)
] = [1
g0 (D)
1 + D2
].
1 + D + D2
(4.16)
In Abbildung 4.5 ist das Zustandsdiagramm des RSC-Encoders dargestellt. Es hat die gleiche Struktur wie das Zustandsdiagramm des nichtsystematischen Encoders, wobei sich die
Anordnung der Zustände und die Ein- bzw. Ausgangsbits der Übergänge geändert haben.
31
4 Faltungscodierung
v0
c
+
+
v1
0/
00
Abbildung 4.4: Ein RSC-Encoder mit der Coderate R = 1/2.
00
1/11
01
10
1/
1/11
0/01
00
0/
0/01
11
1/
10
10
Abbildung 4.5: Zustandsdiagramm des RSC-Encoders aus Abbildung 4.4.
32
4 Faltungscodierung
Jeder nichtsystematische Encoder kann in einen systematischen Encoder überführt werden,
wobei die Trellisstruktur und die Codeworte gleich bleiben. Es ändern sich nur die Zuordnungen der Eingangssequenzen zu den Ausgangssequenzen. Die minimale Distanz der beiden
Encoder bleibt auch die gleiche, da sich die Codesequenzen nicht ändern. Der wichtigste Unterschied im Bezug auf die Turbocodierung ist, dass ein nichtsystematischer Encoder eine
endliche Impulsantwort (engl.: finite impuls response (FIR) ) und ein rekursiver systematischer Encoder eine unendliche Impulsantwort (engl.: infinite impuls response (IIR) ) hat, die
von seiner rekursiven Struktur herrührt. Dieser Unterschied spielt im Bezug auf die Distanzeigenschaften bzw. die Gewichte der Codesequenzen eine wichtige Rolle, wie im Abschnitt
zur Turbocodierung beschrieben wird.
4.1.1 Distanzeigenschaften
Die Distanzeigenschaften eines Codes bestimmen seine Leistungsfähigkeit. Hierbei unterscheidet man zwischen zwei Arten von Distanzen. Bei der Decodierung mit harten Entscheidungen, d.h. es wird nur anhand des Vorzeichens entschieden, welchen Wert das Bit hat,
wird im Decoder mit binären Symbolen gerechnet und die Hamming-Distanz verwendet. Die
Hamming-Distanz d ist die Anzahl der Bits, in der sich zwei Codewörter voneinander unterscheiden. Zum Beispiel ist die Hamming-Distanz d(v0 , v1 ) zwischen v0 = [101011] und
v1 = [001111] gleich zwei, da sie sich an der ersten und der vierten Stelle unterscheiden. Sie
kann durch eine XOR-Addition der beiden Sequenzen und anschließendem Aufsummieren
der Einsen berechnet werden. Je kleiner die Hamming-Distanz zwischen den einzelnen Codewörtern ist, desto leichter können Codeworte verwechselt werden, da die Anzahl der Stellen,
in denen sie sich unterscheiden, gering ist. Die minimale freie Distanz dfree gibt den kleinsten Unterschied an, der zwischen zwei unterschiedlichen Codeworten besteht. Da Faltungscodes linear sind, gibt das Gewicht der Modulo-2 Addition zweier Codewörter die minimale
Hamming-Distanz der beiden Codewörter an. Das Gewicht eines Codewortes gibt die Anzahl
der von null verschiedenen Elemente an. Daraus folgt, dass die minimale freie Distanz gleich
dem kleinsten Gewicht aller Codewörter, die verschieden von null sind, ist und somit die Nullsequenz, d.h. eine Sequenz, die nur aus Nullen besteht, als Referenz benutzt werden kann. Die
minimale freie Distanz kann nun herausgefunden werden, indem man alle Codewörter mit der
Nullsequenz vergleicht [VY00]. Die minimale freie Distanz des Encoders aus Abbildung 4.1
errechnet sich aus der v = [110111]. Es ist die Sequenz mit der geringsten Anzahl von Einsen,
die im Nullzustand startet und wieder im Nullzustand endet. Daraus folgt, das die minimale
freie Distanz des Encoders dfree = 5 ist.
Wird dagegen die Decodierung mit Zuverlässigkeitsinformationen verwendet, rechnet der Decoder mit quantisierten Werten, wobei die euklidische Distanz verwendet wird. Die euklidische Distanz ist der kürzeste Abstand zwischen zwei Punkten und wird folgendermaßen berechnet
33
4 Faltungscodierung
dE (v0 , v1 ) = |v0 − v1 | =
s
n
∑ |vt,0 − vt,1|2.
(4.17)
t=1
Auch für die euklidische Distanz gibt es eine minimale Distanz, die minimale freie euklidische
Distanz dE,free . Dabei handelt es sich um die minimale euklidische Distanz zwischen zwei
Codewörtern.
4.1.2 Gewichtsverteilung
Um einschätzen zu können, ob ein Code leistungsfähig ist, kann als erster Richtwert seine
minimale freie Distanz dfree betrachtet werden. Zur genaueren Betrachtung dient allerdings
seine Gewichtsverteilung, die aus dem erweiterten Zustandsdiagramm abgeleitet werden kann.
Dazu wurde das Zustandsdiagramm in Abbildung 4.2 erweitert zu dem Zustandsdiagramm in
Abbildung 4.6.
XY Z
S3
XY Z
Si
X 2Y Z
S2
XZ
XZ
S1
X 2Z
So
YZ
Abbildung 4.6: Erweitertes Zustandsdiagramm für den Encoder in Abb. 4.1 [VY00].
Bei dem erweiterten Zustandsdiagramm wird der Zustand S0 in den Anfangszustand Si und
den Endzustand So aufgeteilt und die Schleife, die um den Zustand S0 geht, entfernt, da sie
keinen Beitrag zur Gewichtsverteilung leistet. Jeder Pfad, der im Zustand Si startet und in
Zustand So endet, wird nun betrachtet. Dazu wird die Gewichtsverteilung eingeführt
{Adfree , Adfree +1 , · · · , Ai , · · · },
34
(4.18)
4 Faltungscodierung
wobei Ai die Anzahl der Codewörter ist, die das Gewicht i hat. Angewendet auf das erweiterte
Zustandsdiagramm ist Ai die Anzahl der Pfade mit dem Gewicht i, die den Anfangszustand Si
verlassen und den Endzustand So erreichen. In der Beschriftung im erweiterten Zustandsdiagramm in Abbildung 4.6 steht das X für eine unbestimmte Größe, deren Exponent das Gewicht
der codierten Ausgangssequenz i angibt, Y für eine unbestimmte Größe, deren Exponent das
Gewicht der Eingangssequenz j angibt und Z für eine unbestimmte Größe, deren Exponent
die Anzahl der Übergänge angibt, die zurückgelegt werden. Jeder Übergang im erweiterten
Zustandsdiagramm ist mit seiner Übergangsverstärkung in der Form X iY j Z versehen. Die Gewichtsverteilung des Codes kann nun aus der Erzeugerfunktion (engl.: generating function)
des erweiterten Zustandsdiagramms erzeugt werden. Dazu werden einige Gleichungen eingeführt, die sich aus dem erweiterten Zustandsdiagramm ergeben [VY00]:
S2
S1
S3
So
=
=
=
=
Y ZS1 + X 2Y ZSi
XZS2 + XZS3
XY ZS2 + XY ZS3
X 2 ZS1 .
(4.19)
(4.20)
(4.21)
(4.22)
Durch einige mathematische Umformungen kann die Erzeugerfunktion T (X,Y, Z) errechnet
werden [VY00] und ergibt sich zu
T (X,Y, Z) =
So
X 5Y Z 3
=
Si
1 − XY Z(1 + Z)
(4.23)
oder
T (X,Y, Z) =
+
+
+
X 5Y Z 3 + X 6Y 2 Z 4 + (X 6Y 2 + X 7Y 3 )Z 5
(2X 7Y 3 + X 8Y 4 )Z 6
(X 7Y 3 + X 8Y 4 + X 9Y 5 )Z 7
(3X 8Y 4 + 4X 9Y 5 + X 10Y 6 )Z 8 + · · · .
(4.24)
An der Erzeugerfunktion des erweiterten Zustandsdiagramms kann man nun sehen, dass die
minimale freie Distanz dfree des Codes dfree = 5 beträgt, da der Exponent von X den Wert fünf
hat. Die Anzahl der Pfade, die diese Distanz haben ist A5 = 1. Aus dem Exponent von Y ist zu
erkennen, dass die codierte Ausgangssequenz von einer Eingangssequenz mit dem Gewicht
35
4 Faltungscodierung
eins erzeugt wurde und der Exponent von Z zeigt, dass dafür drei Übergänge nötig waren.
Setzt man Z = 1 wird die Erzeugerfunktion zu
T (X,Y ) = X 5Y + 2X 6Y 2 + 4X 7Y 3 + 8X 8Y 4 + . . . .
(4.25)
Das Gleiche lässt sich auch für den RSC-Encoder aus Abbildung 4.4 darstellen. Das erweiterte
Zustandsdiagramm des RSC-Encoders ist in Abbildung 4.7 abgebildet.
XY Z
S3
XZ
Si
X 2Y Z
S2
XZ
XY Z
S1
X 2Y Z
So
Z
Abbildung 4.7: Erweitertes Zustandsdiagramm für den RSC-Encoder in Abb. 4.4 [VY00].
Für die Erzeugerfunktion ergibt sich aus Abbildung 4.7
T (X,Y ) = (X 6 − X 8 )Y 2 + (X 5 − 3X 7 )Y 3 + (−3X 6 + 2X 8 )Y 4 + 3X 7Y 5 − X 8Y 6 + · · · , (4.26)
wobei die beiden Erzeugerfunktionen (4.25) und (4.26) für unendlich lange Codesequenzen
gelten [Vit71]. Aus der Erzeugerfunktion erkennt man, dass die minimale freie Distanz für
den RSC-Encoder ebenfalls dfree = 5 ist. Der Unterschied ist, dass die minimale freie Distanz
des RSC-Encoder von einer Eingangssequenz mit einem Gewicht von drei erzeugt wurde und
nicht wie bei dem Encoder aus Abbildung 4.1 von einer Eingangssequenz mit einem Gewicht
von eins. Dieser Unterschied, der durch die unterschiedlichen Impulsantworten entsteht, spielt
bei der Turbocodierung eine wichtige Rolle.
36
4 Faltungscodierung
4.1.3 Punktierung
In manchen Fällen ist es notwendig, die Coderate zu variieren, um auf Veränderungen bei
der Übertragung reagieren zu können. Um dafür nicht jedes mal die Sender-Empfänger Kombination wechseln zu müssen, kann der Code entsprechend angepasst werden. Dazu werden
bestimmte Bits der codierten Sequenz bei der Übertragung weggelassen. Dieser Vorgang wird
Punktierung (engl.: puncturing) genannt. Wird zum Beispiel von der Ausgangssequenz des
Encoders aus Abbildung 4.1 ein Bit aus vieren punktiert, so entstehen aus zwei Eingangsbits
drei Ausgangsbits und die Coderate beträgt R = 2/3 [VY00]. Wichtig zu erwähnen ist hierbei, dass sich beim Punktieren das Trellisdiagramm nicht ändert. Erzeugt man einen Code mit
der Coderate R = 2/3 mit einem entsprechenden Encoder wird das Trellisdiagramm dagegen
komplizierter, da jetzt vier Pfade in jedem Knoten enden anstatt der zwei, die es bei dem
punktiertem Code sind. Außerdem können auch noch andere Coderaten erzeugt werden, ohne
die Struktur des Senders und des Empfängers zu verändern, was erhebliche Vorteile mit sich
bringt.
4.1.4 Terminierung
Für die Decodierung von Faltungscodes in praktischen Systemen ist es von Vorteil, mit endlichen Blocklängen zu rechnen, um die Komplexität des Decodierers möglichst in einem verträglichen Rahmen zu halten. Wie schon erwähnt, wird immer im Nullzustand des Encoders
mit der Codierung begonnen. Um eine endliche Blocklänge zu erreichen, werden an die Eingangssequenz noch sogenannte Tail-Bits angehängt, die den Encoder im Nullzustand enden
lassen. Die Anzahl der Tail-Bits ist gleich der Anzahl der Speicherelemente des Encoders.
Dies bringt deswegen Vorteile bei der Decodierung, da der Decoder dann weiß, in welchem
Zustand das Codewort begonnen und in welchem Zustand es beendet wurde. Bei einem nichtsystematischen Encoder reicht es, eine Reihe von Nullen an die eigentliche Eingangssequenz
anzuhängen. Bei einem RSC-Encoder dagegen muss der letzte Zustand bekannt sein, um zu
wissen welche Bits den Encoder dazu bringen, im Nullzustand zu enden. Dies kann im Falle
des RSC-Encoders aus Abbildung 4.4 durch eine einfache Matrix
MTail

0
1
=
1
0

0
0

1
1
(4.27)
geschehen, wobei die Zeile der Matrix dem letzten Zustand des RSC-Encoders entspricht und
die beiden Spalten das erste und zweite Tail-Bit angeben, das angehängt werden muss, um
37
4 Faltungscodierung
den RSC-Encoder zu terminieren. Ist der letzte Zustand des RSC-Encoders zum Beispiel der
Zustand S2 , muss die Sequenz cTail = (11) an die Nachricht angehängt werden. Durch die
Terminierung des Faltungscodes ändert sich die Coderate zu
RT =
τ
,
n(τ + m)
(4.28)
wobei τ die Länge eines Blocks ist, m ist die Anzahl der Tail-Bits und n ist die Länge eines
Codewortes bei einem Eingangsbit. Bei großen Blocklängen kann aber RT ≈ R angenommen
werden [Vog02].
4.2 Faltungsdecodierung
4.2.1 Viterbi-Decodierung
Der Viterbi-Algorithmus (VA) ist dazu geeignet, verschiedene Codierungen zu decodieren, die
auf zeitdiskreten Markov-Prozessen mit definierten Zuständen beruhen und sich durch Trellisdiagramme darstellen lassen. Dabei erzeugt der VA Schätzungen der Eingangssequenzen,
die durch die Markov-Quelle, wie zum Beispiel den Faltungsencoder aus Abbildung 4.1, erzeugt wurden. Der VA macht sogenannte harte Entscheidungen (engl.: hard decisions), d.h. er
entscheidet anhand von Vorzeichen, ob es sich bei dem decodierten Bit um eine 1 oder eine
0, bzw. -1 bei BPSK Modulation, handelt. Trotzdem kann er auch Eingangssignale mit Zuverlässigkeitsinformationen verarbeiten. Hier wird davon ausgegangen, dass der nichtrekursive
Encoder aus Abbildung 4.1 benutzt wird. Die Eingangssequenz ist
c = (c1 , c2 , · · · , ct , · · · , cN ),
(4.29)
wobei t der Zeitindex und τ die Länge der Eingangssequenz ist [VY00]. Aus der Eingangssequenz c wird die codierte Sequenz vom Zeitpunkt 1 bis t erzeugt
vt1 = (v1 , v2 , · · · , vt ),
wobei
38
(4.30)
4 Faltungscodierung
vt = (vt,0 , vt,1 )
(4.31)
ist. Die codierte Sequenz wird ihrerseits durch eine BPSK moduliert, 1 bleibt 1 und 0 wird zu
-1, und es entsteht die Sequenz
xt1 = (x1 , x2 , . . . , xt )
(4.32)
xt = (xt,0 , xt,1 )
(4.33)
mit
und
xt,i = 2vt,i − 1
, i = 0, 1.
(4.34)
Durch die Übertragung über den AWGN-Kanal wird die modulierte Sequenz xt1 gestört und
es wird Rauschen addiert, was zu der Empfangssequenz
rt1 = (r1 , r2 , · · · , rt )
(4.35)
rt = (rt,0 , rt,1 )
(4.36)
führt mit
und
rt,i = xt,i + nt,i
, i = 0, 1 ,
(4.37)
wobei nt,i eine normalverteilte Zufallsvariable1 mit einem Erwartungswert von null und einer
Varianz von σn2 ist. Es wird davon ausgegangen, dass der Decodierungsprozess im Zustand S =
00 zum Zeitpunkt t = 0 startet und im Zustand S = 00 zum Zeitpunkt t = τ endet. Ziel des VA
1 Es
wird im Weiteren die Notation aus [VY00] übernommen, da es die primäre Quelle für die Kanalcodierung war. Deswegen werden auch Zufallsvariablen mit kleinen Buchstaben bezeichnet.
39
4 Faltungscodierung
ist es, eine decodierte Informationssequenz ĉ zu finden, die die Wortfehlerwahrscheinlichkeit
Pw minimiert. Für Pw gilt
Pw = 1 −
Z
r
PC|R (c|r)PR (r)dr,
(4.38)
wobei c die Eingangs- bzw. Informationssequenz und r die Empfangssequenz ist [VY00].
Dabei ist es das Gleiche, die Wortfehlerwahrscheinlichkeit zu minimieren oder den Term
Z
r
PC|R (c|r)PR (r)dr
zu maximieren. Dieser Term entspricht der Wahrscheinlichkeit, dass ein Wort richtig ist. Da
die Wahrscheinlichkeit PR (r) positiv ist und nicht von c abhängt, reicht es aus die A-posterioriWahrscheinlichkeit PC|R (c|r) zu maximieren. Das Verfahren entspricht einer Maximum-APosteriori-(MAP)-Decodierung. Mit dem Gesetz von Bayes ergibt sich
PC|R (c|r) =
PC (c)PR|C (r|c)
.
PR (r)
(4.39)
Da die A-priori-Wahrscheinlichkeiten PC (c) unbekannt sind, wird für alle Sequenzen angenommen, dass sie die gleiche Wahrscheinlichkeit haben. Dadurch entsteht die sogenannte
Maximum-Likelihood-Decodierung (ML), bei der es ausreicht, die Wahrscheinlichkeit
PR|C (r|c)
zu maximieren. Dabei gilt, dass die MAP- und die ML-Decodierung gleich sind, wenn die
A-priori-Wahrscheinlichkeiten PC (c) für das Auftreten der Signale gleich sind. Für die Wahrscheinlichkeit PR|C (r|c), die sich aus den Eigenschaften des Übertragungskanals ergibt, gilt
40
4 Faltungscodierung
PR|C (r|c) = PR|C (rτ1 |cτ1 )
= PR|X (rτ1 |xτ1 )
τ
=
∏ pR|X(rt |xt )
t=1
τ n−1
−
1
e
= ∏∏ √
2πσn
t=1 i=0
(rt,i −xt,i )2
2σn2
,
(4.40)
wobei n die Anzahl der Bits im Symbol beschreibt. Die Umrechnung ist möglich, da zwischen x und c eine eindeutige Abbildung besteht. Um die Rechnung zu vereinfachen, wird der
Logarithmus von PR|C (r|c) genommen, dies ist möglich, da die Logarithmus-Funktion eine
streng monoton steigende Funktion ist und ihr Maximum an der gleichen Stelle hat wie die
ursprüngliche Funktion. Dies führt zu folgender Funktion
τ
ln PR|C (r|c) =
∑ ln pR|X(rt |xt ).
(4.41)
t=1
Wie schon beschrieben, nehmen wir an, dass die Sequenz x über den AWGN-Kanal gesendet
wird. Daraus folgt
τ
n−1
−
1
ln PR|C (r|c) = ∑ ln ∏ √
e
2πσn
t=1 i=0
= −
(rt,i −xt,i )2
2σn2
τ n−1
(rt,i − xt,i )2
nτ
.
ln(2π ) − nτ ln σn − ∑ ∑
2
2σn2
t=1 i=0
(4.42)
Aus (4.42) folgt, dass es zur Maximierung der Funktion ln PR|C (r|c) nötig ist, den Term
τ n−1
∑ ∑ (rt,i − xt,i)2
(4.43)
t=1 i=0
zu minimieren. Bei diesem Term handelt es sich um die euklidische Distanz zwischen dem
Element rt,i von rτ1 und dem Element xt,i von xτ1 . Die euklidische Distanz wird bei der Eingangssequenz mit Zuverlässigkeitsinformationen verwendet. Sind stattdessen vorher harte Entscheidungen getroffen worden, d.h. die Eingangssequenz besteht aus 1 und −1, wird mit der
41
4 Faltungscodierung
Hamming-Distanz gearbeitet. Ist die euklidische Distanz null, sind die beiden Elemente genau
gleich und ln PR|C (r|c) erreicht sein Maximum. Mit der gewonnen Erkenntnis muss nun für
jeden möglichen Übergang bzw. Zweig im Trellisdiagramm die euklidische Distanz berechnet
werden. Aus den einzelnen Distanzen muss der wahrscheinlichste Pfad ermittelt werden, der
dann der decodierten Sequenz ĉ entspricht. Dazu wird nun jedem Zweig im Trellisdiagramm
zum Zeitpunkt t im Pfad x eine Zweigmetrik νtx zugeordnet, die der euklidischen Distanz
zwischen rt,i und xt,i zum Zeitpunkt t entspricht [VY00]:
νtx =
n−1
∑ (rt,i − xt,i)2.
(4.44)
i=0
(x)
Die einzelnen Zweigmetriken addieren sich dann für einen Pfad x zu der Pfadmetrik µt , die
durch
(x)
µt
t
=
=
νt ′
∑
′
(x)
t =1
(x)
(x)
µt−1 + νt
(4.45)
(x)
gegeben ist. Der VA sucht bei der Decodierung den Pfad mit der kleinsten Pfadmetrik µt
im Trellisdiagramm. Dabei beginnt er im Zustand S = 00 zum Zeitpunkt t = 0 und prüft zu
jedem Zeitpunkt an jedem Knoten welcher ankommende Pfad die kleinste Pfadmetrik hat. Der
Pfad mit der kleinsten Pfadmetrik in dem Knoten ist der sogenannte überlebende Pfad, er entspricht der Codesequenz, die zu diesem Zeitpunkt am wahrscheinlichsten gesendet wurde. Der
überlebende Pfad ist der Pfad, der weitergeführt wird. Alle anderen Pfade, die in dem Knoten
ankommen, werden verworfen, da davon ausgegangen wird, dass dies keine Konsequenzen für
die Güte der Decodierung hat. Die endgültige Entscheidung, welche Informationssequenz c
für die Wahrscheinlichste gehalten wird, wird zum Zeitpunkt t = τ getroffen. Der MaximumLikelihood-Pfad x̂ ist der überlebende Pfad zum Zeitpunkt t = τ im letzten Knoten. Anhand
dessen wählt der Decoder die binäre Sequenz ĉ als Schätzung für die Informationssequenz c
aus, die durch harte Entscheidungen ermittelt wurde.
Im Folgenden ist ein Beispiel zu sehen, bei dem die Eingangssequenz c = (11000) gesendet
werden soll. Die daraus resultierende Codesequenz ist v = (1110101100). Nach der Übertragung über einen Kanal ist die Empfangssequenz r = (1100101100). Um die Berechnung
einfacher zu machen, wird hier von binären Werten als Empfangssequenz ausgegangen und
die Hamming-Distanz verwendet. Aus der Empfangssequenz ist zu sehen, dass im zweiten
42
4 Faltungscodierung
Symbol bzw. im dritten Bit der Sequenz ein Fehler aufgetreten ist. Die rote Beschriftung oberund unterhalb eines Knoten soll jeweils die Hamming-Distanz darstellen.
00
00
01
11
10
2
0
11
0
1
Abbildung 4.8: Decodierung zum Zeitpunkt t = 1.
00
00
2
00
11
01
1
11
01
10
0
11
0
1
2
4
10
1
2
Abbildung 4.9: Decodierung zum Zeitpunkt t = 2.
Die decodierte Sequenz ist somit ĉ = (11000). Sie entspricht der Informationssequenz c. Der
Fehler, der während der Übertragung bzw. beim Detektieren der Empfangssequenz auftrat,
wurde durch den VA korrigiert.
Wie bereits angesprochen, ist es nicht nötig, den VA im Zustand S = 00 zum Zeitpunkt t = τ
enden zu lassen. Die Entscheidung kann auch zu einem bestimmten Zeitpunkt t ′ getroffen
werden, wenn die Sequenzlänge sehr groß wird. Für den Zeitpunkt t ′ gilt
t ′ = D + t,
(4.46)
wobei D die sogenannte Entscheidungstiefe (engl.: decision length oder traceback length) ist.
Die Entscheidung zum Zeitpunkt t ′ kann entweder gemacht werden, indem irgendein überlebender Pfad oder der überlebende Pfad mit der kleinsten Pfadmetrik gewählt wird. Der Unterschied ist vernachlässigbar, wenn D groß genug ist. Die Größenordnung von D ist hierbei
ungefähr sechs mal das Gedächtnis des Encoders [VY00]. Dieses Prinzip funktioniert, da eine
43
4 Faltungscodierung
00
00
2
00
11
01
1
11
00
4 01
01
10
0
10
11
0
2
1
1
00
11
11
10
01
3
2
6
1
3
2
10 4
3
3
2
Abbildung 4.10: Decodierung zum Zeitpunkt t = 3.
2
00
01
11
1
11
00
01
10
0
10
10
11
0
1
1
01
1
00
2 01
3
00
11
11
10
10
01
3
2
4
1
3
4
2
3
3
4
4
Abbildung 4.11: Decodierung zum Zeitpunkt t = 4. Nur die überlebenden Pfade zum Zeitpunkt t = 3 werden weitergeführt.
1
2
00
01
11
0
11
0
1
00
01
10
11
1
1
10
10
11
11
2 01
10
1
3
2
3
00
2 01
3
4
00
11
11
10
10
01
1
5
3
4
3
3
3
4
τ
Abbildung 4.12: Decodierung zum Zeitpunkt t = τ . Für terminierten Code wird die Entscheidung nur im Nullzustand getroffen.
44
4 Faltungscodierung
1
00
01
1
11
0
10
10
11
0
11
3
1
5
00
01
10
1
00
11
1
2 01
1
3
2
τ
4
Abbildung 4.13: Decodierung zum Zeitpunkt t = τ . Alle Pfade, die nicht im Nullzustand enden, wurden verworfen.
1
00
01
1
11
10
0
11
0
1
00
1
11
10
10
1
3
2
4
τ
Abbildung 4.14: Decodierung zum Zeitpunkt t = τ . Der überlebende Pfad im Nullzustand bei
t = τ ist der wahrscheinlichste Pfad und somit die decodierte Sequenz ĉ.
45
4 Faltungscodierung
große Wahrscheinlichkeit dafür besteht, dass alle überlebenden Pfade zum Zeitpunkt t ′ von
einem Zweig zum Zeitpunkt t abstammen und somit zum Zeitpunkt t nur noch der korrekte
Pfad existiert. Obwohl bei dem Beispiel in Abbildung 4.13 die Entscheidungstiefe nicht erreicht wird, kann man schon sehen, dass die beiden überlebenden Pfade zum Zeitpunkt τ von
einem Zweig zum Zeitpunkt t = 1 abstammen. Das gleiche Prinzip gilt auch für den Startzu(x)
stand des VA. Wenn der VA in einem unbekannten Zustand startet, kann die Pfadmetrik µt
für alle Zustände gleich null gesetzt werden. Auch hier besteht eine große Wahrscheinlichkeit,
dass sich alle überlebenden Pfade mit dem korrekten Pfad vermischen. D.h., dass sich der VA
ohne zusätzlichen Aufwand selbst synchronisiert.
4.2.2 MAP-Decodierung
Als vereinfachte Übertragungskette wird für den MAP-Algorithmus Abbildung 4.15 angenommen. Wir verwenden digitale Basisbandsignale. Die Daten vt können die Werte null oder
eins annehmen. Der Modulator bildet die Daten vt auf xt ab mit der Vorschrift: xt = 2vt − 1.
Gedächtnisloses Rauschen
r
c
Encoder
v
Modulator
x
+
n
Decoder
ĉ
Abbildung 4.15: Systemmodell aus [VY00].
Der MAP-Algorithmus [VY00]
Der MAP-Algorithmus berechnet im Wesentlichen das Verhältnis Λ(ct ) in Abhängigkeit der
empfangenen Sequenz r, wobei ct das vermeintlich gesendete Informationsbit zum Zeitpunkt
t ist, bedingt auf die empfangene Sequenz r:
Λ(ct ) = ln
Pr{ct = 1|r}
.
Pr{ct = 0|r}
46
(4.47)
4 Faltungscodierung
Hierbei gilt 1 ≤ t ≤ τ , wobei τ die Länge der empfangenen Sequenz bezeichnet. Soll eine
harte Entscheidung getroffen werden, ist
1 für Λ(ct ) ≥ 0
(4.48)
ĉt =
0 sonst.
Die Beträge der Werte des Vektors Λ(ct ) können als Zuverlässigkeitsinformationen von ct
weiterverwendet werden.
Über den ankommenden Datenstrom ist bekannt, dass er durch einen Faltungsencoder entstanden ist, der durch einen zeitdiskreten Markovprozess mit endlicher Anzahl Ms von Zuständen
modelliert werden kann. Ein Markovprozess hat die Eigenschaft, dass der Zustand St des Encoders zum Zeitpunkt t nur abhängt von dem Zustand St−1 zum Zeitpunkt t − 1 und von dem
Informationsbit ct , das den Eingangswert zum Zeitpunkt t beschreibt. Er hängt also nicht von
Zuständen ab, die vor t − 1 liegen. Der Markovprozess des Encoders ist bekannt. Weiterhin ist
die Coderate Rc = k/n bekannt.
Es wird hier der (7, 5)8 -Encoder angenommen, der vier Zustände besitzt. Der Anfangszustand
S0 sei 00. Es soll eine sog. Trellisterminierung vorliegen. Das bedeutet, dass unabhängig von
der Nachricht der Endzustand ebenso Sτ = 00 ist. Das Zustandsdiagramm dieses Encoders ist
in Abbildung 4.16 zu erkennen. Das dazugehörige Trellisdiagramm ist in Abbildung 4.17 dargestellt. Durch diesen Markovprozess sind Übergangswahrscheinlichkeiten festgelegt. Einige
Übergänge sind nicht möglich. Die Wahrscheinlichkeit, dass der Prozess vom Zustand St−1 in
den Zustand St übergeht ist mit
pt (l | l ′ ) = Pr{St = l | St−1 = l ′ }; 0 ≤ l, l ′ ≤ Ms − 1
(4.49)
angegeben, wobei St = l den aktuellen und St−1 = l ′ den vorangegangenen Zustand beschreibt.
Dies ist auch gleichzeitig die A-priori-Wahrscheinlichkeit für den eingehenden Datenstrom.
Der Encoderausgang wird beschrieben durch
qt (xt | l ′ , l) = Pr{xt | St−1 = l ′ , St = l}; 0 ≤ l, l ′ , ≤ Ms − 1,
(4.50)
wobei xt der Vektor ist, der aus den beiden modulierten Ausgangssymbolen des Encoders besteht, die mit dem Eingangssymbol ct korrespondieren. Da zwischen xt und vt eine eindeutige
Abbildung besteht, kann man auch schreiben:
qt (xt | l ′ , l) = Pr{vt | St−1 = l ′ , St = l}; 0 ≤ l, l ′ ≤ Ms − 1.
(4.51)
Für diesen Encoder ist die A-priori-Wahrscheinlichkeit pt (l|l ′ ) entweder 0.5 wenn der Übergang von St−1 = l ′ nach St = l existiert2 , oder 0, wenn der Übergang nicht existiert. qt (xt |l, l ′ )
der Decoder später mit aufdatierten a-priori Werten, so hat pt (l|l ′ ) zwei unterschiedliche Werte,
je einen für einen Übergang, der durch eine 1 erzeugt wurde, und einen für einen Übergang, der durch eine 0
erzeugt wurde.
2 Arbeitet
47
0/
00
4 Faltungscodierung
1/11
00
01
10
1/
1/11
0/01
00
0/
10
11
1/
10
0/01
Abbildung 4.16: Zustandsdiagramm aus [VY00].
0/00
0/00
b
0/00
b
0/00
b
b
1
1/1
1
1/1
1
1/1
1
1/1
S=01
b
b
t=1
t=2
1/10
b
t=3
Abbildung 4.17: Trellisdiagramm aus [VY00].
48
b
01
0/
01
0/
01
0/
S=11
t=0
b
1/
10
0/0
1
b
1/
10
0/0
1
1/
10
b
b
00
0/
00
0/
S=10
b
1/
11
b
1/
11
S=00
1/10
b
t=4
4 Faltungscodierung
ist entweder eins oder null. qt (xt |l, l ′ ) ist gleich eins, wenn der Übergang von l ′ nach l existiert
und xt der dazugehörige Ausgang ist. Für alle anderen Fälle ist qt (xt |l, l ′ ) = 0. qt (xt |l, l ′ ) filtert
die unmöglichen Übergänge aus. pt (l|l ′ ) gewichtet die möglichen Übergänge.
In den Gaußkanal werden die Werte xτ1 gegeben3 . Empfangen werden jedoch die Signale rτ1 .
Der Übergang von xt nach rt über den Gaußkanal ist definiert als:
τ
Pr{rτ1 |xτ1 } = ∏ R(rt |xt ),
(4.52)
t=1
wobei
n−1
R(rt |xt ) = ∏ Pr{rt, j |xt, j }
(4.53)
j=0
und
2
(r +1)
1
− t, j 2
e 2σ ,
Pr{rt, j |xt, j = −1} = √
2πσ
(r −1)2
1
− t, j
Pr{rt, j |xt, j = +1} = √
e 2σ 2 ,
2πσ
(4.54)
(4.55)
wobei σ 2 die Rauschvarianz ist.
Insgesamt ergibt sich
Pr{rτ1 |xτ1 } =
τ n−1
2
(r −x )
1
− t, j t, j
∏ ∏ √2πσ e 2σ 2 .
t=1 j=0
(4.56)
Nehmen wir an, ct ist das Informationsbit, das den Übergang von St−1 nach St bestimmt und
damit auch xt erzeugt. Der Decoder schätzt nun ct als Eingang des Markovprozesses, indem
er rtτ näher untersucht. Es wird also zum einen
Pr{ct = 0|rtτ } =
=
∑ 0 Pr{St−1 = l ′, St = l|rτ1 }
l ′ ,l∈Bt
Pr{St−1 = l ′ , St = l, rτ1 }
∑0
Pr{rτ1 }
′
l ,l∈Bt
3 Hier
werden Vektoren v mit Elementen von a bis z als vza bezeichnet.
49
(4.57)
4 Faltungscodierung
gesucht, wobei Bt0 die Menge der Zustandsübergänge ist, die durch eine 0 erzeugt werden, und
zum anderen wird
Pr{ct = 1|rtτ } =
=
∑ 1 Pr{St−1 = l ′, St = l|rτ1 }
l ′ ,l∈Bt
Pr{St−1 = l ′ , St = l, rτ1 }
∑
Pr{rτ1 }
l ′ ,l∈B1
(4.58)
t
gesucht, wobei Bt1 die Menge der Zustandsübergänge ist, die durch eine 1 erzeugt werden. Zur
Vereinfachung fassen wir den Zähler jeweils als
σt (l ′ , l) = Pr{St−1 = l ′ , St = l, rτ1 }
(4.59)
zusammen. Damit erhalten wir
σt (l ′ , l)
∑ 0 Pr{rτ }
(4.60)
σt (l ′ , l)
∑ Pr{rτ } .
1
l ′ ,l∈B1
(4.61)
Pr{ct = 0|rtτ } =
und
Pr{ct = 1|rtτ } =
l ′ ,l∈Bt
1
t
Für (4.47) können wir nun schreiben
∑l ′ ,l∈Bt1 σt (l ′ , l)
Λ(ct ) = ln
.
∑l ′ ,l∈Bt0 σt (l ′ , l)
(4.62)
σt (l ′ , l) lässt sich nicht direkt bestimmen. Es ist aber in die drei Komponenten α , β und γ
aufteilbar:
σt (l ′ , l) = Pr{St−1 = l ′ , St = l, rτ1 }
τ
, rt , St−1 = l ′ , St = l, rt−1
= Pr{rt+1
1 }
′
t−1
τ
= Pr{rt+1
|rt , St−1 = l ′ , St = l, rt−1
1 }Pr{rt , St−1 = l , St = l, r1 }
τ
|St = l}Pr{rt , St−1 = l ′ , St = l, rt−1
= Pr{rt+1
1 }
= βt (l)Pr{rt , St−1 = l ′ , St = l, rt−1
1 }
′ t−1
= βt (l)Pr{St = l, rt |St−1 = l ′ , rt−1
1 }Pr{St−1 = l , r1 }
′
= Pr{St−1 = l ′ , rt−1
1 }βt (l)Pr{St = l, rt |St−1 = l }
= αt−1 (l ′ )βt (l)
∑
γti (l ′ , l).
i∈(0,1)
50
(4.63)
4 Faltungscodierung
Dabei wurden die Definitionen
αt (l) = Pr{St = l, rt1 }
τ
βt (l) = Pr{rt+1
|St = l}
γti (l ′ , l) = Pr{ct = i, St = l, rt |St−1 = l ′ }; i = 0, 1
(4.64)
(4.65)
(4.66)
benutzt. Diese drei Komponenten sollen nun in eine geeignete Form gebracht werden:
αt (l) = Pr{St = l, rt1 }
=
=
=
=
=
=
s
Pr{St−1 = l ′ , St = l, rt1 }
∑l′=0
Ms −1
Pr{St−1 = l ′ , St = l, rt−1
∑l′=0
1 , rt }
Ms −1
′ t−1
Pr{St−1 = l ′ , rt−1
∑l′=0
1 }Pr{St = l, rt |St−1 = l , r1 }
Ms −1
αt−1 (l ′ )Pr{St = l, rt |St−1 = l ′ }
∑l′=0
Ms −1
αt−1 (l ′ ) ∑i∈(0,1) Pr{St = l, ct = i, rt |St−1 = l ′ }
∑l′=0
Ms −1
αt−1 (l ′ ) ∑i∈(0,1) γti (l ′ , l).
∑l′=0
M −1
(4.67)
Man sieht also, dass αt (l) nur von γt (l, l ′ ) und dem vorhergehenden αt−1 (l ′ ) abhängt. Man
kann daher die Werte für αt (l) der Reihe nach berechnen. Da der Anfangszustand mit S0 = 00
angegeben ist, setzt man α0 (0) = 1 und α0 (l) = 0 für l 6= 0 als Initialwerte. Für βt (l) erhalten
wir
τ
βt (l) = Pr{rt+1
|St = l}
=
=
=
=
=
=
=
=
=
s
∑l′=0
M −1
τ
|St = l}
Pr{St+1 = l ′ , rt+1
τ , S = l}
Pr{St+1 = l ′ , rt+1
t
∑
Pr{St = l}
τ
′
Ms −1 Pr{rt+2 , rt+1 , St+1 = l , St = l}
∑l′=0
Pr{St = l}
τ
′
′
Ms −1 Pr{rt+2 |rt+1 , St+1 = l , St = l}Pr{rt+1 , St+1 = l , St = l}
∑l′=0
Pr{St = l}
′
′
τ
Ms −1 Pr{rt+2 |St+1 = l }Pr{rt+1 , St+1 = l , St = l}
∑l′=0
Pr{St = l}
′
′
Ms −1 βt+1 (l )Pr{rt+1 , St+1 = l |St = l}Pr{St = l}
∑l′=0
Pr{St = l}
Ms −1
l ′ =0
s
βt+1 (l ′ )Pr{rt+1 , St+1 = l ′ |St = l}
∑l′=0
Ms −1
βt+1 (l ′ ) ∑i∈(0,1) Pr{ct+1 = i, rt+1 , St+1 = l ′ |St = l}
∑l′=0
Ms −1
i
βt+1 (l ′ ) ∑i∈(0,1) γt+1
(l, l ′ )
∑l′=0
M −1
51
(4.68)
4 Faltungscodierung
für t = τ − 1, · · · , 1, 0. l ist hier der gesuchte Zustand und l ′ ist der bekannte Zustand. Wie man
i (l, l ′ ) ab. Das hat zur Folge, dass
sieht, hängt βt (l) nun vom nachfolgenden βt+1 (l ′ ) und γt+1
die Werte für βt (l) rückwärts berechnet werden müssen. Die Initialwerte sind βτ (0) = 1 und
βτ (l) = 0 für l 6= 0, wenn eine Trellisterminierung vorliegt, der Endzustand also Sτ = 00 ist.
Liegt keine Trellisterminierung vor, so setzt man βτ (l) = M1s ∀l. Die Werte für γ lassen sich
folgendermaßen berechnen:
γti (l ′ , l) = Pr{ct = i, St = l, rt |St−1 = l ′ }
Pr{rt , ct = i, St = l, St−1 = l ′ }
=
Pr{St−1 = l ′ }
Pr{rt |ct = i, St = l, St−1 = l ′ }Pr{ct = i, St = l, St−1 = l ′ }
=
Pr{St−1 = l ′ }
Pr{rt |xt }Pr{ct = i, St = l, St−1 = l ′ }
=
Pr{St−1 = l ′ }
Pr{rt |xt }Pr{ct = i|St = l, St−1 = l ′ }Pr{St = l, St−1 = l ′ }
=
Pr{St−1 = l ′ }
= Pr{rt |xt }Pr{xt |St = l, St−1 = l ′ }Pr{St = l|St−1 = l ′ }
= pt (l|l ′ )qt (xt |l, l ′ )R(rt |xt ).
(4.69)
R(rt |xt ) definiert hier den Restterm (vgl. (4.53)). pt (l,′ l) und qt (x|l, l ′ ) filtern wie beschrieben
√
die unmöglichen Ereignisse aus. Normiert man R(rt |xt ) durch Multiplizieren von ( 2πσ )n ,
so kann γti (l ′ , l) ausgedrückt werden als:

n−1
∑ j=0 (rt, j −xt,i j (l))2

für (l, l ′ ∈ Bti )
pt (i) exp −
2σ 2
(4.70)
γti (l ′ , l) =

0
sonst,
wobei pt (i) die A-priori-Wahrscheinlichkeit für ct = i und xt,i j (l) der Encoderausgang ist, der
dem Übergang St−1 nach St zugeordnet wird. xt,i j (l) kann nur die Werte −1 oder 1 annehmen.
Damit wird nun Λ(ct ) berechnet:
Λ(ct ) = ln
Ms −1
αt−1 (l ′ )γt1 (l ′ , l)βt (l)
∑l=0
Ms −1
αt−1 (l ′ )γt0 (l ′ , l)βt (l)
∑l=0
.
(4.71)
Als harte Entscheidung (engl.: hard decision) wird das Vorzeichen von Λ(ct ) gewertet (vgl.
(4.48)), während der Betrag von Λ(ct ) die Zuverlässigkeit (engl.: soft information) enthält.
Da Λ(ct ) nicht unabhängig vom systematischen Anteil rt,0 ist, kann es nicht als extrinsische
Information weitergegeben werden.
52
4 Faltungscodierung
Implementierungsbetrachtungen zum MAP-Algorithmus
Eine effiziente Implementierung des MAP-Algorithmus ist möglich, wenn man die Berechnungen auf logarithmischer Ebene durchführt. Es werden also die Logarithmen von αt (l),
βt (l) und γti (l ′ , l) bezeichnet als α t (l), β t (l) und γ ti (l ′ , l). Dann werden die Multiplikationen
zu Summen in der logarithmischen Ebene. Damit ist dann
γ ti (l ′ , l) = ln γti (l ′ , l)
und
α t (l) = ln
Ms −1
∑
∑
′
l =0 i∈(0,1)
exp α t−1 (l ′ ) + γ ti (l ′ , l) ,
wobei hier als Startwert α 0 (0) = 0 und α 0 (l) = −∞ gilt. Ebenso ist
β t (l) = ln
Ms −1
∑ ∑
l ′ =0 i∈(0,1)
′
i
′
exp β t+1 (l ) + γ t (l, l ) .
Nutzt man (2.40) für die Berechnung der Summe im Exponenten, so spricht man vom LogMAP-Algorithmus. Die Leistungsfähigkeit des Algorithmus ist dabei genauso gut wie beim
MAP-Algorithmus. Der Algorithmus lässt sich noch weiter vereinfachen, wenn man in (2.40)
den Korrekturterm weglässt. Man spricht dann vom Max-Log-MAP-Algorithmus. Die Leistungsfähigkeit wird durch diese Näherung beeinträchtigt und ist vergleichbar mit dem SoftOutput-Viterbi-Algorithmus [VY00].
53
5 Turbocodierung
Turbocodes wurden erstmals im Jahr 1993 durch Berrou, Glavieux und Thitimajshima in
[BGT93] vorgestellt. Sie bestehen aus der parallelen Verkettung von rekursiven systematischen Faltungscodes und erreichen bei relativ geringem Decodieraufwand Bitfehlerraten nahe
der Shannongrenze. Dabei erhalten nicht alle Encoder die gleiche Eingangssequenz. Der erste Encoder bekommt die unveränderte Eingangssequenz und die restlichen Encoder bekommen eine durch einen Interleaver verwürfelte Sequenz. Der geringe Decodieraufwand entsteht
durch die ebenfalls separate Decodierung der einzelnen Teilcodes. Außerdem werden Turbocodes iterativ decodiert, wobei beide Decoder noch Informationen über die zu decodierenden
Bits austauschen und so voneinander profitieren. Von dem iterativen Decodierprozess stammt
auch der Name „Turbo“. Bei einem Turbo-Motor werden die Abgase erneut in den Motor
geleitet, um sie zu Leistungssteigerung zu verwenden. Genauso werden bei der Turbodecodierung Informationen des ersten Decoders an den zweiten Decoder und umgekehrt weitergeleitet, um die Decodierung zu verbessern. Die Herleitungen wurden größtenteils [VY00]
entnommen.
5.1 Turboencoder
Wie bereits erwähnt, besteht ein Turboencoder aus der parallelen Verkettung zweier rekursiv
systmatischer Faltungsencoder. Ein Turboencoder mit der Coderate R = 1/3 und mit zwei
identischen (7, 5)8 RSC-Encodern ist in Abbildung 5.1 zu sehen.
Dabei lassen sich die Generatormatrizen der RSC-Encoder darstellen als
G(D) = 1
g1 (D)
,
g0 (D)
(5.1)
wie bereits in Abschnitt 4.1 beschrieben. Der erste Encoder codiert die Informationssequenz c
mit einer Länge von τ Bits. Er hat zwei Ausgänge, wobei der erste Ausgang die Sequenz v0 mit
den systematische Bits ausgibt und der zweite Ausgang die codierte Sequenz v1 ausgibt. Der
54
5 Turbocodierung
v0
c
+
+
v1
Interleaver
c̃
+
+
v2
Abbildung 5.1: Turboencoder mit Coderate R = 1/3.
zweite Encoder dagegen bekommt eine durch einen Interleaver verwürfelte Sequenz c̃ als Eingangssequenz. Er hat nur einen Ausgang, an dem die codierte Sequenz v2 der verwürfelten Bits
c̃ ausgegeben wird. Die systematischen Bits des zweiten Encoders werden nicht übertragen,
da sie sich im Decoder aus der systematischen Sequenz des ersten Encoders wiederherstellen lassen. Dazu muss am Decoder die Permutation der verwürfelten Bits bekannt sein. Dies
wird dadurch realisiert, dass bei der Implementierung die passende Interleaver-Deinterleaver
Kombination in Encoder und Decoder verbaut bzw. programmiert wird. Die drei einzelnen
Sequenzen v0 , v1 und v2 werden durch einen Multiplexer zu einer Ausgangssequenz v zusammengefasst, wobei gilt
v = (v1,0 , v1,1 , v1,2 , v2,0 , v2,1 , v2,2 , · · · , vτ ,0 , vτ ,1 , vτ ,2 ).
(5.2)
Üblicherweise werden für die Teilcodes Coderaten von R = 1/2 verwendet. Für die Einflußlänge gilt meist 3 ≤ k ≤ 5. Im Allgemeinen kann die Coderate durch Punktierung noch erhöht
werden, worauf in dieser Arbeit aber verzichtet wurde. Wie schon in Abschnitt 4.1 beschrieben, ist es notwendig die Faltungsencoder zu terminieren, um die Decodierung zu vereinfachen, indem der Encoder dazu gebracht wird, im Nullzustand zu enden. Außerdem führt
die Terminierung der Blöcke dazu, dass der nachfolgende Block auch wieder im Nullzustand
starten kann. Bei einem Turboencoder gibt es mehrere Arten der Terminierung. Entweder
kann keiner der beiden Teilcodes terminiert werden, es kann nur einer der beiden Teilcodes
55
5 Turbocodierung
terminiert werden oder es können beide Teilcodes terminiert werden. Beide Teilcodes zu terminieren ist ein nichttrivialer Vorgang, da aufgrund des Interleavers nicht beide Teilcodes mit
der gleichen Sequenz von Tail-Bits terminiert werden können. Da beide Teilcodes mit RSCEncodern codiert werden, ist es notwendig Informationen über den letzten Zustand zu haben,
um die entsprechenden Tail-Bits auswählen zu können. Die entsprechenden Tail-Bits würden
dann aber vom Interleaver in eine andere Reihenfolge gebracht werden, was dazu führen kann,
dass der zweite Teilcode mit den Tail-Bits des ersten Teilcodes nicht terminiert wird. Aus diesem Grund ist es einfacher, nur den ersten Teilcode zu terminieren und den zweiten Teilcode
in einem undefinierten Zustand enden zu lassen. Die Nachteile, die dadurch entstehen sind
vernachlässigbar, wenn die Interleavergröße groß genug ist [VY00].
Interleaver
Ein Interleaver bringt eine Datensequenz c = (c1 , c2 , c3 , c4 , c5 , c6 , c7 , c8 , c9 ) in eine andere Reihenfolge, d.h. er verwürfelt die Bits. Die einfachste Form eines Interleavers ist der sogenannte
Blockinterleaver. Beim Blockinterleaver wird die Sequenz c Reihe für Reihe in eine hm x nidimensionale Matrix M geschrieben:


c1 c2 c3
M = c4 c5 c6 
c7 c8 c9
(5.3)
Anschließend wird die Sequenz Spalte für Spalte wieder ausgelesen. Daraus entsteht die verwürfelte Sequenz
c̃ = (c1 , c4 , c7 , c2 , c5 , c8 , c3 , c6 , c9 ).
(5.4)
Zwar ist ein Blockinterleaver einfach zu implementieren, allerdings hat er Schwächen bei
manchen quadratischen oder rechteckigen Eingangssequenzen. Enthält die Eingangssequenz
zum Beispiel eine quadratische Sequenz mit dem Gewicht vier
c = (1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1),
sieht der Inhalt des Blockinterleavers folgendermaßen aus
56
5 Turbocodierung

1
0
M=
0
1
0
0
0
0
0
0
0
0

1
0
.
0
1
(5.5)
Daraus ergibt sich die verwürfelte Sequenz c̃ = (1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1), die identisch mit der Eingangssequenz c des Blockinterleavers ist und somit nicht den gewünschten
Effekt erzielt.
Aus diesem Grund wurde in dieser Arbeit ein sogenannter Randominterleaver verwendet, der
in der verwendeten Simulationssoftware M ATLAB® implementiert ist. Bei einem Randominterleaver wird vor der Verwürfelung ein Vektor P mit einer zufälligen Permutation der Eingangssequenz von c erzeugt. Zum Beispiel wird der folgende Vektor P erzeugt:
P = (6, 3, 1, 5, 9, 4, 8, 2, 7).
(5.6)
Daraus folgt für die verwürfelte Sequenz
c̃ = (c̃1 , c̃2 , c̃3 , c̃4 , c̃5 , c̃6 , c̃7 , c̃8 , c̃9 )
= (c6 , c3 , c1 , c5 , c9 , c4 , c8 , c2 , c7 ).
(5.7)
Die Hauptaufgabe des Interleavers ist es, zu verhindern, dass an beiden RSC-Encodern Codesequenzen mit niedrigem Gewicht auftreten. Dies hätte zur Folge, dass die codierte Sequenz
v ebenfalls ein niedriges Gewicht hat, was auf keinen Fall erwünscht ist, denn je größer das
Gewicht der verschiedenen Codeworte, desto besser sind die Codeworte zu unterscheiden.
Weiterhin soll der Interleaver aus Faltungscodes mit kleinem Gedächtnis lange Blockcodes
erstellen, um den Gewinn, der durch die Codierung entsteht, zu erhöhen [VY00]. Außerdem
soll der Interleaver die Eingangssequenzen dekorrelieren, damit Fehler die bei der Decodierung mit dem ersten Encoder nicht korrigiert werden konnten, bei der Decodierung mit dem
zweiten Decoder korrigiert werden.
Gewichtsbetrachtung
Die Einführung des Interleavers beeinflusst nicht die Linearität des Turbocodes [Vog02]. Für
lineare Codes kann die Gewichtsverteilung herangezogen werden. Das Gesamtgewicht d =
57
5 Turbocodierung
w + z1 + z2 eines Turbocodes setzt sich aus dem Gewicht w der Eingangssequenz und den
beiden Gewichten z1 und z2 der beiden Ausgangssequenzen der Teilcodes zusammen. Ziel
der Codierung ist es, ein hohes Gewicht der Ausgangssequenz zu erzielen, da sich Sequenzen mit hohem Gewicht besser unterscheiden lassen. Daraus folgt, dass geringe Gewichte
der beiden Ausgangssequenzen der Teilcodes vermieden werden sollten. Dies ist der Grund,
warum ein Interleaver vor dem zweiten Encoder eingefügt wird. Es soll dadurch ein geringes
Eingangsgewicht am ersten Encoder durch ein höheres Eingangsgewicht am zweiten Encoder
ausgeglichen werden. Allerdings funktioniert dies nicht mit dem nichtsystematischen Encoder aus Abbildung 4.1, da er eine endliche Impulsantwort hat. Dies beruht allerdings nicht
darauf, dass er nichtsystematisch ist, sondern darauf, dass er außerdem noch nichtrekursiv ist.
Für eine Eingangssequenz mit dem Gewicht eins produziert der nichtsystematische Encoder
eine Ausgangssequenz mit einem Gewicht von eins. Dies kann aber nicht durch den Einsatz
des Interleavers ausgeglichen werden, da die einzelne Eins in der Eingangssequenz nach der
Verwürfelung nur an einer anderen Stelle stehen würde und somit der zweite Encoder ebenfalls eine Ausgangssequenz mit dem Gewicht eins erzeugt. Verwendet man stattdessen einen
rekursiven Encoder, wie den RSC-Encoder aus Abbildung 4.4, verbessert sich die Situation.
Der RSC-Encoder hat eine unendliche Impulsantwort, was dazu führt, dass er für eine Eingangssequenz mit dem Gewicht eins eine Ausgangssequenz mit einem unendlichen bzw. sehr
großen Gewicht erzeugt. Da mit begrenzten Blocklängen gearbeitet wird, kann der Encoder
keine Ausgangssequenzen mit unendlichem Gewicht erzeugen. Der RSC-Encoder erzeugt erst
ab einem Eingangsgewicht von zwei endliche Impulsantworten. In (5.8) bis (5.12) sind einige
Beispiele für die Gewichte der Encoder abgebildet, die kritisch im Bezug auf ihr Eingangsgewicht sind, da sie Ausgangssequenzen mit ebenfalls geringem Gewicht erzeugen können.
Dabei ist c die Eingangssequenz des Encoders und v die Ausgangssequenz.
Nichtsystematischer Encoder - minimales Gewicht:
c = [10000000]
Gewicht 1
v = [1110110000000000]
Gewicht 5 (FIR)
(5.8)
RSC-Encoder - Gewicht 1:
c = [10000000]
Gewicht 1
v = [1101010001010001]
Gewicht 7 (IIR)
RSC-Encoder - Gewicht 2:
58
(5.9)
5 Turbocodierung
c = [10010000]
Gewicht 2
v = [1101011100000000]
Gewicht 6 (FIR)
(5.10)
RSC-Encoder - Gewicht 3:
c = [11100000]
Gewicht 3
v = [1110110000000000]
Gewicht 5 (FIR)
(5.11)
RSC-Encoder - Gewicht 2 (verwürfelt):
c = [10000010]
Gewicht 2
v = [1101010001011100]
Gewicht 8 (FIR)
(5.12)
An dem Beispiel in (5.12) sieht man, dass bei der kritischen Eingangssequenz mit einem
Gewicht von zwei am RSC-Encoder durch das Verwürfeln das Ergebnis verbessert werden
kann. Durch den Interleaver wird die Eingangssequenz gespreizt, d.h. der Abstand zwischen
den beiden Einsen wird vergrößert, und es entsteht eine Ausgangssequenz mit einem größeren
Gewicht als bei dem ersten Encoder in (5.10). Dadurch ergibt sich eine Ausgangssequenz des
gesamten Turbocodes mit dem Gewicht d = 2 + 6 + 8 = 16. Weiterhin ist aus den Beispielen
zu erkennen, dass beide Encoder die kleinste minimale Distanz dfree = 5 haben, wie schon
im Abschnitt 4.1 über die Faltungscodierung gezeigt wurde. Allerdings wird dfree bei dem
nichtsystematischen Encoder von einer Eingangssequenz mit einem Gewicht von eins erzeugt
und bei dem RSC-Encoder von einer Eingangssequenz mit einem Gewicht von drei. Je größer
das Gewicht der Eingangssequenz wird, desto besser wird das Gewicht der Ausgangssequenz
v.
Ein wichtiges Maß für Turbocodes ist neben der minimalen freien Distanz dfree der Teilcodes
die sogenannte effektive freie Distanz dfree,eff für die gilt
dfree,eff = 2 + 2 zmin ,
(5.13)
wobei zmin das niedrigste Gewicht der Ausgangssequenz eines Teilcodes v1 bzw. v2 ist, das
von einem Codewort mit einem Gewicht von 2 erzeugt wird [VY00]. Im Fall der beiden RSCEncoder, die Bestandteil des Turboencoders sind, beträgt zmin = 4. Dies ist auch im Beispiel
59
5 Turbocodierung
(5.10) zu sehen, wo das Gesamtgewicht der Ausgangssequenz eines RSC-Encoders sechs beträgt. Zieht man davon das Gewicht der systematischen Bits ab, welches ja laut Definition
zwei beträgt, erhält man für zmin das Gewicht vier. Daraus ergibt sich für die effektive freie
Distanz des gesamten Turbocodes dfree,eff = 2 + 2 · 4 = 10.
Die Leistungsfähigkeit von Turbocodes hängt im Wesentlichen von drei Faktoren ab. Zum
einen von der Art und Größe des Interleavers, zum anderen von der effektiven freien Distanz
und zuletzt von der Verteilung der Codeworte mit niedrigem und mittlerem Gewicht. Es wurde
in dieser Arbeit auf genauere Betrachtung der Leistungsfähigkeit von Turbocodes verzichtet,
da der Fokus der Arbeit nicht auf der Suche nach einem besonders leistungsfähigen Turbocode
lag. In [VY00] wird ausführlich auf die Abhängigkeit von Distanzspektren bzw. Gewichtsverteilungen und die Art bzw. Größe von Interleavern bei Turbocodierung eingegangen, wonach
sich folgende Hauptaussagen zusammenfassen lassen:
• Die Leistungsfähigkeit von Turbocodes hängt stark von der Interleavergröße τ ab. Eine
τ -fache Erhöhung der Interleavergröße reduziert die Bitfehlerrate um den Faktor τ .
• Es wird gezeigt, dass der Random-Interleaver nicht die beste Wahl für den Interleaver in
der Turbocodierung ist. Es lassen sich bessere Ergebnisse mit sogenannten S-RandomInterleavern und Code-Matched-Interleavern erzielen.
• Soll der Turbocode im Bereich hoher SNR-Werte eingesetzt werden, ist es notwendig
die effektive freie Distanz des Turbocodes zu maximieren, da sie in diesem Bereich der
ausschlaggebende Faktor ist.
• Im Bereich niedriger SNR-Werte kommt es dagegen darauf an, einen Turbocode zu
verwenden, der möglichst wenige Codeworte mit niedrigem bzw. mittlerem Gewicht
besitzt.
Die Abhängigkeit von der Interleavergröße ist auch im Abschnitt 7 zu sehen, wo eine Simulation mit verschiedenen Blocklängen erfolgt. Da in dieser Arbeit die Länge eines Blockes auch
die Größe des Interleavers bestimmt, kann man anhand dieser Simulation auch die Abhängigkeit der Leistungsfähigkeit eines Turbocodes von der Interleavergröße ableiten.
5.2 Turbodecoder
Das Prinzip der Turbodecodierung beruht auf zwei Decodierern, die sogenannte extrinsische
Werte austauschen. In Abbildung 5.2 erkennt man den schematischen Aufbau eines Turbodecoders mit zwei MAP-Decodern. Der ankommende Datenstrom r wird geteilt in die drei
Datenströme r0 , r1 und r2 . Jeder Decoder erhält für jedes codierte Bit ct zwei Werte, den
systematischen Wert r0 bzw. e
r0 und den Paritätswert r1 bzw. r2 . Daraus generiert der erste
60
5 Turbocodierung
Decoder wie oben beschrieben die Zuverlässigkeitsinformationen Λ1 (ct ). Im Folgenden werden die A-priori-Wahrscheinlichkeiten des ersten Decoders mit pt1 (1) und pt1 (0) bezeichnet
und die des zweiten Decoders mit pt2 (1) und pt2 (0). Es ist
Λ1 (ct ) = ln
= ln
Ms −1
αt−1 (l ′ )pt1 (1) exp
∑l=0
Ms −1
αt−1 (l ′ )pt1 (0) exp
∑l=0
pt1 (1)
pt1 (0)
Ms −1
αt−1 (l ′ ) exp
∑l=0
+ ln
Ms −1
αt−1 (l ′ ) exp
∑l=0
∑n−1 (rt, j −x1 (l))2
− j=0 2σ 2 t, j
∑n−1 (rt, j −x0 (l))2
− j=0 2σ 2 t, j
βt (l)
(5.14)
βt (l)
1 (l))2 + n−1 (r −x1 (l))2
(rt,0 −xt,0
∑ j=1 t, j t, j
−
2σ 2
0 (l))2 + n−1 (r −x0 (l))2
(rt,0 −xt,0
∑ j=1 t, j t, j
−
2σ 2
βt (l)
.
(5.15)
βt (l)
Die systematischen Bits r0 sind unabhängig von den vorherigen Zuständen l ′ . Daher können
wir diese aus der Summe herausnehmen und zusammenfassen:
1 )2
(rt,0 −xt,0
exp − 2σ 2
Λrt,0 = ln
(5.16)
0 )2
(rt,0 −xt,0
exp − 2σ 2
=
0 )2
(rt,0 − xt,0
2σ 2
−
1 )2
(rt,0 − xt,0
2σ 2
.
(5.17)
1 = a und x0 = −a ergibt sich daraus
Für xt,0
t,0
Λrt,0 =
4a
2a
rt,0 = 2 rt,0 .
2
2σ
σ
(5.18)
Den Faktor
2a
= Λc
(5.19)
σ2
bezeichnen wir als Kanalzuverlässigkeit (engl.: channel reliability factor). Für a=1 ergibt sich
also
2
p1 (1)
+ 2 rt,0 + Λ1e (ct ),
(5.20)
Λ1 (ct ) = ln t1
pt (0) σ
wobei
∑n−1 (rt, j −x1 (l))2
Ms −1
αt−1 (l ′ ) exp − j=1 2σ 2 t, j
βt (l)
∑l=0
Λ1e (ct ) = ln
∑n−1 (rt, j −x0 (l))2
Ms −1
αt−1 (l ′ ) exp − j=1 2σ 2 t, j
βt (l)
∑l=0
61
(5.21)
5 Turbocodierung
extrinsische Information genannt wird. Sie ist unabhängig von den systematischen Bits rt,0 .
Die extrinsische Information Λ1e (ct ) kann nun aus Λ1 (ct ) gemäß
(r)
2
e (r−1) (ct )
rt,0 − Λ
2e
2
σ
(r)
Λ1e (ct ) = Λ1 (ct ) −
(5.22)
e (r−1) (ct ) ist die extrinsische
berechnet werden, wobei (r) die laufende Iteration bezeichnet. Λ
2e
Information des zweiten MAP-Decoders der vorhergehenden Iteration. Die Schreibweise e
z
indiziert hier eine Größe z, die auf Daten mit Deinterleaving beruht. In der ersten Iteration ist
e (r−1) (ct ) = 0 ∀t. Die so gewonnene extrinsische Information kann nun als Schätzung für das
Λ
2e
A-priori-Wahrscheinlichkeitsverhältnis für den zweiten Decoder verwendet werden:
2
Mit pt2 (1) = 1 − pt2 (0) ergibt sich
e 1e (ct ) = ln pt (1) .
Λ
pt2 (0)
pt2 (1) =
und
eΛ1e (ct )
e
1 + eΛe 1e (ct )
(5.23)
(5.24)
1
pt2 (0) =
.
(5.25)
1 + eΛe 1e (ct )
Dadurch wird für den zweiten Decoder ein A-posteriori-Wahrscheinlichkeitsverhältnis für jedes Bit angegeben, das im Decoder wie das A-priori-Wahrscheinlichkeitsverhältnis behandelt
wird. Dieses A-posteriori-Wahrscheinlichkeitsverhältnis wird durch mehrere Iterationen verbessert. Für den zweiten Decoder gilt entsprechend
(r)
(r)
Λ2e (ct ) = Λ2 (ct ) −
2
e (r) (ct ).
e
rt,0 − Λ
1e
2
σ
(5.26)
wobei hier die Schreibweise e
z eine Größe z indiziert, die auf Daten mit Interleaving beruht.
62
5 Turbocodierung
Deinterleaver
r0
MAP
b
Λ1e
Interleaver
Decoder 1
r1
Λ2e
r̃0
MAP
Interleaver
Decoder 2
r2
Λ2
Deinterleaver
Abbildung 5.2: Schematische Darstellung eines Turbodecoders aus [VY00].
63
6 Kanalschätzung
Wie bereits aus den vorherigen Kapiteln bekannt ist, müssen zur Decodierung mit dem LogMAP-Algorithmus, Werte für die Schwundamplitude A und die Rauschvarianz σn2 am Decoder
bekannt sein. Aus diesem Grund müssen geeignete Verfahren gefunden werden, diese Werte
zu schätzen. In dieser Arbeit wird davon ausgegangen, dass das codierte und BPSK-modulierte
Signal X(t) durch den Kanal folgendermaßen beeinflusst wird:
R(t) = AX(t) + N(t).
(6.1)
Das Signal X(t) wird mit der Schwundamplitude A multipliziert und es wird Rauschen hinzuaddiert, wodurch das Empfangssignal R(t) entsteht. Dabei ist N(t) eine normalverteilte Zufallsvariable mit einem Erwartungswert E {N(t)} = 0 und der Rauschvarianz σn2 . Im Weiteren wird von zeitdiskreten Werten ausgegangen, für die gilt R(iT ) = Ri , X(iT ) = Xi und
N(iT ) = Ni . Die einzelnen Realisierungen ni des Rauschprozesses Ni werden als statistisch unabhängig und identisch verteilt angenommen. Außerdem kann angenommen werden, dass Ri
ebenfalls eine normalverteilte Zufallsvariable ist, für die gilt Ri ∼ N (AXi ; σn2 ). Die Schwundamplitude A ist eine komplexe normalverteilte Zufallsvariable, deren Betrag rayleighverteilt
und deren Phase gleichverteilt ist. Es wird von kohärenter Detektion ausgegangen, weswegen die Phase in der weiteren Betrachtung keine Rolle mehr spielt. Weiterhin wird davon
ausgegangen, dass die Schwundamplitude über einen Block der Länge τ konstant bleibt. Die
Blocklänge τ bezieht sich auf die Eingangsbits des Turboencoders. Die Amplitude wird für
alle Ausgangsbits des Encoders konstant angenommen. Im Weiteren wird die Variable τs als
Anzahl der zur Schätzung verwendeten Beobachtungen eingesetzt. Die Anzahl der genutzten
Beobachtungen kann je nach Schätzalgorithmus variieren.
64
6 Kanalschätzung
6.1 Schätzung durch Betragsmittelwertbildung
Durch die Verwendung der BPSK-Modulierung ergibt sich, dass es für xi 1 zwei mögliche
Normalverteilungen gibt, die den Erwartungswert E {R} = a bzw. E {R} = −a haben und
additiv überlagert sind:
1
N (a; σn2 ) + N (−a; σn2 )
2
1
1
(ri − axi )2
(ri + axi )2
1
√
=
+√
.
exp −
exp −
2
2σn2
2σn2
2πσn
2πσn
pR (ri ) =
(6.2)
Die resultierende Dichtefunktion ist in Abbildung 6.1 zu sehen. Das Aussehen der Dichtefunktion hängt dabei vom Erwartungswert a und der Varianz σn2 ab.
pR (ri )
ri
Abbildung 6.1: Dichtefunktion zweier überlagerter Gaußverteilungen.
Die Abhängigkeit vom Erwartungswert a bei festem Wert für die Varianz σn2 = 1 ist in Abbildung 6.2 zu sehen.
Je kleiner der Erwartungswert a wird, desto schwieriger wird es, das Maximum der Funktion
und damit den Erwartungswert zu bestimmen. Durch die Überlagerung der beiden Normalverteilungen ist es nicht möglich, die benötigten Parameter a und σn2 auf einfache Art zu schätzen.
Würde man die gesendeten Symbole xi kennen, könnte man die Symbole der richtigen Verteilung zuordnen und die Schätzung mit nur einer Normalverteilung durchführen. Bei bekannten
Werten für xi ergibt sich
1 Im
Weiteren werden die Zufallsvariablen mit kleinen Buchstaben fortgeführt, um die Notation den vorherigen Kapiteln anzupassen.
65
6 Kanalschätzung
Abbildung 6.2: Abhängigkeit der Dichtefunktion in 6.2 vom Parameter a.
r̃i , ri xi = a + xi ni
(6.3)
[Dah98]. Daraus folgt für die Dichtefunktion von r̃i
1
(r̃i − a)2
pR̃ (r̃i ) = √
.
exp −
2σn2
2πσn
(6.4)
Die Schätzung für den Erwartungswert E R̃ könnte nun durch die Bildung des Mittelwerts
ă über die Realisierungen bestimmt werden:
1 τs −1
ă =
∑ r̃i.
τ s i=0
(6.5)
Außerdem könnte die Varianz σn2 = E (R̃ − E R̃ )2 durch Berechnung der Streuung σ̆n2
über die Realisierungen geschätzt werden:
66
6 Kanalschätzung
σ̆n2 =
1 τs −1
∑ (r̃i − ă)2
τs − 1 i=0
(6.6)
[Kro96]. Es wird hier nicht durch τs , sondern durch τs − 1 geteilt, um die Schätzung der Varianz erwartungstreu zu machen [Roh06]. Allerdings ist der Unterschied bei hinreichend großer
Anzahl von Beobachtungen vernachlässigbar. Bei unbekannten Werten für xi setzt man dagegen den Betrag der Beobachtungen ři , x̂i ri = ri sign(ri ) = |ri |, [Dah98], in (6.2) was zu
folgender Dichtefunktion führt:
u(ři )
u(ři )
(ři − a)2
(−ři − a)2
pŘ (ři ) = √
+√
exp −
exp −
2σn2
2σn2
2πσn
2πσn
!
u(ři ) 1
(ři + (−1)ν a)2
= √
.
∑ exp −
2σn2
2πσn ν =0
(6.7)
Hierbei ist u(ři ) eine Sprungfunktion oder Heaviside-Funktion, die dazu führt, dass die Dichtefunktion nur noch im positiven Bereich von null bis unendlich betrachtet wird. Das bedeutet,
dass die Dichtefunktion aus (6.2) aus dem Anteil des Terms mit dem positiven Erwartungswert
a von null bis unendlich und dem Anteil des Terms mit dem negativen Erwartungswert −a von
null bis unendlich besteht. Anschaulich heißt das, dass der schwarze Anteil der Dichtefunktion in Abbildung 6.3 in den positiven Bereich gespiegelt und zur resultierenden Funktion
hinzuaddiert wird [Dah98].
pR (r)
√ 1
2πσn
0
a
r
Abbildung 6.3: Dichtefunktion einer Gaußverteilung aus [Dah98].
67
6 Kanalschätzung
Daraus ergibt sich, dass der Erwartungswert E Ř = ǎ größer ist, als der eigentliche Erwartungswert a. Für die Schätzung des Erwartungswertes a bei unbekannten Symbolen xi ergibt
sich aus (6.7)
1 τs −1
â =
∑ ři.
τs i=0
(6.8)
Der Mittelwert â ist aber ebenso, wie der Erwartungswert ǎ, größer als der wirkliche Erwartungswert a. Für das zweite Moment der Gaußverteilung gilt ebenso wie für die Verteilung bei
unbekannten Werten von xi aus (6.7)
E R2 = E Ř2 = σn2 + a2
(6.9)
[PP02]. Daraus folgt, dass auch bei unbekannten Symbolen xi (6.6) verwendet werden kann
und sich zu
σ̂n2
1 τs −1
(ři − â)2
=
∑
τs − 1 i=0
(6.10)
ergibt. Man sieht aber auch, dass die Streuung σ̂n2 , die als Schätzwert für die Varianz σn2
verwendet wird, kleiner als die wirkliche Varianz σn2 ist, da nach (6.6) der überschätzte Wert
â vom zweiten Moment der Verteilung abgezogen wird.
Um den durch die Betragsbildung in (6.8) zur Schätzung des Erwartungwertes von r gemachten Fehler zu korrigieren, wird der Erwartungswert
Z
E Ř =
∞
ři pŘ (ři ) dři
(ři − a)2
(−ři − a)2
u(ři )
u(ři )
exp −
exp −
+√
dři
=
ři √
2σn2
2σn2
−∞
2πσn
2πσn
Z ∞
Z ∞
ři
(ři − a)2
(−ři − a)2
ři
√
√
dři +
dři
exp −
exp −
=
2σn2
2σn2
0
0
2πσn
2πσn
r
a2
2
a
σn exp − 2 + a erf √
=
(6.11)
π
2σn
2σn
−∞
Z ∞
68
6 Kanalschätzung
analytisch berechnet [Dah98]. Die Fehlerfunktion (engl.: error function) ist definiert als
2
erf(x) = √
π
Z x
0
2
e−t dt
(6.12)
[Pro01]. Anhand des analytisch errechneten Erwartungswertes soll nun der mit (6.8) geschätzte Wert â korrigiert bzw. verbessert werden. Um dies tun zu können, müsste für einen geschätzten Wert â anhand (6.11) der zugehörige „wahre“ Wert a ermittelt werden. Dies ist aber
nicht möglich, da (6.11) aufgrund ihrer nichtlinearen Struktur nicht analytisch invertierbar ist
[Dah98]. Um trotzdem einen verbesserten Wert für die Schätzung zu bekommen, wird (6.11)
für verschiedene „wahre“ Werte a bei gegebenem σn ausgerechnet, so dass eine Tabelle entsteht, aus der man anhand des Schätzwertes â den zugehörigen korrigierten Wert a auslesen
kann. Wählt man für a ∈ [0.01, 4] Werte mit einem Abstand von 0.01, entsteht eine Tabelle mit
400 Werten. In Abbildung 6.4 ist (6.11) für verschiedene σn und a ∈ [0.01, 4] dargestellt. Die
gestrichelte rote Linie stellt den Idealfall dar, in dem die Schätzung genau dem wahren Wert
entspricht. Für diese Arbeit ist die Kurve für σn = 1 relevant, da der benutzte Kanal auf eine
Varianz von σn2 = 1, siehe Abschnitt 3.2, normiert ist. Man sieht deutlich, dass die Schätzung
ab einem Wert von ca. â = 2 nahezu dem „wahren“ Wert entspricht.
4
σ=1
σ=2
σ=3
σ=4
Ideallinie
3.5
3
a
2.5
2
←σ=4
1.5
Ideallinie →
←σ=3
1
←σ=2
0.5
←σ=1
0
0
1
2
3
4
5
∧
a
Abbildung 6.4: Korrekturfunktion für den Schätzwert â bei verschieden σn = σ .
69
6 Kanalschätzung
6.2 Schätzung mit Hilfe der
Maximum-Likelihood-Methode
Ein weiterer Ansatz, der gewählt werden kann, wenn keine Informationen über die gesendeten
Bits xi vorliegen, ist die Überlagerung der beiden Dichtefunktionen pR (r) über den gesamten
Bereich von −∞ bis +∞ zu betrachten. Da in dieser Arbeit von statistisch unabhängigen und
identisch verteilten Zufallsvariablen bzw. Beobachtungen r = (r0 , r1 , · · · , rτs −1 ) ausgegangen
wird, ergibt sich die Dichtefunktion pR (r) der empfangenen Werte r zu
pR (r) =
τs −1
∏ pR(ri).
(6.13)
i=0
Für eine einzelne Beobachtung ri ergibt sich unter Berücksichtigung des nicht bekannten Wertes xi die Dichtefunktion in (6.2). In Abbildung 6.1 ist die Dichtefunktion pR (ri ) mit den Parametern σn2 = 0.5, a = 1 zu sehen. Mit Hilfe dieser Dichtefunktionen wurde nun die MaximumLikelihood-Methode gewählt, um Schätzwerte für die benötigten Parameter a und σn2 zu erhalten. D.h. es wurden die Ableitungen der Dichtefunktion pR (r) nach den gesuchten Parametern
a
und σn
∂
p (r|a) = 0
∂ a R|a
(6.14)
∂
p (r|σn ) = 0
∂ σn R|σ
(6.15)
gebildet und gleich null gesetzt, um ein Maximum der Funktionen für die beiden Parameter a
und σn zu finden. Da die Logarithmus-Funktion ln x eine monoton wachsende Funktion von x
ist, ist die Maximierung der Verteilungsfunktion pR (r) gleichbedeutend mit der Maximierung
der Funktion ln pR (r). Daraus folgt
und
∂
ln pR|a (r|a) = 0
∂a
(6.16)
∂
ln pR|σ (r|σn ) = 0.
∂ σn
(6.17)
70
6 Kanalschätzung
Es wurde nach einem Schätzwert für σn und nicht für σn2 gesucht, da σn sowohl einfach als
auch quadratisch in der Verteilungsfunktion vorkommt und sich die Werte einfach umrechnen
lassen. Der Logarithmus der Verteilungsfunktion pR (r) ergibt sich zu
"
1
1
(ri − axi )2
√
exp −
ln pR (r) = ln ∏
2
2σn2
2πσn
i=0
#!
1
(ri + axi )2
+√
exp −
2σn2
2πσn
τs −1
1
(ri − axi )2
= τs ln √
+ ∑ ln exp −
2σn2
2 2πσn
i=0
!
(ri + axi )2
.
+ exp −
2σn2
τs −1
(6.18)
Damit folgt für die Ableitungen
∂
1
ln pR (r) = 2
∂a
σn
und
∂
τs
1
ln pR (r) = − + 3
∂ σn
σn σn
−τs a +
τs −1
∑
i=0
ri a
ri tanh
σn2
!
r
a
i
ri2 − 2ri a tanh
+ a2 .
σn2
τs −1 ∑
i=0
!
(6.19)
(6.20)
Setzt man die Ableitungen dann gleich null, ergeben sich
τs a −
und
τs σn2 − τs a2 −
τs −1
∑
i=0
τs −1
∑
i=0
ri a
ri tanh
σn2
ri2 − 2ri a tanh
=0
ri a
σn2
(6.21)
= 0.
(6.22)
Man hat nun ein Gleichungssystem mit zwei Gleichungen, die jeweils die beiden unbekannten
Parameter a und σn enthalten. Da die Gleichungen nichtlinear sind, ist es nicht möglich, das
Gleichungssystem analytisch mit Hilfe geeigneter Verfahren zu lösen. Das Gleichungssystem
muss numerisch gelöst werden. Es wurde dazu das Newton-Raphson Verfahren gewählt, welches im Folgenden erklärt werden soll.
71
6 Kanalschätzung
6.2.1 Newton-Raphson-Verfahren
Mit dem Newton-Verfahren oder Newton-Raphson-Verfahren können numerisch die Nullstellen von mehrdimensionalen nichtlinearen Funktionen gefunden werden. Dies trifft genau die
Problemstellung, die sich für die Schätzung der Parameter a und σn ergeben hat. Es existieren
zwei nichtlineare Gleichungen mit zwei Unbekannten. Die Nullstellen der Gleichungen sind
die Schätzwerte â und σˆn , die benötigt werden.
Für den eindimensionalen Fall einer Gleichung f (x) = 0 mit einer Unbekannten lautet die
Vorschrift für das Newton-Verfahren [Bro05]
xn+1 = xn −
f (xn )
.
f ′ (xn )
(6.23)
Zur Berechnung der Nullstellen werden die Funktionswerte der Funktion f (x) und ihrer ersten
Ableitung f ′ (x) an der Stelle xn benötigt. In Abbildung 6.2.1 ist die geometrische Darstellung
des Newton-Verfahrens zu sehen. Für einen vorher gewählten Startpunkt x0 approximiert das
Newton-Verfahren die Funktion f (x) durch eine Tangente im Punkt f (x0 ). Der Schnittpunkt
dieser Tangente mit der x-Achse bzw. ihre Nullstelle dient als Startwert x1 für die nächste
Iteration. Mit jeder weiteren Iterationen wird der Abstand zwischen den Werten xn auf der
x-Achse geringer bis sie gegen die Nullstelle konvergieren.
Dieses Verfahren ist auch erweiterbar auf den Fall mehrdimensionaler Gleichungssysteme.
Man geht aus von
F1 (x1 , x2 ) = 0
F2 (x1 , x2 ) = 0
(0)
(6.24)
(0)
und gibt Näherungs- bzw. Startwerte x1 und x2 für die Nullstellen der beiden Gleichungen
vor [Bro05]. Die Funktionen F1 (x1 , x2 ) und F2 (x1 , x2 ) werden nach Taylor entwickelt. Die
Entwicklung wird nach dem linearen Glied abgebrochen. Dadurch entsteht folgendes lineares
Gleichungssystem
2
∂ Fi (µ ) (µ ) (µ +1)
(µ ) (µ )
(µ )
Fi x1 , x2 + ∑
x 1 , x2
− xk
= 0,
xk
k=1 ∂ xk
(µ +1)
Setzt man nun xk
(µ )
− xk
(µ )
i = 1, 2; µ = 1, 2, · · · , n.
= dk , ergibt sich das Gleichungssystem zu
72
(6.25)
6 Kanalschätzung
f(x)
xn
x2 x1
x0
x
Abbildung 6.5: Geometrische Darstellung des Newton-Verfahrens.
73
6 Kanalschätzung
2
∂ Fi (µ ) (µ ) (µ )
(µ ) (µ )
Fi x1 , x2 + ∑
x1 , x2 dk = 0,
k=1 ∂ xk
(µ )
Aus den Lösungen dk
net werden
i = 1, 2; µ = 1, 2, · · · , n.
(6.26)
des Gleichungssystems können die nächsten Näherungswerte berech-
(µ +1)
xk
(µ )
(µ )
= xk + dk .
(6.27)
Das Newton-Verfahren konvergiert quadratisch und ist von der Güte seiner Startwerte abhängig [Bro05]. Für jeden Iterationsschritt muss die Jacobi-Matrix
F′ x(µ ) =
!
∂ Fi (µ ) (µ ) x1 , x2
∑
k=1 ∂ xk
2
(6.28)
berechnet werden.
Für die Schätzung der Parameter â und σˆn ergibt sich daraus, dass von den aus der Verteilungsfunktion errechneten Gleichungen (6.21) und (6.22) die Jacobi-Matrix bzw. die partiellen Ableitungen nach a und σn bestimmt werden müssen. Für (6.21) ergibt sich die partielle
Ableitung nach a zu
!
τs −1
τs −1
ri2
ri a
∂
=
−
τs a − ∑ ri tanh
τ
s
∑
2 ri a
∂a
σn2
i=0
i=0 σ 2 cosh
(6.29)
σn2
n
und die partielle Ableitung nach σn ergibt sich zu
∂
∂ σn
τs a −
τs −1
∑
i=0
ri a
ri tanh
σn2
!
=
τs −1
Für (6.22) ergibt sich die partielle Ableitung nach a zu
74
∑
i=0
2ri2 a
.
σn3 cosh2 rσi a2
n
(6.30)
6 Kanalschätzung
!
τs −1
∂
ri a
2
2
2
τs σn − τs a − ∑ ri − 2ri a tanh
∂a
σn2
i=0
τs −1
2ari2
ri a
= −2τs a + ∑ 2ri tanh
+
2
2 ri a
σ
2
n
i=0
σn cosh σ 2
(6.31)
n
und die partielle Ableitung nach σn ergibt sich zu
∂
∂ σn
τs σn2 − τs a2 −
τs −1
∑
i=0
ri2 − 2ri a tanh
!
ri a
σn2
= 2τs σn −
τs −1
∑
i=0
4a2 ri2
.
2 ri a
3
σn cosh σ 2
(6.32)
n
Mit den partiellen Ableitungen und den ursprünglichen Funktionen können nun bei gegebenen
(0)
Startwerten für a(0) und σn Werte für ∆a und ∆σn berechnet werden. Es gilt
F1 (a, σn ) = τs a −
F2 (a, σn ) =
′
F1,a
(a, σn )
∑
i=0
ri a
ri tanh
σn2
τs σn2 − τs a2 −
= τs −
F1,′ σn (a, σn ) =
τs −1
τs −1
∑
i=0
τs −1
τs −1
∑
i=0
ri2
∑
2
i=0 σn2 cosh
n
′
F2,a
(a, σn )
ri2 − 2ri a tanh
2ri2 a
σn3 cosh2 rσi a2
= −2τs a +
F2,′ σn (a, σn ) = 2τs σn −
τs −1
∑
i=0
τs −1
ri a
σn2
ri a
σn2
2ari2
ri a
+
2ri tanh
σn2
σn2 cosh2 rσi a2
4a2 ri2
.
2 ri a
i=0 σn3 cosh
σn2
∑
n
(6.33)
Zur Berechnung müssen alle Beobachtungen r = (r0 , r1 , · · · , rτs −1 ) in (6.33) eingesetzt werden
und das Gleichungssystem
75
6 Kanalschätzung
∆aµ
µ
∆ σn
′
µ
µ µ F2,σn (aµ , σn ) −F1,′ σn (aµ , σn )
1
−F1 (aµ , σn )
=
µ
µ
µ
µ
′
′
µ
µ
−F2 (aµ , σn )
det F′ (aµ , σn ) −F2,a (a , σn ) F1,a (a , σn )
(6.34)
gelöst werden. Anschließend können die Startwerte für die nächste Iteration berechnet werden:
µ µ
aµ +1
∆a
a
µ +
µ .
µ +1 =
σn
∆ σn
σn
(6.35)
Mit den errechneten Startwerten wird dann die nächste Iteration gestartet. Es wird beim Start
der Berechnung angegeben, wie viele Iterationen ausgeführt werden sollen. In der Praxis hat
sich eine Anzahl von 10 Iterationen als ausreichend erwiesen. Als Startwerte für die Schätzung
der Parameter â und σ̂n wurden die nicht korrigierten Schätzwerte für a und σn aus (6.8) und
(6.10) verwendet. Durch die Verwendung dieser Werte ist der Startwert immer schon in der
Nähe der wirklichen Nullstelle. Da die Dichtefunktion aus Abbildung 6.1 mehrere Maxima
bzw. Minima besitzt, besteht die Gefahr, das Minimum an der Stelle null zu treffen, was zu
einer völlig falschen Schätzung führen würde. Da aber â mit (6.8) immer überschätzt wird,
sucht das Newton-Verfahren praktisch von der rechten Seite des Maximums und hat so eine
bessere Chance das Maximum bzw. die Nullstelle der ersten Ableitung an der Stelle a zu
finden. Die Güte der Schätzung hängt stark von der Anzahl τs der Beobachtungen r ab. Je
mehr Beobachtungen zur Verfügung stehen, desto besser wird die Schätzung. Daraus folgt
allerdings auch, dass der Rechenaufwand immer größer wird und damit die Schätzung länger
dauert.
6.3 Iterativer Ansatz
In den vorherigen Abschnitten wurden mögliche Schätzalgorithmen für den Fall unbekannter Bits xi vorgestellt. Wie aus diesen Abschnitten bekannt ist, ist die Schätzung für bekannte
Werte xi einfacher als für unbekannte Werte xi . Da die Turbodecodierung auf einem iterativen
Prozess beruht, bei dem sich die Zuverlässigkeit der Decodierung bei jeder Iteration verbessert, ist es nun denkbar, die Schätzung mit den decodierten Bits so zu vereinfachen, dass der
Algorithmus für bekannte Bits xi aus Abschnitt 6.1 verwendet werden kann. Man nimmt an,
dass die Zuverlässigkeit der decodierten Bits ĉi nach einigen Iterationen ausreicht, um ci = ĉi
bzw. xi = x̂i zu setzen. Daraus folgt:
76
6 Kanalschätzung
r̃i , ri xi = a + xi ni .
(6.36)
Das Ziel der iterativen Kanalschätzung ist es, die Decodierung durch genauere Schätzungen
zu verbessern. Verwendet man den Mittelwert als Schätzung für die Schwundamplitude A und
die Streuung als Schätzung für die Varianz σn2 , folgt daraus aus (6.5) und (6.6) zur Berechnung
der Schätzwerte:
â =
1 τs −1
∑ r̃i
τ s i=0
(6.37)
und
σ̂n2 =
1 τs −1
∑ (r̃i − â)2 .
τs − 1 i=0
(6.38)
Eine mögliche Vorgehensweise wäre nun, vor der ersten Iteration der Decodierung, die Kanalparameter mittels der in Abschnitt 6.2 beschriebenen ML-Methode zu schätzen. Diese Schätzwerte würden dann für die Decodierung in den ersten Iterationen verwendet. Nach beispielsweise zwei Iterationen könnte man dann die decodierten Bits bzw. deren Abbildung verwenden, um r̃i zu berechnen. Aus r̃i können wiederum neue Schätzwerte für die Kanalparameter
berechnet werden. Dadurch, dass die decodierten Bits nach einigen Iterationen eine hohe Zuverlässigkeit haben, könnten die neuen Schätzwerte genauer sein als die, die vor Beginn der
Decodierung errechnet wurden. Ab der dritten Iteration würden dann die neuen Schätzwerte
zur Decodierung verwendet. Ein Vorteil der Methode ist, dass die Berechnung der Schätzwerte schneller durchgeführt wird als mit der in Abschnitt 6.2 vorgestellten ML-Methode, da
dieser Algorithmus die Schätzwerte iterativ berechnet. Ein gravierender Nachteil ist, dass man
nicht, wie in den oben beschriebenen Algorithmen, alle gesendeten Bits zur Berechnung verwenden kann, sondern nur die systematischen Bits der codierten Sequenz v. Es können nur
die systematischen Bits verwendet werden, da nur diese Bits nach der Decodierung vorliegen.
Dadurch reduziert sich die Anzahl der Beobachtungen um den Faktor drei, der aus der Coderate R = 1/3 resultiert. Um alle gesendeten Bits zu verwenden, wäre es nötig im Decoder noch
einen Turboencoder zu implementieren.
77
7 Ergebnisse
Im Rahmen dieser Arbeit entstand eine Simulationskette in M ATLAB®. Für die Codierung
konnten einige Algorithmen der Communications-Toolbox von M ATLAB® verwendet werden. Die Implementierung des Kanals wurde schon in Kapitel 3.2.2 beschrieben. Der MAPAlgorithmus wurde mit Hilfe der Anleitung aus [VY00] komplett selbst programmiert und
optimiert. Weiterhin haben wir zwei verschiedene Arten der Kanalschätzung in den Decoder
implementiert, die bei Bedarf auch zusammen verwendet werden können.
Wir haben als Encoder den schon beschriebenen (7, 5)8 -RSC Encoder verwendet. Für unsere
Untersuchungen scheint er uns optimal in Bezug auf Leistung und Komplexität. Wie schon
beschrieben, haben wir hierbei den ersten Encoder terminiert, sodass dieser am Blockende
den Zustand Sτ = 00 hat. Um von jedem Zustand des ersten Decoders in den Nullzustand zu
kommen, werden zwei Bits an den Block angehängt. Im Weiteren bezeichnet die Blocklänge
τ die Anzahl der uncodierten Bits ohne die genannten Terminierungsbits.
Im AWGN-Kanal haben wir dem Decoder die Rauschvarianz übergeben, was einer perfekten
Kenntnis der Kanalzustandsinformation entspricht.
Die Simulationen wurden, wenn nicht anders beschrieben, nach 100 „übertragenen“ Blöcken
abgebrochen. Um gerade bei wenigen Fehlern auch eine glatte Kurve zu erhalten, wurde die
Simulation frühestens nach 1000 Fehlern (beim Kanal mit Rayleigh-Schwund nach 10000
Fehlern) abgebrochen.
Zum einfacheren Verständnis werden im Weiteren Turbodecoder mit Max-Log-MAP-Algorithmus als Max-Log-MAP-Turbodecoder und Turbodecoder mit Log-MAP-Algorithmus als
Log-MAP-Turbodecoder bezeichnet.
78
7 Ergebnisse
7.1 AWGN-Kanal
Für eine BPSK-Übertagung im AWGN-Kanal lässt sich die Bitfehlerwahrscheinlichkeit analytisch berechnen (siehe Kapitel 3.1). Sie ist gegeben als:
s
!
2ε s
Pb = Q
.
(7.1)
N0
Die Bitfehlerwahrscheinlichkeiten für codierte Übertragungen müssen aus Simulationen gewonnen werden. Dabei wird nach dem zentralen Grenzwertsatz die Bitfehlerrate (BER) als
Bitfehlerwahrscheinlichkeit (Pb ) angenommen. In Abbildung 7.1 erkennt man die BER-Kurven
für uncodierte, codierte (Max-Log-MAP-Decoder) und turbocodierte (TD-Max-Log-MAP, 8
Iterationen) BPSK-Übertragung, jeweils mit einer Blocklänge τ = 1000 Bits. Die Kurven wurden, wie in Kapitel 3.1.4 beschrieben, normiert, so dass sie vergleichbar sind. Oberhalb von
0 dB sieht man eine deutliche Leistungssteigerung mit steigendem Codierungsaufwand resp.
Decodierungsaufwand.
0
10
uncodiert
Log−MAP
Turbo Log−MAP
−1
10
−2
BER
10
−3
10
−4
10
−5
10
−3
−2
−1
0
1
2
Eb /N0 in dB
3
4
5
Abbildung 7.1: Vergleich zwischen uncodierter, Log-MAP- und Turbo Log-MAP-decodierter
BPSK.
Die Turbodecodierung ist ein iterativer Prozess, wobei der Aufwand mit jeder Iteration linear
zunimmt. Abbildungen 7.2 und 7.3 sind mit einer Blocklänge von τ = 1000 Bits simuliert worden. Sie zeigen, dass die Leistungssteigerung mit zunehmender Iterationsanzahl immer kleiner
79
7 Ergebnisse
wird, sich also nicht linear verbessert. Abbildung 7.4 verdeutlicht dies auch noch einmal, wobei hier bei einer Blocklänge von ebenfalls τ = 1000 Bits mindestens 10 Fehler gemacht wurden. Für weitere Vergleiche haben wir jeweils Simulationen mit acht Iterationen durchgeführt,
da uns bei acht Iterationen das Verhältnis zwischen Simulationsdauer und Codierungsgewinn
optimal erscheint.
0
10
I=1
I=2
I=4
I=8
−1
10
−2
BER
10
−3
10
−4
10
−5
10
0
0.5
1
Eb /N0 in dB
1.5
2
Abbildung 7.2: Vergleich zwischen Max-Log-MAP-Turbodecodern mit verschiedener
Iterationsanzahl I.
80
7 Ergebnisse
0
10
I=1
I=2
I=4
I=8
−1
10
−2
BER
10
−3
10
−4
10
−5
10
0
0.5
1
Eb /N0 in dB
1.5
2
Abbildung 7.3: Vergleich zwischen Log-MAP-Turbodecodern mit verschiedener Iterationsanzahl I.
0
10
−1
10
−2
BER
10
−3
10
I=1
I=2
I=4
I=8
I = 16
I = 32
−4
10
−5
10
−6
10
0
0.5
1
Eb /N0 in dB
1.5
2
Abbildung 7.4: Vergleich zwischen Max-Log-MAP-Turbodecodern mit verschiedener
Iterationsanzahl I. Die Anzahl der Fehler war 10.
81
7 Ergebnisse
Abbildung 7.5 zeigt Bitfehlerraten für verschiedene Blocklängen. Man erkennt, dass mit steigender Blocklänge die Übertragungsgüte steigt. Eine größere Blocklänge impliziert hier, dass
ein größerer Random-Interleaver verwendet wird. Wie schon beschrieben ist die Interleavergröße entscheidend für die Leistungsfähigkeit des Codes. Allerdings erhöht sich mit einer größeren Blocklänge auch der Decodierungsaufwand. Zudem erhöht sich die Verzögerungszeit,
denn zur Decodierung muss in jedem MAP-Decoder der gesamte Block verarbeitet werden.
Bei acht Iterationen muss der Block 16 mal komplett verarbeitet werden.
0
10
τ = 100
τ = 1000
τ = 4000
−1
10
−2
BER
10
−3
10
−4
10
−5
10
−6
10
0
0.5
1
Eb /N0 in dB
1.5
2
Abbildung 7.5: Vergleich zwischen Max-Log-MAP-Turbodecodern mit verschiedener Blocklänge τ .
82
7 Ergebnisse
Ein Vergleich zwischen Turbodecodern mit Max-Log-MAP- und Log-MAP-Algorithmus ist
in Abbildung 7.6 gegeben. Hierbei erkennt man, dass die Vereinfachung, die man im MaxLog-MAP-Algorithmus trifft, die Leistungsfähigkeit des Turbodecoders beeinträchtigt. Der
Turbodecoder mit Log-MAP-Algorithmus ist von 0 dB bis 2 dB durchgehend besser als der
Turbodecoder mit Max-Log-MAP-Algorithmus.
0
10
Max−Log−MAP
Log−MAP
−1
10
−2
BER
10
−3
10
−4
10
−5
10
−6
10
0
0.5
1
Eb /N0 in dB
1.5
2
Abbildung 7.6: Vergleich zwischen einem Max-Log-MAP-Turbodecoder und einem LogMAP-Turbodecoder.
7.2 Kanal mit Rayleigh-Schwund
Für den Kanal mit Rayleigh-Schwund gibt Proakis [Pro01] die Bitfehlerwahrscheinlichkeit
für eine uncodierte Übertragung mit
P2 =

1
1−
2
s

Γb 
1 + Γb
(7.2)
an. Für die codierte Übertragung kann man aus den Bitfehlerraten im AWGN-Kanal eine
Bitfehlerwahrscheinlichkeit für den Kanal mit Rayleigh-Schwund angeben.
83
7 Ergebnisse
Wir haben als obere Grenze 1.6 und ∆γbi = 0.02 gewählt. Aus den Simulationen für den
AWGN-Kanal mit logarithmischen Abständen geht hervor, dass die Bitfehlerrate oberhalb
von 2 dB ≈ 1.6 kleiner als 10−5 ist und daher als Null angenommen werden kann. Der so
generierte lineare Verlauf der Bitfehlerrate ist in Abbildung 7.7 zu sehen. Dabei ist für die Erzeugung der blauen Kurve eine Turbocodierung mit dem bekannten (7, 5)8 Encoder mit einer
Blocklänge τ = 1000 und ein Max-Log-MAP-Turbodecoder mit acht Iterationen verwendet
worden. Die rote Kurve wurde mit der identischen Simulationskette, aber einer Blocklänge
τ = 4000 generiert. Die grüne Kurve in Abbildung 7.7 dient als Vergleich und wurde aus
(3.16) erzeugt. Die Ergebnisse der beiden numerischen Berechnungen sind in Abbildung 7.8
zusammen mit einer nach (3.36) analytisch generierten Kurve gezeigt. Man erkennt, dass die
Turbocodierung mit einer Blocklänge τ = 1000 und τ = 4000 identisch sind und übereinander liegen. Für große Störabstände verlaufen die Kurven der Turbocodes und die Kurve für
den uncodierten Fall parallel. Der Turbocode liefert im AWGN-Kanal im unteren Bereich bis
0 dB keinen oder zu wenig Codierungsgewinn. Genau dieser Bereich wird jedoch in (3.37)
durch die abfallende Exponentialfunktion am meisten gewichtet. Das führt zu der Annahme,
dass Turbocodes für dieses Kanalmodell keinen Vorteil gegenüber uncodierter Übertragung
haben.
0.5
MLM−TC, I=8, τ=1000
MLM−TC, I=8, τ=4000
unc. theoretisch
0.45
BER(linear)
0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
0
0.2
0.4
0.6
0.8
1
Eb /N0 (linear)
1.2
1.4
1.6
Abbildung 7.7: Linearer Verlauf der Bitfehlerrate für Turbocodes und uncodierter Übertragung im AWGN.
Einen Ausschnitt der numerischen Berechnung zeigt die blaue Kurve in Abbildung 7.9. Hier
wird dieser numerisch berechnete Wert mit einer Simulation für den Kanal mit RayleighSchwund verglichen. Dabei handelt es sich bei der Simulation um einen Turbodecoder mit
Max-Log-MAP-Algorithmus, acht Iterationen und einer Blocklänge von τ = 100. Die Simu-
84
7 Ergebnisse
0
10
−1
10
−2
BER
10
−3
10
−4
10
num. Berechnung, MLM−TC, Blocklänge τ=1000
num. Berechnung, MLM−TC, Blocklänge τ=4000
analyt. Berechnung der uncodierten Übertragung
−5
10
−5
0
5
10
15
20
Γb in dB
25
30
35
40
Abbildung 7.8: Vergleich der numerischen Berechnung eines Turbocodes mit der analytischen Berechnung einer uncodierten BPSK-Übertragung jeweils im Kanal mit
Rayleigh-Schwund.
lation wurde mit perfekten Kanalzustandsinformationen, d.h. bekannter Schwundamplitude A
und bekannter Varianz σn2 , durchgeführt. Man kann deutlich sehen, dass beide Werte sehr gut
übereinstimmen.
Die Leistungsfähigkeit der in Abschnitt 6 vorgestellten Kanalschätzungsalgorithmen wurde
mittels M ATLAB® Simulationen getestet. Um eine untere Grenze für die mittlere Bitfehlerrate
BER einer Simulation mit geschätzten Kanalparametern zu erhalten, wurde zuerst eine Simulation durchgeführt, bei der die Kanalparameter dem Decoder direkt übergeben wurden. Für
jeden mittleren Störabstand Γb wurden 10000 Durchläufe simuliert. Es wurden jeweils acht
Iterationen gewählt und die Blocklänge war τ = 100. Alle beschriebenen Simulationen in diesem Abschnitt wurden mit Turbodecodern durchgeführt. In Abbildung 7.10 ist der Vergleich
zwischen den beiden Decodieralgorithmen Max-Log-MAP und Log-MAP mit perfekten Kanalzustandsinformationen im Kanal mit Rayleigh-Schwund abgebildet.
Man kann sehen, dass die mittlere Bitfehlerrate des Log-MAP-Algorithmus, anders als im
AWGN-Kanal in Abbildung 7.6, kaum besser ist, als die mittlere Bitfehlerrate des Max-LogMAP-Algorithmus. Die mittleren Bitfehlerraten bewegen sich im Bereich von 2 · 10−1 bei
0 dB und 3 · 10−2 bei 10 dB. Im Weiteren werden die Simulationen mit dem Log-MAPAlgorithmus durchgeführt, da er sowohl im AWGN-Kanal als auch im Kanal mit RayleighSchwund die bessere Leistungsfähigkeit hat. Die Kurve für die mittlere Bitfehlerrate des Log-
85
7 Ergebnisse
0
10
numerische Berechnung
Simulation
BER
−1
10
−2
10
−2
0
2
4
6
Γb in dB
8
10
Abbildung 7.9: Vergleich zwischen numerisch berechneter und simulierter mittlerer Bitfehlerrate.
0
10
BER
Max−Log−MAP
Log−MAP
−1
10
−2
10
0
2
4
6
Γb in dB
8
10
Abbildung 7.10: Vergleich zwischen den Max-Log-MAP und Log-MAP Algorithmen im Kanal mit Rayleigh-Schwund.
86
7 Ergebnisse
MAP-Algorithmus in Abbildung 7.10 dient im Weiteren als Referenzkurve für den Vergleich
zwischen den Schätzalgorithmen. Der Vergleich zwischen den beiden in Abschnitt 6.1 und
6.2 beschriebenen Schätzalgorithmen wird in Abbildung 7.11 gezeigt. Hierbei ist anzumerken, dass der verwendete Algorithmus aus Abschnitt 6.1 in diesem Fall ohne die beschriebene Korrekturfunktion ausgeführt wurde. Die Simulationsparameter waren ebenfalls I = 8,
τ = 100 und 10000 Durchläufe. Dabei ist die Anzahl der Beobachtungen, die für die Kanalschätzung genutzt werden können, durch die Coderate von R = 1/3 gleich τs = 306, da durch
den Turboencoder für jedes Informationsbit drei Übertragungsbits erzeugt werden. Die sechs
zusätzlichen Bits entstehen durch die Terminierung des ersten RSC-Encoders.
0
10
BER
perfekt
Mittelwert
MLE
−1
10
−2
10
0
2
4
6
Γb in dB
8
10
Abbildung 7.11: Vergleich zwischen den verschiedenen Schätzverfahren.
Es ist zu sehen, dass der in Abschnitt 6.1 beschriebene Algorithmus bereits ohne die Korrekturfunktion nahezu die gleiche Leistungsfähigkeit erreicht wie die Simulation mit perfekten Kanalzustandsinformationen. Dagegen erreicht der Algorithmus über die Maximum-LikelihoodMethode nicht die Leistungsfähigkeit der Simulation mit perfekten Kanalzustandsinformationen. Dies ist darauf zurückzuführen, dass die Anzahl der Beobachtungen, die der Blocklänge
entspricht und in diesem Fall τ = 100 bzw. τs = 306 war, zu einer großen Varianz der geschätzten Parameter führt. Um diese Vermutung zu belegen, wurde der Maximum-LikelihoodSchätzer erneut mit zwei verschiedenen Blocklängen simuliert. In Abbildung 7.12 sind die
Ergebnisse dieser Simulation zu sehen. Zur Orientierung wurde wieder die Kurve der mittleren Bitfehlerrate mit perfekten Kanalzustandsinformationen mit einer Blocklänge von τ = 100
eingefügt.
87
7 Ergebnisse
0
10
BER
perfekt τ = 100
perfekt τ = 1000
MLE τ = 100
MLE τ = 1000
−1
10
−2
10
0
2
4
6
Γb in dB
8
10
Abbildung 7.12: Vergleich des Maximum-Likelihood Schätzverfahrens bei verschiedenen
Blocklängen τ .
Wie man sieht, erreicht der Maximum-Likelihood-Schätzalgorithmus mit einer Blocklänge
von τ = 1000 bzw. τs = 3006 ebenfalls die Leistungsfähigkeit der Simulation mit perfekten
Kanalzustandsinformationen. Um sehen zu können, ob diese Verbesserung der mittleren Bitfehlerrate des Maximum-Likelihood-Schätzers von der größeren Anzahl an Beobachtungen
oder allgemein von der größeren Blocklänge abhängt, wurde zusätzlich noch eine Simulation mit perfekten Kanalzustandsinformationen und einer Blocklänge von τ = 1000 gemacht.
Aus dem AWGN-Kanal wissen wir schon, dass eine Vergrößerung der Blocklänge signifikante Auswirkungen auf die Leistungsfähigkeit eines Turbocodes hat. In Abbildung 7.13 ist
der Vergleich zwischen den beiden mittleren Bitfehlerraten der Simulationen mit perfekten
Kanalzustandsinformationen bei verschiedenen Blockgrößen zu sehen.
Man kann deutlich sehen, dass die größere Blocklänge τ im Kanal mit Rayleigh-Schwund
keine Verbesserung der mittleren Bitfehlerrate bringt. Daraus lässt sich schließen, dass die
Verbesserung der mittleren Bitfehlerrate des Maximum-Likelihood-Schätzers mit einer Blocklänge von τ = 1000 in Abbildung 7.12 auf die größere Anzahl an Beobachtungen und somit
auf eine größere Genauigkeit der Schätzung zurückzuführen ist. Der Nachteil dabei ist, dass
der Rechenaufwand bzw. die Berechnungszeit, genauso wie die Blocklänge τ , um den Faktor
10 gestiegen ist. Eine Simulation mit einer Blocklänge von τ = 100 und acht Iterationen dauerte ca. 3 Stunden. Eine Simulation mit einer Blocklänge von τ = 1000 und acht Iterationen
dauerte dagegen ca. 30 Stunden.
88
7 Ergebnisse
0
10
BER
perfekt τ = 100
perfekt τ = 1000
−1
10
−2
10
0
2
4
6
Γb in dB
8
10
Abbildung 7.13: Einfluss unterschiedlicher Blocklängen τ auf die mittlere Bitfehlerrate.
In Abbildung 7.14 ist der Vergleich zwischen dem Schätzalgorithmus, der den Betragsmittelwert bildet, mit und ohne der in Abschnitt 6.1 beschriebenen Korrekturfunktion abgebildet.
Zur Orientierung wurde wiederum die mittlere Bitfehlerrate der Simulation mit perfekten Kanalzustandsinformationen hinzugefügt.
Dadurch, dass bereits der Schätzer ohne die Korrekturfunktion nahezu die gleiche Leistungsfähigkeit wie die Simulation mit perfekten Kanalzustandsinformationen hat, kann anhand der
Simulationsergebnisse keine Aussage darüber getroffen werden, ob die Korrekturfunktion eine Verbesserung der Leistungsfähigkeit des Schätzers bringt.
In Abbildung 7.15 ist der Vergleich zwischen der Simulation mit perfekten Kanalzustandsinformationen und einer Simulation mit im Decoder konstant angenommener Schwundamplitude a = 1 und konstant angenommer Varianz σn2 = 1 abgebildet.
Man erkennt, dass die Simulation mit den konstant angenommenen Parametern eine minimal
bessere mittlere Bitfehlerrate ergibt als die Simulation mit perfekten Kanalzustandsinformationen. Dieses Ergebnis ist etwas kurios, da man im Allgemeinen davon ausgehen würde, dass
die Simulation mit perfekten Kanalzustandsinformationen auch wirklich die untere Grenze für
alle anderen hier gezeigten Simulationen ist.
In Abbildung 7.16 sind die Ergebnisse des in Abschnitt 6.3 beschriebenen iterativen Ansatzes
89
7 Ergebnisse
0
10
BER
Mittelwert
korrigierter Mittelwert
perfekt
−1
10
−2
10
0
2
4
6
8
Γb in dB
10
Abbildung 7.14: Vergleich Schätzer über Betragsmittelwert mit und ohne Korrekturfunktion
0
10
perfekt
konstantes a = 1
−1
BER
10
−2
10
−3
10
0
5
10
Γb in dB
15
20
Abbildung 7.15: Vergleich zwischen perfekten Kanalzustandsinformationen und einer konstant angenommenen Schwundamplitude A.
90
7 Ergebnisse
der Kanalschätzung zu sehen. Dabei wurde für eine erste Schätzung der Kanalparameter, die
in Abschnitt 6.2 beschriebene, ML-Methode verwendet. Nach einer bestimmten Anzahl von
Iterationen wurde dann der vereinfachte Schätzalgorithmus verwendet, der in Abschnitt 6.3
beschrieben wurde. Um eine höhere Zuverlässigkeit der decodierten Bits zu erreichen, wurde
nicht nach der ersten Iteration angefangen eine neue Kanalschätzung durchzuführen, sondern
erst nach mehreren Iterationen. Die Anzahl der Iterationen wurde in der Simulation variiert.
0
10
I=2
I=4
I=6
I=8
perfekt
BER
MLE
−1
10
−2
10
0
2
4
6
Γb in dB
8
10
Abbildung 7.16: Vergleich iterativer Maximum-Likelihood-Algorithmus
Es ist zu sehen, dass der iterative Ansatz der Kanalschätzung keinen Vorteil gegenüber der
einfachen und der, für einen Block, einmaligen Kanalschätzung mit der ML-Methode bringt.
Auch ist zwischen den einzelnen Simulationen für den iterativen Ansatz kein signifikanter
Unterschied zu erkennen. In Abbildung 7.17 ist der Vergleich zwischen der Simulation mit
perfekten Kanalzustandsinformationen, einer Simulation einer uncodierten Übertragung mit
BPSK-Modulation und einer theoretisch errechneten mittleren Bitfehlerwahrscheinlichkeit für
die uncodierte Übertragung mit BPSK-Modulation über einen Kanal mit Rayleigh-Schwund
zu sehen. Die theoretische mittlere Bitfehlerwahrscheinlichkeit wurde nach (7.2) für Γb ∈
[0, 10] errechnet.
Man sieht, dass die theoretische mittlere Bitfehlerrate für den uncodierten Fall mit der simulierten mittleren Bitfehlerrate für den uncodierten Fall übereinstimmt. Weiterhin ist zu sehen,
dass die mittlere Bitfehlerrate für den uncodierten Fall niedriger ist als für den Fall mit perfekten Kanalzustandsinformationen. Daraus kann man schließen, dass durch die Turbocodierung für das angewendete Kanalmodell kein Codierungsgewinn entsteht. Dadurch, dass die
91
7 Ergebnisse
0
10
BER
uncodiert Simulation
perfekt
uncodiert theoretisch
−1
10
−2
10
0
2
4
6
Γb in dB
8
10
Abbildung 7.17: Vergleich zwischen perfekten Kanalzustandsinformationen und uncodierter
BPSK-modulierter Übertragung.
Schwundamplitude A für einen Block konstant angenommen wurde, ist bei einer sehr niedrigen Schwundamplitude A der komplette Block zerstört und kann nicht mehr korrigiert werden.
Dieses Verhalten ist anscheinend dominant bei der Decodierung, weswegen keine besseren
Bitfehlerraten zustande kommen. Da kein Codierungsgewinn entsteht, hat der uncodierte Fall
den Vorteil, dass nur ein Bit gesendet wird, wogegen bei dem turbocodierten Fall drei Bits pro
uncodiertem Bit gesendet werden.
92
Zusammenfassung
Turbocodes können im AWGN-Kanal Ergebnisse liefern, die nahe der Shannongrenze liegen.
Dabei bestimmen, wie wir gezeigt haben, die Parameter „Anzahl der Iterationen“, „Blocklänge“ und die damit zusammenhängende „Interleavergröße“ die Übertragungsgüte maßgeblich.
Der hier verwendete Turbocode hat im AWGN-Kanal eine wesentlich höhere Übertragungsgüte gegenüber einfacher Faltungscodierung ab einem Störabstand von etwa 0 dB. Bei einem
Störabstand, der unter dieser Grenze liegt, zahlt sich die höhere Coderate nicht mehr aus. Hier
hat der Turbocode eine niedrigere Übertragungsgüte.
Wir haben in dieser Arbeit außerdem gezeigt, dass ein Turbocode mit einer Blocklänge τ =
1000 für die Anwendung im nicht-frequenzselektiven, langsamen Schwundkanal weniger gut
geeignet ist. Der Decoder benötigt eine Vorgabe der Amplitude, um die Kanalzuverlässigkeit
zu bestimmen. Eine Decodierung mit einer Schätzung der Amplitude als Betragsmittelwert
der empfangenen Bits liefert Ergebnisse, die nahe an der Decodierung mit perfekten Kanalzustandsinformation liegen, obwohl die Schätzung gerade für kleine Amplituden und große
Varianzen ungenau ist. Eine Decodierung mit einer Amplituden- und Varianzschätzung mit
Hilfe der Maximum-Likelihood-Methode erzeugt ab einer Blocklänge τ = 1000 Ergebnisse,
die der Decodierung mit perfekten Kanalzustandsinformationen nahe kommen. Eine gemeinsame Kanalschätzung und Decodierung wie in Abschnitt 6.3 beschrieben, bewirkt ebenfalls
keine signifikante Verbesserung der Ergebnisse. Allgemein ist anzumerken, dass in unseren
Simulationen weder eine Schätzung noch eine Übergabe der Amplitude einen Decodierungsvorteil gegenüber einer fest eingestellten Amplitude im Decoder bewirkt hat. Auch eine Vergrößerung der Blocklänge bietet keinen entscheidenden Vorteil. In dieser Art von Kanal ist
im betrachteten Bereich des Störabstands eine uncodierte Übertragung besser als der hier beschriebene Turbocode.
Es entstand im Zusammenhang mit dieser Diplomarbeit eine Turbocode Signalkette in M ATLAB ®. Dabei wurden vor allem für den Encoder einige Funktionen aus der Communications
Toolbox verwendet. Der Max-Log-MAP- und der Log-MAP-Decoder wurden nach den Ausführungen in [VY00] selbst erstellt. Die Zusammenführung der Decoder zu einem Turbodecoder wurden nach [VY00] und [HOP96] vorgenommen. Die ML-Schätzung wurde mit Hilfe
des Newton-Verfahrens in M ATLAB® programmiert und in den Decoder implementiert.
93
Ausblick
Diese Arbeit kann mit folgenden Schritten fortgesetzt werden.
Man kann Punktierung bei der Turbocodierung verwenden. Für bessere Kanäle kann so Sendeleistung eingespart werden. Es kann dabei auch untersucht werden, ob und wie sich die
Ergebnisse im nicht-frequenzselektiven, langsamen Schwundkanal verändern.
Das Kanalmodell sollte erweitert werden. Es ist zu erwarten, dass eine sich schnell ändernde
Schwundamplitude eine höhere Übertragungsgüte zur Folge hat, denn so kann der Turbocode
seine Vorteile voll ausspielen. Zu Zeitpunkten von guter Empfangsqualität können einzelne
Bits problemlos empfangen werden. Zu anderen Zeitpunkten zerstörte Teilinformationen können dadurch gegebenenfalls wiederhergestellt werden. Es können dann in einem Kanal, der
im Mittel schlecht ist, mehr Fehler korrigiert werden, als in einem gleichmäßig schlechten,
nicht-frequenzselektiven, langsamen Schwundkanal.
Für die Kanalschätzung ist die Annahme, dass sich der Kanal über einen Block nicht ändert,
rechnerisch vorteilhaft. Man kann für alle Bits eines Blocks die selbe Verteilung annehmen
und die Parameter des Kanals daraus schätzen. Für ein Kanalmodell mit einer sich schnell
ändernden Schwundamplitude können zur Schätzung der Kanalparameter nicht sämtliche Bits
eines Blocks verwendet werden, da man davon ausgeht, dass sich der Kanal während der
Übertragung eines Blocks ändert. Von Vorteil ist es jedoch, für die Decodierung den gesamten
Block zur Verfügung zu haben. So kann man für jedes empfangene Signal rt mit einem Fenster
von Signal rt−n bis Signal rt+n die Parameter des Kanals näherungsweise schätzen, wobei die
Breite des Fensters davon abhängt, wie schnell sich die Schwundamplitude ändert.
Für diesen geänderten Kanal kann weiterhin die gemeinsame Kanalschätzung und Turbodecodierung mit weiteren Algorithmen untersucht werden. Möglicherweise ergeben sich dann
Ergebnisse, die gegenüber anderen Decodierverfahren wesentliche Vorteile aufweisen.
94
Abkürzungsverzeichnis
AWGN . . . . . . . . . . . . .
BPSK . . . . . . . . . . . . . .
DVB . . . . . . . . . . . . . . .
FIR . . . . . . . . . . . . . . . . .
IIR . . . . . . . . . . . . . . . . .
MAP . . . . . . . . . . . . . . .
MF . . . . . . . . . . . . . . . . .
ML . . . . . . . . . . . . . . . . .
RSC . . . . . . . . . . . . . . . .
VA . . . . . . . . . . . . . . . . .
weißes Rauschen (engl.: additive white Gaussian noise)
binäre Phasenumtastung (engl.: binary phase shift keying)
Digital Video Broadcasting
Finite Impuls Response
Infinite Impuls Response
Maximum-A-Posteriori
Matched Filter
Maximum-Likelihood
Recursive Systematic Convolutional (Code)
Viterbi-Algorithmus
95
Abbildungsverzeichnis
2.1
Ereignis B über verschiedene Ai . . . . . . . . . . . . . . . . . . . . . . . . .
6
3.1
3.2
3.3
Basiselemente eines digitalen Kommunikationssystems. . . . . . . . . . . . .
Komplexes normalverteiltes Rauschen mit reellem Signal. . . . . . . . . . .
Wahrscheinlichkeitsverteilungen beider Bits für einen AWGN-Kanal. . . . .
15
17
19
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
4.11
4.12
4.13
4.14
4.15
4.16
4.17
Faltungsencoder R = 1/2. . . . . . . . . . . . . . . . . . .
Zustandsdiagramm Faltungsencoder. . . . . . . . . . . . .
Trellisdiagramm Faltungsencoder. . . . . . . . . . . . . .
RSC-Encoder R = 1/2. . . . . . . . . . . . . . . . . . . .
Zustandsdiagramm des RSC-Encoders aus Abbildung 4.4.
Erweitertes Zustandsdiagramm. . . . . . . . . . . . . . .
Erweitertes Zustandsdiagramm des RSC-Encoders. . . . .
Decodierung zum Zeitpunkt t = 1. . . . . . . . . . . . . .
Decodierung zum Zeitpunkt t = 2. . . . . . . . . . . . . .
Decodierung zum Zeitpunkt t = 3. . . . . . . . . . . . . .
Decodierung zum Zeitpunkt t = 4. . . . . . . . . . . . . .
Decodierung zum Zeitpunkt t = τ - 1. . . . . . . . . . . .
Decodierung zum Zeitpunkt t = τ - 2. . . . . . . . . . . .
Decodierung zum Zeitpunkt t = τ - 3. . . . . . . . . . . .
Systemmodell. . . . . . . . . . . . . . . . . . . . . . . .
Zustandsdiagramm. . . . . . . . . . . . . . . . . . . . . .
Trellisdiagramm. . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
27
30
31
32
32
34
36
43
43
44
44
44
45
45
46
48
48
5.1
5.2
Turboencoder mit Coderate R = 1/3. . . . . . . . . . . . . . . . . . . . . . .
Schematische Darstellung eines Turbodecoders. . . . . . . . . . . . . . . . .
55
63
6.1
6.2
6.3
6.4
6.5
Dichtefunktion zweier überlagerter Gaußverteilungen. . . . . .
Abhängigkeit der Dichtefunktion in 6.2 vom Parameter a. . . . .
Dichtefunktion einer Gaußverteilung . . . . . . . . . . . . . . .
Korrekturfunktion für den Schätzwert â bei verschieden σn = σ .
Geometrische Darstellung des Newton-Verfahrens. . . . . . . .
.
.
.
.
.
65
66
67
69
73
7.1
Vergleich uncodiert, LM und Turbo-LM im AWGN-Kanal. . . . . . . . . . .
79
96
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Abbildungsverzeichnis
7.2
7.3
7.4
7.5
7.6
7.7
7.8
7.9
7.10
7.11
7.12
7.13
7.14
7.15
7.16
7.17
MLM-Turbodecoder mit variablem I. . . . . . . . . . . . . . . . . . . . . . .
LM-Turbodecoder mit variablem I. . . . . . . . . . . . . . . . . . . . . . . .
MLM-Turbodecoder mit variablem I. bis 32. . . . . . . . . . . . . . . . . . .
MLM-Turbodecoder mit variablem τ . . . . . . . . . . . . . . . . . . . . . .
Vergleich MLM-Turbodecoder und LM-Turbodecoder. . . . . . . . . . . . .
Lin. Verlauf der Bitfehlerrate für TC und unc. Übertragung im AWGN. . . . .
Vergleich num. Berechnung TC - analyt. Berechnung für unc. BPSK. . . . . .
Vergleich zwischen num. berechneter und sim. mittlerer Bitfehlerrate. . . . .
Vergleich MLM vs. LM im Schwundkanal. . . . . . . . . . . . . . . . . . .
Vergleich zwischen den verschiedenen Schätzverfahren. . . . . . . . . . . . .
MLE Schätzer mit variabler Blocklänge . . . . . . . . . . . . . . . . . . . .
Einfluss unterschiedlicher Blocklängen τ auf die mittlere Bitfehlerrate. . . . .
Vergleich Schätzer über Betragsmittelwert mit und ohne Korrekturfunktion .
Vergleich perfekte Kanalzustandsinformationen und Konst. a. . . . . . . . . .
Vergleich iterativer Maximum-Likelihood-Algorithmus . . . . . . . . . . . .
Vergleich perfekte Kanalzustandsinformationen und uncodierter Übertragung.
97
80
81
81
82
83
84
85
86
86
87
88
89
90
90
91
92
Literaturverzeichnis
[BGT93] B ERROU, C. ; G LAVIEUX, A. ; T HITIMAJSHIMA, P.: Near Shannon limit errorcorrecting coding and decoding: Turbo-codes. In: IEEE International Conference
on Communications, 1993. ICC 93. Geneva. 2 (1993), S. 1064–1070
[Bro05]
B RONSTEJN, Il’ja N.: Taschenbuch der Mathematik. 6., vollst. überarb. und erg.
Aufl. Deutsch, 2005
[Dah98] DAHLHAUS, Dirk H.: Gemeinsame Demodulation in CDMA-Mobilfunksystemen
unter Ausnutzung von Raum- und Zeitdiversität, Eidgenössische Technische Hochschule Zürich, Diss., 1998
[HOP96] H AGENAUER, Joachim ; O FFER, Elke ; PAPKE, Lutz: Iterative Decoding of Binary
Block and Convolutional Codes. In: IEEE Transactions on Information Theory 42
(1996), Nr. 2, S. 429–445
[Hub02] H UBER, Johannes: Grundlagen der Wahrscheinlichkeitsrechnung für iterative Decodierverfahren. In: ELEKTROTECHNIK UND INFORMATIONSTECHNIK 119
(2002), Nr. 11, S. 386–394
[Kro96] K ROSCHEL, Kristian: Statistische Nachrichtentheorie. 3., neubearb. und erw. Aufl.
Springer, 1996
[Lin05]
L INDNER, Jürgen: Informationsübertragung. Berlin, Heidelberg : Springer, 2005.
– ISBN 3–540–21400–3
[Pap05]
PAPULA, Lothar: Mathematik für Ingenieure und Naturwissenschaftler Band 3. 4.
Auflage. Braunschweig, Wiesbaden : Vieweg, 2005. – ISBN 3–528–34937–9
[PP02]
PAPOULIS, Athanasios ; P ILLAI, S. Unnikrishna: Probability, Random Variables
and Stochastic Processes. 4th Edition. New York : McGraw-Hill, 2002
[Pro01]
P ROAKIS, John G.: Digital Communications. 4th Edition. New York : McGrawHill, 2001
[Roh06] ROHLING, Hermann: Skript zur Vorlesung: Stochastische Prozesse. Technische
Universität Hamburg-Harburg, 2006
[Vit71]
V ITERBI, A.J.: Convolutional Codes and Their Performance in Communication
Systems. In: IEEE Transactions on Communications 19 (1971), Nr. 5, S. 751–772
98
Literaturverzeichnis
[Vog02] VOGT, Jörg: Beiträge zur effizienten Decodierung von Turbo-Codes, Technische
Universität Dresden, Diss., 2002
[VY00]
V UCETIC, Branka ; Y UAN, Jinhong: Turbo Codes - Principles and Applications.
1th Edition. Boston, Dordrecht, London : Kluwer Academic Publishers, 2000
99
Herunterladen