Difference between revisions of "Aufgaben:Exercise 4.7Z: Principle of Syndrome Decoding"
Line 1: | Line 1: | ||
{{quiz-Header|Buchseite=Channel_Coding/The_Basics_of_Product_Codes}} | {{quiz-Header|Buchseite=Channel_Coding/The_Basics_of_Product_Codes}} | ||
− | [[File:P_ID3013__KC_Z_4_7_v1.png|right|frame| | + | [[File:P_ID3013__KC_Z_4_7_v1.png|right|frame|Coset leader for the code under consideration $\rm HC \ (7, \ 4, \ 3)$]] |
− | + | The syndrome decoding was already treated in detail in the chapter [[Channel_Coding/Decoding_of_Linear_Block_Codes| "Decoding of linear block codes"]] . With all Hamming codes, which are as well known perfect, this gives a decoding result as good as with the (generally) clearly more complicated maximum likelihood decoding. | |
− | + | For syndrome decoding one proceeds as follows: | |
− | * | + | * One forms the syndrome from the received vector $\underline{y}$ of length $n$ and the parity-check matrix $\mathbf{H}$ : |
:$$\underline{s} = \underline{y} \cdot { \boldsymbol{\rm H}}^{\rm T} \in {\rm GF}(2^m) | :$$\underline{s} = \underline{y} \cdot { \boldsymbol{\rm H}}^{\rm T} \in {\rm GF}(2^m) | ||
\hspace{0.05cm}, \hspace{0.5cm}{\rm Anmerkung\hspace{-0.10cm}:} \hspace{0.15cm}m = n-k \hspace{0.05cm}. $$ | \hspace{0.05cm}, \hspace{0.5cm}{\rm Anmerkung\hspace{-0.10cm}:} \hspace{0.15cm}m = n-k \hspace{0.05cm}. $$ | ||
− | * | + | * The received word $\underline{y} = \underline{x} \ {\rm (codeword)} + \underline{e} \ {\rm (error vector)}$ is not necessarily an element of ${\rm GF}(2^m)$, but certainly an element of ${\rm GF}(2^n)$ and it holds because of $\underline{x} \cdot \mathbf{H}^{\rm T} = \underline{0}$ equally: |
:$$\underline{s} = \underline{e} \cdot { \boldsymbol{\rm H}}^{\rm T}\hspace{0.05cm}. $$ | :$$\underline{s} = \underline{e} \cdot { \boldsymbol{\rm H}}^{\rm T}\hspace{0.05cm}. $$ | ||
− | * | + | * Many error patterns $\underline{e}$ lead to the same syndrome $\underline{s}$. One now groups those error patterns with the same syndrome $\underline{s}_{\mu}$ to the coset ${\it \Psi}_{\mu}$ . |
− | * | + | * The coset leader $\underline{e}_{\mu}$ is the error vector that has the lowest Hamming weight within the class ${\it \Psi}_{\mu}$ and is accordingly the most probable. |
− | + | The table above shows the list of minor class leaders $\underline{e}_{\mu}$ for each $\underline{s}_{\mu}$ in the Hamming code $\rm HC \ (7, \ 4, \ 3)$. This table is needed for the subtask '''(1)'''. | |
− | + | A similar table is to be created for the truncated Hamming code $\rm HC \ (6, \ 3, \ 3)$ . This has already been used in the [[Aufgaben:Exercise_4.6:_Product_Code_Generation| "Exercise 4.6"]] and the [[Aufgaben:Exercise_4.6Z:_Basics_of_Product_Codes| "Exercise 4.6Z"]] and is given by its generator matrix: | |
:$${ \boldsymbol{\rm G}} | :$${ \boldsymbol{\rm G}} | ||
= \begin{pmatrix} | = \begin{pmatrix} | ||
Line 27: | Line 27: | ||
\end{pmatrix} \hspace{0.05cm}.$$ | \end{pmatrix} \hspace{0.05cm}.$$ | ||
− | + | Unlike the original $\rm (7, \ 4, \ 3)$ Hamming code, the shortened $\rm (6, \ 3, \ 3)$– Hamming code is not perfect, so a single-w | |
+ | error coset leader $\underline{s}_{\mu}$ cannot be found for all possible $\underline{e}_{\mu}$ . | ||
Line 37: | Line 38: | ||
− | |||
− | |||
− | |||
− | |||
+ | Hints: | ||
+ | * The exercise refers to the chapter [[Channel_Coding/The_Basics_of_Product_Codes| "Basic Product Codes"]] and is intended as a supplement to [[Aufgaben:Exercise_4.7:_Product_Code_Decoding| "Exercise 4.7"]] . | ||
+ | * Similar exercises were covered in the [[Aufgaben:Exercise_1.11:_Syndrome_Decoding| "Exercise 1.11"]] and the [[Aufgaben:Exercise_1.11Z:_Syndrome_Decoding_again| "Exercise 1.11Z"]] chapter [[Channel_Coding/Decoding_of_Linear_Block_Codes|"Decoding Linear Block Codes"]] . | ||
+ | * The relationship between generator matrix $\mathbf{G}$ and parity-check matrix $\mathbf{H}$ of systematic codes is given in chapter [[Channel_Coding/General_Description_of_Linear_Block_Codes|"General Description of Linear Block Codes"]] . | ||
− | === | + | |
+ | ===Questions=== | ||
<quiz display=simple> | <quiz display=simple> | ||
− | { | + | {The received word be $\underline{y} = (0, \, 1, \, 1,\, 0, \, 1, \, 0)$, the syndrome $\underline{s} = (0, \, 1, \, 1)$. For which code word $\underline{x}$ of $\mathcal{C}_1$ does the syndrome decoder decide? |
|type="()"} | |type="()"} | ||
− | - | + | - The most likely codeword is $\ \underline{x} = (1, \, 1, \, 1, \, 0, \, 1, \, 1, \, 0)$. |
− | + | + | + The most likely codeword is $\ \underline{x} = (0, \, 1, \, 0, \, 0, \, 1, \, 1, \, 0)$. |
− | - | + | - The most likely codeword is $\ \underline{x} = (0, \, 1, \, 0, \, 0, \, 1, \, 1, \, 1)$. |
− | { | + | {What statements hold for the parity-check matrix $\mathbf{H}$ of the truncated code $\mathcal{C}_2$? |
|type="[]"} | |type="[]"} | ||
− | - | + | - This is a $4 × 6$–matrix. |
− | + | + | + The first row of this matrix is: $\ 110100$. |
− | + | + | + The second row of this matrix is: $\ 101010$. |
− | + | + | + The third row of this matrix is: $\ 011001$. |
− | { | + | {What syndrome $\underline{s}$ results for the error pattern $\underline{e} = (0, \, 0, \, 0, \, 0, \, 0, \, 0)$? |
|type="()"} | |type="()"} | ||
+ $\underline{e} = (0, \, 0, \, 0, \, 0, \, 0, \, 0) \ \Rightarrow \ \underline{s} = \underline{s}_0 = (0, \, 0, \, 0)$, | + $\underline{e} = (0, \, 0, \, 0, \, 0, \, 0, \, 0) \ \Rightarrow \ \underline{s} = \underline{s}_0 = (0, \, 0, \, 0)$, | ||
Line 65: | Line 67: | ||
- $\underline{e} = (0, \, 0, \, 0, \, 0, \, 0, \, 0) \ \Rightarrow \ \underline{s} = \underline{s}_7 = (1, \, 1, \, 1)$. | - $\underline{e} = (0, \, 0, \, 0, \, 0, \, 0, \, 0) \ \Rightarrow \ \underline{s} = \underline{s}_7 = (1, \, 1, \, 1)$. | ||
− | { | + | {Which of the following statements are true regarding single-error patterns? |
|type="[]"} | |type="[]"} | ||
− | + | + | + single-error pattern $\underline{e} = (1, \, 0, \, 0, \, 0, \, 0, \, 0)$ ⇒ syndrome $\underline{s}_6 = (1, \, 1, \, 0)$, |
− | + | + | + single-error pattern $\underline{e} = (0, \, 1, \, 0, \, 0, \, 0, \, 0)$ ⇒ syndrome $\underline{s}_5 = (1, \, 0, \, 1)$, |
− | + | + | + single-error pattern $\underline{e} = (0, \, 0, \, 1, \, 0, \, 0, \, 0)$ ⇒ syndrome $\underline{s}_3 = (0, \, 1, \, 1)$, |
− | + | + | + single-error pattern $\underline{e} = (0, \, 0, \, 0, \, 1, \, 0, \, 0)$ ⇒ syndrome $\underline{s}_4 = (1, \, 0, \, 0)$, |
− | + | + | + single-error pattern $\underline{e} = (0, \, 0, \, 0, \, 0, \, 1, \, 0)$ ⇒ syndrome $\underline{s}_2 = (0, \, 1, \, 0)$, |
− | + | + | + single-error pattern $\underline{e} = (0, \, 0, \, 0, \, 0, \, 0, \, 1)$ ⇒ syndrome $\underline{s}_1 = (0, \, 0, \, 1)$, |
− | { | + | {Which of the following error patterns lead to the syndrome $\underline{s}_7 = (1, \, 1, \, 1)$? |
|type="[]"} | |type="[]"} | ||
- $\underline{e} = (1, \, 1, \, 0, \, 0, \, 0, \, 0)$, | - $\underline{e} = (1, \, 1, \, 0, \, 0, \, 0, \, 0)$, | ||
Line 82: | Line 84: | ||
</quiz> | </quiz> | ||
− | === | + | ===Solution=== |
{{ML-Kopf}} | {{ML-Kopf}} | ||
− | '''(1)''' | + | '''(1)''' Correct is <u>proposed solution 2</u>: |
− | * | + | *From the [[Aufgaben:Exercise_4.7Z: _Principle_of_Syndrome_Decoding| "Syndrome table"]] on the information page – valid for the $\rm (7, \ 4, \ 3)$–Hamming code – it can be read that the syndrome $\underline{s} = \underline{s}_3 = (0, \, 1, \, 1)$ corresponds to the error pattern $\underline{e} = (0, \, 0, \, 1, \, 0, \, 0, \, 0, \, 0)$. Thus the code word |
− | :$$\underline{x} = \underline{y} \hspace{0.15cm}+ \hspace{0.15cm} \underline{y} | + | :$$\underline{x} = \underline{y} \hspace{0.15cm}+ \hspace{0.15cm} \underline{y} = (0, 1, 1, 0, 1, 1, 0) \hspace{0.15cm}+ \hspace{0.15cm}(0, 0, 1, 0, 0, 0, 0) |
\hspace{0.15cm}= \hspace{0.15cm}(0, 1, 0, 0, 1, 1, 0)$$ | \hspace{0.15cm}= \hspace{0.15cm}(0, 1, 0, 0, 1, 1, 0)$$ | ||
− | + | most likely and the syndrome decoder will output this as the result. | |
+ | |||
+ | |||
+ | '''(2)''' Correct are <u>solutions 2, 3, and 4</u>: | ||
+ | *The parity-check matrix $\mathbf{H}$ of the truncated $\rm (6, \ 3)$–Hamming code $C_2$ has $m = n - k = 3$ rows and $n$ columns. Consequently, it is a $3 × 6$–matrix ⇒ statement 1 is false. | ||
− | |||
− | |||
− | * | + | *Since $\mathcal{C}_2$ is also a systematic code, the generator matrix $\mathbf{G}$ can be represented in the following form: |
:$${ \boldsymbol{\rm G}} | :$${ \boldsymbol{\rm G}} | ||
= \begin{pmatrix} | = \begin{pmatrix} | ||
Line 112: | Line 116: | ||
\hspace{0.05cm}.$$ | \hspace{0.05cm}.$$ | ||
− | * | + | *So it can be written for the parity-check matrix: |
:$${ \boldsymbol{\rm H}} | :$${ \boldsymbol{\rm H}} | ||
= \left ( { \boldsymbol{\rm P}}^{\rm T} ; \hspace{0.15cm} { \boldsymbol{\rm I}}_3 \right ) | = \left ( { \boldsymbol{\rm P}}^{\rm T} ; \hspace{0.15cm} { \boldsymbol{\rm I}}_3 \right ) | ||
Line 122: | Line 126: | ||
\hspace{0.05cm}.$$ | \hspace{0.05cm}.$$ | ||
− | * | + | *Here $\mathbf{I}_3$ denotes a $3 × 3$ diagonal matrix typical of the systematic code. |
− | * | + | *Proposed solutions 2, 3, and 4 are therefore correct: |
− | :* | + | :* Row 1: $\ 110100$, |
− | :* | + | :* Row 2: $\ 101010$, |
− | :* | + | :* row 3: $\ 011001$. |
− | '''(3)''' | + | '''(3)''' Correct is <u>proposed solution 1</u>: |
− | * | + | *According to the statements in the chapter [[Channel_Coding/Decoding_of_Linear_Block_Codes| "Decoding of Linear Block Codes"]], $\underline{s} = \underline{e} \cdot \mathbf{H}^{\rm T}$ can be written. |
− | * | + | *Thus, for the error-free case ⇒ $\underline{e} = (0, \, 0, \, 0, \, 0, \, 0, \, 0)$: |
:$$\underline{s}= \left ( 0, \hspace{0.03cm} 0, \hspace{0.03cm}0, \hspace{0.03cm}0, \hspace{0.03cm}0, \hspace{0.03cm}0 \right ) \cdot | :$$\underline{s}= \left ( 0, \hspace{0.03cm} 0, \hspace{0.03cm}0, \hspace{0.03cm}0, \hspace{0.03cm}0, \hspace{0.03cm}0 \right ) \cdot | ||
\begin{pmatrix} | \begin{pmatrix} | ||
Line 146: | Line 150: | ||
− | '''(4)''' <u> | + | '''(4)''' <u>All statements</u> are true, as can be seen from the sample solution to the last subtask: |
− | * | + | *The rows of the transposed parity-check matrix, read from top to bottom, give the respective syndromes for the error patterns $\underline{e} = (1, \, 0, \, 0, \, 0, \, 0, \, 0), \hspace{0.05cm} \text{ ... } \hspace{0.05cm} , \ \underline{e} = (0, \, 0, \, 0, \, 0, \, 0, \, 1)$. |
− | '''(5)''' | + | '''(5)''' Correct are <u>solutions 2, 3, and 4</u>: |
− | * | + | *The first statement is false because the first two rows of the transposed parity-check matrix $\mathbf{H}^{\rm T}$ summed $(1, \, 1, \, 0) + (1, \, 0, \, 1) = (0, \, 1, \, 1) = \underline{s_3} ≠ \underline{s}_7$ results in. |
− | * | + | *Statements 2, 3 and 4, on the other hand, are correct: |
− | :* | + | :* First and last row: $\ (1, \, 1, \, 0) + (0, \, 0, \, 1) = (1, \, 1, \, 1) = \underline{s}_7$, |
− | :* | + | :* second and fifth row: $\ (1, \, 0, \, 1) + (0, \, 1, \, 0) = (1, \, 1, \, 1) = \underline{s}_7$, |
− | :* | + | :* The sum over all rows also gives $\underline{s}_7$, since there are exactly three ones in each matrix column. |
{{ML-Fuß}} | {{ML-Fuß}} | ||
Revision as of 22:51, 8 November 2022
The syndrome decoding was already treated in detail in the chapter "Decoding of linear block codes" . With all Hamming codes, which are as well known perfect, this gives a decoding result as good as with the (generally) clearly more complicated maximum likelihood decoding.
For syndrome decoding one proceeds as follows:
- One forms the syndrome from the received vector $\underline{y}$ of length $n$ and the parity-check matrix $\mathbf{H}$ :
- $$\underline{s} = \underline{y} \cdot { \boldsymbol{\rm H}}^{\rm T} \in {\rm GF}(2^m) \hspace{0.05cm}, \hspace{0.5cm}{\rm Anmerkung\hspace{-0.10cm}:} \hspace{0.15cm}m = n-k \hspace{0.05cm}. $$
- The received word $\underline{y} = \underline{x} \ {\rm (codeword)} + \underline{e} \ {\rm (error vector)}$ is not necessarily an element of ${\rm GF}(2^m)$, but certainly an element of ${\rm GF}(2^n)$ and it holds because of $\underline{x} \cdot \mathbf{H}^{\rm T} = \underline{0}$ equally:
- $$\underline{s} = \underline{e} \cdot { \boldsymbol{\rm H}}^{\rm T}\hspace{0.05cm}. $$
- Many error patterns $\underline{e}$ lead to the same syndrome $\underline{s}$. One now groups those error patterns with the same syndrome $\underline{s}_{\mu}$ to the coset ${\it \Psi}_{\mu}$ .
- The coset leader $\underline{e}_{\mu}$ is the error vector that has the lowest Hamming weight within the class ${\it \Psi}_{\mu}$ and is accordingly the most probable.
The table above shows the list of minor class leaders $\underline{e}_{\mu}$ for each $\underline{s}_{\mu}$ in the Hamming code $\rm HC \ (7, \ 4, \ 3)$. This table is needed for the subtask (1).
A similar table is to be created for the truncated Hamming code $\rm HC \ (6, \ 3, \ 3)$ . This has already been used in the "Exercise 4.6" and the "Exercise 4.6Z" and is given by its generator matrix:
- $${ \boldsymbol{\rm G}} = \begin{pmatrix} 1 &0 &0 &1 &1 &0 \\ 0 &1 &0 &1 &0 &1 \\ 0 &0 &1 &0 &1 &1 \end{pmatrix} \hspace{0.05cm}.$$
Unlike the original $\rm (7, \ 4, \ 3)$ Hamming code, the shortened $\rm (6, \ 3, \ 3)$– Hamming code is not perfect, so a single-w error coset leader $\underline{s}_{\mu}$ cannot be found for all possible $\underline{e}_{\mu}$ .
Hints:
- The exercise refers to the chapter "Basic Product Codes" and is intended as a supplement to "Exercise 4.7" .
- Similar exercises were covered in the "Exercise 1.11" and the "Exercise 1.11Z" chapter "Decoding Linear Block Codes" .
- The relationship between generator matrix $\mathbf{G}$ and parity-check matrix $\mathbf{H}$ of systematic codes is given in chapter "General Description of Linear Block Codes" .
Questions
Solution
- From the "Syndrome table" on the information page – valid for the $\rm (7, \ 4, \ 3)$–Hamming code – it can be read that the syndrome $\underline{s} = \underline{s}_3 = (0, \, 1, \, 1)$ corresponds to the error pattern $\underline{e} = (0, \, 0, \, 1, \, 0, \, 0, \, 0, \, 0)$. Thus the code word
- $$\underline{x} = \underline{y} \hspace{0.15cm}+ \hspace{0.15cm} \underline{y} = (0, 1, 1, 0, 1, 1, 0) \hspace{0.15cm}+ \hspace{0.15cm}(0, 0, 1, 0, 0, 0, 0) \hspace{0.15cm}= \hspace{0.15cm}(0, 1, 0, 0, 1, 1, 0)$$
most likely and the syndrome decoder will output this as the result.
(2) Correct are solutions 2, 3, and 4:
- The parity-check matrix $\mathbf{H}$ of the truncated $\rm (6, \ 3)$–Hamming code $C_2$ has $m = n - k = 3$ rows and $n$ columns. Consequently, it is a $3 × 6$–matrix ⇒ statement 1 is false.
- Since $\mathcal{C}_2$ is also a systematic code, the generator matrix $\mathbf{G}$ can be represented in the following form:
- $${ \boldsymbol{\rm G}} = \begin{pmatrix} 1 &0 &0 &1 &1 &0 \\ 0 &1 &0 &1 &0 &1 \\ 0 &0 &1 &0 &1 &1 \end{pmatrix} = \left ( { \boldsymbol{\rm I}}_3 ; \hspace{0.15cm} { \boldsymbol{\rm P}} \right ) \hspace{0.5cm}{\rm mit }\hspace{0.5cm} { \boldsymbol{\rm P}} = \begin{pmatrix} 1 &1 &0 \\ 1 &0 &1 \\ 0 &1 &1 \end{pmatrix} \hspace{0.05cm}.$$
- So it can be written for the parity-check matrix:
- $${ \boldsymbol{\rm H}} = \left ( { \boldsymbol{\rm P}}^{\rm T} ; \hspace{0.15cm} { \boldsymbol{\rm I}}_3 \right ) = \begin{pmatrix} 1 &1 &0 &1 &0 &0\\ 1 &0 &1 &0 &1 &0\\ 0 &1 &1 &0 &0 &1 \end{pmatrix} \hspace{0.05cm}.$$
- Here $\mathbf{I}_3$ denotes a $3 × 3$ diagonal matrix typical of the systematic code.
- Proposed solutions 2, 3, and 4 are therefore correct:
- Row 1: $\ 110100$,
- Row 2: $\ 101010$,
- row 3: $\ 011001$.
(3) Correct is proposed solution 1:
- According to the statements in the chapter "Decoding of Linear Block Codes", $\underline{s} = \underline{e} \cdot \mathbf{H}^{\rm T}$ can be written.
- Thus, for the error-free case ⇒ $\underline{e} = (0, \, 0, \, 0, \, 0, \, 0, \, 0)$:
- $$\underline{s}= \left ( 0, \hspace{0.03cm} 0, \hspace{0.03cm}0, \hspace{0.03cm}0, \hspace{0.03cm}0, \hspace{0.03cm}0 \right ) \cdot \begin{pmatrix} 1 &1 &0 \\ 1 &0 &1 \\ 0 &1 &1 \\ 1 &0 &0 \\ 0 &1 &0 \\ 0 &0 &1 \end{pmatrix}= \left ( 0, \hspace{0.03cm} 0, \hspace{0.03cm}0 \right ) = \underline{s}_0.$$
(4) All statements are true, as can be seen from the sample solution to the last subtask:
- The rows of the transposed parity-check matrix, read from top to bottom, give the respective syndromes for the error patterns $\underline{e} = (1, \, 0, \, 0, \, 0, \, 0, \, 0), \hspace{0.05cm} \text{ ... } \hspace{0.05cm} , \ \underline{e} = (0, \, 0, \, 0, \, 0, \, 0, \, 1)$.
(5) Correct are solutions 2, 3, and 4:
- The first statement is false because the first two rows of the transposed parity-check matrix $\mathbf{H}^{\rm T}$ summed $(1, \, 1, \, 0) + (1, \, 0, \, 1) = (0, \, 1, \, 1) = \underline{s_3} ≠ \underline{s}_7$ results in.
- Statements 2, 3 and 4, on the other hand, are correct:
- First and last row: $\ (1, \, 1, \, 0) + (0, \, 0, \, 1) = (1, \, 1, \, 1) = \underline{s}_7$,
- second and fifth row: $\ (1, \, 0, \, 1) + (0, \, 1, \, 0) = (1, \, 1, \, 1) = \underline{s}_7$,
- The sum over all rows also gives $\underline{s}_7$, since there are exactly three ones in each matrix column.