Konvolutionscodes
Konvolutionscodes sind eine Klasse fehlerkorrigierender Codes, die Datenströme durch Verschieberegister mit Gedächtnis verarbeiten. Im Gegensatz zu Blöcken werden Daten kontinuierlich verarbeitet und pro Zeiteinheit mehrere Ausgabebits aus Eingabebits erzeugt. Typischerweise wird ein Konvolutionscode durch die Rate k/n beschrieben: k Eingabebits pro Zeiteinheit liefern n Ausgabebits. Das Gedächtnis m des Codes bestimmt, über wie viele vergangene Bits hinaus die aktuellen Ausgabebits beeinflusst werden; die Konstraint-Länge v beträgt meist m+1. Die Struktur lässt sich durch Generatorpolynome G(D)=[g1(D),…,gn(D)] oder durch Zustandsdiagramme darstellen, wobei jeder Ausgang von einer Verknüpfung aktueller und verzögerter Eingaben abhängt.
Der Encoder wird oft als Zustandsmaschine realisiert, in der die Eingaben durch Verschieberegister mit Feedback- bzw.
Die Dekodierung erfolgt typischerweise über den Viterbi-Algorithmus, der die wahrscheinlichste Pfadfolge durch den Zustandsgraphen bestimmt (maximum-likelihood).
Anwendungen finden sich in digitalen Kommunikationssystemen wie Modems, Mobilfunk, Satellitenkommunikation und DVB/HD-Übertragungen. Historisch entstanden Konvolutionscodes in
---