Zusammenfassung zu Codierungstheorie



Ähnliche Dokumente
Einführung in die Kodierungstheorie

Theoretische Grundlagen der Informatik WS 09/10

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

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

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

Primzahlen und RSA-Verschlüsselung

Grundlagen der Technischen Informatik. 2. Übung

3 Der Hamming-Code. Hamming-Codes

7 Rechnen mit Polynomen

Grundbegriffe der Informatik

Der Zwei-Quadrate-Satz von Fermat

0, v 6 = , v 4 = span(v 1, v 5, v 6 ) = span(v 1, v 2, v 3, v 4, v 5, v 6 ) 4. span(v 1, v 2, v 4 ) = span(v 2, v 3, v 5, v 6 )

Codierungstheorie Rudolf Scharlau, SoSe

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Fachschaft Mathematik und Informatik (FIM) LA I VORKURS. Herbstsemester gehalten von Harald Baum

Zeichen bei Zahlen entschlüsseln

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

6.2 Perfekte Sicherheit

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

11. Das RSA Verfahren und andere Verfahren

Professionelle Seminare im Bereich MS-Office

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

3. Zusammenhang. 22 Andreas Gathmann

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

1 Mathematische Grundlagen

Eigenwerte und Eigenvektoren von Matrizen

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

Erinnerung/Zusammenfassung zu Abbildungsmatrizen

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

A1.7: Entropie natürlicher Texte

Definition 27 Affiner Raum über Vektorraum V

Einführung in die Algebra

Musterlösungen zur Linearen Algebra II Blatt 5

Lineare Gleichungssysteme

Grundlagen Digitaler Systeme (GDS)

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

Lineare Gleichungssysteme

Matrizennorm. Definition 1. Sei A M r,s (R). Dann heißt A := sup die Matrixnorm. Wir wissen zunächst nicht, ob A eine reelle Zahl ist.

Kapitel 15. Lösung linearer Gleichungssysteme

Einführung in die Vektor- und Matrizenrechnung. Matrizen

Rekursionen. Georg Anegg 25. November Methoden und Techniken an Beispielen erklärt

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

Algorithmische Kryptographie

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Einfache kryptographische Verfahren

Expander Graphen und Ihre Anwendungen

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

7 Die Determinante einer Matrix

Anmerkungen zur Übergangsprüfung

CODIERUNGSTHEORIE KURS ZELL AN DER PRAM, FEBRUAR 2005

6 Fehlerkorrigierende Codes

Das Briefträgerproblem

1 Aussagenlogik und Mengenlehre

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

WS 2008/09. Diskrete Strukturen

4. Übungsblatt Matrikelnr.:

ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

Was ist Sozial-Raum-Orientierung?

BONUS MALUS SYSTEME UND MARKOV KETTEN

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

3.3 Eigenwerte und Eigenräume, Diagonalisierung

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x y = x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775,

15 Optimales Kodieren

Lösungen zum 3. Aufgabenblatt

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

Registrierung am Elterninformationssysytem: ClaXss Infoline

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

Übungen zum Ferienkurs Lineare Algebra WS 14/15

Programmiersprachen und Übersetzer

Wie löst man Mathematikaufgaben?

Beispiel Zusammengesetzte Zufallsvariablen

Berechnungen in Access Teil I

6.2 Scan-Konvertierung (Scan Conversion)

Was meinen die Leute eigentlich mit: Grexit?

4. Mathematik Olympiade 2. Stufe (Kreisolympiade) Klasse 8 Saison 1964/1965 Aufgaben und Lösungen

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

Theoretische Grundlagen der Informatik

Zahlen und das Hüten von Geheimnissen (G. Wiese, 23. April 2009)

Repetitionsaufgaben Wurzelgleichungen

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

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

Umstellung des Schlüsselpaares der Elektronischen Unterschrift von A003 (768 Bit) auf A004 (1024 Bit)

Urlaubsregel in David

YouTube: Video-Untertitel übersetzen

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Wir gehen aus von euklidischen Anschauungsraum bzw. von der euklidischen Zeichenebene. Parallele Geraden schneiden einander nicht.

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

3. LINEARE GLEICHUNGSSYSTEME

Also kann nur A ist roter Südler und B ist grüner Nordler gelten.

a n auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert:

Grundlagen der Theoretischen Informatik, SoSe 2008

