3 svar
88 visningar
Allhjälpuppskattas 24
Postad: 27 maj 2019

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

Affe Jkpg 5239
Postad: 28 maj 2019 Redigerad: 28 maj 2019

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...:-)

Affe Jkpg 5239
Postad: 29 maj 2019

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
Svara Avbryt
Close