Informationstheorie und Codierung

Ähnliche Dokumente
Zyklische Codes Rechnernetze Übung SS2010

Formelsammlung Kanalcodierung

Rechnernetze Übung 5. Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Mai Wo sind wir?

Codierungstheorie Teil 1: Fehlererkennung und -behebung

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

Gegeben ist ein systematischer (7,3)-Cod. Die drei seiner Codewörter lauten:

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

Themen. Sicherungsschicht. Rahmenbildung. Häufig bereitgestellte Dienste. Fehlererkennung. Stefan Szalowski Rechnernetze Sicherungsschicht

Fehlererkennung. Fehlererkennung

Übung 14: Block-Codierung

Grundlagen der Technischen Informatik. Hamming-Codes. Kapitel 4.3

Codierung zur Fehlerkorrektur und Fehlererkennung

Klausur Informationstheorie und Codierung

Einführung in die Codierungstheorie

Dekohärenz und Grundprinzip der Quantenfehlerkorrektur

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

Zyklische Codes & CRC

Die Mathematik in der CD

Fehlerschutz durch Hamming-Codierung

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

Einführung in die Kodierungstheorie

Index. Chien-Suche, 220 CIRC, 234 Code, 2, 9 äquidistanter, 81

Error detection and correction

Nachrichtentechnik 4 3 Kanalcodierung in der Nachrichtenübertragung

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

Empfänger. Sender. Fehlererkennung und ggf. Fehlerkorrektur durch redundante Informationen. Längssicherung durch Paritätsbildung (Blockweise)

Angewandte Informationstechnik

Technische Informatik - Eine Einführung

KANALCODIERUNG AUFGABEN. Aufgabe 1. Aufgabe 2

Einführung in die Codierungstheorie

Fehlerkorrektur. Gliederung Kanalstörungen Einfache Verfahren Hamming-Abstand Technische Schaltungen Binäre Arithmetik Matrizenrechnung Typische Codes

Grundlagen der Technischen Informatik. 2. Übung

Codes (6) Fehlererkennende (EDC) bzw. fehlerkorrigierende Codes (ECC)

Fehlererkennung und -behandlung. Paritätsverfahren

Fehlerkorrektur. Einzelfehler besitze die Wahrscheinlichkeit p. Es gelte Unabhängigkeit der Fehlereinflüsse Für ein Wort der Länge n gelte noch:

Grundlagen der Technischen Informatik. Codierung und Fehlerkorrektur. Kapitel 4.2

Grundlagen der Technischen Informatik. Codierung und Fehlerkorrektur. Kapitel 4.2. Codewörter. Codewörter. Strukturierte Codes

Grundlagen Digitaler Systeme (GDS)

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

2. Tutorium Digitaltechnik und Entwurfsverfahren

CODIERUNGSTHEORIE KURS ZELL AN DER PRAM, FEBRUAR 2005

31 Polynomringe Motivation Definition: Polynomringe

Informationstheorie und Codierung. Prof. Dr.-Ing. Lilia Lajmi

Single Parity check Codes (1)

Endliche Körper. Seminar Graphentheorie und Diskrete Mathematik Referent: Steffen Lohrke ii5105 SS 2005

Modul Diskrete Mathematik WiSe 2011/12

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

Vorlesung Theoretische Grundlagen Fehlerkorrigierende Codes Jörn Müller-Quade 29. Januar 2013

in der Mathematik-Ausbildung

Informationstheorie und Codierung

Fehlererkennende und fehlerkorrigierende Codes

Fehlererkennung und Fehlerkorrektur in Codes

Einführung in die Informations- und Codierungstheorie

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

Grundbegrie der Codierungstheorie

Kapitel 3 Kanalcodierung

Vortrag: Prüfzeichencodierung. Michael Gläser

3 Der Hamming-Code. Hamming-Codes

Information und Codierung

Ein (7,4)-Code-Beispiel

Diskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 4: Zahlentheorie

Theoretische Grundlagen der Informatik WS 09/10

