Hamming code



Hammingi kood Telekommunikatsioonis kasutatav veaparanduskood, mis võimaldab avastada 2-bitiseid vigu või parandada 1-bitiseid vigu.

1940-ndatel töötas Richard Hamming firma Bell Laboratories mehaanilise arvuti juures, mis kasutas sisendseadmena perfokaardilugejat. Kuna viimasel tuli andmete perfokaartidelt arvutisse lugemisel sageli ette vigu ja kogu lugemisprotseduuri tuli iga kord korrata algusest peale, siis hakkas Hamming uurima, kuidas saaks andmete ülekandmisel tekkivaid vigu automaatselt avastada ja parandada, säilitades samas võimalikult suurt andmeedastuskiirust. 10-aastase töö tulemused avaldas ta 1950. a.

Tänapäeval nimetatakse Hammingi koodiks üht Hammmingi koodi erijuhtu, nimelt (7,4) koodi, mis lisab sõnumi igale 4-le bitile 3 veaparanduseks vajalikku bitti ning andmed edastatakse sel viisil moodustatud 7-bitiste koodisõnadena. Selle koodi kasutamine tagab suurema andmeedastuskiiruse kui 4 andmebiti edastamine 2 korda. Kuna sellist ülekandemeediumi, kus 7 biti kohta võib tulla 2 vigast bitti, loetakse liiga kõrge mürataseme tõttu kasutuskõlbmatuks, siis kasutatakse Hammondi koodi 1-bitiste vigade parandamiseks, mitte 2-bitiste vigade avastamiseks.

Näide: Sõnum 1101 edastatakse kujul 1100110, sest

7654321 
1 1 0 0 1 1 0 7-bitine koodisõna
1-0-1-0 (paaris-paarsus)
11--11- (paaris-paarsus)
1100--- (paaris-paarsus)

Punasega on tabelis tähistatud andmebitid, sinisega veakontrolliks vajalikud bitid.