Professional Documents
Culture Documents
04 - Kodovi Za Otkrivanje Pogrešaka 2018 19
04 - Kodovi Za Otkrivanje Pogrešaka 2018 19
OTKRIVANJE
POGREŠAKA
10/14/2018
Ishodi učenja
• Definirati binarni sustav, aritmetiku binarnih brojeva s predznakom.
1
• Definirati 8421 kod, princip pariteta i dvodimenzionalni kod.
3
3
Kodovi za zaštitu podataka
• Prijenos podataka:
- utjecaj smetnji: moguća pojava pogreške
• Pogreška : neželjena promjena jednog/više bitova u
kodnoj riječi
• jednostruka pogreška
~ promjena vrijednosti jednog bita
(0 1 ili 1 0)
• višestruka pogreška: promjena više bitova
• Rezultat:
neupotrebljena (zabranjena ) kombinacija - Može se
detektirati
Neka druga kodna riječ - Nemoguće otkriti da je došlo
do pogreške!
4
Princip otkrivanja (i ispravljanja)
pogrešaka
• Princip otkrivanja (i ispravljanja) pogrešaka:
razlika kodnih riječi u više od 1 bita
• Distanca kodnih riječi (R. W. Hamming):
"udaljenost" dviju kodnih riječi:
• d = broj bitova u kojima se dvije kodne riječi
razlikuju
• (broj bitova koje treba promijeniti da se jedna kodna
riječ pretvori u drugu )
5
Princip otkrivanja (i ispravljanja)
pogrešaka
6
Minimalna distanca koda dmin
Minimalna distanca koda : 23 22 21 20
najmanji razmak između bilo koje 8 4 2 1
0 0 0 0 0
dvije kodne riječi 1 0 0 0 1
• npr. kod 8421: dmin = 1 2 0 0 1 0
3 0 0 1 1
• bikvinarni kod: dmin = 2 4 0 1 0 0
5 0 1 0 1
• Grayev kod: dmin = d = 1 6 0 1 1 0
7 0 1 1 1
kod pruža zaštitu od t pogrešaka 8 1 0 0 0
9 1 0 0 1
t = dmin-1 1 0 1 0
1 0 1 1
dmin (t+1) 1 1 0 0
1 1 0 1
dmin = 2 otkrivanje jednostruke 1 1 1 0
pogreške 1 1 1 1
7
Distanca
d=4
1000101 1110011
uzorci bitova
nisu iz koda
8
Distanca
• distanca kodnih riječi (R. W. Hamming) ~
"udaljenost" dviju kodnih riječi:
najmanji broj bitova u kojima se dvije kodne
riječi razlikuju
• broj bitova koje treba promijeniti da se jedna
kodna riječ pretvori u drugu ~ pogreška ostaje
neotkrivena !!!
9
Distanca
• Distanca ne mora biti jednaka za sve parove kodnih riječi
• Za “snagu”koda -mogućnost otkrivanja i korekcije
pogrešaka, bitna je najmanja(minimalna) distanca dmin
10
Zalihost (redundancija)
11
11
Dvije skupine zaštitnih kodova
• s mogućnošću otkrivanja pogrešaka
• EDC (engl. Error Detecting Codes):
dmin t + 1 za otkrivanje t pogrešaka
• s mogućnošću ispravljanja pogrešaka
• ECC (engl. Error Correcting Codes):
dmin 2·t + 1 za ispravljanje t pogrešaka
dmin = 5
1000101 1111011
1100101 1110011
1100001
1110001
"bliži" 1000101
12
Kodovi za otkrivanje pogrešaka
13
Primjer
PARITET
ZNAK
PARNI NEPARNI
A 100 0001 0 100 0001 1 100 0001
a 110 0001 1 110 0001 0 110 0001
* 010 1010 1 010 1010 0 010 1010
14
Višestruko ispitivanje pariteta
15
Dvodimenzijski kod
• 2D matrica informacijskih bitova ("pravokutni" kod )
uzdužna i poprečna paritetna zaštita:
• kodna riječ paritetni bit (pr)
• stupac-ps , uzdužna paritetna zaštita,
Longitudinal Redundancy Check, LRC
• cijelom bloku kodnih riječi paritetna riječ,
BCC (engl. Block Check Character)
• ispravljanje jednostruke pogreške
16
Primjer
0 1 0 0 0 0 0 1
1 1 1 0 0 0 0 1
1 0 1 0 1 0 1 0
0 0 0 1 0 1 0 ps
17
Kodovi za ispravljanje
pogrešaka
• Omogućavaju da se točno odredi mjesto
pogreške u podatku
• Sastoje se od određenog broja znakovnih bitova
i ispitnih bitova
• Mjesto pogreške se otkriva višestrukim
ispitivanjem na paritet određenih kombinacija
znakovnih i ispitnih bita
• Tim ispitivanjem se dobije ispitni broj koji
pokazuje mjesto pogreške
18
Kodovi za ispravljanje
pogrešaka
• Znakovni bitovi služe za prikaz dekadskih znamenki
• Ispitni bitovi su dodatni bitovi za paritet
• Ispitivanje pariteta izvodi se tri puta
• Ako je ispitivanje na paritet uspješno, rezultat se
označava sa 0
• Kada je u ispitivanoj kombinaciji neparan broj 1,
rezultat ispitivanja se označava sa 1
• Trobitna kombinacija bitova označava mjesto
pogreške
• Ako su sva tri bita ispitivanja 0, nema pogreške
19
Hammingovi kodovi
• sustavni mehanizam za izgradnju niza kodova za
ispravljanje pogrešaka
~ R.W. Hamming, 1950.
• princip:
višestruko (nezavisno) paritetno ispitivanje
• bolja efikasnost kodiranja, manja zalihost
20
Hammingovi kodovi
21
Hammingov kod
• Hamingov kod miješa zaštitne bitove sa
podatkovnima kako bi se složila zaštitna kodna riječ
• Minimalna distanca ovog koda je 3 (razlika u
vrijednostima bitova između bilo koje dvije različite
kodne riječi)
• Omogućava otkrivanje najviše dvije, a ispravljanje
najviše jedne pogreške
22
Hammingov kod
• Kod Hammingovog (7,4) koda na 4 informacijska
bita dolaze 3 zaštitna (paritetna) bita
• Paritetni bitovi u kodnim riječima Hammingovog
koda dolaze na mjesta koja su potencije broja 2 (na
1., 2. 4., 8.)
• u 7-bitnoj kodnoj riječi kod Hammingovog (7,4) koda
prvi, drugi i četvrti bit su zaštitni bitovi (označimo ih
sa C1, C2 i C4), dok su preostali bitovi informacijski
(I3, I5, I6 i I7).
• 7- bitna kodna riječ izgleda : C1 C2 I3 C4 I5 I6 I7
23
Hammingov kod
24
Hammingov kod -primjer
• Odrediti kodnu riječ Hammingovog (7,4) koda za
niz informacijskih bitova 1 0 1 0
25
Hammingov kod
26
Hammingov kod
• Treba li zbroj jedinica koje "čuva" neki zaštitni
bit sa tim bitom biti paran ili neparan
• Ako je u komunikacijskom kanalu između dva
sustava došlo do pogreške na nekom od bitova,
moguće je otkriti koji je to bit bio te ga ispraviti,
čak i ako se radi o greški na samom zaštitnom
bitu
• Na 4 bita poruke dodaje 3 zaštitna bita
• Zaštitni bitovi nalaze se u kodnoj riječi na
mjestima 2i
27
Princip višestrukog ispitivanja pariteta
Ispitna tablica
28
Ispitna tablica u binarnoj notaciji
i1 i2 i3 p1 p2
1 0 1 1 0
0 1 1 0 1
29
Ispravljanje pogreške u svim bitovima
i1 i2 i3 p1 p2 p3
G1 1 0 1 1 0 0
G2 0 1 1 0 1 0
G3 1 1 0 0 0 1
30
Prikaz tablice grafički
i1 i2 i3 p1 p2 p3
G1 0 1 1 1 0 0
G2 1 0 1 0 1 0
G3 1 1 0 0 0 1
Pogrešan i1 – neispravni paritet grupe G2, G3
Pogrešan i2 - neispravni paritet grupe G1,G3
Pogrešan i3 – neispravan paritet grupa G1, G2
Pogrešan p1 – neispravan paritet grupe G1
Pogrešan p2 – neispravan paritet grupe G2
Pogrešan p3 – neispravan paritet grupe G3
31
Algoritam za izračunavanje
Hammingove kodne riječi
Računanje Hammingove kodne riječi se odvija
u nekoliko koraka:
• određivanje potrebnog broja zaštitnih bitova
• slaganje nepotpune Hammingove kodne
riječi bez određenih zaštitnih bitova
• računanje i punjenje zaštitnih bitova unutar
kodne riječi
• Broj potrebnih zaštitnih bitova određuje se
na temelju duljine podatkovne riječi
32
Slaganje Hammingove
kodne riječi
• Potrebno je složiti raspored zaštitnih i
podatkovnih bitova unutar konačne kodne riječi.
Raspored je sljedeći:
• Indeksiranje bitova ide od 1 do n, s lijeva na
desno
• Svi indeksi koju su broj 2 na neku potenciju
(1,2,4,8...) rezervirani su za zaštitne bitove i
ostavljamo ih nepopunjenima
• Preostala mjesta unutar kodne riječi punimo
redom od početka sa podatkovnim bitovima
33
Računanje zaštitnih bitova
• Svaki zaštitni bit se računa na temelju točno
određenih podatkovnih bitova, a najlakše ih je
odrediti pomoću indeksa bita kojeg računamo
• Algoritam je najlakše opisati sa "od n, po n,
alternirano n". To znači da za zaštitni bit na
indeksu 4 gledamo nepotpunu riječ od indeksa 4,
gledamo 4 bita, zatim 4 preskačemo pa opet
uzimamo 4 i tako do kraja te iteracije
p1 p2 i1 p3 i2 i3 i4 p4 i5 i6 i7
G4 0 0 0 0 0 0 0 1 1 1 1
G3 0 0 0 1 1 1 1 0 0 0 0
G2 0 1 1 0 0 1 1 0 0 1 1
G1 1 0 1 0 1 0 1 0 1 0 1
34
Računanje zaštitnih bitova
• Nakon što smo odrediti koje bitove trebamo gledati, u
ovisnosti o paritetu računamo trenutni zaštitni bit
• Ako se radi o parnom paritetu, potrebno je samo
napraviti xor operaciju nad gledanim bitovima i
rezultat direktno zapisujemo na mjesto zaštitnog bita
35
Implementacija
p1 p2 i1 p3 i2 i3 i4 p4 i5 i6 i7
36
Ispitna tablica
p1 p2 i1 p3 i2 i3 i4 p4 i5 i6 i7
0 0 0 0 0 0 0 1 1 1 1
0 0 0 1 1 1 1 0 0 0 0
0 1 1 0 0 1 1 0 0 1 1
1 0 1 0 1 0 1 0 1 0 1
37
Konstrukcija konkretnog koda
• Na mjesto informacijskih bitova dolaze bitovi
kodnih riječi
• Primjer: nezaštićena (originalna) kodna riječ je:
1001. Uz parni paritet riječ u Hammingovom kodu
je:
1 2 3 4 5 6 7
p1 p2 i1 p3 i2 i3 i4
0 0 1 1 0 0 1
38
1 2 3 4 5 6 7
p1 p2 i1 p3 i2 i3 i4
0 0 1 1 0 0 1
p1 p2 i1 p3 i2 i3 i4 p4 i5 i6 i7
G4 0 0 0 0 0 0 0 1 1 1 1
G3 0 0 0 1 1 1 1 0 0 0 0
G2 0 1 1 0 0 1 1 0 0 1 1
G1 1 0 1 0 1 0 1 0 1 0 1
39
Otkrivanje pogreške
Npr. pogreška u prvom bitu:1011001
Ispitivanje pariteta svake grupe:
G1: (1101) → paritet neispravan → G1=1
G2: (0101) → paritet ispravan → G2=0
G3: (1001) → ispravno → G3=0
Sindrom G3G2G1 = 001(binarno 1) →
pogreška u prvom bitu ( p1)
40
Primjer otkrivanja pogreške
• Na odredištu primljena binarna riječ
1011001 zaštićena Hammingovim kodom i
utvrdite da li je došlo do pogreške u
prijenosu i ispravite nastalu pogrešku
41
Primjer otkrivanja pogreške
• B1 B2 B3 B4 B5 B6 B7
•1 0 1 1 0 0 1
•
• C1 = b1 + b3 + b5 + b7 = 1 + 1 + 0 + 1 = 1
• C2 = b2 + b3 + b6 + b7 = 0 + 1 + 0 + 1 = 0
• C3 = b4 + b5 + b6 + b7 = 1 + 0 + 0 + 1 = 0
Slijedi: 2p - 1 p + i
odnosno: 2p p + i + 1
BROJ
BROJ ZAŠTITNIH DULJINA KODNE
INFORMACIJSKIH
BITOVA RIJEČI
BITOVA ()
1 2 3
4 3 7
11 4 15
26 5 31
57 6 63
120 7 127
44
Odnos zaštitnih i informacijskih bitova
BROJ
INFORMACIJSKIH p minimalno
BITOVA (i)
1 2
2-4 3
5 - 11 4
12 - 26 5
27 - 57 6
58 - 120 7
45
Primjer otkrivanja pogreške
• Kodna riječ je: 0011001
• Na odredištu primljena binarna riječ
1011001 zaštićena Hammingovim kodom
• Utvrdite da li je došlo do pogreške u
prijenosu i ispravite nastalu pogrešku
46
Primjer otkrivanja pogreške
• B1 B2 B3 B4 B5 B6 B7
•1 0 1 1 0 0 1
•
• C1 = b1 + b3 + b5 + b7 = 1 + 1 + 0 + 1 = 1
• C2 = b2 + b3 + b6 + b7 = 0 + 1 + 0 + 1 = 0
• C3 = b4 + b5 + b6 + b7 = 1 + 0 + 0 + 1 = 0
47
Primjer otkrivanja pogreške
• Na uzlaz digitalnog sustava primljena je riječ
zapisana u Hammingovom kodu
000110101010. Ima 4 ispitna bita.
Primijenjen je parni paritet. Utvrdite
eventualnu pogrešku i napišite ispravnu riječ.
B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12
0 0 0 1 1 0 1 0 1 0 1 0
• C1 = b1 b3 b5 b7 b9 b11 =
0 0 1 1 1 1 =0
• C2 = b2 b3 b6 b7 b10 b11 =
0 0 0 1 0 1 =0
• C3 = b4 b5 b6 b7 =
• =1 1 0 1 =1
• C4 =b9 b10 b11 b12 b13 =0
• C4C3C2C1 = 01002 = 4.BIT POGREŠAN
Primjer zaštite Hammingovim kodom (1001)
• P1 = I1 + I2 + I4 = 1 + 0 + 1 = 0
• P2 = I1 + I3 + I4 = 1 + 0 + 1 = 0
• P3 = I2 + I3 + I4 = 0 + 0 + 1 = 1
0 0 0 0 0 0 0 1 1 1 1
0 0 0 1 1 1 1 0 0 0 0
0 1 1 0 0 1 1 0 0 1 1
1 0 1 0 1 0 1 0 1 0 1
50
Primjer zaštite Hammingovim
kodom
• Zaštite Hammingovom kodom binarnu riječ: 1001
•1 2 3 4 5 6 7
• P1 P2 I1 P3 I2 I3 I4
• P1 P2 1 P3 0 0 1
•1 0 1 0 1 0 1
•0 1 1 0 0 1 1
•0 0 0 1 1 1 1
51
LITERATURA:
• Uroš Peruško: Digitalni sustavi
• Str. 68 – 76
52
Hvala na pažnji!