Fehlererkennung und Fehlerkorrektur

in #deutsch7 years ago

Daten unterlaufen bei ihrer Übertragung häufig Störungen. Störungsquellen sind unter anderem elektronisches Rauschen und beschädigte Informationsquellen (z. B. Kratzer auf DVD). Erst mit Hilfe von fehlererkennenden Verfahren können fehlerhafte Daten gefunden und mittels Fehlerkorrektur rekonstruiert werden.

Fehlerkorrekturen sind Verfahren, die es ermöglichen, fehlerhafte Daten aus zusätzlicher, wiederholender Information (Redundanz) zu rekonstruieren.

1. Vorwärts- und Rückwerksfehlerkorrektur

Manche Verfahren ermöglichen dem Empfänger der Daten neben der Fehlererkennung auch die Fehlerkorrektur. Diese werden als Vorwärtsfehlerkorrektur bezeichnet. Rückwärtsfehlerkorrektur hingegen ermöglicht lediglich die Feststellung von aufgetreten Fehler bei der Übertragung. Um den Fehler zu korrigieren, muss bei der Quelle der fehlerhafte Teil erneut angefragt werden.

2. Codespreizung

Bei der Codespreizung werden die jeweiligen Bits um das n-fache vervielfacht, mit n = 1, 2, 4, 8, 16...

So entstehen aus dem Block

1 0 1 0 0 1 0 0

mit der Spreizung 8 diese 8-Bit-breite Blöcke:

Dieses Verfahren wird beispielsweise im UMTS-Mobilfunknetz eingesetzt.

Redundanz beschreibt das mehrfache Auftreten von bereits vorhandener Information. Die Redundanz liegt hierbei bei 700%. Allgemein gilt für die Redundanz: Anzahl der Fehlerkorrekturbit / Anzahl der ursprünglichen Datenbits.

3. Fehlererkennende und -korrigierende Kodierungen

3.1 Eindimensionales Paritätsverfahren

Das einfachste Verfahren ist nach jedem übertragenden Block ein Paritätsbit zu übertragen. Dieses Bit ergänzt den Datenblock um ein zusätzliches Bit. Hierbei werden die Bits mit dem Wert 1 gezählt und der Datenblock auf eine gerade Anzahl an Bits mit dem Wert 1 ergänzt.

11111111 11111111 00000000 11111111 00000000 00000000 11111111 00000000
1 0 1 0 0 1 0 0

Insgesamt haben von den 8-Bit-großen Block 3 Bits den Wert 1.
3 ist eine ungerade Zahl. Demnach muss ein Bit mit dem Wert 1 hinzugefügt werden, sodass eine gerade Anzahl an Bits mit dem Wert 1 vorliegt.

1 0 1 0 0 1 0 0 1

Es ist auch möglich Bits mit den Wert 0 zu zählen und anschließend auf ungerade Anzahl zu ergänzen und Mischungen beider Varianten. Wichtig ist nur, dass sowohl der Sender als auch der Empfänger sich auf eine Variante einigen.

Mit diesem Verfahren können nur Fehler erkannt werden, wenn sich nur ein oder eine ungeradzahlige Anzahl an Bits verändert. Sobald zwei oder eine geradzahlige Anzahl an Bits sich verändern, ist eine Fehlerfeststellung nicht mehr möglich.

Die Redundanz bei diesem Verfahren liegt bei 1/8 = 0,125 = 12,5%. Die Datengröße steigt dadurch um 12,5%.

3.2 Zweidimensionales Paritätsverfahren

Um dennoch mittels Paritätsbits Fehler sicher erkennen und sogar korrigieren zu können, werden mehrere Datenblöcke in einem Feld angeordnet. So wird zu den Paritätsbit eine Zeile zusätzlich aus allen Bits einer Spalte ein weiteres Paritätsbit gebildet und hinzugefügt. So ergibt sich folgende Matrix:

Datenblock8. Bit7. Bit6. Bit5. Bit4. Bit3. Bit2. Bit1. BitParitätsbits
Datenblock 1101001001
Datenblock 2000101000
Datenblock 3100010000
Datenblock 4100000111
Datenblock 5000100001
Datenblock 6101000011
Datenblock 7100100000
Datenblock 8001100110
Paritätsbits10101001-

Tritt nun ein Fehler auf, kann dieser genau aus den beiden Paritätsbits aus der Spalte und Zeile lokalisiert und korrigiert werden. Auch wenn zwei Fehler auftreten, können diese noch sicher korrigiert werden. 4-Bitfehler werden hingegen nicht mehr zu 100% erkannt. Liegen diese alle nebeneinander in einem 2x2-Feld, wird überhaupt kein Fehler festgestellt.
Die Redundanz liegt bei diesem Verfahrern bei (8+8) / (8*8) = 0,25 = 25%.

3.3 Weitere Kodierungsverfahren

Alle weitere Kodierungsverfahren nutzen ebenfalls Paritätsbit bzw. Prüfwörter. Der Unterschied zu den hier gezeigten Verfahren liegt in ihrer aufwendigeren und komplizierteren Berechnung. So wird beispielsweise beim Reed-Solomon-Code, der unter anderem bei QR-Codes verwendet wird, mehrere hundert Berechnungen durchgeführt, bis das Prüfwort vollständig berechnet wurde.

Coin Marketplace

STEEM 0.19
TRX 0.17
JST 0.031
BTC 87000.16
ETH 3290.95
USDT 1.00
SBD 2.93