Alexander.Bernauer@ulm.ccc.de Stephanie.Wist@ulm.ccc.de 18. November 2005
Motivation schnelle Übertragung von Daten über gestörten Kanal Shannon48
Was ist Information? Information ist Abnahme von Unsicherheit ohne Zufall keine Unsicherheit Unsicherheit vorher ist Information nacher
Übersicht Wahrscheinlichkeitsrechnung Informationsmaß Quellen Quellcodiertheorem Huffman Code Kodierer Kanäle Kanalcodiertheorem Codebeispiel
Stichprobenraum Wahrscheinlichkeitsrechnung Informationsmaß Ω = {ω 1, ω 2,..., ω n } ω 1, ω 2,..., ω n : Elementarereignisse E Ω : Ereignis : unmögliches Ereignis Ω : sicheres Ereignis
Zufallsvariable Wahrscheinlichkeitsrechnung Informationsmaß X : Ω {x 1, x 2,..., x L }
Wahrscheinlichkeitsfunktion Wahrscheinlichkeitsrechnung Informationsmaß f X : {x 1, x 2,..., x L } R f X (x i ) = P(X = x i ), i = 1, 2,..., L i : f X (x i ) 0 L i=1 f X (x i ) = 1
Unabhängigkeit Wahrscheinlichkeitsrechnung Informationsmaß Ereignisse A und B stochastische unabhängig P(A B) = P(A) P(B) Zufallsvariablen X und Y stochastisch unabhängig x i, y j : f XY (x i, y j ) = f X (x i ) f Y (y j )
bedingte Wahrscheinlichkeit Wahrscheinlichkeitsrechnung Informationsmaß f X Y (x i y j ) := f XY (x i, y j ) f Y (y j ) f Y (y j ) > 0
Erwartungswert Wahrscheinlichkeitsrechnung Informationsmaß E [F (X )] := F (X ) := L F (x i )f (x i ) i=1 F : Funktion einer Zufallsvariablen f : Wahrscheinlichkeitsfunktion der Zufallsvariablen
Erwartungen an ein Informationsmaß Wahrscheinlichkeitsrechnung Informationsmaß maximale Unsicherheit bei Gleichverteilung Addition von Informationen Stetigkeit auf den Wahrscheinlichkeiten
Entropie Wahrscheinlichkeitsrechnung Informationsmaß H(X ) = K x X f X (x)logf X (x) K > 0 lim fx (x) 0 f X (x)logf X (x) := 0
Information - Einheiten Wahrscheinlichkeitsrechnung Informationsmaß Austausch der Basis: log b1 x = log b 2 x log b2 b 1 b = 2 b = e b = 10 binary digits (bits) natural digits (nats) decimal digits
Entropie - Schranken Wahrscheinlichkeitsrechnung Informationsmaß X : Ω {x 1, x 2,..., x L } 0 H(X ) logl Gleichheit nach links i : f X (x i ) = 1 Gleichheit nach rechts X gleichverteilt
binäre Entropie Wahrscheinlichkeitsrechnung Informationsmaß wikipedia h(p) = (p log p + (p 1) log p 1)
bedingte Entropie Wahrscheinlichkeitsrechnung Informationsmaß H(X Y = y) = x x f X Y (x y)logf X Y (x y) H(X Y ) = y Y f Y (y)h(x Y = y) H(X ) = x X f X (x)logf X (x)
bedingte Entropie - Eigenschaften Wahrscheinlichkeitsrechnung Informationsmaß 0 H(X Y ) logl Verminderung der Entropie H(X Y ) H(X )
Addition von Informationen Wahrscheinlichkeitsrechnung Informationsmaß H(X 1 X 2... X N ) = H(X 1 ) + H(X 2 X 1 ) +... + H(X N X 1 X 2... X N 1 )
Entscheidungsbäume Wahrscheinlichkeitsrechnung Informationsmaß Die Entropie ist die mittlere Tiefe eines Entscheidungsbaumes Beispiel: ich denke mir eine Zahl...
wechselseitige Information Wahrscheinlichkeitsrechnung Informationsmaß Die Information, die ich über A erhalte, indem ich B beobachte A, B Ereignisse eines oder zweier Zufallsexperimente P(A) 0; P(B) 0 I (A; B) := log P(A B) P(A)
Eigeninformation Wahrscheinlichkeitsrechnung Informationsmaß I (A) := I (A; A) = log P(A A) P(A) = logp(a) P(A A) = 1
Entropie Wahrscheinlichkeitsrechnung Informationsmaß Der Erwartungswert der Eigeninformation der Ereignisse einer Zufallsvariablen H(X ) := E [I (X = x)] = E [ logf X (x)] = x X f X (x)logf X (x)
Transinformation Wahrscheinlichkeitsrechnung Informationsmaß Die Information, die ich über X erhalte, in dem ich Y beobachte I (X ; Y ) := E [I (X = x; Y = y)] I (X ; Y ) := H(X ) H(X Y ) H(X Y ): Äquivokation
Satz der Datenverarbeitung Wahrscheinlichkeitsrechnung Informationsmaß I (X ; Z) { I (X ; Y ) I (Y ; Z) Information kann nicht durch Datenverarbeitung erhöht werden.
Fragen Quellen Quellcodiertheorem Huffman Code Wie gut kann man komprimieren? Was kann man alles komprimieren? Wie sehen Kompressionsalgorithmen aus?
Quelle Quellen Quellcodiertheorem Huffman Code Eine Quelle erzeugt einen Strom von Symbolen Strom entspricht den Ausgaben eines Markoff Prozesses
Markoff-Prozesse Quellen Quellcodiertheorem Huffman Code hier: Beschränkung auf diskrete, gedächtnisfreie Quellen
Redundanz Quellen Quellcodiertheorem Huffman Code Quelle Q mit L Quellsymbolen R := 1 H(Q) logl
Quellen Quellcodiertheorem Huffman Code
Quellcodiertheorem Quellen Quellcodiertheorem Huffman Code Um eine Quelle Q mit Wahrscheinlichkeit 1 perfekt rekonstruieren zu können, sind H(Q) bit pro Quellensymbol notwendig und hinreichend
Konsequenzen Quellen Quellcodiertheorem Huffman Code ist Entfernung von Redundanz Mehrfachkomprimierung bringt nichts gleichverteilten Zufall kann man schlecht komprimieren
Beispiel Quellen Quellcodiertheorem Huffman Code p(a) = 1 2 p(b) = 1 4 p(c) = 1 4 H(Q) = 1.5, log 2 3 = 1.58, R = 5.3% a 0 b 10 c 11 p(0) = 1 2 p(1) = 1 2 H(Q ) = 1, log 2 2 = 1, R = 0%
Fragen Kodierer Kanäle Kanalcodiertheorem Kann man fehlerfrei übertragen? Wie schnell kann man übertragen? Wie wirken sich Störungen auf dem Kanal aus?
Kodierer Kodierer Kanäle Kanalcodiertheorem
Rate Kodierer Kanäle Kanalcodiertheorem R := k n Für den Kanal erscheint der Kodierer wie eine Quelle mit Entropie R
Kanal Kodierer Kanäle Kanalcodiertheorem hier: Beschränkung auf diskrete, gedächtnisfreie Kanäle
Bergersches Diagramm Kodierer Kanäle Kanalcodiertheorem
Kapazität Kodierer Kanäle Kanalcodiertheorem I (X ; Y ) = H(X ) H(X Y ) C := max f X I (X ; Y )
Kanalcodiertheorem - Teil 1 Kodierer Kanäle Kanalcodiertheorem Kanal mit Kapazität C, Quelle mit Entropie H. Wenn H < C, so existiert ein Code mit beliebig kleiner Fehlerwahrscheinlichkeit
Kanalcodiertheorem - Teil 2 Kodierer Kanäle Kanalcodiertheorem Kanal mit Kapazität C, Quelle mit Entropie H. Wenn H > C, so existiert kein Code mit einer Äquivokation unter H C
Beispiel - Kapazität Kodierer Kanäle Kanalcodiertheorem Ein Kanal mit additiver, weißer, Gauss verteilter Störung hat die Kapazität C = W log 2 P+N N W : Bandbreite P: Sendeleistung N: Rauschleistung
Bester Code? Codebeispiel Fehlerrate: 10 8 2 24 = 1MB (Ethernet) Fehlerrate: 10 4 2 12 = 1kB (Mobilfunk) unterschiedliche Codes für verschiedene Einsatzzwecke geeignet.
Beschreibung eins Codes C Codebeispiel Code C = (n, k, d) n: Codewortlänge k: Anzahl der codierten Bits d: Hammingabstand der Codewörter
Hammingabstand Codebeispiel Hammingabstand d ist minimale Distanz zweier Codewörter Fehlererkennung für maximal d 1 Fehler Fehlerbehebung für maximal d 1 2 Fehler
Codebeispiel Beispiel - ParityCheck-Code Code C = (3, 2, 2) Codewörter {000, 011, 101, 110} Rate R = k n = 2 3 Hammingabstand d = 2 d 1 = 1 Fehler können erkannt werden d 1 2 = 0 Fehler können behoben werden empfangenes Codewort 111 wird als verfälscht erkannt
Codebeispiel Beispiel - Wiederholungscodes Code C = (5, 1, 5) Codewörter {00000, 11111} Rate R = k n = 1 5 Hammingabstand d = 5 d 1 = 4 Fehler können erkannt werden d 1 2 = 2 Fehler können behoben werden empfangenes Codewort 00101 wird zu 00000
Reed-Solomon-Codes Codebeispiel entdeckt 1960 von Irving S. Reed und Gustave Solomon es gilt: C = (n(= p 1), k, d = n k + 1) MDS-Code Korrektur aus beliebigen k Stellen des Codeworts Anwendungen: Fehlerkorrektur von Audio-CDs, Mobilfunk, DVB, Kommunikation mit Raumsonden
Beispiel CD Codebeispiel Reed-Solomon-Kodierung mit Interleaver (CIRC) bis zu 3.500 Bit lange Fehler korrigierbar entspricht Kratzer von etwa 2, 4mm Spurlänge bei Audio-Cds können sogar 12.000 Bit (etwa 8.5mm) kompensiert werden
Restklassenringe Codebeispiel p: Primzahl Z p ist ein Körper Rechenvorschrift: a+b mod p, a*b mod p Es gibt p verschiedene Elemente (0,.., p 1) 0 <= a + b, a b < p a 0 = a p 1 = 1
Eigenschaften Körper Codebeispiel Assoziativität Neutrales Element Inverses Element Kommutativität Distributivgesetz
Beispiel: Restklassenring p=7 Codebeispiel + 0 1 2 3 4 5 6 0 0 1 2 3 4 5 6 1 1 2 3 4 5 6 0 2 2 3 4 5 6 0 1 3 3 4 5 6 0 1 2 4 4 5 6 0 1 2 3 5 5 6 0 1 2 3 4 6 6 0 1 2 3 4 5 0 1 2 3 4 5 6 0 0 0 0 0 0 0 0 1 0 1 2 3 4 5 6 2 0 2 4 6 1 3 5 3 0 3 6 2 5 1 4 4 0 4 1 5 2 6 3 5 0 5 3 1 6 4 2 6 0 6 5 4 3 2 1
Primitives Element Codebeispiel α ist primitives Element {α 0 = α p 1, α 1, α 2,.., α p 2 } = {1, 2,.., p 1} Beispiel: p = 7, α = 5 {α 0 = 1, α 1 = 5, α 2 = 5 2 = 4, α 3 = 5 3 = 6, α 4 = 5 4 = 2, α 5 = 5 5 = 3} Zu jedem Primkörper gibt es mindestens ein primitives Element
Polynomdarstellung Codebeispiel (A 0, A 1,.., A k 1 ) = A(x) = A 0 + A 1 x + A 2 x 2 +.. + A k 1 x k 1 grad(a(x)) < k (a 0, a 1,.., a n 1 ) = a(x) = a 0 + a 1 x + a 2 x 2 +.. + a n 1 x n 1 grad(a(x)) < n
Kodierung Codebeispiel Kodierung: A 0,.., A k 1 : Information a 0,.., a n 1 : Codewort Es gilt: a i = A(α i )bzw.a j = n 1 a(α j )
Beispiel für p = 7, α = 5 Codebeispiel Es sei: n = p 1 = 6, k = 2, d = n k + 1 = 5 {α 0 = 1, α 1 = 5, α 2 = 4, α 3 = 6, α 4 = 2, α 5 = 3} Information: (23) A 0 = 2, A 1 = 3 A(x) = 2 + 3x Berechnung von a 0,.., a 5 : a 0 = A(α 0 = 1) = 2 + 3 = 5 a 1 = A(α 1 = 5) = 2 + 3 5 = 2 + 1 = 3 a 2 = A(α 2 = 4) = 2 + 3 4 = 2 + 5 = 0 a 3 = A(α 3 = 6) = 2 + 3 6 = 2 + 4 = 6 a 4 = A(α 4 = 2) = 2 + 2 3 = 2 + 6 = 1 a 5 = A(α 5 = 3) = 2 + 3 3 = 2 + 2 = 4 Das erzeugte Codewort ist: (530614)
Dekodierung Codebeispiel Empfangen: r(x) = a(x) + f (x) wobei f(x) der Fehler sein soll (f(x) = 0 kein Fehler) Dekodierung erfolgt über R j = n 1 r(α j ) Ist gradr(x) < k, dh. R k = R k+1 =.. = R n 1 = 0, so ist r(x) ein gültiges Codewort, R(x) = A(x) die Informationi Wenn nicht, ist min. 1 Fehler aufgetreten. (Fehlererkennung) Fehlerbehebung zb. über Fehlerstellenpolynom C.
Fehlerstellenpolynom Codebeispiel Gesucht: Polynom C(x) mit möglichst geringem Grad, für das gilt: C(x) = f j!=0 (αj x) grad(c(x)) = #Fehlerstellen
Naive Berechnung Codebeispiel Sei e d 1 2 die Anzahl der Fehler C(x) = 1 + C 1 x + C 2 x 2 +.. + C e x e Sei S 0 = R k,.., S e = R n 1 dann kann C(x) über Schlüsselgleichungen 0 = e 1 C i S j i mit j = 2e 1,.., e berechnet werden i=0 Die Nullstellen von C(x) sind die Stellen der inkorrekten Symbole
Beispiel Codebeispiel Gesendet: a(x) = (530614) Empfangen: r(x) = (530600)
Beispiel Codebeispiel Gesendet: a(x) = (530614) Empfangen: r(x) = (530600) (korrekte) Annahme: 2 Fehler
Beispiel Codebeispiel Gesendet: a(x) = (530614) Empfangen: r(x) = (530600) (korrekte) Annahme: 2 Fehler C(x) = 1 + C 1 x + C 2 x 2
Berechnung von R Codebeispiel n = 6, n 1 = 6, {α 0 = 1, α 1 = 5, α 2 = 4, α 3 = 6, α 4 = 2, α 5 = 3} r(x) = 5 + 3x + 6x 3 R j = n 1 r(α j ) R 0 = r(1) = 6(5 + 3 + 6) = 6 0 = 0 R 1 = r(3) = 6(5 + 2 + 1) = 6 1 = 6 R 2 = r(2) = 6(5 + 6 + 6) = 6 3 = 4 R 3 = r(6) = 6(5 + 4 + 1) = 6 3 = 4 R 4 = r(4) = 6(5 + 5 + 6) = 6 2 = 5 R 5 = r(5) = 6(5 + 1 + 1) = 6 0 = 0 R 2, R 3, R 4! = 0 kein gültiges Codewort!
Codebeispiel Berechnung von C S 0 = R 2 = 4 S 1 = R 3 = 4 S 2 = R 4 = 5 S 3 = R 5 = 0 Zu lösende Gleichungen: 0 = C 0 S 3 + C 1 S 2 + C 2 S 1 = 0 + 5C 1 + 4C 2 0 = C 0 S 2 + C 1 S 1 + C 2 S 0 = 5 + 4C 1 + 4C 2 C 1 = 5, C 2 = 6 C(x) = 1 + 5x + 6x 2 C(x) = 0 x = 2, x = 3 α 4 = 2, α 5 = 3 Fehler an Stellen 4 und 5
Specials Codebeispiel Faltungscodes (Zustandsmaschine, Trellis-Codierung) Kanalcodes, die je nach Bedarf zusätzliche Informationen schicken geschachtelte Kanalcodes (innerer Code, äusserer Code)
verwendete Software Codebeispiel vim L A TEX(Beamer Klassen) xfig ImageMagick Gimp Gimp