Digitale Kommunikation - Fehlerkontrollcodierung

Rauschen oder Fehler ist das Hauptproblem im Signal, das die Zuverlässigkeit des Kommunikationssystems stört. Error control codingist das Codierungsverfahren, mit dem das Auftreten von Fehlern kontrolliert wird. Diese Techniken helfen bei der Fehlererkennung und Fehlerkorrektur.

Abhängig von den auf sie angewendeten mathematischen Prinzipien gibt es viele verschiedene Fehlerkorrekturcodes. In der Vergangenheit wurden diese Codes jedoch klassifiziertLinear block codes und Convolution codes.

Lineare Blockcodes

In den linearen Blockcodes haben die Paritätsbits und Nachrichtenbits eine lineare Kombination, was bedeutet, dass das resultierende Codewort die lineare Kombination von zwei beliebigen Codewörtern ist.

Betrachten wir einige Datenblöcke, die enthalten kBits in jedem Block. Diese Bits werden mit den Blöcken abgebildet, die habennBits in jedem Block. Hiern ist größer als k. Der Sender fügt redundante Bits hinzu(n-k)Bits. Das Verhältnisk/n ist der code rate. Es wird mit bezeichnetr und der Wert von r ist r < 1.

Das (n-k) hier hinzugefügte Bits sind parity bits. Paritätsbits helfen bei der Fehlererkennung und Fehlerkorrektur sowie beim Auffinden der Daten. In den übertragenen Daten entsprechen die am weitesten links liegenden Bits des Codeworts den Nachrichtenbits, und die am weitesten rechts liegenden Bits des Codeworts entsprechen den Paritätsbits.

Systematischer Code

Jeder lineare Blockcode kann ein systematischer Code sein, bis er geändert wird. Daher wird ein unveränderter Blockcode als a bezeichnetsystematic code.

Es folgt die Darstellung der structure of code wordentsprechend ihrer Zuordnung.

Wenn die Nachricht nicht geändert wird, wird sie als systematischer Code aufgerufen. Dies bedeutet, dass die Verschlüsselung der Daten die Daten nicht ändern sollte.

Faltungscodes

Bisher haben wir in den linearen Codes diskutiert, dass systematischer unveränderter Code bevorzugt wird. Hier sind die Daten von totaln Bits, wenn übertragen, k Bits sind Nachrichtenbits und (n-k) Bits sind Paritätsbits.

Während des Codierungsprozesses werden die Paritätsbits von den gesamten Daten subtrahiert und die Nachrichtenbits werden codiert. Jetzt werden die Paritätsbits erneut hinzugefügt und die gesamten Daten werden erneut codiert.

Die folgende Abbildung zeigt ein Beispiel für Datenblöcke und Datenströme, die zur Übertragung von Informationen verwendet werden.

Der gesamte oben genannte Prozess ist langwierig und hat Nachteile. Die Zuweisung von Puffer ist hier ein Hauptproblem, wenn das System ausgelastet ist.

Dieser Nachteil wird in Faltungscodes behoben. Wobei dem gesamten Datenstrom Symbole zugewiesen und dann übertragen werden. Da die Daten ein Bitstrom sind, wird kein Puffer zum Speichern benötigt.

Hamming-Codes

Die Linearitätseigenschaft des Codeworts besteht darin, dass die Summe zweier Codewörter auch ein Codewort ist. Hamming-Codes sind die Art vonlinear error correcting Codes, die bis zu zwei Bitfehler erkennen oder Ein-Bit-Fehler korrigieren können, ohne dass nicht korrigierte Fehler erkannt werden.

Während der Verwendung der Hamming-Codes werden zusätzliche Paritätsbits verwendet, um einen einzelnen Bitfehler zu identifizieren. Um von einem Bitmuster zum anderen zu gelangen, müssen einige Bits in den Daten geändert werden. Eine solche Anzahl von Bits kann als bezeichnet werdenHamming distance. Wenn die Parität einen Abstand von 2 hat, kann ein Ein-Bit-Flip erkannt werden. Dies kann jedoch nicht korrigiert werden. Außerdem können keine Zwei-Bit-Flips erkannt werden.

Hamming-Code ist jedoch ein besseres Verfahren als die zuvor diskutierten bei der Fehlererkennung und -korrektur.

BCH-Codes

BCH-Codes sind nach den Erfindern benannt Bose, Chaudari und Hocquenghem. Während des BCH-Code-Entwurfs wird die Anzahl der zu korrigierenden Symbole gesteuert, und daher ist eine Mehrbitkorrektur möglich. BCH-Codes sind eine leistungsstarke Technik zur Fehlerkorrektur von Codes.

Für alle positiven ganzen Zahlen m ≥ 3 und t < 2m-1Es gibt einen BCH-Binärcode. Es folgen die Parameter eines solchen Codes.

Blocklänge n = 2m-1

Anzahl der Paritätsprüfstellen n - k ≤ mt

Mindestabstand dmin ≥ 2t + 1

Dieser Code kann als aufgerufen werden t-error-correcting BCH code.

Zyklische Codes

Die zyklische Eigenschaft von Codewörtern besteht darin, dass jede zyklische Verschiebung eines Codeworts auch ein Codewort ist. Zyklische Codes folgen dieser zyklischen Eigenschaft.

Für einen linearen Code C, wenn jedes Codewort dh C = (C1, C2, ...... Cn)von C hat eine zyklische Rechtsverschiebung von Komponenten, es wird ein Codewort. Diese Rechtsverschiebung ist gleichn-1zyklische Linksverschiebungen. Daher ist es bei jeder Verschiebung unveränderlich. Also der lineare CodeC, da es bei jeder Verschiebung unveränderlich ist, kann als a bezeichnet werden Cyclic code.

Zyklische Codes werden zur Fehlerkorrektur verwendet. Sie werden hauptsächlich zur Korrektur von Doppelfehlern und Burst-Fehlern verwendet.

Dies sind also einige Fehlerkorrekturcodes, die am Empfänger zu erkennen sind. Diese Codes verhindern, dass Fehler auftreten, und stören die Kommunikation. Sie verhindern auch, dass das Signal von unerwünschten Empfängern abgehört wird. Hierzu gibt es eine Klasse von Signalisierungstechniken, die im nächsten Kapitel erläutert werden.