informationstheorie und codierungmidas1.e-technik.tu-ilmenau.de/~webkn/webdaten/lehre... · 2020....
TRANSCRIPT
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
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)
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
x²
e2π
1f(x)
−
=
−𝜎
𝜎 = Standardabweichung
dz
x z
−
−
=22
²
e2π
1F(x)
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)
=
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
μ
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
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
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
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
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
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
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
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
• 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
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)
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
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
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
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:
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
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"
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)
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:
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)
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)
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
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
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)
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
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)
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:
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
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:
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
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
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
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)
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
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
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
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)