You are on page 1of 7

ELEKTROTEHNIKI FAKULTET OSIJEK

Zavod za komunikacije
RAUNALNE I KOMUNIKACIJSKE MREE
(laboratorijske vjebe)

Vjeba 3. PRIMJENA ZATITNIH KODOVA


UVOD
Na slici 1 prikazana je blok-shema jednostavnog komunikacijskog sustava. Njega ine izvor
informacija, predajnik, komunikacijski kanal (prijenosni medij), prijemnik i odredite informacija.

Slika 1. Komunikacijski sustav

Izvor informacija generira ogranieni skup simbola. Niz takvih simbola predstavlja informaciju.
Postupkom kodiranja nastoji se izvornu informaciju pretvoriti u oblik pogodan za obradu i prijenos preko
komunikacijskog kanala. Takoer, kodiranjem se nastoji u to veoj mjeri neutralizirati djelovanje
smetnji na komunikacijskom kanalu. Zadaa pretvaraa je pripremiti izlaz iz kodera za prijenos medijem,
tj. pretvoriti primljene kodne rijei u niz analognih ili digitalnih simbola.
Kodiranje se (prema mjestu provoenja) moe podijeliti na dva osnovna tipa. To su:
kodiranje izvora: provodi se na izvoru informacije s ciljem smanjivanja koliine podataka koji e
se prenositi komunikacijskim kanalom (tj. izdvajanjem redundancije provodi se saimanje
podataka);
kodiranje kanala: provodi se prije prijenosa informacije preko komunikacijskog kanala i slui za
zatitu informacija od utjecaja smetnji koje se neizostavno javljaju u svakom realnom
komunikacijskom kanalu.
Postoji vie razliitih vrsta zatitnih kodova. Izbor odreene vrste zatitnog koda uvelike ovisi o vrsti
komunikacijskog kanala. Openito, zatitni kodovi mogu se svrstati u dvije skupine. Prvu skupinu ine
zatitni kodovi za otkrivanje pogreaka, dok u drugu spadaju kodovi za otkrivanje i ispravljanje
pogreaka.
U praksi se ulazne informacije uvijek grupiraju u okvire nad kojima se potom provodi postupak
zatitnog kodiranja. Postupak upravljanja pogrekama (error control) obuhvaa mehanizme za otkrivanje
i ispravljanje pogreaka koje nastaju tijekom prijenosa podatkovnih okvira preko komunikacijskog
kanala. Kao rezultat djelovanja smetnji prilikom prijenosa mogu nastati dva karakteristina tipa pogreke:
1

izgubljeni okvir (lost frame) podatkovni okvir uope ne stie na odredite budui da se pod
utjecajem smetnji toliko izobliio da ga prijemnik na odreditu nije u stanju prepoznati kao
ispravan podatkovni okvir;
oteeni okvir (damaged frame) podatkovni okvir raspoznatljiv dolazi na odredite ali je na
nekim njegovim bitovima dolo do pogreke.

Postoje dvije osnovne skupine metoda za otkrivanje i ispravljanje pogreaka:


BEC (Backward Error Correction) otkrivanje pogreaka u prijemniku nakon ega slijedi
retransmisija pogreno primljenog podatkovnog okvira;
FEC (Forward Error Control) ispravljanje pogreaka u prijemniku.
FEC metoda podrazumijeva koritenje zatitnih kodova koji osim detekcije omoguavaju i
ispravljanje pogreaka. Iako FEC metoda bitno smanjuje broj retransmisija, BEC metoda se i dalje vrlo
esto koristi zbog jednostavnije i jeftinije implementacije.

Slika 2. Naelo otkrivanja pogreaka

Na slici 2 prikazano je osnovno naelo djelovanja metoda za otkrivanje pogreaka. Za svaki


podatkovni okvir predajnik pomou funkcije zatitnog kodiranja f izraunava zatitni slijed bita E koji se
pridodaje podatkovnom okviru. Prijemnik na odredinoj strani razdvaja primljene podatke od zatitnog
niza E. Prijemnik potom pomou funkcije f (funkcija je ista kao i na predajnoj strani) na osnovu
primljenih podataka izraunava zatitni slijed Z i vri usporedbu s primljenim zatitnim slijedom E.
Ukoliko se ispostavi da je Z=E prijemnik pretpostavlja da prilikom prijenosa nisu nastale pogreke (iako
je mogue da nastane odreena kombinacija pogreaka pri kojoj e biti Z=E). Ukoliko je ZE prijemnik
sa sigurnou zakljuuje da je dolo do pogreke. Ukoliko je prilikom kodiranja koriten zatitni kod koji
omoguava i ispravljanje pogreaka dekoder prema odreenom algoritmu (karakteristinom za svaki
pojedini tip zatitnog koda) pronalazi mjesto pogreke i vri ispravku. Dekoder potom iz kodne rijei
odstranjuje zatitne bitove i predaje niz informacijskih bitova odreditu.

