informationstheorie und codierungmidas1.e-technik.tu-ilmenau.de/~webkn/webdaten/lehre... · 2020....

41
Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung 79 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

Upload: others

Post on 08-Sep-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung79

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

Page 2: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung80

Aufgabe der Kanalcodierung

Kanalcodierung: Hinzufügen redundanter Informationen zur Fehlererkennung und -korrektur

Informations-quelle

Informations-senke

Quellen-codierer

Kanal-codierer

Leitungs-codierer

Quellen-decodierer

Kanal-decodierer

Leitungs-decodierer

Störungen (additiv)

Page 3: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung81

Fehlerwahrscheinlichkeit I

Übertragungsfehler durch:

• Dämpfungsverzerrungen

• Phasenverzerrungen

• Interferenzen

• Nebensprechen

• Rauschen

• Fremdstörungen

Für gaußverteilte Störungen gilt:

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

f(x)

x𝜎

22

e2π

1f(x)

=

−𝜎

𝜎 = Standardabweichung

dz

x z

=22

²

e2π

1F(x)

Page 4: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung82

Fehlerwahrscheinlichkeit IIAnnahmen:• binäre Übertragung• Gleichwahrscheinliche Symbole (p0 = p1 = 0,5)• Störungen durch AWGN• UX - Nutzsignalspannung• uN – Störsignalspannung (UN = Effektivwert)• U0 - (ursprünglicher) Spannungspegel für Symbol x0 = 0• U1 - (ursprünglicher) Spannungspegel für Symbol x1 = 1

p(uy|Ux)

uyU0 U1US

US = U

0+U

1

2(Entscheidungsschwelle)

uy = Ux + uN (Spannung am Kanalausgang)

p(uy|U1)

p(uy|U0)

P(U1|U0)

P(U0|U1)

Page 5: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

=

N

Se

2P

Perfc

2

1P

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung83

Fehlerwahrscheinlichkeit III

Berechnung über Gaußsche Fehlerfunktion:

− ==

x

0

η

x

x

η dηeπ

2dηe

π

1erf(x)

22

-x

Komplementäre Fehlerfunktion:

−=−=x

η dηeπ

