Kapitel 1: Codierungstheorie. 1.2 Quellcodierung 1.3 Fehlererkennende Codes 1.4 Fehlerkorrigierende Codes

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Kapitel 1: Codierungstheorie. 1.2 Quellcodierung 1.3 Fehlererkennende Codes 1.4 Fehlerkorrigierende Codes"

Transkript

1 Inhalt: 1.1 Einführung 1.2 Quellcodierung 1.3 Fehlererkennende Codes 1.4 Fehlerkorrigierende Codes

2 1.1 Einführung In In der der Codierungstheorie unterscheidet man man Quellcodierung und und Kanalcodierung Die Die Quellcodierung hat hat zum zum Ziel, Ziel, Daten so so zu zu transformieren, dass dass sie sie gut gut übertragen werden können Die Die Kanalcodierung hat hat zum zum Ziel, Ziel, Daten so so zu zu transformieren, dass bei bei der der Übertragung auftretende Fehler erkannt und und evtl. evtl. sogar korrigiert werden können. Seite 2

3 Quellcodierung Bei Bei der der Quellcodierung sind sind zwei zwei Aspekte wichtig: (a) (a) Oft Oft treten Daten in in einer Form auf, auf, die die sich sich nicht zur zur Übermittlung eignet. Diese Quelldaten müssen codiert werden, damit sie sie überhaupt übertragen werden können. Beispiele: --Flaggencode --Digitalisierung von von Sprache, Bildern, Morse-Code: a =,, b =,,... --ASCII-Code: a = , b = , (b) (b) Die Die Daten sollen möglichst ökonomisch übertragen werden. Dazu sollen sie sie so so gut gut wie wie möglich komprimiert werden. Seite 3

4 Kanalcodierung Der Der Kanalcodierung liegt liegt folgende Situation zugrunde: Ein Ein Sender will will einem Empfänger gewisse Daten über über einen Kanal übermitteln. Dabei können zufällige Fehler vorkommen. Diese Fehler treten in in der der Regel aus aus physikalischen Gründen auf. auf. Beispiele: --Tippfehler bei bei Eingaben über über eine eine Tastatur --Kratzer auf auf einer CD CD --Atmospherische Störungen ( Rauschen ) bei bei einer Funkübertragung Seite 4

5 Kommunikationsmodell der Kanalcodierung Der Der Sender codiert einen Datensatz d zu zu einer Nachricht c (Codewort); diese wird wird über über den den Kanal geschickt. Der Der Empfänger versucht durch Decodieren zu zu erkennen, ob ob Fehler aufgetreten sind, sind, und und evtl. evtl. den den Datensatz wieder zu zu rekonstruieren. Sender Empfänger Datensatz d Codieren Nachricht c (Codewort) veränderte Nachricht x Decodieren Datensatz d' Seite 5

6 Fehlererkennung und -korrektur Bei Beifehlererkennenden Codes wird wird wenn ein ein Fehler passiert angezeigt, dass etwas nicht stimmt. Die Die Übertragung muss daraufhin wiederholt werden. Für Für viele viele Anwendungen ist ist das das ausreichend. Beispiele: Kontonummern, Buchnummern, Artikelnummern, Manchmal ist ist eine eine wiederholte Übertragung aber aber sehr sehr aufwendig oder oder überhaupt nicht nicht möglich. Dann benötigt man man fehlerkorrigierende Codes. Beispiele: CD-Player, Datenfernübertragung zwischen Computern (Internet), Übertragung von von Planetenfotos von von Satelliten zur zur Erde, Seite 6

7 1.2 Quellcodierung Sei Sei {s {s 1, 1, s 2, 2,..., s n } n } eine eine Quelle mit mit den den Quellzuständen s i, i, die die jeweils mit mit der der Häufigkeit oder oder Wahrscheinlichkeit p i auftreten. Beispiele: (a) (a) Im Im Deutschen treten die die Buchstaben des des Alphabets mit mit folgenden Wahrscheinlichkeiten auf: auf: e: e: 17,4 17,4 %, %, n: n: 9,78 9,78 %, %, i: i: 7,55 7,55 %, %, s: s: 7,27 7,27 %, %, r: r: 7,00 7,00 %, %, a: a: 6,51 6,51 %, %, (b) (b) Seien s 1, 1, s 2, 2,..., s n die n die verschiedenen Bytes, die die in in einem Computerprogramm auftreten. Dabei trete trete s i mit i mit der der Häufigkeit p i auf. i auf. Wir Wir möchten dieses Programm so so gut gut wie wie möglich komprimieren. i Seite 7

8 Der Huffman-Code Wir Wir wollen uns uns im im Folgenden auf auf binäre Codierung beschränken. Der Der wichtigste Code zur zur Datenkomprimierung ist ist der der Huffman-Code. Er Er beruht auf auf der der Idee, häufig vorkommende Zeichen in in möglichst kurze Codewörter zu zu transformieren. Beispiel: Wir Wir betrachten folgende 8 Quellzustände und und Häufigkeiten: Quellzustände s 1 s 2 s 3 s 4 s 5 s 6 s 7 s 8 Häufigkeiten 0,22 0,20 0,18 0,15 0,10 0,08 0,05 0,02 Seite 8

9 Beispiel zum Huffman-Code s i p i Code p i Code p i Code p i Code p i Code p i Code p i Code s 1 0, , , , , ,42 1 0,58 0 s 2 0, , , , , , ,42 1 s 3 0, , , , , ,25 01 s 4 0, , , , ,20 11 s 5 0, , , , s 6 0, , , s 7 0, , = s 8 0, Seite 9

10 Die Schritte beim Huffman-Code --In In jedem Schritt werden die die Quellzustände mit mit den den kleinsten Häufigkeiten zu zu einem neuen Quellzustand kombiniert, dessen Häufigkeit die die Summe der der alten Häufigkeiten ist ist (( + = ). ). Dies Dies wird wird solange durchgeführt bis bis nur nur noch zwei zwei Zustände übrig sind. --Von Von diesen beiden Quellzuständen erhält der der häufigere eine eine 0, 0, der der seltenere eine eine 1 als als Code. --Jetzt geht geht es es rückwärts: Der Der Code eines Quellzustands im im Schritt k sei sei b 1b 1 b 2...b 2...b m.. Wenn dieser Zustand auch im im Schritt k-1 k-1 vorkommt, dann erhält er er dort dort die die gleiche Codierung. Wenn der der Zustand aus aus den den Zuständen s u und u und s v kombiniert v wurde (o.b.d.a. sei sei s u häufiger), u dann erhält s u den den Code b 1 b 2...b...b m 0 und und s v erhält b 1 b 2...b...b m u 1 2 m v 1 2 m Seite 10

11 Die durchschnittliche Codewortlänge Sei Sei S = {s {s 1, 1, s 2, 2,..., s n } n } eine eine Quelle mit mit den den Quellzuständen s i, i, die die jeweils mit mit der der Wahrscheinlichkeit p i auftreten. Unter einem binären Code werde s i i Länge des des Codeworts c(s c(s i ). ). i i in in c(s c(s i ) i ) codiert. Sei Sei l(s l(s i ) i ) die die Wir Wir definieren die die durchschnittliche he Codewortlänge l* l* als als l* l* = p 1 l(s) 1 + p 2 l(s) p n l(s) n n n Beispiel: Im Im obigen Beispiel gilt gilt l* l* = 0, , , , , , , ,02 5 = 2,8 2,8 Seite 11

12 Wie gut ist ist der Huffman-Code? Der Der Huffman-Code ist ist im im folgenden Sinne optimal Satz. Sei Sei S = {s {s 1, 1, s 2, 2,..., s n } n } eine eine Quelle mit mit den den zugehörigen Wahrscheinlichkeiten p i. i. Dann gilt gilt es es keinen Code, der der eine eine kleinere durchschnittliche Codewortlänge als als der der Huffman-Code hat. hat. Beweis durch Induktion nach n. n. Wenn der der Code in in einem Schritt k optimal ist, ist, dann liefert das das Vorgehen beim Huffman-Code auch im im Schritt k-1 k-1 einen optimalen Code. Bemerkung. Man Man kann zeigen, dass der der Huffman-Code eindeutig decodierbar ist. ist. Seite 12

13 1.3 Fehlererkennende Codes Schon die die alten Römer wussten es: es: Errare humanum est. est. Wir Wir betrachten Fehler beim Übertragen von von Daten, die die durch zufällige Störungen hervorgerufen werden. Folgen: falsche Geldüberweisungen, Artikellieferungen,...,... Die Die Fehler, die die wir wir behandeln, sind sind Veränderungen von von Zeichen. Keine Fehler in in diesem Sinne sind sind also also Verlust oder oder Hinzufügen von von Zeichen. Mit Mit Hilfe Hilfe fehlererkennender Codes soll soll der der Empfänger entscheiden können, ob ob die die empfangene Nachricht Fehler enthält oder oder nicht. Seite 13

14 Fehlererkennung im im täglichen Leben Namen buchstabieren ( Zet-es-zeh-ha-i-e-ge-en-e-er ) Buchstabieralphabete ( A ( A wie wie Anton, B wie wie Berta,... )... ) Sprachen sind sind so so redundant (haben so so viel viel überschüssige Informa- tion), dass man manalls alls vrsteht, auc auc wnn wnn einge Bchstbn fhln. fhln. Selpst wen wen groppe recktscreib Felr Felr auftren ged ged dr dr ßinn ßinn nich nich färlohn. Grundidee: Man Man fügt fügt der der Nachricht etwas hinzu --eeine Kontrollinformation, die die nur nur dazu dient, eventuelle Übertragungsfehler zu zu erkennen. Seite 14

15 Die Idee: Eine Prüfziffer! Das Das Szenario: Als Als Daten wollen wir wir 4-stellige Zahlen übermitteln. Der Der Empfänger soll soll merken, ob ob die die Daten korrekt sind sind oder oder nicht. Die Die Idee: Wir Wir fügen eine eine Ziffer hinzu, und und zwar so, so, dass die die Quersumme dieser (5-stelligen) Zahl Zahl durch teilbar ist! ist! Diese hinzugefügte Ziffer heißt Prüfziffer. Beispiele: (a) (a) Der Der Datensatz 1234 hat hat die die Prüfziffer (b) (b) Der Der Datensatz 4813 hat hat die die Prüfziffer Seite 15

16 Wie wird der Fehler erkannt? Woran merkt der der Empfänger, dass ein ein Fehler aufgetreten ist? ist? Der Der Empfänger bildet die die Quersumme der der empfangenen (5-stelligen) Zahl. --Wenn diese durch teilbar ist, ist, so so akzeptiert er er die die Nachricht und und nimmt die die ersten vier vier Stellen als als Daten. --Wenn die die Quersumme nicht durch teilbar ist, ist, so so weiß er, er, dass ein ein Fehler passiert ist ist und und fordert die die Nachricht erneut an. an. Beispiel: Wird die die Zahl Zahl empfangen, so so muss beim Übertragen ein ein Fehler aufgetreten sein, denn =15 ist ist nicht durch teilbar. Seite 16