Ciklika provjera zalihosti (Cyclic Redundancy Check CRC)


Ciklika provjera zalihosti (CRC, Cyclic Redundancy Check) predstavlja jednu od najeih
metoda za detekciju pogreaka kod prijenosa podataka. Ova metoda postala je vrlo popularna zbog vrlo
dobre sposobnosti detekcije pogreke, jednostavne implementacije i relativno kratke zatitne sekvence
koja se dodaje informacijskim bitovima.
Kod primjene CRC zatitne metode svi nizovi bitova tretiraju se kao binarni polinomi. To su
polinomi iji koeficijenti mogu biti 0 ili 1. Ukoliko niz bitova ima duljinu k, pripadajui polinom bit e
stupnja k-1. Pri tome e krajnji desni bit iz niza predstavljati najnii stupanj u polinomu (nulti stupanj).
Primjer:
Niz bitova 101011 bit e pomou binarnog polinoma prikazan na sljedei nain:
101011 1 x 5 + 0 x 4 + 1 x 3 + 0 x 2 + 1 x1 + 1 x 0 = x 5 + x 3 + x + 1
2

Pomou binarnog polinoma dobivenog iz niza informacijskih bitova P(x) i zadanog generatorskog
polinoma G(x) dobije se zatitni niz bitova (CRC) koji se pridruuje izvornom nizu informacijskih bitova
na predajnoj strani. Na prijemnoj strani se ponovno izraunava CRC koji mora odgovarati primljenoj
vrijednosti ukoliko nije dolo do pogreke. Postupak se odvija kroz nekoliko koraka:
1. Iz niza informacijskih bitova formira se binarni polinom P(x) koji reprezentira podatke.
2. Polinom P(x) mnoi se sa vrijednou xp gdje p predstavlja stupanj generatorskog polinoma.
3. Dobiveni umnoak P(x)*xp dijeli se sa generatorskim polinomom G(x) pri emu se dobije kolinik
Q(x) i ostatak R(x).
4. Dobiveni polinom ostatka R(x) predstavlja CRC, pa se onda polinom T(x) koji predstavlja podatak
za slanje dobije na sljedei nain: T(x) = P(x)*xp + R(x)
Napomena: sve operacije s polinomima provode se po modulo-2 aritmetici!
Primjer:
Izraunati CRC za sljedei niz informacijskih bitova: 1010010111 uz zadani generatorski
polinom G(x) = x4 + x2 + x + 1.
1. P(x) = x9 + x7 + x4 + x2 + x + 1
2. P(x) * x4 = x13 + x11 + x8 + x6 + x5 + x4
3. ( P(x) * x4 ) / G(x)
( x 13 + x 11 + x 8 + x 6 + x 5 + x 4 ) ( x 4 + x 2 + x + 1) = x 9 + x 6 + x 5 + x 2
x13 + x11 + x10 + x 9
x10 + x 9 + x 8 + x 6 + x 5 + x 4
x10 + x 8 + x 7 + x 6
x9 + x7 + x5 + x4
x9 + x7 + x6 + x5
x6 + x4
x6 + x4 + x3 + x2
x3 + x2
Q(x) = x9 + x6 + x5 + x2
R(x) = x3 + x2  CRC
4. T(x) = P(x) * xp + R(x) = x13 + x11 + x8 + x6 + x5 + x4 + x3 + x2
Dakle, niz bitova za slanje je: 1 0 1 0 0 1 0 1 1 1 1 1 0 0

Hammingov kod
Jedan od najee koritenih zatitnih kodova za otkrivanje i ispravljanje pogreaka je
Hammingov kod. Od izvora informacije uzima se k informacijskih bitova i dodaje im se m zatitnih
(paritetnih) bitova. Komunikacijskim kanalom prenose se blokovi od n=k+m simbola. Hammingovim
kodom (n,k) nazivaju se kodovi za koje vrijedi n=2m-1, k=2m-1-m (m=3,4,5,). Tako niz Hammingovih
kodova ine kodovi (7,4), (15,11), (31,26) Unutar bloka duljine n bita Hammingov kod moe ispraviti
jednostruku pogreku.
Kod Hammingovog (7,4) koda na 4 informacijska bita dolaze 3 zatitna (paritetna) bita. Paritetni
bitovi u kodnim rijeima Hammingovog koda dolaze na mjesta koja su potencije broja 2 (dakle na 1., 2.
4., 8. itd.) Prema tome, u 7-bitnoj kodnoj rijei kod Hammingovog (7,4) koda prvi, drugi i etvrti bit su