Übungen zur Vorlesung Diskrete Strukturen

6 Fehlerkorrigierende Codes

Zusammenfassung ICTh Informations- und Codierungstheorie

Übungsblatt Nr. 7. Lösungsvorschlag

Fehlerkorrigierende Codes

Matrizen, Gaußscher Algorithmus 1 Bestimmung der inversen Matrix

Übung zu Drahtlose Kommunikation. 1. Übung

Die Hamming-Distanz definiert eine Metrik.

Algebraische Codierungstheorie

, 2016W Übungstermin: Fr.,

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

Endliche Körper Seminar: Diskrete Mathematik Leitung: Prof. Dr. Rainer Lang Von: Steffen Lohrke (ii5105) SS2005

Ι. Einführung in die Codierungstheorie

(Prüfungs-)Aufgaben zur Codierungstheorie

13. Algorithmus der Woche Fehlererkennende Codes Was ist eigentlich ISBN?

Satz. Wie wirkt sich ein Basiswechsel auf die Darstellungsmatrix einer linearen Abbildung F : V n V n aus?

Kongruenz modulo g definiert auf K[x] eine Äquivalenzrelation g : h g f h f ist durch g teilbar, und [f] g ist die Äquivalenzklasse von f.

WS 2009/10. Diskrete Strukturen

Übung zur Vorlesung. Informationstheorie und Codierung

Übung 4: Physical layer and limits

II. CODIERUNGSTHEORIE

6. Lösungsblatt

Die Begriffe analog und digital stammen aus der Rechentechnik:

Übung zu Drahtlose Kommunikation. 7. Übung

Zahlensysteme und ihre Anwendung

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

Erzeugendensystem und Basis

Outline. 1 Vektoren im Raum. 2 Komponenten und Koordinaten. 3 Skalarprodukt. 4 Vektorprodukt. 5 Analytische Geometrie. 6 Lineare Räume, Gruppentheorie

Theorie der Programmiersprachen

Transkript:

Informationstheorie und Codierung 5. Fehlerkorrigierende Codierung Grundlagen Fehlererkennung, Fehlerkorrektur Linearcodes, Hamming-Codes Zyklische Codes und technische Realisierung Burstfehlerkorrektur Faltungscodierung und Viterbi- Algorithmus Galoisfeld, BCH-Codes, RS-Codes Turbocodes 79

Aufgabe der Kanalcodierung Störungen (additiv) Informationsquelle Quellencodierer Kanalcodierer Leitungscodierer Kanaldecodierer Leitungsdecodierer Quellendecodierer Informationssenke 80 Kanalcodierung: Hinzufügen redundanter Informationen zur Fehlererkennung und -korrektur

Fehlerwahrscheinlichkeit I Übertragungsfehler durch: Dämpfungsverzerrungen Phasenverzerrungen Interferenzen Nebensprechen Rauschen Fremdstörungen Für gaußverteilte Störungen gilt: f(x) f(x) 1 2π 1 F(x) 2π e x² 2 x e 2 z² 2 2 dz 81 Unterscheidung: stationäre Störungen additives weißes gaußverteiltes Rauschen (AWGN: additive white gaussian noise) Beschreibung über Fehlerrate nichtstationäre Störungen z.b. Gewitter σ σ σ = Standardabweichung x

Fehlerwahrscheinlichkeit II Annahmen: binäre Übertragung Gleichwahrscheinliche Symbole (p 0 = p 1 = 0,5) Störungen durch AWGN U X - Nutzsignalspannung u N Störsignalspannung (U N = Effektivwert) U 0 - (ursprünglicher) Spannungspegel für Symbol x 0 = 0 U 1 - (ursprünglicher) Spannungspegel für Symbol x 1 = 1 p(u y U 0 ) P(U 0 U 1 ) p(u y U x ) U S = U 0 +U 1 2 (Entscheidungsschwelle) u y = U x + u N (Spannung am Kanalausgang) p(u y U 1 ) U 0 U S U 1 P(U 1 U 0 ) u y 82

