Vorlesungsskript Kanalcodierung II - Universität Bremen
Vorlesungsskript Kanalcodierung II - Universität Bremen
Vorlesungsskript Kanalcodierung II - Universität Bremen
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>Kanalcodierung</strong> <strong>II</strong><br />
Dr.-Ing. Volker Kühn, Dr.-Ing. Dirk Wübben<br />
Universität <strong>Bremen</strong><br />
Fachbereich 1, ANT<br />
Kapitel 1<br />
Verkettete Codes<br />
1.1 Einführung<br />
Motivation<br />
Ziel der Codierungstheorie ist es, die Kanalkapazität von Shannon zu erreichen. Praktische Codes wie die im<br />
letzten Semester behandelten Faltungs- und Blockcodes sind weit von dieser theoretischen Grenze entfernt.<br />
Ein entscheidender Nachteil von ihnen besteht darin, dass mit zunehmender Leistungsfähigkeit auch der Decodieraufwand<br />
ansteigt, meistens wächst er exponentiell an. Daher setzt die praktische Realisierbarkeit der Leistungsfähigkeit<br />
dieser Codes schnell Grenzen. Zwar ist es oft nur eine Frage der Zeit, bis die Technologie einen<br />
höheren Aufwand bei der Decodierung erlaubt. Trotzdem stellt sich die Frage, ob nur durch Vergrößerung der<br />
Einflusslänge bei Faltungscodes bzw. der Blocklänge bei Blockcodes die Kapazität nach Shannon prinzipiell<br />
erreicht werden kann.<br />
Einen anderen Weg zur Konstruktion leistungsfähiger FEC-Codes zeigte Forney bereits im Jahr 1966, als er<br />
erstmals die Verkettung einfacher Teilcodes vorstellte [For66]. Seit dieser Zeit sind gerade in den vergangenen<br />
Jahren enorme Fortschritte zu verzeichnen gewesen. Hervorzuheben ist hier das Jahr 1993, als zum ersten Mal<br />
die sogenannten Turbo-Codes präsentiert wurden, einer geschickten parallelen Anordnung zweier Faltungscodes,<br />
mit denen die Kapazitätsgrenze von Shannon so dicht wie noch nie erreicht wurde (Abstand nur noch<br />
0,5 dB bei einer Fehlerrate von P b = 10 −5 ).<br />
Idee<br />
Die grundlegende Idee besteht also darin, einfache Codes geschickt miteinander zu verknüpfen, so dass ein<br />
Gesamtcode entsteht, der leistungsfähiger als die einzelnen Komponentencodes ist. Gleichzeitig muss er aber<br />
auch einfacher zu decodieren sein. Dies soll an einem Beispiel näher erläutert werden. Die heute zur Verfügung<br />
stehende Technologie erlaubt beispielsweise im Consumerbereich die Decodierung eines Faltungscodes mit<br />
der Einflusslänge L c = 9, d.h. es ist ein Trellisdiagramm bestehend aus 2 8 = 256 Zuständen abzuarbeiten.<br />
Würde man nun 2 Faltungscodes mitL c = 3 verknüpfen, ergäbe sich ein Aufwand, der einem Trellisdiagramm<br />
von 2 · 2 2 = 8 Zuständen, also nur der 64-ste Teil des Aufwandes. Berücksichtigt man nun eine wiederholte<br />
Decodierung des verketteten Codes (Turbo-Decodierung, z.B. 6 Iterationen, mehr dazu später), ergibt sich ein<br />
Aufwand von 6·8 = 48 Zuständen, also immer noch weniger als ein Fünftel des ursprünglichen Aufwandes.<br />
Ob der resultierende Gesamtcode genauso gut oder gar besser ist, wird im Folgenden ausführlich diskutiert.<br />
Prinzipiell unterscheiden wir zwei Arten der Codeverkettung.<br />
Serielle Verkettung<br />
• Codes sind seriell hintereinander angeordnet<br />
• Jeder nachfolgende Codierer codiert den gesamten Datenstrom inklusive der bereits erzeugten Redun-<br />
1