Difference between revisions of "Aufgaben:Exercise 1.08Z: Equivalent Codes"

From LNTwww
 
(21 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{quiz-Header|Buchseite=Kanalcodierung/Allgemeine Beschreibung linearer Blockcodes
+
{{quiz-Header|Buchseite=Channel_Coding/General_Description_of_Linear_Block_Codes
  
 
}}
 
}}
  
[[File:P_ID2394__KC_Z_1_8.png|right|frame|Vier verschiedene (6, 3)–Blockcodes]]
+
[[File:P_ID2394__KC_Z_1_8.png|right|frame|Four  $(6, 3)$  block codes]]
  
In der Grafik sind die Zuordnungen $\underline{u} \underline{x}$ für verschiedene Codes angegeben, die im Folgenden jeweils durch die Generatormatrix '''G''' und die Prüfmatrix '''H''' charakterisiert werden:
+
In the graph,  the mappings  $\underline{u} \rightarrow \underline{x}$  for different codes are given,  each characterized below by the generator matrix  $\boldsymbol{\rm G}$  and the parity-check matrix  $\boldsymbol{\rm H}$,  respectively:
  
*$\color{red}{\boldsymbol{\rm Code \ A}}$:
+
*${\boldsymbol{\rm Code \ A}}$:
:$${ \boldsymbol{\rm G}}_{\rm A} = \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},$$
+
:$${ \boldsymbol{\rm G}}_{\rm A} = \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},\hspace{0.5cm}{ \boldsymbol{\rm H}}_{\rm A} = \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}.$$
:$${ \boldsymbol{\rm H}}_{\rm A} = \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}.$$
 
  
*$\color{red}{\boldsymbol{\rm Code \ B}}$:
+
*${\boldsymbol{\rm Code \ B}}$:
:$${ \boldsymbol{\rm G}}_{\rm B} = \begin{pmatrix} 0 &0 &1 &0 &1 &1\\ 1 &0 &0 &1 &1 &0\\ 0 &1 &1 &1 &1 &0 \end{pmatrix} \hspace{0.05cm},$$
+
:$${ \boldsymbol{\rm G}}_{\rm B} = \begin{pmatrix} 0 &0 &1 &0 &1 &1\\ 1 &0 &0 &1 &1 &0\\ 0 &1 &1 &1 &1 &0 \end{pmatrix} \hspace{0.05cm},\hspace{0.5cm} { \boldsymbol{\rm H}}_{\rm B} = \begin{pmatrix} 1 &0 &1 &0 &1 &0\\ 1 &1 &0 &1 &0 &0\\ 0 &1 &1 &0 &0 &1 \end{pmatrix} \hspace{0.05cm}.$$
:$$ { \boldsymbol{\rm H}}_{\rm B} = \begin{pmatrix} 1 &0 &1 &0 &1 &0\\ 1 &1 &0 &1 &0 &0\\ 0 &1 &1 &0 &0 &1 \end{pmatrix} \hspace{0.05cm}.$$
 
  
*$\color{red}{\boldsymbol{\rm Code \ C}}$:
+
*${\boldsymbol{\rm Code \ C}}$:
:$${ \boldsymbol{\rm G}}_{\rm C} = \begin{pmatrix} 1 &0 &0 &1 &0 &1\\ 0 &1 &0 &0 &1 &1\\ 0 &0 &1 &1 &1 &1 \end{pmatrix} \hspace{0.05cm},{ \boldsymbol{\rm H}}_{\rm C} = \begin{pmatrix} 1 &0 &1 &1 &0 &0\\ 0 &1 &1 &0 &1 &0\\ 1 &1 &1 &0 &0 &1 \end{pmatrix} \hspace{0.05cm},$$
+
:$${ \boldsymbol{\rm G}}_{\rm C} = \begin{pmatrix} 1 &0 &0 &1 &0 &1\\ 0 &1 &0 &0 &1 &1\\ 0 &0 &1 &1 &1 &1 \end{pmatrix} \hspace{0.05cm},\hspace{0.5cm}{ \boldsymbol{\rm H}}_{\rm C} = \begin{pmatrix} 1 &0 &1 &1 &0 &0\\ 0 &1 &1 &0 &1 &0\\ 1 &1 &1 &0 &0 &1 \end{pmatrix} \hspace{0.05cm},$$
  
