Aufgaben:Aufgabe 1.2Z: 3D–Darstellung von Codes: Unterschied zwischen den Versionen

Aus LNTwww
Wechseln zu:Navigation, Suche
 
(8 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 2: Zeile 2:
 
}}
 
}}
  
[[Datei:P_ID2400__KC_Z_1_2.png|right|]]
+
[[Datei:P_ID2400__KC_Z_1_2.png|right|frame|Raum $\rm GF(2^3)$ und <br>Code der Länge $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 zur Fehlererkennung bzw. Fehlererkorrektur lassen sich sehr anschaulich im&nbsp; $n$–dimensionalen Raum darstellen.&nbsp; Wir beschränken uns hier auf binäre Codes der Länge&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:
 
Allgemein gilt bei der Blockcodierung:
*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.
+
*Das Informationswort&nbsp; $\underline{u} = (u_{1}, u_{2}, \ \text{...} , \ u_{k})$&nbsp; wird eindeutig in das Codewort&nbsp; $\underline{x} =(x_{1}, x_{2}, \ \text{...} , \ , x_{n})$&nbsp; überführt.
*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 Coderate beträgt&nbsp; $R = k/n$.
*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}$ .
+
*Die Hamming–Distanz&nbsp; $d_{\rm H}(x, \hspace{0.05cm}x\hspace{0.05cm}')$&nbsp; zwischen zwei Codeworten&nbsp; $x ∈ \mathcal{C}$&nbsp; und&nbsp; $x\hspace{0.05cm}' ∈ \mathcal{C}$&nbsp; gibt die Anzahl der Bitpositionen an,&nbsp; in denen sich&nbsp; $x$&nbsp; und&nbsp; $x\hspace{0.05cm}'$&nbsp; unterscheiden.
 +
 
 +
*Die Minimaldistanz&nbsp; $d_{\rm min} = {\rm min}\big[d_{\rm H}(x, \hspace{0.05cm}x\hspace{0.05cm}')\big]$&nbsp; ist ein Maß für die Korrekturfähigkeit eines Codes.
 +
 
 +
*Es können&nbsp; $e =d_{\rm min} – 1$&nbsp; Fehler erkannt und&nbsp; $t =(d_{\rm min} – 1)/2$&nbsp; Fehler korrigiert werden.  
 +
 
 +
*Die letzte Aussage gilt allerdings nur für ungerades&nbsp; $d_{\rm min}$.
 +
 
 +
 
 +
 
 +
 
 +
Hinweise:
 +
*Die Aufgabe gehört zum Kapitel&nbsp; [[Kanalcodierung/Zielsetzung_der_Kanalcodierung|"Zielsetzung der Kanalcodierung"]].
 +
 +
*Zusätzlich werden einige einfache Fragen zum Kapitel&nbsp; [[Kanalcodierung/Beispiele_binärer_Blockcodes|"Beispiele binärer Blockcodes"]]&nbsp; vorweg genommen.
 +
 +
 
  
''Hinweis'':
 
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===
 
===Fragebogen===
Zeile 20: Zeile 34:
 
<quiz display=simple>
 
<quiz display=simple>
  
{Welche Aussagen gelten, wenn alle Punkte in GF(23) belegt sind?
+
{Welche Aussagen gelten,&nbsp; wenn alle Punkte in&nbsp; $\rm GF(2^3)$&nbsp; belegt sind?
 
|type="[]"}
 
|type="[]"}
+ Es gilt die Zuordnung <u>u</u>  = $ (u_{1}, u_{2}, u_{3})$) <u>x</u>=$(x_{1}, x_{2},x_{3})$.
+
+ Es gilt die Zuordnung&nbsp; $\underline{u} = (u_{1}, u_{2}, u_{3})$ &nbsp; &nbsp; $\underline{x} = (x_{1}, x_{2},x_{3})$.
- Es gilt die Identität <u>x</u> <u>u</u>.
+
- Es gilt die Identität&nbsp; $\underline{x} \underline{u}$.
+ Die Coderate ist R = 1.
+
+ Die Coderate ist&nbsp; $R = 1$.
-Die Minimaldistanz zwischen zwei Codeworten ist $d_{\rm min}$ = 2.
+
-Die Minimaldistanz zwischen zwei Codeworten ist&nbsp; $d_{\rm min} = 2$.
  
{Welche Aussagen gelten für einen (3, 2, 2)–Blockcode?
+
{Welche Aussagen gelten für einen&nbsp; $(3, 2, 2)$–Blockcode?
 
|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; ist möglich.
- 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; ist möglich.
+ 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; ist möglich.
  
{Welche Eigenschaften zeigt der in Teilaufgabe 2) definierte Code $C_{1}$?
+
{Welche Eigenschaften zeigt der in Teilaufgabe&nbsp; '''(2)'''&nbsp; definierte Code&nbsp; $\mathcal{C}_{1}$?
 
|type="[]"}
 
|type="[]"}
 
+ Ein Bitfehler lässt sich erkennen.
 
+ Ein Bitfehler lässt sich erkennen.
 
- Ein Bitfehler kann korrigiert werden.
 
- Ein Bitfehler kann korrigiert werden.
  
{Welche Eigenschaften zeigt der Code $C_{4}$= {(0, 0, 0), (1, 1, 1)}?
+
{Welche Eigenschaften zeigt der Code&nbsp; $\mathcal{C}_{4}= \{(0, 0, 0),&nbsp; (1, 1, 1)\}$?
 
|type="[]"}
 
|type="[]"}
- Die Coderate beträgt R = 1/4.
+
- Die Coderate beträgt&nbsp; $R = 1/4$.
+ Die Coderate beträgt R = 1/3.
+
+ Die Coderate beträgt&nbsp; $R = 1/3$.
 
+ Ein Bitfehler lässt sich erkennen.
 
+ Ein Bitfehler lässt sich erkennen.
Ein Bitfehler lässt sich erkennen.
+
+ Ein Bitfehler kann korrigiert werden.
 
 
 
 
 
 
 
 
  
  
Zeile 54: Zeile 64:
 
===Musterlösung===
 
===Musterlösung===
 
{{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; Richtig sind die&nbsp; <u>Aussagen 1 und 3</u>:  
 
+
*Bei dieser Belegung werden&nbsp; $k = 3$&nbsp; Informationsbits auf&nbsp; $n = 3$&nbsp; Codebits abgebildet &nbsp; &nbsp; $R = k/n = 1$.  
'''(2)'''&nbsp; [[Datei:P_ID2401__KC_Z_1_2b.png|right|frame|Zwei (3, 2, 2)–Blockcodes]]
+
*Die Aussage&nbsp; $\underline{x} =   \underline{u} $&nbsp;  würde nur bei systematischer Codierung gelten.  
$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>
+
*Prinzipiell möglich wäre zum Beispiel auch $(0, 0, 0)$ &nbsp;  &nbsp;  $(0, 1, 1)$.  
 +
*Die letzte Aussage ist mit Sicherheit falsch:&nbsp; Aus der Grafik erkennt man die Minimaldistanz&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).
+
[[Datei:P_ID2401__KC_Z_1_2b.png|right|frame|Zwei&nbsp; $(3, 2, 2)$–Blockcodes]]
 +
'''(2)'''&nbsp; Richtig sind die&nbsp; <u>Aussagen 1 und 3</u>:
 +
*$\mathcal{C}_{1}$&nbsp; und&nbsp; $\mathcal{C}_{2}$&nbsp; beschreiben tatsächlich Codes mit der Rate&nbsp; $R = 2/3$&nbsp; und der Minimaldistanz&nbsp; $d_{\rm min} = 2$.   
 +
*In der Grafik markieren die grünen Punkte den Code&nbsp; $\mathcal{C}_{1}$&nbsp; und die blauen Punkte den Code&nbsp; $\mathcal{C}_{2}$.  
 +
*Beim Code&nbsp; $\mathcal{C}_{3}$&nbsp; &ndash; ebenfalls mit Rate $R = 2/3$ &ndash; ist die minimale Distanz zwischen zwei Codeworten $d_{\rm min} = 1$,&nbsp; zum Beispiel zwischen&nbsp; $(0, 0, 0)$&nbsp; und&nbsp; $(1, 0, 0)$&nbsp; oder zwischen&nbsp; $(0, 1, 1)$&nbsp; und&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; Richtig ist nur die&nbsp; <u>Aussage 1</u>:
 
+
*Mit der Minimaldistanz&nbsp; $d_{\rm min} = 2$&nbsp; kann lediglich ein Bitfehler erkannt werden.  
 +
*In der oberen Grafik kennzeichnen die grünen Punkte zulässige Codeworte von&nbsp; $\mathcal{C}_{1}$.&nbsp; Wird ein blauer Punkt empfangen,&nbsp; so weist dies auf einen Übertragungsfehler hin.  
 +
*Eine Fehlerkorrektur ist mit&nbsp; $d_{\rm min} = 2$&nbsp; dagegen nicht möglich.  
 +
*Der Code&nbsp; $\mathcal{C}_{1}$&nbsp; entspricht dem&nbsp; [[Kanalcodierung/Beispiele_binärer_Blockcodes#Single_Parity.E2.80.93check_Codes|Single Parity–check Code $(3, 2, 2)$]].
  
'''(4)'''&nbsp; [[Datei: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>.
 
  
 +
[[Datei:P_ID2402__KC_Z_1_2d.png|right|frame|$(3, 1, 3)$–Blockcode]]
 +
'''(4)'''&nbsp; Richtig sind die&nbsp; <u>Antworten 2, 3 und 4</u>:
 +
*$C_{4}$&nbsp; beschreibt den&nbsp; [[Kanalcodierung/Beispiele_binärer_Blockcodes#Wiederholungscodes|$(3, 1, 3)$–Wiederholungscode]].
 +
*Bei diesem Code sind zwar zwei der insgesamt acht möglichen Punkte belegt,&nbsp; woraus man fälschlicherweise auf die Coderate&nbsp; $R = 1/4$&nbsp; schließen könnte.&nbsp; Die Coderate berechnet sich aber gemäß $R = k/n = 1/3$.
 +
*Aus der unteren Grafik erkennt man,&nbsp; dass wegen&nbsp; $d_{\rm min} = 3$&nbsp; nun auch ein Bitfehler korrigiert werden kann.
 +
*Bei der Decodierung werden alle hellgrünen Punkte&nbsp; (mit schwarzer Umrahmung)&nbsp; in den grünen Punkt&nbsp; $(0, 0, 0)$&nbsp; überführt und alle hellblauen in den blauen Punkt&nbsp; $(1, 1, 1)$.
 +
*Gleichzeitig können bis zu zwei Bitfehler erkannt werden&nbsp; (einer natürlich auch). 
 
{{ML-Fuß}}
 
{{ML-Fuß}}
  

Aktuelle Version vom 6. Juni 2022, 15:02 Uhr

Raum $\rm GF(2^3)$ und
Code der Länge $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$:

$$\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:

  • Das Informationswort  $\underline{u} = (u_{1}, u_{2}, \ \text{...} , \ u_{k})$  wird eindeutig in das Codewort  $\underline{x} =(x_{1}, x_{2}, \ \text{...} , \ , x_{n})$  überführt.
  • Die Coderate beträgt  $R = k/n$.
  • Die Hamming–Distanz  $d_{\rm H}(x, \hspace{0.05cm}x\hspace{0.05cm}')$  zwischen zwei Codeworten  $x ∈ \mathcal{C}$  und  $x\hspace{0.05cm}' ∈ \mathcal{C}$  gibt die Anzahl der Bitpositionen an,  in denen sich  $x$  und  $x\hspace{0.05cm}'$  unterscheiden.
  • Die Minimaldistanz  $d_{\rm min} = {\rm min}\big[d_{\rm H}(x, \hspace{0.05cm}x\hspace{0.05cm}')\big]$  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$  Fehler korrigiert werden.
  • Die letzte Aussage gilt allerdings nur für ungerades  $d_{\rm min}$.



Hinweise:



Fragebogen

1

Welche Aussagen gelten,  wenn alle Punkte in  $\rm GF(2^3)$  belegt sind?

Es gilt die Zuordnung  $\underline{u} = (u_{1}, u_{2}, u_{3})$   →   $\underline{x} = (x_{1}, x_{2},x_{3})$.
Es gilt die Identität  $\underline{x} = \underline{u}$.
Die Coderate ist  $R = 1$.
Die Minimaldistanz zwischen zwei Codeworten ist  $d_{\rm min} = 2$.

2

Welche Aussagen gelten für einen  $(3, 2, 2)$–Blockcode?

Code  $\mathcal{C}_{1} = \{(0, 0, 0),\ (0, 1, 1),\ (1, 0, 1),\ (1, 1, 0)\}$  ist möglich.
Code  $\mathcal{C}_{2} = \{(0, 0, 1),\ (0, 1, 0),\ (1, 0, 0),\ (1, 1, 1)\}$  ist möglich.
Code  $\mathcal{C}_{3} = \{(0, 0, 0),\ (0, 1, 1),\ (1, 0, 0),\ (1, 1, 1)\}$  ist möglich.

3

Welche Eigenschaften zeigt der in Teilaufgabe  (2)  definierte Code  $\mathcal{C}_{1}$?

Ein Bitfehler lässt sich erkennen.
Ein Bitfehler kann korrigiert werden.

4

Welche Eigenschaften zeigt der Code  $\mathcal{C}_{4}= \{(0, 0, 0),  (1, 1, 1)\}$?

Die Coderate beträgt  $R = 1/4$.
Die Coderate beträgt  $R = 1/3$.
Ein Bitfehler lässt sich erkennen.
Ein Bitfehler kann korrigiert werden.


Musterlösung

(1)  Richtig sind die  Aussagen 1 und 3:

  • Bei dieser Belegung werden  $k = 3$  Informationsbits auf  $n = 3$  Codebits abgebildet   ⇒   $R = k/n = 1$.
  • Die Aussage  $\underline{x} = \underline{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$.


Zwei  $(3, 2, 2)$–Blockcodes

(2)  Richtig sind die  Aussagen 1 und 3:

  • $\mathcal{C}_{1}$  und  $\mathcal{C}_{2}$  beschreiben tatsächlich Codes mit der Rate  $R = 2/3$  und der Minimaldistanz  $d_{\rm min} = 2$.
  • In der Grafik markieren die grünen Punkte den Code  $\mathcal{C}_{1}$  und die blauen Punkte den Code  $\mathcal{C}_{2}$.
  • Beim Code  $\mathcal{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 zwischen  $(0, 1, 1)$  und  $(1, 1, 1)$.


(3)  Richtig ist nur die  Aussage 1:

  • 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  $\mathcal{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.
  • Der Code  $\mathcal{C}_{1}$  entspricht dem  Single Parity–check Code $(3, 2, 2)$.


$(3, 1, 3)$–Blockcode

(4)  Richtig sind die  Antworten 2, 3 und 4:

  • $C_{4}$  beschreibt den  $(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  $d_{\rm min} = 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).