W swoim działaniu wszelkie zautomatyzowanesystem stoi przed problemem odpowiedniego postrzegania danych, czystości otrzymywanych informacji, znajdowania błędów, a także ich poprawiania. Im poważniejsze są zadania przypisane do obiektu przetwarzania informacji, tym bardziej złożony i wrażliwy jest system do identyfikowania uszkodzonych elementów oprogramowania i błędów w przepływie informacji, które musi on działać.
Jedna z opcji sprawdzania informacjiStrumień błędów, a nawet ich korekty, to kodowanie informacji numerycznych. Istnieje wiele kodów i metod używanych podczas pracy z różnymi danymi. Tak zwany kod Hamminga jest klasycznym przykładem, który stał się punktem wyjścia do tworzenia bardziej złożonych i wyrafinowanych sposobów znajdowania i eliminowania błędów występujących podczas przesyłania danych.
Historia kodu zaczyna się w środkuLata 40. W tym czasie Richard Hamming opanował maszynę liczącą Bell Model V, pracując w wybitnych Bell Labs. Wtedy był to ultranowoczesny mechanizm wykorzystujący elektromechaniczną zasadę działania. Konstrukcja maszyny wykorzystała bloki przekaźników. Ich użycie nie dało znaczącego przyspieszenia. Wykonanie jednego obrotu zajęło kilka sekund. Dane wprowadzono za pomocą kart dziurkowanych, a błędy w procesie ich odczytu nie były rzadkie. W dni powszednie zastosowano specjalne kody do wykrywania i korygowania wykrytych błędów. Maszyna poinformowała operatora świeceniem żarówek, co z kolei poprawiło błąd i wznowiło proces obliczeń. Ale w weekend proces odbywał się zgodnie z innymi zasadami. Po wykryciu błędu urządzenie automatycznie zatrzymało wykonywanie pierwszego programu i przystąpiło do wykonania innego.
Od Hamminga bardzo często musiał pracowaćw weekendy był bardzo zirytowany takim zachowaniem komputera, ponieważ za każdym razem musiał przeładowywać program, na którym pracował, a jedyną wadą była zawodność kart perforowanych. Musiał spędzić kilka lat na budowaniu najbardziej wydajnych algorytmów korekcji błędów. W rezultacie do 1950 roku udało mu się znaleźć i opublikować najlepszy sposób rozwiązania tego problemu, teraz jest on znany na całym świecie jako kod Hamminga.
Otrzymano wyniki zaproponowane przez Richarda Hamminganatychmiast rozpowszechnione. Metody kodowania informacji zostały uzupełnione kilkoma dużymi blokami. Na przykład kody systematyczne reprezentują dużą grupę, która składa się z bloków, tak zwanych kodów separowalnych (innymi słowy tych, w których wszystkie znaki są podzielone na informacje i weryfikację).
Kody systematyczne mają swoją osobliwośćsymbole kontrolne są wynikiem liniowych operacji na symbolach informacyjnych. Ponadto w każdym dozwolonym słowie kodowym istnieje możliwość uzyskania wyniku z operacji liniowych wykonywanych na zbiorze niezależnych liniowych słów kodowych.
Kod Hamminga tokod samokontroli. Kody te umożliwiają automatyczne wykrywanie błędów podczas przesyłania danych. Aby je skonstruować, wystarczy przypisać do każdego słowa jedną kontrolną (dodatkową) cyfrę binarną. Liczba jest tak dobrana, aby w całkowitej liczbie jednostek, gdy liczba jest wyświetlana, według warunku, była parzysta.
Jeśli wystąpi pojedynczy błąd, zmieni on parzystość w łącznej liczbie błędów.
Kody prowadzące do korekty błędów wtryb automatyczny nazywa się samokorygowaniem. Jeden bit kontrolny nie wystarczy już do zbudowania takiego kodu. Największym zainteresowaniem cieszą się blokowe kody binarne, które są korygowane.
Podsumowując, możemy stwierdzić, że kod Hamminga wykorzystuje zasadę parzystości, w której sprawdzana jest liczba pojedynczych znaków.