Was ist Hamming Code: Geschichte, Arbeitsweise und ihre Anwendungen

Versuchen Sie Unser Instrument, Um Probleme Zu Beseitigen





In digitalen Systemen werden die übertragenen Daten für Kommunikation kann durch externes Rauschen und andere physische Fehler beschädigt werden. Wenn die übertragenen Daten nicht mit den angegebenen Eingabedaten übereinstimmen, wird dies als 'Fehler' bezeichnet. Die Datenfehler können wichtige Daten in digitalen Systemen löschen. Die Datenübertragung erfolgt in Form von Bits (0 und 1) in digitalen Systemen. Wenn einer der Bits geändert wird, kann die Leistung des gesamten Systems beeinträchtigt werden. Wenn das Bit '1' in das Bit '0' geändert wird oder umgekehrt, wird es als Bitfehler bezeichnet. Es gibt verschiedene Arten von Fehlern wie Einzelbitfehler, Mehrfachfehler und Burst-Fehler. In diesem Artikel werden die Fehlerkorrektur und -erkennung sowie der Hamming-Code erläutert.

Was ist Fehlererkennung und -korrektur?

Bei der digitalen Kommunikation gehen die Daten verloren, wenn bei der Übertragung von Informationen von einem System / Netzwerk zu einem anderen System / Netzwerk ein Fehler auftritt. Daher ist es wichtig, Fehler zu finden und zu korrigieren. Ein Fehler Erkennung und Korrekturverfahren werden verwendet, um die Fehler für eine effektive Kommunikation zu erkennen und zu korrigieren. Wenn diese Methoden verwendet werden, können die Daten mit höherer Genauigkeit übertragen werden.




Die Fehlererkennung ist definiert als das Verfahren zum Erkennen der vom Sender / Sender zum Empfänger übertragenen Fehler in digitalen Systemen. Während der Übertragung werden den Daten Redundanzcodes hinzugefügt, um die Fehler zu finden. Diese werden als Fehlererkennungscodes bezeichnet.

Fehlerkorrektur ist die Korrektur von Daten, die vom Sender zum Empfänger übertragen werden. Die Fehlerkorrektur kann auf zwei Arten erfolgen.



Rückwärtsfehlerkorrektur

Bei dieser Art der Fehlerkorrektur fordert der Empfänger den Sender auf, die Daten erneut zu übertragen, wenn der Empfänger den Fehler erkennt.

Vorwärtsfehlerkorrektur

Wenn die vom Empfänger empfangenen Daten den Fehler finden, führt er die Fehlerkorrekturcodes aus, um die Daten automatisch zu korrigieren und wiederherzustellen.


Wenn es 'm' Anzahl von Datenbits und 'r' Anzahl redundanter Bits gibt, sind die Informationskombinationen 2r.

2r> = m + r + 1

Arten von Fehlererkennungscodes

Die Fehler in den empfangenen Daten können mithilfe von 3 Arten von Fehlererkennungscodes erkannt werden. Dies sind Paritätsprüfung, zyklische Redundanzprüfung (CRC) und longitudinale Redundanzprüfung.

Paritätsprüfung

Das redundante Bit, das als Paritätsbit bezeichnet wird, wird hinzugefügt, um die Anzahl der Bits bei gerader oder ungerader Parität gerade oder ungerade zu machen. Der Empfänger zählt die Anzahl der Bits (1) in einem Rahmen, um das Paritätsbit hinzuzufügen. Dies wird als Paritätsprüfung bezeichnet. Wenn die Anzahl der Einsen in einem Frame gerade ist, wird eine gerade Parität verwendet, indem das Bit '1' mit dem Wert Null addiert wird. In ähnlicher Weise wird von der Anzahl der Einsen ungerade die ungerade Parität verwendet, indem das Bit mit dem Wert '1' addiert wird.

Fehlererkennung

Fehlererkennung

Daher wird es verwendet, um sicherzustellen, dass der vom Empfänger von der Quelle empfangene Frame / Datum nicht beschädigt ist. Bei dieser Art der Fehlererkennung sollte die Anzahl der Einsen im empfangenen Frame gerade sein. Es ist unter allen Arten der Fehlererkennung sehr viel billiger.

Longitudinal Redundancy Check (LRC)

Wenn der Satz / Block von Bits organisiert ist, kann die LRC-Methode verwendet werden, um das Paritätsbit in jedem Rahmen zu überprüfen. Es hilft, den Satz von Paritätsbits zusammen mit den Originaldaten zu senden und die Redundanz zu überprüfen.