Teil III: Routing - Inhalt I. Literatur. Geometric Routing. Voraussetzungen. Unit Disk Graph (UDG) Geometric Routing 29

Info zum Zusammenhang von Auflösung und Genauigkeit

Lineare Gleichungssysteme

2. Negative Dualzahlen darstellen

Absolute Stetigkeit von Maßen

Programmierkurs Java

1 topologisches Sortieren

Transkript:

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 1.1. Das Problem der Codierungstheorie 1.2. Grundlagen 1.3. Hamming- Distanz und Gewicht 2. Lineare Codes 2.1. Einführung linearer Codes 2.2. Duale Codes 3. Pseudorationale Codes 3.1. Gewichtsverteilung pseudorationaler Codes 4. Perfekte Codes 4.1. Hamming Codes 5. Hadamard Matrizen 2

GRUNDLAGEN Die Codierungstheorie befasst sich mit der Übertragung von Information über fehlerbehaftete Kanäle und ist ein Teilgebiet der Informationstheorie. Die Informationstheorie beschäftigt sich mit dem Messen von Information der Darstellung von Information und der Leistungsfähigkeit von Kommunikationssystemen bei der Informationsübertragung und -verarbeitung. Ein weiteres wichtiges Gebiet der Informationstheorie ist die Kryptographie, das oft mit Codierungstheorie verwechselt wird. Die Kryptographie behandelt Methoden und Verfahren zur Realisierung eines vertraulichen Austausches von Information über einen offenen nicht abhörsicheren Kanal. 1.1. Das Problem der Codierungstheorie Die Codierungstheorie ist eine junge mathematische Theorie und ist in den 40er Jahren entstanden. Ihre Problemstellung stammt aus der Nachrichtenübermittlung: Das Übertragen von (binären) Informationen über Telefonleitungen, Funk oder Satelliten verläuft oft nicht ungestört. Weil diese Informationen durch äußere Einflüsse wie beispielsweise schlechtes Wetter und Blitzeinschläge möglicherweise zerstört bzw. verändert werden. Ebenfalls fehleranfällig ist das Auslesen von Speichermedien, da viele Bits durch hohe Auslesegeschwindigkeit oder auch diversen Verunreinigungen der Disketten verloren gehen können. Abhilfe dagegen verschafft man sich durch Einbau von Redundanzen, die ein oder mehrere Fehler auffangen können. Eine Möglichkeit wäre, den Text zum Beispiel mehrfach hintereinander zu senden, damit der Empfänger durch Vergleich der einzelnen Versionen auf die ursprüngliche schließen kann. Das Erweitern der Information mit Redundanzen nennt man Codierung, die Rückübersetzung der empfangenen Nachricht in den Klartext Decodierung. Beispielsweise kann man jedem Buchstaben des deutschen Alphabets einen binären 5- Tupel zuordnen A -> 00000,B -> 00001,C -> 00010,.... Beim Hinzufügen eines sechsten Bit als Quersumme, lässt sich beim Empfang überprüfen, ob während der Übertragung ein Bit des Buchstabens verändert wurde. Es bezeichne A ein Alphabet, das wir ohne Einschränkung als Teilmenge eines endlichen Körpers betrachten können. Die k-tupel (a1,..., ak) von Buchstaben aus A nennen wir Codewörter oder Blöcke, die Menge aller Codewörter bezeichnen wir mit B Ein Code oder Codierer der Länge n ist eine injektive Abbildung von B auf C = C(B) 3

