Schicken Sie Fehlerkorrektur nach

In Fernmeldewesen, Informationstheorie, und Codiertheorie, Vorwärtsfehlerkorrektur (FEC) oder dem Kanalcodieren ist eine Technik, die verwendet ist, um Fehler in der Datenübertragung über unzuverlässige oder laute Nachrichtenkanäle zu kontrollieren.

Die Hauptidee ist der Absender verschlüsselt ihre Nachricht auf eine überflüssige Weise durch das Verwenden eines Fehlerkorrekturcodes (ECC).

Der amerikanische Mathematiker Richard Hamming hat für dieses Feld in den 1940er Jahren den Weg gebahnt und hat den ersten Fehlerkorrekturcode 1950 erfunden: der Hamming (7,4) Code.

Die Überfülle erlaubt dem Empfänger, eine begrenzte Zahl von Fehlern zu entdecken, die überall in der Nachricht vorkommen können, und häufig diese Fehler ohne Weitermeldung zu korrigieren. FEC gibt dem Empfänger die Fähigkeit, Fehler zu korrigieren, ohne einen Rückkanal zu brauchen, um um Weitermeldung von Daten, aber auf Kosten einer festen, höheren Vorwärtskanalbandbreite zu bitten. FEC wird deshalb in Situationen angewandt, wo Weitermeldungen kostspielig oder, solcher als unmöglich sind, wenn sie zu vielfachen Empfängern im Mehrwurf senden. FEC Information wird gewöhnlich zu Massenspeichergeräten hinzugefügt, um Wiederherstellung von verdorbenen Daten zu ermöglichen.

FEC, der in einem Empfänger in einer Prozession geht, kann auf einen Digitalbit-Strom oder im demodulation eines digital abgestimmten Transportunternehmens angewandt werden. Für die Letzteren ist FEC ein integraler Bestandteil der anfänglichen Konvertierung des Analogons-zu-digital im Empfänger. Der Viterbi Decoder führt einen Algorithmus der weichen Entscheidung durch, um Digitaldaten von einem analogen durch das Geräusch verdorbenen Signal zu demodulieren. Viele FEC Codierer können auch ein Signal der Bitfehlerrate (BER) erzeugen, das als Feed-Back an die feine Melodie die Analogempfang-Elektronik gewöhnt sein kann.

Die maximalen Bruchteile von Fehlern oder fehlender Bit, die korrigiert werden können, werden durch das Design des FEC-Codes bestimmt, so ist verschiedener Vorwärtsfehler, Codes korrigierend, für verschiedene Bedingungen passend.

Wie es arbeitet

FEC wird durch das Hinzufügen der Überfülle zur übersandten Information mit einem vorher bestimmten Algorithmus vollbracht. Ein überflüssiges Bit kann eine komplizierte Funktion von vielen ursprünglichen Informationsbit sein. Die ursprüngliche Information kann oder kann wörtlich in der verschlüsselten Produktion nicht erscheinen; Codes, die den unmodifizierten Eingang in die Produktion einschließen, sind systematisch, während diejenigen, die nicht tun, unsystematisch sind.

Ein vereinfachtes Beispiel von FEC soll jeden übersenden Daten haben 3mal gebissen, der als (3,1) Wiederholungscode bekannt ist. Durch einen lauten Kanal könnte ein Empfänger 8 Versionen der Produktion sehen, Tisch unten zu sehen.

Das erlaubt einem Fehler in irgendwelchen der drei Proben, durch die "Majoritätsstimme" oder "demokratische Abstimmung" korrigiert zu werden. Die Korrigieren-Fähigkeit dieses FEC ist:

  • Bis zu 1 Bit des Drillings irrtümlicherweise oder
  • bis zu 2 Bit des Drillings haben (Fälle weggelassen, die nicht im Tisch gezeigt sind).

Obwohl einfach, um durchzuführen, und weit verwendet ist diese dreifache Modulüberfülle ein relativ ineffizienter FEC. Besser untersuchen FEC Codes normalerweise die letzten mehrere Dutzende oder sogar die letzten mehrere hundert, vorher erhaltene Bit, um zu bestimmen, wie man die aktuelle kleine Hand voll von Bit (normalerweise in Gruppen von 2 bis 8 Bit) decodiert.