17 Paritätscodes Die Die Daten seien binäre Folgen der der Länge n-1, n-1, D die die Menge aller aller Daten: D = {(b {(b 1, 1,..., b n-1 ) n-1 ) b i i {0, {0, 1}}. 1}}. Wir Wir erhalten die die codierte Nachricht, indem wir wir ein ein n-tes Bit Bit anhängen, so so dass dass die die Summe aller aller Bits Bits gerade ist: ist: n M = {(b {(b 1, 1,..., b n-1, n-1, b n ) n ) b i i {0, {0, 1} 1} und und b i mod i mod2 = 0}. 0}. i= 1 Codierung: Wenn b b n-1 gerade n-1 ist, ist, setzt der der Sender b n = n 0, 0, sonst b n = n Decodierung: Der Der Empfänger überprüft, ob ob die die Summe der der Bits Bits in in der der empfangenen Nachricht gerade ist. ist. Falls ja, ja, akzeptiert es es die die Nachricht; falls falls nein, akzeptiert es es sie sie nicht. Seite 17

18 Der Paritätscode ist ist 1-fehlererkennend Die Die Menge M = {(b {(b 1, 1,..., b n-1, n-1, b n ) n ) b i i {0, {0, 1} 1} und und b i mod i mod2 = 0}. 0}. i= 1 heißt Paritätscode der der Länge n zur zur Basis Die Die Elemente von von M heißen Codewörter. Beobachtung: Der Der Paritätscode ist ist ein ein 1-fehlerekennender Code. Das Das heißt, wenn höchstens ein ein Fehler passiert, wird wird dieser entdeckt. Bemerkung: Wenn 2 (oder eine eine gerade Anzahl) Fehler passieren, akzeptiert der der Empfänger die die Nachricht, obwohl sie sie Fehler enthält. n Seite 18

19 Verallgemeinerung: Paritätscodes über Gruppen Sei Sei G eine eine Gruppe und und sei sei c ein ein beliebiges Element von von G. G. Die Die Menge C = {(g {(g 1,,...,..., g n-1,, g n )) g i G und und g g n-1 g n = c} c} 1 n-1 n i 1 n-1 n ist ist ein ein Paritätscode der der Länge n über über der der Gruppe G. G. Wie Wie können uns uns (g (g 1, 1,..., g n-1 ) n-1 ) als als Informationssymbole symbole ( Daten ) und und g n als als Prüfsymbol vorstellen. n Berechnung des des Prüfsymbols: g n = g -1 n-1-1 g -1 n g c. c. n n-1 n-2 1 Beispiele: (a) (a) G = Z 2 = {0, 2 {0, 1}, 1}, c = 0: 0: Vorheriges Beispiel (Folie 17). 17). (b) (b) G = Z 10,, c = 0: 0: Dezimalcode von von Folie Seite 19

