Exercise 3.09Z: Viterbi Algorithm again
Die Grafik zeigt das Trellis des Faltungscodes gemäß Aufgabe 3.6, gekennzeichnet durch folgende Größen:
- Rate 1/2 ⇒ k=1, n=2,
- Gedächtnis m=1,
- Übertragungsfunktionsmatrix G(D)=(1, 1+D),
- Länge der Informationssequenz: L=4,
- Sequenzlänge inklusive Terminierung: L′=L+m=5.
Anhand dieser Darstellung soll die Viterbi–Decodierung schrittweise nachvollzogen werde, wobei von der folgenden Empfangssequenz auszugehen ist: y_=(11,01,01,11,01).
In das Trellis eingezeichnet sind:
- Der Initialwert Γ0(S0) für den Viterbi–Algorithmus, der stets zu 0 gewählt wird.
- Die beiden Fehlergrößen für den ersten Decodierschritt (i=1) erhält man mit y_1=(11) wie folgt:
- Γ1(S0) = Γ0(S0)+dH((00),(11))=2,
- Γ1(S1) = Γ0(S0)+dH((11),(11))=0.
- Die Fehlergrößen zum Schritt i=2 ⇒ y_2=(01) ergeben sich durch folgende Vergleiche:
- Γ2(S0) = min[Γ1(S0)+dH((00),(01)),Γ1(S1)+dH((01),(01))]
- ⇒Γ2(S0) = min[2+1,0+0]=0,
- Γ2(S1) = min[Γ1(S0)+dH((11),(01)),Γ1(S1)+dH((10),(01))]
- ⇒Γ2(S1) = min[2+1,0+2]=2.
In gleicher Weise sollen Sie
- die Fehlergrößen zu den Zeitpunkten i=3, i=4 und i=5 (Terminierung) berechnen, und
- die jeweils ungünstigeren Wege zu einem Knoten Γi(Sμ) eliminieren. In der Grafik ist dies für i=2 durch punktierte Linien angedeutet.
Anschließend ist der durchgehende Pfad von Γ0(S0) bis Γ5(S0) zu finden, wobei die Rückwärtsrichtung zu empfehlen ist.
Verfolgt man den gefundenen Pfad in Vorwärtsrichtung, so erkennt man
- die wahrscheinlichste Codesequenz z_ (im Idealfall gleich x_) an den Beschriftungen,
- die wahscheinlichste Informationssequenz v_ (im Idealfall gleich u_) an den Farben.
Hinweis:
- Die Aufgabe gehört zum Kapitel Decodierung von Faltungscodes.
Fragebogen
Musterlösung
- Γ3(S0) = min[0+dH((00),(01)),2+dH((01),(01))]=min[0+1,2+0]=1_,
- Γ3(S1) = min[0+dH((11),(01)),2+dH((10),(01))]min[0+1,2+2]=1_.
Eliminiert werden also die beiden Teilpfade, die zum Zeitpunkt i=2 (also beim dritten Decodierschritt) vom Zustand S1 ausgehen ⇒ Punktierung in der Grafik.
(2) Analog zur Teilaufgabe (1) erhält man mit y4=(11):
- Γ4(S0) = min[1+dH((00),(11)),1+dH((01),(11))]=min[1+2,1+1]=2_,
- Γ4(S1) = min[1+dH((11),(11)),1+dH((10),(11))]=min[1+0,1+1]=1_
⇒ Eliminierung der beiden Teilpfade S0→S0 und S1→S1 imvierten Decodierschritt.
(3) Für i=5 ⇒ „Terminierung” erhält man mit y_5=(01):
- Γ5(S0) = min[2+dH((00),(01)),1+dH((01),(01))]min[2+1,1+0]=1_.
Zu eliminieren ist hier der Teilpfad S0→S0.
(4) Die Rückwärtssuche des durchgehenden Pfades von Γ5(S0) nach Γ0(S0) liefert
- S0←S1←S0←S0←S1←S0.
In Vorwärtsrichtung ergibt dies den Pfad S0→S1→S0→S0→S1→S0 und die damit die
- die wahrscheinlichste Codesequenz z_=(11,01,00,11,01),
- die wahrscheinlichste Informationssequenz v_=(1,0,0,1,0).
Richtig sind also die Lösungsvorschläge 1 und 3:
- Ein Vergleich mit dem vorgegebenen Empfangsvektor y_=(11,01,01,11,01) zeigt, dass bei der Übertragung das sechste Bit verfälscht wurde.
(5) Ohne Terminierung ⇒ endgültige Entscheidung bei i=4 hätte es zwei durchgehende Pfade gegeben:
- von S0→S1→S0→S1→S0 (gelb eingezeichnet),
- von S0→S1→S0→S0→S1 (den letztendlich richtigen Pfad).
Die Zwangsentscheidung zum Zeitpunkt i=4 hätte hier wegen Γ4(S1)<Γ4(S0) zum zweiten Pfad und damit zum Ergebnis v_=(1,0,0,1) geführt.
- Im betrachteten Beispiel also zur gleichen Entscheidung wie in der Teilaufgabe (4) mit Terminierungsbit.
- Es gibt aber viele Konstellationen, bei denen erst das Terminierungsbit die richtige und sichere Entscheidung ermöglicht.