307 KB - Universität Bremen
307 KB - Universität Bremen
307 KB - 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.
Kanalcodierung I<br />
Dr.-Ing. Volker Kühn, Dr.-Ing. Dirk Wübben<br />
4.2.4 Terminierte Faltungscodes<br />
<strong>Universität</strong> <strong>Bremen</strong><br />
Fachbereich 1, ANT<br />
Durch das Anhängen von sogenannten Tailbit kann der Codierer am Ende der Informationsfolge wieder in einen<br />
bekannten Endzustand (in der Regel der Nullzustand) überführt werden. Damit lassen sich auch die letzten Bit<br />
zuverlässig schätzen. Die Anzahl der Tailbit entspricht exakt dem Gedächtnis des Codierers, die Wertigkeit der<br />
Tailbit hängt dagegen von dessen Struktur ab. Hier gilt<br />
• NSC-Codes: Anhängen von m Nullen<br />
• RSC-Codes: m Tailbit hängen vom letzten Zustand vor dem Anhängen der Tailbit ab (in Tabelle ablegen)<br />
Das Anhängen von Tailbit reduziert allerdings die Coderate, d.h. für eine Sequenz u mit N Informationsbit gilt<br />
bei einem 1/n-ratigen Faltungscode<br />
R Tail<br />
c<br />
=<br />
N<br />
N<br />
= Rc· . (4.11)<br />
n·(N+ m) N+ m<br />
Je größer N im Vergleich zur Einflusslänge bzw. dem Gedächtnis des Codierers ist, desto weniger fallen die<br />
angehängten Tailbit bzgl. der Coderate ins Gewicht. Die Beschreibung mittels Generatormatrix lautet nun:<br />
⎡<br />
⎤<br />
⎢<br />
G= ⎢<br />
⎣<br />
G0 G1 ··· Gm<br />
G0 G1 ···<br />
. ..<br />
4.2.5 Tailbiting convolutional codes<br />
. ..<br />
. .. ···<br />
G0 G1 ··· Gm<br />
⎥<br />
⎦<br />
mit Gi =[g1,i g2,i ... gn,i] (4.12)<br />
Sollen Datenpakete mit sehr niedriger Länge übertragen werden, wie es beispielsweise für moderne paketorientierte<br />
Übertragungsprotokolle vorgesehen ist, so führt das Anhängen von Tailbit allerdings doch zu einem<br />
merklichen Verlust der zur Verfügung stehenden Datenrate. Hier bieten sich die Tailbiting Convolutional Codes<br />
an, bei denen der Endzustand des Codierers mit dem Startzustand identisch ist. Daher sind keine Tailbits<br />
erforderlich. Für nicht-rekursive Codes kann der gesamte Informationsblock codiert und der Endzustand des<br />
Codierers bestimmt werden. Dann wird der Endzustand als Anfangszustand gewählt und erneut codiert. Man<br />
erhält einen quasi-zyklischen Faltungscode. Die Generatormatrix lautet<br />
⎡<br />
⎤<br />
⎢<br />
G= ⎢<br />
⎣ .<br />
G0 G1 ··· Gm<br />
Gm<br />
G0 G1 ··· Gm<br />
⎥<br />
. .. . .. . ..<br />
⎥<br />
G0 G1 ··· Gm<br />
⎥ .<br />
. .. . ..<br />
⎥<br />
. ⎥<br />
. ..<br />
⎥<br />
G0 G1⎦<br />
G1 ··· Gm G0<br />
4.3 Optimale Decodierung mit Viterbi-Algorithmus<br />
Wir wollen zunächst einige Vereinbarungen bzgl. der Nomenklatur treffen. Die Informationssequenz u besteht<br />
aus k Informationsbit und wird durch den Faltungscodierer in die codierte Sequenz<br />
x=(x1(0) ··· xn(0) ··· x1(N− 1) ··· xn(N− 1) )<br />
<br />
x(0)<br />
x(N− 1)<br />
4.3. OPTIMALE DECODIERUNG MIT VITERBI-ALGORITHMUS 89