*$\color{red}{\boldsymbol{\rm Code \ D}}$:
+
*${\boldsymbol{\rm Code \ D}}$:
:$${ \boldsymbol{\rm G}}_{\rm D} = \begin{pmatrix} 1 &0 &0 &1 &0 &1\\ 0 &1 &0 &1 &0 &0\\ 0 &0 &1 &0 &1 &0 \end{pmatrix} \hspace{0.05cm},{ \boldsymbol{\rm H}}_{\rm D} = \begin{pmatrix} 1 &1 &0 &1 &0 &0\\ 0 &0 &1 &0 &1 &0\\ 1 &0 &0 &0 &0 &1 \end{pmatrix} \hspace{0.05cm}.$$
+
:$${ \boldsymbol{\rm G}}_{\rm D} = \begin{pmatrix} 1 &0 &0 &1 &0 &1\\ 0 &1 &0 &1 &0 &0\\ 0 &0 &1 &0 &1 &0 \end{pmatrix} \hspace{0.05cm},\hspace{0.5cm}{ \boldsymbol{\rm H}}_{\rm D} = \begin{pmatrix} 1 &1 &0 &1 &0 &0\\ 0 &0 &1 &0 &1 &0\\ 1 &0 &0 &0 &0 &1 \end{pmatrix} \hspace{0.05cm}.$$
  
In dieser Aufgabe soll untersucht werden, welche dieser Codes bzw. Codepaare
+
This task is to investigate which of these codes or code pairs are
  
*systematisch sind,
+
*are systematic,
*identisch sind (das heißt: Verschiedene Codes haben gleiche Codeworte),
+
*are identical  (that is:   Different codes have same code words),
*äquivalent sind (das heißt: Verschiedene Codes haben gleiche Codeparameter).
+
*are equivalent  (that is:   Different codes have same code parameters).
  
  
''Hinweis'' :
 
  
Die Aufgabe gehört zum Themengebiet von Kapitel [[Kanalcodierung/Allgemeine_Beschreibung_linearer_Blockcodes|Allgemeine Beschreibung linearer
 
Blockcodes]] Anzumerken ist, dass die Angabe einer Prüfmatrix '''H''' nicht eindeutig ist. Verändert man die Reihenfolge der Prüfgleichungen, so entspricht dies einer Vertauschung von Zeilen.
 
  
===Fragebogen===
+
Hints :
 +
 
 +
*This exercise belongs to the chapter  [[Channel_Coding/General_Description_of_Linear_Block_Codes|"General Description of Linear Block Codes"]].
 +
 
 +
