Kodovi Za Korekciju

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 21

Osnovi informatike 1

7. DETEKCIJA I
KOREKCIJA GREŠKE
7.1 Kodovi za detekciju grešaka
7.2 Kodovi za detekciju i korekciju grešaka
Greške u prenosu i zapisu
2

 Promena vrednosti binarne cifre 1 u 0 i obrnuto naziva se


greška. Može se javiti jedna i više grešaka u kodnoj reči.
 Za otklanjanja grešaka u kodnoj reči postoji tehnička
disciplina koja se naziva zaštitno kodovanje.
 U principu, pre korekcije pogrešne vrednosti treba
utvrditi odnosno detektovati grešku.
 Postoje kodovi samo za detekciju grešaka i kodovi za
detekciju i korekciju grešaka.

Osnovi informatike
7.1 Kod za detekciju grešaka-
3
bit parnosti
 Bit parnosti se dodaje na informacioni niz od n bita, bit
parnosti se obično dodaje na mesto najmanje težine (LSB).
 Ovaj postupak kodovanja se naziva VRC (Vertical
Redundancy Check).
 Metod provere na parnost predložio je Heming (Hamming),
niz od n+1 bit ima paran broj nula ili jedinica.
 Međutim, ako se u istoj kodnoj reči pojave dve greške neće
se moći detektovati. Takođe, nije poznato na kojoj je poziciji
došlo do greške.

Osnovi informatike
Kod za detekciju grešaka- tip LRC
4

 Složeniji kod za detekciju grešaka je LRC kod


(Longitudinal Redundancy Check). Dodaje se tetra parnosti.
 Primer ovog koda na poruci 92410=1100 0101 0111XS3. Ako
se tetre saberu po modulu 2 (sabiranje bez prenosa) dobije
se nova tetra 1110 ili LRC kodna reč.
 Sada je poruka predstavljena sa 16 umesto 12 cifara
1100 0101 0111 1110.
 Na prijemu se proverava poruka sabiranjem tetri po modulu
2 (1+1=0), ako je suma LRC=0 nema greške, u protivnom
se poruka odbacuje.
Osnovi informatike
Kod za detekciju greške-kontrola sume
5

 Na predajnoj strani niz od n binarnih cifara, kodna reč, se


podeli na dva jednaka dela pa se sabiranje izvrši po
pravilima prvog komplementa, prenos se sabere sa LSB.
Odredi se prvi komplement sume i doda na kraju kodne reči.
 Na prijemu, kodna reč se podeli na tri ista dela i izvrši
sabiranje po pravilu prvog komplementa. Potom se odredi
prvi komplement sume.
 Ako je prvi komplement sume na svim pozicijama 0 nije
došlo do greške.
Osnovi informatike
Primer postupka kodovanja-kontrol
6
suma
 Primer kodovanje kodne reči sa 16 bita
1001001001001010.
1. Kodna reč se podeli na dva dela iste dužine i
sabiranjem po pravilu sabiranja u prvom komplementu
dobija se suma 10010010+01001010=11011100=S
2. Odredi se prvi komplement sume S´=00100011.
3. Prvi komplement sume dodaje se na kraj kodne reči
od 16 bita pa sada poruka ima 24 bita, kodovana
kodna reč je
4. 1001001001001010 00100011.

Osnovi informatike
Primer postupka dekodovanja-
7
kontrol suma
 Dekodovanje poruke (kodne reči)
1001001001001010 00100011
1. Delenjem poruke u tri grupe iste dužine i sabiranjem
po pravilu prvog komplementa dobija se
10010010+01001010+00100011=11111111.
2. Određuje se prvi komplement sume, S´= 00000000.
3. Ako je prvi komplement sume zapisan nulama ne
postoji greška, a ako postoji bar jedna jedinica javila se
greška u prenosu ili zapisu.
4. Nije poznato na kojoj poziciji se javila greška.

Osnovi informatike
Kodovi za detekciju greške-ciklička provera, kodovanje
8

 Kodovanje se zasniva se na činjenici da su dva broja deljiva


kada se deljeniku oduzme ostatak. Dakle, metod cikličke
provere bazira na deljenju po modulu 2, bez ostatka. Ovaj
kod se naziva CRC kod, od Cyclical Redundancy Check
(CRC).
 Originalna kodna reč dužine n se proširuje sa k-1 nula ako je
deljitelj sa k cifara.
 Tako formirana kodna reč se podeli deljiteljom i dobije