20 1-Fehlererkennung bei Paritätscodes über Gruppen Satz. Paritätscodes über über Gruppen sind sind 1-fehlererkennend. Beweis. Sei Sei (g (g 1, 1,..., g n-1, n-1, g n ) n ) ein ein Codewort. Dann ist ist g g n-1 n-1 g n = n c. c. Angenommen, das das i-te i-te Symbol g i wird i wird durch ein ein anderes Symbol g i i ersetzt (ein (ein Fehler an an der der i-ten i-ten Stelle passiert). Würde der der Empfänger die die Nachricht (g (g 1, 1,..., g i-1, i-1, g i, i, g i+1, i+1,...,, g n-1, n-1, g n ) n ) akzeptieren, so so müsste gelten g g i-1 i-1 g i i g i+1 i g n-1 n-1 g n = n c. c. Zusammen folgt folgt g i = i g i. i. Das Das ist ist ein ein Widerspruch. Seite 20

21 Vertuaschungsfehler Bisher haben wir wir nur nureinzelfehler betrachtet: Ein Ein Zeichen wurde durch ein ein anderes ersetzt. Beispiel: Statt 1357 liest liest man man Jetzt betrachten wir wirvertauschungsfehler: Zwei Zwei aufeinanderfolgende Zeichen werden vertauscht. Beispiel: Statt 1357 liest liest man man Paritätscodes erkennen Vertauschungsfehler im im Allgemeinen nicht. Wenn G eine eineabelsche Gruppe ist, ist, wird wird kein kein Vertauschungsfehler erkannt. Wenn G nichtabelsch ist, ist, werden manche Vertauschungsfehler erkannt, aber aber niemals alle alle (denn jedes Element ist ist stets mit mit seinem Inversen und und mit mit dem dem neutralen Element vertauschbar). Seite 21

22 Paritätscodes mit Gewichten Problem: Wie Wie können wir wir benachbarte Stellen unterscheiden? Neue Idee: Wir Wir versehen jede jede Stelle mit mit einem Gewicht! Sei Sei G die die Gruppe (Z (Z m,, +) +) und und c Z m.. Seien w 1, 1,..., w n-1, n-1, w n n Z m.. Dann ist ist C = {(z {(z 1,,...,..., z n-1,, z n )) z i Z m und und w 1 z w n-1 z n-1 + w n z n = c} c} 1 n-1 n i m 1 1 n-1 n-1 n n ein ein Paritätscode zur zur Basis m mit mit den den Gewichten w 1,,..., w n.. 1 n Beispiel: Wir Wir erhalten den den ursprünglichen Paritätscode (ohne Gewichte) zurück, wenn wir wir w 1 = = w n = 1 setzen. 1 n Seite 22

23 1-Fehlererkennung bei Paritätscodes mit Gewichten Satz. Obiger Paritätscode mit mit Gewichten ist ist genau dann 1-fehlererkennend, wenn gilt gilt w 1,,...,..., w n-1,, w n Z m *. *. 1 n-1 n m Beweis. Sei Sei (z, (z, 1...,..., z n-1,, z n) ) ein ein Codewort. Dann ist ist 1 n-1 n wz w z + w z = c. c. w n-1 n-1 n-1 n-1 n n n n Angenommen, das das i-te i-tesymbol z i wird i wird durch z i i z i ersetzt. i Wäre auch (z (z 1,,...,..., z i-1,z,,z, i z i+1,,...,, z n-1,, z n )) ein ein Codewort, so so müsste gelten 1 i-1 i i+1 n-1 n w i-1 i-1 i-1 i-1 i i i i i+1 i+1 i+1 i+1 n-1 n-1 n-1 n-1 n n n n wz w z + w z + + w z w z + w z = c. c. Subtraktion der der beiden Gleichungen liefert w i z i i -w i -w i z i i = i = w i (z i (z i -z i -z i ) i ) = Da Da w i invertierbar ist, ist, folgt folgt z i -z -z i = 0, 0, also also z i = z i : : Widerspruch. i i i i i Seite 23

24 Fortsetzung des Beweises Angenommen, w i wäre i nicht aus aus Z m *. *. Dann ist ist t t := := ggt(m, w i ) i ) > Dann wird wird die die Veränderung von von z i := i := m/t m/t zu zu z i i :=:= 0 nicht erkannt! (Denn: Sei Sei w i = i k t. k t. Sei Sei (z (z 1, 1,..., z i, i,..., z n ) n ) ein ein Codewort mit mit z i := i := m // t. t. Dann ist ist c = w 1 z w i z i i + i w n z n n n = w 1 z k t k t m/t m/t w n z n n n = w 1 z w n z n n (in n (in Z m ). ). = w 1 z w i i w n z n n n = w 1 z w i i z i i w n z n n. n. Also Also ist ist auch (z (z 1, 1,..., z i, i,..., z n ) n ) ein ein Codewort, der der Fehler an an der der i-ten i-ten Stelle wird wird nicht erkannt. )) Seite 24

25 Der EAN-Code Fast Fast jedes käufliche Produkt besitzt eine eine EAN EAN (Europäische Artikel- Nummer) mit mit zugehörigem Strichcode. Die Die EAN EAN ist ist entweder oder 8-stellig. An An letzter Stelle steht die die Prüfziffer. Sie Sie wird wird nach einem Paritätscode zur zur Basis mit mit den den Gewichten (bei (bei Stellen) bzw. bzw (bei (bei 8 Stellen) berechnet. Der Der EAN-Code erkennt alle alle Einzelfehler (nach 1.3.2), aber aber nicht alle alle Vertauschungsfehler! Seite 25

26 Erkennen von Vertauschungsfehlern Satz. Ein Ein Paritätscode zur zur Basis m mit mit Gewichten w 1, 1, w 2, 2,..., w n n erkennt genau dann alle alle Vertauschungsfehler an an den den Stellen i i und und j, j, falls falls die die Zahl Zahl w i w j teilerfremd zu zu m ist. ist. i j Beweis. Sei Sei (z (z 1,, z 1 2,,..., 2..., z n ) n) ein ein Codewort; das das bedeutet, dass gilt gilt w 1 z w 2 z w n z n n = n c. c. Nun Nun mögen die die Einträge an an den den Stellen i i und und j j vertauscht werden. Dann gilt: gilt: Der Der Empfänger bemerkt diesen Fehler nicht w 1 z w 2 z w i z i j + j w j z j i + i w n z n n = n c w i z i i + i w j z j j (wz j i i j + j w j z j i ) i) = 0 w i (z i(z i z) i z) j + j w j (z j(z j z) j z) i = i 0 (w (w i w)(z j i z) z) j = i j i j Seite 26

27 Fortsetzung des Beweises Das Das bedeutet: Der Der Empfänger bemerkt jede jede solche Vertauschung, falls falls keine der der möglichen Zahlen (w (w i w i w j )(z j )(z i z i z j ) j ) gleich 0 ist ist (in (inz m ), ), d.h. d.h. falls falls keine der der Zahlen (w (w i w i w j )(z j )(z i z i z j ) j ) durch m teilbar ist. ist. : : Wenn die die Zahlen m und und w i w i w j j teilerfremd sind, dann teilt teilt m keine der der Zahlen (w (w i w i w j )(z j )(z i z i z j ). j ). Denn m müsste dann sogar z i z i z j j teilen, was was wegen z z i z i z j m 1 j unmöglich ist. ist. : : Wenn andererseits die die Zahlen m und und w i w i w j einen j größten gemeinsamen Teiler t t > 1 haben, dann wird wird die die Vertauschung von von z i := i := m/t m/t und und z j = j 0 nicht erkannt. Seite 27

28 Kann man Einzel- und Vertauschungsfehler erkennen? Korollar. Für Für gerades m gibt gibt es es keinen Paritätscode zur zur Basis m, m, der der alle alle Einzelfehler und und alle alle Vertauschungsfehler an an aufeinanderfolgenden Stellen erkennt. Beweis. Sei Sei C ein ein Paritätscode der der Länge n zu zu einer geraden Basis m mit mit den den Gewichten w 1, 1, w 2, 2,..., w n. n. Wenn C alle alle Einzelfehler erkennt, müssen nach alle alle Gewichte ungerade sein, da da sie sie sonst nicht teilerfremd zu zu m wären. Also Alsosind sind die die Differenzen w i w i w i+1 alle i+1 alle gerade. Daher kann C nach nicht alle alle Vertauschungsfehler an an aufeinanderfolgenden Stellen erkennen. Beispiel: Dezimale Paritätscodes (m (m = 10) 10) erkennen nie nie alle alle Einzelfehler und und alle alle Vertauschungsfehler an an aufeinanderfolgenden Stellen. Seite 28

29 Der ISBN-Code Einer der der besten Codes ist ist der der ISBN-Code. Jedes Buch hat hat eine eine ISBN (International Standard Book Number). Diese hat hat Stellen, in in 4 Gruppen eingeteilt: Sprachraum (z.b. 3 = deutsch) Verlag (z.b. (z.b. 528: 528: Verlag Vieweg) Nummer des des Buches (z.b. (z.b ) Prüfsymbol ISBN Seite 29

30 Berechnung des ISBN-Prüfsymbols Sei Sei a 1 a 1 2 a a 9 a 9 10 eine 10 eine ISBN. Das Das Prüfsymbol a 10 wird 10 wird so so bestimmt, dass die die Zahl Zahl 10 a 10 a a 1 9 a a 2 8 a a 3 7 a a 6 a a 5 a a 4 a a 3 a a 2 a a 1 a eine eine Elferzahl ist. ist. Das Das Prüfsymbol kann gleich h 0, 0, 1, 1, 2, 2,...,..., 9 oder oder sein. Wenn sich sich ergibt, so so schreibt man man X (römische Zehn). Beispiel: Für Für die die ISBN ? berechnen wir wir die die Zahl Zahl = Die Die nächste Elferzahl ist ist 242, 242, also also muss das das Prüfsymbol 7 sein. sein. Die Die komplette ISBN lautet also also Seite 30

31 Wie gut ist ist der ISBN-Code? Satz. (a) (a) Der Der ISBN-Code erkennt alle alle Einzelfehler. (b) (b) Der Der ISBN-Code erkennt alle alle Vertauschungsfehler sogar an an beliebigen Stellen. Beweis. Formal kann der der ISBN-Code wie wie folgt folgt beschrieben werden: {(a {(a 1, 1,..., a 10 ) 10 ) 10 a 10 a a 9 a a 8 a a 7 a a 3 a a 2 a a 1 a 10 mod 10 mod11 11 = 0}. 0}. Der Der ISBN-Code ist ist also also ein ein Paritätscode zur zur Basis m = mit mit den den Gewichten 10, 10, 9, 9,...,..., 1 und und c = Da Da Z 11 * 11 * = {1, {1, 2, 2,...,..., 10} 10} ist, ist, liegen alle alle Gewichte und und alle alle Differenzen von von je je zwei zwei Gewichten in in Z 11 *. 11 *. Nach und und werden daher alle alle Einzelfehler und und beliebige Vertauschungsfehler erkannt. Seite 31

32 1.4 Fehlerkorrigierende Codes Unser erstes Ziel Ziel ist ist es, es, die die Eigenschaft, Fehler korrigieren zu zu können, zu zu präzisieren. Im Im Folgenden sei sei eine eine Nachricht stets ein ein binäres n-tupel, also also ein ein Element der der Menge V := :={0,1} n n bzw. bzw. des des Vektorraums GF(2) n n.. Problemstellung: Der Der Kanal addiert zu zu dem dem gesendeten Vektor c (der (der Nachricht ) einen Fehlervektor e. e. Der Der Empfänger erhält den den Vektor x = c + e. e. Die Die Aufgabe des des Empfängers ist ist es es dann, c aus aus x zu zu bestimmen. Seite 32

33 Hamming-Abstand Der Der zentrale Begriff der der Codierungstheorie ist ist der der des deshamming- Abstandes. Seien v = (v (v 1,...,v 1 n ), n ), w = (w (w 1,...,w 1 n ) n ) V. V. Der Der Abstand d(v, d(v, w) w) von von v und und w ist ist die die Anzahl der der Stellen, an an denen sich sich v und und w unterscheiden: d(v, d(v, w) w) = {i {i v i w i }. }. Oft Oft wird wird d auch als alshamming-abstand bezeichnet (zu (zu Ehren eines der der Gründerväter der der Codierungstheorie Richard W. W. Hamming). i i Seite 33

34 Der Hamming-Abstand als Metrik Der Der Hamming-Abstand d trägt trägt den den Namen Abstand zu zu Recht: Lemma. Die Die Funktion d ist ist eine eine Metrik auf auf V. V. Beweis. Nac Nachweis h der der Eigenschaften einer Metrik: (1) (1) Da Da d(v, d(v, w) w) eine eine Anzahl ist, ist, ist ist d(v, d(v, w) w) 0; 0; ferner gilt gilt d(v, d(v, w) w) = 0 genau dann, wenn sich sich v und und w an an keiner Stelle unterscheiden, also also wenn sie sie gleich sind. (2) (2) Symmetrie: Offenbar gilt gilt d(v, d(v, w) w) = d(w, d(w, v). v). (3) (3) (3) (3) Die Die Dreiecksungleichung nachzuweisen, en, ist ist etwas kniffliger: Seien u, u, v, v, w V; V; es es ist ist zu zu zeigen: d(u, d(u, w) w) d(u, d(u, v) v) + d(v, d(v, w). w). Seite 34

35 Nachweis der Dreiecksungleichung Wir Wir können o.b.d.a. annehmen, dass sich sich u und und w genau an an den den ersten a = d(u, d(u, w) w) Stellen unterscheiden. Unter diesen a Stellen mögen b sein, an an denen sich sich v und und w unterscheiden (also u und und v übereinstimmen); ferner gebe es es c Stellen außerhalb der der ersten a Stellen, an an denen sich sich v von von w unterscheidet. Natürlich ist ist dann d(v, d(v, w) w) = b + c. 6447a 448 c. u w v x x x o o o o o x x x x x x x x x x b Daraus erkennt man man d(u, d(u, v) v) = a b + c. c. Es Es ergibt sich sich d(u, d(u, v) v) + d(v, d(v, w) w) = a b + c + b + c = a + 2c 2c a = d(u, d(u, w). w). x x o o x x x o o o c x x x x x x x x Seite 35

36 Hammingkugeln Zur Zur Beschreibung von von Codes werden später die die Kugeln bezüglich der der Hamming-Metrik von von Nutzen sein. Sei Sei v V, V, und und sei sei r r eine eine nichtnegative ganze Zahl. Dann heißt S r (v) (v):=:={x {x V d(x, d(x, v) v) r} r} r die die Kugel vom vom Radius r r um um den den Mittelpunkt v. v. Man Man spricht dabei auch von von Hammingkugeln. Seite 36

37 t-fehlerkorrigierende Codes Sei Sei t t eine eine natürliche Zahl. Eine Eine Teilmenge C von von V = {0,1} n {0,1} n heißt ein ein t-fehlerkorrigierender Code, falls falls für für je je zwei zwei verschiedene Elemente v, v, w C gilt gilt d(v, d(v, w) w) 2t 2t Mit Mit anderen Worten: C V ist ist ein ein t-fehlerkorrigierender Code, wenn der der Minimalabstand d(c) d(c) := := min min {d(c, {d(c, c') c') c, c, c' c' C, C, c c'} c'} von von C mindestens 2t 2t + 1 ist. ist. Wir Wir nennen die die Elemente eines Codes auch Codewörter. Seite 37

38 Lemma über Hammingkugeln Lemma. Sei Sei C ein ein t-fehlerkorrigierender Code. Dann gilt: gilt: (a) (a) Zu Zu jedem Vektor v V gibt gibt es es höchstens ein ein c C mit mit d(v, d(v, c) c) t. t. (b) (b) Die Die Kugeln S t (c) t (c) mit mit c C sind sind paarweise disjunkt. Beweis. (a) (a) Angenommen, es es gäbe zwei zwei verschiedene Elemente c, c, c' c' C und und einen Vektor v V mit mit d(v, d(v, c) c) t t und und d(v, d(v, c') c') t. t. Wegen der derdreiecksungleichung folgte daraus d(c, d(c, c') c') d(c, d(c, v) v) + d(v, d(v, c') c') 2t, 2t, im im Widerspruch zu zu d(c) d(c) 2t 2t (b) (b) Angenommen, es es gibt gibt ein ein v V in in S t (c) t (c) S t (c') t (c') mit mit c, c, c' c' C, C, c c. c. Dann ist ist d(v, d(v, c) c) t t und und d(v, d(v, c') c') t: t: Widerspruch zu zu (a). (a). Seite 38

39 Warum t-fehlerkorrigierend? Als Als gesendete Nachrichten werden nur nur Codewörter zugelassen. Wenn während der der Übertragung eines Codewortes c höchstens t t Fehler auftreten, so so hat hat der der empfangene Vektor x höchstens den den Abstand tt zu zu c. c. Nach dem dem Lemma über überhammingkugeln gibt gibt es es nur nur ein ein Code- wort, das das einen Abstand t t zu zu x hat. hat. Der Der Empfänger decodiert x zu zu c. c. Hier Hier ist ist die die Vorstellung der der Kugeln besonders hilfreich: Die Die Tatsache, dass bei bei der der Übertragung von von c höchstens t t Fehler auftreten, bedeutet, dass dass der der empfangene Vektor jedenfalls noch in in S t (c) t (c) liegt. Da Da nach obigem Lemma je je zwei zwei Kugeln um um Codewörter disjunkt sind, kann der der empfangene Vektor decodiert werden, und und zwar zu zu dem dem Codewort, welches der der Mittelpunkt der der Kugel ist, ist, in in der der x liegt. Seite 39

40 Das Ziel der Codierungstheorie Bemerkung. Wenn pro pro Codewort mehr als als t t Fehler auftreten, so so wird wird der der empfangene Vektor im im allgemeinen nicht korrekt decodiert. In Inder Praxis wird wird man man so so vorgehen, dass man man zunächst abschätzt, wie wie fehleranfällig der der Kanal ist, ist, dann die die Zahl Zahl t t entsprechend wählt und und schließlich einen t-fehlerkorrigierenden Code konstruiert. Das Das Ziel Ziel der der Codierungstheorie ist ist es, es, Codes zu zu konstruieren, die die einen großen Minimalabstand (und (und damit gute gute Fehlerkorrektureigenschaften) haben und und für für die die es es einen effizienten Decodieralgorithmus gibt. gibt. Seite 40

41 Beispiel Die Die folgenden Vektoren aus aus V = {0,1} {0,1} 7 7 gierenden Code: bilden einen 1-fehlerkorri Seite 41

42 Lineare Codes Der Der bisherige Ansatz ist ist unpraktikabel, denn: --Speichern des des Codes (man muss jedes Codewort abspeichern), --Bestimmung des des Minimalabstands (man muss je je zwei zwei Codewörter vergleichen, hat hat also also quadratischen Aufwand in in C ) C ) --Decodieralgorithmen (bei (bei jedem empfangenen Vektor muss man man alle alle Codewörter untersuchen). Für Für praktische Anwendungen besser: Lineare Codes. Ein Ein Code C V heißt linear, falls falls C ein ein Unterraum des des Vektorraums V (und (und nicht nur nur eine eine Teilmenge der der Menge V) V) ist. ist. Die Die Dimension ion von von C wird wird oft oft mit mit k bezeichnet und und wir wir nennen dann C einen linearen [n, [n, kk]-code. Seite 42

43 Generatormatrix Erster Vorteil linearer Codes: Man Man braucht nur nur eine eine Basis von von C zu zu kennen. Statt Statt alle alle 2 k k Vektoren von von C zu zu speichern, genügt es, es, die die k Basisvektoren zu zu speichern. Sei Sei c 1,...,c 1 k eine k eine Basis eines linearen [n, [n, k]-codes C. C. Dann heißt die die k n-matrix G, G, deren i-te i-tezeile der der Basisvektor c i ist, i ist, eine eine Generatormatrix von von C. C. Beispiel. Eine Eine Generatormatrix des des obigen Beispielcodes (Folie 41) 41) ist ist G = Seite 43

44 Minimalgewicht Das Das Gewicht w(x) w(x) eines Vektors x V ist ist die die Anzahl der der von von 0 verschiedenen Stellen von von x: x: w(x) w(x) = d(x, d(x, 0). 0). Das Das Minimalgewicht w(c) des des Codes C ist ist definiert als als w(c) := := min min {w(c) c C, C, c 0}. 0} Lemma. Sei Sei C ein ein linearer Code. Dann gilt gilt d(c) d(c) = w(c). Zweiter Vorteil linearer Codes: Um Um den den Minimalabstand und und damit die die Fehlerkorrekturqualität von von C zu zu bestimmen, muss man man also also nur nur das das Minimalgewicht ausrechnen; dazu braucht man man höchstens C C Sc Schritte. Seite 44

45 Beweis des Lemmas Beweis. Für Für jeden Code, der der den den Nullvektor enthält, gilt gilt d(c) d(c) = min{d(c, c') c') c, c, c' c' C, C, c c'} c'} min{d(c, 0) 0) c C, C, c 0} 0} = w(c). Noch z.z.: z.z.: Es Es gibt gibt ein ein Codewort c 0 vom 0 vom Gewicht d(c). Seien c, c, c' c' C mit mit d(c, d(c, c') c') = d(c). Dann gilt: gilt: w(c c') = d(c c', 0) 0) = d(c c' c' c') = d(c, d(c, c') c') = d(c). Da Da C linear ist, ist, ist ist c 0 := 0 := c c' c c' C. C. Damit ist ist alles alles gezeigt. Seite 45

46 Dualer Code Dritter Vorteil linearer Codes: Sie Sie erlauben effizientes Decodieren. Dazu müssen wir wir etwas ausholen. Sei Sei C V ein ein Code. Der Der zu zu C duale Code C C := :={v {v V c v c v = 0 für für alle alle c C}; C}; ist ist wie wie folgt folgt definiert: dabei ist ist das das innere Produkt c v c v der der Vektoren c = (c (c 1,...,c) 1 n und n und v = (v (v 1,...,v) n erklärt durch 1 n c v c v = c 1 v 1 + c 2 v c n v n n n Wenn c v c v = 0 ist, ist, so so sagt sagt man man auch, dass dass c und und v orthogonal sind. Seite 46

47 Dimensionsformel für den dualen Code Satz. Ist Ist C ein ein linearer [n, [n, k]-code der der Dimension k, k, so so ist ist C ein ein linearer Code der der Dimension n k. n k. Beweis. Unabhängig davon, ob ob C linear ist ist oder oder nicht, ist ist C ein ein Unterraum von von V. V. Noch z.z.: z.z.: dim dimc = n k. n k. Dazu betrachten wir wir eine eine Generatormatrix G mit mit den den Zeilen c 1,..,c 1 k k von von C. C. Dann gilt: gilt: C = {v {v V c i v i v = 0, 0, i i = 1, 1,...,., k}, k}, d.h. d.h. C besteht aus aus den den Lösungen v = (v (v 1,...,v 1 n ) n ) V des des homogenen Gleichungssystems mit mit der der Koeffizientenmatrix G. G. Die Die Dimension des des Lösungsraums ist ist gleich n Rang(G). Da Da die die Zeilen von von G eine eine Basis von von C bilden, hat hat G den den Rang k. k. Also Also gilt gilt dim(c )) = n k. n k. Seite 47

48 Satz vom Bidualcode Satz. Sei Sei C ein ein linearer Code. Dann ist ist C = C. C. Beweis. Zunächst zeigen wir wir C C :: Die Die Menge C besteht aus aus all all den den Vektoren, die die orthogonal zu zu allen Vektoren aus aus C sind; dazu gehören aber aber bestimmt die die Vektoren aus aus C, C, da da C ja ja die die Menge derjenigen Vektoren ist, ist, die die orthogonal zu zu jedem Vektor aus aus C sind. Wenn wir wir die die Dimensionsformel auf auf C anwenden, erhalten wir wir dim(c )) = n dim(c )) = n (n k) = k = dim(c). Zusammen folgt folgt C = C. C. Seite 48

49 Kontrollmatrix und Syndrom Sei Sei C V ein ein linearer Code. Eine Eine Matrix H, H, deren Zeilen eine einebasis des des dualen Codes C bilden, heißt eine eine Kontrollmatrix von von C. C. Da Da C die die Dimension n k n k hat, hat, ist ist H eine eine (n k) n-matrix. Für Für das das effiziente Decodieren ist ist der der Begriff des des Syndroms wichtig. Für Für jeden Vektor v V definieren wir wir sein sein Syndrom als als s(v) s(v) := := v H v H T T,, wobei H T T die die zur zur Kontrollmatrix H transponierte Matrix ist. ist. Ein Ein Syndrom ist ist also also ein ein binärer Vektor der der Länge n k. n k. Seite 49

50 Satz über die Kontrollmatrix Satz. Ist Ist C ein ein linearer Code mit mit Kontrollmatrix H, H, so so gilt gilt C = {v {v V s(v) s(v) = 0}. 0}. Beweis. Sei Sei v V beliebig. Dann gilt gilt s(v) s(v) = 0 v H v H T T = 0 v ist ist orthogonal zu zu allen Vektoren einer Basis von von C v C v C wegen C = C. C. Seite 50

51 Das Syndrom hängt nur von der Nebenklasse ab ab Lemma. Sei Sei H eine eine Kontrollmatrix eines linearen Codes C V. V. Für Für alle alle Vektoren v, v, w V gilt gilt s(v) s(v) = s(w) s(w) v + C = w + C. C. Beweis. Sei Sei v, v, w V beliebig. Dann gilt gilt s(v) s(v) = s(w) s(w) v H v H T T = w H w H T T v H v H T T w H T T = 0 (v (v w) H w) H T T = 0 v w C (nach 1.4.6) v + C = w + C (Kriterium für für Gleichheit von von Nebenklassen). Seite 51

52 Eindeutigkeit der Nebenklassenanführer Sei Sei C V ein ein linearer Code. Ein Ein Vektor heißt Anführer einer Nebenklasse von von C, C, wenn er er unter allen Vektoren dieser Nebenklasse minimales Gewicht hat. hat. Im Im allgemeinen sind sind Nebenklassenanführer nicht eindeutig bestimmt Satz. Sei Sei C V ein ein linearer t-fehlerkorrigierender Code. Dann: (a) (a) Jeder Vektor von von V vom vom Gewicht t t ist ist Anführer einer Nebenklasse. (b) (b) Die Die Anführer von von Nebenklassen, die die einen Vektor vom vom Gewicht t t enthalten, sind sind eindeutig bestimmt. Seite 52

53 Beweis Wir Wir beweisen (a) (a) und und (b) (b) gemeinsam. Sei Sei v ein ein Vektor vom vom Gewicht t. t. Betrachte einen beliebigen Vektor v' v' v + C mit mit v' v' v. v. Es Es ist ist zu zu zeigen, dass v' v' mindestens das das Gewicht t t + 1 hat. hat. Da Da v und und v' v' in in derselben Nebenklasse von von C sind, ist ist v v' v' C. C. Da Da v v' v' ist, ist, gilt gilt v v' v' 0, 0, also also w(v w(v v') v') = d(v d(v v' v' 0) 0) 2t 2t + 1 nach Definition eines t-fehlerkorrigierenden Codes. Daraus folgt folgt 2t 2t + 1 w(v w(v v') v') = d(v d(v v',0) v',0) = d(v, d(v, v') v') d(v, d(v, 0) 0) + d(0, d(0, v') v') = w(v) w(v) + w(v') w(v') t t + w(v'), also also w(v') w(v') t t Seite 53

54 Decodieralgorithmus Der Der Empfänger empfängt einen Vektor x. x. Wenn t t Fehler aufgetreten sind, sind, ist ist x = c + e mit mit c C und und w(e) w(e) t. t. Wegen x e = c C, C, liegen x und und e in in der der gleichen Nebenklasse. Der Der Empfänger bestimmt zunächst die die Nebenklasse, in in der der x liegt. Dann bestimmt er er den den Anführer dieser Nebenklasse. Da Da diese Nebenklasse einen Vektor mit mit Gewicht t t enthält (nämlich e), e), ist ist ihr ihr Anführer eindeutig bestimmt (nach 1.4.8), es esist ist e. e. Schließlich berechnet der der Empfänger das das Codewort: x e = c. c. Problem: Bestimmung der der Nebenklasse von von x. x. Verbesserung des des Algorithmus: Syndrom-Decodierung. Seite 54

55 Syndrom-Decodierung Sei Sei C V ein ein t-fehlerkorrigierender linearer Code. Man Man erstellt eine eine Liste Listeder Nebenklassenanführer und und der der zugehörigen Syndrome. Für Für einen empfangenen Vektor x berechnet man man das das Syndrom s(x), s(x), sucht dies dies in in der der Liste der der Syndrome, stellt stellt den den zugehörigen Nebenklassenanführer e fest fest und und decodiert x zu zu x + e = c. c. Bemerkung. Die Die Eindeutigkeit der der Nebenklassenanführer garantiert, dass mit mit der der Syndrom-Decodierung richtig decodiert wird, wenn höchstens t t Fehler auftreten. Seite 55

56 Beispiel zur Syndrom-Decodierung Wir Wir betrachten den den 1-fehlerkorrigierenden Beispielcode mit mit Codewörtern (Folie 41). 41). 1 Er Er hat hat die die Kontrollmatrix H = Die Die Nebenklassenanführer sind sind die die Vektoren mit mit Gewicht 1, 1, also also die die Vektoren , , ,... Zu Zu allen acht acht Nebenklassenanführern v bestimmen wir wir die die Syndrome s(v) s(v) = v H v H T T und und stellen folgende Liste auf. auf Seite 56

57 Beispiel (Fortsetzung) Nebenklassenanführer Syndrom Wird Wird z.b. z.b. x = empfangen, so so berechnet man man s(x) s(x) = Danach bestimmt man man aus aus der der Liste Liste den den Fehlervektor e = ; als als Codewort ergibt sich sich c = x + e = = Seite 57

58 Hamming-Codes Sei Sei r r N. N. Sei Sei H eine eine binäre r (2 r (2 r r 1)-Matrix, deren Spalten sämtlichevvon 0 verschiedenen binären r-tupel sind. Sei Sei n := := 2 r r Der Der liche Hamming-Code der der Länge n i ist definiert als als Ham(r) := :={c {c = (c (c 1,,...,., c n )) {0, {0, 1} 1} n n c H c H T T =o}, =o}, 1 n das das heißt, genau diejenigen Vektoren c sind sind Codewörter von von Ham(r), für für die die c H c H T T der der Nullvektor der der Länge r r ist. ist. Beispiel: Der Der Code von von Folie ist ist der derhamming-code Ham(3). Da Da H den den Rang r r hat, hat, hat hat Ham(r) die die Dimension 2 r r 1 r. Ham(r) ist ist also also ein ein linearer [2 r [2 r 1, 1, 2 r r 1 r]-code. Seite 58

59 Hamming-Codes sind 1-fehlerkorrigierend Satz. Die DieHamming-Codes sind sind 1-fehlerkorrigierende Codes. Beweis. Z.z: Z.z: d(ham(r)) Angenommen, Ham(r) enthielte einen Vektor c vom vom Gewicht 1; 1; c möge an an der der i-ten i-ten Stelle eine eine 1 haben. Nach Definition von von Ham(r) ist ist dann c H c H T T = o. o. Dann muss die die i-te i-te Spalte von von H gleich Null Null sein: Widerspruch. Also Also ist ist d(ham(r)) Angenommen, Ham(r) enthielte einen Vektor, der der nur nur an an der der i-ten i-ten und und an an der der j-ten j-ten Stelle eine eine 1 hat. hat. Dann müsste die die Summe der der i-ten i-ten und und der der j-ten j-ten Spalte von von H gleich Null Null sein; also also wäre die die i-te i-tespalte gleich der der j-ten j-ten Spalte: Widerspruch. Also Also ist ist d(ham(r)) Seite 59

60 Perfekte Codes Hamming-Codes sind sind in in gewissen Sinne die die besten Codes, die die es es gibt, gibt, nämlich die, die, die die am am dichtesten gepackt sind. Ein Ein t-fehlerkorrigierender Code C V heißt perfekt, falls falls jeder Vektor aus aus V einen Abstand t t zu zu (genau) einem Codewort hat. hat. Anders ausgedrückt: C ist ist perfekt, falls falls S t (c) t (c) = V c C ist; ist; wenn also also die die Kugeln mit mit Radius t t um um die die Codewörter den den Vektorraum V lückenlos auffüllen. Wir Wir werden zeigen, dass die diehamming-codes perfekt sind. Seite 60

61 Kugelpackungsgrenze Lemma. Sei Sei C V = {0, {0, 1} 1} n n ein ein 1-fehlerkorrigierender Code. Dann gilt gilt 2 n C C n + 1 mit mit Gleichheit genau dann, wenn C perfekt ist. ist Korollar. Jeder perfekte 1-fehlerkorrigierende Code C {0, {0, 1} 1} n n hat hat eine eine Länge n der der Form n = 2 r r Beweis des des Korollars. Aus Aus C (n + 1) 1) = 2 n n folgt, dass n + 1 ein ein Teiler von von 2 n n sein sein muss. Seite 61

62 Beweis des Lemmas In In einer Kugel S 1 (c) 1 (c) um um ein ein Codewort c liegen c selbst und und alle alle Vektoren, die die Abstand 1 von von c haben. Da Da c genau n Stellen hat, hat, gibt gibt Vek- es es genau n Vektoren vom vom Abstand 1 von von c. c. Also Also ist ist S S 1 (c) 1 (c) = 1 + n. n. Da Da C ein ein 1-fehlerkorrigierender Code ist, ist, sind sind die die Kugeln S 1 (c) 1 (c) um um die die Codewörter c paarweise disjunkt. Daher überdecken die die Kugeln vom vom Radius 1 um um die die Codewörter genau C (n + 1) 1) Vektoren von von V. V. Da Da V genau 2 n n Vektoren hat, hat, gilt gilt offenbar C (n + 1) 1) 2 n n.. Gleichheit gilt gilt genau dann, wenn jeder Vektor aus aus V in in einer Kugel vom vom Radius 1 um um ein ein Codewort liegt, also also wenn C perfekt ist. ist. Seite 62

63 Hamming-Codes sind perfekt Satz. Die DieHamming-Codes sind sind perfekte 1-fehlerkorrigierende Codes. Beweis. Da Da dim(ham(r)) = 2 r r 1 r ist, ist, gilt gilt Daraus ergibt sich sich mit mit n = 2 r r 1: 1: r Ham(r) = r Ham(r) (n + 1) 1) = 2 r r = = 2 n n.. r 1 r 2 2 r 1 Nach ist ist Ham(r) also also perfekt. Seite 63

64 Syndrom-Decodierung mit Hamming-Codes Nun Nun ordnen wir wir die die Spalten der der Matrix H: H: Wir Wir interpretieren die diespalten von von H als als binäre Darstellung der der Zahlen 1, 1,...,., 2 r r 1 und und ordnen die die Spalten so so an, an, dass die die i-te i-tespalte s i die die Zahl Zahl i i darstellt Satz. Sei Sei der der Code Ham(r) mit mit der der nach obiger Vorschrift geordneten Matrix H konstruiert. Dann gilt: gilt: Für Für jeden Vektor v V\C V\C ist ist s(v) s(v) die die binäre Darstellung der der Zahl Zahl i, i, so so dass v e i i C ist. ist. (Dabei ist ist e i der i der Vektor, der der nur nur an an der der i-ten i-ten Stelle eine eine Eins Eins hat.) hat.) M.a.W.: Das Das Syndrom eines mit mit Fehler behafteten Vektors gibt gibt die die Stelle an, an, an an welcher der der Fehler auftrat. i Seite 64

65 Decodieralgorithmus Beweis. Da Da Ham(r) perfekt ist, ist, hat hat jeder Vektor v V\C V\C die die Form v=c+e i für i für ein ein geeignetes Codewort c. c. Damit ergibt sich sich s(v) s(v) = v H v H T T =(c =(c +e +e i ) H i ) H T T =c H T T +e +e i H i H T T =e =e i H i H T T = i-te i-tespalte von von H. H. Da Da die die i-te i-tespalte von von H der der Zahl Zahl i i entspricht, kann damit der der Fehler lokalisiert werden. Der Der Decodieralgorithmus ist ist damit äußerst einfach: Für Für einen empfangenen Vektor x muss man man nur nur s(x) s(x) berechnen, dieses r-tupel als als Zahl Zahl i i interpretieren und und erhält das das zugehörige Codewort als als e i + i x = c. c. Seite 65

66 Erweiterter Hamming-Code Aus Aus einem Hamming-Code Ham(r) erhalten wir wir den den erweiterten Hamming-Code Ham(r)*, indem wir wir jedes Codewort aus aus Ham(r) um um eine eine Stelle so so verlängern, dass die die Gesamtzahl der der Einsen in in jedem Codewort gerade ist. ist Beispiel: Ham(3)* besteht aus aus nebenstehenden Codewörtern der der Länge 8: 8: Seite 66

67 Eigenschaften des erweiterten Hamming-Codes Satz. Ham(r)* ist ist ein ein linearer [2 [2 r,2 r,2 r r 1 r]-code mit mit Minimalabstand Beweis. 1.) 1.) Ham(r)* ist ist ein ein Unterraum von von V* V* = GF GF :: Seien c 1 *, 1 *, c 2 * 2 * Ham(r)*, und und seien c 1 und 1 und c 2 die 2 die entsprechenden Codewörter aus aus Ham(r). Da Da c 1 *+c 1 *+c 2 * 2 * in in den den ersten 2 r r 1 Stellen mit mit c 1 +c 1 +c 2 übereinstimmt, 2 müssen wir wir nur nur folgendes zeigen: die die letzte Stelle von von c 1 *+ 1*+c* 2 ist 2 ist 1 wenn w(c w(c c) 2 ungerade 2 ist ist und und 0 sonst. Wenn c 1 +c 1 +c 2 ungerades 2 Gewicht hat, hat, dann können wir wir o.b.d.a. annehmen, dass c 1 ungerades 1 Gewicht hat hat und und c 2 gerades 2 Gewicht. Daher ist ist die die letzte Stelle von von c 1 * 1 * gleich h1 und und die die letzte Stelle von von c 2 * 2 * gleich Also Also ist ist die die letzte Stelle von von c 1 *+c* 2 gleich ( 2) 2 r Seite 67

68 Beweis (Fortsetzung) Wenn c 1 +c 1 +c 2 gerades 2 Gewicht hat, hat, dann haben entweder c 1 und 1 und c 2 2 beide gerades oder oder beide ungerades Gewicht. In In jedem Fall Fall haben c 1 * 1 * und und c 2 * 2 * den den gleichen letzten Eintrag und und daher ist ist die die letzte Stelle von von c 1 *+c 1 *+c 2 * 2 * gleich Also Also ist ist in in beiden Fällen c 1 *+c 1 *+c 2 * 2 * ein ein Codewort und und damit ist ist Ham(r)* ein ein Vektorraum. 2.) 2.) Ham(r)* hat hat die die gleiche Dimension wie wie Ham(r): Klar, denn beide Vektorräume haben dieselbe Anzahl von von Elementen. 3.) 3.) Ham(r)* hat hat das das Minimalgewicht 4: 4: Da Da w(ham(r)) = 3 ist, ist, muss w(ham(r)*) 3 sein. Wäre w(ham(r)*) = 3, 3, so so gäbe es es einen Vektor c* c* aus aus Ham(r)* vom vom Gewicht 3; 3; dies dies ist ist jedoch nicht möglich, da da jeder Vektor aus aus Ham(r)* gerades Gewicht hat. hat. Seite 68

69 Kontrollmatrix des erweiterten Hamming-Codes Satz. Man Man erhält aus aus einer Kontrollmatrix H von von Ham(r) eine eine Kontrollmatrix H* H* von von Ham(r)*, indem man man jede jede Zeile von von H durch eine eine Stelle ergänzt in in der der Null Null steht, eine eine zusätzliche Zeile aus aus lauter Einsen hinzufügt. Beispiel: Ham(3)* hat hat die die Kontrollmatrix H* H* = Seite 69

70 Beweis Der Der zu zu Ham(r)* duale Code ist ist nach ein ein [2 [2 r, r, r r + 1]-Code; seine Kontrollmatrix ist ist also also eine eine (r (r + 1) 2 1) 2 r -Matrix. r Z.z.: Z.z.: Die Die Zeilen von von H* H* sind sind linear unabhängig und und Codewörter des des zu zu Ham(r)* dualen Codes. Da Da H eine eine Kontrollmatrix ist, ist, sind sind ihre ihre Zeilen linear unabhängig. Also Also sind sind auch die die ersten r r Zeilen von von H* H* linear unabhängig. Da Da in in der der letzten Spalte von von H* H* in in den den ersten r r Zeilen 0 steht und und in in der der letzten Zeile 1, 1, sind sind alle alle Zeilen von von H* H* linear unabhängig. Die Die Zeilen von von H sind sind Codewörter des des zu zu Ham(r) dualen Codes, also also sind sind nach Konstruktion auch die die ersten r r Zeilen von von H* H* orthogonal zu zu allen Codewörtern von von Ham(r)*. Nach Definition hat hat jedes Codewort von von Ham(r)* gerades Gewicht; daher ist ist das das Produkt eines Codeworts mit mit der der letzten Zeile von von H* H* ebenfalls gleich Null. Null. Seite 70

Kapitel 5. Kapitel 5 Fehlererkennende Codes

Kapitel 5. Kapitel 5 Fehlererkennende Codes Fehlererkennende Codes Inhalt 5.1 5.1 Grundlagen: Was Was sind sind Vehler? 5.2 5.2 Vertuaschungsfehler 5.3 5.3 Der Der ISBN-Code 3-406-45404-6 5.4 5.4 Der Der EAN-Code ( Strichcode ) Seite 2 5.1 Grundlagen:

Mehr

Einführung in die Kodierungstheorie

Einführung in die Kodierungstheorie Einführung in die Kodierungstheorie Einführung Vorgehen Beispiele Definitionen (Code, Codewort, Alphabet, Länge) Hamming-Distanz Definitionen (Äquivalenz, Coderate, ) Singleton-Schranke Lineare Codes Hamming-Gewicht

Mehr

4. Woche Decodierung; Maximale, Perfekte und Optimale Codes. 4. Woche: Decodierung; Maximale, Perfekte und Optimale Codes 69/ 140

4. Woche Decodierung; Maximale, Perfekte und Optimale Codes. 4. Woche: Decodierung; Maximale, Perfekte und Optimale Codes 69/ 140 4 Woche Decodierung; Maximale, Perfekte und Optimale Codes 4 Woche: Decodierung; Maximale, Perfekte und Optimale Codes 69/ 140 Szenario für fehlerkorrigierende Codes Definition (n, M)-Code Sei C {0, 1}

Mehr

Einführung in die Kodierungstheorie

Einführung in die Kodierungstheorie Anton Malevich Einführung in die Kodierungstheorie Skript zu einer im Februar 2013 gehaltenen Kurzvorlesung Fakultät für Mechanik und Mathematik Belorussische Staatliche Universität Institut für Algebra

Mehr

Modul Diskrete Mathematik WiSe 2011/12

Modul Diskrete Mathematik WiSe 2011/12 Modul Diskrete Mathematik WiSe / Ergänzungsskript zum Kapitel 3.4. Hinweis: Dieses Manuskript ist nur verständlich und von Nutzen für Personen, die regelmäßig und aktiv die zugehörige Vorlesung besuchen

Mehr

3 Der Hamming-Code. Hamming-Codes

3 Der Hamming-Code. Hamming-Codes 3 Der Hamming-Code Hamming-Codes Ein binärer Code C heißt ein Hamming-Code Ha s, wenn seine Kontrollmatrix H als Spalten alle Elemente in Z 2 s je einmal hat. Die Parameter eines n-k-hamming-codes sind:

Mehr

Grundbegrie der Codierungstheorie

Grundbegrie der Codierungstheorie Grundbegrie der Codierungstheorie Pia Lackamp 12. Juni 2017 Inhaltsverzeichnis 1 Einleitung 2 2 Hauptteil 3 2.1 Blockcodes............................ 3 2.1.1 Beispiele.......................... 3 2.2

Mehr

Codierungstheorie Rudolf Scharlau, SoSe 2006 9

Codierungstheorie Rudolf Scharlau, SoSe 2006 9 Codierungstheorie Rudolf Scharlau, SoSe 2006 9 2 Optimale Codes Optimalität bezieht sich auf eine gegebene Quelle, d.h. eine Wahrscheinlichkeitsverteilung auf den Symbolen s 1,..., s q des Quellalphabets

Mehr

Theoretische Grundlagen der Informatik WS 09/10

Theoretische Grundlagen der Informatik WS 09/10 Theoretische Grundlagen der Informatik WS 09/10 - Tutorium 6 - Michael Kirsten und Kai Wallisch Sitzung 13 02.02.2010 Inhaltsverzeichnis 1 Formeln zur Berechnung Aufgabe 1 2 Hamming-Distanz Aufgabe 2 3

Mehr

6. Woche: Lineare Codes, Syndrom, Gilbert-Varshamov Schranke. 6. Woche: Lineare Codes, Syndrom, Gilbert-Varshamov Schranke 107/ 238

6. Woche: Lineare Codes, Syndrom, Gilbert-Varshamov Schranke. 6. Woche: Lineare Codes, Syndrom, Gilbert-Varshamov Schranke 107/ 238 6 Woche: Lineare Codes, Syndrom, Gilbert-Varshamov Schranke 6 Woche: Lineare Codes, Syndrom, Gilbert-Varshamov Schranke 107/ 238 Erinnerung: Der Vektorraum F n 2 Schreiben {0, 1} n als F n 2 Definition

Mehr

6 Fehlerkorrigierende Codes

6 Fehlerkorrigierende Codes R. Reischuk, ITCS 35 6 Fehlerkorrigierende Codes Wir betrachten im folgenden nur Blockcodes, da sich bei diesen das Decodieren und auch die Analyse der Fehlertoleranz-Eigenschaften einfacher gestaltet.

Mehr

Lineare Codes. Dipl.-Inform. Wolfgang Globke. Institut für Algebra und Geometrie Arbeitsgruppe Differentialgeometrie Universität Karlsruhe 1 / 19

Lineare Codes. Dipl.-Inform. Wolfgang Globke. Institut für Algebra und Geometrie Arbeitsgruppe Differentialgeometrie Universität Karlsruhe 1 / 19 Lineare Codes Dipl.-Inform. Wolfgang Globke Institut für Algebra und Geometrie Arbeitsgruppe Differentialgeometrie Universität Karlsruhe 1 / 19 Codes Ein Code ist eine eindeutige Zuordnung von Zeichen

Mehr

Verschlüsselungs- und Codierungstheorie PD Dr. Thomas Timmermann Westfälische Wilhelms-Universität Münster Sommersemester 2017

Verschlüsselungs- und Codierungstheorie PD Dr. Thomas Timmermann Westfälische Wilhelms-Universität Münster Sommersemester 2017 Verschlüsselungs- und Codierungstheorie PD Dr. Thomas Timmermann Westfälische Wilhelms-Universität Münster Sommersemester 2017 Lineare Codes (Ausarbeitung von Benjamin Demes) 1) Was sind lineare Codes

Mehr

Mathematik II für Studierende der Informatik Kapitel. Kodierungstheorie

Mathematik II für Studierende der Informatik Kapitel. Kodierungstheorie Mathematik II für Studierende der Informatik Kapitel Kodierungstheorie Markus Junker Sommersemester 2011 (korrigierte Version vom Sommersemester 2012) Einführung, Beispiele, Definitionen Ausgangspunkt

Mehr

7. Woche Extra-Material: - Beispiele von Codes. 7. Woche: Beispiele von Codes 144/ 238

7. Woche Extra-Material: - Beispiele von Codes. 7. Woche: Beispiele von Codes 144/ 238 7 Woche Extra-Material: - Beispiele von Codes 7 Woche: Beispiele von Codes 144/ 238 Hamming-Matrix H(h) und Hammingcode H(h) Wir definieren nun eine Parity-Check Matrix H(h) von einem neuen Code: Parametrisiert

Mehr

1. Woche Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes

1. Woche Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes 1 Woche Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes 1 Woche: Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes 5/ 44 Unser Modell Shannon

Mehr

Einführung in die Codierungstheorie

Einführung in die Codierungstheorie Einführung in die Codierungstheorie Monika König 11.12.2007 Inhaltsverzeichnis 1 Einführung und Definitionen 2 2 Fehlererkennende Codes 3 2.1 Paritycheck - Code............................... 3 2.2 Prüfziffersysteme................................

Mehr

Kapitel 15. Lösung linearer Gleichungssysteme

Kapitel 15. Lösung linearer Gleichungssysteme Kapitel 15. Lösung linearer Gleichungssysteme Lineare Gleichungssysteme Wir befassen uns nun mit der Lösung im allgemeinen nichthomogener linearer Gleichungssysteme in zweifacher Hinsicht. Wir studieren

Mehr

Fehlerkorrigierende Codes

Fehlerkorrigierende Codes Fehlerkorrigierende Codes SS 2013 Gerhard Dorfer 2 Inhaltsverzeichnis 1 Fehlerkorrigierende Codes 4 1.1 Einführende Beispiele................................. 4 1.2 Mathematische Grundlagen..............................

Mehr

Die Mathematik in der CD

Die Mathematik in der CD Lehrstuhl D für Mathematik RWTH Aachen Lehrstuhl D für Mathematik RWTH Aachen St.-Michael-Gymnasium Monschau 14. 09. 2006 Codes: Definition und Aufgaben Ein Code ist eine künstliche Sprache zum Speichern

Mehr

Grundlagen der Technischen Informatik. 2. Übung

Grundlagen der Technischen Informatik. 2. Übung Grundlagen der Technischen Informatik 2. Übung Christian Knell Keine Garantie für Korrekt-/Vollständigkeit Organisatorisches Übungsblätter zuhause vorbereiten! In der Übung an der Tafel vorrechnen! Bei

Mehr

Erzeugendensystem und Basis

Erzeugendensystem und Basis Erzeugendensystem und Basis Definition Erzeugendensystem und Basis eines Unterraums Sei S F n 2 ein Unterraum. Eine Menge G = {g 1,..., g k } S heißt Erzeugendensystem von S, falls jedes x S als Linearkombination

Mehr

2.1 Codes: einige Grundbegriffe

2.1 Codes: einige Grundbegriffe Gitter und Codes c Rudolf Scharlau 2. Mai 2009 51 2.1 Codes: einige Grundbegriffe Wir stellen die wichtigsten Grundbegriffe für Codes über dem Alphabet F q, also über einem endlichen Körper mit q Elementen

Mehr

Die Größe A(n, d) und optimale Codes

Die Größe A(n, d) und optimale Codes Die Größe A(n, d) und optimale Codes Definition Optimaler Code Wir definieren A(n, d) = max{m binärer (n, M, d) Code} Ein (n, M, d)-code heißt optimal, falls M = A(n, d). Bestimmung von A(n, d) ist offenes

Mehr

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren. Basis und Dimension Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren. Definition. Sei V ein K-Vektorraum und (v i ) i I eine Familie von Vektoren

Mehr

Einführung in die Codierungstheorie

Einführung in die Codierungstheorie 11. Dezember 2007 Ausblick Einführung und Definitionen 1 Einführung und Definitionen 2 3 Einführung und Definitionen Code: eindeutige Zuordnung von x i X = {x 1,.., x k } und y j Y = {y 1,..., y n } Sender

Mehr

Single Parity check Codes (1)

Single Parity check Codes (1) Single Parity check Codes (1) Der Single Parity check Code (SPC) fügt zu dem Informationsblock u = (u 1, u 2,..., u k ) ein Prüfbit (englisch: Parity) p hinzu: Die Grafik zeigt drei Beispiele solcher Codes

Mehr

Satz 25 A sei eine (n n)-matrix über K

Satz 25 A sei eine (n n)-matrix über K Satz 25 Satz 25 A sei eine (n n)-matrix über K Satz 25 A sei eine (n n)-matrix über K mit paarweise verschiedenen Eigenwerten λ 1,...,λ m. Satz 25 A sei eine (n n)-matrix über K mit paarweise verschiedenen

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Lineare Gleichungssysteme Sei K ein Körper, a ij K für 1 i m, 1 j n. Weiters seien b 1,..., b m K. Dann heißt a 11 x 1 + a 12 x 2 +... + a 1n x n = b 1 a 21 x 1 + a 22 x 2 +... + a 2n x n = b 2... a m1

Mehr

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt - 17 - Die Frage ist hier also: Für welche x R gilt x = x + 1? Das ist eine quadratische Gleichung für x. Es gilt x = x + 1 x x 3 = 0, und man kann quadratische Ergänzung machen:... ( ) ( ) x x + = 3 +

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

5 Eigenwerte und die Jordansche Normalform

5 Eigenwerte und die Jordansche Normalform Mathematik für Physiker II, SS Mittwoch 8.6 $Id: jordan.tex,v.6 /6/7 8:5:3 hk Exp hk $ 5 Eigenwerte und die Jordansche Normalform 5.4 Die Jordansche Normalform Wir hatten bereits erwähnt, dass eine n n

Mehr

Codierungstheorie, Vorlesungsskript

Codierungstheorie, Vorlesungsskript Codierungstheorie, Vorlesungsskript Irene I. Bouw Sommersemester 2014 Inhaltsverzeichnis 1 Lineare Codes 2 1.1 Einführung.............................. 2 1.2 Eigenschaften linearer Codes....................

Mehr

4.0.2 Beispiel (Einfacher Wiederholungscode). Im einfachsten Fall wird die Nachricht einfach wiederholt. D.h. man verwendet die Generatorabbildung

4.0.2 Beispiel (Einfacher Wiederholungscode). Im einfachsten Fall wird die Nachricht einfach wiederholt. D.h. man verwendet die Generatorabbildung Wir beschäftigen uns mit dem Problem, Nachrichten über einen störungsanfälligen Kanal (z.b. Internet, Satelliten, Schall, Speichermedium) zu übertragen. Wichtigste Aufgabe in diesem Zusammenhang ist es,

Mehr

Harm Pralle. Codierungstheorie WS 2005/06. Institut Computational Mathematics Technische Universität Braunschweig

Harm Pralle. Codierungstheorie WS 2005/06. Institut Computational Mathematics Technische Universität Braunschweig Harm Pralle Codierungstheorie WS 2005/06 Institut Computational Mathematics Technische Universität Braunschweig II Literatur: A. Beutelspacher und U. Rosenbaum. Projektive Geometrie. Vieweg, Wiesbaden

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Brückenkurs Mathematik TU Dresden 2015 Lineare Gleichungssysteme Schwerpunkte: Modellbildung geometrische Interpretation Lösungsmethoden Prof. Dr. F. Schuricht TU Dresden, Fachbereich Mathematik auf der

Mehr

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden bernhard.ganter@tu-dresden.de WS 2013/14 Isomorphie Zwei Graphen (V 1, E 1 ) und (V

Mehr

Ι. Einführung in die Codierungstheorie

Ι. Einführung in die Codierungstheorie 1. Allgemeines Ι. Einführung in die Codierungstheorie Codierung: Sicherung von Daten und Nachrichten gegen zufällige Fehler bei der Übertragung oder Speicherung. Ziel der Codierung: Möglichst viele bei

Mehr

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83 9.. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83 Die Grundfrage bei der Anwendung des Satzes über implizite Funktionen betrifft immer die folgende Situation: Wir haben eine Funktion f : V W und eine Stelle x

Mehr

3 Quellencodierung. 3.1 Einleitung

3 Quellencodierung. 3.1 Einleitung Source coding is what Alice uses to save money on her telephone bills. It is usually used for data compression, in other words, to make messages shorter. John Gordon 3 Quellencodierung 3. Einleitung Im

Mehr

Codierung. Codierung. EAN Europäische Artikelnummer Ziffern 1 und 2 codieren das Hersteller-Land. Ziffer 2 bis 12 codieren Händler und Ware

Codierung. Codierung. EAN Europäische Artikelnummer Ziffern 1 und 2 codieren das Hersteller-Land. Ziffer 2 bis 12 codieren Händler und Ware Codierung Codierung Haydn: Streichquartett op 54.3 aus Largo, Violine I 1 2 Ziffern 1 und 2 codieren das Hersteller-Land Ziffer 2 bis 12 codieren Händler und Ware Die letzte Ziffer ist eine Prüfziffer

Mehr

Arbeitsblatt I. 5. Welche Arten von Fehlern könnten bei der Eingabe noch auftreten?

Arbeitsblatt I. 5. Welche Arten von Fehlern könnten bei der Eingabe noch auftreten? Arbeitsblatt I 1. Sind folgende EAN gültig? a. 3956966784248 b. 3900271934004 2. Berechne händisch die Prüfziffer zu folgender Nummer: 100311409310 Tipp: Du kannst dir die Sache einfacher machen, wenn

Mehr

Lösungen zum 3. Aufgabenblatt

Lösungen zum 3. Aufgabenblatt SS, Lineare Algebra Die Lösungen wurden erstellt von: Isabel Voigt, Vanessa Lamm und Matthias Rehder Hinweis: Eine Liste der zur Bearbeitung verwendeten Literatur ist unter www.mathematiwelt.com aufrufbar.

Mehr

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5) Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff

Mehr

Prüfziffern. Man versucht, solche Fehler zu erkennen, indem man der Zahl eine weitere Ziffern, die sog. Prüfziffern, hinzufügt.

Prüfziffern. Man versucht, solche Fehler zu erkennen, indem man der Zahl eine weitere Ziffern, die sog. Prüfziffern, hinzufügt. Prüfziffern Bei der Erfassung von langen Zahlen können Fehler auftreten: Ziffern werden weggelassen oder hinzugefügt, zwei benachbarte Ziffern werden vertauscht, eine Ziffer wird falsch übernommen, usw..

Mehr

CODIERUNGSTHEORIE KURS ZELL AN DER PRAM, FEBRUAR 2005

CODIERUNGSTHEORIE KURS ZELL AN DER PRAM, FEBRUAR 2005 CODIERUNGSTHEORIE KURS ZELL AN DER PRAM, FEBRUAR 2005. Das Problem.. Quellcodierung und Datenkompression. Wir wollen eine Nachricht über einen digitalen Kanal, der nur 0 oder übertragen kann, schicken.

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

Codierungstheorie Teil 1: Fehlererkennung und -behebung

Codierungstheorie Teil 1: Fehlererkennung und -behebung Codierungstheorie Teil 1: Fehlererkennung und -behebung von Manuel Sprock 1 Einleitung Eine Codierung ist eine injektive Abbildung von Wortmengen aus einem Alphabet A in über einem Alphabet B. Jedem Wort

Mehr

Aufgaben zu Stellenwertsystemen

Aufgaben zu Stellenwertsystemen Aufgaben zu Stellenwertsystemen Aufgabe 1 a) Zähle im Dualsystem von 1 bis 16! b) Die Zahl 32 wird durch (100000) 2 dargestellt. Zähle im Dualsystem von 33 bis 48! Zähle schriftlich! Aufgabe 2 Wandle die

Mehr

Codes und Codegitter. Katharina Distler. 27. April 2015

Codes und Codegitter. Katharina Distler. 27. April 2015 Codes und Codegitter Katharina Distler 7. April 015 Inhaltsverzeichnis 1 Codes 4 Codegitter 14 Einleitung Die folgende Seminararbeit behandelt das Konzept von Codes und Codegittern. Da sie bei der Informationsübertragung

Mehr

Leitfaden Lineare Algebra: Determinanten

Leitfaden Lineare Algebra: Determinanten Leitfaden Lineare Algebra: Determinanten Die symmetrische Gruppe S n. Eine Permutation σ der Menge S ist eine bijektive Abbildung σ : S S. Ist S eine endliche Menge, so reicht es zu verlangen, dass σ injektiv

Mehr

Grundlagen Digitaler Systeme (GDS)

Grundlagen Digitaler Systeme (GDS) Grundlagen Digitaler Systeme (GDS) Prof. Dr. Sven-Hendrik Voß Sommersemester 2015 Technische Informatik (Bachelor), Semester 1 Termin 10, Donnerstag, 18.06.2015 Seite 2 Binär-Codes Grundlagen digitaler

Mehr

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,

Mehr

Technische Informatik - Eine Einführung

Technische Informatik - Eine Einführung Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Ausgabe: 2005-02-21 Abgabe: 2005-02-21 Technische Informatik - Eine

Mehr

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

Mehr

Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Mai 2011

Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Mai 2011 Rechnernetze Übung 5 Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Mai 2011 Ziel: Nachrichten fehlerfrei übertragen und ökonomisch (wenig Redundanz) übertragen Was ist der Hamming-Abstand?

Mehr

Übung zur Vorlesung. Informationstheorie und Codierung

Übung zur Vorlesung. Informationstheorie und Codierung Übung zur Vorlesung Informationstheorie und Codierung Prof. Dr. Lilia Lajmi Juni 25 Ostfalia Hochschule für angewandte Wissenschaften Hochschule Braunschweig/Wolfenbüttel Postanschrift: Salzdahlumer Str.

Mehr

klar. Um die zweite Bedingung zu zeigen, betrachte u i U i mit u i = 0. Das mittlere -Zeichen liefert s

klar. Um die zweite Bedingung zu zeigen, betrachte u i U i mit u i = 0. Das mittlere -Zeichen liefert s Nachtrag zur allgemeinen Vektorraum-Theorie. 1.5.15. Direkte Summen. Sei V ein Vektorraum, seien U 1,..., U t Unterräume, wir schreiben V = U 1 U 2 U t = t i=1 U i falls die folgenden beiden Bedingungen

Mehr

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema 2x 4 + x 3 + x + 3 div x 2 + x 1 = 2x 2 x + 3 (2x 4 + 2x 3 2x 2 ) x 3 + 2x 2 + x + 3 ( x

Mehr

Codierung, Codes (variabler Länge)

Codierung, Codes (variabler Länge) Codierung, Codes (variabler Länge) A = {a, b, c,...} eine endliche Menge von Nachrichten (Quellalphabet) B = {0, 1} das Kanalalphabet Eine (binäre) Codierung ist eine injektive Abbildung Φ : A B +, falls

Mehr

Übungen zur Vorlesung Grundlagen der Rechnernetze. Zusätzliche Übungen

Übungen zur Vorlesung Grundlagen der Rechnernetze. Zusätzliche Übungen Übungen zur Vorlesung Grundlagen der Rechnernetze Zusätzliche Übungen Hamming-Abstand d Der Hamming-Abstand d zwischen zwei Codewörtern c1 und c2 ist die Anzahl der Bits, in denen sich die beiden Codewörter

Mehr

Vorlesung Theoretische Grundlagen

Vorlesung Theoretische Grundlagen Vorlesung Theoretische Grundlagen Fehlerkorrigierende Jörn Müller-Quade 4. Februar 2010 INSTITUT FÜR KRYPTOGRAPHIE UND SICHERHEIT KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum

Mehr

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 2 Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 24/ 44 Zwei Beispiele a 0

Mehr

5.1 Drei wichtige Beweistechniken... 55 5.2 Erklärungen zu den Beweistechniken... 56

5.1 Drei wichtige Beweistechniken... 55 5.2 Erklärungen zu den Beweistechniken... 56 5 Beweistechniken Übersicht 5.1 Drei wichtige Beweistechniken................................. 55 5. Erklärungen zu den Beweistechniken............................ 56 Dieses Kapitel ist den drei wichtigsten

Mehr

Codierungsverfahren SS 2011. Reed-Solomon-Codes zur Mehrblock-Bündelfehler-Korrektur

Codierungsverfahren SS 2011. Reed-Solomon-Codes zur Mehrblock-Bündelfehler-Korrektur Reed-Solomon-Codes zur Mehrblock-Bündelfehler-Korrektur Wie die zyklischen BCH-Codes zur Mehrbitfehler-Korrektur eignen sich auch die sehr verwandten Reed-Solomon-Codes (= RS-Codes) zur Mehrbitfehler-Korrektur.

Mehr

Zusammenfassung zu Codierungstheorie

Zusammenfassung zu Codierungstheorie Zusammenfassung zu Codierungstheorie Sara Adams 5. Juli 2005 Diese Zusammenfassung basiert auf der Vorlesung Codierungstheorie gehalten im Sommersemester 2005 von Prof. Dr. Hans-Dietrich Gronau an der

Mehr

10.2 Linearkombinationen

10.2 Linearkombinationen 147 Vektorräume in R 3 Die Vektorräume in R 3 sind { } Geraden durch den Ursprung Ebenen durch den Ursprung R 3 Analog zu reellen Vektorräumen kann man komplexe Vektorräume definieren. In der Definition

Mehr

CODIERUNGSTHEORIE KURS ZELL AN DER PRAM, FEBRUAR 2005

CODIERUNGSTHEORIE KURS ZELL AN DER PRAM, FEBRUAR 2005 CODIERUNGSTHEORIE KURS ZELL AN DER PRAM, FEBRUAR 2005 1. Das Problem 1.1. Kanalcodierung und Fehlerkorrektur. Wir wollen eine Nachricht über einen digitalen Kanal, der nur 0 oder 1 übertragen kann, schicken.

Mehr

Übungen zum Ferienkurs Lineare Algebra WS 14/15

Übungen zum Ferienkurs Lineare Algebra WS 14/15 Übungen zum Ferienkurs Lineare Algebra WS 14/15 Linearkombinationen, Basen, Lineare Abbildungen 2.1 Lineare Unabhängigkeit Sind die folgenden Vektoren linear unabhängig? (a) 1, 2, 3 im Q Vektorraum R (b)

Mehr

Die Hamming-Distanz definiert eine Metrik.

Die Hamming-Distanz definiert eine Metrik. Die Hamming-Distanz definiert eine Metrik. Satz Metrik Hamming-Distanz Die Hamming-Distanz ist eine Metrik auf {0, 1} n, d.h. für alle x, y, z {0, 1} n gilt: 1 Positivität: d(x, y) 0, Gleichheit gdw x

Mehr

Lenstras Algorithmus für Faktorisierung

Lenstras Algorithmus für Faktorisierung Lenstras Algorithmus für Faktorisierung Bertil Nestorius 9 März 2010 1 Motivation Die schnelle Faktorisierung von Zahlen ist heutzutage ein sehr wichtigen Thema, zb gibt es in der Kryptographie viele weit

Mehr

WAS HEISST MODULO? MODULO. Zahlentheorie und Codierung

WAS HEISST MODULO? MODULO. Zahlentheorie und Codierung WAS HEISST MODULO? 1.Was hat das modulo-rechnen mit dem Dividieren zu tun? 2.Begründe folgende Teilbarkeitsregeln: a)eine Zahl ist genau dann durch 3 teilbar, wenn ihre Ziffernsumme durch 3 teilbar ist.

Mehr

Elemente der Analysis II

Elemente der Analysis II Elemente der Analysis II Kapitel 3: Lineare Abbildungen und Gleichungssysteme Informationen zur Vorlesung: http://www.mathematik.uni-trier.de/ wengenroth/ J. Wengenroth () 15. Mai 2009 1 / 35 3.1 Beispiel

Mehr

Algorithmen II Vorlesung am 15.11.2012

Algorithmen II Vorlesung am 15.11.2012 Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales

Mehr

Fehlererkennende und fehlerkorrigierende Codes

Fehlererkennende und fehlerkorrigierende Codes Fehlererkennende und fehlerkorrigierende Codes Claudiu-Vlad URSACHE, 5AHITN Inhalt 1. Codes... 2 2. Hammingdistanz... 3 3. Fehlererkennende Codes... 4 4. Fehlerkorrigierende Codes... 5 1. Codes a 2 a 00

Mehr

Mathematik ist überall

Mathematik ist überall Mathematik ist überall Prof. Dr. Wolfram Koepf Universität Kassel http://www.mathematik.uni-kassel.de/~koepf Tag der Mathematik 15. Februar 2008 Universität Kassel Inhaltsangabe Sichere Verschlüsselung

Mehr

3.3 Eigenwerte und Eigenräume, Diagonalisierung

3.3 Eigenwerte und Eigenräume, Diagonalisierung 3.3 Eigenwerte und Eigenräume, Diagonalisierung Definition und Lemma 3.3.1. Sei V ein K-Vektorraum, φ End K (V ), λ K. Wir defnieren den zu λ gehörigen Eigenraum von φ als Dies ist ein Unterraum von V.

Mehr

Einleitung. Kapitel 1

Einleitung. Kapitel 1 Kapitel 1 Einleitung In diesem Abschnitt geben wir einen kurzen Überblick über den Inhalt der Vorlesung. Wir werden kurz die wesentlichen Probleme erläutern, die wir ansprechen wollen. Wir werden auch

Mehr

Grundlagen der Technischen Informatik. Hamming-Codes. Kapitel 4.3

Grundlagen der Technischen Informatik. Hamming-Codes. Kapitel 4.3 Hamming-Codes Kapitel 4.3 Prof. Dr.-Ing. Jürgen Teich Lehrstuhl für Hardware-Software-Co-Design Inhalt Welche Eigenschaften müssen Codes haben, um Mehrfachfehler erkennen und sogar korrigieren zu können?

Mehr

Lineare Codes. 17.1 Linearcodes

Lineare Codes. 17.1 Linearcodes Teil IV Codes 17 Lineare Codes Lineare Codes werden in Kommunikationssystemen zur sicheren Übertragung von Nachrichten eingesetzt, etwa in der Telekommunikation und bei der Speicherung von Daten auf Compact

Mehr

u + v = v + u. u + (v + w) = (u + v) + w. 0 V + v = v + 0 V = v v + u = u + v = 0 V. t (u + v) = t u + t v, (t + s) u = t u + s u.

u + v = v + u. u + (v + w) = (u + v) + w. 0 V + v = v + 0 V = v v + u = u + v = 0 V. t (u + v) = t u + t v, (t + s) u = t u + s u. Universität Stuttgart Fachbereich Mathematik Prof. Dr. C. Hesse PD Dr. P. H. Lesky Dipl. Math. D. Zimmermann Msc. J. Köllner FAQ 3 Höhere Mathematik I 4..03 el, kyb, mecha, phys Vektorräume Vektorräume

Mehr

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016 und Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016 25. April 2016 Die Dimensionsformel Definition 3.9 Sei f : V W eine lineare Abbildung zwischen zwei K-Vektorräumen. Der Kern

Mehr

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen Austausch- bzw. Übergangsrozesse und Gleichgewichtsverteilungen Wir betrachten ein System mit verschiedenen Zuständen, zwischen denen ein Austausch stattfinden kann. Etwa soziale Schichten in einer Gesellschaft:

Mehr

KANALCODIERUNG AUFGABEN. Aufgabe 1. Aufgabe 2

KANALCODIERUNG AUFGABEN. Aufgabe 1. Aufgabe 2 AUFGABEN KANALCODIERUNG Aufgabe Wir betrachten den Hamming-Code mit m = 5 Prüfbits. a) Wie gross ist die Blocklänge n dieses Codes? b) Wie viele gültige Codewörter umfasst dieser Code? c) Leiten Sie die

Mehr

5. Woche Perfekte und Optimale Codes, Schranken. 5. Woche: Perfekte und Optimale Codes, Schranken 88/ 142

5. Woche Perfekte und Optimale Codes, Schranken. 5. Woche: Perfekte und Optimale Codes, Schranken 88/ 142 5 Woche Perfekte und Optimale Codes, Schranken 5 Woche: Perfekte und Optimale Codes, Schranken 88/ 142 Packradius eines Codes (Wiederholung) Definition Packradius eines Codes Sei C ein (n, M, d)-code Der

Mehr

Erinnerung/Zusammenfassung zu Abbildungsmatrizen

Erinnerung/Zusammenfassung zu Abbildungsmatrizen Erinnerung/Zusammenfassung zu Abbildungsmatrizen Thomas Coutandin (cthomas@student.ethz.ch) 7. November 2 Abbildungsmatrizen Im Folgenden betrachten wir stets endlich dimensionale K-Vektorräume (K irgend

Mehr

Einführung in die Vektor- und Matrizenrechnung. Matrizen

Einführung in die Vektor- und Matrizenrechnung. Matrizen Einführung in die Vektor- und Matrizenrechnung Matrizen Definition einer Matrix Unter einer (reellen) m x n Matrix A versteht man ein rechteckiges Schema aus reellen Zahlen, die wie folgt angeordnet sind:

Mehr

Mathematik für Informatiker II. Beispiellösungen zur Probeklausur. Aufgabe 1. Aufgabe 2 (5+5 Punkte) Christoph Eisinger Sommersemester 2011

Mathematik für Informatiker II. Beispiellösungen zur Probeklausur. Aufgabe 1. Aufgabe 2 (5+5 Punkte) Christoph Eisinger Sommersemester 2011 Mathematik für Informatiker II Christoph Eisinger Sommersemester 211 Beispiellösungen zur Probeklausur Aufgabe 1 Gegeben sind die Polynome f, g, h K[x]. Zu zeigen: Es gibt genau dann Polynome h 1 und h

Mehr

15 Optimales Kodieren

15 Optimales Kodieren 15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen

Mehr

Absolute Stetigkeit von Maßen

Absolute Stetigkeit von Maßen Absolute Stetigkeit von Maßen Definition. Seien µ und ν Maße auf (X, Ω). Dann heißt ν absolut stetig bezüglich µ (kurz ν µ ), wenn für alle A Ω mit µ(a) = 0 auch gilt dass ν(a) = 0. Lemma. Sei ν ein endliches

Mehr

Bin Packing oder Wie bekomme ich die Klamotten in die Kisten?

Bin Packing oder Wie bekomme ich die Klamotten in die Kisten? Bin Packing oder Wie bekomme ich die Klamotten in die Kisten? Ich habe diesen Sommer mein Abi gemacht und möchte zum Herbst mit dem Studium beginnen Informatik natürlich! Da es in meinem kleinen Ort keine

Mehr

Zusammenfassung zu Codierungstheorie

Zusammenfassung zu Codierungstheorie Zusammenfassung zu Codierungstheorie Proseminar Mathematische Modelle in den Naturwissenschaften WS 09/10 Thomas Holzer 0755600 Sandra Sampl 0755049 Kathrin Oberradter 0755123 1 Inhaltsverzeichnis 1. Einführung

Mehr

3 Codierung ... 3.3 Code-Sicherung. 3.3.1 Stellendistanz und Hamming-Distanz. 60 3 Codierung

3 Codierung ... 3.3 Code-Sicherung. 3.3.1 Stellendistanz und Hamming-Distanz. 60 3 Codierung 60 3 Codierung 3 Codierung... 3.3 Code-Sicherung Oft wählt man absichtlich eine redundante Codierung, so dass sich die Code-Wörter zweier Zeichen (Nutzwörter) durch möglichst viele binäre Stellen von allen

Mehr

Codierungstheorie. Code-Arten und Code-Sicherung

Codierungstheorie. Code-Arten und Code-Sicherung Codierungstheorie Code-Arten und Code-Sicherung Inhaltsübersicht und Literatur Informationstheorie Was ist eine Codierung? Arten von Codes Informationsgehalt und Entropie Shannon'sches Codierungstheorem

Mehr

Wann sind Codes eindeutig entschlüsselbar?

Wann sind Codes eindeutig entschlüsselbar? Wann sind Codes eindeutig entschlüsselbar? Definition Suffix Sei C ein Code. Ein Folge s {0, 1} heißt Suffix in C falls 1 c i, c j C : c i = c j s oder 2 c C und einen Suffix s in C: s = cs oder 3 c C

Mehr

Technische Informatik - Eine Einführung

Technische Informatik - Eine Einführung Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Technische Informatik - Eine Einführung Darstellung von Zeichen und

Mehr

Bestimmung einer ersten

Bestimmung einer ersten Kapitel 6 Bestimmung einer ersten zulässigen Basislösung Ein Problem, was man für die Durchführung der Simplexmethode lösen muss, ist die Bestimmung einer ersten zulässigen Basislösung. Wie gut das geht,

Mehr

Der Golay-Code und das Leech-Gitter

Der Golay-Code und das Leech-Gitter Der Golay-Code und das Leech-Gitter Vortrag zum Seminar Gitter und Codes Nils Malte Pawelzik.5.5 Inhaltsverzeichnis Designs 3. Elementare Eigenschaften eines Designs und die Eindeutigkeit eines - (, 5,

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr