10
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.

KM_LV2_2013_-_Sloj_linka_podataka_-_Primjena_zastitnih_kodova

Embed Size (px)

DESCRIPTION

km

Citation preview

Page 1: KM_LV2_2013_-_Sloj_linka_podataka_-_Primjena_zastitnih_kodova

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.

Page 2: KM_LV2_2013_-_Sloj_linka_podataka_-_Primjena_zastitnih_kodova

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).

Page 3: KM_LV2_2013_-_Sloj_linka_podataka_-_Primjena_zastitnih_kodova

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.

Page 4: KM_LV2_2013_-_Sloj_linka_podataka_-_Primjena_zastitnih_kodova

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“.

Page 5: KM_LV2_2013_-_Sloj_linka_podataka_-_Primjena_zastitnih_kodova

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“

Page 6: KM_LV2_2013_-_Sloj_linka_podataka_-_Primjena_zastitnih_kodova

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.

Page 7: KM_LV2_2013_-_Sloj_linka_podataka_-_Primjena_zastitnih_kodova

• 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:

Page 8: KM_LV2_2013_-_Sloj_linka_podataka_-_Primjena_zastitnih_kodova

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:

Page 9: KM_LV2_2013_-_Sloj_linka_podataka_-_Primjena_zastitnih_kodova

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:

Page 10: KM_LV2_2013_-_Sloj_linka_podataka_-_Primjena_zastitnih_kodova

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?