*Reference is made in particular to the sections  [[Channel_Coding/General_Description_of_Linear_Block_Codes#Systematic_Codes|"Systematic Codes"]]   and   [[Channel_Coding/General_Description_of_Linear_Block_Codes#Identical_Codes|"Identical Codes"]].
 +
 
 +
*Note that the specification of a parity-check matrix  $\boldsymbol{\rm H}$  is not unique.  If one changes the order of the parity-check equations, this corresponds to a swapping of rows.
 +
 
 +
 
 +
 
 +
===Questions===
  
 
<quiz display=simple>
 
<quiz display=simple>
{Welche der nachfolgend aufgeführten Codes sind systematisch?
+
{Which of the codes listed below are systematic?
 
|type="[]"}
 
|type="[]"}
+ Code A,
+
+ Code &nbsp;$\rm A$,
- Code B,
+
- Code &nbsp;$\rm B$,
+ Code C,
+
+ Code &nbsp;$\rm C$,
+ Code D.
+
+ Code &nbsp;$\rm D$.
  
{Welche der vorgegebenen Codepaare sind identisch?
+
{Which of the given code pairs are identical?
 
|type="[]"}
 
|type="[]"}
 
 
+ Code A und Code B,
+
+ Code &nbsp;$\rm A$&nbsp; and&nbsp; code &nbsp;$\rm B$,
-Code B und Code C,
+
- Code &nbsp;$\rm B$&nbsp; and&nbsp; code &nbsp;$\rm C$,
-Code C und Code D.
+
- Code &nbsp;$\rm C$&nbsp; and&nbsp; code &nbsp;$\rm D$.
  
  
{Welche der gegebenen Codepaare sind äquivalent, aber nicht identisch?
+
{Which of the given code pairs are equivalent but not identical?
 
|type="[]"}
 
|type="[]"}
- Code A und Code B,
+
- Code &nbsp;$\rm A$&nbsp; and&nbsp; code &nbsp;$\rm B$,
+ Code B und Code C,
+
+ Code &nbsp;$\rm B$&nbsp; and&nbsp; code &nbsp;$\rm C$,
- Code C und Code D.
+
- Code &nbsp;$\rm C$&nbsp; and&nbsp; code &nbsp;$\rm D$.
  
{Wie unterscheiden sich die Generatormatrizen $G_{\rm B}$ und $G_{\ rm C}$?
+
{How do the generator matrices&nbsp; $G_{\rm B}$&nbsp; and&nbsp; $G_{\rm C}$&nbsp; differ?
 
|type="[]"}
 
|type="[]"}
-Durch verschiedene Linearkombinationen verschiedener Zeilen.
+
- By different linear combinations of different rows.
- Durch zyklische Vertauschung der Zeilen um 1 nach unten.
+
- By cyclic shifting of rows by &nbsp;$1$&nbsp; down.
+ Durch zyklische Vertauschung der Spalten um 1 nach rechts.
+
+ By cyclic shifting of columns by &nbsp;$1$&nbsp; to the right?
  
  
{Bei welchen Codes gilt ${ \boldsymbol{\rm H}} · { \boldsymbol{\rm G}}^{\rm T} = \boldsymbol{0}$?
+
{For which codes applies&nbsp; ${ \boldsymbol{\rm H}} \cdot { \boldsymbol{\rm G}}^{\rm T} = \boldsymbol{0}$?
 
|type="[]"}
 
|type="[]"}
+ Code A,
+
+ Code &nbsp;$\rm A$,
+ Code B,
+
+ Code &nbsp;$\rm B$,
+ Code C,
+
+ Code &nbsp;$\rm C$,
+ Code D.
+
+ Code &nbsp;$\rm D$.
 +
 
  
  
Line 76: Line 82:
 
</quiz>
 
</quiz>
  
===Musterlösung===
+
===Solution===
 
{{ML-Kopf}}
 
{{ML-Kopf}}
'''(1)'''&nbsp; ür einen systematischen (6, 3)–Blockcode muss gelten
+
'''(1)'''&nbsp; Correct are the&nbsp; <u>answers 1, 3 and 4</u>:
 +
*For a systematic&nbsp; $(6, 3)$&nbsp; block code,&nbsp; the following must hold:
  
 
:$$\underline{x} = ( x_1, x_2, x_3, x_4, x_5, x_6) = ( u_1, u_2, u_3, p_1, p_2, p_{3}) \hspace{0.05cm}.$$
 
:$$\underline{x} = ( x_1, x_2, x_3, x_4, x_5, x_6) = ( u_1, u_2, u_3, p_1, p_2, p_{3}) \hspace{0.05cm}.$$
  
Diese Bedingung erfüllen die Codes A, C und D <u>Antwort 1, 2, 4</u>.
+
*This condition is satisfied by code&nbsp; $\rm A$, code&nbsp; $\rm C$, and code&nbsp; $\rm D$, but not by code&nbsp; $\rm B$.
 +
 
 +
 
 +
 
 +
'''(2)'''&nbsp; Correct is only&nbsp; <u>answer 1</u>:
 +
*Only code&nbsp; $\rm A$&nbsp; and code&nbsp; $\rm B$&nbsp; are identical codes.&nbsp; They contain exactly the same code words and differ only by other assignments&nbsp; $\underline{u} \rightarrow \underline{x}$.
 +
 +
*As indicated in the solution to&nbsp; [[Aufgaben:Exercise_1.08:_Identical_Codes|"Exercise 1.8 (3)"]],&nbsp; one gets from the generator matrix&nbsp; ${ \boldsymbol{\rm G}}_{\rm B}$&nbsp; to the generator matrix&nbsp; ${ \boldsymbol{\rm G}}_{\rm A}$ 
 +
:*by swapping/permuting rows alone,&nbsp; or
 +
:*by replacing a row with the linear combination between that row and another.
 +
 
 +
 
 +
 
 +
'''(3)'''&nbsp; Thus,&nbsp; the correct answer is&nbsp; <u>answer 2</u>&nbsp; alone:
 +
*Code&nbsp; $\rm A$&nbsp; and code&nbsp; $\rm B$&nbsp; are more than equivalent,&nbsp; namely identical.
 +
 +
*Code&nbsp; $\rm C$&nbsp; and code&nbsp; $\rm D$&nbsp; also differ,&nbsp; for example,&nbsp; by the minimum Hamming distance&nbsp; $d_{\rm min} = 3$&nbsp; and&nbsp; $d_{\rm min} = 2$,&nbsp; respectively,&nbsp; and are thus also not equivalent.
 +
 
 +
*Code&nbsp; $\rm B$&nbsp; and code&nbsp; $\rm C$&nbsp; show the same properties,&nbsp; for example&nbsp; $d_{\rm min} = 3$&nbsp; holds for both.&nbsp; However,&nbsp; they contain different code words.
 +
 
  
'''(2)'''&nbsp; Nur Code A und Code B sind identische Codes ⇒ <u>Antwort 1</u>. Sie beinhalten genau die gleichen Codeworte und unterscheiden sich nur durch andere Zuordnungen $\underline{u} → \underline{x}$. Wie in der Musterlösung zur [[Aufgaben:1.08_Identische_Codes|Aufgabe A1.08 (3)]] angegeben, gelangt man von der Generatormatrix ${ \boldsymbol{\rm G}}_{\rm B}$  zur Generatormatrix ${ \boldsymbol{\rm G}}_{\rm A}$  allein durch Vertauschen/Permutieren von Zeilen oder durch Ersetzen einer Zeile durch die Linearkombination zwischen dieser Zeile und einer anderen.
 
  
'''(3)'''&nbsp; Code A und Code B sind mehr als äquivalent, nämlich identisch. Code C und D unterscheiden sich zum Beispiel auch durch die minimale Hamming–Distanz $d_{\rm min} = 3$ bzw. $d_{\rm min} = 2$ und sind somit auch nicht äquivalent.
 
  
Richtig ist somit allein <u>Antwort 2</u>. Code B und Code C haben gleiche Eigenschaften, beispielsweise gilt für beide $d_{\rm min} = 3$. Sie beinhalten aber andere Codeworte.
+
'''(4)'''&nbsp; Correct is&nbsp; <u>answer 3</u>:
  
'''(4)'''&nbsp; Richtig ist <u>Antwort 3</u>:
+
*The last column of&nbsp; ${ \boldsymbol{\rm G}}_{\rm B}$&nbsp; gives the first column of&nbsp; ${ \boldsymbol{\rm G}}_{\rm C}$.
 +
*The first column of&nbsp; ${ \boldsymbol{\rm G}}_{\rm B}$&nbsp; gives the second column of&nbsp; ${ \boldsymbol{\rm G}}_{\rm C}$.
 +
*The second column of&nbsp; ${ \boldsymbol{\rm G}}_{\rm B}$&nbsp; gives the third column of&nbsp; ${ \boldsymbol{\rm G}}_{\rm C}$, etc.
  
*Die letzte Spalte von ${ \boldsymbol{\rm G}}_{\rm B}$ ergibt die erste Spalte von ${ \boldsymbol{\rm G}}_{\rm C}$.
 
*Die erste Spalte von ${ \boldsymbol{\rm G}}_{\rm B}$ ergibt die zweite Spalte von ${ \boldsymbol{\rm G}}_{\rm C}$.
 
*Die zweite Spalte von ${ \boldsymbol{\rm G}}_{\rm B}$ ergibt die dritte Spalte von ${ \boldsymbol{\rm G}}_{\rm C}$, usw.
 
  
  
'''(5)'''&nbsp; Die Bedingung ${ \boldsymbol{\rm H}} · { \boldsymbol{\rm G}}^{\rm T} = \boldsymbol{0}$ gilt für alle linearen Codes ⇒ <u>Alle Aussagen treffen zu</u>.
+
'''(5)'''&nbsp; All statements are true</u>:
 +
*The condition&nbsp; ${ \boldsymbol{\rm H}} \cdot { \boldsymbol{\rm G}}^{\rm T} = \boldsymbol{0}$&nbsp; holds for all linear codes.
  
 
{{ML-Fuß}}
 
{{ML-Fuß}}
Line 103: Line 127:
  
  
[[Category:Aufgaben zu  Kanalcodierung|^1.4 Allgemeine Beschreibung linearer Blockcodes
+
[[Category:Channel Coding: Exercises|^1.4 Linear Block Code Description
  
 
^]]
 
^]]

Latest revision as of 17:00, 23 January 2023

Four  $(6, 3)$  block codes

In the graph,  the mappings  $\underline{u} \rightarrow \underline{x}$  for different codes are given,  each characterized below by the generator matrix  $\boldsymbol{\rm G}$  and the parity-check matrix  $\boldsymbol{\rm H}$,  respectively:

  • ${\boldsymbol{\rm Code \ A}}$:
$${ \boldsymbol{\rm G}}_{\rm A} = \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},\hspace{0.5cm}{ \boldsymbol{\rm H}}_{\rm A} = \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}.$$
  • ${\boldsymbol{\rm Code \ B}}$:
