Co to jest kod Hamminga: historia, działanie i jego zastosowania

Wypróbuj Nasz Instrument Do Eliminowania Problemów





W systemach cyfrowych przesyłane dane Komunikacja mogą zostać uszkodzone z powodu hałasu zewnętrznego i innych awarii fizycznych. Jeśli przesyłane dane nie są zgodne z podanymi danymi wejściowymi, nazywa się to „błędem”. Błędy danych mogą spowodować usunięcie ważnych danych w systemach cyfrowych. Przesyłanie danych będzie miało postać bitów (0 i 1) w systemach cyfrowych. Jeśli którykolwiek z bitów zostanie zmieniony, może to wpłynąć na wydajność całego systemu. Jeśli bit „1” zostanie zmieniony na bit „0” lub odwrotnie, wówczas nazywa się to błędem bitu. Są różne rodzaje błędów jak błędy jednobitowe, błędy wielokrotne i błędy serii. W tym artykule omówimy korekcję i wykrywanie błędów oraz kod Hamminga.

Co to jest wykrywanie i korygowanie błędów?

W komunikacji cyfrowej dane zostaną utracone, jeśli wystąpi błąd w przesyłaniu informacji z jednego systemu / sieci do innego systemu / sieci. Dlatego ważne jest, aby znaleźć i poprawić błędy. Jakiś błąd wykrycie i metody korekcji są wykorzystywane do wykrywania i korygowania błędów w celu efektywnej komunikacji. W przypadku zastosowania tych metod dane mogą być przesyłane z większą dokładnością.




Wykrywanie błędów definiuje się jako metodę wykorzystywaną do wykrywania błędów przesyłanych z nadajnika / nadawcy do odbiornika w systemach cyfrowych. Kody redundancji są dodawane do danych podczas transmisji w celu znalezienia błędów. Są to nazywane kodami wykrywającymi błędy.

Korekcja błędów to korekta danych przesyłanych z nadajnika do odbiornika. Korekcję błędów można przeprowadzić na dwa sposoby.



Wsteczna korekcja błędów

W tego rodzaju korekcji błędów odbiorca żąda od nadawcy ponownego przesłania danych, jeśli odbiorca wykryje błąd.

Korekcja błędów do przodu

jeśli w danych odebranych przez odbiornik wykryje błąd, wykonuje kody korygujące błędy, aby automatycznie poprawić i odzyskać dane.


Jeśli istnieje „m” liczby bitów danych i „r” liczby nadmiarowych bitów, to kombinacje informacji będą wynosić 2r.

2r> = m + r + 1

Rodzaje kodów wykrywania błędów

Błędy w odebranych danych można wykryć za pomocą 3 rodzajów kodów wykrywania błędów. Są to: kontrola parzystości, cykliczna kontrola nadmiarowa (CRC) i wzdłużna kontrola nadmiarowa.

Test zgodności

Nadmiarowy bit zwany bitem parzystości jest dodawany, aby liczba bitów była parzysta lub nieparzysta w przypadku parzystości lub nieparzystości. Odbiornik liczy liczbę bitów (jedynek) w ramce, aby dodać bit parzystości. Nazywa się to sprawdzaniem parzystości. Jeśli liczba jedynek w ramce jest parzysta, wówczas używana jest parzystość przez dodanie bitu „1” o wartości zerowej. Podobnie, jeśli liczba 1 jest nieparzysta, to nieparzysta parzystość jest używana przez dodanie bitu o wartości „1”.

Wykrywanie błędów

wykrywanie błędów

W związku z tym służy do zapewnienia, że ​​ramka / data odebrana przez odbiornik ze źródła nie zostanie uszkodzona. W tego typu wykrywaniu błędów liczba 1 powinna być równa w odebranej ramce. Jest to znacznie tańsze spośród wszystkich typów wykrywania błędów.

Wzdłużna kontrola nadmiarowa (LRC)

