You are on page 1of 53

KODOVI ZA

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.

• Konvertirati binarne brojeve u dekadske, oktalne i heksadekadske i obrnuto


• Objasniti višestruko ispitivanje pariteta.
1
• Definirati opći princip kodiranja, kod s minimalnom promjenom i koristiti
Hammingov kod za detekciju pogreške.
Sadržaj predavanja

• princip otkrivanja i ispravljanja pogrešaka, distanca i


zalihost
• paritet, jednostruko i višestruko ispitivanje pariteta
• Hammingovi kodovi

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)

• veći broj bitova od minimalno potrebnih


za prikaz informacije
npr. bikvinarni kod
• kodna riječ = bitovi + zaštitni bitovi

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

• paritet : najjednostavniji način zaštite


• dodati paritetni bit
• tipično osmi bit riječi iz ASCII koda:
p b6b5b4 b3b2b1b0
• nova kodna riječ mora imati
paran/neparan broj jedinica:
paran/neparan paritet

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

• Povećava moć zaštite!


 veći broj paritetnih ispitivanja
 veći broj zaštitnih bitova, veća zalihost
• Više mogućnosti implementacije:
 dvodimenzijski kod
 Hammingov kod

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

pr Kod bez zaštite

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

• naročito popularan Hammingov kod za ispravljanje


jednostruke pogreške -tipična primjena: memorijski
sklopovi

20
Hammingovi kodovi

• nezavisna paritetna ispitivanja


• princip izgradnje kodne riječi:
 svaki zaštitni bit "pokriva" (= štiti) drugi
podskup bitova podatka
 svaki bit podatka zaštićen s više zaštitnih
bitova

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

• Paritetni bitovi određuju se na sljedeći način:

• operacija  predstavlja logičku operaciju XOR (isključivo


ILI)

24
Hammingov kod -primjer
• Odrediti kodnu riječ Hammingovog (7,4) koda za
niz informacijskih bitova 1 0 1 0

• Hammingova kodna riječ glasi: 1 0 1 1 0 1 0

25
Hammingov kod

• Algoritam zaštite definira da se na temelju


podatkovnih bitova odredi broj potrebnih
zaštitnih bitova
• za njih se rezerviraju pozicije xi u kodnoj riječi
(xi -> 2i, gdje je i element skupa [0,n])
• Na temelju paritetnog bita određuje se
računanje zaštitnih bitova u parnom ili
neparnom paritetu

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

Ne otkriva pogrešku u paritetnim bitovima!

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

Pogrešan i1 – neispravni pariteti grupe G1 i G3

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

• Paritetni bitovi su na mjestima ( 1, 2, 4, 8,..)


• ostali bitovi su informacijski
• Primjer: kod (11,7)
• ukupno 11 bitova, od čega 7 nose podatke
• korisno za zaštitu ASCII-znakova
1 2 3 4 5 6 7 8 9 10 11

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

• C3C2C1 = 0012 = 110


• Pogrešan je 1. bit (B1)
42
Odnos zaštitnih i informacijskih bitova
• Paritetni bitovi su na pozicijama 1, 2, 4, 8,...
• S p paritetnih bita → 2p riječi, O-ta riječ se ne koristi
• S p bita može se ispitati 2p -1 bita ukupno
• Duljina kodne riječi: n = p + i; i = broj informacijskih
bitova
• Slijedi: 2p - 1  p + i
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
p p p p
0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
43
Odnos zaštitnih i informacijskih bitova

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

• C3C2C1 = 0012 = 110


• Pogrešan je 1. bit (B1)

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

P1 P2 I3 P4 I5 I6 I7 P8 I9 I10 I11 I12


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

• Kodna riječ je: 0011001 (P1 P2 I1 P3 I2 I3 I4)


• P1 P2 I1 P3 I2 I3 I4
• P1 P2 1 P3 0 0 1
• 0 0 1 1 0 0 1
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

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!

You might also like