01.03.2013 Aufrufe

307 KB - Universität Bremen

307 KB - Universität Bremen

307 KB - Universität Bremen

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!