Wir werden einen Code C je nach Bedarf als injektive Abbildung oder als Bildmenge dieser betrachten. Zu jedem Code gibt es einen Decodierer mit 1.2 Grundlagen Definition 1.3 Ein Code der Länge n über dem Alphabet ist eine Menge von n-tupeln aus. Meist benutzen wir und dann sagt man, C ist ein Code über q. Codes über 2 und 3 heißen binäre und ternäre Codes. Beispiel 1.4 1. Die Deutsche Sprache. Ein erstes Beispiel Laut einer Sutide an eeinr enhsegciln Utvriesänit ist es egal, in wlhecer Rloheegifne die Buctbeashn in eniem Wrot snid. Das eizing Wtchigie ist, dsas der etsre und der lettze Btasbhcue am rtgihcein Pltaz snid. Der Rset knan toatl decaindnurher sien, und man kann es iemmr ncoh onhe Plroembe lesen. Das legit daarn, dass wir nchit jeedn Bhubcsetan aellin leesn, serondn das Wrot als Gnezas. Ein zweites Beispiel Ex wax eixmal exn kxeinex süxes xädcxen, dxs hxtte jxdexmanx lxeb, dex sxe xur axsah, ax alxerlxebstxn abxr ihrx xro_mxttex, dix wx_te gax nixht, wxs six axles dxm Kxnde gxben sxlltx. Eixmal xchenxte sxe xhm xin Kxppchex vox rotxm Sxmt, uxd wexl ixm dax so wxhl staxd, uxd ex nxchtx anxers mexr trxgen xollte, xie_ ex nur xas Rxtkäpxchen. 2. Ein Code C mit M Wörtern der Länge n kann als (M x n)-matrix geschrieben werden, deren Zeilen die Codewörter sind. Zum Beispiel ist der binäre Repetitionscode der Länge 3 dargestellt durch 3. Sei ein binärer Code der Länge 2. Wir fügen redundante Information hinzu, um Fehler aufdecken zu können: 4

ist 1-Fehler erkennend, da der erhaltene Vektor kein Codewort ist, wenn ein Fehler auftritt. Zum Korrigieren eines Fehlers brauchen wir mehr Information: ist 1-Fehler korrigierend. Er deckt außerdem zwei Fehler auf. Ist ein Code C eine Teilmenge eines Vektorraums V, so benutzen wir eine Abstandsfunktion in V zum Aufdecken und Korrigieren von Fehlern. Haben je zwei Codewörter den Abstand 2t + 1, so wird ein empfangener Vektor im Abstand t von einem Codewort als dies Codewort decodiert. Sonst wird um Wiederholung der Übertragung gebeten. Dies nennt man Minimaldistanzdecodierung oder Hamming- Decodierung. Sie maximiert die Wahrscheinlichkeit, Fehler zu korrigieren, falls der Kanal folgende Eigenschaften hat: Jedes Symbol hat dieselbe Wahrscheinlichkeit p, geändert zu werden. Wird ein Symbol verändert, so ist die Wahrscheinlichkeit für jeden der q-1 Fehler gleich groß. Beispiel 1.5 Sei C der binäre Repetitionscode der Länge 3. Das Codewort (0; 0; 0) werde über einen binären symmetrischen Kanal mit Symbolfehlerwahrscheinlichkeit p geschickt. Die Vektoren (0; 0; 0), (0; 0; 1), (0; 1; 0) und (1; 0; 0) werden als (0; 0; 0) decodiert. Also ist die Wortfehlerwahrscheinlichkeit von C gleich 1.3. Hamming-Distanz und Gewicht Definition 1.6 Die Hamming-Distanz d(x; y) zwischen zwei Vektoren x = (x1,.., xn), y =(y1,., yn) ist die Anzahl der Man definiert die Minimaldistanz von C als Lemma 1.7 Die Hamming-Distanz ist eine Metrik. Beweis. d(x; y) ist die Minimalzahl der Änderungen von Koordinaten, die man an x vornehmen muss, um y zu erhalten. Ändert man x erst zu z und dann z zu y, so sind dies mindestens so viele Schritte wie bei der direkten Änderung von x zu y. Satz 1.8 Es sei C ein Code. Dann gilt: (i) Ist d(c) t + 1, dann deckt C bis zu t Fehler in einem Wort auf. 5