Fehlerwahrscheinlichkeit III Berechnung über Gaußsche Fehlerfunktion: erf(x) x x 1 π e η 2 dη x 0 2 π e η dη Komplementäre Fehlerfunktion: 2 erfc(x) p(η) Darstellung für μ = 0 erf(x) erfc(x) 1 erf ( x) x 2 π e 2 η dη -x μ x η wird die Bitfehlerwahrscheinlichkeit (bipolares Signal): P e 1 2 erfc PS 2P N 83

Bitfehlerwahrscheinlichkeit und Signal-Rausch-Verhältnis Beispiel für binäre bipolare Übertragung Anmerkung: 3dB Gewinn gegenüber unipolarer Übertragung P e SNR 84 SNR db

Fehlerbehandlung Fehlerkorrektur Rekonstruktion Forward Error Correction (FEC) Wiederholung Automatic Repeat Request (ARQ) Zufügen von Redundanz zur Fehlererkennung und -lokalisierung Auswahl des Verfahrens nach: vorgegebener Restfehlerwahrscheinlichkeit Aufwand der Realisierung Zeit für die Fehlerkorrektur Rückmeldung an Sender Wiederholung fester Anzahl von Codewörtern oder selektive Wiederholung einzelner, fehlerhafter Codewörter 85

Hammingdistanz Definition Hammingdistanz d: Anzahl der Stellen in denen sich zwei Codewörter unterscheiden Hilfsmittel zur Bestimmung: Gittermodell Definition minimale Hammingdistanz d min : kleinste sich zwischen den Kanalcodewörtern ergebende Hammingdistanz Treppenmodell für d = 3 Anzahl (sicher) erkennbarer Fehler = d min 1 Anzahl (sicher) korrigierbarer Fehler = d min 1 2 86 korrigierbar Fehler: erkennbar erzeugt anderes Codewort

Blockcodes Kennzeichen feste Länge der Kanalcodewörter möglicher Aufbau eines Codewortes: i Informationsbits (i 1, i 2,, i i ) k Kontrollbits (k 1, k 2,, k k ) n Blocklänge (n 1, n 2,, n n ) Hinweis: Angaben ohne Index = Gesamtzahl von Bits Angaben mit Index = Einzelbit mit Index als Position i n k weitere Charakterisierungsmöglichkeiten: Gruppencode systematischer Code Codeworte bilden eine Gruppe bzgl. Mod-2-Addition siehe Linear-Codes Trennung von Informations- und Redundanzzeichen im Codewort Quellencodewort = Kanalcodewort ohne redundante Stellen k 87

Hamming-Schranke und -Gewicht 88 Hamming-Schranke (zur Bestimmung von k): 2 k d min 1 2 l=0 i + k l dichtgepackter oder perfekter Code: 2 k = d min 1 2 l=0 i + k l Hamming-Gewicht w: - ist die Anzahl der von 0 verschiedenen Stellen im Codewort Beispiele für d min =3 n k i 1 1 0 2 2 0 3 2 1 4 3 1 5 3 2 6 3 3 7 3 4 8 4 4 15 4 11 2 k -1 k 2 k -k-1

Redundanz und Blockfehlerwahrscheinlichkeit Redundanz: R =k relative Redundanz: r = k n Blockfehlerwahrscheinlichkeit: P ν,n = n ν P e ν (1 P e ) n ν P e : Bitfehlerwahrscheinlichkeit ν: Anzahl der Fehler im Block Restfehlerwahrscheinlichkeit: P Rest = Wiederholungscode einfachster fehlerkorrigierender Blockcode n-maliges Wiederholen der Informationen d = d min = n beliebige Reduzierung der Restfehlerwahrscheinlichkeit n ν=µ+1 n ν P e ν (1 P e ) n ν µ: Anzahl der der korrigierbaren Fehler im Block 89

