Difference between revisions of "Aufgaben:Exercise 3.11: Viterbi Path Finding"

From LNTwww
(Die Seite wurde neu angelegt: „{{quiz-Header|Buchseite=Kanalcodierung/Decodierung von Faltungscodes }} [[File:|right|]] ===Fragebogen=== <quiz display=simple> {Multiple-Choice Fra…“)
 
 
(28 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{quiz-Header|Buchseite=Kanalcodierung/Decodierung von Faltungscodes
+
{{quiz-Header|Buchseite=Channel_Coding/Decoding_of_Convolutional_Codes}}
  
 +
[[File:P_ID2694__KC_A_3_11.png|right|frame|Evaluated trellis diagram]]
 +
One result of&nbsp; [[Aufgaben:Exercise_3.10:_Metric_Calculation| $\text{Exercise 3.10}$]]&nbsp; was adjacent trellis evaluation in terms of metrics&nbsp; ${\it \Lambda}_i(S_{\mu})$.&nbsp;
 +
*At all decoding steps&nbsp; $i$&nbsp; the&nbsp; $($in general$)$&nbsp; $2^m = 4$&nbsp; metrics were determined,&nbsp; selecting for each node the larger of two comparison values.&nbsp;
  
 +
*The branch with the lower value was discarded. One can recognize discarded branches in the graph by dotted lines.
  
  
 +
Otherwise,&nbsp; the same conditions apply as for&nbsp; [[Aufgaben:Exercise_3.10:_Metric_Calculation| $\text{Exercise 3.10}$]].&nbsp; For example,&nbsp; also in the adjacent graph,&nbsp; a red arrow indicates the information bit&nbsp; $u_i = 0$&nbsp; and a blue arrow stands for&nbsp; $u_i = 1$.
  
 +
In the present exercise we consider the second and important part of the Viterbi algorithm,&nbsp; namely the search for the&nbsp; "surviving paths"&nbsp; ${\it \Phi}_i(S_{\mu})$.&nbsp; These are at time&nbsp; $i$&nbsp; in state&nbsp; $S_{\mu}$&nbsp; with&nbsp;$\mu \in \{1,\ 2,\ 3,\ 4 \}$.&nbsp; The search is best organized in the backward direction&nbsp; $($i.e.,&nbsp; from bottom to top in the graph$)$.
  
}}
+
At the end time&nbsp; $($in the example&nbsp; $i = 7)$&nbsp; there is only one surviving path&nbsp; ${\it \Phi}_7(S_0)$ due to termination.&nbsp; From this it is possible to extract:
 +
* the sequence&nbsp; $\underline{z}$ &nbsp; selected by the decoder&nbsp; $($short:&nbsp; "decoder sequence"$)$&nbsp;  &#8658; &nbsp; highest possible probability&nbsp; ${\rm Pr}(\underline{z} = \underline{x})$,
  
[[File:|right|]]
+
* the associated information sequence&nbsp; $\underline{v}$&nbsp; with the greatest possible probability&nbsp; ${\rm Pr}(\underline{v} = \underline{u})$.
  
  
===Fragebogen===
+
A decision at an earlier time,&nbsp; for example at&nbsp; $i = 5$,&nbsp; does not always satisfy the maximum likelihood criterion.&nbsp; Here there are four surviving paths&nbsp; ${\it \Phi}_5(S_0), \hspace{0.05cm}\text{ ...} \hspace{0.1cm} , \ {\it \Phi}_5(S_3)$, which at time&nbsp; $i = 5$&nbsp; are in states&nbsp; $S_0, \hspace{0.05cm}\text{ ...} \hspace{0.1cm} , \ S_3$.
 +
*One of these four paths is certainly part of the maximum likelihood path,&nbsp; which is the best possible path for&nbsp; $i &#8594; &#8734;$&nbsp; $($at termination significantly earlier,&nbsp; here at&nbsp; $i = 7)$.
  
 +
*But if a constraint decision is to be made already at time&nbsp; $i = 5$,&nbsp; one usually chooses the path&nbsp; ${\it \Phi}_5(S_{\mu})$&nbsp; with the largest metric at that time&nbsp; ${\it \Lambda}_5(S_{\mu})$.
 +
 +
 +
 +
 +
 +
<u>Hints:</u>
 +
*This exercise belongs to the chapter&nbsp; [[Channel_Coding/Decoding_of_Convolutional_Codes| "Decoding of Convolutional Codes"]].
 +
 +
*Reference is made in particular to the section&nbsp; [[Channel_Coding/Decoding_of_Convolutional_Codes#Evaluating_the_trellis_in_the_error-free_case_.E2.80.93_Path_search|"Evaluating the trellis in the error-free case &ndash; Path finding"]].
 +
 +
 +
 +
 +
 +
===Questions===
 
<quiz display=simple>
 
<quiz display=simple>
{Multiple-Choice Frage
+
{For which estimated sequence&nbsp; $\underline{z}$&nbsp; $($for the encoded sequence&nbsp; $\underline{z})$&nbsp; does the decision fall at time&nbsp; $i = 7$?
|type="[]"}
+
|type="()"}
- Falsch
+
- $\underline{z} = (11, \, 10, \, 00, \, 01, \, 01, \, 11, \, 00)$,
+ Richtig
+
+ $\underline{z} = (00, \, 11, \, 10, \, 00, \, 01, \, 01, \, 11)$,
 +
- $\underline{z} = (00, \, 11, \, 01, \, 01, \, 00, \, 10, \, 11)$.
  
 
+
{How many transmission errors have occurred&nbsp;  $($at least$)$?
{Input-Box Frage
 
 
|type="{}"}
 
|type="{}"}
$\alpha$ = { 0.3 }
+
$N_{\rm bit\:error} \ = \ ${ 3 3% }  
  
 +
{Which information sequence&nbsp; $\underline{v}$&nbsp; does the Viterbi decoder choose?
 +
|type="()"}
 +
+ $\underline{v} = (0, \, 1, \, 0, \, 1, \, 1, \, 0, \, 0)$,
 +
- $\underline{v} = (1, \, 0, \, 1, \, 1, \, 0, \, 0, \, 0)$,
 +
- $\underline{v} = (0, \, 0, \, 0, \, 0, \, 0, \, 0, \, 0)$.
  
 +
{Would a final&nbsp; $($and correct$)$&nbsp; decision have been possible already at&nbsp; $i = 6$?
 +
|type="()"}
 +
- Yes.
 +
+ No.
  
 +
{What surviving paths exist at time&nbsp; $i = 5$?
 +
|type="[]"}
 +
+ $S_0 &#8594; S_0 &#8594; S_1 &#8594; S_3 &#8594; S_2 &#8594; S_0$,
 +
+ $S_0 &#8594; S_0 &#8594; S_1 &#8594; S_3 &#8594; S_2 &#8594; S_1$,
 +
+ $S_0 &#8594; S_1 &#8594; S_2 &#8594; S_1 &#8594; S_3 &#8594; S_2$,
 +
+ $S_0 &#8594; S_0 &#8594; S_1 &#8594; S_2 &#8594; S_1 &#8594; S_3$.
 +
 +
{Which path would you choose at time&nbsp; $i = 5$?
 +
|type="()"}
 +
- $S_0 &#8594; S_0 &#8594; S_1 &#8594; S_3 &#8594; S_2 &#8594; S_0$,
 +
- $S_0 &#8594; S_0 &#8594; S_1 &#8594; S_3 &#8594; S_2 &#8594; S_1$,
 +
+ $S_0 &#8594; S_1 &#8594; S_2 &#8594; S_1 &#8594; S_3 &#8594; S_2$,
 +
- $S_0 &#8594; S_0 &#8594; S_1 &#8594; S_2 &#8594; S_1 &#8594; S_3$.
 +
 +
{But which of the paths would probably be the right one?
 +
|type="()"}
 +
- $S_0 &#8594; S_0 &#8594; S_1 &#8594; S_3 &#8594; S_2 &#8594; S_0$,
 +
- $S_0 &#8594; S_0 &#8594; S_1 &#8594; S_3 &#8594; S_2 &#8594; S_1$,
 +
- $S_0 &#8594; S_1 &#8594; S_2 &#8594; S_1 &#8594; S_3 &#8594; S_2$,
 +
+ $S_0 &#8594; S_0 &#8594; S_1 &#8594; S_2 &#8594; S_1 &#8594; S_3$.
 
</quiz>
 
</quiz>
  
===Musterlösung===
+
===Solution===
 
{{ML-Kopf}}
 
{{ML-Kopf}}
'''1.'''
+
'''(1)'''&nbsp; Correct is the&nbsp; <u>proposed solution 2</u>:
'''2.'''
+
*Unambiguously find the surviving path by searching backwards,&nbsp; i.e.,&nbsp; from node&nbsp; ${\it \Lambda}_7(S_0)$&nbsp; to node&nbsp; ${\it \Lambda}_0(S_0)$.
'''3.'''
+
'''4.'''
+
*Using the 2-bit sequences&nbsp; $(00, \, 01, \, 10$ or $11)$&nbsp; given at the transitions,&nbsp; we obtain in the forward direction the result according to&nbsp; <u>proposition 2</u>:
'''5.'''
+
:$$\underline{z} = \big (00\hspace{0.05cm}, 11\hspace{0.05cm}, 10\hspace{0.05cm}, 00\hspace{0.05cm}, 01\hspace{0.05cm}, 01\hspace{0.05cm}, 11\hspace{0.03cm} \big ) \hspace{0.05cm}.$$
'''6.'''
+
 
'''7.'''
+
*One  not reach the final node&nbsp; ${\it \Lambda}_7(S_0)$&nbsp; along other paths.
{{ML-Fuß}}
+
 
 +
 
 +
 
 +
'''(2)'''&nbsp; By comparing the decoder sequence&nbsp; $\underline{z}$&nbsp; selected in subtask&nbsp; '''(1)'''&nbsp; with the received sequence
 +
:$$\underline{y} = \big (01\hspace{0.05cm}, 11\hspace{0.05cm}, 00\hspace{0.05cm}, 01\hspace{0.05cm}, 01\hspace{0.05cm}, 01\hspace{0.05cm}, 11\hspace{0.03cm} \big ),$$
 +
 
 +
one detects&nbsp; <u>three bit errors</u>&nbsp; at positions&nbsp; '''2''',&nbsp; '''5''',&nbsp; and&nbsp; '''8'''.
 +
 +
*If a encoded sequence&nbsp; $\underline{x} &ne; \underline{z}$&nbsp; was sent,&nbsp; there can of course be more.
 +
 +
*Because of the final value&nbsp; ${\it \Lambda}_7(S_0) = 8$&nbsp; or&nbsp; ${\it \Gamma}_7(S_0) = 3$&nbsp; &ndash; see [[Aufgaben:Exercise_3.10:_Metric_Calculation|$\text{Exercise 3.10}$]]&nbsp; &ndash; but one can assume that a correct decision &nbsp; &#8658; &nbsp; $\underline{z} = \underline{x}$&nbsp; has been made.
 +
 
 +
 
 +
[[File:P_ID2697__KC_A_3_11_ML_neu.png|right|frame|Viterbi path finding]]
 +
'''(3)'''&nbsp; Correct is the&nbsp; <u>proposed solution 1</u>:
 +
*From the colors of the surviving path&nbsp; &ndash; red represents&nbsp; $u_i = 0$&nbsp; and blue represents&nbsp; $u_i = 1$&nbsp; &ndash;&nbsp; one can see the correctness of&nbsp; <u>solution proposal 1</u>:&nbsp; red &ndash; blue &ndash; red &ndash; blue &ndash; blue &ndash; red &ndash; red.
 +
 +
*It should be noted that the actual information sequence&nbsp; $\underline{u}$&nbsp; is only of length&nbsp; $L = 5$.&nbsp; Only by termination one arrives at the total length&nbsp; $L' = L + m = 7$.
 +
 
 +
 
 +
'''(4)'''&nbsp; At time&nbsp; $i = 6$&nbsp; there are still two surviving paths.&nbsp;
 +
*A decision could be forcibly made based on the larger metric.&nbsp;
 +
 
 +
*However,&nbsp; because of&nbsp; ${\it \Lambda}_6(S_0) = {\it \Lambda}_6(S_2) = 6$&nbsp; this is not possible in our example &nbsp;&#8658;&nbsp; <u>No</u>.
  
  
 +
'''(5)'''&nbsp; The graph shows that&nbsp; <u>all proposed solutions</u>&nbsp; are correct.&nbsp; The paths are labeled&nbsp; ${\it \Phi}_5(S_0)$, ...  , ${\it \Phi}_5(S_3)$.
  
[[Category:Aufgaben zu  Kanalcodierung|^3.4 Decodierung von Faltungscodes
 
  
 +
'''(6)'''&nbsp; The constraint decision at&nbsp; time $i = 5$&nbsp; would select the path with the largest metric&nbsp; ${\it \Lambda}_5(S_{\mu})$, <br>i.e.,&nbsp; the path&nbsp; ${\it \Phi}_5(S_2)$&nbsp; corresponding to&nbsp; <u>proposition 3</u>.
  
  
 +
'''(7)'''&nbsp; Based on our solution to subtask&nbsp; '''(1)''',&nbsp; the path&nbsp; ${\it \Phi}_5(S_3)$&nbsp; according to&nbsp; <u>proposition 4</u>&nbsp; would have been the better choice.&nbsp; This is part of the path to&nbsp; ${\it \Phi}_7(S_0)$.
 +
 +
*At time&nbsp; $i = 5$,&nbsp; however,&nbsp; there is still nothing in favor of this choice.
 +
 +
*The&nbsp; (ultimately correct)&nbsp; path is only highlighted by the two termination bits.
 +
{{ML-Fuß}}
  
  
  
^]]
+
[[Category:Channel Coding: Exercises|^3.4 Decoding of Convolutional Codes^]]

Latest revision as of 16:06, 19 November 2022

Evaluated trellis diagram

One result of  $\text{Exercise 3.10}$  was adjacent trellis evaluation in terms of metrics  ${\it \Lambda}_i(S_{\mu})$. 

  • At all decoding steps  $i$  the  $($in general$)$  $2^m = 4$  metrics were determined,  selecting for each node the larger of two comparison values. 
  • The branch with the lower value was discarded. One can recognize discarded branches in the graph by dotted lines.


Otherwise,  the same conditions apply as for  $\text{Exercise 3.10}$.  For example,  also in the adjacent graph,  a red arrow indicates the information bit  $u_i = 0$  and a blue arrow stands for  $u_i = 1$.

In the present exercise we consider the second and important part of the Viterbi algorithm,  namely the search for the  "surviving paths"  ${\it \Phi}_i(S_{\mu})$.  These are at time  $i$  in state  $S_{\mu}$  with $\mu \in \{1,\ 2,\ 3,\ 4 \}$.  The search is best organized in the backward direction  $($i.e.,  from bottom to top in the graph$)$.

At the end time  $($in the example  $i = 7)$  there is only one surviving path  ${\it \Phi}_7(S_0)$ due to termination.  From this it is possible to extract:

  • the sequence  $\underline{z}$   selected by the decoder  $($short:  "decoder sequence"$)$  ⇒   highest possible probability  ${\rm Pr}(\underline{z} = \underline{x})$,
  • the associated information sequence  $\underline{v}$  with the greatest possible probability  ${\rm Pr}(\underline{v} = \underline{u})$.


A decision at an earlier time,  for example at  $i = 5$,  does not always satisfy the maximum likelihood criterion.  Here there are four surviving paths  ${\it \Phi}_5(S_0), \hspace{0.05cm}\text{ ...} \hspace{0.1cm} , \ {\it \Phi}_5(S_3)$, which at time  $i = 5$  are in states  $S_0, \hspace{0.05cm}\text{ ...} \hspace{0.1cm} , \ S_3$.

  • One of these four paths is certainly part of the maximum likelihood path,  which is the best possible path for  $i → ∞$  $($at termination significantly earlier,  here at  $i = 7)$.
  • But if a constraint decision is to be made already at time  $i = 5$,  one usually chooses the path  ${\it \Phi}_5(S_{\mu})$  with the largest metric at that time  ${\it \Lambda}_5(S_{\mu})$.



Hints:



Questions

1

For which estimated sequence  $\underline{z}$  $($for the encoded sequence  $\underline{z})$  does the decision fall at time  $i = 7$?

$\underline{z} = (11, \, 10, \, 00, \, 01, \, 01, \, 11, \, 00)$,
$\underline{z} = (00, \, 11, \, 10, \, 00, \, 01, \, 01, \, 11)$,
$\underline{z} = (00, \, 11, \, 01, \, 01, \, 00, \, 10, \, 11)$.

2

How many transmission errors have occurred  $($at least$)$?

$N_{\rm bit\:error} \ = \ $

3

Which information sequence  $\underline{v}$  does the Viterbi decoder choose?

$\underline{v} = (0, \, 1, \, 0, \, 1, \, 1, \, 0, \, 0)$,
$\underline{v} = (1, \, 0, \, 1, \, 1, \, 0, \, 0, \, 0)$,
$\underline{v} = (0, \, 0, \, 0, \, 0, \, 0, \, 0, \, 0)$.

4

Would a final  $($and correct$)$  decision have been possible already at  $i = 6$?

Yes.
No.

5

What surviving paths exist at time  $i = 5$?

$S_0 → S_0 → S_1 → S_3 → S_2 → S_0$,
$S_0 → S_0 → S_1 → S_3 → S_2 → S_1$,
$S_0 → S_1 → S_2 → S_1 → S_3 → S_2$,
$S_0 → S_0 → S_1 → S_2 → S_1 → S_3$.

6

Which path would you choose at time  $i = 5$?

$S_0 → S_0 → S_1 → S_3 → S_2 → S_0$,
$S_0 → S_0 → S_1 → S_3 → S_2 → S_1$,
$S_0 → S_1 → S_2 → S_1 → S_3 → S_2$,
$S_0 → S_0 → S_1 → S_2 → S_1 → S_3$.

7

But which of the paths would probably be the right one?

$S_0 → S_0 → S_1 → S_3 → S_2 → S_0$,
$S_0 → S_0 → S_1 → S_3 → S_2 → S_1$,
$S_0 → S_1 → S_2 → S_1 → S_3 → S_2$,
$S_0 → S_0 → S_1 → S_2 → S_1 → S_3$.


Solution

(1)  Correct is the  proposed solution 2:

  • Unambiguously find the surviving path by searching backwards,  i.e.,  from node  ${\it \Lambda}_7(S_0)$  to node  ${\it \Lambda}_0(S_0)$.
  • Using the 2-bit sequences  $(00, \, 01, \, 10$ or $11)$  given at the transitions,  we obtain in the forward direction the result according to  proposition 2:
$$\underline{z} = \big (00\hspace{0.05cm}, 11\hspace{0.05cm}, 10\hspace{0.05cm}, 00\hspace{0.05cm}, 01\hspace{0.05cm}, 01\hspace{0.05cm}, 11\hspace{0.03cm} \big ) \hspace{0.05cm}.$$
  • One not reach the final node  ${\it \Lambda}_7(S_0)$  along other paths.


(2)  By comparing the decoder sequence  $\underline{z}$  selected in subtask  (1)  with the received sequence

$$\underline{y} = \big (01\hspace{0.05cm}, 11\hspace{0.05cm}, 00\hspace{0.05cm}, 01\hspace{0.05cm}, 01\hspace{0.05cm}, 01\hspace{0.05cm}, 11\hspace{0.03cm} \big ),$$

one detects  three bit errors  at positions  25,  and  8.

  • If a encoded sequence  $\underline{x} ≠ \underline{z}$  was sent,  there can of course be more.
  • Because of the final value  ${\it \Lambda}_7(S_0) = 8$  or  ${\it \Gamma}_7(S_0) = 3$  – see $\text{Exercise 3.10}$  – but one can assume that a correct decision   ⇒   $\underline{z} = \underline{x}$  has been made.


Viterbi path finding

(3)  Correct is the  proposed solution 1:

  • From the colors of the surviving path  – red represents  $u_i = 0$  and blue represents  $u_i = 1$  –  one can see the correctness of  solution proposal 1:  red – blue – red – blue – blue – red – red.
  • It should be noted that the actual information sequence  $\underline{u}$  is only of length  $L = 5$.  Only by termination one arrives at the total length  $L' = L + m = 7$.


(4)  At time  $i = 6$  there are still two surviving paths. 

  • A decision could be forcibly made based on the larger metric. 
  • However,  because of  ${\it \Lambda}_6(S_0) = {\it \Lambda}_6(S_2) = 6$  this is not possible in our example  ⇒  No.


(5)  The graph shows that  all proposed solutions  are correct.  The paths are labeled  ${\it \Phi}_5(S_0)$, ... , ${\it \Phi}_5(S_3)$.


(6)  The constraint decision at  time $i = 5$  would select the path with the largest metric  ${\it \Lambda}_5(S_{\mu})$,
i.e.,  the path  ${\it \Phi}_5(S_2)$  corresponding to  proposition 3.


(7)  Based on our solution to subtask  (1),  the path  ${\it \Phi}_5(S_3)$  according to  proposition 4  would have been the better choice.  This is part of the path to  ${\it \Phi}_7(S_0)$.

  • At time  $i = 5$,  however,  there is still nothing in favor of this choice.
  • The  (ultimately correct)  path is only highlighted by the two termination bits.