2)(1erfc(x)

2

xerf

wird die Bitfehlerwahrscheinlichkeit (bipolares Signal):

x

erfc(x)erf(x)

p(η)

η

Darstellung fürμ = 0

μ

Page 6: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung84

Bitfehlerwahrscheinlichkeit und Signal-Rausch-Verhältnis

Beispiel für binäre bipolare Übertragung

Anmerkung:6dB Gewinn gegenüber unipolarer Übertragung

Pe

SNRdb

SNR

Page 7: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung85

Fehlerbehandlung

• Rückmeldung an Sender

• Wiederholung fester Anzahl von Codewörtern oder

• selektive Wiederholung einzelner, fehlerhafter Codewörter

• Zufügen von Redundanz zur Fehlererkennung und -lokalisierung

Fehlerkorrektur

RekonstruktionForward Error Correction

(FEC)

WiederholungAutomatic Repeat Request

(ARQ)

Auswahl des Verfahrens nach:

• vorgegebener Restfehlerwahrscheinlichkeit

• Aufwand der Realisierung

• Zeit für die Fehlerkorrektur

Page 8: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung86

Hammingdistanz

Definition Hammingdistanz d:

Anzahl der Stellen in denen sich zwei Codewörter unterscheiden

Definition minimale Hammingdistanz dmin:

kleinste sich zwischen den Kanalcodewörtern ergebende Hammingdistanz

Hilfsmittel zur Bestimmung: Gittermodell

Anzahl (sicher) erkennbarer Fehler = dmin – 1

Anzahl (sicher) korrigierbarer Fehler = dmin – 1

2

Treppenmodell für d = 3

korrigierbar erkennbarFehler:

erzeugt anderes Codewort

Page 9: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung87

Blockcodes

möglicher Aufbau eines Codewortes:• i Informationsbits (i1, i2, …, ii)• k Kontrollbits (k1, k2, …, kk)• n Blocklänge (n1, n2, …, nn)

i k

n

weitere Charakterisierungsmöglichkeiten:• Gruppencode

− Codeworte bilden eine Gruppe bzgl. Mod-2-Addition− siehe Linear-Codes

• systematischer Code − Trennung von Informations- und Redundanzzeichen im Codewort− Quellencodewort = Kanalcodewort ohne redundante Stellen k

• …

Kennzeichen feste Länge der Kanalcodewörter

Hinweis:• Angaben ohne Index = Gesamtzahl von Bits• Angaben mit Index = Einzelbit mit Index als Position

Page 10: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung88

Hamming-Schranke und -Gewicht

Hamming-Schranke (zur Bestimmung von k):

2k ≥

l=0

dmin

−12

i + kl

dichtgepackter oder perfekter Code:

2k =

l=0

dmin

−12

i + kl

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

… … …

2k-1 k 2k-k-1

Beispiele für dmin=3

Hamming-Gewicht w:

- ist die Anzahl der von 0 verschiedenen Stellen im Codewort

Page 11: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung89

Redundanz, Blockfehlerwahrschein-lichkeit und Wiederholungscode

Blockfehlerwahrscheinlichkeit: Pν,n =nν

Peν(1 − Pe)n−ν

Restfehlerwahrscheinlichkeit:

Redundanz: R =k

r = k

nrelative Redundanz:

Wiederholungscode

• einfachster fehlerkorrigierender Blockcode

• x-maliges Wiederholen der Informationen

• d = dmin = x

• beliebige Reduzierung der Restfehlerwahrscheinlichkeit

𝜈: Anzahl derFehler im Block

Pe: Bitfehler-wahrschein-lichkeit

PRest =

𝜈=µ+1

𝑛nν

Peν(1 − Pe)n−ν

µ: Anzahl derder korrigierbarenFehler im Block

Page 12: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung90

Iterierte Codes

Eindimensionale Paritätskontrolle

Zweidimensionale Paritätskontrolle (Kreuzsicherungscode)

Summe der „Einsen“ ggf. erweitern auf:• gerade Anzahl (gerade Parität bzw. even parity) oder• ungerade Anzahl (ungerade Parität bzw. odd parity)

Paritätselemente für die Zeilen

Paritätselement für die Paritätselemente

Paritätselemente für die Spalten

auch weitere Dimensionen möglich

Page 13: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung91

Lineare BlockcodesDefinition (verkürzte Form):

Transformation von Quellencodewörtern in Kanalcodewörter nur mit Operationen, die in der algebraischen Struktur einer Gruppe definiert sind

Gruppenaxiome:

• Abgeschlossenheit

ai aj = ak; ∀i, j; ; ai, aj, ak ∊ G

• Assoziatives Gesetz

(ai aj) ak = ai (aj ak); ∀i, j, k

• Neutrales Element

ai 0 = 0 ai = ai; ∀i

• Inverses Element

ai ai = 0; ∀i

Gruppencode (Kanalcodewörter = Elemente einer Gruppe)

stellenweise Modulo-2-Addition

zusätzlich kommutatives Gesetz (abelsche Gruppe)

ai aj = aj ai; ∀i, j

Page 14: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

• Bildung der Generatormatrix aus i unabhängigen Kanalcodewörtern

• insgesamt 2i Kanalcodewörter

• sichere Erkennung aller Fehler mit w < dmin

• Anzahl der Korrekturbits k ergibt sich durch dmin

• wmin der Cw = dmin (außer Null-Cw)

• Syndrome („Symptome der Fehler“) nur vom Fehler und nicht vom Codewort abhängig

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung92

Eigenschaften und Codegenerierung I

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 1Cw 2

…Cw i

i1 i2 i3 … ii k1 k2 … kk

n

Kanalcodewort Cw

Page 15: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung93

Codegenerierung II

5. Umstellen der Generatormatrix in eine kanonische Form durch Modulo-2-Additionen oder Vertauschen der Zeilen

G∗=

1 0 … 0 x11 x12 … x1k

0 1 … 0 x21 x22 … x2k

0 0 … 0 x31 x32 … x3k

… … … … … … … …0 0 … 1 xi1 xi2 … xik

Ei

Matrix über die Informationsstellen

(Einheitsmatrix der Dimension i)

P

(i x k)-Matrix über die Kontrollstellen

4. Bestimmen der übrigen Codewörter

Cw = (j1 j2 … ji) ∙ GKanalcodewort = Quellencodewort ∙ Generatormatrix bzw.

(Hinweis: Länge i des Quellencodewortes j entspricht der Anzahl i der Informationsbits im Kanalcodewort)

Page 16: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung94

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 = (PT Ek)

H ermöglicht:

• die Berechnung der Korrekturbits der einzelnen Codewörter

• die Ermittlung der Syndrome

• und damit die Fehlererkennung und -korrektur

Außerdem gilt: G* ∙ HT = G ∙ HT = 0

H =

𝐱𝟏𝟏 𝐱𝟐𝟏 … 𝐱𝐢𝟏 𝟏 𝟎 … 𝟎𝐱𝟏𝟐 𝐱𝟐𝟐 … 𝐱𝐢𝟐 𝟎 𝟏 … 𝟎𝐱𝟏𝟑 𝐱𝟐𝟑 … 𝐱𝐢𝟑 𝟎 𝟎 … 𝟎… … … … 𝟎 𝟎 … 𝟎

𝐱𝟏𝐤 𝐱𝟐𝐤 … 𝐱𝐢𝐤 𝟎 𝟎 … 𝟏

Spalten: i1 i2 … ii k1 k2 … kk

Page 17: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung95

Fehlererkennung und -korrektur

Syndrome der Fehler e:

S = H ∙ eT

Erstellen der Syndrome der korrigierbaren Fehler (Syntromtabelle)

Überprüfung des empfangenen Codewortes auf Fehler:

S = H ∙ CwT

Fehler bei:

S ≠ 0

Achtung:

S = 0 ein Codewort wurde erkannt

aber Fehlermöglichkeit besteht weiterhin

Spezialfall: Position korrigierbarer Einzelfehler

S entspricht einer einzelnen Spalte von H

Position dieser Spalte = Position des Fehlers im Codewort

Page 18: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Eigenschaften:

• linearer dichtgepackter Blockcode

• dmin = 3 (Einfachfehler korrigierbar)

• Codewortlänge n=2k -1

• eindeutige Bezeichnung durch H(n,i)

• spezielle Zuordnung von k zur Absicherung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung96

Hammingcode I

i k n

1 2 3

4 3 7

11 4 15

26 5 31

57 6 63

120 7 127

… … …

Verschiedene erlaubte Kombinationen

Ermittlung der Kontrollelemente kj:

• Anordnung in einem Block an den Stellen nx mit x = 2j-1 und j = 1, 2, …

• alle anderen Stellen sind Informationsbits in aufsteigender Wertigkeit

- Bildung von Bitgruppen der Länge 2j-1 im Abstand von 2j-1

- Beginn der ersten Gruppe bei der Position von kj

• kj zur Absicherung bestimmter Bitstellen über gerade Parität

Achtung: Festlegung der Position von k und i im Codewort ist beliebig wählbar

Page 19: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung97

Hammingcode II

Wert einer Spalte entspricht der Dualdarstellung der Position bzw.

von x bei nx

direkte Angabe der Fehlerposition in S

H =

1 0 1 … 10 1 1 … 10 0 0 … 1… … … … …0 0 0 … 1

n1 n2 n3 … nn

k1 k2 i1 in-k

Anordnung der Spalten in H, wenn sich die Korrekturbits im Cw an den Stellen nx mitx = 2j-1 (j = 1, 2, …) befinden:

Page 20: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung98

Bsp. eines H(7,4)-Codesk1 k2 i1 k3 i2 i3 i4

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

Page 21: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung99

Bsp. eines H(7,4)-Codes (Fortsetzung)

Cw-Struktur: n1 n2 n3 n4 n5 n6 n7

k1 k2 i1 k3 i2 i3 i4

Bildungsvorschrift für die Korrekturbits*:

k1 = i1 i2 i4k2 = i1 i3 i4k3 = i2 i3 i4

Syndrom S = H ∙ eT

Vorteil dieser Cw-Struktur*:

Binärwert von S entspricht dem Dezimalwert der Fehlerposition im Cw

Siehe auch bei linearen Blockcodes:

• S=0 fehlerfrei oder Fehlerfolge entspricht einem Codewort

• Korrektur durch Negation der erkannten fehlerhaften Elemente

• 2k-1 verschiedene Fehlermuster korrigierbar

* Cw-Struktur entspricht der Vorschrift

zur Bildung der Korrekturbits auf

Folien "Hammingcode I„ und

"Hammingcode II"

Page 22: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung100

Zyklische Codes I

• Eigenschaft: zyklische Verschiebung eines Codewortes (Cw) führt wieder zu einem Codewort

i=n – grad g(x)• Anzahl i

• Einsatzgebiete: digitale Mobilfunksysteme, CD, DVB-T, DAB, …

• Anzahl k k=grad g(x)

• Cw mod g(x) = 0

• Cw-Bildung über Generatorpolynom g(x) oder Generatormatrix

• Lineare Blockcodes

• einfache schaltungstechnische Realisierung (Schieberegister)

Page 23: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung101

Zyklische Codes II

➢ Irreduzibilität (nicht als Produkt von Polynomen darstellbar)➢ Primitives Polynom (Zyklus der Polynomreste erreicht den

maximalen Wert für eine Periode)

Ergänzung zur allgemeinen Charakterisierung von Polynomen:

• theoretisch maximale Größe für eine Periode: pmax = 2Polynomgrad –1

• Fehlerkorrektur über Prüfmatrix oder Polynomdivision

• Syndrom innerhalb einer Periode p eindeutig

Weitere Eigenschaften zyklischer Codes:

Page 24: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

r(x) ≠ 0 Fehler erkannt

r(x) = 0 kein (erkennbarer) Fehler

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung102

Technische Realisierung I

1. Multiplikation am Sender – Division am Empfänger

y(x) = i(x) ∙ g(x)

Sender Empfänger

y(x) + e(x) = y‘(x) y′(x)

g(x)=

y(x)

g(x)+

e(x)

g(x)

Division mit Rest ???

➢ Position korrigierbarer Fehler mittels Syndromtabelle

Rest r(x) = y‘(x) mod g(x)

Page 25: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung103

Technische Realisierung II

2. Division am Sender – Division am Empfänger

Rest r(x) = 0 kein (erkennbarer) Fehler

Sender Empfänger

y(x) + e(x) = y‘(x) y′(x)

g(x)=

y(x)

g(x)+

e(x)

g(x)

Division mit Rest ???

Rest r(x) ≠ 0 Fehler erkannt

➢ Position korrigierbarer Fehler mittels Syndromtabelle➢ nach der Korrektur: Extraktion der Informationsbits i(x)

r(x) = (xk ∙ i(x)) mod g(x)

y(x) = xk ∙ i(x) + r(x)

y(x) mod g(x) = 0

Rest r(x) = y‘(x) mod g(x)

Page 26: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung104

Schaltungstechnische Umsetzung- Addition und Verzögerung -

x1

Addition mod 2(siehe auch XOR)

Parallele Verarbeitung

x1 x2 y

0 0 0

0 1 1

1 0 1

1 1 0

Serielle Verarbeitung

x2

y yx2, x1

J K Q Q

0 0 unverändert

0 1 0 1

1 0 1 0

1 1 Zustandswechsel

Verzögerung um jeweils ein RasterJ-K-Flipflop

Q

J

K

Q

Q

J

K

Q

Takt

Tn Tn+2

(Flipflops flankengesteuert)

&

&

&

Tn+1

Page 27: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung105

Schaltungstechnische Umsetzung- Multiplikation -

i(tj) T z-1

i(tj)

i(tj–T)

i(z)

i(z)∙z-1

i(z)y(tj)

y(tj) = i(tj)+i(tj–T ) y(z) = i(z)+i(z)∙z-1

y(z)

y z =i z

z∙ (z + 1)

z+1 = z1+z0

entspricht auch einer Multiplikation mit 11

tj mit j = 0, 1, 2, 3, … und tj+1 – tj = T

Z-Transformation

Page 28: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung106

Allgemeine Schaltung zur Multiplikation

y(z) = i(z)∙gk + i(z)∙z-1∙gk-1 + i(z)∙z-2∙gk-2 + … + i(z)∙z-(k-1)∙g1 +i(z)∙z-k∙g0

i(z)

z-1 z-1 z-1 z-1

y(z)

gk(=1)

i(z)∙z-1 i(z)∙z-2 i(z)∙z-(k-1) i(z)∙z-k

gk-1(=0) gk-2(=0) g0(=1)g1(=0)

y(z) = i(z)∙(gk + z-1∙gk-1 + z-2∙gk-2 + … + z-(k-1)∙g1 +z-k∙g0)

y(z) = i(z)zk ∙(gk∙z

k+ gk-1∙zk-1+ gk-2∙zk-2+ … + z∙g1 + g0)

y(z) = i(z)∙g(z)

zk

Einlesevorgang beginnt mit dem höchstwertigen Bit

y(x) = i(x) ∙ g(x)

Page 29: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung107

Schaltungstechnische Umsetzung- Division I -

z-1

i(z)

y(z)∙z-1

y(z) = i(z) + y(z)∙z-1

y(z)

y z =i z

1 + z−1

y z =z ∙ i z

z + 1

i(z)

z-1 z-1 z-1 z-1 y(z)

gk(=1)gk-1(=0)g2(=0)g0(=1) g1(=0)

Addition mod 2

immer

Einlesevorgang beginnt mit dem höchstwertigen Bit

Page 30: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung108

Schaltungstechnische Umsetzung- Division II -

y(z) = i(z) + y(z)∙g0∙z-k + y(z)∙g1∙z-(k-1) + y(z)∙g2∙z-(k-2) + … + y(z)∙gk-1∙z-1

y(z) =i z

1+gk−1 ∙ z−1 + … + g2 ∙ z−(k−2) + g1 ∙ z−(k−1)+g0 ∙ z−k

y(z) =zk ∙ i z

zk+gk−1 ∙ zk−1 + … + g2 ∙ z2 + g1 ∙ z+g0

Verschiebung um k Stellen

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)

