Fehlerkorrekturverfahren

Dieser Artikel bedarf einer Überarbeitung. Eine Begründung befindet sich in der Regel auf der Diskussionsseite. Wenn du Lust hast, verbessere den Artikel und entferne anschließend diesen Baustein.

Fehlerkorrekturverfahren dienen dazu, Fehler bei der Speicherung und Übertragung von Daten zu erkennen und wenn möglich zu korrigieren. Fehlererkennungsverfahren beschränken sich auf eine reine Fehlererkennung.

Dazu wird vor der Speicherung oder Übertragungen den Nutzdaten zusätzliche Redundanz in Form zusätzlicher Bits hinzugefügt, die auf der Zielseite zur Bestimmung von Fehlern und Fehlerpositionen genutzt wird.

Inhaltsverzeichnis

Fehlerursachen

Rauschen

Kurzzeitstörungen

Fehlerarten

Einzelbitfehler

Einzelbitfehler sind Fehler, die unabhängig von anderen auftreten (Korrelationsfunktion ist konstant)

Bündelfehler (engl. Error Bursts)

Bündelfehler sind Fehler, die abhängig von anderen auftreten (Korrelationsfunktion ist eine Spitze)

Synchronisationsfehler

Sind (meist klängere) Bündelfehler, die neben einem Datenverlust auch zu einem Verlust der Information führen, was man gerade empfängt. Ziemlich schlimm, da auch nachfolgende richtige Bits nicht mehr verwendet werden können. Ethernet z.B. ist Evil, es konvertiert Einzelbitfehler in Synchronisationsfehler.

Beispiele

Fehlererkennung

Parität, CRC, Hashs

Hamming-Distanz und Berechnung

Beispiele

Fehlerkorrektur

Rückwärtsfehlerkorrektur

Unter Rückwärtsfehlerkorrektur versteht man das Erkennen von Fehlern auf der Empfängerseite, bei dem Fehler durch erneute Übertragung(en) korrigiert werden.

Siehe auch ARQ-Protokoll.

Aktive Rückwärtsfehlerkorrektur

Wird bei TCP/IP benutzt. Ein Paket gilt als übertragen, wenn eine positive Rückantwort kommt (Der Sender weiß dann dass die entsprechenden Puffer nicht mehr benötigt werden).

Passive Rückwärtsfehlerkorrektur

Empfänger kann innerhalb einer gewissen Zeit Rückfragen stellen.

Vor- und Nachteile

Vorteile:

Nachteile:

Vorwärtsfehlerkorrektur

Fehlerkorrekturcodes

Vor- und Nachteile

Vorteile:

Nachteile:

Hybridverfahren aus Modulation und Fehlererkennung/-korrektur

Die Modulation liefert neben dem demodulierten Signal noch Informationen über die Qualität des Signals. Eine Möglichkeit dies zu erreichen, ist, nicht erlaubte Codes einzubauen. Treten diese auf, weiß man, dass die Daten mit hoher Wahrscheinlichkeit fehlerhaft sind.

Grenzen

Codespreizung

Umwandlung von Bündelfehlern in Einzelbitfehler.

Beispiele

Fehlerverdeckung

Ist eine Fehlerkorrektur nicht möglich, wird das s.g. Error Concealment zur Verdeckung von Fehlern angewandt.

Robuste Datenstrukturen

Ausnutzen von physiologischen Effekten und Signaleigenschaften

Technische Beispiele

RAM

RAMs gelten zwar als sehr zuverlässige Datenspeicher, allerdings kann es in Anwendungen mit hoher Zuverlässigkeit ... Weiterhin werden die Bausteine durch die Miniaturierung und Erhöhung der Taktrate immer empfindlicher auf ...

Der klassische PC/XT und PC/AT nutzt eine Fehlererkennung zum Erkennen von Einzelbitfehlern im RAM. Zum Speichern von 8 bits werden insgesamt 9 Speicherzellen genutzt, die ...