Zyklische Redundanzprüfung

Dieser Typ wird verwendet, um zu erkennen, ob die von der Quelle empfangenen Daten / Frames gültig sind oder nicht. Es beinhaltet die binäre Aufteilung der Daten, die gesendet werden sollen, und verwendet Polynome (um einen Divisor zu erzeugen). Vor die Übertragung Der Absender führt eine Teilungsoperation an den Daten / Bits / Rahmen durch, um den Rest zu berechnen.

Zyklische Redundanzprüfung

zyklische Redundanzprüfung

Während der Übertragung der tatsächlichen Daten vom Absender wird der Rest am Ende der tatsächlichen Daten hinzugefügt. Die Kombination der tatsächlichen Daten und des Restes wird als Codewort bezeichnet. Die Daten werden in Form von Codewörtern übertragen. Wenn in diesem Prozess die Daten beschädigt sind, werden die Daten vom Empfänger zurückgewiesen, andernfalls werden sie akzeptiert.

Was ist der Hamming Code?

Hamming-Code ist definiert als ein linearer Code, der im Fehlererkennungsprozess bis zu 2 Zwischenfehlern verwendet wird. Es ist auch in der Lage, Einzelbitfehler zu erkennen. Bei diesem Verfahren werden die redundanten Bits vom Absender zu den Daten / Nachrichten hinzugefügt, um die Daten zu codieren. Um eine Fehlererkennung und -korrektur durchzuführen, werden diese redundanten Bits an bestimmten Positionen für den Fehlerkorrekturprozess hinzugefügt.

Hamming-Code

Hamming-Code

Geschichte der Hamming-Codes

1950 erfand Richard W. Hamming Hamming-Codes, um Datenfehler zu erkennen und zu korrigieren. Nach der Entwicklung von Computern mit höherer Zuverlässigkeit führte er Hamming-Codes für 1-Fehler-Korrekturcodes ein und erweiterte sie später auf 2-Fehler-Erkennungscodes. Hamming-Codes werden erstellt, weil die Paritätsprüfung Fehler in den Daten nicht erkennen und korrigieren kann. Die Hamming-Codes werden in jede Blocklänge von Daten zwischen tatsächlichen Daten und Redundanzbits eingefügt. Er entwickelte eine Reihe von Algorithmen, um die Probleme von Fehlerkorrekturmethoden zu lösen, und diese Codes werden häufig im ECC-Speicher verwendet.

Prozess des Codierens einer Nachricht unter Verwendung von Hamming-Code

Das Codieren einer Nachricht unter Verwendung eines Hamming-Codes durch den Absender umfasst 3 Schritte.

Schritt 1: Der erste Schritt besteht darin, die Anzahl der redundanten Bits in einer Nachricht zu berechnen

  • Wenn eine Nachricht beispielsweise 'n' Anzahl von Bits enthält und 'p' Anzahl redundanter Bits zur Nachricht hinzugefügt wird, zeigt 'np' (n + p + 1) verschiedene Zustände an.
  • Wobei (n + p) den Ort eines Fehlers in jeder Bitposition darstellt
  • 1 (zusätzlicher Zustand) repräsentiert keinen Fehler.
  • Da 'p' 2 ^ p (2p) Zustände angibt, die gleich (n + p + 1) Zuständen sind.

Schritt 2: Platzieren Sie die redundanten Bits in der exakten / korrekten Position

'p'-Bits werden in die Bitpositionen eingefügt, die die Potenz von 2 sind, wie 1, 2, 4, 8, 16 usw. Diese Bitpositionen werden als p1 (Position 1), p2 (Position 2), p3 (Position) angegeben 4) usw.

Schritt 3: Berechnen Sie die Werte redundanter Bits

  • Hier werden Paritätsbits verwendet, um die Werte redundanter Bits zu berechnen.
  • Paritätsbits können die Anzahl der Einsen in einer Nachricht entweder gerade oder ungerade machen.
  • Wenn die Gesamtzahl der Einsen in einer Nachricht gerade ist, wird eine gerade Parität verwendet
  • Wenn die Gesamtzahl der Einsen in einer Nachricht ungerade ist, wird eine ungerade Parität verwendet.

Prozess zum Entschlüsseln einer Nachricht im Hamming-Code

