Õppetund
Teooria — Hammingi kood: vigase biti asukoht näitab, mida parandada
Hammingi kood lisab andmetele kontrollbitid, et ühe muutunud biti saaks üles leida ja tagasi muuta. Iga kontrollbitt tagab, et valitud asukohtades on paarisarv ühtesid; seda nimetatakse paarsuskontrolliks. Dekooder kordab saabunud sõna kontrolle. Ebaõnnestunud kontrollide muster ehk sündroom annab kahendarvuna vigase biti asukoha, kus 0 tähendab, et viga pole. Kontrollnumber saab üksnes näidata, et midagi on valesti; Hammingi kood näitab ka vea asukohta. Laiendatud kood lisab biti, mis muudab kogu sõna paariseks. See parandab iga üksiku vea ning tuvastab kaks viga neid parandamata: SECDED.
Mida iga sümbol tähendab
dᵢ- neli andmebitti asukohtades 3, 5, 6 ja 7
p₁, p₂, p₄- kontrollbitid, igaüks oma indeksiga tähistatud asukohas; p0 on laiendatud koodi üldine paarsusbitt
s- sündroom 4s4 + 2s2 + s1, kus sk on 1, kui ringis k on saabumisel paaritu arv ühtesid
P- laiendatud koodi kõigi kaheksa vastuvõetud biti paarsus: 1 tähendab paaritut arvu vigu
p- bitiveamäär ehk tõenäosus, et üks bitt muutub, sõltumatult kõigist teistest
- Eeldab
- Iga bitt muutub teistest sõltumatult ja sama tõenäosusega p. Tegelikes kanalites ja mäludes esineb ka purskevigu, mille korral muutuvad korraga mitu kõrvutist bitti. Selline purse ongi mitme biti viga, millega need koodid kõige halvemini toime tulevad.
- Ei kehti, kui
- Kolme vea korral. Laiendatud kood peab kolme viga üheks, sest üldine paarsuskontroll on paaritu, ning muudab seni õiget bitti. Kõigi vigade tabel näitab, et kõik 896 kolme veaga juhtu väljastavad valed andmed ilma märguandeta.
Ülesanne täielikult lahendatud
-
Mitu kontrollbitti vajab 64-bitine sõna? 4 sammu
Kaitse samal viisil 64 andmebitti. Vajuta Laiendatud, üks viga: nelja andmebiti kohta kasutatakse nelja kontrollbitti ja koodikiirus on 50,0%. Leia, mitu kontrollbitti vajab üks 64-bitine sõna sama tagatise jaoks, et iga üksik viga parandatakse ja iga kahe veaga juht märgistatakse. Arvuta ka pikema sõna hind selle eelseadistuse väärtusel p = 0,001.
-
Kui kontrolle on r, saab sündroomil olla 2r väärtust. Üks väärtus peab tähendama vea puudumist ning iga m + r asukoht vajab oma väärtust, seega 2r ≥ m + r + 1. Lehel on m = 4 ja r = 3 rahuldab tingimuse täpselt, ilma ühegi üleliigse väärtuseta.
-
Kui m = 64, annavad kuus kontrolli 64 väärtust, kuid vaja on 71; seitse annavad 128 väärtust, millest piisab 72 jaoks. Niisiis parandab 71-bitine sõna iga üksiku vea.
-
Ühe üldise paarsusbiti lisamisel saadakse 72 bitti. Neist 8 on kontrollbitid ning koodikiirus on 88,9%, võrreldes lehel oleva 50,0%-ga.
-
Pikemasse sõnasse koguneb sagedamini kaks viga ja SECDED ei suuda kahte viga enam parandada. Ühe 8-bitise sõna puhul saadakse see tõenäosus lehel oleva kahe näitaja liitmisel.
Vastus
Kaheksa kontrollbitti, 72-bitine sõna, koodikiirus 88,9%. Kui p = 0,001, sisaldab see kaht või enamat viga tõenäosusega 2,44×10⁻³. Kui samad 64 bitti saadetakse kuueteistkümne 8-bitise sõnana, lähevad need kaotsi niipea, kui üks sõna kaob; selle tõenäosus on 4,46×10⁻⁴. Pika sõna korral on 64 biti kaotsimineku tõenäosus umbes 5,5 korda suurem, kuid kontrollbitte kulub kaheksa korda vähem.
-
Õpitee
Miks on algoritm õige
Allikad (2)
- The code itself, the requirement that the checking number give the position of any single error, the check positions 1, 2, 4 and the reason for them, the extended code that adds double-error detection, and the relay computers that motivated it: R. W. Hamming, "Error Detecting and Error Correcting Codes." Bell System Technical Journal 29(2), April 1950, pp. 147-160. DOI 10.1002/j.1538-7305.1950.tb00463.x
- How Hamming told the story in his later course: a relay computer that could detect an error, retried three times and then dropped the problem, and the question that followed: R. W. Hamming, The Art of Doing Science and Engineering: Learning to Learn, Session 12, "Error-Correcting Codes". Lecture slides, Naval Postgraduate School, Monterey (course delivered 1995).