Iterierte Codes Summe der Einsen ggf. erweitern auf: gerade Anzahl (gerade Parität bzw. even parity) oder ungerade Anzahl (ungerade Parität bzw. odd parity) Eindimensionale Paritätskontrolle Zweidimensionale Paritätskontrolle (Kreuzsicherungscode) Paritätselemente für die Zeilen Paritätselemente für die Paritätselemente Paritätselemente für die Spalten auch weitere Dimensionen möglich 90

Lineare Blockcodes Definition (verkürzte Form): Transformation von Quellencodewörtern in Kanalcodewörter nur mit Operationen, die in der algebraischen Struktur einer Gruppe definiert sind 91 Gruppencode (Kanalcodewörter = Elemente einer Gruppe) Gruppenaxiome: Abgeschlossenheit a i a j = a k ; i, j; ; a i, a j, a k G Assoziatives Gesetz (a i a j ) a k = a i (a j a k ); i, j, k Neutrales Element a i 0 = 0 a i = a i ; i Inverses Element a i a i = 0; i zusätzlich kommutatives Gesetz (abelsche Gruppe) a i a j = a j a i ; i, j stellenweise Modulo-2-Addition

Eigenschaften und Codegenerierung I Kanalcodewort Cw i 1 i 2 i 3 i i k 1 k 2 k k 92 n Bildung der Generatormatrix aus i unabhängigen Kanalcodewörtern insgesamt 2 i Kanalcodewörter sichere Erkennung aller Fehler mit w < d min Anzahl der Korrekturbits k ergibt sich durch d min w min der Cw = d min (außer Null-Cw) Syndrom ( Symptome der Fehler ) nur vom Fehler und nicht vom Codewort abhängig Codegenerierung: 1. Bestimmen der Anzahl k für die benötigten Korrekturbits Codewortlänge n = i + k 2. Festlegen/Bestimmen von i linear unabhängigen Codewörtern 3. Erstellen einer (i x n)-generatormatrix mit i linear unabhängigen Codewörtern Generatormatrix G = Cw 1 Cw 2 Cw i

Codegenerierung II 4. Bestimmen der übrigen Codewörter Kanalcodewort = Quellencodewort Generatormatrix bzw. Cw = (j 1 j 2 j i ) G (Hinweis: Länge i des Quellencodewortes j entspricht der Anzahl i der Informationsbits im Kanalcodewort) 5. Umstellen der Generatormatrix in eine kanonische Form durch Modulo-2-Additionen und Vertauschen der Zeilen G = 1 0 0 x 11 x 12 x 1k 0 1 0 x 21 x 22 x 2k 0 0 0 x 31 x 32 x 3k 0 0 1 x i1 x i2 x ik 93 E i Matrix über die Informationsstellen (Einheitsmatrix der Dimension i) P (i x k)-matrix über die Kontrollstellen

Codegenerierung III 6. Erstellen der Prüfmatrix H durch Konkatenation der transponierten Matrix P (über die Kontrollstellen aus G * ) und der Einheitsmatrix in der Dimension k H = (P T E k ) Spalten: i 1 i 2 i i k 1 k 2 k k 94 x 11 x 21 x i1 1 0 0 H = x 12 x 22 x i2 0 1 0 x 13 x 23 x i3 0 0 0 0 0 0 H ermöglicht: x 1k x 2k x ik 0 0 1 die Berechnung der Korrekturbits der einzelnen Codewörter die Ermittlung der Syndrome und damit die Fehlererkennung und -korrektur Außerdem gilt: G * H T = G H T = 0

Fehlererkennung und -korrektur Syndrome der Fehler e: S = H e T Erstellen der Syndrome der erkennbaren und korrigierbaren Fehler Überprüfung des empfangenen Codewortes auf Fehler: S = H Cw T Fehler bei: Achtung: S 0 S = 0 ein Codewort wurde erkannt aber Fehlermöglichkeit besteht weiterhin 95 Position korrigierbarer Fehler: S entspricht einer einzelnen Spalte von H Position dieser Spalte = Position des Fehlers im Codewort