(ii) Ist d(c) 2t + 1, dann korrigiert C bis zu t Fehler in einem Wort. Beweis. Es seien x der gesendete und y der empfangene Vektor. (i) Wegen d(x,y) t d(c) kann y kein gültiges Codewort sein, falls ein Fehler passiert ist, somit wird jeder Fehler t erkannt. (ii) d(x,y) t, dann gilt für alle anderen Codewörter d(x,z) 2t + 1 t = t + 1 > t d(x,y) y kann richtig zu x zugeordnet werden. (iii) Wegen d(x,y) d(c) e 1 d(c) - e kann y nicht im Fehlerkorrekturradius um ein anderes Codewort als x sein y wird zu x korrigiert, falls d(x,y) e, sonst Fehlermeldung. Bemerkung 1.9 Der Fehlerkorrekturradius ist im Bereich 0,...emax frei wählbar und hat großen Einfluss auf das Fehlererkennungsverhalten. So kann man zb: bei einem Code mit d(c)=5 2 Fehler korrigieren, allerdings werden dann schon 3 Fehler falsch korrigiert. Man kann aber auch keine Fehler korrigieren, dafür aber bis zu 4 Fehler erkennen. (Und falls möglich, durch den Informationskanal neu anfordern) Definition 1.10 Ist C ein Code der Länge n mit M Wörtern und Minimaldistanz d, dann wird C als (n,m,d)-code bezeichnet. Definition 1.11 Für x = (x1,., xn) ist das Gewicht w(x) die Anzahl der Elemente 0 in (x1,. xn). Lemma 1.12 Beispiel 1.8 (Beispiel 1.4 fortgesetzt) 2. Lineare Codes 2.1. Einführung linearer Codes Allgemeine Codes C sind meist unübersichtlich und im Allgemeinen schwierig zu codieren bzw. zu decodieren. Besser wird es mit einer zusätzlichen Vektorraumstruktur. Definition 2.1. (Linearer Code, Gewicht von Codewörtern) Einen Code C nennen wir linear, falls C ein Untervektorraum von ist. Lineare Codes in der Dimension k bezeichnen wir als [n, k] q Code bzw. als [n, k, d] q Code, wenn d die Minimaldistanz des Codes ist. Für ein Codewort x heißt die natürliche Zahl C 6

das Gewicht (bzw. die Hamming-Norm) von x. Bemerkung 2.2. Für einen linearen Code C gelten: (a) Der Hamming-Abstand zweier Codewörter x, y aus C ist identisch mit dem Gewicht ihrer Differenz, d.h. es gilt d(x, y) = w(x y). (b) Die Minimaldistanz von C entspricht den minimalem Gewicht nichtverschwindender Codewörter aus C, d.h. es ist d(c) = min{w(x) : 0 x C}. Beweis. Man beachte, dass lineare Codes stets die Differenz ihrer Codewörter sowie auch das Nullwort 0 = (0,..., 0) enthalten. Daher folgen die Aussagen (a) und (b) aus d(x, y) = d(x y, 0) = w(x y) für x, y C. Als Codierer eines linearen Codes dient die sogenannte Erzeugermatrix. Dazu die Definition 2.4. (Erzeugermatrix, Symmetriegruppe) Es sei C ein [n, k] q Code mit Basis x 1 = (x 11,..., x 1n ), x 2,..., x k heißt die k n Matrix. Dann eine Erzeuger- bzw. eine Generatormatrix von C. Eine Erzeugermatrix G von C nennen wir reduziert, falls G die Gestalt mit hat. Dann sagen wir auch, dass G in Standardform vorliegt. Zwei Codes C, aus heißen äquivalent, wenn es eine Permutation von n Elementen gibt, sodass gilt: Ist C =, so nennen wir eine Symmetrie von C. Die Menge aller Symmetrien des Codes C Sym(C):= { S n : ist Symmetrie von C} heißt Symmetriegruppe von C. Anmerkung 2.5 (a) Betrachtet man eine Erzeugermatrix G eines Codes C als lineare Abbildung von, so ist C das Bild von unter G, d.h es gilt 7

Offensichtlich ist G injektiv und dient somit als Codierer von C. (b) Ist G in Standardform, so bilden die ersten k Koordinaten x 1,..., x k eines Codewortes x die Informationssymbole (information symbols) und die letzten n-k Koordinaten x k+1,..., x n die Kontrollsymbole (parity check symbols) von x. Bemerkung 2.6. Zu jedem linearen Code gibt es einen äquivalenten Code mit reduzierter Erzeugermatrix. 3. Pseudorationale Codes 3.1. Gewichtsverteilung pseudorationaler Codes Die einfachste obere Schranke für die Distanz eines Codes ist die Singleton-Schranke. Satz 3.1. (Singleton - Schranke) Für einen Code C über der Länge n und Minimaldistanz d gelten: (a) Die Anzahl der Codewörter ist durch beschränkt. (b) Ist C ein linearer Code der Dimension k, so gilt die Abschätzung 8

