Turbo-Codes sind Codes zur Kanalcodierung auf störanfälligen Übertragungssystemen (z.B. Funksystemen) und ermöglichen dem Empfänger, eine gewisse Anzahl von Übertragungsfehlern zu korrigieren.
Ein Turbo-Codierer besteht aus mindestens 2 parallel geschalteten Faltungs-Codierern. Während der erste Faltungscodierer die Nutzdaten in unveränderter Form faltet, bekommen die anderen Faltungscodierer als Eingangssignal die Nutzdaten in veränderter Reihenfolge (Interleaving). Entsprechend werden auf Empfängerseite auch mehrere Faltungs-Decodierer parallel betrieben. Diese Decodierer tauschen untereinander Informationen zur Fehlerkorrektur aus, wodurch sich für einen vergleichsweise geringen algorithmischen Aufwand eine sehr leistungsstarke Fehlerkorrektur ergibt.
Beschreibung
Turbo-Codes sind parallel verkettete systematische Faltungs-Codes. Die Verkettung erfolgt senderseitig durch die mehrfache Encodierung der einzelnen Faltungscodes, wobei jeweils eine veränderte Bitfolge zur Encodierung herangezogen wird, um die Paritäten der verschiedenen Komponenten (Faltungscodes) voneinander zu dekorrelieren (möglichst geringe statistische Abhängigkeit).
Die unterschiedlichen Bitfolgen entstehen in einem Prozess, der Interleaving genannt wird. Hierbei wird die zu sendende Bitfolge (Infowort) verwürfelt, mit einem möglichst hohen Maß an Zufälligkeit, woraus ein hoher Abstand benachbarter Bits entstehen soll.
Um auch höhere Coderaten zu ermöglichen, werden periodisch Paritätsbits der Komponenten punktiert. Punktieren heißt, dass ein Bit nicht gesendet wird, weshalb es auf Empfängerseite als gleichwahrscheinlich empfangen betrachtet wird (alle möglichen Empfangswerte haben die gleiche Wahrscheinlichkeit).
Mithilfe einer iterativen Dekodierung (De-/interleaven, BCJR-Algorithmus) werden die anhand der Systematik der Encodierung indirekt verknüpften Päritäten unterschiedlicher Komponenten zu einer sehr starken Fehlerkorrektur genutzt.
Derzeitiger Stand der Forschung ist, dass die theoretischen Schranken des Informationsgehalts nach Shannon nur mit Hilfe iterativ decodierter Kanalcodes approximiert werden können (Turbo-Codes, LDPC-Codes).
Anwendungsbeispiele
- In UMTS werden neben Faltungs-Codes auch Turbo-Codes eingesetzt.
Siehe auch
Weitere fehlerkorregierende Codes finden sich auf der Liste fehlerkorrigierender Codes.