Hammingcode I Eigenschaften: linearer dichtgepackter Blockcode d min = 3 (Einfachfehler korrigierbar) Codewortlänge n=2 k -1 eindeutige Bezeichnung durch H(n,i) spezielle Zuordnung von k zur Absicherung Ermittlung der Kontrollelemente k j : Anordnung in einem Block an den Stellen n x mit x = 2 j-1 und j = 1, 2, alle anderen Stellen sind Informationsbits in aufsteigender Wertigkeit k j zur Absicherung bestimmter Bitstellen über gerade Parität Verschiedene erlaubte Kombinationen i k n 1 2 3 4 3 7 11 4 15 26 5 31 57 6 63 120 7 127 96 - Bildung von Bitgruppen der Länge 2 j-1 im Abstand von 2 j-1 - Beginn der ersten Gruppe bei der Position von k j Achtung: Festlegung der Position von k und i im Codewort ist beliebig wählbar

Hammingcode II Anordnung der Spalten in H, wenn sich die Korrekturbits im Cw an den Stellen n x mit x = 2 j-1 (j = 1, 2, ) befinden: H = k 1 k 2 i 1 i n-k 1 0 1 1 0 1 1 1 0 0 0 1 0 0 0 1 n 1 n 2 n 3 n n Wert einer Spalte entspricht der Dualdarstellung der Position bzw. von x bei n x direkte Angabe der Fehlerposition in S 97

Bsp. eines H(7,4)-Codes k 1 k 2 i 1 k 3 i 2 i 3 i 4 Raster n 1 2 3 4 5 6 7 Cw0 0 0 0 0 0 0 0 Cw1 1 1 0 1 0 0 1 Cw2 0 1 0 1 0 1 0 Cw3 1 0 0 0 0 1 1 Cw4 1 0 0 1 1 0 0 Cw5 0 1 0 0 1 0 1 Cw6 1 1 0 0 1 1 0 Cw7 0 0 0 1 1 1 1 Cw8 1 1 1 0 0 0 0 Cw9 0 0 1 1 0 0 1 Cw10 1 0 1 1 0 1 0 Cw11 0 1 1 0 0 1 1 Cw12 0 1 1 1 1 0 0 Cw13 1 0 1 0 1 0 1 Cw14 0 0 1 0 1 1 0 Cw15 1 1 1 1 1 1 1 98

Bsp. eines H(7,4)-Codes (Fortsetzung) Cw-Struktur: n 1 n 2 n 3 n 4 n 5 n 6 n 7 k 1 k 2 i 1 k 3 i 2 i 3 i 4 Bildungsvorschrift für die Korrekturbits*: k 1 = i 1 i 2 i 4 k 2 = i 1 i 3 i 4 k 3 = i 2 i 3 i 4 Syndrom S = H e T * Cw-Struktur entspricht der Vorschrift zur Bildung der Korrekturbits auf Folie 96) Vorteil dieser Cw-Struktur*: Binärwert von S entspricht dem Dezimalwert der Fehlerposition im Cw 99 Siehe auch bei linearen Blockcodes: S=0 fehlerfrei oder Fehlerfolge entspricht einem Codewort Korrektur durch Negation der erkannten fehlerhaften Elemente 2 k -1 verschiedene Fehlermuster korrigierbar

Zyklische Codes I Lineare Blockcodes Eigenschaft: zyklische Verschiebung eines Codewortes (Cw) führt wieder zu einem Codewort Cw-Bildung über Generatorpolynom g(x) oder Generatormatrix Cw mod g(x) = 0 Anzahl k k=grad g(x) Anzahl i i=n grad g(x) einfache schaltungstechnische Realisierung (Schieberegister) Einsatzgebiete: digitale Mobilfunksysteme (z.b. D-Netz), CD, 100

Zyklische Codes II Ergänzung zur allgemeinen Charakterisierung von Polynomen: Irreduzibilität (nicht als Produkt von Polynomen darstellbar) Primitives Polynom (Zyklus der Polynomreste erreicht den maximalen Wert für eine Periode) Weitere Eigenschaften zyklischer Codes: theoretisch maximale Größe für eine Periode: p max = 2 Polynomgrad 1 Syndrom innerhalb einer Periode p eindeutig Fehlerkorrektur über Prüfmatrix oder Polynomdivision 101

