Tartalom
A Hamming kódokat használják a hibajavítási információk beillesztésére az adatfolyamokba. A kódok úgy vannak kialakítva, hogy a hibát ne csak észleljék, hanem javítsák is. A hibajavítási információk hozzáadása növeli az adatmennyiséget, de növeli a magas hibaarányú adathordozók közötti kommunikáció megbízhatóságát is.
A Hamming kódolás megvalósítása bonyolult lehet, de bitszintű aritmetikai trükkökkel nagyon gyorsan elvégezhető. Ez lehetővé teszi egy hasznos és nagy sebességű hibajavító rendszer létrehozását, amelyet beágyazott alkalmazásokban lehet használni.
1. lépés
Hozza létre az adatszót. Bármely bitet, amelynek pozíciója kettő (első, második, negyedik stb.), Paritásinformációknak kell fenntartani. Használja mindaddig, amíg szükséges a szó eredeti adatai és paritásbitjei.
Példa:
1 1 0 1 0 0 1 0 _ _ 1 _ 1 0 1 _ 0 0 1 0 lesz
Az eredeti bitek ugyanabban a sorrendben maradnak, de a paritásbitek beszúrására szétterítették.
2. lépés
Számítsa ki az első paritásbitet. Az első bittől kezdve egy kicsit olvasunk, majd egy kicsit kihagyunk, és az eljárást a végéig megismételjük. Időközben a megtaláltak számát megszámoljuk. A paritásbitek ebben a folyamatban nem számítanak.
Ha az egyek száma páros, állítsa az első bitet nullára. Ellenkező esetben állítson egyet.
Példa:
_ _ 1 _ 1 0 1 _ 0 0 1 0, _11101 1., 3., 5., 7., 9. és 11. bitje négyet tartalmaz. Ez páros, így az első bit nullára van állítva: 0 _ 1 _ 1 0 1 _ 0 0 1 0
3. lépés
Számítsa ki a fennmaradó paritásbiteket. A második bittől kezdve két bitet olvasunk, majd két bitet kihagyunk, és az eljárást megismételjük a végéig. A negyedik bit négy bitet olvas, további négyet kihagy, kezdve a négyes bittel. Ugyanazt a mintát követi az összes paritásbit, amíg mind ki nem kerül kiszámításra.
Példa:
2. bit: 0 _ 1 _ 1 0 1 _ 0 0 1 0 ellenőrzi a _1, 01, 01 elemeket, amelyek háromat tartalmaznak, tehát a 2. bit egyre van állítva. 4. bit: _ 0 1 1 1 0 1 _ 0 0 1 0 ellenőrzi a _101, 0 értéket, amely kettőt tartalmaz, így a 4. bit nullára van állítva. A 8. bit: 0 1 1 0 1 0 1 _ 0 0 1 0 ellenőrzi a _0010 értéket, amely csak egyet tartalmaz, tehát a 8. bit egyre van állítva.
Ezért a szó kódja: 011010110010.
4. lépés
Erősítse meg a szót. Ha egy szó megsérült, akkor a paritásbitek nem fognak megfelelni a vártnak. Annak megerősítésére, hogy a szó nem sérült, egyszerűen számolja ki a paritásbiteket a második és a harmadik lépés segítségével. Ha a bitek nem egyeznek meg, rögzítse a pozícióikat.
5. lépés
Javítsa ki a rossz bitet. Ha hibás paritásbiteket talál, egyszerűen adja hozzá a bitek pozícióit. Az összeg értéke a helytelen bit helyzete. Változtassa meg a bit értékét ebben a helyzetben.
Például, ha a helytelen paritásbit egy és négy, akkor az ötödik bit értékének megváltoztatása kijavítja a hibát.