Page 31: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

g0(=1)

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung109

Schaltungstechnische Umsetzung- Division III -

(Codierer)

i0, i1, i2 …, in-k

T T T T y

2

gk-1(=0)g2(=0)g1(=0)

Schalterstellung: 1 2

i0, i1, i2 …, in-k, r1, r2,…, rk

2

1

1

Übertragung:

Zu codierende Informationsfolge:

Page 32: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung110

Schaltungstechnische Umsetzung- Division IV -(Decodierer)

T T T T

y‘

g1(=0)gk-2(=0)gk-1(=0)

Pufferspeicher

g0(=1)

Logik (Syndromtabelle)

yKorrektor (Addition mod 2)

Schalter nur zum Aus-lesen des Restes offen

Page 33: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung111

Spezielle zyklische Codes I

zyklischer Hamming-Code:

• dmin = 3

• n = 2k-1

• Generatorpolynom ist irreduzibel und primitiv (p = pmax = n = 2k-1)

• Beispiele:

Page 34: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung112

Spezielle zyklische Codes II

Abramson-Code:

• Erweiterung des Hammingcodes

• Erkennung von Einzelfehlern und benachbarten Doppelfehlern

• dmin = 4

• g(x) = gp(x)∙(x+1) (gp Generatorpolynom des zykl. Hamming-Codes)