Po zorganizowaniu zestawu / bloku bitów można użyć metody LRC do sprawdzenia bitu parzystości w każdej ramce. Pomaga wysłać zestaw bitów parzystości wraz z oryginalnymi danymi i sprawdza nadmiarowość.

Cykliczna kontrola nadmiarowa

jego typ służy do wykrywania, czy dane / ramka otrzymana ze źródła jest ważna, czy nie. Polega na binarnym podziale danych, które mają zostać przesłane i wykorzystuje wielomiany (do generowania dzielnika). Przed transmisja , nadawca wykonuje operację dzielenia danych / bitów / ramki w celu obliczenia pozostałej części.

Cykliczna kontrola nadmiarowa

cykliczna kontrola nadmiarowości

Podczas przesyłania rzeczywistych danych od nadawcy, dodaje resztę na końcu rzeczywistych danych. Połączenie rzeczywistych danych i reszty jest nazywane słowem kodowym. Dane są przesyłane w postaci słów kodowych. W tym procesie, jeśli dane są uszkodzone, dane zostaną odrzucone przez odbiorcę, w przeciwnym razie zostaną zaakceptowane.

Co to jest kod Hamminga?

Kod Hamminga definiuje się jako kod liniowy, który jest używany w procesie wykrywania błędów do 2 błędów pośrednich. Jest również zdolny do wykrywania błędów jednobitowych. W tej metodzie nadmiarowe bity są dodawane do danych / wiadomości przez nadawcę w celu zakodowania danych. Aby wykonać wykrywanie i korekcję błędów, te nadmiarowe bity są dodawane w określonych pozycjach w procesie korekcji błędów.

Kod Hamminga

kod hamming

Historia kodów Hamminga

W 1950 roku Richard W. Hamming wynalazł kody Hamminga do wykrywania i korygowania błędów w danych. Po ewolucji komputerów o większej niezawodności, wprowadził kody Hamminga dla kodów 1-błędu korygujących, a później rozszerzył do 2-błędów. Kody Hamminga są tworzone, ponieważ kontrola parzystości nie może wykryć i poprawić błędów w danych. Kody Hamminga są wstawiane do dowolnej długości bloku danych między rzeczywistymi danymi a bitami nadmiarowości. Opracował szereg algorytmów do pracy nad problemami metod korekcji błędów, a kody te są szeroko stosowane w pamięci ECC.

Proces kodowania wiadomości za pomocą kodu Hamminga

Proces kodowania wiadomości za pomocą kodu hamming przez nadawcę obejmuje 3 etapy.

Krok 1: Pierwszym krokiem jest obliczenie liczby zbędnych bitów w wiadomości

  • Na przykład, jeśli wiadomość zawiera „n” liczby bitów i „p” liczba nadmiarowych bitów jest dodana do wiadomości, wówczas „np” oznacza (n + p + 1) różne stany.
  • Gdzie (n + p) reprezentuje lokalizację błędu w każdej pozycji bitu
  • 1 (stan dodatkowy) oznacza brak błędu.
  • Ponieważ „p” oznacza 2 ^ p (2p) stany, które są równe (n + p + 1) stanom.

Krok 2: Umieść nadmiarowe bity w dokładnej / prawidłowej pozycji

Bity „p” są wstawiane w pozycje bitów, które mają potęgę 2, jak 1, 2, 4, 8, 16 itd. Te pozycje bitów są oznaczone jako p1 (pozycja 1), p2 (pozycja 2), p3 (pozycja 4) itp.

Krok 3: Oblicz wartości nadmiarowych bitów

  • Tutaj bity parzystości są używane do obliczania wartości bitów nadmiarowych.
  • Bity parzystości mogą sprawić, że liczba 1 w wiadomości będzie parzysta lub nieparzysta.
  • Jeśli łączna liczba jedynek w wiadomości jest parzysta, używana jest parzystość
  • Jeśli łączna liczba jedynek w wiadomości jest nieparzysta, używana jest nieparzysta parzystość.

Proces odszyfrowywania wiadomości w kodzie Hamminga