Die Mittelwertbildung des Geräusches, um Fehler zu reduzieren

Wie man

sagen konnte, hat FEC "die Mittelwertbildung des Geräusches" gearbeitet; seit jedem haben Daten gebissen betrifft viele übersandte Symbole, die Bestechung von einigen Symbolen durch das Geräusch erlaubt gewöhnlich den ursprünglichen Benutzerdaten, aus dem anderen, unverdorbene erhaltene Symbole herausgezogen zu werden, die auch von denselben Benutzerdaten abhängen.

  • Wegen dieser "risikovereinenden" Wirkung neigen Digitalnachrichtensysteme, die FEC verwenden, dazu, ganz über einem bestimmten minimalen Verhältnis des Signals zum Geräusch und überhaupt nicht darunter zu arbeiten.
  • Diese all-nothing Tendenz — die Klippe-Wirkung — wird ausgesprochener, weil stärkere Codes verwendet werden, die sich näher der theoretischen Grenze von Shannon nähern.
  • Das Durchschießen von codierten Daten von FEC kann alle oder nichts Eigenschaften von übersandten FEC-Codes reduzieren, wenn die Kanalfehler dazu neigen, in Brüchen vorzukommen. Jedoch hat diese Methode Grenzen; es wird am besten auf engbandigen Daten verwendet.

Die meisten Fernmeldesysteme haben einen festen Kanalcode verwendet, der entworfen ist, um den erwarteten Grenzfall zu dulden, hat Fehlerrate gebissen, und dann gescheitert, überhaupt zu arbeiten, wenn die Bit-Fehlerrate jemals schlechter ist.

Jedoch passen sich einige Systeme an die gegebenen Kanalfehler-Bedingungen an:

hybride automatische mehrmalige Bitte verwendet eine feste FEC Methode, so lange der FEC die Fehlerrate behandeln kann, dann auf ARQ umschaltet, wenn die Fehlerrate zu hoch wird;

anpassungsfähige Modulation und codierender Gebrauch eine Vielfalt von FEC Raten, mehr Fehlerkorrektur-Bit pro Paket hinzufügend, wenn es höhere Fehlerraten im Kanal oder das Wegnehmen von ihnen gibt, wenn sie nicht erforderlich sind.

Typen von FEC

Die zwei Hauptkategorien von FEC-Codes sind Block-Codes und Convolutional-Codes.

  • Block codiert Arbeit an Blöcken der festen Größe (Pakete) von Bit oder Symbole der vorher bestimmten Größe. Praktische Block-Codes können allgemein in der polynomischen Zeit zu ihrer Block-Länge decodiert werden.
  • Convolutional codiert Arbeit am Bit oder den Symbol-Strömen der willkürlichen Länge. Sie werden meistenteils mit dem Algorithmus von Viterbi decodiert, obwohl andere Algorithmen manchmal verwendet werden. Entzifferung von Viterbi erlaubt asymptotisch optimale Entzifferungsleistungsfähigkeit mit der zunehmenden Einschränkungslänge des Convolutional-Codes, aber auf Kosten der exponential zunehmenden Kompliziertheit. Ein Convolutional-Code kann in einen Block-Code, wenn gewünscht, durch "das Beißen des Schwanzes" verwandelt werden.

Es gibt viele Typen von Block-Codes, aber unter den klassischen ist das bemerkenswerteste das Codieren des Rohres-Solomon wegen seines weit verbreiteten Gebrauches auf der CD, der DVD, und in Festplatte-Laufwerken. Andere Beispiele von klassischen Block-Codes schließen Golay, BCH, Mehrdimensionale Gleichheit und Codes von Hamming ein.

Hamming ECC wird allgemein verwendet, um NAND-Blitz-Speicherfehler zu korrigieren. Das stellt Fehlerkorrektur des einzelnen Bit und 2-Bit-Fehlerentdeckung zur Verfügung. Codes von Hamming sind nur für die zuverlässigere einzelne Niveau-Zelle (SLC) NAND passend. Dichtere Vielniveau-Zelle (MLC) NAND verlangt stärkeres Mehrbit, das ECC wie BCH oder Rohr-Solomon korrigiert.

