ZHW, NTM, 26/6, Rur Übung 4: Block-Codierung Aufgabe : Datenübertragung über BSC. Betrachten Sie die folgende binäre Datenübertragung über einen BSC. Encoder.97.3.3.97 Decoder Für den Fehlerschutz stehen ein linearer (3,2, t=2) Block-Code C sowie ein linearer (3,, t=5) Block-Code C 2 zur Verfügung. a) Bestimmen Sie die BER ohne FEC. Wieviele Bits pro Codewort sind im Durchschnitt fehlerhaft? b) Bestimmen Sie die Wahrscheinlichkeit P(m) für m=,,..., 5 Bitfehler pro Codewort. Approximieren Sie mit den gefundenen Werten die BER ohne FEC zwecks Verifikation. m 2 3 4 5 P(m) c) Bestimmen Sie die Rate R von Code. Wie gross ist die Wahrscheinlichkeit, dass Decoder ein einzelnes Codewort korrigieren und korrekt decodieren kann? Wie gross ist die Wahrscheinlichkeit, dass eine Meldung mit 5 Infobits (5 Codeworten) bzw. 8 Infobits (48 Codeworten) mit Code fehlerfrei übertragen werden kann? d) Bestimmen Sie die Rate R 2 von Code 2. Wie gross ist die Wahrscheinlichkeit, dass Decoder 2 ein einzelnes Codewort korrigieren und korrekt decodieren kann? Wie gross ist die Wahrscheinlichkeit, dass eine Meldung mit 99 Infobits bzw. Infobits mit Code 2 korrekt übertragen werden kann? e) Wieviel mal länger dauert die Übertragung mit Code 2 als mit Code? Betrachten Sie nun den linearen (5, 34, t=2) Code C 3, mit dem ein einzelnes Codewort mit Wahrscheinlichkeit.958 korrigiert und korrekt decodiert werden kann. f) Bestimmen Sie die Rate R 3 von Code 3. Kann man mit dieser Rate grundsätzlich zuverlässig über den gegebenen BSC übertragen?
ZHW, NTM, 26/6, Rur 2 g) Wie gross ist die Wahrscheinlichkeit, dass eine Meldung mit 2 Infobits mit Code 3 korrekt übertragen werden kann? h) Was schliessen Sie, wenn Sie Codes, 2 und 3 vergleichen? Aufgabe 2: Table-Lookup-Decoding. Betrachten Sie den Block-Code C = {[], [], [], [], [], [], [], [ ]} a) Bestimmen Sie N, K sowie die Code-Rate R. b) Ist der Block-Code C systematisch, linear, zyklisch? c) Wieviele Fehler kann man mit C detektieren bzw. korrigieren? d) Bestimmen Sie die Generator-Matrix G in systematischer Form. Hinweis: Die Zeilen von G sind auch Codewörter. e) Drücken Sie die Parity-Check-Bits in Funktion der Informationsbits u, u und u 2 aus. f) Bestimmen Sie die Parity-Check-Matrix H. Hinweis: Verfizieren Sie, dass x H T =. g) Erstellen Sie eine Dekodiertabelle zur Bestimmung des Fehlervektors e. Welche Fehlervektoren e möchten Sie korrigieren können bzw. können Sie effektiv korrigieren? Syndrom s Fehlervektor e h) Betrachten Sie die Übertragung des Codeworts x = [ ]. Welches Codewort x e dekodieren Sie, wenn Sie y =[ ] bzw. y 2 =[ ] empfangen? Aufgabe 3: BCH-Code. a) Zeichnen Sie eine Encoder-Schaltung für den (5,,) BCH-Code (Hamming-Code). b) Bestimmen Sie das zum Infowort u =[ ] gehörende Codewort x. c) Zeichnen Sie eine Syndrom-Schaltung für den (5,,) BCH-Code. d) Bestimmen Sie das Syndrom s, wenn Sie y = x empfangen.
ZHW, NTM, 26/6, Rur 3 Musterlösung Aufgabe a) BER=.3 bzw. 3% Im Durchschnitt ist 3.3 Bit pro Codewort fehlerhaft. b) Die Wahrscheinlichkeit für m Bitfehler pro Codewort (CW) ist gegeben durch 3 m 3 m m P(m-Fehler pro CW) = (.3).3 m 2 3 4 5 P().389.3729.73.57.2.9 BER.3729 /3+.73 2/3 +.57 3/3 +.2 4/3+.9 5/3 =.299 c) Coderate R = 2/3 2/3 P( CW korrekt) =.389+.3729+.73 =.9349 P(Meldung mit 5 Infobits bzw. 5 CW korrekt) = (.9349) 5 =.742 P(Meldung mit 8 Infobits bzw. 48 CW korrekt) = (.9349) 48 =.395 Mit Code ist es praktisch unmöglich, längere Meldungen fehlerfrei zu übertragen, ohne fehlerhafte Codewörter nochmals anzufragen (ineffizient). d) Coderate R 2 = /3 /3 P( CW korrekt) =.389+.3729+.73+.57+.2+.9 =.9997 P(Meldung mit 99 Infobit bzw. 9 CW korrekt) = (.9997) 9 =.9973 P(Meldung mit Infobit bzw. 9 CW korrekt) = (.9997) 9 =.973 e) Mit Code 2 können die Meldungen viel zuverlässiger übertragen werden als mit Code (mehr redundante Bits). Dafür dauert die Übertragung doppelt so lange wie mit Code. f) ja, R 3 2/3 < C BSC (ε=.3) =.8 [bit / Kanalbenützung] g) P(Meldung mit 2 Infobits bzw. 3 CW korrekt) = (.958) 3 =.7432 h) Vergleich C und C 2 : Je mehr Redundanz, desto besser ist der Fehlerschutz, auf Kosten der Datenrate. Vergleich C und C 3 : Es ist grundsätzlich möglich, Daten mit Rate R 3 R 2/3 zuverlässig über den gegebenen BSC zu übertragen. Die Kapazität C BSC (ε=.3) =.8 [bit / Kanalbenützung]. Allerdings muss die Blocklänge dann schon sehr gross sein (komplexer Dekoder).
ZHW, NTM, 26/6, Rur 4 Aufgabe 2 a) N=6, K=3 und R=.5 b) Der Block-Code C ist systematisch und linear, aber nicht zyklisch. c) d min = w min = 3 => alle Muster mit oder 2 Fehler detektierbar (eigentlich sind nur 7 der 64 möglichen Fehlermuster nicht detektierbar). => alle Muster mit Fehler korrigierbar d) 3 x 6 Generator-Matrix G = e) Parity-Check-Bits: x = u XOR u 2, x = u XOR u 2, x 2 = u XOR u. f) 3 x 6 Parity-Check-Matrix H = Man kann verifizieren, dass x H T =, z.b. [] H T = [ ]. g) Weil wenig Fehler häufiger auftreten als viele Fehler, muss man die Fehlervektoren e mit kleinstem Gewicht korrigieren bzw. in die Dekodiertabelle unten eintragen. Weil der Code d min =3 hat, kann man sicher alle Fehlervektoren mit einem einzelnen Bit-Fehler bzw. w H (e)= korrigieren. Man kann aber auch ein einziges Fehlermuster e mit mehr als Fehler korrigieren, siehe s=[ ] unten, z.b. einen Doppelfehler, wobei leider nicht beide im Informationsteil des Codeworts liegen können. Syndrom s Fehlervektor e h) Empfang y : korrekte Entscheidung Schritt : s = y H T = [ ] H T = [ ] Schritt 2: aus Dekodiertabelle e = [ ] Schritt 3: x e = y +e = [ ] = x
ZHW, NTM, 26/6, Rur 5 Empfang y 2 : falsche Entscheidung Schritt : s = y 2 H T = [ ] H T = [ ] Schritt 2: aus Dekodiertabelle e = [ ] Schritt 3: x e = y 2 +e = [ ] x => Code hat d min =3. Es sind 2 Fehler aufgetreten. y = [ ] ist näher beim Codewort [ ] (Hamming-Distanz = ) als beim gesendeten Codewort [ ] (Hamming-Distanz = 2). Dekodierfehler! Aufgabe 3 a) Encoder-Schaltung für den (5,,) BCH-Code (Hamming-Code): g(d) = +D+D 4 Gate p p p 3 p 2 u=[u,..., u ] x=[p,...,p 3,u,..., u ] b) u =[ ] => x =[ ] x ist ein Codewort mit minimalem Hamming-Gewicht w min =3 c) Syndrom-Schaltung für den (5,,) BCH-Code: y=[y,..., y ] s s s 2 s 3 d) Bestimmen Sie das Syndrom s, wenn Sie y = x empfangen. => s = [ ] => s = [ ] => s = [ ] => s = [ ] => s = [ ] Das Syndrom s=, weil ein Codewort empfangen worden ist.