• Polynomgrad bzw. Korrekturbits k = kp + 1 (kp Polynomgrad von gp)

• n = 2kp − 1 = 2k−1 − 1

• Beispiel: (x3+x+1)∙(x+1) = x4+x3+x2+1

Page 35: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung113

Spezielle zyklische Codes III

Fire-Code:

• Korrektur von Fehlerbündeln der Länge l

(Auftreten bei kurzzeitig stark gestörten Übertragungskanälen)

• g(x) = gp(x)∙(xkf+1) (kf: Polynomgrad des Faktors

gp(x): Generatorpolynom des zykl. Hamming-Codes)

• Polynomgrad bzw. Korrekturbits k = kp+kf

• n = kgV (np, kf)

o kgV: kleinstes gemeinsames Vielfaches

o np = 2kp-1; Codewortlänge des primitiven Generatorpolynoms

• dmin = 4

• l ≤ kp und l < kf

2+1

• Beispiel: gp(x) = x3+x2+1, np=7, kf =3

n = 21, k = 6, i = 15, l = 2, g(x) = x6+x5+x2+x

Page 36: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung114

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 FehlerKorrektur durch Trennung in

• Fehlerort xk (k = 0, 1, …, n-1)• Fehlermuster e‘(x) (l = grad(e‘(x)), e‘(0)=1)