In modernen PCs werden die 64 Datenbits und die 8 Paritätsbits für einen H=4 ...

In einigen Servern (Sun) werden die 128 Datenbits und die 16 Paritätsbits für einen H=5 ...

Compact Disk

Bei der Compact Disc wird das sogenannte CIRC-Fehlerkorrekturverfahren verwendet. Dabei werden bei der Codierung aus dem laufenden Datenstrom jeweils 24 Bytes zu einem Fehlerkorrekturrahmen zusammengefaßt und im Prozessor parallel weitergeführt. Die 24 Bytes werden mit 4 Paritätsbytes (Fehlerkorrekturbytes) ausgestattet, die mit Hilfe einer Matritzenrechnung bestimmt werden. Die 4 Paritätsbytes werden nach Byte-Position 12 in den Rahmen einsortiert. Der Rahmen hat dann 28 Bytes. Anschließend werden die Bytes von vielen so mit Paritätsbytes ausgestatteten Rahmen verschachtelt (Interleaving). Dabei werden die jeweils ersten Bytes des Rahmens nicht verzögert, die jeweils zweiten Bytes des Rahmens um 4 Rahmen verzögert, die dritten Bytes um 8 Rahmen etc., das 28te Byte wird um 108 Rahmen verzögert. Da dies im laufenden Datenstrom so gemacht wird entstehen, abgesehen von den ersten 108 Rahmen, die unvollständig bleiben, wieder vollständige Rahmen aus 24 Bytes plus 4 Paritätsbytes. Diese neuen Rahmen, die nunmehr aus völlig anderen Bytes zusammengesetzt sind, werden mit derselben Matritzenrechnung (lediglich angepaßt auf nunmehr 28 fehlerzusichernde Bytes) erneut mit 4 Paritätsbytes ausgestattet, die an Byte-Position 29 bis 32 in den Rahmen eingefügt werden.

Nach jeden Rahmen wird dann noch ein sogenanntes Subcodewort eingefügt (98 Subcodewörter ergeben immer eine Steuer und Anzeigeinformation (u.a. die Adresse) für einen sogenannten Subcoderahmen). Die Daten werden dann wieder seriell weitergeführt, EFM-moduliert eight-to-fourteen-Modulation vor jedem jetzt schon modulierten Rahmen mit einer Synchronisationsinformation ausgestattet (1000000000010000000000101), damit der Player den Anfang des Rahmens wiederfindet und in NRZ-I-Notation in Form von Pits und Lands in einer Spur auf der Disc aufgezeichnet (so bei der CD-R) bzw. auf einem Master aufgezeichnet, von dem ein Spritzgußwerkzeug hergestellt wird, mit dem die einzelnen Discs als Kopien gefertigt werden. Ein Bit hat hier die Länge von ca. 1/3 Micrometer. Auf einem Milimeter der Spur sind die Bits von ca. 150 Bytes aufgezeichnet. Ein Kratzer auf der Disc beschädigt leicht die Bits von 20, 50 oder 100 Bytes, sprich die Bytes von halben oder ganzen Rahmen.

Die verkratzte Disc kann man dennoch mit einem CD-Player auslesen und fehlerfrei wiedergeben. Das Auslesesignal wird in Bits umgewandelt, diese werden EFM-demoduliert, die Synchronisationsinformation und das Subcodewort werden aus dem Datenstrom entfernt und die Bytes wieder parallel geführt. wo der Player nichts lesen konnte, werden Dummy-Bits in den Datenstrom getaktet.

