Hibajavító kódok -- bemutató

Készítette: Dr. Nagy Gábor Péter, SZTE Bolyai Intézet.

Összefoglaló

  1. A feladat
  2. Az ábécé
  3. Az üzenet
  4. A zaj
  5. Kódolás ismétlő kóddal
  6. Dekódolás ismétlő kóddal
  7. Kódolás a Golay-kóddal
  8. Dekódolás a Golay-kóddal
  9. Konklúzió

A feladat

Ábécének nevezzük írásjeleknek egy véges halmazát. A feladatunk az, hogy egy adott ábécé segítségével összeállított szöveges üzenetet továbbítsunk digitális eszközök között.

A továbbítás során a külső zaj hatására a küldött és a fogadott jelsorozat különbözik.

A cél olyan eljárás kidolgozása, ami a fellépő hibákat minél nagyobb számban képes kijavítani.


Az ábécé

Ábécéként rögzítsük írásjeleknek az alábbi sorozatát:

[ aábcdeéfghiíjklmnoóöőpqrstuúüűvwxyzAÁBCDEÉFGHIÍJKLMNOÓÖŐPQRTSUÚÜŰVWXYZ
0123456789.,:;?!()+-*/=€$'"*****************************]

Ez az ábécé   írásjelet tartalmaz, beleértve a szóközt (első karakter) és a sortörés jelét is (nagy Z után).


Az üzenet

Mivel a szöveget digitális eszközök között továbbítjuk, át kell alakítani 0-k és 1-ek sorozatává.

Ehhez minden írásjelnek megfeleltetünk egy 0 és 127 közötti számot, majd vesszük ennek a felírását 2-es számrendszerben.

Sima szöveg Digitalizált szöveg
Petőfi Sándor: János vitéz (részlet)

Tüzesen süt le a nyári nap sugára
Az ég tetejéről a juhászbojtárra.
Fölösleges dolog sütnie oly nagyon,
A juhásznak úgyis nagy melege vagyon.

Szerelem tüze ég fiatal szivében,
Ugy legelteti a nyájt a faluvégen.
Faluvégen nyája mig szerte legelész,
Ő addig subáján a fűben heverész.

Tenger virág nyílik tarkán körülötte,
De ő a virágra szemét nem vetette;
Egy kőhajtásnyira foly tőle a patak,
Bámuló szemei odatapadtanak.

De nem ám a patak csillámló habjára,
Hanem a patakban egy szőke kislyányra,
A szőke kislyánynak karcsu termetére,
Szép hosszú hajára, gömbölyű keblére.

Mert a pázsit fölött heverésző juhász
Kukoricza Jancsi, ki is lehetne más?
Ki pedig a vízben a ruhát tisztázza,
Iluska az, Jancsi szivének gyöngyháza.

"Szivemnek gyöngyháza, lelkem Iluskája!"
Kukoricza Jancsi így szólott hozzája:
"Pillants ide, hiszen ezen a világon
Csak te vagy énnekem minden mulatságom.

Vesd reám sugarát kökényszemeidnek,
Gyere ki a vízből, hadd öleljelek meg;
Gyere ki a partra csak egy pillanatra,
Rácsókolom lelkem piros ajakadra!"
 

A sima szöveg   karakterből áll.

A digitalizált szöveg   bitet (0/1 karaktert) tartalmaz.


A zaj

Annak a százalékos valószínűsége, hogy egy bitet a zaj megváltoztat, legyen p=%.

A zaj áltak átírt bitek aránya: 0%. A zaj által elrontott írásjelek aránya: 0%.

Meg tudjuk ezt magyarázni?

Zajos sima szöveg Zajos digitalizált szöveg
 
 

Kódolás ismétlő kóddal

Az első ötlet az ismétlő kód: Ismételjünk meg minden bitet háromszor!

Az ár: Háromszor olyan hosszú bináris jelsorozatot kell átvinni.

Az ismétlő kód paraméterei
A kód hossza: 0
A kód dimenziója: 0
A generátor mátrix:
1
1
1

Digitalizált szöveg Az ismétlő kóddal kódolt digitalizált szöveg
 
 

Dekódolás ismétlő kóddal

A zaj áltak átírt bitek aránya: 0%. A zaj által elrontott írásjelek aránya: 0%.

A zajos kódolt digitalizált szöveg A zajos kódolt szöveg hibajavítás után
 

 


Encoding with the Hamming Code

Can we do better? YES! Use the Hamming code.

The price: You have to transmit a 7/4-times longer binary sequence.

The parameters of the repetition code
Length of the code: 0
Dimension of the code: 0
The generator matrix:
1000
0100
0010
0001
1101
1011
0111

Digitalized text Digitalized text encoded with Hamming code
 
 

Decoding with the Hamming Code

Ratio of bits changed by the noise: 0%. Ratio of letters changed by the noise: 0%.

While the threefold repetition code corrects 1 error per codeword (of length 3), the Hamming code corrects 1 errors per codewords (of length 7).

Noisy encoded digital text Error corrected noisy encoded text
 

 


Kódolás a Golay-kóddal

Csinálhatjuk ennél jobban is? IGEN! Használjuk a (kiterjesztett) Golay-kódot.

Az ár: Kétszer olyan hosszú bináris jelsorozatot kell átvinni.

A Golay-kód paraméterei
A kód hossza: 0
A kód dimenziója: 0
A generátor mátrix:
100000000000
010000000000
101000000000
010100000000
101010000000
110101000000
111010100000
011101010000
001110101000
000111010100
100011101010
110001110101
011000111010
001100011101
000110001110
000011000111
000001100011
000000110001
000000011000
000000001100
000000000110
000000000011
000000000001
111111111111

Digitalizált szöveg A Golay-kóddal kódolt digitalizált szöveg
 
 

Dekódolás a Golay-kóddal

A zaj áltak átírt bitek aránya: 0%. A zaj által elrontott írásjelek aránya: 0%.

Míg a háromszoros ismétlő kód (3 bites) kódszavanként 1 hibát tud kijavítani, a Golay-kód (24 bites) kódszavanként 3 hibát tud javítani.

A zajos kódolt digitalizált szöveg A zajos kódolt szöveg hibajavítás után
 

 


Konklúzió