$${ \boldsymbol{\rm G}}_{\rm B} = \begin{pmatrix} 0 &0 &1 &0 &1 &1\\ 1 &0 &0 &1 &1 &0\\ 0 &1 &1 &1 &1 &0 \end{pmatrix} \hspace{0.05cm},\hspace{0.5cm} { \boldsymbol{\rm H}}_{\rm B} = \begin{pmatrix} 1 &0 &1 &0 &1 &0\\ 1 &1 &0 &1 &0 &0\\ 0 &1 &1 &0 &0 &1 \end{pmatrix} \hspace{0.05cm}.$$
  • ${\boldsymbol{\rm Code \ C}}$:
$${ \boldsymbol{\rm G}}_{\rm C} = \begin{pmatrix} 1 &0 &0 &1 &0 &1\\ 0 &1 &0 &0 &1 &1\\ 0 &0 &1 &1 &1 &1 \end{pmatrix} \hspace{0.05cm},\hspace{0.5cm}{ \boldsymbol{\rm H}}_{\rm C} = \begin{pmatrix} 1 &0 &1 &1 &0 &0\\ 0 &1 &1 &0 &1 &0\\ 1 &1 &1 &0 &0 &1 \end{pmatrix} \hspace{0.05cm},$$
  • ${\boldsymbol{\rm Code \ D}}$:
