Kapitel 2: Digitale Signale

Werbung
ZHAW, NTM2, Rumc, 11.5-1
11. Informationstheorie
11.5. Kanalkodierung: Faltungscodes
Inhaltsverzeichnis
1. EINLEITUNG ..................................................................................................................... 1
2. ENCODER ........................................................................................................................ 2
3. VITERBI-DEKODER.......................................................................................................... 6
Literatur
[1]
J.G. Proakis, M. Salehi, „Grundlagen der Kommunikationstechnik“, Pearson, 2004.
[2]
Lin S. und Costello D., „Error Control Coding“, Pearson, 2004.
[3]
Hufschmid M., „Information und Kommunikation, Grundlagen und Verfahren der
Informationsübertragung“, Teubner, 2006.
1. Einleitung
Die Faltungscodes unterscheiden sich von den Blockcodes hauptsächlich darin, dass der
Encoder Gedächtnis aufweist.
In den meisten modernen Nachrichtensystemen werden heute primär Faltungscodes für die
FEC (forward error correction) eingesetzt. Mit dem Viterbi-Dekoder steht ein optimaler, relativ
einfach zu implementierender Dekoder zur Verfügung, mit dem auch soft-decision decoding
realisierbar ist.
Faltungscodes weisen vergleichbare oder sogar höhere Performance auf als äquivalente
Block-Codes.
ZHAW, NTM2, Rumc, 11.5-2
2. Encoder
Ein (N,K,m)-Faltungsencoder mit Gedächtnis m kann als Schieberegisterschaltung mit K
Eingängen und N Ausgängen realisiert werden. Die N Ausgangsbits hängen von den K
Eingangsbits sowie den m∙K vergangenen Eingangsbits ab. Typischerweise sind N und K
kleine, ganze Zahlen.
Das Verhältnis von Informationsbitrate am Encoder-Eingang zur Codebitrate am EncoderAusgang wird als Code-Rate R=K/N bezeichnet. Je höher die Code-Rate R ist, desto grösser
ist die übertragene Informationsmenge pro Zeiteinheit, wenn die Übertragungsrate auf dem
Kanal fix ist.
Beispiel
In Abbildung 1 ist ein (N=2,K=1,m=2)-Faltungsencoder bzw. ein Faltungsencoder mit
Rate R=1/2 und Gedächtnis m=2 dargestellt.
x[2n]
... u[n] ...
TBit
u[n-1]
TBit
u[n-2]
... x[2n] x[2n+1] ...
x[2n+1]
Encoder
Abbildung 1: Faltungsencoder mit Rate R=1/2 und Gedächtnis m=2.
Der Encoder besteht aus K=1 Schieberegister mit m=2 Verzögerungselementen und
generiert für jedes Informationsbit u[n] zwei Codebits x[2n] und x[2n+1], welche nacheinander auf den Ausgang gelangen. Die beiden Codebits x[2n] und x[2n+1] sind vom
Informationsbit u[n], aber auch von den beiden vorhergehenden m∙K=2 Informationsbits
u[n-1] und u[n-2] abhängig, d.h:
x[2n] = u[n] + u[n-1] + u[n-2] und x[2n+1] = u[n] + u[n-2],
wobei „+“ hier die Modulo-2-Addition bzw. EXOR bezeichnet. Die Ausgangsfolgen x[2n]
und x[2n+1] entstehen eigentlich durch diskrete Faltung der Eingangsfolge u[n] mit den
Encoder-Impulsantworten bzw. den „Schieberegister-Generatoren“ [1 1 1] und [1 0 1],
was den Namen „Faltungsencoder“ erklärt.
Vergewissern Sie sich, dass die Informationsbitfolge u[n] = [1 0 1 1 0 0 ...], n ≥ 0, in die
Codebitfolge x[n] = [11 10 00 01 01 11 ...], n ≥ 0, encodiert wird, falls die Anfangsbits
Null waren, d.h. u[-2] = u[-1] = 0.
Der Faltungsencoder ist eine „finite state machine“. Das Input/Output-Verhalten kann mit
einem Zustandsdiagramm beschrieben werden, in dem die mK im Encoder gespeicherten
Bits die Zustände darstellen. Jeder Zustandsübergang ist dann durch die K Inputbits, die
den Übergang hervorrufen, und durch die resultierenden N Codebits spezifiziert.
ZHAW, NTM2, Rumc, 11.5-3
Beispiel
In Abbildung 2 ist das Zustandsdiagramm für den in Abbildung 1 dargestellten Faltungsencoder mit Rate R=1/2 und Gedächtnis m=2 dargestellt.
1 / 10
11
1 / 01
0 / 01
0 / 10
01
10
1 / 00
1 / 11
u[n] / x[2n] x[2n+1]
0 / 11
00
u[n-1] u[n-2]
0 / 00
Abbildung 2: Zustandsdiagramm für den Faltungsencoder in Abbildung 1.
Wenn sich der Encoder im Nullzustand [u[n-1] u[n-2]]=[0 0] befindet und das Inputbit
u[n] = 1 ist, werden die beiden Codebits [x[2n] x[2n+1]] = [1 1] generiert und der Encoder
wechselt in den Zustand [u[n] u[n-1]] = [1 0].
Es ist nun viel leichter als im Beispiel oben, die Codebitfolge x[n] = [11 10 00 01 01 11 ...]
für die Informationsbitfolge u[n] = [1 0 1 1 0 0 ...] zu bestimmen.
In der Praxis bevorzugt man zur Beschreibung eines Faltungscodes aber meistens das
Trellisdiagramm, mit dem die Zustandsübergänge in Abhängigkeit von der Zeit dargestellt
werden können. Im Trellisdiagramm werden vertikal alle 2mK Zustände und horizontal die
Zeit aufgetragen. Die erlaubten Zustandsübergänge werden mit Pfeilen markiert und zusätzlich mit den K Informationsbits, die sie hervorrufen, sowie den resultierenden N Codebits
beschriftet.
Beispiel
In Abbildung 3 ist das Trellisdiagramm für den in Abbildung 1 dargestellten Faltungsencoder mit Rate R=1/2 und Gedächtnis m=2 dargestellt. Es wird angenommen, dass
der Encoder am Anfang im Nullzustand ist und nach der Encodierung von 3 Informationsbits mit 2 sogenannten Tails-Bits (Nullen) in den Nullzustand zurückgesetzt wird. In der
Praxis werden natürlich sehr viel mehr Informationsbits als in diesem kleinen Beispiel
encodiert, bevor der Encoder allenfalls wieder in den Nullzustand zurückgesetzt wird.
In Abbildung 3 ist ersichtlich, dass der Encoder bei der Encodierung der Informationsbitfolge u[n] = [1 1 1 (0 0)] nacheinander die Zustände [00] -> [10] -> [11] usw. durchläuft
und dabei die Codebitfolge x[n] = [11 01 10 01 11] generiert.
ZHAW, NTM2, Rumc, 11.5-4
10
11
01
01
Zustand
u[n-1] u[n-2]
10
u[n]=1
01
10
11
01
10
10
10
10
00
u[n]=0
01
11
11
00
11
00
00
01
01
11
11
11
00
00
00
00
00
00
00
00
Zeit
Tb
0
u
x
1
11
2Tb
1
01
3Tb
1
10
4Tb
0
01
5Tb
0
11
tail bits
Abbildung 3: Zustandsdiagramm für den Faltungsencoder in Abbildung 1.
Die Pfade im Trellisdiagramm entsprechen den Codewörtern des Faltungscodes. Die Codewörter unterscheiden sich, weil nicht alle, sondern nur bestimmte Zustandsübergänge erlaubt
sind.
Für die Fehlerkorrekturfähigkeit eines Faltungscodes spielt die minimale Hammingdistanz
zwischen den Codewörtern eine wichtige Rolle. Zudem ist es wichtig, dass möglichst wenige
Codewörter die minimale Hammingdistanz untereinander aufweisen.
Die Faltungscodes sind lineare Codes. Deshalb müssen für die Bestimmung der minimalen
Hamming-Distanz nicht alle Paare von verschiedenen Codewörtern, sondern nur die NichtNull-Codewörter mit dem Nullcodewort x[n] = [00 ... 00] verglichen werden. Gesucht sind also
die Pfade mit dem kleinsten Hamming-Gewicht unter allen Pfaden, die einmal vom Nullpfad
weggehen und wieder mit dem Nullpfad verschmelzen. Oder mit anderen Worten: Gesucht
sind die Umwege zum Nullpfad mit der kleinsten Anzahl „1“. Die minimale Hamming-Distanz
wird bei den Faltungscodes als freie Distanz dfree (engl. free distance) bezeichnet.
Beispiel
Die freie Distanz im Trellisdiagramm in Abbildung 3 beträgt dfree = 5 und wird auf dem
kürzesten Umweg angenommen. Die Codewörter mit der kleinsten Hammingdistanz
zum Nullcodewort x=[00 00 00 00 00] lauten: x=[11 10 11 00 00], [00 11 10 11 00] und
[00 00 11 10 11].
In Tabelle 1 und Tabelle 2 sind für die Coderaten R=1/2 und R=1/3 und die Gedächtniswerte
m=2,...,8 je die Faltungscodes mit der optimalen, d.h. grössten freien Distanz dfree aufgeführt.
Sie werden Optimum Free Distance bzw. OFD-Codes genannt. Die Schieberegisterabgriffe
im Encoder bzw. die sogenannten Generatoren sind in „oktaler“ Form angegeben. An Hand
des in Abbildung 4 dargestellten Enocders sollte die Generator-Schreibweise klar werden.
ZHAW, NTM2, Rumc, 11.5-5
m
2
3
4
5
6
7
8
Generatoren
5, 7
15, 17
23, 35
53, 75
133, 171
247, 371
561, 753
dfree
5
6
7
8
10
10
12
Tabelle 1: OFD-Faltungscodes mit Rate R=1/2.
m
2
3
4
5
6
7
8
Generatoren
5, 7, 7
13, 15, 17
25, 33, 37
47, 53, 75
133, 145, 175
225, 331, 367
557, 663, 711
dfree
8
10
12
13
15
16
18
Tabelle 2: OFD-Faltungscodes mit Rate R=1/3.
Generator 1: 15 oktal bzw. [1 1 0 1]
x[n]
u[n]
Generator 2: 17 oktal bzw. [1 1 1 1]
Abbildung 4: OFD-Faltungscode mit Rate R=1/2 und m=3.
ZHAW, NTM2, Rumc, 11.5-6
3. Viterbi-Dekoder
Im Jahre 1967 entwickelte A.J. Viterbi einen Dekodieralgorithmus für Faltungscodes, der
heute meistens als Viterbi-Dekoder bezeichnet wird.
Betrachten wir zuerst die in Abbildung 5 dargestellte Übertragungsstrecke mit FaltungsEncoder und Viterbi-Dekoder. Die Informationsbitfolge u[n] wird in die Codebitfolge x[n] codiert, einem Träger aufmoduliert, über einen gedächtnislosen Kanal übertragen, empfangen
und demoduliert. Die Übertragungsstrecke vom Modulatoreingang bis zum Demodulatorausgang kann als binärsymmetrischer Kanal (BSC) aufgefasst werden. Das Rauschen auf
dem Kanal bzw. am Empfängereingang verursacht Übertragungsfehler, die mit der Wahrscheinlichkeit є auftreten.
u[n]
FaltungsEncoder
y[n]
x[n]
Kanal
Mod. / Tx
1
Rx/Demod.
1-ε
ε
x[n]
ViterbiDecoder
udec[n]
1
y[n]
ε
0
1-ε
0
Abbildung 5: Übertragungsstrecke mit Faltungsencoder, BSC und Viterbi-Dekoder.
Der Viterbi-Dekoder ist in dem Sinne optimal, dass er zur empfangenen Bitfolge y[n] die
am wahrscheinlichsten gesendete Codebitfolge xdec[n] findet1 und, durch Umkehrung der
Encodierung, die zugehörige Informationsbitfolge udec[n] bestimmt.
Im Viterbi-Algorithmus wird jedem Codewort x[n] im Trellis ein Kosten- bzw. Metrikwert M
zugeordnet, der die Abweichung des Codeworts x[n] vom Empfangswort y[n] misst. Der
Viterbi-Dekoder liest dann das zum Empfangswort y[n] ähnlichste Codewort xdec[n] aus.2
Die Gesamtmetrik eines Codeworts wird im Codetrellis bestimmt. Sie setzt sich additiv aus
den zugehörigen Zweigmetrikwerten zusammen. Die Teilsummen werden den Trelliszuständen zugeordnet, siehe Abbildung 6.
Der Metrikwert Mk[n] des Zustands k zum Zeitpunkt n entspricht der Summe des Metrikwerts
Mi[n-1] des Zustands i zum Zeitpunkt n-1 plus der zugehörigen Zweigmetrik mik[n-1], d.h.
Mk[n] = Mi[n-1] + mik[n-1] .
1
(1)
Dies gilt unter der Voraussetzung, dass alle Codeworte x[n] gleich häufig gesendet werden, bzw.
dass die Infobits u[n] statistisch unabhängig sind und Nullen und Einer gleich häufig sind. Das ist nach
der Quellenkomprimierung normalerweise auch fast der Fall.
2 Der Viterbi-Dekoder ist ein sogenannter Maximum-Likelihood-Dekoder.
ZHAW, NTM2, Rumc, 11.5-7
Mk[n]
mik[n-1]
Mi[n-1]
mjk[n-1]
Mj[n-1]
Abbildung 6: Die Viterbi-Metrik setzt sich additiv aus den Zweigmetriken zusammen.
Beim Übergang vom Zustand i zum Zustand k wird das N-Bit Zweigcodewort xik generiert.
Der Empfänger hat aber statt xik das N-Bit-Wort y[n-1] empfangen. Als Kostenfunktion bzw.
Zweigmetrik wird nun die Hamming-Distanz zwischen xik und y[n-1] gewählt, d.h.
mik[n-1] = dH(xik,y[n-1]) .
(2)
In Abbildung 6 ist ersichtlich, dass zwei (oder mehr) Codewörter bzw. Trellispfade zum
Zeitpunkt n den Zustand k durchlaufen. Das Teilcodewort, das zum Zeitpunkt n-1 den Zustand i durchlaufen hat, weist die Teilsumme Mi[n-1] + mik[n-1] auf. Das Teilcodewort, das
zum Zeitpunkt n-1 den Zustand j durchlaufen hat, weist die Teilsumme Mj[n-1] + mjk[n-1] auf.
Der Dekoder kann nun bereits einen Vorentscheid fällen und das Teilcodewort mit den kleinsten Teilkosten
Mk[n] = mini ( Mi[n-1] + dH(xik,y[n-1]) )
(3)
auslesen und so den Gewinnerpfad (engl. survivor) bestimmen. Die in (3) beschriebene
Operation wird manchmal auch als add-compare-select (ACS-) Operation bezeichnet.
Das am wahrscheinlichsten gesendete Codewort xdec erhält man, wenn man im Trellis vom
Ende her den Gewinnerpfaden entlang rückwärts zum Anfang geht und die entsprechenden
Codebits xdec[n] bzw. Informationsbits udec[n] abliest.
Beispiel
In Abbildung 7 ist der Viterbi-Dekoder zum Faltungscode in Abbildung 1 bzw. 3 darge-stellt, wenn das binäre Wort y empfangen worden ist.
Der Anfangszustand hat den Metrikwert M=0. Der Zustand [00] zum Zeitpunkt n=1 hat
den Metrikwert M = 0+2 = 2,
a) weil der vorhergehende Metrikwert 0 war und
b) weil beim zugehörigen Zustandsübergang das Zweigcodewort x00 = [00] generiert
wird, tatsächlich aber die beiden Bits y[1] = [11] empfangen worden sind, die
Hamming-Distanz in (3) also 2 beträgt.
ZHAW, NTM2, Rumc, 11.5-8
survivor
M=1
11
10
M=1
11
01
01
M=0
10
01
10
M=2 01
M=2
10
10
10
10
M=1 00
01
11
M=2
M=0
00
00
00
01
11
11
11
M=1
M=2
01
11
11
freie Wahl
M=4
00
00
M=3
M=2
00
00
00
00
M=1
00
y
11
11
10
01
11
udec
1
1
1
0
0
00
n
0
1
2
3
4
5
Abbildung 7: Viterbi-Dekoder zum Faltungsencoder in Abbildung 1 bzw. 3,
wenn der binäre Vektor y empfangen worden ist.
Der Zustand [10] zum Zeitpunkt n=1 hat den Metrikwert M = 0+0 = 0, weil der vorhergehende Metrikwert Null war und weil die Hammingdistanz zwischen dem Zweigcodewort
x01 = [11] und den tatsächlich empfangenen Bits y[1]= [11] Null ist.
Zum Zeitpunkt n=3 müssen zum ersten Mal survivors bestimmt werden, weil die entsprechenden Zustände zwei einlaufende Pfade aufweisen.
Zum Zeitpunkt n=4 erhält man beim Zustand [00] für die beiden einlaufenden Pfade den
gleichen Metrikwert M = 3. In diesem Fall sind beide Teilpfade gleich wahrscheinlich gesendet worden und es spielt keine Rolle, welcher Pfad als survivor bezeichnet wird.
Das am wahrscheinlichsten gesendete Codewort lautet xdec = [11 01 10 01 11]. Der
Dekoder gibt deshalb die dekodierten Bits udec = [1 1 1 0 0] aus. Das Empfangswort
y und das dekodierte Codewort xdec weisen die Hammingdistanz dH(xdec,y)= 1 auf.
Theoretisch kann der Viterbi-Dekoder die dekodierten Informationsbits udec erst ausgeben,
nachdem er alle Bits von y empfangen hat. Das kann zu einem merklichen Decoding-Delay
führen. Man kann aber zeigen, dass die Performance praktisch nicht verkleinert wird, wenn
der Decoding-Delay auf nur 5∙(m+1) Informationsbits beschränkt wird.
Der Aufwand des Viterbi-Dekoders, d.h. die Anzahl ACS-Operationen pro dekodiertem Bit,
ist proportional zur Anzahl Encoderzustände. Der Aufwand des Viterbi-Dekoders steigt deshalb exponentiell mit dem Gedächtnis m des Faltungsencoders. In der Praxis werden typischerweise Faltungscodes mit Gedächtnis m = 2...8 eingesetzt.
ZHAW, NTM2, Rumc, 11.5-9
Jetzt kehren wir zur Übertragungsstrecke in Abbildung 5 zurück. Im Demodulator wird hart
entschieden, ob eine Eins oder eine Null gesendet worden ist, und diese Entscheidung wird
als Input für den Dekoder verwendet. Das ist offensichtlich suboptimal! Wenn der Demodulator nämlich einen Wert von 0.5 empfängt, präsentiert er dem Dekoder mit einer Wahrscheinlichkeit von 50% den falschen Wert (eine Eins oder eine Null), statt ihm mitzuteilen, dass die
Wahrscheinlichkeiten gleich hoch sind, dass eine Eins oder eine Null gesendet worden ist.
Beispiel
Stellen Sie sich vor, Sie müssten entscheiden, ob am nächsten Tag eine Freiluftveranstaltung durchgeführt wird oder nicht. Sie verlassen sich u.a. auf die Wetterprognose.
Leider wird Regen gemeldet, obwohl die Meteorologen nur zu 51% „sicher“ sind. Wäre
es Ihnen in diesem Fall nicht lieber gewesen, wenn statt der harten Prognose „morgen
regnet es“ die weichere Prognose „morgen regnet es zu 51%“ gemeldet worden wäre?
Bei der Entscheidung bzw. der Quantisierung am Demodulatorausgang geht also Information
verloren. Es wäre deshalb besser, wenn der Demodulator dem Dekoder reellwertigen Demodulationswerte oder zumindest weichere Entscheidungen weitergeben würde wie z.B. die
folgenden vier Entscheidungen: „es war ganz bestimmt eine 1“, „es könnte eine 1 gewesen
sein“, „es könnte eine 0 gewesen sein“, „es war ganz bestimmt eine 0“.
Den letzten Fall nennt man soft-decision decoding, weil der Dekoder vom Demodulator softdecisions statt hard-decisions erhält. In der Übertragungsstrecke kann dann die Strecke vom
Modulatoreingang bis zum Demodulatorausgang als AWGN-Kanal aufgefasst werden, siehe
Abbildung 8.
u[n]
FaltungsEncoder
y[n]
x[n]
Kanal
Mod. / Tx
Rx/Demod.
ViterbiDecoder
udec[n]
AWGN
z[n]
0 -> 1
1 -> -1
x[n]
y[n]
W >1 Bit
Quantisierung
soft-decisions
Abbildung 8: Übertragungsstrecke mit Encoder, AWGN-Kanal und Viterbi-Dekoder.
Man kann zeigen, dass man mit soft-decision-decoding zusätzlich eine 2 dB bessere (BERversus-SNR-) Performance erhält im Vergleich zu hard-decision-decoding, und zwar dann
schon, wenn der Demodulatorausgang nur auf W = 3 oder 4 Bit quantisiert wird, statt auf
W=1 Bit wie bei hard-decision decoding.
Der Viterbi-Dekoder kann einfach für soft-decision decoding erweitert werden, indem die
folgende Korrelationsmetrik maximiert wird
Mk[n] = maxi ( Mi[n-1] + xik∙y[n-1]T ) .
(4)
Wie bereits erwähnt, sucht der Viterbi-Dekoder das zum Empfangswort y ähnlichste Codewort xdec.
ZHAW, NTM2, Rumc, 11.5-10
Beispiel
In Abbildung 9 ist der Viterbi-Dekoder zum Faltungscode in Abbildung 1 bzw. 3
dargestellt, wenn der reellwertige Vektor y empfangen worden ist.
M=7
M=4.5
-11
11
11
1-1
1-1
1-1
M=2.5
1-1
M=0.5
M=-2.6
10
10
10
-11
-11
-11
11
M=0.5
01
-1-1
-1-1
M=0
00
y
-1-1
M=-2.5
11
00
-1.10 -1.40
udec
1
11
-1-1
M=-2.4
00
M=9.25
M=2
01
01
-1-1
-1-1
M=1.75
M=0.5
11
00
11
00
M=11.10
11
1.05 -0.95
-1.25 1.25
1.25 -1.00
-0.90 -0.95
1
1
0
0
00
n
0
1
2
3
4
5
Abbildung 9: Viterbi-Dekoder zum Faltungsencoder in Abbildung 1 bzw. 3,
wenn der reellwertige Vektor y empfangen worden ist.
Der Anfangszustand hat den Metrikwert M=0. Der Zustand [00] zum Zeitpunkt n=1 hat
den Metrikwert M = 0 + 1∙(-1.1) + 1∙(-1.4) = -2.5, weil
a) der vorhergehende Metrikwert 0 war und weil
b) beim zugehörigen Zustandsübergang das Zweigcodewort x00 = [11] generiert wird,
tatsächlich aber die beiden Werte y[1] = [-1.1 -1.4] empfangen worden sind (zwei
ganz sichere -1), und die Korrelation bzw. das Skalarprodukt x00·yT[1] = -2.5 ergibt.
Bei der Bestimmung der Survivor zum Zeitpunkt n=3 überleben nur die Pfade mit der
grössten Metrik bzw. der grössten Ähnlichkeit mit dem Teil-Empfangsvektor.
Alle anderen Schritte sind vollständig analog zum Beispiel zur Abbildung 7.
In Abbildung 10 ist die BER-versus-SNR-Performance einer BPSK-Datenübertragung über
einen AWGN-Kanal dargestellt, einmal uncodiert und einmal mit Rate R=1/2, m=2 OFD
Faltungscodierung mit soft-decision Viterbi-Decoding. Für Bitfehlerraten BER < 10-5 resultiert
ein Codierungsgewinn G ≈ 4 dB gegenüber dem uncodierten Fall! Das ist beachtlich, wenn
man bedenkt, dass der verwendete Faltungscode nur 4 Zustände aufweist.
ZHAW, NTM2, Rumc, 11.5-11
uncodiert
R=1/2, m=2
Faltungscode
(soft-decision
decoding)
G
Abbildung 10: Beispiel eines Codierungsgewinn G durch Faltungscodierung.
Das Signal-zu-Rausch-Verhältnis in Abbildung 10 muss übrigens in Eb/N0 gemessen werden,
um die beiden Systeme mit unterschiedlicher Rate fair zu vergleichen. Eb bezeichnet die
Energie pro Informationsbit und N0 die Rauschleistungsdichte (z.B. -174 dBm pro Hz auf
einem AWGN-Kanal). Die Energie pro Codebit beträgt im Beispiel in Abbildung 10 nur R·Eb =
Eb/2, weil ein Codebit nur R=1/2 mal so lange dauert wie ein Informationsbit. Ein einzelnes
Codebit ist deshalb viel fehlerbehafteter als ein einzelnes Informationsbit. Durch die
(grossen) Hamming-Distanzen unter den zugelassen Codebitfolgen resultiert am Ende aber
doch noch ein Codierungsgewinn.
Mit Faltungscodes mit 64 Zuständen und mehr kann typischerweise ein Codierungsgewinn
von G= 6-7 dB auf einem AWGN-Kanal und mit soft-decision Viterbi-decoding realisiert
werden!
Herunterladen