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

Aus LNTwww
Wechseln zu:Navigation, Suche
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 3: Zeile 3:
  
 
[[Datei:P_ID2400__KC_Z_1_2.png|right|frame|Raum $\rm GF(2^3)$ und <br>Code der Länge $n = 3$]]
 
[[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&nbsp; $n$–dimensionalen Raum darstellen. Wir beschränken uns hier auf binäre Codes der Länge&nbsp; $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} = (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}.$$
+
:$$\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&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.
 
*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&nbsp; $R = k/n$.
 
*Die Coderate beträgt&nbsp; $R = k/n$.
*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, in denen sich&nbsp; $x$&nbsp; und&nbsp; $x\hspace{0.05cm}'$&nbsp; unterscheiden.
+
 
 +
*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.
 
*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.  
 
*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}$.
 
*Die letzte Aussage gilt allerdings nur für ungerades&nbsp; $d_{\rm min}$.
  
Zeile 17: Zeile 22:
  
  
 
+
Hinweise:
 
+
*Die Aufgabe gehört zum Kapitel&nbsp; [[Kanalcodierung/Zielsetzung_der_Kanalcodierung|"Zielsetzung der Kanalcodierung"]].
''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.
*Zusätzlich werden einige einfache Fragen zum Kapitel&nbsp; [[Kanalcodierung/Beispiele_binärer_Blockcodes|Beispiele binärer Blockcodes]]&nbsp; vorweg genommen.
 
 
   
 
   
  
Zeile 30: Zeile 34:
 
<quiz display=simple>
 
<quiz display=simple>
  
{Welche Aussagen gelten, wenn alle Punkte in&nbsp; $\rm GF(2^3)$&nbsp; belegt sind?
+
{Welche Aussagen gelten,&nbsp; wenn alle Punkte in&nbsp; $\rm GF(2^3)$&nbsp; belegt sind?
 
|type="[]"}
 
|type="[]"}
 
+ 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 Zuordnung&nbsp; $\underline{u} = (u_{1}, u_{2}, u_{3})$ &nbsp;  → &nbsp; $\underline{x} = (x_{1}, x_{2},x_{3})$.
Zeile 37: Zeile 41:
 
-Die Minimaldistanz zwischen zwei Codeworten ist&nbsp; $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&nbsp; $\mathcal{C}_{1}  = \{(0, 0, 0), (0, 1, 1), (1, 0, 1), (1, 1, 0)\}$&nbsp; 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&nbsp; $\mathcal{C}_{2}  = \{(0, 0, 1), (0, 1, 0), (1, 0, 0), (1, 1, 1)\}$&nbsp; 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&nbsp; $\mathcal{C}_{3}  = \{(0, 0, 0), (0, 1, 1), (1, 0, 0), (1, 1, 1)\}$&nbsp; 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&nbsp; $\mathcal{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&nbsp; $\mathcal{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&nbsp; $R = 1/4$.
 
- Die Coderate beträgt&nbsp; $R = 1/4$.
Zeile 60: Zeile 64:
 
===Musterlösung===
 
===Musterlösung===
 
{{ML-Kopf}}
 
{{ML-Kopf}}
'''(1)'''&nbsp; Richtig sind die <u>Aussagen 1 und 3</u>:  
+
'''(1)'''&nbsp; Richtig sind die&nbsp; <u>Aussagen 1 und 3</u>:  
*Bei dieser Belegung werden $k = 3$ Informationsbits auf $n = 3$ Codebits abgebildet &nbsp; ⇒ &nbsp; $R = k/n = 1$.  
+
*Bei dieser Belegung werden&nbsp; $k = 3$&nbsp; Informationsbits auf&nbsp; $n = 3$&nbsp; Codebits abgebildet &nbsp; ⇒ &nbsp; $R = k/n = 1$.  
*Die Aussage $\underline{x} =  \underline{u} $  würde nur bei systematischer Codierung gelten.  
+
*Die Aussage&nbsp; $\underline{x} =  \underline{u} $&nbsp; würde nur bei systematischer Codierung gelten.  
 
*Prinzipiell möglich wäre zum Beispiel auch $(0, 0, 0)$ &nbsp;  → &nbsp;  $(0, 1, 1)$.  
 
*Prinzipiell möglich wäre zum Beispiel auch $(0, 0, 0)$ &nbsp;  → &nbsp;  $(0, 1, 1)$.  
*Die letzte Aussage ist mit Sicherheit falsch: Aus der Grafik erkennt man die Minimaldistanz $d_{\rm min} = 1$.
+
*Die letzte Aussage ist mit Sicherheit falsch:&nbsp; Aus der Grafik erkennt man die Minimaldistanz&nbsp; $d_{\rm min} = 1$.
  
  
[[Datei:P_ID2401__KC_Z_1_2b.png|right|frame|Zwei (3, 2, 2)–Blockcodes]]
+
[[Datei:P_ID2401__KC_Z_1_2b.png|right|frame|Zwei&nbsp; $(3, 2, 2)$–Blockcodes]]
'''(2)'''&nbsp; Richtig sind die <u>Aussagen 1 und 3</u>:  
+
'''(2)'''&nbsp; Richtig sind die&nbsp; <u>Aussagen 1 und 3</u>:  
*$\mathcal{C}_{1}$ und $\mathcal{C}_{2}$ beschreiben tatsächlich Codes mit der Rate $R = 2/3$ und der Minimaldistanz $d_{\rm min} = 2$.     
+
*$\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 $\mathcal{C}_{1}$ und die blauen Punkte den Code $\mathcal{C}_{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 $\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)$.
+
*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; Richtig ist nur die <u>Aussage 1</u>:  
+
'''(3)'''&nbsp; Richtig ist nur die&nbsp; <u>Aussage 1</u>:  
*Mit der Minimaldistanz $d_{\rm min} = 2$ kann lediglich ein Bitfehler erkannt werden.  
+
*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 $\mathcal{C}_{1}$. Wird ein blauer Punkt empfangen, so weist dies auf einen Übertragungsfehler hin.  
+
*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 $d_{\rm min} = 2$ dagegen nicht möglich.  
+
*Eine Fehlerkorrektur ist mit&nbsp; $d_{\rm min} = 2$&nbsp; dagegen nicht möglich.  
*Der Code $\mathcal{C}_{1}$ entspricht dem [[Kanalcodierung/Beispiele_binärer_Blockcodes#Single_Parity.E2.80.93check_Codes|Single Parity–check Code (3, 2, 2)]].
+
*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)$]].
  
  
[[Datei:P_ID2402__KC_Z_1_2d.png|right|frame|(3, 1, 3)–Blockcode]]
+
[[Datei:P_ID2402__KC_Z_1_2d.png|right|frame|$(3, 1, 3)$–Blockcode]]
'''(4)'''&nbsp; Richtig sind die <u>Antworten 2, 3 und 4</u>:
+
'''(4)'''&nbsp; Richtig sind die&nbsp; <u>Antworten 2, 3 und 4</u>:
*$C_{4}$ beschreibt den [[Kanalcodierung/Beispiele_binärer_Blockcodes#Wiederholungscodes|(3, 1, 3)–Wiederholungscode]].  
+
*$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, 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$.
+
*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, dass wegen $d_{\rm min} = 3$ nun auch ein Bitfehler korrigiert werden kann.  
+
*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 (mit schwarzer Umrahmung) in den grünen Punkt $(0, 0, 0)$ überführt und alle hellblauen in den blauen Punkt $(1, 1, 1)$.  
+
*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 (einer natürlich auch).   
+
*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).