WikiDer > BCH-Code (Codierungstheorie)

BCH-code (coderingstheorie)

EIN BCH-Code ist innerhalb der Codierungstheorie ein fehlerkorrigierender Code, der in den letzten 50 Jahren unter Wissenschaftlern viel Aufmerksamkeit auf sich gezogen hat. BCH-Codes wurden 1959 von . erfunden Hocquenghem, und unabhängig im Jahr 1960 von Bose und Ray Chaudhuric. Die Abkürzung BCH besteht aus den Initialen der Erfinder.

Ein großer Vorteil von BCH-Codes besteht darin, dass sie mit a . decodiert werden algebraisch Methode bekannt als dekodiersyndrom. Dadurch kann die erforderliche elektronische Hardware einfach sein und der Energieverbrauch ist begrenzt. Außerdem sind sie als eine Klasse von Codes flexibel, mit Blocklängeneinstellbarkeit und Einsatzfähigkeit bei in der Praxis üblichen Bitfehlerraten. Mit einer Spezifikation kann also ein Code entworfen werden (natürlich innerhalb der mathematischen Grenzen).

Technisch gesehen ist ein BCH-Code ein mehrstufiger, zyklischein fehlerkorrigierender digitaler Code variabler Länge, der verwendet wird, um Fehlermuster mit mehr als einem Bitfehler pro Block zu korrigieren. BCH-Codes können auch mit Multilevel verwendet werden Phasenumtastung, vorausgesetzt, die Anzahl der Ebenen ist a Primzahl ist, oder a Leistung einer Primzahl. Ein 11-stufiger BCH-Code wurde verwendet, um 10 Dezimalstellen plus ein Zeichen darzustellen.

Konstruktion

Ein BCH-Code ist a Polynomcode über einen endlicher Körper mit einem bestimmten erzeugenden Polynom. Es ist auch ein zyklischer Code.

Eine einfache Klasse von BCH-Codes

Um das Konzept anschaulich zu vermitteln, wird zunächst eine spezielle Klasse von BCH-Codes diskutiert.

Definition. Nehmen Sie ein endlicher Körper, bei welchem ist die Potenz einer Primzahl. Nimm positive ganze Zahlen , , und so dass und . Wir konstruieren einen Polynomcode über mit Blocklänge , und ein Minimum Hamming-Abstand von mindestens . Was noch anzugeben ist, ist das erzeugende Polynom dieses Codes.

Sie eine primitive n-te Potenzwurzel der Einheit . Für alle , bezeichnen wir als zum Minimalpolynom von mit Koeffizienten in . Das erzeugende Polynom des BCH-Codes ist definiert als kleinstes gemeinsames Vielfaches.

Beispiel

Annehmen und (hieraus folgt das ). Wir nehmen mehrere Werte von behandeln. Es gibt eine primitive Wurzel was befriedigt

(1);

das entsprechende minimale Polynom über ist: . Beachten Sie, dass in , Die gleichung gilt, was bedeutet, dass.So ist eine Wurzel von , und so gilt das

.

Zu Zur Berechnung ist zu beachten, dass durch wiederholtes Anwenden von Gleichung (1) die folgenden linearen Gleichungen erhalten werden können:

Die fünf rechten Seiten müssen abhängig sein, und das finden wir tatsächlich .Da es keine Abhängigkeit geringeren Grades gibt, ist das Minimalpolynom von is das Polynom .

Ähnlich finden wir das

  • Der BCH-Code mit hat als erzeugendes Polynom

Die minimale Hamming-Distanz beträgt mindestens 3 und korrigiert 1-Bit-Fehler. Da das erzeugende Polynom Grad 4 hat, hat dieser Code 11 Datenbits und 4 Prüfbits.

  • Der BCH-Code mit hat als erzeugendes Polynom

Die minimale Hamming-Distanz beträgt mindestens 5 und der Code korrigiert 2 Bitfehler. Da das erzeugende Polynom den Grad 8 hat, enthält dieser Code 7 Datenbits und 8 Prüfbits.

  • Der BCH-Code mit hat als erzeugendes Polynom