Technische Realisierung I 1. Multiplikation am Sender Division am Empfänger Sender Empfänger y(x) = i(x) g(x) y(x) + e(x) = y (x) y (x) g(x) = y(x) g(x) + e(x) g(x) Rest r(x) = y (x) mod g(x) r(x) = 0 kein (erkennbarer) Fehler r(x) 0 Fehler erkannt Division mit Rest??? Position korrigierbarer Fehler mittels Syndromtabelle 102

Technische Realisierung II 2. Division am Sender Division am Empfänger Sender Empfänger r(x) = (x k i(x)) mod g(x) y(x) = x k i(x) + r(x) y(x) mod g(x) = 0 y(x) + e(x) = y (x) y (x) g(x) = y(x) g(x) + e(x) g(x) Rest r(x) = y (x) mod g(x) Rest r(x) = 0 kein (erkennbarer) Fehler Rest r(x) 0 Fehler erkannt Division mit Rest??? 103 Position korrigierbarer Fehler mittels Syndromtabelle nach der Korrektur: Extraktion der Informationsbits i(x)

Schaltungstechnische Umsetzung - Addition und Verzögerung - Addition mod 2 (siehe auch XOR) Parallele Verarbeitung Serielle Verarbeitung x 1 x 2 y 0 0 0 0 1 1 1 0 1 1 1 0 x 1 & & y x y 2, x 1 & x 2 104 J-K-Flipflop Verzögerung um ein Raster J K Q Q 0 0 unverändert 0 1 0 1 1 0 1 0 1 1 Zustandswechsel Takt J(T n ) Q(T n+1 ) J Q J Q K Q K Q (Flipflops flankengesteuert)

Schaltungstechnische Umsetzung - Multiplikation - i(t j ) T i(z) z -1 i(t j T) Z-Transformation i(t j ) y(t j ) i(z) i(z) z -1 y(z) t j mit j = 0, 1, 2, 3, und t j+1 t j = T y(t j ) = i(t j )+i(t j T ) y(z) = i(z)+i(z) z -1 entspricht auch einer Multiplikation mit 11 y z = i z z (z + 1) z+1 = z 1 +z 0 105

Allgemeine Schaltung zur Multiplikation Einlesevorgang beginnt mit dem höchstwertigen Bit i(z) i(z) z -1 i(z) z -2 i(z) z -(k-1) i(z) z -k z -1 z -1 z -1 z -1 g k (=1) g k-1 (=0) g k-2 (=0) g 1 (=0) g 0 (=1) y(z) y(z) = i(z) g k + i(z) z -1 g k-1 + i(z) z -2 g k-2 + + i(z) z -(k-1) g 1 +i(z) z -k g 0 y(z) = i(z) (g k + z -1 g k-1 + z -2 g k-2 + + z -(k-1) g 1 +z -k g 0 ) y(z) = i(z) z k (g k z k + g k-1 z k-1 + g k-2 z k-2 + + z g 1 + g 0 ) y(z) = i(z) g(z) z k y(x) = i(x) g(x) 106

Schaltungstechnische Umsetzung - Division I - Addition mod 2 i(z) y(z) z -1 z -1 y(z) y(z) = i(z) + y(z) z -1 y z = i z 1 + z 1 y z = z i z z + 1 g 0 (=1) g 1 (=0) g 2 (=0) g k-1 (=0) g k (=1) z -1 z -1 z -1 z -1 immer y(z) i(z) Einlesevorgang beginnt mit dem höchstwertigen Bit 107