Proces odszyfrowania wiadomości otrzymanej od nadawcy przez odbiorcę za pomocą kodu hamming obejmuje następujące kroki. Ten proces to nic innego jak ponowne obliczenie w celu wykrycia i skorygowania błędów w wiadomości.

Krok 1: Policz liczbę zbędnych bitów

Formuła kodowania wiadomości przy użyciu nadmiarowych bitów to:

2p≥ n + p + 1

Krok 2: popraw pozycje wszystkich zbędnych bitów

Liczba „p” nadmiarowych bitów jest umieszczona na pozycjach bitów o potędze 2, takich jak 1,2,4,8,16,32 itd.

Krok 3: kontrola parzystości (parzystość nieparzysta i parzysta)

Bity parzystości są obliczane na podstawie liczby 1 w bitach danych i bitach nadmiarowych.

Na przykład

Parzystość p1 to 1, 3, 5, 7, 9, 11,…

Parzystość p2 to 2, 3, 6, 7, 10, 11,…

Parzystość p3 to 4-7, 12-15, 20-23,…

Zalety kodu Hamminga

Główną zaletą używania kodu Hamminga jest opłacalność, jeśli strumień danych zawiera błędy jednobitowe.

  • Może zapewnić wykrywanie błędów, a także wskazuje bit, który zawiera błąd do korekcji.
  • Kody Hamminga są bardzo łatwe i najlepsze w użyciu w pamięci komputera oraz jednobitowej korekcji i wykrywaniu błędów.

Wady kodu Hamminga

  • Jest najlepszy tylko do jednobitowej korekcji i wykrywania błędów. W przypadku błędów wielu bitów całość może zostać uszkodzona.
  • Algorytm kodu Hamminga może rozwiązać tylko błędy jednobitowe.

Zastosowania kodów Hamminga

Kody Hamminga są używane w,

  • Przetwarzanie danych
  • Telekomunikacja
  • Kompresja danych
  • Rozwiązywanie zagadek i kodów turbo
  • Satelity
  • Plasma CAM
  • Ekranowane przewody
  • Modemy
  • Pamięć komputera
  • Otwarte złącza
  • Systemy wbudowane i procesor

FAQs

1). Czy kod Hamminga może wykryć 2-bitowe błędy?

Kody Hamminga mogą wykrywać i korygować do 2-bitowych błędów w strumieniu danych

2). Jak naprawić kod Hamminga?

Kody Hamminga są umieszczane w dowolnej długości danych między rzeczywistymi danymi a nadmiarowymi bitami. Te kody to miejsca o minimalnej odległości 3 bitów

3). Jaki jest kod parzystości?

Kod parzystości lub bit parzystości dodaje bit do odebranej ramki (dane zawierają jedynki i zera), aby całkowita liczba bitów (jedynek) była parzysta lub nieparzysta.

4). Jaka jest odległość Hamminga między danymi?

Odległość Hamminga między dwoma różnymi strumieniami danych o równej długości wynosi 1.

Odległość Hamminga między dwoma ciągami danych o równej długości można obliczyć za pomocą operacji XOR.

Na przykład a = 11011001

b = 10011101

Odległość Hamminga można obliczyć jako:

11011001 ⊕ 10011101 = 01000100 (liczba 1-bitów to 2)

Odległość Hamminga wskazuje liczbę 1 w wynikowym strumieniu danych

Czyli d (11011001, 10011101) = 2

Podobnie 010 ⊕ 011 = 001, d (010, 011) = 1.

5). Czy kod Hamminga jest cykliczny?

Tak, kody Hamminga są odpowiednikami kodów cyklicznych, których można używać jako kodów wykrywania błędów.

Tak więc chodzi o korekcję i wykrywanie błędów, rodzaje wykrywania błędów, kody Hamminga , proces szyfrowania i odszyfrowywania wiadomości za pomocą kodów Hamminga, zastosowania kodów Hamminga, zalety i wady kodów Hamminga. Oto pytanie do Ciebie: „Jakie są zastosowania wykrywania i korygowania błędów?”