FehlerkorrekturinderDatenu¨bertragung - Universität …werner/geonext/error... · Alfred...

Preview:

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!

Recommended