ostatak deljenja. Pri deljenju se oduzima po modulu 2, nema
pozajmice.
 Na kraju kodne reči se dodaje ostatak deljenja umesto nula.
Osnovi informatike
Kodovi za detekciju greške-ciklička provera,
kodovanje
9

 Aritmetika u polju celih brojeva po modulu 2:


 nema prenosa pri operaciji sabiranja
 niti pozajmice sa prethodnog mesta pri
operaciji oduzimanja.
 Tako za sabiranje važi:
0 + 0 = 1 + 1 = 0,
0 + 1 = 1 + 0 = 1.
 A za oduzimanje važi:
1 − 1 = 0 − 0 = 0,
0 − 1 = 1 − 0 = 1.
Osnovi informatike
Kodovi za detekciju greške- ciklička provera,
dekodovanje
10

 Na prijemu se primljena kodna reč deli sa istim


deljiteljom kao i na predaji. Pri deljenju se oduzima
po modulu 2, nema pozajmice.
 Ako je ostatak deljenja CRC=000 nema greške.
 Ako CRC ima bar jednu jedinicu kodna reč je
neispravna i odbacuje se.

Osnovi informatike
Primer kodovanja i dekodovanja- ciklična
11
provera
 Primer za reč a=101011 dužine n=6 i odabrani deljitelj dužine k=4, b= 1101.
1. Prvo se na kodnu reč 101011 dodaju k-1=3 nula.
a=101011000
2. Potom se izvrši deljenje a sa b (1101), ali se u postupku deljenja oduzima bez
posuđivanja.
101011000: 1101=11010
1101
01111
1101
001010
1101
01110
1101
0011
110 ostatak =110.
Osnovi informatike
Primer kodovanja i dekodovanja- ciklična
provera
12

1. Ostatak deljenja 3 cifre 110 se dodaju na kodnu reč, umesto nula.


2. Šalje se poruka dužine (n+k-1) 101011110, jer je 110 ostatak deljenja.
3. Na prijemu se vrši dekodovanje deljenjem primljene kodne reči istim
deljiteljom
4. Ostatak deljenja CRC=000, pa ne postoji greška.
101011110: 1101=11010
1101
01111
1101
001011
1101
01101
1101
0000
000 ostatak =000.

Osnovi informatike
7.2 Kodovi za korekciju grešaka
13

 Da bismo ispravili greške moramo ih prvo detektovati, pa sledi


da ove vrste kodova unose više redundanse.
 Kodno rastojanje je broj različitih cifara na istim pozicijama dve
kodne reči, matematički se piše
n
u obliku
M (i, j )  X
k 1
ik  Y jk

 Minimalno potrebno kodno rastojanje dve kodne reči je


M≥D+C+1, gde su D- broj detektovanih grešaka, C-broj
korigovanih grešaka, a uvek je D≥C.
 Za M=1 nije moguće detektovati ni ispraviti grešku (D=C=0).
Za M=2, D=1 i C=0. Dakle, za korekciju samo jedne greške
Osnovi informatike
M=3.
Ispravljanje jednog bita-
14
Hemingov kod
 Najpoznatiji kod za ispravljanje jedne grešaka je
Hemingov kod. Heming (Hamming) je 1950. god.
predložio metod konstrukcije kodova sa minimalnim
kodnim rastojanjem M=3 i nazvan je Hemingovim
kodom.
 U opštem slučaju dužina kodne reči n=ni+nk binarnih
cifara, gde je ni informacionih bita i nk korekcionih bita
(cifara).
 Kontrolni bitovi određuju poziciju na kojoj se pojavila
greška. Broj kontrolnih
n bitova se određuje iz relacije
2 k
 ni  n k  1
Osnovi informatike
Postupak Hemingovog kodovanja
15

1. Listu poruka treba napisati sa rednim brojem poruke (1,2,3,


…). Broj informacionih bita ni se određuje u odnosu na
ukupan broj poruka (2ni ≥N, a N je broj poruka).
2. Broj kontrolnih bita nk zavisi od broja informacionih bita
2nk ≥ni+nk+1.
3. Formiramo sume po modulu 2 za poruke sa rednim
brojevima koji imaju jedinicu na mestu LSB. Ova suma je
S1, a redni brojevi poruke su neparni brojevi 1,3,5,7,9….
4. Na drugoj poziciji imaju jedinicu redni brojevi poruke 2,3,6.
Formiramo sumu po modulu 2 i ova suma je S2.
Osnovi informatike
Postupak Hemingovog kodovanja
16