Es werden nun wieder die Fehlerkorrekturrahmen aus insgesamt 32 Bytes (24 Informations-Bytes und 2 x 4 Paritätsbytes) gebildet und anhand der 4 zuletzt zugeführten Paritätsbytes wird nachgerechnet, ob alle Daten korrekt ausgelesen wurden oder ob irgendwo ein Bit bzw. ein ganzes Byte oder sogar mehrere Bytes im Fehlerkorrekturblock als nicht korrekt identifiziert werden. Wenn es sich um kleine Fehler hhandelt, kann der Decoder den Fehler sofort korrigieren, handelt es sich um größere Mengen von Fehlern (z.B. Kratzer, sogenannte Burst Fehler) ist dies nicht möglich, die fehlerhaften Bytes können aber identifiziert und mit einer Fehlermeldung versehen werden. Anschließend werden die Daten wieder in ihre ursprüngliche Position zurücksortiert (Deinterleaving) und die ursprünglichen Fehlerkorrekturrahmen aus 24 Bytes plus 4 Paritätsbytes gebildet. An dieser zeigt sich der Effekt des Interleavings. Die durch den Kratzer beschädigten 20 oder 50 auf der Spur nebeneinaderliegenden Bytes stammten jedes aus einem anderen ursprünglichen Fehlerkorrekturrahmen und sind jetzt wieder auf diese Rahmen verteilt.In diesen Rahmen sind in den allerseltesten Fällen mehr als zwei Bytes fehlerhaft. Zwar tauchen jetzt in vielen Fehlerkorrekturrahmen fehlerhafte Bytes auf. Diese können jedoch alle mit Hilfe der vier Paritätsbytes korrigiert werden. Am Ende liegt wieder der fehlerfreie serielle Datenstrom vor.

Die Berechnung der Fehlerkorrekturbytes kann man an einem Beispiel stark vereinfacht demonstrieren: Die beiden Bytes 01001010 und 10010010 sollen mit Paritätsbytes ausgestattet werden. Als Regel für die Berechnung wird angenommen: "Wenn 2 gleiche Ziffern untereinander stehen, wird eine 1 als Paritätsbit genommen, wenn 2 ungleiche Ziffern untereinander stehen, eine 0". Wenn man das praktiziert, ergibt sich folgendes Bild 01001010 10010010 00100111. Man kann nun z.B. das erste Byte löschen und mit Hilfe des Paritätsbytes und des nicht gelöschten zweiten Bytes das gelöschte Byte durch Anwendung derselben Regel rekonstruieren. Wo 2 gleiche Ziffern untereinander stehen, wird eine 1 als Korrekturbit eingesetzt, wo 2 ungleiche Ziffern untereinander stehen, eine 0. Nachfolgend ist dies schon für die ersten beiden Bits getan, der Leser kann die Korrektur selbst vollenden: 01 10010010 00100111. Genauso kann man vorgehen, wenn das zweite Byte gelöscht ist und das erste noch vorhanden.

Bei diesem Beispiel wurde mit 50% Fehlerkorrekturdaten gearbeitet. Bei der CD werden pro 24 Bytes 8 Fehlerkorrekturbytes eingefügt, somit müssen hier 33% zusätzliche (redundante) Information gespeichert werden.

DAB / DVB-T

ADSL

Bei einem ADSL Anschluss der Telekom, von der Telekom auch T-DSL genannt, is standartmäßig eine Fehlerkorrektur Namens Interleaving eingeschaltet. Dabei werden die Daten wieder aufbereitet bzw. verstärkt, falls ein Telefonkabel etc. eine schlechte Verbindung aufweist.

Jedoch benötigt man dies im Normalfall nicht. Interleaving treibt eigentlich nur die Latenz (Ping) in die höhe, eine so gut wie einwandfreie Datenübertragung ist jedoch auch ohne Interleaving möglich.

Eine abgeschaltete korrektur wird Fastpath genannt, sie eignet sich besonders für Online-Spieler, bei denen die Latenz eine Rolle spielt, das abschalten von Interleaving kostet bei der Telekom zur Zeit(16.05.05) auch noch eine Einrichtungsgebühr + Monatspreis.

Links

Literatur

Siehe auch:


Kategorie:Digitaltechnik

See also: Fehlerkorrekturverfahren, 4B5B-Code, ARQ-Protokoll, Bit, Bitfehlerrate, Codierungstheorie, Datenübertragung, Eight-to-Fourteen-Modulation, Error Concealment