Fehler: e(x) = (xk ∙e‘(x)) mod (xn+1)

Zyklische Verschiebung des Fehlermusters

Verschiebung an die Position des ersten falschen Bits

Page 37: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung115

Algorithmus zur Korrektur von Burstfehlern

Algorithmus:1. Berechnung des Syndroms

S(x) = y‘(x) mod g(x)

2. Berechnung des wahrscheinlichsten Fehlermusters

Si(x) = (xi∙S(x)) mod g(x) für jedes i>0 bis (grad Si(x))< l

3. Bestimmung des Fehlers

e(x) = (xn-i∙Si(x)) mod (xn+1)

gesendet: y(x)empfangen: y‘(x) = y(x)+e(x)

Page 38: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung116

Codespreizung (Interleaving) I

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)

Idee:• Verringerung des Einflusses eines Fehlerbursts auf ein einzelnes Codewort• Verbesserung der Korrekturmöglichkeiten

Lösung:• Verschachtelung der Codeworte

Cw1,1 Cw2,1 Cw3,1 … Cwm, 1

Cw1,2 Cw2,2 Cw3,2 … Cwm, 2

Cw1,3 Cw2,3 Cw3,3 … Cwm, 3

… … … … …Cw1, n Cw2, n Cw3, n … Cwm, n