Klassische Block-Codes werden gewöhnlich mit Algorithmen der harten Entscheidung durchgeführt, was bedeutet, dass für jeden Eingang und Produktion Zeichen geben, dass eine harte Entscheidung getroffen wird, ob es demjenigen oder einem Nullbit entspricht. Im Gegensatz, Algorithmen der weichen Entscheidung wie der Decoder-Prozess von Viterbi (discretized) analoge Signale, der viel höhere Fehlerkorrektur-Leistung berücksichtigt als Entzifferung der harten Entscheidung.

Fast alle klassischen Block-Codes wenden die algebraischen Eigenschaften von begrenzten Feldern an.

Auf oberen Schichten ist die FEC Lösung für bewegliche Sendungsstandards Code von Raptor oder RaptorQ.

Der grösste Teil der Vorwärtsfehlerkorrektur korrigiert nur Bit-Flips, aber nicht Bit-Einfügungen oder Bit-Auswischen.

In dieser Einstellung ist die Entfernung von Hamming die passende Weise, die Bit-Fehlerrate zu messen.

Einige Vorwärtsfehlerkorrektur-Codes werden entworfen, um Bit-Einfügungen und Bit-Auswischen, wie Anschreiber-Codes und Wasserzeichen-Codes zu korrigieren.

Die Levenshtein Entfernung ist eine passendere Weise, die Bit-Fehlerrate zu messen, wenn sie solche Codes verwendet.

Verketteter FEC codiert für die verbesserte Leistung

Klassische (algebraische) Block-Codes und Convolutional-Codes werden oft in verketteten Codierschemas verbunden, in denen eine kurze Einschränkungslänge Viterbi-decodierter Convolutional-Code den grössten Teil der Arbeit und eines Block-Codes (gewöhnlich Rohr-Solomon) mit der größeren Symbol-Größe tut und Länge "Mopps" irgendwelche durch den convolutional Decoder gemachten Fehler blockiert. Die einzelne Pass-Entzifferung mit dieser Familie von Fehlerkorrektur-Codes kann sehr niedrige Fehlerraten nachgeben, aber für lange Reihe-Übertragungsbedingungen (wie tiefer Raum) wird wiederholende Entzifferung empfohlen.

Verkettete Codes sind Standardpraxis in tiefen und Satellitenraumkommunikationen seit dem Reisenden gewesen 2 erste haben die Technik in seiner 1986-Begegnung mit Uranus verwendet. Das Handwerk von Galileo hat wiederholende verkettete Codes verwendet, um die sehr hohen verursachten Fehlerrate-Bedingungen zu ersetzen, indem es eine erfolglose Antenne gehabt worden ist.

Paritätskontrolle der niedrigen Dichte (LDPC)

Codes der Paritätskontrolle der niedrigen Dichte (LDPC) sind eine Klasse des kürzlich wieder entdeckten hoch effizienten geradlinigen Blocks

Codes. Sie können Leistung sehr in der Nähe von der Kanalkapazität (das theoretische Maximum) das Verwenden einer wiederholten Entzifferungsannäherung der weichen Entscheidung an der geradlinigen Zeitkompliziertheit in Bezug auf ihre Block-Länge zur Verfügung stellen. Praktische Durchführungen können schwer vom Gebrauch des Parallelismus ziehen.

LDPC Codes wurden zuerst von Robert G. Gallager in seiner Doktorarbeit 1960, eingeführt

aber wegen der rechenbetonten Anstrengung im Einführen encoder und Decoder und der Einführung von Codes des Rohres-Solomon,

sie wurden größtenteils bis neulich ignoriert.

LDPC Codes werden jetzt in vielen neuen Hochleistungsnachrichtenstandards, wie DVB-S2 (Digitalvideorundfunkübertragung), WiMAX verwendet (IEEE 802.16e Standard für Mikrowellenkommunikationen), Schnelllaufender Drahtloser LAN (IEEE 802.11n), 10GBase-T Ethernet (802.3an) und G.hn/G.9960 (ITU-T Standard, um über Starkstromleitungen zu vernetzen, rufen Sie Linien und koaxiales Kabel an). Andere LDPC-Codes werden für Radionachrichtenstandards innerhalb 3GPP MBMS standardisiert (sieh Brunnen-Codes).

Turbocodes