Schaltungstechnische Umsetzung - Division II - y(z) = i(z) + y(z) g 0 z -k + y(z) g 1 z -(k-1) + y(z) g 2 z -(k-2) + + y(z) g k-1 z -1 i z y(z) = 1+g k 1 z 1 + + g 2 z (k 2) + g 1 z (k 1) +g 0 z k Verschiebung um k Stellen (siehe Division Folie 109) 108 z k i z y(z) = z k +g k 1 z k 1 + + g 2 z 2 + g 1 z+g 0 Achtung!!! gewünschtes Übertragungsformat: y(x) = i(x) + r(x) y(x) = xk i(x) g(x) r(x) im Speicher (Zustand der Verzögerungsglieder nachdem i(x) vollständig eingelesen wurde)

Schaltungstechnische Umsetzung - Division III - (Codierer) g 0 (=1) g 1 (=0) g 2 (=0) g k-1 (=0) T T T T y 1 2 Zu codierende Informationsfolge: i 0, i 1, i 2, i n-k 1 2 Übertragung: i 0, i 1, i 2, i n-k, r 1, r 2,, r k Schalterstellung: 1 2 109

Schaltungstechnische Umsetzung - Division IV - (Decodierer) y Pufferspeicher T T T T g k-1 (=0) g k-2 (=0) g 1 (=0) g 0 (=1) Logik (Syndromtabelle) Korrektor (Addition mod 2) y 110

Spezielle zyklische Codes I zyklischer Hamming-Code: d min = 3 n = 2 k -1 Generatorpolynom ist irreduzibel und primitiv (p = p max = n = 2 k -1) Beispiele: 111

Spezielle zyklische Codes II Abramson-Code: Erweiterung des Hammingcodes Erkennung von Einzelfehlern und benachbarten Doppelfehlern d min = 4 g(x) = g p (x) (x+1) (g p primtives Generatorpolynom) Polynomgrad bzw. Korrekturbits k = k p + 1 (k p Polynomgrad von g p ) n = 2 k p 1 = 2 k 1 1 Beispiel: (x 3 +x+1) (x+1) = x 4 +x 3 +x 2 +1 112

Spezielle zyklische Codes III Fire-Code: Korrektur von Fehlerbündeln der Länge l (Auftreten bei kurzzeitig stark gestörten Übertragungskanälen) g(x) = g p (x) (x k f+1) (k f : Polynomgrad des Faktors) Polynomgrad bzw. Korrekturbits k = k p +k f n = kgv (n p, k f ) o kgv: kleinstes gemeinsames Vielfaches o n p = 2 k p-1; Codewortlänge des primitiven Generatorpolynoms d min = 4 l k p und l < k f 2 +1 Beispiel: g p (x) = x 3 +x 2 +1, n p =7, k f =3 n = 21, k = 6, i = 15, l = 2, g(x) = x 6 +x 5 +x 2 +x 113

Maßnahmen beim Auftreten von Burstfehlern Burstfehler oder Bündelfehler Ursache: blockweise Störung Auswirkung: Verfälschung einer ganzen Folge von Bits (Fehlerbündel der Länge l) Gegenmaßnahmen 1. Interleaving (Codespreizung): Verschachtelung ursprünglich in einem Block zusammengefasster (benachbarter) Bits 2. Einsatz spezieller Generatorpolynome (z.b. Fire-Codes) zur Korrektur mehrerer benachbarter Fehler Korrektur durch Trennung in Fehlerort x k (k = 0, 1,, n-1) Fehlermuster e (x) (l = grad(e (x))) Fehler: e(x) = (x k e (x)) mod (x n +1) Verschiebung an die Position des ersten falschen Bits Fehler ist kein Codewort (siehe Abramson-, Fire-Code) 114

Algorithmus zur Korrektur von Burstfehlern gesendet: y(x) empfangen: y (x) = y(x)+e(x) Algorithmus: 1. Berechnung des Syndroms S(x) = y (x) mod g(x) 2. Berechnung des wahrscheinlichsten Fehlermusters S i (x) = (x i S(x)) mod g(x) 3. Bestimmung des Fehlers e(x) = (x n-i S i (x)) mod (x n +1) für jedes i>0 bis (grad S i (x))< l 115

