SNT Übung 1

Werbung
ZHW, NTM, 2006/06, Rur
1
Übung 14: Block-Codierung
Aufgabe 1: Datenübertragung über BSC.
Betrachten Sie die folgende binäre Datenübertragung über einen BSC.
0.97
0
0
0.03
Encoder
Decoder
0.03
1
1
0.97
Für den Fehlerschutz stehen ein linearer (31,21, t=2) Block-Code C1 sowie ein linearer
(31,11, t=5) Block-Code C2 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=0, 1, ..., 5 Bitfehler pro Codewort.
Approximieren Sie mit den gefundenen Werten die BER ohne FEC zwecks Verifikation.
m
P(m)
0
1
2
3
4
5
c) Bestimmen Sie die Rate R1 von Code 1.
Wie gross ist die Wahrscheinlichkeit, dass Decoder 1 ein einzelnes Codewort korrigieren
und korrekt decodieren kann?
Wie gross ist die Wahrscheinlichkeit, dass eine Meldung mit 105 Infobits (5 Codeworten)
bzw. 1008 Infobits (48 Codeworten) mit Code 1 fehlerfrei übertragen werden kann?
d) Bestimmen Sie die Rate R2 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.
1001 Infobits mit Code 2 korrekt übertragen werden kann?
e) Wieviel mal länger dauert die Übertragung mit Code 2 als mit Code 1?
Betrachten Sie nun den linearen (511, 340, t=20) Code C3, mit dem ein einzelnes Codewort
mit Wahrscheinlichkeit 0.9058 korrigiert und korrekt decodiert werden kann.
f)
Bestimmen Sie die Rate R3 von Code 3. Kann man mit dieser Rate grundsätzlich
zuverlässig über den gegebenen BSC übertragen?
ZHW, NTM, 2006/06, Rur
g) Wie gross ist die Wahrscheinlichkeit, dass eine Meldung mit 1020 Infobits mit Code 3
korrekt übertragen werden kann?
h) Was schliessen Sie, wenn Sie Codes 1, 2 und 3 vergleichen?
Aufgabe 2: Table-Lookup-Decoding.
Betrachten Sie den Block-Code
C = {[000000], [011100], [101010], [110001], [110110], [101101], [011011], [ 000111]}
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 u0, u1 und u2 aus.
f)
Bestimmen Sie die Parity-Check-Matrix H.
Hinweis: Verfizieren Sie, dass x·HT = 0.
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
000
001
010
011
100
101
110
111
Fehlervektor e
h) Betrachten Sie die Übertragung des Codeworts x = [0 1 1 1 0 0]. Welches Codewort xe
dekodieren Sie, wenn Sie y1=[0 1 1 1 1 0] bzw. y2=[0 1 1 1 1 1] empfangen?
Aufgabe 3: BCH-Code.
a) Zeichnen Sie eine Encoder-Schaltung für den (15,11,1) BCH-Code (Hamming-Code).
b) Bestimmen Sie das zum Infowort u1=[1 0 0 0 0 0 0 0 0 0 0] gehörende Codewort x1.
c) Zeichnen Sie eine Syndrom-Schaltung für den (15,11,1) BCH-Code.
d) Bestimmen Sie das Syndrom s, wenn Sie y = x1 empfangen.
2
ZHW, NTM, 2006/06, Rur
3
Musterlösung
Aufgabe 1
a) BER=0.03 bzw. 3%
Im Durchschnitt ist 31·0.03 ≈ 1 Bit pro Codewort fehlerhaft.
b) Die Wahrscheinlichkeit für m Bitfehler pro Codewort (CW) ist gegeben durch
 31
