Difference between revisions of "Aufgaben:Exercise 3.09: Basics of the Viterbi Algorithm"
(28 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
− | {{quiz-Header|Buchseite= | + | {{quiz-Header|Buchseite=Channel_Coding/Decoding_of_Convolutional_Codes}} |
− | [[File:P_ID2659__KC_A_3_8.png|right|frame| | + | [[File:P_ID2659__KC_A_3_8.png|right|frame|Trellis to be analyzed]] |
− | + | The graph shows a trellis diagram and simultaneously defines the cumulative error values ("metrics") Γi(S0) and Γi(S1) at times i=0 to i=5. | |
− | |||
− | |||
− | |||
− | |||
− | |||
+ | From this trellis can be read, for example: | ||
+ | * the code rate R, | ||
− | + | * the memory $m$, | |
− | * | ||
− | |||
+ | * the free distance dF, | ||
− | + | * the information sequence length L, | |
− | * | ||
+ | * the sequence length L′ including the termination. | ||
− | === | + | In the exercise it is further necessary to clarify: |
+ | * the meaning of the final error value Γ5(S0), | ||
+ | |||
+ | * effects of one and two transmission errors, respectively. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | <u>Hint:</u> This exercise belongs to the chapter [[Channel_Coding/Decoding_of_Convolutional_Codes| "Decoding of Convolutional Codes"]]. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===Questions=== | ||
<quiz display=simple> | <quiz display=simple> | ||
− | { | + | {Which of the following statements are confirmed by the trellis? |
|type="[]"} | |type="[]"} | ||
− | + | + | + It is a rate-1/2 convolutional code. |
− | - | + | - The memory of the code is m=2. |
+ | + The convolutional code is terminated. | ||
+ | - The length of the information sequence is L=5. | ||
− | { | + | {Specify the free distance dF of the convolutional code. |
|type="{}"} | |type="{}"} | ||
− | $ | + | $d_{\rm F} \ = \ ${ 3 3% } |
+ | |||
+ | {What statements does the final value Γ5(S0)=0 of the metric allow? | ||
+ | |type="[]"} | ||
+ | - No transmission error has occurred. | ||
+ | - The decoding result v_ is certainly correct (equal u_). | ||
+ | + The decoding result minimizes the probability {\rm Pr}(\underline{v} ≠ \underline{u}). | ||
+ | |||
+ | {Which statements are true <u>in the case of a single</u> transmission error? | ||
+ | |type="[]"} | ||
+ | + The final metric is Γ5(S0)=1. | ||
+ | + The decoding result v_ is certainly correct (equal u_). | ||
+ | + The decoding result minimizes the probability {\rm Pr}(\underline{v} ≠ \underline{u}). | ||
+ | |||
+ | {Which statements are true <u>in the case of two</u> transmission errors? | ||
+ | |type="[]"} | ||
+ | - The final metric is Γ5(S0)=2. | ||
+ | - The decoding result v_ is certainly correct (equal u_). | ||
+ | - The decoding result v_ is certainly false $($unequal $\underline{u})$. | ||
</quiz> | </quiz> | ||
− | === | + | ===Solution=== |
{{ML-Kopf}} | {{ML-Kopf}} | ||
− | '''(1)''' | + | '''(1)''' Correct are the <u>solutions 1 and 3</u>: |
− | '''(2)''' | + | *There are 2k⋅m=2 states here. It follows that k=1 and m=1. |
− | '''(3)''' | + | |
− | '''(4)''' | + | *Per coding step, n=2 code bits are output ⇒ R=1/2. |
− | '''(5)''' | + | |
+ | *The information sequence length is L=4. | ||
+ | |||
+ | *Only by one (since m=1) additional termination bit one arrives at the total length L′=5. | ||
+ | |||
+ | |||
+ | |||
+ | '''(2)''' The free distance dF is defined as the number of code bits in which two sequences x_ and x′_ differ. | ||
+ | *We choose the zero sequence as the reference sequence: | ||
+ | :x_′=0_=(00,00,00,00,...), | ||
+ | |||
+ | :expressed with the sequence of states: S_0 → S_0 → S_0 → S_0 → \ \text{...} \ | ||
+ | *One of the sequences \underline{x} ≠ \underline{0}, which differs from 0_ only in the minimum number of code bits, follows the path S_0 → S_1 → S_0 → S_0 → \text{...} \: | ||
+ | :$$\underline{x} = \big (11\hspace{0.05cm}, 01\hspace{0.05cm}, 00\hspace{0.05cm}, 00\hspace{0.05cm}, ... \hspace{0.1cm} \big ) | ||
+ | \hspace{0.3cm}\Rightarrow \hspace{0.3cm} d_{\rm F}\hspace{0.1cm}\underline{ = 3} | ||
+ | \hspace{0.05cm}.$$ | ||
+ | |||
+ | |||
+ | [[File:P_ID2660__KC_A_3_9c.png|right|frame|Trellis without error (above) and with three transmission errors (below)]] | ||
+ | [[File:P_ID2661__KC_A_3_9e.png|right|frame|Trellis with two transmission errors]] | ||
+ | |||
+ | '''(3)''' Only <u>proposition 3</u> is correct here, because the event "No transmission error" is much more likely than three errors at exactly specified positions. Consider the graph: | ||
+ | *If the zero sequence is sent and this is also received, the Viterbi decoding can be illustrated by the upper trellis. | ||
+ | |||
+ | *The final value of the metric is Γ5(S0)=0, and the Viterbi decoder decides correctly with certainty: \underline{z} = \underline{x} ⇒ \underline{v} = \underline{u}. | ||
+ | |||
+ | *For the lower trellis, we also assume \underline{u} = (0, \, 0, \, 0, \, 0 \, 0) ⇒ \underline{x} = (00, \, 00, \, 00, \, 00, \, 00). | ||
+ | |||
+ | *However, y_=(00,00,00,11,01) is received now. | ||
+ | |||
+ | *Nevertheless, Γ5(S0)=0 holds. The example proves that the first two statements are false. | ||
+ | |||
+ | |||
+ | '''(4)''' Correct are <u>all answers</u>: If it is known for sure that only one transmission error occurred, for a convolutional code with free distance dF=3 the Viterbi algorithm works perfectly, no matter at which position the error occurred. | ||
+ | |||
+ | |||
+ | '''(5)''' <u> None of the proposed solutions</u> is correct, as can be seen from the second graphic. | ||
+ | |||
{{ML-Fuß}} | {{ML-Fuß}} | ||
− | [[Category: | + | [[Category:Channel Coding: Exercises|^3.4 Decoding of Convolutional Codes^]] |
Latest revision as of 15:08, 18 November 2022
The graph shows a trellis diagram and simultaneously defines the cumulative error values ("metrics") Γi(S0) and Γi(S1) at times i=0 to i=5.
From this trellis can be read, for example:
- the code rate R,
- the memory m,
- the free distance dF,
- the information sequence length L,
- the sequence length L′ including the termination.
In the exercise it is further necessary to clarify:
- the meaning of the final error value Γ5(S0),
- effects of one and two transmission errors, respectively.
Hint: This exercise belongs to the chapter "Decoding of Convolutional Codes".
Questions
Solution
- There are 2k⋅m=2 states here. It follows that k=1 and m=1.
- Per coding step, n=2 code bits are output ⇒ R=1/2.
- The information sequence length is L=4.
- Only by one (since m=1) additional termination bit one arrives at the total length L′=5.
(2) The free distance dF is defined as the number of code bits in which two sequences x_ and x′_ differ.
- We choose the zero sequence as the reference sequence:
- x_′=0_=(00,00,00,00,...),
- expressed with the sequence of states: S0→S0→S0→S0→ ...
- One of the sequences x_≠0_, which differs from 0_ only in the minimum number of code bits, follows the path S0→S1→S0→S0→... :
- x_=(11,01,00,00,...)⇒dF=3_.
(3) Only proposition 3 is correct here, because the event "No transmission error" is much more likely than three errors at exactly specified positions. Consider the graph:
- If the zero sequence is sent and this is also received, the Viterbi decoding can be illustrated by the upper trellis.
- The final value of the metric is Γ5(S0)=0, and the Viterbi decoder decides correctly with certainty: z_=x_⇒v_=u_.
- For the lower trellis, we also assume u_=(0,0,0,00)⇒x_=(00,00,00,00,00).
- However, y_=(00,00,00,11,01) is received now.
- Nevertheless, Γ5(S0)=0 holds. The example proves that the first two statements are false.
(4) Correct are all answers: If it is known for sure that only one transmission error occurred, for a convolutional code with free distance dF=3 the Viterbi algorithm works perfectly, no matter at which position the error occurred.
(5) None of the proposed solutions is correct, as can be seen from the second graphic.