Upload
josip-katalinic
View
2
Download
0
Embed Size (px)
DESCRIPTION
km
Citation preview
Komunikacijske mreže – LV2 – Sloj linka podataka (2013)
ELEKTROTEHNIČKI FAKULTET OSIJEK Zavod za komunikacije
KOMUNIKACIJSKE MREŽE Laboratorijske vježbe
Prezime i ime studenta, broj indeksa: (popunjava student)
Datum: Pregledano: (popunjava asistent)
Vježba 2. Sloj linka podataka: Primjena zaštitnih kodova
UVOD Na slici 1 prikazana je blok-shema jednostavnog komunikacijskog sustava. Njega čine izvor informacija, predajnik, komunikacijski kanal (prijenosni medij), prijemnik i odredište informacija.
Slika 1. Komunikacijski sustav
Izvor informacija generira ograničeni skup simbola. Niz takvih simbola predstavlja informaciju.
Postupkom kodiranja nastoji se izvornu informaciju pretvoriti u oblik pogodan za obradu i prijenos preko komunikacijskog kanala. Takoñer, kodiranjem se nastoji u što većoj mjeri neutralizirati djelovanje smetnji na komunikacijskom kanalu. Zadaća pretvarača je pripremiti izlaz iz kodera za prijenos medijem, tj. pretvoriti primljene kodne riječi u niz analognih ili digitalnih simbola. Kodiranje se (prema mjestu provoñenja) može podijeliti na dva osnovna tipa. To su:
• kodiranje izvora: provodi se na izvoru informacije s ciljem smanjivanja količine podataka koji će se prenositi komunikacijskim kanalom (tj. izdvajanjem redundancije provodi se sažimanje podataka);
• kodiranje kanala: provodi se prije prijenosa informacije preko komunikacijskog kanala i služi za zaštitu informacija od utjecaja smetnji koje se neizostavno javljaju u svakom realnom komunikacijskom kanalu.
Postoji više različitih vrsta zaštitnih kodova. Izbor odreñene vrste zaštitnog koda uvelike ovisi o vrsti
komunikacijskog kanala. Općenito, zaštitni kodovi mogu se svrstati u dvije skupine. Prvu skupinu čine zaštitni kodovi za otkrivanje pogrešaka, dok u drugu spadaju kodovi za otkrivanje i ispravljanje pogrešaka.
Komunikacijske mreže – LV2 – Sloj linka podataka (2013)
U praksi se ulazne informacije uvijek grupiraju u okvire nad kojima se potom provodi postupak zaštitnog kodiranja. Postupak upravljanja pogreškama (error control) obuhvaća mehanizme za otkrivanje i ispravljanje pogrešaka koje nastaju tijekom prijenosa podatkovnih okvira preko komunikacijskog kanala. Kao rezultat djelovanja smetnji prilikom prijenosa mogu nastati dva karakteristična tipa pogreške:
• izgubljeni okvir (lost frame) – podatkovni okvir uopće ne stiže na odredište budući da se pod utjecajem smetnji toliko izobličio da ga prijemnik na odredištu nije u stanju prepoznati kao ispravan podatkovni okvir;
• oštećeni okvir (damaged frame) – podatkovni okvir raspoznatljiv dolazi na odredište ali je na nekim njegovim bitovima došlo do pogreške.
Postoje dvije osnovne skupine metoda za otkrivanje i ispravljanje pogrešaka:
• BEC (Backward Error Correction) – otkrivanje pogrešaka u prijemniku nakon čega slijedi retransmisija pogrešno primljenog podatkovnog okvira;
• FEC (Forward Error Control) – ispravljanje pogrešaka u prijemniku.
FEC metoda podrazumijeva korištenje zaštitnih kodova koji osim detekcije omogućavaju i ispravljanje pogrešaka. Iako FEC metoda bitno smanjuje broj retransmisija, BEC metoda se i dalje vrlo često koristi zbog jednostavnije i jeftinije implementacije.
Slika 2. Načelo otkrivanja pogrešaka
Na slici 2 prikazano je osnovno načelo djelovanja metoda za otkrivanje pogrešaka. Za svaki podatkovni okvir predajnik pomoću funkcije zaštitnog kodiranja f izračunava zaštitni slijed bita E koji se pridodaje podatkovnom okviru. Prijemnik na odredišnoj strani razdvaja primljene podatke od zaštitnog niza E. Prijemnik potom pomoću funkcije f (funkcija je ista kao i na predajnoj strani) na osnovu primljenih podataka izračunava zaštitni slijed Z i vrši usporedbu s primljenim zaštitnim slijedom E. Ukoliko se ispostavi da je Z=E prijemnik pretpostavlja da prilikom prijenosa nisu nastale pogreške (iako je moguće da nastane odreñena kombinacija pogrešaka pri kojoj će biti Z=E). Ukoliko je Z≠E prijemnik sa sigurnošću zaključuje da je došlo do pogreške. Ukoliko je prilikom kodiranja korišten zaštitni kod koji omogućava i ispravljanje pogrešaka dekoder prema odreñenom algoritmu (karakterističnom za svaki pojedini tip zaštitnog koda) pronalazi mjesto pogreške i vrši ispravku. Dekoder potom iz kodne riječi odstranjuje zaštitne bitove i predaje niz informacijskih bitova odredištu. Ciklička provjera zalihosti (Cyclic Redundancy Check – CRC) Ciklička provjera zalihosti (CRC, Cyclic Redundancy Check) predstavlja jednu od najčešćih metoda za detekciju pogrešaka kod prijenosa podataka. Ova metoda postala je vrlo popularna zbog vrlo dobre sposobnosti detekcije pogreške, jednostavne implementacije i relativno kratke zaštitne sekvence koja se dodaje informacijskim bitovima. Kod primjene CRC zaštitne 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, pripadajući polinom bit će stupnja k-1. Pri tome će krajnji desni bit iz niza predstavljati najniži stupanj u polinomu (nulti stupanj).
Komunikacijske mreže – LV2 – Sloj linka podataka (2013)
Primjer: Niz bitova „101011“ bit će pomoću binarnog polinoma prikazan na sljedeći način:
1110101101011 35012345+++=⋅+⋅+⋅+⋅+⋅+⋅≡ xxxxxxxxx
Pomoću binarnog polinoma dobivenog iz niza informacijskih bitova P(x) i zadanog generatorskog polinoma G(x) dobije se zaštitni niz bitova (CRC) koji se pridružuje izvornom nizu informacijskih bitova na predajnoj strani. Na prijemnoj strani se ponovno izračunava CRC koji mora odgovarati primljenoj vrijednosti ukoliko nije došlo do pogreške. Postupak se odvija kroz nekoliko koraka:
1. Iz niza informacijskih bitova formira se binarni polinom P(x) koji reprezentira podatke. 2. Polinom P(x) množi se sa vrijednošću xp
gdje p predstavlja stupanj generatorskog polinoma. 3. Dobiveni umnožak P(x)*x
p dijeli se sa generatorskim polinomom G(x) pri čemu se dobije količnik
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 sljedeći način: T(x) = P(x)*xp + R(x) Napomena: sve operacije s polinomima provode se po modulo-2 aritmetici!
Primjer: Izračunati CRC za sljedeći 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)
23
2346
46
5679
4579
67810
4568910
9101113
25692445681113 )1()(
xx
xxxx
xx
xxxx
xxxx
xxxx
xxxxxx
xxxx
xxxxxxxxxxxxx
+
+++
+
+++
+++
+++
+++++
+++
+++=+++÷+++++
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 najčešće korištenih zaštitnih kodova za otkrivanje i ispravljanje pogrešaka je Hammingov kod. Od izvora informacije uzima se k informacijskih bitova i dodaje im se m zaštitnih (paritetnih) bitova. Komunikacijskim kanalom prenose se blokovi od n=k+m simbola. Hammingovim kodom (n,k) nazivaju se kodovi za koje vrijedi n=2
m-1, k=2
m-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 može ispraviti jednostruku pogrešku.
Komunikacijske mreže – LV2 – Sloj linka podataka (2013)
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 (dakle na 1., 2. 4., 8. itd.) Prema tome, 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). Dakle, 7-bitna kodna riječ izgleda ovako: C1 C2 I3 C4 I5 I6 I7. Paritetni bitovi odreñuju se na sljedeći način:
7654
7632
7531
IIIC
IIIC
IIIC
⊕⊕=
⊕⊕=
⊕⊕=
gdje operacija ⊕ predstavlja logičku operaciju XOR (isključivo ILI). Paritet je paran, to znači 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“
1010
0011
1001
0101
7654
7632
7531
7653
=⊕⊕=⊕⊕=
=⊕⊕=⊕⊕=
=⊕⊕=⊕⊕=
====
IIIC
IIIC
IIIC
IIII
Prema tome, Hammingova kodna riječ glasi: „1 0 1 1 0 1 0“. Na prijemnoj strani vrši se provjera pariteta. Ukoliko je za neke od kontrolnih bitova paritet narušen znači da je došlo do pogreške prilikom prijenosa. Kod Hammingovog koda (7,4) moguće je ispravljanje jednostruke pogreške. Potrebno je odrediti za koje od kontrolnih suma (C1, C2, C4) je narušen paritet i na temelju sljedeće tablice moguće je odrediti lokaciju neispravnog bita:
C4 C2 C1 Neispravan bit X C1
X C2
X X I3
X C4
X X I5
X X I6
X X X I7
Primjer: Na prijemnoj strani primljena je sljedeća kodna riječ: „1 0 1 1 0 1 1“. Provjeriti ispravnost primljene riječi. Ukoliko je došlo do pogreške potrebno je ispraviti pogrešku ako je to moguće. Lako je utvrditi da je parni paritet narušen za sva tri kontrolna (paritetna) bita C1, C2, C4. Iz tablice vidimo da to znači da je pogreška nastala na bitu I7. Dakle, poslana kodna riječ glasila je: „1 0 1 1 0 1 0“.
Komunikacijske mreže – LV2 – Sloj linka podataka (2013)
PRIPREMA ZA VJEŽBU
• Proučiti primjenu zaštitnih kodova u komunikacijama, s naglaskom na CRC i Hammingov kod.
• Zadan je generatorski polinom G(x) = x4 + x2 + x + 1. Izračunati CRC za sljedeće nizove bitova: a) „1 1 0 1 0 0 0 1 1 0“ b) „1 0 1 1 1 0 1 1 0 1“
• Hammingovim kodom (7,4) kodirati sljedeće nizove bitova: a) „1 1 1 0“ b) „1 0 0 1“
Komunikacijske mreže – LV2 – Sloj linka podataka (2013)
ZADACI
1. CIKLIČKA PROVJERA ZALIHOSTI (CRC – Cyclic Redundancy Check) • Pomoću programa „CRCgen“ u Matlab-u provjeriti ispravnost izračunatih CRC vrijednosti u
zadatku iz pripreme. • Pomoću programa „CRCgen“ u Matlab-u generirati CRC za sljedeće 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) • Pomoću programa „hammenc“ u Matlab-u provjeriti ispravnost dobivenih kodnih riječi
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 pomoću programa „hammenc“ u
Matlab-u.
• Pomoću programa „hammdec“ u Matlab-u dekodirati sljedeće kodne riječi 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 došlo do pogreške? Je li dekoder uspio ispraviti pogrešku?
3. PRIJENOSNI MEDIJ
3.1. MODEL KANALA SA SMETNJOM
Konfiguracija modela sastoji se od izvora signala, kanala sa smetnjom i detektora pogreške. Svaki element predstavljen je kroz blok u modelu. Izvor signala predstavlja Bernoulli-ev binarni generator sekvenci slučajnih brojeva. Blok kanala predstavlja simulirani kanal sa doprinosom u smetnjama. Uvedena je varijabla za pojavljivanje slučajnih pogrešaka u opsegu 0 – 1 i obrnuto. Treći blok predstavlja izračun pogreške s obzirom na početnu poslanu vrijednost. Konfiguracijom izlaza kao port sekvence na displeju je potrebno očitati stanja prema sljedećim zadacima:
• Pomoću modela „kanal“ u Matlab-u simulirati scenarij zadan sljedećim parametrima: - „Binary Symmetric Channel“ postaviti za „Error probability“ na
a) 0.01, b) 0.03 i c) 0.05
- Isključiti opciju „Output error vector“ u istom prozoru - Pokrenuti „commstartup“ naredbu u Command Window
Slika 3. Simulacijski model kanala prijenosnog medija sa smetnjama
Zapažanja i komentare predstaviti u predviñen prostor:
3.2. SMANJIVANJE UČESTALOSTI POGREŠKE („ERROR RATE“) KORISTEĆI CIKLIČKU
PROVJERU ZALIHOSTI
• Pomoću modela „kanal_CRC“ u Matlab-u simulirati scenarij zadan sljedećim parametrima: - „Binary Symmetric Channel“ postaviti za „Error probability“ na
a) 0.01, b) 0.03 i c) 0.05
- Isključiti opciju „Output error vector“ u istom prozoru - Pokrenuti „commstartup“ naredbu u Command Window
Slika 4. Simulacijski model kanala prijenosnog medija sa smetnjama koristeći CRC enkoder i dekoder
Zapažanja i komentare predstaviti u predviñen prostor:
3.3. SMANJIVANJE UČESTALOSTI POGREŠKE („ERROR RATE“) KORISTEĆI HAMMINGOV
ENKODER I DEKODER
• Pomoću modela „kanal_Hamm“ u Matlab-u simulirati scenarij zadan sljedećim parametrima: - „Binary Symmetric Channel“ postaviti za „Error probability“ na
a) 0.01, b) 0.03 i c) 0.05
- Isključiti opciju „Output error vector“ u istom prozoru - Pokrenuti „commstartup“ naredbu u Command Window
Slika 5. Simulacijski model kanala prijenosnog medija sa smetnjama koristeći Hammingov enkoder i
dekoder
Zapažanja i komentare predstaviti u predviñen prostor:
Komunikacijske mreže – LV2 – Sloj linka podataka (2013)
ZAKLJUČAK
• Napisati vlastita zapažanja i zaključke sa vježbe. U čemu je bitna razlika izmeñu CRC-a i Hammingovog koda?