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