Što je Hammingov kod?

Hammingov kod je metoda za otkrivanje i ispravljanje pogrešaka u binarnom prijenosu. To čini kroz uključivanje dodatnih binarnih znamenki u slijed koji se koristi za provjeru, kao i algoritam koji daje logiku detekcije. Takav kod je sposoban pronaći dvije greške u bilo kojem nizu bitova i popraviti jedan bit koji može biti netočan. Najčešći referencirani Hammingov kod poznat je kao Hamming (7,4), gdje četiri označava izvorni broj početnih bitova, a sedam predstavlja ukupan broj bitova u nizu nakon što su uključeni dodatni bitovi za provjeru.

Tehnika je dobila ime po svom tvorcu, Richardu Hammingu, koji je metodu objavio 1950. Način na koji Hammingov kod radi je uzimanjem niza bitova i umetanjem dodatnih bitova za provjeru, koji se nazivaju bitovi parnosti, u sekvencu. Bitovi za provjeru uvijek se ubrizgavaju na poziciju koja je stepen dva, tako da se bilo koji broj bitova može provjeriti uključivanjem dodatnih bitova parnosti. To se može nastaviti sve dok zadnji bit parnosti koji je dodan u niz ne bude u poziciji koja je stepen dva koja je manja ili jednaka konačnoj poziciji u nizu.

Sa svim paritetnim bitovima na mjestu, preostale pozicije su stvarni bitovi podataka. S obzirom na četverobitni primjer, pozicije bita jedan, dva i četiri bile bi paritetni bitovi, dok su pozicije tri, pet, šest i sedam podaci. Nakon što je ovaj slijed uspostavljen, logika Hammingovog koda počinje raditi.

U Hammingovom kodu, svaki paritetni bit koji je dodan nizu koristi se za provjeru nekih pozicija bitova kojima su bliski, uključujući njih same. Bit parnosti na poziciji jedan provjerava svaki drugi položaj bita, što je u biti svaki neparni položaj u nizu. Drugi bit parnosti, na poziciji dva, provjerava pozicije dva i tri, zatim preskače dva položaja, provjerava još dva položaja, preskače još dva i tako dalje. Ako postoji bit parnosti na poziciji četiri, on djeluje slično tako što provjerava pozicije četiri do sedam, zatim preskače četiri pozicije, provjerava još četiri i dalje. Svaki paritetni bit u nizu nastavlja se na ovaj način kroz cijeli niz.

Proces kojim Hammingov kod otkriva i ispravlja pogrešku je zbrajanjem bitova u sekvenci provjere za svaku provjeru parnosti, od kojih svaki mora dati paran broj. S obzirom na primjer sa sedam bitova, za prvu provjeru parnosti zbrajaju se bitovi jedan, tri, pet i sedam. Ako je zbroj paran broj, parnost se provjerava, ali ako je zbroj neparan, onda postoji pogreška. Budući da se provjere pariteta preklapaju, pojavit će se dvije takve pogreške. Kada se zbroje pozicije bita s dva pariteta koje ne uspijevaju dati parne zbrojeve, otkrit će se bit koji treba ispraviti.

U primjeru sedmobitnog Hammingovog koda, uzmite u obzir da je bit na poziciji broj pet netočan. Zbroj bitova na pozicijama jedan, tri, pet i sedam izaći će kao neparan broj, kao i zbroj bitova na pozicijama četiri do sedam. To ukazuje da provjera pariteta za provjere bitova na pozicijama jedan i četiri nije uspjela. Kada se zbroje jedan i četiri, zbroj je pet, što je pozicija za netočan bit u prijenosu koji treba ispraviti.