Beweis: Zum Beweis genügt die Feststellung, dass sich zwei Codewörter aus C notwendigerweise schon in den ersten n-(d-1) Komponenten unterscheiden. Also ist die Anzahl aller Codewörter durch beschränkt. Definition 3.2. (Pseudorationaler Code, Singletondefekt) Ein Code C heißt pseudorational, falls die Anzahl seiner Codewörter die Singleton- Schranke annimmt oder C = {0} gilt. Es gilt dann c = qn d+1 für einen (n, c, d) q Code C {0} bzw. d = n k + 1, falls C linear mit den Parametern [n, k, d] q ist. Pseudorationale Codes heißen auch MDS Codes (= maximum distance separable). Bei einem linearen Code C nennen wir die Differenz zwischen n k+1 und d Singletondefekt oder auch Pseudogeschlecht von C. Beispiel und Definiton 3.3. Die Singleton-Schranke ist für alle Codewortlängen n scharf. Die n-fachen Wiederholungscodes, die Parity-Check-Codes sowie der gesamte Raum geben Beispiele für pseudorationale Codes (vgl. 2.7). Zusammen mit dem Nullcode {0} nennen wir diese Typen von Codes, d.h. pseudorationale Codes der Länge n und Dimension 0, 1, n 1 oder n, auch triviale Codes. Beispiel 3.4. Für die Konstruktion eines nichttrivialen pseudorationalen Code der Länge q + 2 betrachten wir den Fall q = 4. Es sei = {0, 1, a, b}. Die Matrix ist dann Erzeugermatrix eines [6, 3, 4] 4 bzw. Kontrollmatrix eines [6, 4, 3] 4 Codes, da jeweils drei Spalten der Matrix linear unabhängig sind. Dieser Code wird auch Hexacode genannt. 3.2 Reed-Solomon-Codes Die Klasse der Reed-Solomon-Codes ist die wichtigste und meistverwandte Klasse von (pseudorationalen) Codes. Zum Beispiel werden diese Codes in variierter Form als sogenannte CIRC - Codes bei Audio und Compact Discs verwendet. Definition 3.5. (Reed-Solomon-Code) 9