Das Turbocodieren ist ein wiederholtes weich decodierendes Schema, das zwei oder mehr relativ einfache Convolutional-Codes und einen interleaver verbindet, um einen Block-Code zu erzeugen, der zu innerhalb eines Bruchteils eines Dezibels der Grenze von Shannon leisten kann. Das Zurückdatieren von LDPC codiert in Bezug auf die praktische Anwendung, sie stellen jetzt ähnliche Leistung zur Verfügung.

Eine der frühsten kommerziellen Anwendungen des Turbocodierens war der CDMA2000 1x (TIA IST 2000) Digitalzelltechnologie, die von Qualcomm entwickelt ist und durch das Verizon Radio, den Sprint und die anderen Transportunternehmen verkauft ist. Es wird auch für die Evolution von CDMA2000 1x spezifisch für den Internetzugang verwendet, 1xEV - TUN (TIA IST 856). Wie 1x, EV - TUN wurde von Qualcomm entwickelt, und wird durch das Verizon Radio verkauft, Sprint und andere Transportunternehmen (der Marktname von Verizon für 1xEV - TUN ist Breitbandzugang, der Verbraucher des Sprints und Geschäftsmarktnamen für 1xEV - TUN sind Macht-Vision und Bewegliches Breitband beziehungsweise.).

Lokale Entzifferung und Prüfung von Codes

Manchmal ist es nur notwendig, einzelne Bit der Nachricht zu decodieren oder zu überprüfen, ob ein gegebenes Signal ein Kennwort ist, und tun Sie so, ohne auf das komplette Signal zu schauen. Das kann Sinn in einer strömenden Einstellung haben, wo Kennwörter zu groß sind, um schnell genug klassisch decodiert zu werden, und wo nur einige Bit der Nachricht von Interesse für jetzt sind. Auch solche Codes sind ein wichtiges Werkzeug in der rechenbetonten Kompliziertheitstheorie, z.B, für das Design von probabilistically checkable Beweise geworden.

Lokal sind Decodable-Codes Fehlerkorrekturcodes, für die einzelne Bit der Nachricht wieder erlangter probabilistically sein können, indem sie nur auf einen kleinen geschaut wird (sagen Sie unveränderlich) Zahl von Positionen eines Kennwortes sogar nachdem ist das Kennwort an einem unveränderlichen Bruchteil von Positionen verdorben worden. Lokal prüfbare Codes sind Fehlerkorrekturcodes, für die es probabilistically überprüft werden kann, ob ein Signal einem Kennwort nah ist, indem es nur auf eine kleine Zahl von Positionen des Signals geschaut wird.

Liste von Fehlerkorrekturcodes

  • Codes
  • BCH codieren
  • Code des unveränderlichen Gewichts
  • Convolutional codieren
  • Gruppe codiert
  • Codes von Golay, von denen der Binäre Golay-Code von praktischem Interesse ist
  • Code von Goppa, der im McEliece cryptosystem verwendet ist
  • Hadamard codieren
  • Hagelbarger codieren
  • Hamming codieren
  • Der Latin Square hat Code für das nichtweiße Geräusch (überwiegend zum Beispiel im Breitband über powerlines) gestützt
  • Lexikografischer Code
  • Langer Code
  • Paritätskontrolle-Code der niedrigen Dichte, auch bekannt als Code von Gallager, weil der Archetyp für den spärlichen Graphen codiert
  • LEUTNANT-Code, der ein nah-optimaler rateless Ausradierungskorrigieren-Code (Brunnen-Code) ist
  • die M von n codiert
  • Online-Code, ein nah-optimaler rateless Ausradierungskorrigieren-Code
  • Code von Raptor, ein nah-optimaler rateless Ausradierungskorrigieren-Code
  • Fehlerkorrektur des Rohres-Solomon
  • Code des Rohres-Muller
  • Wiederholen Sie sich - sammeln Code an
  • Wiederholungscodes, wie Dreifache Modulüberfülle
  • Tornado-Code, ein nah-optimaler Ausradierungskorrigieren-Code und der Vorgänger zum Brunnen codieren
  • Turbocode
  • Code von Walsh-Hadamard

Siehe auch

Weiterführende Literatur

Links


Schicken Sie Echo nach / Schicken Sie Streuung nach
Impressum & Datenschutz