Professional Documents
Culture Documents
MTK Laboratorijska Vezba 10
MTK Laboratorijska Vezba 10
Cilj vežbe
Cilj ove vežbe je upoznavanje studenata sa zaštitnim kodovanjem i različitim vrstama
zaštitnog kodovanja. Kroz primere i zadatke predstavljen je Hemingov kod i njegova
uloga i značaj u telekomunikacionom sistemu.
1. Uvod
Za smanjenje greške u telekomunikacionim sisitemima koristi se zaštitno kodovanje. U
stranoj literaturi zaštitno kodovanje se često označava kao Error Control Coding, ECC.
Da bi se greške nastale u prenosu informacija otkrile i ispravile, moraju se u prenošene
poruke uvesti dodatni biti (redundantni biti). Ovi redundantni biti se mogu uvesti na
različite načine, pa se kodovi mogu i podeliti prema načinu njihovog unošenja.
Elementarna podela zaštitnih kodova po ovom kriterijumu je podela na blok kodove i na
konvolucione kodove.
Blok kodovi su dobili svoje ime po tome što se posmatra prenošenje podataka u
blokovima. Prema tome, zadatak blok kodera je da prihvati izvestan broj ( k ) bita i da ih
predstavi odgovarajućom kodnom reči od n bita. Pošto otkrivanje i eventualno
ispravljanje grešaka zahtevaju unošenje redundantnih bita, to n mora biti veće od k .
Blok kodovi se označavaju se ( n, k ) , dok se veličina R = k n naziva kodni količnik
(code rate). Jedan od najpoznatijih blok kodova je Hemingov kod o kome će više reči biti
u nastavku teksta.
Konvolucioni kodovi su se pojavili kasnije od blok kodova. Kada se na ulaz
konvolucionog kodera dovede k bita, na njegovom izlazu se pojavi n bita koji zavise od
k ulaznih bita i „stanja“ kodera, tj. od m × k informacionih bita koji su u m prethodnih
koraka ušli u koder. Zbog ove činjenice konvolucioni koderi se označavaju i kao „kodovi
sa memorijom“. Najčešći postupak dekodovanja konvolucionog kodera je Vitrbijev
algoritam, o kome će biti više reči u nastavku teksta.
Položaj koder i dekodera zaštitnog kodovanja u telekomunikacionom sistemu dat je na
sledećoj slici.
2. Blok kodovi
Blok kodovi su zaštitni kodovi koji na reč dužine k bita dodaju zaštitne bite i formiraju
kodnu reču dužine n bita. Pravila po kojima se formiraju i dodaju zaštitni biti zavisi od
vrste blok koda. U blok kodove spadaju: kodovi sa jednostavnim proverama na parnost,
Hemingovi kodovi, Golejevi kodovi, perfektni kodovi i drugi. Prvi praktično upotrebljen
zaštitni kod bio je upravo Hemingov kod.
89
3. Hemingov kod ( n, k )
PRIMER 1.
n=7;%duzina kodovane reci
k=4;%broj informacionih bita
poruka=[0 1 1 0]'
%kodovanje
kodnarec = encode(poruka,n,k,'hamming/binary')
%dekodovanje
dekodovanaPoruka = decode(kod,n,k,'hamming/binary')
ZADATAK 1.
90
1. Simulirati prethodni kod. Da li je dekodovana poruka ispravna? Uočiti razliku
izmeñu kodne reči dobijene kodovanjem (kodnarec) i koda posle dodavanja greške
(kod).
2. Promeniti položaj greške, menjanjem promenljive i. Utvrditi da li je poruka
ispravno dekodovana za različite položaje jednostruke greške.
3. Promeniti poruku koja se šalje (poruka) upisivanje bilo kog drugog 4-bitnog niza
nula i jedinica. Da li se poruka pravilno dekoduje?
REŠENJE
1.
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
2.
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
3.
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
Kao što je već rečeno dekoder Hemingovog koda na osnovu zaštitnih bita utvrñuje gde se
desila greška, a zatim je ispravlja. Prilikom utrñivanja položaja greške dekoder formira
takozvani sindrom. Sindrom, u slučaju Hemingovog ( 7, 4 ) koda čine tri bita, s1 , s2 i
s3 . Biti sindroma se računaju na osnovu pristiglih 7 bita u dekoder i to na sledeći način:
s1 = c (1) ⊕ c ( 4 ) ⊕ c ( 6 ) ⊕ c ( 7 ) ,
s2 = c ( 2 ) ⊕ c ( 4 ) ⊕ c ( 5 ) ⊕ c ( 6 ) i
s3 = c ( 3) ⊕ c ( 5) ⊕ c ( 6 ) ⊕ c ( 7 ) .
U prethodnim izrazima sa c su označeni biti reči pristigle na dekoder (kodovana reč na
koju je dodata greška). Sa znakom ⊕ obeležena je operacija ekskluzivno ili.
Po izračunavanju bita sindroma dekoder odreñuje položaj greške na osnovu sledeće
tabele.
91
Kod kojim se računa sindrom i odreñuje položaj greške dat je u nastavku teksta. Kod
predstavlja nastavak na prethodno dat kod.
PRIMER 2.
%racunanje sindroma
s1=bitxor(bitxor(kod(1),kod(4)),bitxor(kod(7),kod(6)))
s2=bitxor(bitxor(kod(2),kod(4)),bitxor(kod(5),kod(6)))
s3=bitxor(bitxor(kod(3),kod(6)),bitxor(kod(7),kod(5)))
s=[s1 s2 s3]
ZADATAK 2.
REŠENJE
1.
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
2.
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
92
Ukoliko se koriste Hemingov koder i dekoder u telekomunikacionom sistemu, očekuje se
smanjenje verovatnoće greške. Primer modela jednog telekomunikacionog sistema sa
Hemingovim kodovanjem dat je na sledećoj slici.
ZADATAK 3.
93
Potrebno je izvršti 4 simulacije sa različitim vrednostima odnosa Eb N 0 ( dB ) u kanalu.
Vrednosti se menjaju upisivanjem u odgovarajuće polje po dvostrukom kliku na blok
AWGN kanal. Uzeti vrednosti 3, 6, 9 i 12, respektivno. Umesto oznaka EbNo1 EbNo2
EbNo3 EbNo4 upisati 3 6 9 12, a na mestu BER1 BER2 BER3 BER4 odgovarajuće
vrednosti BER dobijene simulacijama. Oznake na osama, ime i legenda grafika se mogu
postići sledećim kodom.
legend('Teorijski','Simulacija sa Hemingovim kodovanjem',...
'Location','SouthEast');
xlabel('Eb/No (dB)');
ylabel('BER');
title('Verovatnoca greske po bitu BPSK signala');
REŠENJE
94