(n x m)-Blockinterleaver:

Auslesen aus dem Puffer

Ein

lese

n in

den

Puff

er

Hinweis:Realisierung auch als (m x n)-Blockinterleavermöglich

Page 39: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung117

Codespreizung (Interleaving) II

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• Spreizungs-/Interleavingtiefe: s = n∙r+1

Cw1,1 Cw2,1 Cw3,1 Cw4,1 Cw5,1 Cw6,1 … … … …∗ ∗ Cw1,2 Cw2,2 Cw3,2 Cw4,2 … … … …∗ ∗ ∗ ∗ Cw1,3 Cw2,3 … … … …… … … … … … … … … …… … … … … … … ∗ Cw3, n−1 Cw4, n−1

∗ ∗ ∗ ∗ ∗ ∗ … ∗ Cw1, n Cw2, n

Bsp. für r=2:

Frame

Page 40: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung118

Fehlerkorrektur in mehrstufigen Codes

Vorgehensweise Sender:• Ermittlung der Werte für k• Modulo-Operation entsprechend s

Parameter:• Anzahl der Symbolstufen s• Anzahl korrigierbarer Stellen im Codewort f• Fehlerhöhe t

(Betrag des max. korrigierbaren Abstandes zwischen ursprünglichem und fehlerhaftem Wert im Restklassenring mod s)

• Blocklänge n• Korrekturstellen k

Vorgehensweise Empfänger:• Syndrom S der Empfangsfolge ermitteln (Anzahl der Syndrome sk)• sofern S ≠ 0 Vergleich mit Syndromtabelle• Korrektur des Fehlers

Page 41: Informationstheorie und Codierungmidas1.e-technik.tu-ilmenau.de/~webkn/Webdaten/Lehre... · 2020. 1. 16. · 79 Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung

Informationstheorie und Codierung - 5. Fehlerkorrigierende Codierung119

Beispiel eines mehrstufigen Codes

Ermittlung der Korrekturbits k1 und k2, sodass gilt:k1 ergänzt (2i1 + i2 + i3 + 2i4) auf 0 mod 5k2 ergänzt (i1 + i2 - i3 - i4) auf 0 mod 5

Parameter:• s = 5• zulässige Signalwerte

-2, -1, 0, 1, 2• f = 1• t = 2• n = 6• k = 2

Syndromberechnung:S1 = (2i1 + i2 + i3 + 2i4+ k1) mod 5S2 = (i1 + i2 – i3 – i4 + k2) mod 5S = (S1 S2)

Fehler-höhe

Raster

+2S1 S2

+1S1 S2

-1S1 S2

-2S1 S2

i1 -1 2 2 1 -2 -1 1 -2

i2 2 2 1 1 -1 -1 -2 -2

i3 2 -2 1 -1 -1 1 -2 2

i4 -1 -2 2 -1 -2 1 1 2

k1 2 0 1 0 -1 0 -2 0

k2 0 2 0 1 0 -1 0 -2

Anzahl der Syndrome:

5k = 25

Hinweis: S1 und S2 können hierbei nur die Restklassenelemente-2, -1, 0, 1 oder 2 sein

Hinweis: Beachtung der zulässigen Werte von k (siehe Signal)