Difference between revisions of "Aufgaben:Exercise 1.2Z: Three-dimensional Representation of Codes"

From LNTwww
 
(13 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{quiz-Header|Buchseite=Kanalcodierung/Zielsetzung_der_Kanalcodierung
+
{{quiz-Header|Buchseite=Channel_Coding/Objective_of_Channel_Coding
 
}}
 
}}
  
[[File:P_ID2400__KC_Z_1_2.png|right|]]
+
[[File:P_ID2400__KC_Z_1_2.png|right|frame|Space&nbsp; $\rm GF(2^3)$&nbsp; and&nbsp; <br>code of length&nbsp; $n = 3$]]
Codes zur Fehlererkennung bzw. Fehlererkorrektur lassen sich sehr anschaulich im ''n''–dimensionalen Raum darstellen. Wir beschränken uns hier auf binäre Codes der Länge ''n'' = 3:
+
Codes for error detection or error correction can be represented very clearly in an&nbsp; $n$-dimensional space.&nbsp; We restrict ourselves here to binary codes of length&nbsp; $n = 3$:
:$$\underline{x} \hspace{-0.15cm} = \hspace{-0.15cm} (x_{1}, x_{2}, x_{3}) \hspace{0.1cm} \in \hspace{0.1cm}{\rm GF}(2^3) \hspace{0.05cm},\\ x_i \hspace{-0.15cm} \in  \hspace{-0.15cm} \{0, 1 \}\hspace{0.05cm},\hspace{0.2cm} i = 1, 2, 3\hspace{0.05cm}.$$
+
:$$\underline{x} = (x_{1},\ x_{2},\ x_{3}) \hspace{0.1cm} \in \hspace{0.1cm}{\rm GF}(2^3) \hspace{0.05cm},\hspace{0.5cm} x_i = \{0,\ 1 \}\hspace{0.05cm},\hspace{0.2cm} i = 1, 2, 3\hspace{0.05cm}.$$
  
Allgemein gilt bei der Blockcodierung:
+
In general,&nbsp; for block coding:
*Das Informationswort <u>u</u> = $(u_{1}, u_{2}, ... , u_{k})$ wird eindeutig in das Codewort <u>x</u> = $(x_{1}, x_{2}, ... , x_{n})$ überführt.
+
*The information word&nbsp; $\underline{u} = (u_{1},\ u_{2}, \ \text{...} , \ u_{k})$&nbsp; is uniquely transformed into the code word&nbsp; $\underline{x} =(x_{1},\ x_{2}, \ \text{...} , \ , x_{n})$.
*Die Coderate beträgt R = k/n.
 