P(m-Fehler pro CW) =    (1  0.03)31 m  0.03m
m
m
0
1
2
3
4
5
P()
0.3890
0.3729
0.1730
0.0517
0.0112
0.0019
BER ≈ 0.3729·1/31+ 0.1730·2/31 + 0.0517·3/31 + 0.0112·4/31+ 0.0019·5/31 = 0.0299
c) Coderate R1 = 21/31 ≈ 2/3
P(1 CW korrekt) = 0.3890+0.3729+0.1730 = 0.9349
P(Meldung mit 105 Infobits bzw. 5 CW korrekt) = (0.9349)5 = 0.7142
P(Meldung mit 1008 Infobits bzw. 48 CW korrekt) = (0.9349)48 = 0.0395
Mit Code 1 ist es praktisch unmöglich, längere Meldungen fehlerfrei zu übertragen, ohne
fehlerhafte Codewörter nochmals anzufragen (ineffizient).
d) Coderate R2 = 11/31 ≈ 1/3
P(1 CW korrekt) = 0.3890+0.3729+0.1730+0.0517+0.0112+0.0019 = 0.9997
P(Meldung mit 99 Infobit bzw. 9 CW korrekt) = (0.9997)9 = 0.9973
P(Meldung mit 1001 Infobit bzw. 91 CW korrekt) = (0.9997)91 = 0.9731
e) Mit Code 2 können die Meldungen viel zuverlässiger übertragen werden als mit Code 1
(mehr redundante Bits). Dafür dauert die Übertragung doppelt so lange wie mit Code 1.
f)
ja, R3 ≈ 2/3 < CBSC(ε=0.03) = 0.8 [bit / Kanalbenützung]
g) P(Meldung mit 1020 Infobits bzw. 3 CW korrekt) = (0.9058)3 = 0.7432
h) Vergleich C1 und C2:
Je mehr Redundanz, desto besser ist der Fehlerschutz, auf Kosten der Datenrate.
Vergleich C1 und C3:
Es ist grundsätzlich möglich, Daten mit Rate R3 ≈ R1 ≈ 2/3 zuverlässig über den
gegebenen BSC zu übertragen. Die Kapazität CBSC(ε=0.03) = 0.8 [bit / Kanalbenützung].
Allerdings muss die Blocklänge dann schon sehr gross sein (komplexer Dekoder).
ZHW, NTM, 2006/06, Rur
4
Aufgabe 2
a) N=6, K=3 und R=0.5
b) Der Block-Code C ist systematisch und linear, aber nicht zyklisch.
c) dmin = wmin = 3
=> alle Muster mit 1 oder 2 Fehler detektierbar
(eigentlich sind nur 7 der 64 möglichen Fehlermuster nicht detektierbar).
=> alle Muster mit 1 Fehler korrigierbar
0 1 1 1 0 0 


d) 3 x 6 Generator-Matrix G  1 0 1 0 1 0


1 1 0 0 0 1
e) Parity-Check-Bits: x0 = u1 XOR u2 , x1 = u0 XOR u2 , x2 = u0 XOR u1.
1 0 0 0 1 1


f) 3 x 6 Parity-Check-Matrix H  0 1 0 1 0 1


0 0 1 1 1 0
Man kann verifizieren, dass x·HT = 0, z.B. [000111]·HT = [0 0 0].
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 dmin=3 hat, kann man sicher alle Fehlervektoren mit einem einzelnen Bit-Fehler
bzw. wH(e)=1 korrigieren. Man kann aber auch ein einziges Fehlermuster e mit mehr als
1 Fehler korrigieren, siehe s=[1 1 1] unten, z.B. einen Doppelfehler, wobei leider nicht
beide im Informationsteil des Codeworts liegen können.
Syndrom s
h)
Fehlervektor e
000
000000
001
001000
010
010000
011
000100
100
100000
101
000010
110
000001
111
100100
Empfang y1: korrekte Entscheidung
Schritt 1: s = y1·HT = [0 1 1 1 1 0]·HT = [1 0 1]
Schritt 2: aus Dekodiertabelle e = [0 0 0 0 1 0]
Schritt 3: xe = y1+e = [0 1 1 1 0 0] = x
ZHW, NTM, 2006/06, Rur
5
Empfang y2: falsche Entscheidung
Schritt 1: s = y2·HT = [0 1 1 1 1 1]·HT = [0 1 1]
Schritt 2: aus Dekodiertabelle e = [0 0 0 1 0 0]
Schritt 3: xe = y2+e = [0 1 1 0 1 1] ≠ x
=> Code hat dmin=3. Es sind 2 Fehler aufgetreten. y = [0 1 1 1 1 1] ist näher beim
Codewort [0 1 1 0 1 1] (Hamming-Distanz = 1) als beim gesendeten Codewort
[0 1 1 1 0 0] (Hamming-Distanz = 2). Dekodierfehler!
Aufgabe 3
a) Encoder-Schaltung für den (15,11,1) BCH-Code (Hamming-Code): g(D) = 1+D+D4
Gate
p0
p1
p3
p2
u=[u0,..., u10]
x=[p0,...,p3,u0,..., u10]
b) u1=[1 0 0 0 0 0 0 0 0 0 0] => x1=[1 1 0 0 1 0 0 0 0 0 0 0 0 0 0]
x1 ist ein Codewort mit minimalem Hamming-Gewicht wmin=3
c) Syndrom-Schaltung für den (15,11,1) BCH-Code:
y=[y0,..., y10]
s0
s1
s2
d) Bestimmen Sie das Syndrom s, wenn Sie y = x1 empfangen.
10000000000
010000000000
0010000000000
10010000000000
110010000000000
=>
=>
=>
=>
=>
s = [1 0 0 0]
s = [0 1 0 0]
s = [0 0 1 0]
s = [1 0 0 1]
s = [0 0 0 0]
Das Syndrom s=0, weil ein Codewort empfangen worden ist.
s3
Herunterladen