Bemerkung 3.6 (Parameter und Erzeugermatrix von 10

4. Perfekte Codes 4.1. Hamming-Codes Definition 4.1. (Perfekter Code) Ein Code C mit ungerader Minimaldistanz d(c) = 2e(C) + 1 heißt perfekt, falls es zu jedem Element y genau ein Codewort x C mit Abstand d(x, y) e(c) gibt. Für y definiert eine Kugel vom Radius r um y. Einfache Beispiele perfekter Codes liefern die binären n-fachen Wiederholungscodes mit ungerader Länge n = 2m + 1. Solche [n, 1, n]2 Codes besitzen den Fehlerkorrekturparameter m. Definition 4.2. (Hamming-Code) Es seien k > 1 eine natürliche Zahl und. Ein linearer [n, n k] q Code C heißt Hamming-Code Ham[n, n k] q, falls d(c)=3 ist. 11

#C=q^(n-k) -> Hamming-Code ist perfekter Code 5. Hadamard-Matrizen Hadamard Matrizen dienen der Erzeugung von Hamming Codes. Definition 5.1 Eine Hadamard-Matrix der Ordnung n ist eine nxn-matrix H= (h i,j ) mit den Einträgen +1 und -1. Außerdem muss gelten: (wobei I n die nxn Einheitsmatrix bezeichnet) (Orthogonalität bis auf n) Beispiele für Hadamard-Matrizen Diese Beispiele sind die kleinstmöglichen Ordnungen, denn es gilt: Satz 5.2 Es sei n>2. Existiert eine nxn Hadamard-Matrix, so ist n durch 4 teilbar. Beweis Wenn meine eine Zeile oder eine Spalte einer Hadamard-Matrix mit -1 multipliziert, so erhält man eine neue Hadamard-Matrix. Deshalb kann man davon ausgehen, dass die erste Zeile einer Hadamard-Matrix nur 1en enthält. Somit hat die zweite Zeile (nach evtl. Permutation der Spalten) die Form Es gilt a+b = n (wegen n Spalten der Matrix) und a-b = 0 (weil Skalarprodukt der ersten und zweiten Zeile ist a-b). Daraus folgt a=b= n/2, dh. die Einträge 1 und -1 in der zweiten (sowie in jeder weiteren Zeile) gleich oft auf. Die dritte Zeile hat dann die Form (evtl. nach Permutation von ersten n/2 bzw. zweiten n/2 Spalten): Da diese orthogonal zur ersten Zeile steht, folgt daraus x+y = n/2. Aus der Orthogonalität zur zweiten Zeile folgt: x+(n/2-y)=n/2. 12

Beides zusammen ergibt x=y=n/4. Somit ist n/4 eine ganze Zahl, dh n ist durch 4 teilbar. Konstruktion 5.3 Es gibt viele verschiedene Methoden, konstruktiv Hadamard-Matrizen zu finden. Hier sind 2 davon: Konstruktion nach Sylvester 5.4 Diese Methode geht auf den engl. Mathematiker James J. Sylvester zurück. Wenn H n eine Hadamard-Matrix ist mit Grad n, dann lässt sich eine Hadamard-Matrix vom Grad 2n wie folgt konstruieren: Das kann man wie folgt nachrechnen: Bsp: Walsh-Matrizen 5.4.1 Somit ergibt sich z.b. folgende Folge von Matrizen, die nach dem Mathematiker Joseph Leonard Walsh benannten Walsh-Matrizen: Walsh-Matrizen sind normalisierte Hadamard-Matrizen vom Grad 2 k. Konstruktion über das Legendre-Symbol 5.5 Man definiert sich bei dieser Konstruktion eine Matrix Q=(q ij ) (=Jacobsthal-Matrix) vom Grad p (wobei p eine Primzahl ist) mit Hilfe des Legendre-Symbols (a/p): Ist nun p=4k-1 mit, so gilt: und: 13

wobei J eine Matrix ist, mit lauter Einträgen 1. Nun konstruieren wir die Hadamard-Matrix vom grad p+1: Man kann nachrechnen, dass dies ebenfalls eine Hadamard-Matrix ist (mit, Diese so konstruierten Matrizen heißen Hadamard-Matrizen vom Paley-Typ, benannt nach dem englischen Mathematiker Raymond E.A.C. Paley. Beispiel 5.6 p=3: H 4 = H 4 * H 4 T = Hadamard-Code 5.7 Wir nehmen eine (4n)x(4n) Hadamard-Matrix. Die erste Zeile und erste Spalte dieser Matrix enthalte nur Einsen, wie z.b.: Nun streichen wir die erste Spalte und ersetzen jede -1 durch 0. Die Zeilen der Matrix, die dabei entsteht, bilden die Codewörter eines (4n-1,4n,2n)-Codes. 14

Im Beispiel erhalten wir die 8 Codewörter (1111111),(0101010),(1001100),(0011001), (1110000),(0100101),(100011) und (0010110). Dies ist ein (7,8,4)-Code. Nehmen wir noch die 8 Komplemente der Codewörter hinzu, erhalten wir einen (7,16,2)- Code. Bis auf die Reihenfolge der Koordinaten stimmt dieser Code mit dem [7,4]- Hamming-Code überein. Als Codewörter erhalten wir somit: C=(11111111), (10101010), (11001100), (10011001), (11110000), (10100101), (11000011), (10010110), (00000000), (01010101), (00110011), (01100110), (00001111), (01011010), (00111100), (01101001) Also: Bei einer Hadamard-Matrix vom Rang 8 = 2^3 erhalten wir 16 = 2^4 Codewörter der Länge 8. Die einzelnen Codewörter unterscheiden sich an jeweils 4 Stellen. Der Hamming-Abstand beträgt also 4. Unser Code kann also höchstens 2^1-1 = 1 Fehler korrigieren. 15

Quellen: (bzw. Zitate) Wolfgang Willems, Codierungstheorie, de Gruyter, 1999 Ralph-Hardo Schulz, Codierungstheorie: Eine Einführung, Vieweg, 2003. J. H. van Lint. Introduction to Coding Theory. Springer GTM 86 (1999). W. Willems. Codierungstheorie. Walter de Gruyter (1999). Klein Andreas. Visuelle Kryptographie. Springer (2007) http://de.wikipedia.org/wiki/code http://de.wikipedia.org/wiki/kodierungstheorie http://www.ricam.oeaw.ac.at/people/page/winterhof/coding.pdf http://www-dm.informatik.unituebingen.de/skripte/codierungstheorie/codierungstheoriews0506.pdf http://einstein.informatik.uni-oldenburg.de/rechnernetze/hamming-.htm http://www.spotlight.de/zforen/ccc/m/ccc-1163619990-19896.html www.quixquax.at 16