$${ \boldsymbol{\rm G}}_{\rm D} = \begin{pmatrix} 1 &0 &0 &1 &0 &1\\ 0 &1 &0 &1 &0 &0\\ 0 &0 &1 &0 &1 &0 \end{pmatrix} \hspace{0.05cm},\hspace{0.5cm}{ \boldsymbol{\rm H}}_{\rm D} = \begin{pmatrix} 1 &1 &0 &1 &0 &0\\ 0 &0 &1 &0 &1 &0\\ 1 &0 &0 &0 &0 &1 \end{pmatrix} \hspace{0.05cm}.$$

This task is to investigate which of these codes or code pairs are

  • are systematic,
  • are identical  (that is:   Different codes have same code words),
  • are equivalent  (that is:   Different codes have same code parameters).



Hints :

  • Note that the specification of a parity-check matrix  $\boldsymbol{\rm H}$  is not unique.  If one changes the order of the parity-check equations, this corresponds to a swapping of rows.


Questions

1

Which of the codes listed below are systematic?

Code  $\rm A$,
Code  $\rm B$,
Code  $\rm C$,
Code  $\rm D$.

2

Which of the given code pairs are identical?

Code  $\rm A$  and  code  $\rm B$,
Code  $\rm B$  and  code  $\rm C$,
Code  $\rm C$  and  code  $\rm D$.

