Linjär binär kod
Fråga: Betrakta den linjära binära koden K = (00000000,01100110,11001100,00110011,11111111,01010101,10101010,10011001)
Hur många fel kan koden K rätta?
Svar: Ett fel
Hur beräknar jag antal fel K kan rätta?
Ett troll-inlägg raderat. /moderator
Betrakta koden i grupper om fyra:
0000 0000, 0110 0110, 1100 1100, 0011 0011, 1111 1111, 0101 0101,1010 1010,1001 1001)
Upprepningen i grupper av fyra ger feldetektering, men inte rättning, vilket nedanstående delvis gör.
Det finns något som kallas Gray Code, där bara en etta/nolla ändrar sig mellan varje steg:
0000 OK
0001
0011 OK
0010
0110 OK
0111
0101 OK
osv. som du kan leka med :-)
Du ser att jag sätter OK på varannan rad, där uppgiftens kod är representerad. Ett fel på en "OK-rad", hamnar inte på en annan "OK-rad", vilket du kanske bör skriva alla 16 rader för att se fullständigt.
Resten av resonemanget runt logiken fixar du själv...:-)
Man kallar fyra binärer för en nibble...flera nibblar...svengelska är inte helt enkelt... :-)
Varje kod-ord hos den binära koden K, består då av två identiska nibblar. Varje nibble är "Gray Code"-kodad, som jag beskrivit tidigare. När ett singel-fel uppstår, berör felet den ena av de två nibblarna i ett kod-ord. Ett singel-fel skapar aldrig en ny giltig nibble, men signalerar nibbel-fel till avkodaren. Avkodaren kan då välja den andra nibbeln som är korrekt.
Koden K klarar således singel-fel med:
- Feldetektering
- Felrättning