Exercise 1.13: Binary Erasure Channel Decoding
Wir gehen hier von dem Modell auf der letzten Theorieseite im Kapitel 1.5 aus (grün hinterlegte BEC–Konfiguration):
- Jedes Informationswort u_ wird blockweise codiert und liefert das Codewort x_. Der Blockcode sei linear und durch seine Prüfmatrix H vollständig gegeben.
- Bei der Übertragung werden nE Bit des Codewortes ausgelöscht ⇒ Binary Erasure Channel (BEC). Aus dem Codewort x_ wird somit das Empfangswort y_.
- Ist die Anzahl nE der Auslöschungen kleiner als die minimale Distanz dmin des Codes, so gelingt es, aus y_ das Codewort z_=x_ ohne Fehler zu rekonstruieren, und man erhält so auch das richtige Informationswort υ_=u_.
- Zur Aufgabenbeschreibung betrachten wir beispielhaft das Hamming–Codewort x_=(0,1,0,1,1,0,0) und das Empfangswort y_=(0,1,E,E,1,0,0).
Ausgelöscht wurden somit durch den Kanal das dritte und vierte Bit. Der Codewortfinder hat somit die Aufgabe, den Vektor zE=(z3,z4) mit z3, z4∈{0,1} zu bestimmen. Dies geschieht entsprechend der Gleichung
- HE⋅z_TE=HK⋅z_TK,
wobei im vorliegenden Beispiel gilt:
- z_K=(0,1,1,0,0),HK=(111000101011001),HE=(101101).
Diese Gleichung liefert zwei Bestimmungsgleichungen für die zu bestimmenden Bits, deren Lösung zum Ergebnis z3=0 und z4=1 führt.
Hinweis:
- Die Aufgabe gehört zu Kapitel Decodierung linearer Blockcodes.
- Der Algorithmus zur Zuordnung des Empfangswortes y_ zum richtigen Codewort z_=x_ ist im Theorieteil ausführlich beschrieben.
- Wir möchten nochmals daran erinnern, dass wir bei der BEC–Decodierung den ersten Decoderblock y_→z_ als Codewortfinder bezeichnen, da hier Fehlentscheidungen ausgeschlossen sind. Jedes Empfangswort wird richtig decodiert, oder es kann gar nicht decodiert werden. Beim BSC–Modell lassen sich dagegen Decodierfehler nicht vermeiden. Dementsprechend heißt der entsprechende Block dort Codewortschätzer.
Fragebogen
Musterlösung
- H=(111010001110101101001)
des Hammingcodes erhält man für Vektor und Matrix hinsichtlich
- aller korrekt übertragenen Codesymbole (Index K), die dem Codewortfinder bekannt sind:
- z_K=(1,0,1,0,0),HK=(110100110110100),
- hinsichtlich der beiden ausgelöschten Codesymbole z2 und z7 (Index E), die zu ermitteln sind:
- z_E=(z2,z7),HE=(101011).
Die Bestimmungsgleichung lautet somit:
- HE⋅z_TE=HK⋅z_TK
- ⇒(101011)⋅(z2z7)=(110100110110100)⋅(10100)=(110).
Daraus ergeben sich drei Gleichungen für die beiden Unbekannten z2 und z7:
- (a) z2=1,
- (b) z2=1,
- (c) z2+z7=0 ⇒ z7=1.
Somit liefert der Codewortfinder z_=(1,1,0,1,0,0,1) ⇒ Lösungsvorschlag 2.
(2) Betrachtet man die vorgegebene Matrix HK, so erkennt man, dass diese mit den ersten vier Spalten der Prüfmatrix H übereinstimmt. Die Auslöschungen betreffen also die letzten 3 Bit des Empfangswortes ⇒ z_E=(z5,z6,z7)⇒y_=(1,1,0,1,E,E,E) und die Erasure–Matrix lautet:
- HE=(100010001).
Richtig sind demzufolge die Aussagen 1, 2 und 4.
(3) Man erhält nach einigen Matrizenmultiplikationen:
- HK⋅z_TK=(111001111101)⋅(1101)=(001),
- HE⋅z_TE=(100010001)⋅(z5z6z7)=(z5z6z7).
Durch Gleichsetzen folgt z5=0, z6=0, z7=1 ⇒ Lösungsvorschlag 2.
(4) Der Matrizenvergleich zeigt, dass die ersten drei Spalten von H und HK identisch sind. Die vierte Spalte von HK ist gleich der fünften Spalte der Prüfmatrix. Daraus folgt für den Vektor zE=(z4,z6,z7) und weiter für den Empfangsvektor y_=(1,1,0,E,0,E,E) ⇒ Lösungsvorschlag 1 und 3.
(5) Analog zur Teilaufgabe (3) erhält man nun:
- HK⋅z_TK=(111101101100)⋅(1100)=(010),
- HE⋅z_TE=(000110101)⋅(z4z6z7)=(0z4+z6z4+z7).
Setzt man nun die beiden Spaltenvektoren gleich, so erhält man nur mehr zwei Gleichungen für die drei Unbekannten ⇒ Lösungsvorschlag 4. Oder anders ausgedrückt: Ist die Anzahl der Auslöschungen des BEC–Kanals größer als der Rang der Matrix HE, so ergibt sich keine eindeutige Lösung des resultierenden Gleichungssystems.
(6) Zur Lösung dieser Aufgabe beziehen wir uns wieder auf den systematischen Hamming–Code (7,4,3) entsprechend der angegebenen Prüfgleichung und der nachfolgenden Codetabelle. Die Informationsbit sind schwarz dargestellt und die Prüfbit rot. Die minimale Distanz dieses Codes beträgt dmin=3.
Weiter nehmen wir an, dass stets das gelb hinterlegte Codewort x_=(1,1,0,1,0,0,1) gesendet wurde:
- Ist die Anzahl nE der Auslöschungen kleiner als dmin=3, so ist eine Decodierung nach der hier beschriebenen Methode immer möglich ⇒ siehe beispielsweise Teilaufgabe (1) mit nE=2.
- Auch für nE=dmin=3 ist manchmal eine Decodierung möglich, wie in Aufgabe (3) gezeigt. In der Codetabelle gibt es nur ein einziges Codewort, das zum Empfangsvektor y_=(1,1,0,1,E,E,E) passen könnte, nämlich das gelb hinterlegte Codewort x_=(1,1,0,1,0,0,1).
- Dagegen konnte y_=(1,1,0,E,0,E,E) entsprechend Teilaufgabe (4) nicht decodiert werden. In der Codetabelle erkennt man neben (1,1,0,1,0,0,1) mit (1,1,0,0,0,1,0) ein weiteres Codewort (grün hinterlegt), das durch die nE=3 gegebenen Auslöschungen zum Empfangswort y_ wird. Dieser Fall, wenn die nE=dmin Auslöschungen genau die dmin unterschiedlichen Bit zweier Codeworte betreffen, führt zu einer Matrix HE mit einem Rang kleiner als dmin.
- Ist HE>dmin, so ist die Anzahl n–nE der nicht ausgelöschten Bit kleiner als die Anzahl k der Informationsbit. In diesem Fall kann das Codewort natürlich nicht decodiert werden.
Das heißt: Zutreffend sind die Aussagen 1, 3 und 4.