Upload
lamdien
View
216
Download
0
Embed Size (px)
Citation preview
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
Fehlerkorrektur in der Datenubertragung
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
Fehlerkorrektur in der Datenubertragung
oder
Was machen Irving Reed und Gustave
Solomon auf dem Ochsenkopf?
Alfred Wassermann
Universitat Bayreuth
28. November 2008
Der Wunsch
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
� Wir leben in einer Informationsgesellschaft
� Fehlerfreie Nachrichtenubertragung ist von grosser
Bedeutung
� Kann dies verwirklicht werden?
Beispiele fur Nachrichten
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
� Internet-Downloads: Die Ubertragung von Information
erfolgt mit dem TCP/IP-Protokoll. Werden Datenpakete
fehlerhaft ubertragen, werden sie erneut vom
Empfanger-Computer angefordert
� Supermarkt-Kasse: Die Nachricht ist im EAN-Code
gespeichert.
Kann der Strichcode nicht vom Laser-Scanner gelesen
werden, ertont kein Signal → erneut durchziehen
Beispiele fur Nachrichten
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
� Telefongesprache enthalten Rauschen: Dies sollte so gering
sein, dass wir den Gesprachspartner noch verstehen.
Bei Nichtverstehen → Nachfragen
� Fernsehen: Antennen-/Satellitenempfang ist manchmal
verrauscht, erneute Anforderung nicht moglich
� Weltraumsonden – Reisen zum Mars:
Mariner 4 (1965) Mars Exploration Rover (2004)
Erneute Anforderung nicht moglich
Beispiele fur Nachrichten
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
� Bildvergleich:
1965:
2004:
Beispiele fur Nachrichten
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
� Speicherung von Daten auf Festplatte, CDROM:
� Schreiben ↔ Nachricht senden
Aufbewahrung ↔ Nachricht ubertragen
Lesen ↔ Nachricht empfangen
� Erneute Anforderung nicht moglich (→ Neukauf)
Abstrakte Nachrichtenubertragung
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
Unser Kommunikationsmodell:
� Sender verschickt Nachricht
� uber einen Kanal
� an den Empfanger
Annahme:
� Der Kanal ist ublicherweise gestort:
� Eine Nachricht wird verfalscht oder
� Teile einer Nachricht gehen verloren
Unsere Einschrankung:
� Eine Nachricht besteht aus Bits
Abstrakte Nachrichtenubertragung
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
FALSCH
Abstrakte Nachrichtenubertragung
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
RICHTIG
Abstrakte Nachrichtenubertragung – Kanale
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
Bitfehlerwahrscheinlichkeit f :
Rauschen:
1
0
1
0
1− f
f
f
1− f
Ausloschung:
1
0
1
0
?
1− f
f
f
1− f
Realisierung
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
Um mit Fehlern in der Nachrichtenubertragung umgehen zu
konnen, haben wir folgende Moglichkeiten:
� Bessere Hardware, starkere Signale: Teuer
Realisierung
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
Um mit Fehlern in der Nachrichtenubertragung umgehen zu
konnen, haben wir folgende Moglichkeiten:
� Bessere Hardware, starkere Signale: Teuer
� Bessere Software:
� Fehlererkennung – falls erneute Ubertragung moglich
� Fehlerkorrektur
Realisierung
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
Um mit Fehlern in der Nachrichtenubertragung umgehen zu
konnen, haben wir folgende Moglichkeiten:
� Bessere Hardware, starkere Signale: Teuer
� Bessere Software:
� Fehlererkennung – falls erneute Ubertragung moglich
� Fehlerkorrektur
Fehlererkennung:
� Prufzeichen: EAN, Geldschein, Kreditkarte, . . .
� CRC32: TCP/IP
� Ubersicht: http://www.pruefziffernberechnung.de
Fehlerkorrektur
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
Restliches Programm:
� Ein erster Versuch
� Hamming-Codes
� Reed-Solomon-Codes
Wiederholungs-Code
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
1. Versuch
� Wir versenden einfach jedes Bit dreimal:
� Nachricht: 0 1
� Code: 000 111
� Storung: 010 001
� Decodierte Nachricht: 0 0
Wiederholungs-Code
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
1. Versuch
� Wir versenden einfach jedes Bit dreimal:
� Nachricht: 0 1
� Code: 000 111
� Storung: 010 001
� Decodierte Nachricht: 0 0
� Wir konnen einen Fehler korrigieren
� Verbesserungsmoglichkeiten: Sende jedes Bit funfmal,
siebenmal,. . .
Wiederholungs-Code: Analyse
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
Erhalten: Gesendet:
000 111
000 ok Fehler
001 ok Fehler
010 ok Fehler
011 Fehler ok
100 ok Fehler
101 Fehler ok
110 Fehler ok
111 Fehler ok
� f : Wahrscheinlichkeit, dass ein Bit bei der Ubertragung
verandert wird
Wiederholungs-Code: Analyse
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
Erhalten: Gesendet:
000 111
000 ok Fehler
001 ok Fehler
010 ok Fehler
011 Fehler ok
100 ok Fehler
101 Fehler ok
110 Fehler ok
111 Fehler ok
� f : Wahrscheinlichkeit, dass ein Bit bei der Ubertragung
verandert wird
� Bitfehlerwahrscheinlichkeit:
1 · f 3 · (1− f )0 +3
7f 2(1− f )1
Wiederholungs-Code: Analyse
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
� f : Wahrscheinlichkeit, dass ein Bit bei der Ubertragung
verandert wird
� Bitfehlerwahrscheinlichkeit:
1 · f 3 · (1− f )0 +3
7f 2(1− f )1
� Zum Beispiel: f = 0.1
� Bitfehlerwahrscheinlichkeit: ≈ 0.028
� ca. 100 000 Pixel → ca. 2 800 Fehler
� Durch dreifachen Aufwand konnten wir die Fehlerrate um den
Faktor0.1
0.028≈ 3.514
senken
Wiederholungs-Code: Analyse
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
� Bitfehlerwahrscheinlichkeit fur den 61-fachen
Wiederholungs-Code:
≈ 10−15
� Frage: Folgt aus Fehler → 0 automatisch
Nachrichtenlange
Codelange→ 0 ?
� Antwort: NEIN !
Hamming-Codes
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
Richard Hamming – 1950
Idee: Codiere statt einzelner Bits Blocke von Bits, z.B. 0110.
Hamming-Codes
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
1 2
3
4
5
67
Hamming-Codes
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
1 2
3
4
5
67
Wir konnen einen Fehler korrigieren:
Die Bit-Summe ist in einem, zwei oder drei Kreisen ungerade.
Hamming-Codes
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
� Codierung der Nachricht (m1,m2,m3,m4):
c1c2c3c4c5c6c7
=
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
1 1 0 1
0 1 1 1
1 0 1 1
·
m1m2m3m4
� Rechne modulo 2.
� Das Codewort ist (c1, c2, c3, c4, c5, c6, c7).
Reed-Solomon-Codes
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
Irving Reed (links), Gustave Solomon (rechts) – 1960
� Nachrichtenblocke der Lange k werden zu einem Codewort
der Lange n verwandelt.
� Ublich: n = 2m − 1.
� Damit konnen bis zu
� n − k Ausloschungen
� ⌊(n − k)/2⌋ Fehler
korrigiert werden.
Reed-Solomon-Codes – Idee
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
� Wahle n Zahlen u1, u2, . . . , un und berechne einmalig fur all
diese Zahlen:
uk−11 uk−21 · · · u21 u1uk−12 uk−22 · · · u22 u2
...
uk−1n uk−2n · · · u2n un
Reed-Solomon-Codes – Idee
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
� Wahle n Zahlen u1, u2, . . . , un und berechne einmalig fur all
diese Zahlen:
uk−11 uk−21 · · · u21 u1uk−12 uk−22 · · · u22 u2
...
uk−1n uk−2n · · · u2n un
� Nimm’ die Nachricht (m0,m1, . . . ,mk−1) und verwende sie
als Koeffizienten eines Polynoms:
p(x) = mk−1xk−1 +mk−2x
k−2 + . . .+m2x2 +m1x +m0
Reed-Solomon-Codes – Idee
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
� Wahle n Zahlen u1, u2, . . . , un und berechne einmalig fur all
diese Zahlen:
uk−11 uk−21 · · · u21 u1uk−12 uk−22 · · · u22 u2
...
uk−1n uk−2n · · · u2n un
� Nimm’ die Nachricht (m0,m1, . . . ,mk−1) und verwende sie
als Koeffizienten eines Polynoms:
p(x) = mk−1xk−1 +mk−2x
k−2 + . . .+m2x2 +m1x +m0
� Setze die n Zahlen u1, u2, . . . , un in das Polynom ein.
Reed-Solomon-Codes – Idee
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
� Setze die n Zahlen u1, u2, . . . , un in das Polynom ein.
c1 = mk−1uk−11 +mk−2u
k−21 + · · · +m2u
21 +m1u1 +m0
c2 = mk−1uk−12 +mk−2u
k−22 + · · · +m2u
22 +m1u2 +m0
...
cn = mk−1uk−1n +mk−2u
k−2n + · · · +m2u
2n +m1un +m0
Reed-Solomon-Codes – Idee
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
� Setze die n Zahlen u1, u2, . . . , un in das Polynom ein.
c1 = mk−1uk−11 +mk−2u
k−21 + · · · +m2u
21 +m1u1 +m0
c2 = mk−1uk−12 +mk−2u
k−22 + · · · +m2u
22 +m1u2 +m0
...
cn = mk−1uk−1n +mk−2u
k−2n + · · · +m2u
2n +m1un +m0
� Als Matrix-Vektorprodukt geschrieben:
c1c2...
cn
=
uk−11 uk−21 · · · u21 u11 1
uk−12 uk−22 · · · u22 u12 1
...
uk−1n uk−2n · · · u2n u1n 1
·
mk−1...
m1m0
Reed-Solomon-Codes – Decodierung
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
Reed-Solomon-Codes – Decodierung
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
� Interpolationsverfahren von Joseph Louis de Lagrange,
eigentlich Giuseppe Ludovico Lagrangia, (1736-1813)
Reed-Solomon-Codes – Decodierung
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
� Interpolationsverfahren von Joseph Louis de Lagrange,
eigentlich Giuseppe Ludovico Lagrangia, (1736-1813)
� Zu k paarweise verschiedenen Punkten
(u0, c0), (u1, c1), . . . , (uk−1, ck−1)
gibt es genau ein Interpolationspolynom (k − 1)-ten Grades:
c0 ·(x − u1)(x − u2) · · · (x − uk−1)
(u0 − u1)(u0 − u2) · · · (u0 − uk−1)
Reed-Solomon-Codes – Decodierung
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
� Zu k paarweise verschiedenen Punkten
(u0, c0), (u1, c1), . . . , (uk−1, ck−1)
gibt es genau ein Interpolationspolynom (k − 1)-ten Grades:
c0 ·∏
i 6=0
x − uiu0 − ui
Reed-Solomon-Codes – Decodierung
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
� Zu k paarweise verschiedenen Punkten
(u0, c0), (u1, c1), . . . , (uk−1, ck−1)
gibt es genau ein Interpolationspolynom (k − 1)-ten Grades:
c0 ·∏
i 6=0
x − uiu0 − ui
+ c1 ·∏
i 6=1
x − uiu1 − ui
+ . . .+ ck−1 ·∏
i 6=k−1
x − uiuk−1 − ui
Reed-Solomon-Codes
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
Folgerung:
� Wenn uns n − k Ausloschungen vorliegen, bleiben noch
n − (n − k) = k richtige Stellen ubrig
� Es gibt ein eindeutiges Interpolationspolynom (k − 1)-ten
Grades
� Berechne dieses Polynom
� Die Koeffizenten sind unsere Nachricht (m0,m1, . . . ,mk−1)
� → Korrektur der Ausloschungen gelungen!
Reed-Solomon-Codes
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
� Man schatzt, dass in 75% aller Produkte, die Fehlerkorrektur
einsetzen, Reed-Solomon-Codes verwendet werden.
� Beispiele:
� Mars Rover
� CDROM
� DSL
� QR-Codes:
Reed-Solomon-Codes auf dem Ochsenkopf
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
� DVB-T: Digitales Fernsehen mit Antennen-Empfang
Ausblick
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
Aktuelle Forschung: Anwender wunschen sich Codes mit
� riesigen Blockgroßen: > 10 000 Bits
� wenig Redundanz: nkklein
� hervorragenden Korrekturfahigkeiten
� geringem Rechenaufwand bei der Decodierung
Der Wunsch
Realisierung
Fehlerkorrektur
Hamming-Codes
Reed-Solomon-
Codes
Realschullehrerwochenende 2008 Fehlerkorrektur in der Datenubertragung
Herzlichen Dank fur Ihre Aufmerksamkeit!