1 bites hibajavítás
Ha 16 biten akarunk kódvédelmet és kódjavítást elérni, akkor 5 paritásbitet használunk. Az előző részben bemutatott táblázat alapján.
A biteket nem 0-val, hanem 1-gyel kezdődően sorszámozzuk, a legkisebb helyértékű az 1-es sorszámú lesz.
Fontos: Minden olyan bit paritásbit lesz, amelynek sorszám a 2 hatványa, a többi pedig adatbit.
Minden paritásbit meghatározott bitpozíciókat ellenőriz a paritásbit értékét úgy állítjuk be, hogy az ellenőrzött pozíciókon lévő 1-esek szám a páros legyen. Az egyes paritásbitek által ellenőrzött bitpozíciók a következők: (A sorok a paritásbitet az oszlopok a bitpozíciókat jelentik)
p1 = 1. bit | 1 | 3 | 5 | 7 | 9 | 11 | 13 | 15 | 17 | 19 | 21 |
p2 = 2. bit | 2 | 3 | 6 | 7 | 10 | 11 | 14 | 15 | 18 | 19 | |
p3 = 4. bit | 4 | 5 | 6 | 7 | 12 | 13 | 14 | 15 | 20 | 21 | |
p4 = 8. bit | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | |||
p5 = 16. bit | 16 | 17 | 18 | 19 | 20 | 21 |
A táblázat azt fejezi ki, hogy egy adott számot melyik helyiértéken (bit-en) lévő 1-esek fejezik ki. Pl. az 5-ös az 1. és a 3. bithez tartozik. A 7-es esetén az 1., 2., 3. bit egyes.
Más szóval az első sorban azok a számok vannak, aminek bináris alakjában az első bit 1.es. A második sorban azok a számok vannak, amelyek bináris alakjában (felírásakor) a 2. bit 1-es. Így tovább…
Az algoritmust működés közben egy példán mutatjuk be. Legyen a kódszavunk a 16 bites:
1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 0 |
A parításbitekkel betoldva így fog kinézni:
sorszám | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
p1 | p2 | 1 | p3 | 1 | 1 | 1 | p4 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | p5 | 0 | 1 | 1 | 1 | 0 |
p1 = 0, p2 = 0, p3 = 0, p4 = 0, p5 = 1
Tehát, behelyettesítve:
0 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 |
Tegyük fel, hogy az üzenetben egy hiba miatt az 5. bit elromlik. Az 5. bit miatt az első és a harmadik paritásbit hibás értéket fog adni, a többi viszont nem, mert azok nem számolnak az ötödik helyi értéken tárolt bittel. Az első és harmadik paritásbit közös helyi értékei: 5, 7, 13, 15, 21. Ezek között kell lenni a hibásnak!
Viszont ebből a 7, 13, 15, 21 a jó paritásbitek sorában is szerepelnek, ezért azok biztosan jók → következésképpen csak az 5. bit marad, ami hibás.