*Die Hamming–Distanz $d_{\rm H}$(<u>x</u>,<u> x'</u>) zwischen zwei Codeworten <u>x</u> ∈ C und <u>x'</u> ∈ C gibt die Anzahl der Bitpositionen an, in denen sich x und x' unterscheiden.
 
*Die Minimaldistanz $d_{\rm min}$ = min [$d_{\rm H}$(<u>x</u>,<u> x'</u>)] ist ein Maß für die Korrekturfähigkeit eines Codes.
 
*Es können ''e'' =$d_{\rm min}$ – 1 Fehler erkannt und ''t'' = ($d_{\rm min}$ – 1)/2 korrigiert werden. Die letzte Aussage gilt allerdings nur für ungerades $d_{\rm min}$ .
 
  
''Hinweis'':
+
*The code rate is&nbsp; $R = k/n$.
Die Aufgabe gehört zum Themengebiet von [[Kanalcodierung/Zielsetzung_der_Kanalcodierung|Zielsetzung_der_Kanalcodierung]]. Zusätzlich werden einige einfache Fragen zu [[Kanalcodierung/Beispiele_binärer_Blockcodes|Beispiele_binärer_Blockcodes]] vorweg genommen.
 
  
===Fragebogen===
+
*The Hamming distance&nbsp; $d_{\rm H}(x, \hspace{0.05cm}x\hspace{0.05cm}')$&nbsp; between two code words&nbsp; $x ∈ \mathcal{C}$&nbsp; and&nbsp; $x\hspace{0.05cm}' ∈ \mathcal{C}$&nbsp; indicates the number of bit positions in which&nbsp; $x$&nbsp; and&nbsp; $x\hspace{0.05cm}'$&nbsp; differ.
 +
 
 +
*The minimum distance&nbsp; $d_{\rm min} = {\rm min}\big[d_{\rm H}(x, \hspace{0.05cm}x\hspace{0.05cm}')\big]$&nbsp; is a measure of the correctability of a code.
 +
 
 +
*It can detect&nbsp; $e =d_{\rm min} - 1$&nbsp; errors and can correct&nbsp; $t =(d_{\rm min} - 1)/2$&nbsp;  errors.
 +
 +
*The last statement,&nbsp; however,&nbsp; is valid only for odd&nbsp; $d_{\rm min}$.
 +
 
 +
 
 +
 
 +
 
 +
Hints:
 +
*This exercise belongs to the chapter&nbsp; [[Channel_Coding/Objective_of_Channel_Coding|"Objective of Channel Coding"]]
 +
 
 +
*In addition,&nbsp; some simple questions about the chapter&nbsp; [[Channel_Coding/Examples_of_Binary_Block_Codes|"Examples of binary block codes"]]&nbsp; are anticipated.
 +
 +
 
 +
 
 +
 
 +
===Questions===
  
 
<quiz display=simple>
 
<quiz display=simple>
  
{Welche Aussagen gelten, wenn alle Punkte in GF(23) belegt sind?
+
{Which statements hold if all points in&nbsp; $\rm GF(2^3)$&nbsp; are occupied?
 
|type="[]"}
 
|type="[]"}
+ Es gilt die Zuordnung <u>u</u>  = $ (u_{1}, u_{2}, u_{3})$<u>x</u>=$(x_{1}, x_{2},x_{3})$.
+
+ The assignment&nbsp; $\underline{u} = (u_{1},\ u_{2},\ u_{3})$ &nbsp; &nbsp; $\underline{x} = (x_{1},\ x_{2},\ x_{3})$&nbsp; holds.
- Es gilt die Identität <u>x</u> = <u>u</u>.
+
- The identity&nbsp; $\underline{x} = \underline{u}$&nbsp; holds.
+ Die Coderate ist R = 1.
+
+ The code rate is&nbsp; $R = 1$.
-Die Minimaldistanz zwischen zwei Codeworten ist $d_{\rm min}$ = 2.
+
-The minimum distance between two code words is&nbsp; $d_{\rm min} = 2$.
  
{Welche Aussagen gelten für einen (3, 2, 2)–Blockcode?
+
{Which statements are true for a&nbsp; $(3, 2, 2)$&nbsp; block code?
 
|type="[]"}
 
|type="[]"}
+ Code $C_{1}= {(0, 0, 0), (0, 1, 1), (1, 0, 1), (1, 1, 0)} ist möglich.
+
+ Code&nbsp; $\mathcal{C}_{1} = \{(0, 0, 0),\ (0, 1, 1),\ (1, 0, 1),\ (1, 1, 0)\}$&nbsp; is possible.
- Code $C_{2}$ = {(0, 0, 1), (0, 1, 0), (1, 0, 0), (1, 1, 1)} ist möglich.
+
+ Code&nbsp; $\mathcal{C}_{2} = \{(0, 0, 1),\ (0, 1, 0),\ (1, 0, 0),\ (1, 1, 1)\}$&nbsp; is possible.
+ Code $C_{3}$ = {(0, 0, 0), (0, 1, 1), (1, 0, 0), (1, 1, 1)} ist möglich.
+
- Code&nbsp; $\mathcal{C}_{3} = \{(0, 0, 0),\ (0, 1, 1),\ (1, 0, 0),\ (1, 1, 1)\}$&nbsp; is possible.
  
{Welche Eigenschaften zeigt der in Teilaufgabe 2) definierte Code $C_{1}$?
+
{What properties does the code&nbsp; $\mathcal{C}_{1}$&nbsp; defined in subtask&nbsp; '''(2)'''&nbsp; show?
 
|type="[]"}
 
|type="[]"}
+ Ein Bitfehler lässt sich erkennen.
+
+ A bit error can be detected.
- Ein Bitfehler kann korrigiert werden.
+
- A bit error can be corrected.
  
{Welche Eigenschaften zeigt der Code $C_{4}$= {(0, 0, 0), (1, 1, 1)}?
+
{What properties does the code&nbsp; $\mathcal{C}_{4}= \{(0, 0, 0),\ (1, 1, 1)\}$&nbsp;  show?
 
|type="[]"}
 
|type="[]"}
- Die Coderate beträgt R = 1/4.
+
- The code rate is&nbsp; $R = 1/4$.
+ Die Coderate beträgt R = 1/3.
+
+ The code rate is&nbsp; $R = 1/3$.
+ Ein Bitfehler lässt sich erkennen.
+
+ A bit error can be detected.
Ein Bitfehler lässt sich erkennen.
+
+ A bit error can be corrected.
 
 
 
 
 
 
 
 
  
  
 
</quiz>
 
</quiz>
  
===Musterlösung===
+
===Solution===
 
{{ML-Kopf}}
 
{{ML-Kopf}}
'''(1)'''&nbsp; Richtig sind die <u>Aussagen 1 und 3</u>: k = 3 Informationsbits werden bei dieser Belegung auf n = 3 Codebits abgebildet ⇒ R = k/n = 1. Die Aussage <>x</u> = <>u</u> würde nur bei systematischer Codierung gelten. Prinzipiell möglich wäre zum Beispiel auch (0, 0, 0) → (0, 1, 1). Die letzte Aussage ist mit Sicherheit falsch: Aus der Grafik erkennt man die Minimaldistanz $d_{\rm min}$ = 1.
+
'''(1)'''&nbsp; Correct&nbsp; <u>statements 1 and 3</u>:  
 
+
*In this assignment,&nbsp; $k = 3$&nbsp; information bits are mapped to&nbsp; $n = 3$&nbsp; code bits &nbsp; &nbsp; $R = k/n = 1$.  
'''(2)'''&nbsp; [[File:P_ID2401__KC_Z_1_2b.png|right|frame|Zwei (3, 2, 2)–Blockcodes]]
+
*The statement&nbsp; $\underline{x} = \underline{u} $&nbsp; would only hold in the case of systematic coding.
$C_{1}$ und $C_{2}$ beschreiben tatsächlich Codes mit der Rate R = 2/3 und der Minimaldistanz $d_{\rm min}$ = 2  ⇒  <u>Antwort 1 und 2.</u>
+
*For example,&nbsp; in principle.&nbsp; $(0, 0, 0)$ &nbsp; &nbsp; $(0, 1, 1)$&nbsp; would also be possible.  
 +
*The last statement is certainly false:&nbsp; From the graph one can see the minimum distance&nbsp; $d_{\rm min} = 1$.
  
  
In nebenstehender Grafik markieren die grünen Punkte den Code $C_{1}$ und die blauen Punkte den Code $C_{2}$. Beim angegebenen Code $C_{3}$ – ebenfalls mit Rate R = 2/3 – ist die minimale Distanz zwischen zwei Codeworten $d_{\rm min}$ = 1, zum Beispiel zwischen (0, 0, 0) und (1, 0, 0) oder auch zwischen (0, 1, 1) und (1, 1, 1).
+
[[File:P_ID2401__KC_Z_1_2b.png|right|frame|Two&nbsp; $(3, 2, 2)$&nbsp; block codes]]
 +
'''(2)'''&nbsp; Correct&nbsp; <u>statements 1 and 2</u>:
 +
*$\mathcal{C}_{1}$&nbsp; and&nbsp; $\mathcal{C}_{2}$ actually&nbsp; describe codes with rate&nbsp; $R = 2/3$&nbsp; and minimum distance&nbsp; $d_{\rm min} = 2$.   
 +
*In the graph,&nbsp; the green dots mark the code&nbsp; $\mathcal{C}_{1}$&nbsp; and the blue dots mark the code&nbsp; $\mathcal{C}_{2}$.  
 +
*For the code&nbsp; $\mathcal{C}_{3}$&nbsp; &ndash; also with rate&nbsp; $R = 2/3$&nbsp; &ndash; the minimum distance between two code words is&nbsp; $d_{\rm min} = 1$,&nbsp; <br>for example between&nbsp; $(0, 0, 0)$&nbsp; and&nbsp; $(1, 0, 0)$&nbsp; or between&nbsp; $(0, 1, 1)$&nbsp; and&nbsp; $(1, 1, 1)$.
  
  
 
   
 
   
'''(3)'''&nbsp; Mit der Minimaldistanz $d_{\rm min}$ = 2 kann lediglich ein Bitfehler erkannt werden. In der oberen Grafik kennzeichnen die grünen Punkte zulässige Codeworte von $C_{1}$. Wird ein blauer Punkt empfangen, so weist dies auf einen Übertragungsfehler hin. Eine Fehlerkorrektur ist mit $d_{\rm min}$ = 2 dagegen nicht möglich ⇒ <u>Antwort 1</u>. Hinweis: Der Code $C_{1}$ entspricht dem [[Kanalcodierung/Beispiele_binärer_Blockcodes#Single_Parity.E2.80.93check_Codes|Single Parity–check Code]] (3, 2, 2).
+
'''(3)'''&nbsp; Correct is only&nbsp; <u>statement 1</u>:
 
+
*Only a bit error can be detected with the minimum distance&nbsp; $d_{\rm min} = 2$.  
 +
*In the upper graph,&nbsp; the green dots indicate allowed code words of&nbsp; $\mathcal{C}_{1}$.&nbsp; <br>If a blue dot is received,&nbsp; this indicates a transmission error.  
 +
*On the other hand,&nbsp; error correction is not possible with&nbsp; $d_{\rm min} = 2$.  
 +
*The code&nbsp; $\mathcal{C}_{1}$&nbsp; corresponds to the&nbsp; [[Channel_Coding/Examples_of_Binary_Block_Codes#Single_Parity_Check_Codes|single parity-check code&nbsp; $(3, 2, 2)$]].
  
'''(4)'''&nbsp; [[File:P_ID2402__KC_Z_1_2d.png|right|frame|(3, 1, 3)–Blockcode]]
 
$C_{4}$ beschreibt den [[Kanalcodierung/Beispiele_binärer_Blockcodes#Wiederholungscodes|(3, 1, 3)–Wiederholungscode]]. Bei diesem Code sind zwar zwei der insgesamt acht möglichen Punkte belegt, woraus man fälschlicherweise auf die Coderate R = 1/4 schließen könnte. Die Coderate berechnet sich aber gemäß R = k/n = 1/3.
 
Aus der unteren Grafik erkennt man, dass wegen dmin = 3 nun auch ein Bitfehler korrigiert werden kann. Bei der Decodierung werden alle hellgrünen Punkte (mit schwarzer Umrahmung) in den grünen Punkt (0, 0, 0) überführt und alle hellblauen in den blauen Punkt (1, 1, 1). Gleichzeitig können bis zu zwei Bitfehler erkannt werden (einer natürlich auch)  ⇒  Richtig sind die <u>Antworten 2, 3 und 4</u>.
 
  
 +
[[File:P_ID2402__KC_Z_1_2d.png|right|frame|$(3, 1, 3)$&nbsp; block code]]
 +
'''(4)'''&nbsp; Correct&nbsp; <u>answers 2, 3, and 4</u>:
 +
*$C_{4}$&nbsp; describes the&nbsp; [[Channel_Coding/Examples_of_Binary_Block_Codes#Repetition_Codes|$(3, 1, 3)$ repetition code]].&nbsp; In this code,&nbsp; two of the total eight possible points are occupied,&nbsp; from which one could incorrectly conclude the code rate $R = 1/4$.
 +
*However,&nbsp; the code rate is calculated according to $R = k/n = 1/3$.
 +
*From the lower diagram one recognizes that because of&nbsp; $d_{\rm min} = 3$&nbsp; now also one bit error can be corrected.
 +
*During decoding,&nbsp; all light green points&nbsp; (with black outline)&nbsp; are transferred to the green point&nbsp; $(0, 0, 0)$&nbsp; and all light blue points are transferred to the blue point&nbsp; $(1, 1, 1)$.
 +
*Up to two bit errors can be detected at the same time&nbsp; (one of course).   
 
{{ML-Fuß}}
 
{{ML-Fuß}}
  
  
  
[[Category:Aufgaben zu  Kanalcodierung|^1.1 Zielsetzung der Kanalcodierung^]]
+
[[Category:Channel Coding: Exercises|^1.1 Objective of Channel Coding^]]

Latest revision as of 15:23, 6 June 2022

Space  $\rm GF(2^3)$  and 
code of length  $n = 3$

Codes for error detection or error correction can be represented very clearly in an  $n$-dimensional space.  We restrict ourselves here to binary codes of length  $n = 3$:

$$\underline{x} = (x_{1},\ x_{2},\ x_{3}) \hspace{0.1cm} \in \hspace{0.1cm}{\rm GF}(2^3) \hspace{0.05cm},\hspace{0.5cm} x_i = \{0,\ 1 \}\hspace{0.05cm},\hspace{0.2cm} i = 1, 2, 3\hspace{0.05cm}.$$

In general,  for block coding:

  • The information word  $\underline{u} = (u_{1},\ u_{2}, \ \text{...} , \ u_{k})$  is uniquely transformed into the code word  $\underline{x} =(x_{1},\ x_{2}, \ \text{...} , \ , x_{n})$.
  • The code rate is  $R = k/n$.
  • The Hamming distance  $d_{\rm H}(x, \hspace{0.05cm}x\hspace{0.05cm}')$  between two code words  $x ∈ \mathcal{C}$  and  $x\hspace{0.05cm}' ∈ \mathcal{C}$  indicates the number of bit positions in which  $x$  and  $x\hspace{0.05cm}'$  differ.
  • The minimum distance  $d_{\rm min} = {\rm min}\big[d_{\rm H}(x, \hspace{0.05cm}x\hspace{0.05cm}')\big]$  is a measure of the correctability of a code.
  • It can detect  $e =d_{\rm min} - 1$  errors and can correct  $t =(d_{\rm min} - 1)/2$  errors.
  • The last statement,  however,  is valid only for odd  $d_{\rm min}$.



Hints:



Questions

1

Which statements hold if all points in  $\rm GF(2^3)$  are occupied?

The assignment  $\underline{u} = (u_{1},\ u_{2},\ u_{3})$   →   $\underline{x} = (x_{1},\ x_{2},\ x_{3})$  holds.
The identity  $\underline{x} = \underline{u}$  holds.
The code rate is  $R = 1$.
The minimum distance between two code words is  $d_{\rm min} = 2$.

2

Which statements are true for a  $(3, 2, 2)$  block code?

Code  $\mathcal{C}_{1} = \{(0, 0, 0),\ (0, 1, 1),\ (1, 0, 1),\ (1, 1, 0)\}$  is possible.
Code  $\mathcal{C}_{2} = \{(0, 0, 1),\ (0, 1, 0),\ (1, 0, 0),\ (1, 1, 1)\}$  is possible.
Code  $\mathcal{C}_{3} = \{(0, 0, 0),\ (0, 1, 1),\ (1, 0, 0),\ (1, 1, 1)\}$  is possible.

3

What properties does the code  $\mathcal{C}_{1}$  defined in subtask  (2)  show?

A bit error can be detected.
A bit error can be corrected.

4

What properties does the code  $\mathcal{C}_{4}= \{(0, 0, 0),\ (1, 1, 1)\}$  show?

The code rate is  $R = 1/4$.
The code rate is  $R = 1/3$.
A bit error can be detected.
A bit error can be corrected.


Solution

(1)  Correct  statements 1 and 3:

  • In this assignment,  $k = 3$  information bits are mapped to  $n = 3$  code bits   ⇒   $R = k/n = 1$.
  • The statement  $\underline{x} = \underline{u} $  would only hold in the case of systematic coding.
  • For example,  in principle.  $(0, 0, 0)$   →   $(0, 1, 1)$  would also be possible.
  • The last statement is certainly false:  From the graph one can see the minimum distance  $d_{\rm min} = 1$.


Two  $(3, 2, 2)$  block codes

(2)  Correct  statements 1 and 2:

  • $\mathcal{C}_{1}$  and  $\mathcal{C}_{2}$ actually  describe codes with rate  $R = 2/3$  and minimum distance  $d_{\rm min} = 2$.
  • In the graph,  the green dots mark the code  $\mathcal{C}_{1}$  and the blue dots mark the code  $\mathcal{C}_{2}$.
  • For the code  $\mathcal{C}_{3}$  – also with rate  $R = 2/3$  – the minimum distance between two code words is  $d_{\rm min} = 1$, 
    for example between  $(0, 0, 0)$  and  $(1, 0, 0)$  or between  $(0, 1, 1)$  and  $(1, 1, 1)$.


(3)  Correct is only  statement 1:

  • Only a bit error can be detected with the minimum distance  $d_{\rm min} = 2$.
  • In the upper graph,  the green dots indicate allowed code words of  $\mathcal{C}_{1}$. 
    If a blue dot is received,  this indicates a transmission error.
  • On the other hand,  error correction is not possible with  $d_{\rm min} = 2$.
  • The code  $\mathcal{C}_{1}$  corresponds to the  single parity-check code  $(3, 2, 2)$.


$(3, 1, 3)$  block code

(4)  Correct  answers 2, 3, and 4:

  • $C_{4}$  describes the  $(3, 1, 3)$ repetition code.  In this code,  two of the total eight possible points are occupied,  from which one could incorrectly conclude the code rate $R = 1/4$.
  • However,  the code rate is calculated according to $R = k/n = 1/3$.
  • From the lower diagram one recognizes that because of  $d_{\rm min} = 3$  now also one bit error can be corrected.
  • During decoding,  all light green points  (with black outline)  are transferred to the green point  $(0, 0, 0)$  and all light blue points are transferred to the blue point  $(1, 1, 1)$.
  • Up to two bit errors can be detected at the same time  (one of course).