Einlesen in den Puffer Codespreizung (Interleaving) I Idee: Verringerung des Einflusses eines Fehlerbursts auf ein einzelnes Codewort Verbesserung der Korrekturmöglichkeiten Lösung: Verschachtelung der Codeworte Umsetzung: spaltenweises Einlesen der Codeworte mit Länge n in einen Puffer zeilenweises Auslesen aus dem Puffer und Absenden Anzahl der Spalten entspricht der Interleavingtiefe (Abstand ursprünglich benachbarter Symbole) Auslesen aus dem Puffer 116 (n x m)-blockinterleaver: Cw 1,1 Cw 2,1 Cw 3,1 Cw m, 1 Cw 1,2 Cw 2,2 Cw 3,2 Cw m, 2 Cw 1,3 Cw 2,3 Cw 3,3 Cw m, 3 Cw 1, n Cw 2, n Cw 3, n Cw m, n Hinweis: Realisierung auch als (m x n)-blockinterleaver möglich

Codespreizung (Interleaving) II 117 Folge: Schutz der Codeworte gegen ein bis zwei Einzelfehler ausreichend Fehlerburst verfälscht nur einzelne Bits verschiedener Codewörter Interleavingtiefe beeinflusst Verzögerung und Verarbeitungsdauer diskontinuierliche blockweise Verarbeitung Verbesserung durch delayed Interleaving : vertikale Anordnung der Codewörter mit einer zeilenweise Verschiebung um r Raster bzw. Spalten (r=1 entspricht einer diagonalen Anordnung) kontinuierliche Übertragung spaltenweises Auslesen Frame Spreizungs-/Interleavingtiefe: s = n r+1 Bsp. für r=2: Cw 1,1 Cw 2,1 Cw 3,1 Cw 4,1 Cw 5,1 Cw 6,1 Cw 1,2 Cw 2,2 Cw 3,2 Cw 4,2 Cw 1,3 Cw 2,3 Cw 3, n 1 Cw 4, n 1 Cw 1, n Cw 2, n

Fehlerkorrektur in mehrstufigen Codes Parameter: Anzahl der Symbolstufen s Anzahl korrigierbarer Stellen im Codewort f Fehlerhöhe t (Betrag des korrigierbaren Abstandes zum ursprünglichen Wert) Blocklänge n Korrekturstellen k Vorgehensweise Sender: Ermittlung der Werte für k Modulo-Operation entsprechend s Vorgehensweise Empfänger: Syndrom S der Empfangsfolge ermitteln (Anzahl der Syndrome s k ) sofern S 0 Vergleich mit Syndromtabelle Korrektur des Fehlers 118

Beispiel eines mehrstufigen Codes Anzahl der Syndrome: Parameter: 5 k = 25 s = 5 zulässige Signalwerte -2, -1, 0, 1, 2 f = 1 t = 2 n = 6 k = 2 Fehlerhöhe Raster +2 +1-1 -2 S 1 S 2 S 1 S 2 S 1 S 2 S 1 S 2 i 1-1 2 2 1-2 -1 1-2 i 2 2 2 1 1-1 -1-2 -2 i 3 2-2 1-1 -1 1-2 2 i 4-1 -2 2-1 -2 1 1 2 k 1 2 0 1 0-1 0-2 0 k 2 0 2 0 1 0-1 0-2 Ermittlung der Korrekturbits k 1 und k 2, sodass gilt: k 1 ergänzt (2i 1 + i 2 + i 3 + 2i 4 ) auf 0 mod 5 k 2 ergänzt (i 1 + i 2 - i 3 - i 4 ) auf 0 mod 5 Hinweis: Beachtung der zulässigen Werte von k (siehe Signal) 119 Syndromberechnung: S 1 = (2i 1 + i 2 + i 3 + 2i 4 + k 1 ) mod 5 S 2 = (i 1 + i 2 i 3 i 4 + k 2 ) mod 5 S = (S 1 S 2 ) Hinweis: S 1 und S 2 können hierbei nur die Restklassenelemente -2, -1, 0, 1 oder 2 sein