Faltungscodes (auch konvolutionelle Codes, englisch convolutional codes) sind eine Klasse von Kanalcodes, die einen kontinuierlichen Bitstrom laufend codieren — anders als Blockcodes, die Nachrichten in feste Blöcke zerlegen. Sie gehören zur Vorwärtsfehlerkorrektur (FEC), weil der Empfänger Übertragungsfehler ohne Rückkanal selbst korrigiert.

Aufbau: Schieberegister und XOR-Gatter

Ein Faltungscodierer besteht aus einem Schieberegister mit m Speicherstufen und mehreren Modulo-2-Addern (XOR-Gattern). Pro Zeittakt wandert ein Informationsbit durch das Register, während die Adder n Codebits aus der aktuellen und den vergangenen Eingaben bilden. Die Coderate R = k/n gibt das Verhältnis von Nutzbits k zu gesendeten Codebits n an — R = 1/2 bedeutet ein Nutzbit plus ein Redundanzbit pro Takt. Die Einflusslänge (englisch constraint length) K = m + 1 bestimmt, über wie viele Takte sich ein Eingabebit auswirkt: Je länger das Gedächtnis, desto besser die Korrekturfähigkeit, aber desto aufwendiger die Decodierung.

Decodierung und Abgrenzung zu Blockcodes

Ein Faltungscode lässt sich als Trellis-Diagramm darstellen, in dem jeder Pfad einer möglichen Eingabesequenz entspricht. Der Empfänger sucht darin den wahrscheinlichsten Pfad — typischerweise mit dem Viterbi-Algorithmus. Gegenüber Blockcodes wie Reed-Solomon arbeiten Faltungscodes ohne Blockgrenzen und eignen sich besonders für Kanäle mit gleichmäßig verteilten Einzelfehlern; die freie Distanz übernimmt die Rolle, die beim Blockcode die Mindestdistanz (siehe Hamming-Distanz) spielt.

Anwendungen

  • GSM (2G): Faltungscode mit Rate 1/2 und Einflusslänge K = 5
  • UMTS (3G): Rate 1/2, K = 9
  • WLAN nach IEEE 802.11a/g: Rate 1/2, K = 7
  • DVB-T, Satelliten- und Tiefraumfunk (z. B. Voyager)

Verwandte Grundlagen: Kanalcodierung, Turbo-Code.