Die minimale Hamming-Distanz beträgt mindestens 7 und der Code korrigiert 3-Bit-Fehler. Dieser Code hat 5 Datenbits und 10 Prüfbits.

  • Der BCH-Code mit und oben hat als erzeugendes Polynom

Dieser Code hat eine Hamming-Distanz von mindestens 15 und korrigiert 7-Bit-Fehler. Der Code hat 1 Datenbit und 14 Prüfbits. Tatsächlich besteht dieser Code aus den folgenden zwei Codewörtern: 000000000000000 und 11111111111111111.

Allgemeine BCH-Codes

Allgemeine BCH-Codes unterscheiden sich von den oben diskutierten einfachen BCH-Codes in zweierlei Hinsicht. Voraussetzung ist zunächst, dass durch eine allgemeinere Anforderung ersetzt. Zweitens stimmen die aufeinanderfolgenden Nullstellen des Generatorpolynoms nicht überein beginnen müssen; es reicht also, wenn die Reihenfolge so aussieht: (Anstatt von ).

Definition. Nehmen Sie ein endlicher Körper, bei welchem ist eine Potenz einer Primzahl. Wähle positive ganze Zahlen so dass , , und ist die multiplikative Ordnung von modular (was bedeutet ist der kleinste Macht mit der Eigenschaft, dass modular ).

Wie oben eine primitive n-te Wurzel der Macht in eenheid , und ist (für alle i) das minimale Polynom über von . Das Generatorpolynom des BCH-Codes ist nun definiert als kleinstes gemeinsames Vielfaches.

Hinweis: wenn wie im einfachen Fall dann gleich 1 und ist die Ordnung von modular automatisch gleich . Der "einfache" BCH-Code ist also tatsächlich ein spezifisches Beispiel innerhalb der allgemeinen BCH-Codes.

Eigenschaften

1. Das Generatorpolynom eines BCH-Codes hat höchstens Grad . Und wenn und , dann ist der Grad des Generatorpolynoms höchstens .

Beweis: beliebiges minimales Polynom hat höchstens einen Abschluss . Das kleinste gemeinsame Vielfache von minimale Polynome haben also höchstens den Grad . Und wenn , dann ist für alle . So ist das kleinste gemeinsame Vielfache von höchstens minimale Polynome für ungerade Indizes , die jeweils den Grad nicht überschreiten haben.

2. Ein BCH-Code hat das Minimum Hamming-Abstand mindestens . Beweis im einfachen Fall (der Beweis für den allgemeinen Fall ist ähnlich): Angenommen, ist ein Codewort mit weniger als Ziffern ungleich Null. Dann ist

Das wussten wir Wurzeln sind von , und damit auch von . Es folgt dem erfüllen die folgenden Gleichungen für :

.

Das teilen wir jetzt , und wir definieren , als Ergebnis zu erhalten

für alle , was äquivalent zu ist

Diese Matrix ist ein Vandermonde-Matrix, und hat as bestimmend

,

was nicht null ist. Es folgt dem , und somit .

3. Ein BCH-Code ist zyklisch.

Beweis: ein Polynomcode mit Blocklänge ist genau dann zyklisch, wenn sein Generatorpolynom ein Teiler von ist . weil ist das minimale Polynom mit Wurzeln , es muss nur überprüft werden, ob alle Wurzel sein von . Dies folgt jedoch direkt aus der Tatsache, dass per definitionem a ist die Wurzel der Macht.

Sonderfälle

  • Ein BCH-Code mit wird ein BCH-Code im engeren Sinne erwähnt.
  • Ein BCH-Code mit wird Primitive erwähnt.

Die oben betrachteten "einfachen" BCH-Codes bilden genau die primitiven BCH-Codes im engeren Sinne.

  • Ein BCH-Code im engeren Sinne mit wird ein Reed-Solomon-Code erwähnt.