Das Entschlüsseln einer vom Absender vom Empfänger empfangenen Nachricht unter Verwendung des Hamming-Codes umfasst die folgenden Schritte. Dieser Prozess ist nichts anderes als eine Neuberechnung, um die Fehler in einer Nachricht zu erkennen und zu korrigieren.

Schritt 1: Zählen Sie die Anzahl der redundanten Bits

Die Formel zum Codieren der Nachricht mit redundanten Bits lautet:

2p≥ n + p + 1

Schritt 2: Korrigieren Sie die Positionen aller redundanten Bits

Die Anzahl der redundanten Bits wird in Bitpositionen mit einer Leistung von 2 wie 1,2,4,8,16,32 usw. Platziert

Schritt 3: Paritätsprüfung (ungerade Parität und gerade Parität)

Paritätsbits werden basierend auf der Anzahl der Einsen in Datenbits und redundanten Bits berechnet.

Zum Beispiel

Die Parität von p1 wäre 1, 3, 5, 7, 9, 11,…

Die Parität von p2 wäre 2, 3, 6, 7, 10, 11,…

Die Parität von p3 wäre 4-7, 12-15, 20-23,…

Vorteile des Hamming-Codes

Der Hauptvorteil der Verwendung eines Hamming-Codes ist kostengünstig, wenn ein Datenstrom Einzelbitfehler enthält.

  • Es kann eine Fehlererkennung bereitstellen und zeigt auch das Bit an, das einen Fehler zur Korrektur enthält.
  • Hamming-Codes sind sehr einfach und am besten im Computerspeicher sowie bei der Korrektur und Erkennung von Einzelbitfehlern zu verwenden.

Nachteile des Hamming-Codes

  • Dies ist am besten nur für die Einzelbit-Fehlerkorrektur und -erkennung geeignet. Wenn mehrere Bits fehlerhaft sind, kann das gesamte beschädigt werden.
  • Der Hamming-Code-Algorithmus kann nur Einzelbitfehler beheben.

Anwendungen von Hamming-Codes

Hamming-Codes werden verwendet in,

  • Computing
  • Telekommunikation
  • Datenkompression
  • Lösen von Rätseln und Turbocodes
  • Satelliten
  • Plasma CAM
  • Abgeschirmte Drähte
  • Modems
  • Computerspeicher
  • Stecker öffnen
  • Eingebettete Systeme und Prozessor

FAQs

1). Kann der Hamming-Code 2-Bit-Fehler erkennen?

Hamming-Codes können bis zu 2-Bit-Fehler in einem Datenstrom erkennen und korrigieren

2). Wie behebt man den Hamming-Code?

Hamming-Codes werden in einer beliebigen Datenlänge zwischen den tatsächlichen Daten und den redundanten Bits platziert. Diese Codes sind Stellen mit einem Mindestabstand von 3 Bit

3). Was ist der Paritätscode?

Der Paritätscode oder das Paritätsbit fügt dem empfangenen Rahmen ein Bit hinzu (Daten enthalten Einsen und Nullen), um die Gesamtzahl der Bits (Einsen) gerade oder ungerade zu machen.

4). Wie groß ist der Hamming-Abstand zwischen den Daten?

Der Hamming-Abstand zwischen den beiden gleich langen Datenströmen beträgt 1.

Der Hamming-Abstand zwischen zwei gleich langen Datenstrings kann mithilfe der XOR-Operation berechnet werden.

Zum Beispiel a = 11011001

b = 10011101

Die Hamming-Distanz kann berechnet werden als:

11011001 ⊕ 10011101 = 01000100 (Anzahl der 1-Bits sind 2)

Der Hamming-Abstand gibt die Anzahl der Einsen im resultierenden Datenstrom an

Also ist d (11011001, 10011101) = 2

In ähnlicher Weise ist 010 ≤ 011 = 001, d (010, 011) = 1.

5). Ist der Hamming-Code zyklisch?

Ja, Hamming-Codes entsprechen zyklischen Codes, die als Fehlererkennungscodes verwendet werden können.

Hier geht es also um Fehlerkorrektur und -erkennung, Arten der Fehlererkennung, Hamming-Codes , der Prozess des Ver- und Entschlüsselns der Nachricht unter Verwendung von Hamming-Codes, Anwendungen von Hamming-Codes, Vor- und Nachteile von Hamming-Codes. Hier ist eine Frage an Sie: 'Was sind die Anwendungen der Fehlererkennung und -korrektur?'