zatitni bitovi (oznaimo ih sa C1, C2 i C4), dok su preostali bitovi informacijski (I3, I5, I6 i I7). Dakle, 7bitna kodna rije izgleda ovako: C1 C2 I3 C4 I5 I6 I7.
Paritetni bitovi odreuju se na sljedei nain:
C1 = I 3 I 5 I 7
C2 = I 3 I 6 I 7
C4 = I 5 I 6 I 7
gdje operacija predstavlja logiku operaciju XOR (iskljuivo ILI). Paritet je paran, to znai da u nizu
koji tvore paritetni bit i informacijski bitovi koje on titi mora biti paran broj jedinica.

Primjer: Odrediti kodnu rije Hammingovog (7,4) koda za niz informacijskih bitova 1 0 1 0
I3 = 1 I5 = 0 I6 = 1 I7 = 0
C1 = I 3 I 5 I 7 = 1 0 0 = 1
C2 = I 3 I 6 I 7 = 1 1 0 = 0
C4 = I 5 I 6 I 7 = 0 1 0 = 1
Prema tome, Hammingova kodna rije glasi: 1 0 1 1 0 1 0.
Na prijemnoj strani vri se provjera pariteta. Ukoliko je za neke od kontrolnih bitova paritet
naruen znai da je dolo do pogreke prilikom prijenosa. Kod Hammingovog koda (7,4) mogue je
ispravljanje jednostruke pogreke. Potrebno je odrediti za koje od kontrolnih suma (C1, C2, C4) je naruen
paritet i na temelju sljedee tablice mogue je odrediti lokaciju neispravnog bita:
C4

C2
X
X

X
X
X
X

C1
X
X
X

X
X

Neispravan bit
C1
C2
I3
C4
I5
I6
I7

Primjer:
Na prijemnoj strani primljena je sljedea kodna rije: 1 0 1 1 0 1 1. Provjeriti ispravnost
primljene rijei. Ukoliko je dolo do pogreke potrebno je ispraviti pogreku ako je to mogue.
Lako je utvrditi da je parni paritet naruen za sva tri kontrolna (paritetna) bita C1, C2, C4. Iz tablice
vidimo da to znai da je pogreka nastala na bitu I7. Dakle, poslana kodna rije glasila je: 1 0 1 1 0 1 0.

PRIPREMA ZA VJEBU
NAPOMENA:
1. U MATLAB-u morate postaviti da je radni direktorij mjesto gdje ste kopirali potrebne datoteke.
2. Format unosa podataka je, primjerice: [1 0 1 1 1 1]

Prouiti primjenu zatitnih kodova u komunikacijama, s naglaskom na CRC i Hammingov kod.


4
2
Zadan je generatorski polinom G(x) = x + x + x + 1. Izraunati CRC za sljedee nizove bitova:
a) 1101000110
b) 1011101101

Hammingovim kodom (7,4) kodirati sljedee nizove bitova:


a) 1110
b) 1001

ZADACI
1. CIKLIKA PROVJERA ZALIHOSTI (CRC Cyclic Redundancy Check)

Pomou programa CRCgen u Matlab-u provjeriti ispravnost izraunatih CRC vrijednosti u


zadatku iz pripreme.
Pomou programa CRCgen u Matlab-u generirati CRC za sljedee nizove informacijskih bitova
(generatorski polinom je G(x) = x4 + x2 + x + 1):
a) 1 0 1 0 1 1 1 1 0 1
b) 1 1 0 1 0 0 1 0 1 0
c) 1 0 0 1 1 0 0 0 1 1
d) 1 1 1 0 0 0 1 1 0 1

2. HAMMINGOV KOD (7,4)

Pomou programa hammenc u Matlab-u provjeriti ispravnost dobivenih kodnih rijei


Hammingovog (7,4) koda iz zadatka za pripremu.
Kodirati vlastito ime i prezime 7-bitnim ASCII kodom (tablica 7-bitnog ASCII koda nalazi se u
prilogu).
Dobiveni niz bitova kodirati Hammingovim (7,4) kodom pomou programa hammenc u
Matlab-u.

Pomou programa hammdec u Matlab-u dekodirati sljedee kodne rijei Hammingovog (7,4)
koda:
a) 0 0 1 1 0 0 1
b) 0 1 1 0 0 0 1
c) 0 1 0 1 0 1 0
d) 0 0 1 1 0 0 0
Na kojim bitovima je dolo do pogreke? Je li dekoder uspio ispraviti pogreku?

ZAKLJUAK

Napisati vlastita zapaanja i zakljuke sa vjebe. U emu je bitna razlika izmeu CRC-a i
Hammingovog koda?

Ime i prezime studenta:

Broj indeksa:

Datum:

Pregledao:

You might also like