5. Na trećoj poziciji jedinice imaju poruke sa rednim


brojevima 4, 5,6, 7,12 i.t.d. to je suma S3.
6. Poslednja suma je Snk, jer treba nk kontrolnih bita.
7. Iz uslova da je svaka suma po modulu 2 jednaka nuli
dobijaju se kontrolni bitovi K1, K2,…,Knk.
8. Označimo pozicije svake cifre u kodnoj reči (xn, xn-1,…,
x2, x1) sa informacionim i kontrolnim bitovima
(n=ni+nk).
9. Kontrolni bitovi se nalaze na pozicijama 2i , i=0,1,2,3...
Treba uočiti da da je kodna reč napisana tako da je xn
cifra MSB, a x1 je LSB.
Osnovi informatike
Hemingov dekoder
17

1. Na prijemnoj strani odredimo sume:


S1, S2, S3 , …,Snk.
2. Formiramo kodnu reč od Snk,,Sn k-1,..,S1=Nk, Nk pokazuje
poziciju greške, S1 je zapisano na mestu najmanje težine
LSB.
3. Ako je Nk=0000 nema greške u prenosu, ako je Nk različito
od nule došlo je do greške u prenosu.
4. Na primer Nk=0010 to znači da je došlo do greške na
drugoj poziciji u kodnoj reči, odnosno da je x2 pogrešno
primljeno.
4. Izvrši se ispravka x2 i to ako je primljena
Osnovi informatike
0 koriguje se u 1 i
obrnuto, ako je primljna 1 koriguje se u 0.
Primer Hemingovog kodovanja
18

1. Potrebno je preneti 10 poruka, za ovih deset poruka treba


nam najmanje 4 informaciona bita, jer je 24=16, a 23=8.
Dakle ni=4 iako sve kombinacije nisu iskorišćene.
2. Za 4 informaciona bita treba odrediti nk. Broj kontrolnih
bitova se određuje iz relacije 2nk ≥ni+nk+1. Za ni=4, nk=3.
3. Nezaštićene poruke u binarnom zapisu su: X1=0001;
X2=0010, ... X10=1010.
4. Zaštićene poruke imaju po sedam cifara (4+3)
x7,x6,x5,x4,x3,x2,x1.
5. Sada treba odrediti kontrolne bitove ili cifre, k1, k2 i k3,
koji su na pozicijama (2i,i=0,1,…), k1=x1, k2=x2 i k3=x4.
Osnovi informatike
Određivanje vrednosti kontrolnih bitova
19

1. Kontrolni bitovi se određuju iz relacije za sume:


S1  x1  x 3  x 5  x 7
S 2  x 2  x3  x6  x7
S 3  x 4  x5  x6  x7

2. Ako se prenosi poruka X2=0010, sa kontrolnim bitovima


je: 001k30k2k1= x7,x6,x5,x4,x3,x2,x1.
3. Iz uslova za sume, S1=0, S2 =0 i S3=0, dobija se: k1=1, k2=0
i k3=1.
4. Poruka sa zaštitnim ili kontrolnim (podvučenim) bitovima
je X2k=0011001.
Osnovi informatike
Primer Hemingovog dekodovanja
20

Na prijemu se proveri primljena poruka X2k=0011001.


1. Odrede se sume, za pristiglu poruku X2k, S1,S2, S3.
Vrednost svake sume je jednaka nuli ako nema
greške u pristigloj poruci (Nk=000).
2. Ako je pristigla pogrešna poruka na primer 0111001
kao X2k. Vrednosti suma su S1=0, S2=1 i S3=1.
3. Formira se Nk=110=610, pa je na poziciji šest došlo do
greške.
4. Treba korigovati 1 u 0 na šestoj poziciji, pa je ispravna
poruka X2k=0011001.
5. Izdvajanjem kontrolnih bita dobija se poruka 0010.
Osnovi informatike
Zaključak
21

 Prikazani su osnovni kodovi zaštitnog kodovanja


za zapis i prenos podataka i informacija.
 Treba uočiti da kodovi za detekciju greške u kodnoj
reči omogućuju odbacivanje i ponavljanje poruke.
 Kodovi za korekciju grešaka su složeniji i zahtevaju
više neinformativnih (kontrolnih) bitova za
detekciju i isravku greške u kodnoj reči.
 Broj kontrolnih bitova zavisi od broja
informacionih bitova i broja detektovanih i
korigovanih bitova.
Osnovi informatike

You might also like