3

Which of the given code pairs are equivalent but not identical?

Code  $\rm A$  and  code  $\rm B$,
Code  $\rm B$  and  code  $\rm C$,
Code  $\rm C$  and  code  $\rm D$.

4

How do the generator matrices  $G_{\rm B}$  and  $G_{\rm C}$  differ?

By different linear combinations of different rows.
By cyclic shifting of rows by  $1$  down.
By cyclic shifting of columns by  $1$  to the right?

5

For which codes applies  ${ \boldsymbol{\rm H}} \cdot { \boldsymbol{\rm G}}^{\rm T} = \boldsymbol{0}$?

Code  $\rm A$,
Code  $\rm B$,
Code  $\rm C$,
Code  $\rm D$.


Solution

(1)  Correct are the  answers 1, 3 and 4:

  • For a systematic  $(6, 3)$  block code,  the following must hold:
$$\underline{x} = ( x_1, x_2, x_3, x_4, x_5, x_6) = ( u_1, u_2, u_3, p_1, p_2, p_{3}) \hspace{0.05cm}.$$
  • This condition is satisfied by code  $\rm A$, code  $\rm C$, and code  $\rm D$, but not by code  $\rm B$.


(2)  Correct is only  answer 1:

  • Only code  $\rm A$  and code  $\rm B$  are identical codes.  They contain exactly the same code words and differ only by other assignments  $\underline{u} \rightarrow \underline{x}$.
  • As indicated in the solution to  "Exercise 1.8 (3)",  one gets from the generator matrix  ${ \boldsymbol{\rm G}}_{\rm B}$  to the generator matrix  ${ \boldsymbol{\rm G}}_{\rm A}$
  • by swapping/permuting rows alone,  or
  • by replacing a row with the linear combination between that row and another.


(3)  Thus,  the correct answer is  answer 2  alone:

  • Code  $\rm A$  and code  $\rm B$  are more than equivalent,  namely identical.
  • Code  $\rm C$  and code  $\rm D$  also differ,  for example,  by the minimum Hamming distance  $d_{\rm min} = 3$  and  $d_{\rm min} = 2$,  respectively,  and are thus also not equivalent.
  • Code  $\rm B$  and code  $\rm C$  show the same properties,  for example  $d_{\rm min} = 3$  holds for both.  However,  they contain different code words.



(4)  Correct is  answer 3:

  • The last column of  ${ \boldsymbol{\rm G}}_{\rm B}$  gives the first column of  ${ \boldsymbol{\rm G}}_{\rm C}$.
  • The first column of  ${ \boldsymbol{\rm G}}_{\rm B}$  gives the second column of  ${ \boldsymbol{\rm G}}_{\rm C}$.
  • The second column of  ${ \boldsymbol{\rm G}}_{\rm B}$  gives the third column of  ${ \boldsymbol{\rm G}}_{\rm C}$, etc.


(5)  All statements are true:

  • The condition  ${ \boldsymbol{\rm H}} \cdot { \boldsymbol{\rm G}}^{\rm T} = \boldsymbol{0}$  holds for all linear codes.