WikiDer > Blockcode
In dem Codierungstheorie ist ein Blockcode ein Fehlerkorrekturcode Sein Hauptmerkmal besteht darin, dass es die zu sendenden Daten in Blöcke einer festen Länge aufteilt, wonach jeder Block codiert wird. Blockcodes nehmen einen wichtigen Platz innerhalb der Fehlerkorrekturcodes ein. Es gibt alle Arten von Blockcodes mit vielen praktischen Anwendungen.
Einige Beispiele für Blockcodes sind Reed-Solomon-Codes, Hamming-Codes und Reed-Müller-Codes. Darüber hinaus sind diese Codes linear.
Blockcodes werden als abstraktes Konzept untersucht. Dadurch lassen sich beispielsweise gemeinsame Merkmale wie Begrenzungen der maximal erfassbaren oder behebbaren Fehleranzahl festlegen.
Der Begriff Blockcode wird manchmal für jeden Fehlerkorrekturcode verwendet, der eine feste Anzahl von Bits von Ausgangsdaten aus einem Block mit einer festen Anzahl von Bits von Eingangsdaten erzeugt. Mit dieser Definition zum Beispiel Turbo-Codes können auch als Blockcodes gezählt werden. Dieser Artikel befasst sich mit den "algebraischen Blockcodes", d. h. Blockcodes, bei denen Datenblöcke unabhängig voneinander codiert werden (was bei Turbocodes nicht der Fall ist).
Operation
Bei der Datenübertragung über a Kommunikationskanal der Sender sendet einen Datenstrom an die Empfänger. Jeder Kommunikationskanal leidet jedoch unter Unvollkommenheiten (zum Beispiel durch Tür Lärm), so dass die Übertragung nicht rund läuft. Mit einem Blockcode wird der Datenstrom aufgeteilt in Informationsblöcke oder Lebensmittel mit fester Länge . Jeder Block wird dann unabhängig von anderen Blöcken in einen umgewandelt (kodiert). Codewort, ein Block fester Länge . Bei dieser Konvertierung werden jedem Block zusätzliche Informationen hinzugefügt; Durch die Auswahl der hinzugefügten Informationen auf diese Weise können Fehler erkannt oder korrigiert werden. Ein einfaches Beispiel ist das Hinzufügen Paritätsbits zu jedem Block.
Beim Empfänger geschieht das Umgekehrte: Die empfangenen Codewörter, die möglicherweise verfälscht sind, werden so gut wie möglich dekodiert, um die Originaldaten zu finden.
Formale Beschreibung und Parameter
Ein Blockcode ist mathematisch a Injektion. Hier ist eine endliche, nicht leere Menge und ihre und ganze Zahlen. Im Folgenden werden die Parameter im Detail erklärt.
Das Alphabet
Der zu verschlüsselnde Datenstrom wird wie folgt modelliert: Schnur von Zeichen aus einem Alphabet . Die Größe des Alphabets wird oft als . wenn , dann spricht man von a binärer Blockcode. In vielen Anwendungen ist es wünschenswert, dass eine Macht von a Primzahl verursacht kann als die endliches Feld/Körper.
Die Nachrichtenlänge k
Jede Nachricht ist ein Element von , d. h. eine Zeichenfolge bestehend aus Symbolen von der Länge . Das wird daher der Informationslänge, Nachrichtenlänge oder Abmessungen des Blockcodes.
Die Blocklänge nein
Die Blocklänge ist die Anzahl der Symbole in einem Codewort. Die Elemente von sind also Strings der Länge und entsprechen einem Block, der vom Empfänger empfangen werden kann. Daher heißen sie auch empfangene Worte erwähnt. Das Ergebnis der Codierung einer Nachricht ist das Codewort dieser Nachricht. Mathematischer: .
Der Datenfluss R
Die Datenrate eines Blockcodes ist definiert als das Verhältnis zwischen Nachrichtenlänge und Blocklänge: .
Ein hoher Durchsatz bedeutet, dass ein Großteil des Codeworts aus der Nachricht besteht. In diesem Sinne misst der Durchfluss die Übertragungsrate und gibt das Überkopf was auftritt, weil die resultierenden Codewörter länger sind als die Nachricht. Von dem Informationstheorie Daraus folgt, dass die Durchflussmenge nie größer sein kann als , da Daten im Allgemeinen nicht verlustfrei komprimiert werden können. Dies folgt auch daraus, dass ist eine Spritze.
Die Distanz d und das gewicht w
Der (Mindest-)Abstand eines Blockcodes ist die minimale Anzahl von Positionen, die sich zwischen zwei beliebigen Codewörtern unterscheiden, und der relative Abstand ist der Bruch . Paar das Hamming-Abstand zwischen den beiden Codewörtern . Der Mindestabstand des Codes ist dann gegeben durch:
Da jeder Code injektiv sein muss, unterscheidet sich jedes Codewort mindestens in einer Position von allen anderen Codewörtern, also .
Das Gewicht eines Codeworts ist die Anzahl der Nicht-Null-Stellen. Das Mindestgewicht ist das kleinste Gewicht aller Codewörter oder das Gewicht des Codeworts mit der geringsten Anzahl von Nullen. Bei linearen Blockcodes entspricht der Mindestabstand dem Mindestgewicht:
Ein größerer Abstand ermöglicht mehr Fehlererkennung und -korrektur. Betrachten Sie beispielsweise nur Fehler, die Symbole der Codewörter ändern, aber niemals löschen oder hinzufügen (damit die Codewörter immer gleich lang bleiben). Dann ist die Anzahl der Fehler gleich der Anzahl der Stellen, an denen sich das gesendete und das empfangene Codewort unterscheiden. Ein Code mit Distanz erlaubt Fehler erkennen, da Ein Positionswechsel führt nie zu einem anderen Codewort. Außerdem, wenn es nicht mehr als Wenn während der Übertragung Fehler auftreten, kann der Empfänger das Codewort eindeutig decodieren. Denn für jedes empfangene Wort gibt es eine Distanz ist höchstens ein Codewort. Wenn mehr Fehler auftreten, kann der Empfänger das empfangene Wort nicht eindeutig decodieren, da mehrere Codewörter übereinstimmen können.
Notation
Die Notation beschreibt einen Blockcode über einem Alphabet der Größe , mit einer Blocklänge , Nachrichtenlänge und Distanz . Wenn der Blockcode linear ist, können Klammern verwendet werden, um dies anzuzeigen: . Beide als die werden oft weggelassen: die wenn es sich um einen Binärcode handelt (also ) und der wenn die Entfernung nicht wichtig, unbekannt oder schwer zu bestimmen ist.
Beispiele
Die meisten Fehlerkorrekturcodes sind Blockcodes.
- Der erste Fehlerkorrekturcode war der (7.4)-Hamming-Code, entwickelt von Richard Hamming im 1950. Dieser Code wandelt einen 4-Bit-Informationsblock um 3 7 in ein 7-Bit-Codewort um Paritätsbits hinzufügen. Dies ist ebenfalls ein linearer Code mit Abstand 3. In der obigen Notation würden wir den (7.4)-Hammingcode also als a . schreiben -Code.
- Reed-Solomon-Codes sind eine serie Codes, wo und ist eine Primärmacht.
- Rangcodes sind eine serie Codes mit .
- Hadamard-Codes sind eine Sequenz Codes, mit und .
Fehlererkennung und -korrektur
Ein Codewort kann als betrachtet werden Punkt in einem -dimensional Platz, wo der Code eine Teilmenge von ist. Ein Code mit Abstand bedeutet das gilt, dass die Hamming-Kugel auf den Punkt zentriert ist mit Radius ist leer. Der Hammingbal bedeutet hier die Sammlung von -dimensionale Wörter, deren Hamming-Abstand zu maximal ist. Ähnliches hat einen Code mit Abstand folgende Eigenschaften:
- können Fehler erkennen. Denn ein Codewort das einzige Codewort ist im Hammingbal mit Radius auf sich selbst zentriert ist ein Fehlermuster mit Fehler oder weniger wandeln niemals ein Codewort in ein anderes Codewort um. Wenn der Empfänger ein empfangenes Wort erhält, das nicht mit einem Codewort von übereinstimmt , werden die Fehler erkannt (aber es gibt keine Garantien für die Fehlerkorrektur, d. h. der Empfänger weiß, dass das empfangene Wort falsch ist, weiß aber nicht, was das gesendete Codewort ist).
- können Fehler korrigieren. Denn ein Codewort das einzige Codewort ist im Hammingbal mit Radius auf sich selbst zentriert h., die Hammingballs können auf zwei andere Codewörter mit Radius zentriert werden überschneiden sich nie. Ein Fehler kann dann durch das dem empfangenen Wort am nächsten liegende Codewort korrigiert werden Suche, solange die Anzahl der Fehler kleiner ist als ist: es gibt dann nur ein Codewort im Hammingbal zentriert auf mit Radius .
- Um mehr als zu dekodieren Fehler, kann verwenden Listendecodierung oder Maximum-Likelihood-Decodierung.
- können fehlende Symbole korrigieren. Es ist zu beachten, dass die Position des verschwundenen Symbols bekannt sein muss.
Literaturverzeichnis
- (und) van Lint, Jack H., Einführung in die Codierungstheorie, 3. Auflage. Springer-Verlag. DOI:10.1007/978-3-642-58575-3 (1999), p. 33. ISBN 978-3-540-64133-9 .
- (und) MacWilliams, Florence J.; Sloane, Neil J. A., Die Theorie der fehlerkorrigierenden Codes. Nordholland (1893), p. 35. ISBN 9780444851932 .
- (und) Berrou, Claude, Codes und Turbo-Codes. Springer-Verlag. DOI:10.1007/978-2-8178-0039-4 (2010), „Blockcodes“, S. 109-166. ISBN 9782817800387 .
| Quellen, Anmerkungen und/oder Verweise Dieser Artikel oder eine frühere Version ist eine (Teil-)Übersetzung des Artikels Blockcode auf der englischsprachigen Wikipedia, die unter der Creative Commons Namensnennung/Weitergabe unter gleichen Bedingungen Stürze. Siehe die Verlauf bearbeiten Dort. |