konvolucijski kodovi

24
Sveučilište Josipa Jurja Strossmayera u Osijeku Stručni studij elektrotehnike INFORMACIJA I INFORMACIJSKI SUSTAVI KONVOLUCIJSKI KODOVI METODE KODIRANJA I DEKODIRANJA

Upload: icajomi

Post on 25-Jun-2015

792 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Konvolucijski Kodovi

Sveučilište Josipa Jurja Strossmayera u OsijekuStručni studij elektrotehnike

INFORMACIJA I INFORMACIJSKI SUSTAVI

KONVOLUCIJSKI KODOVI METODE KODIRANJA I DEKODIRANJA

U Osijeku 20.10.2010.

Page 2: Konvolucijski Kodovi

SADRŽAJ

1. UVOD

2. KONVOLUCIJSKO KODIRANJE

3. METODE PRISTUPA KONVOLUCIJSKOM KODU

3.1. Pomačni registri

3.2. Dijagram stanja

3.3. Kodna rešetka

3.4. Kodno stablo

4. KONVOLUCIJSKO DEKODIRANJE

4.1. Sekvencijalno dekodiranje

4.2. Viterbi algoritmi

4.2.1. Dekodiranje Viterbi algoritmom

5. ZAKLJUČAK

6. LITERATURA

Page 3: Konvolucijski Kodovi

1. UVOD

U modernom svijetu računala, informacija i tehnologija koriste se razne vrste kodova i kodiranja u svrhu zaštite same informacije, odnosna sustava od ne željenih i ne kontroliranih pojava, upada odnosno korištenja.Svi takvi sustavi na jednom kraju i to odašiljačkom imaju koder informacija, a na drugom prijamnom dekoder te iste informacije.U stvarnim realnim uvjetima postoji i određena mogućnost pojave greške prilikom prijenosa signala koja nastaje zbog pojave šuma ili smetnje.Da bi se te smetnje detektirale i izbjegle, postoje kodovi koji ih ispravljaju, a princip njihovog rada je takav da se u niz informacijskih bitova ubacuje niz redundantnih (poznatih) bitova, a što uzrokuje usporavanje same brzine prijenosa.Količina poznatih bitova koji se unose u prijenos informacije ovisi o vrsti komunikacije i o smetnjama u kanalu.U svrhu ispravljanja pogreške nastale tijekom prijenosa informacije (signal) koristi se konvolucijsko kodiranje i dekodiranje. Sam postupak dekodiranja je puno složeniji postupak i on ograničava brzinu komunikacije.Konvolucijski kodovi spadaju u skupinu memorijskih kodova jer je kod njih generiranje nekog bita u kodiranoj poruci funkcija trenutačnog stanja ulaza kodera kao i nekoliko njegovih prethodnih stanja. U ovom seminaru ukratko ću obraditi sam pojam konvolucijskih kodova kao i neke metode kodiranja i dekodiranja.

Page 4: Konvolucijski Kodovi

2. KONVOLUCIJSKO KODIRANJE

Konvolucijski kodovi definirani su sa tri parametra.

To su n, k, m; gdje su

n = broj izlaznih bitovak = broj ulaznih bitovam = broj memorijskih registara

i imaju tri glavne značajke a to su:

- Duljina koda- Dimenzija koda- Udaljenost koda

Duljina koda označava broj bitova kodne riječi, dimenzija koda označava broj informacijskih bitova u kodnoj riječi, dok udaljenost koda daje broj bitova potrebnih za prijelaz iz jedne u drugu riječ.

Iz parametara konvolucijskih kodova možemo doći do brzine koda i mjere kodne učinkovitosti za što je formula:

R=kn

Za parametre k i n uzimamo vrijednosti između 1 i 8, a za m između 2 i 10.Iz toga proizlazi da se brzina R kreče između 1/8 i 7/8 Postoji još i ograničenje duljine bitova u memoriji kodera, a koje utječe na stvaranje n izlaznih bitova

K = k(m-1)

U nekim literaturama K je označeno sa L (po eng. Constraint Legth) iz razloga da se ne miješa sa malim k (brojem ulaznih bitova)

Iz glavnih parametara jednostavno je nacrtati kodnu strukturu i objasniti osnovni princip konvolucijskog koda.Konvolucijsko kodiranje izvodi se s pomačnim registrima ( K stupnja ) i n zbrajala po modulu 2.

.

Page 5: Konvolucijski Kodovi

Slika 1. Konvolucijski koder

Na slici 1. Prikazan je konvolucijski koder sa tri memorijska registra u koje ulazi 1 ulazni bit, a izlaze 3 izlazna bita koja se dobiju na izlazu iz tri zbrajala po modulu 2.Izlazni n-blok ovisi o trenutnom ulaznom k-bitnom bloku i o prethodnih M bitova registarskih blokova gdje je M=2k.Svaki ulazni bit kodira se sa 3 izlazna bita, konstantna dužina koda je 2 dok izlazne bitove proizvode binarna zbrajala koja dodaju bitove u određene memorijske registre. Izbor bitova pomačnog registra za ulaz u zbrajala naziva se generatorski polinom (g) za određeni izlazni bit. Ako uzmemo da je prvi izlazni bit ima generatorski polinom (1,1,1,), drugi izlazni bit (0,1,1,), a treći (1,0,1): Izlazni bitovi su suma tih bitova.

n1 = mod2 (m1+m0+m−1 ¿

n2 = mod2 (m0+m−1 ¿

n3 = mod2 (m1+m−1 ¿

Operacija kodiranja može se opisati polinomima, po jedan za svaki izraz

D = operacija kašnjenja

Tako dobiveni izlazni bit daje jedinstvenu zaštitu od pogreške jer ima sasvim drugačija svojstva od polinoma koji smo koristili.Ipak ni sve izlazne sekvence na daju dobre zaštite od pogreške. Da bi odabrali polinome koja imaju dobra svojstva možemo koristiti raznu literaturu, a mnogi se mogu naći u literaturi autora Peterson – Weldon. Dobri polinomi se pronalaze uz pomoć tablica i računalnih simulacija.

Page 6: Konvolucijski Kodovi

U tablici 1. su prikazani polinomi za K 1/2

K G1 G2

3 110 1114 1101 11105 11010 111016 110101 1110117 110101 1101018 110111 11100119 110111 11100110110 110111001 1110011001

Tablica 1. Polinomi koje je otkrio Busgang za r=1/2

3. METODE PRISTUPA KONVOLUCIJSKOM KODU

Konvolucijske kodove moguće je proučavati različitim pristupom kao što je gore prikazano korištenje polinoma postoje i druge metode:

- Polinomske matrice- Skalarne matrice- Pomačni registri- Dijagrami stanja- Kodne rešetke- Kodna stabla

U nastavku dat ću kratka objašnjenja za neke pristupe.

3.1. Pomačni registri

Prilikom korištenja metode pomačnih registara imamo da se za svaki bit u registru izlaz mIjenja n = 2 bita koda ( u1 i u2), kod primjera da je K = 3, a n = 2 a brzina koda k/n= ½. U ovoj metodi svaki izlazni bit koda je u funkciji ulaznog bita (lijevi stupanj registra) i dva ranija bita (desni stupnjevi). Pošto imamo da je k = 1 koder prima bit po bit ulaznih podataka. Svaki podatak dolazi na prvo mjesto, a svi ostali se pomiču za jednu poziciju, te se operacijama binarnog zbrajanja (modulo 2) određuju bitovi izlaznog bloka kao što je prikazano na slici 2.

Page 7: Konvolucijski Kodovi

Slika 2. Metoda pomačnih registara

p q p+q0 0 00 1 11 0 11 1 0

Tablica 2. Pravilo binarnog zbrajanja

U tablici 2. Prikazano je pravilo binarnog zbrajanja (modulo 2) dok u tablici 3. imamo stanja konvolucijskog kodera kada na ulazu imamo slijed od 4 bita i po pravilima iz tablice 2 imamo 4 stanja.

VRIJEMEULAZNI

BIT

SADRŽAJ

POMAČMOG

REGISTRA

IZLAZNI BITOVI

BIT 1 BIT 2

0 0 0 01 1 1 0 0 1 12 0 0 1 0 1 03 1 1 0 1 0 04 0 0 1 0 1 0

Tablica 3. Stanja konvolucijskog kodera

3.2. Dijagram stanja

Ako stanje kodera promatramo u određenom vremenskom trenutku možemo reći da promatramo sadržaj memorijskog elementa pomačnog registra u tom trenutku i da postoje četiri moguća stanja tog registra (00, 01, 10, 11). Svakim novim impulsom vremenskog takta koder prima informacijski bit nakon čega se pomiče u novo stanje , a na izlazu se pojavljuju dva nova generirana kodna bita. Za objašnjenje ovog ponašanja koristimo dijagram stanja slika 3.

Page 8: Konvolucijski Kodovi

Slika 3. Dijagram stanja

Krugovi A,B,C i D predstavljaju četiri moguća stanja. Za svaki ulazni bit koji je nula prijelaz iz jednog u drugo stanje prikazuje punom linijom, a za ulazni bit koji je jedinica isprekidanom linijom. Bitovi u zagradi predstavljaju izlaznu vrijednost kodera za trenutno prijelazno stanje. Na primjeru gdje imamo ulazni slijed kodova (00 10 11) slijedimo put AAACBCD i na izlazu dobivamo kod (00 00 11 01 00 10).

Kod dijagrama stanja problem je u uočavanju prethodnih vremenskih stanja kroz koja smo prošli. Da bi prikaz bio jasniji uvodimo vremensku dimenziju, te tako pravimo kodnu rešetku.

3.3. Kodna rešetka

Kodna rešetka sastoji se od stupaca koji prikazuju stanja (A, B, C, D) u vremenskim trenucima t = 0, 1, 2, 3, 4, 5.

Oznaku t nazivamo indeks dubine. Svako stanje na dubini t biti će povezano sa nekim stanjem na dubini t+1 samo onda ako postoji grana u dijagramu koja povezuje promatrana stanja uz iznimku na početku kada su u pomačnom registru nule (t=0,1).

Slika 4. Rešetkasti dijagram (trellis)

Page 9: Konvolucijski Kodovi

Na slici 4. prikazana je kodna rešetka za prethodni slučaj za ulaznu informaciju 00 10 11. Prateći podebljanu liniju preko vremenskog redoslijeda stanja A0A1A2C3B4C5 dobijemo izlazni slijed bitova (00 00 11 01 00 10).

3.4. Kodno stablo

Kod kodnog stabla koder počinje kodiranje na mjestu POČETAK da bi nakon d ulaznih bita stigao do neke visine d=0,1,2,3,…. .

Slika 5. Kodno stablo

U ovisnosti koji je simbol na ulazu kodera one se pomiče prema visini d+1 i to ako ja na ulazu 0 po gornjoj grani, a ako je 1 po donjoj grani. Za ulazni kod (2,14) prikazan je slijed na slici 5, slijedeći isprekidanu liniju dolazimo do kompletne izlazne sekvence koja glasi (11 11 01 11 01 01 11). Svaki put kad koder prođe određenom granom proizvede pripadajući n bitni slijed. Stablo se ograničava ograničenjem koda L i memorijom koda m pa iznosi L+M.

Page 10: Konvolucijski Kodovi

4. KONVOLUCIJSKO DEKODIRANJE

Kod konvolucijskih kodova postupak dekodiranja je puno složeniji postupak i kao takav ograničava brzinu komunikacije.Osnovne metode dekodiranja dijelimo na dvije glavne skupine, a to su podoptimalne i optimalne, odnosno, same postupke dekodiranja možemo svrstati u dvije kategorije:

- Sekvencionalno dekodiranje- Dekodiranje po pravilu maksimalnih izgleda

Jedan od najčešće korištenih algoritama za dekodiranje konvolucijskih kodova je Viterbi algoritam koji spada u kategoriju dekodiranja po pravilu maksimalnih izgleda

4.1. Sekvencijalno dekodiranje

Jedno od prvih predloženih metoda dekodiranja konvolucijskog koda bilo je sekvencijalno dekodiranje, a koje je osmislio Wozencraft s tim da je bolju verziju dao Fano. Nakon njih Viterbi je napisao svoj algoritam.

Ova metoda temelji se na dubinskom pretraživanju, a postupak je takav da se pomičemo naprijed nazad kroz stablastu strukturu. Dekoder prati svoje odluke i svaki put kada donese nejasnu odluku uveća vrijednost brojača grešaka. Ako vrijednost brojača grešaka raste brže od nekog praga vrijednosti dekoder odustaje od te putanje i vraća se na položaj ispod definiranog praga.

Za primjer možemo uzeti da je poslana sekvenca 1011000. (Upamtiti da su zadnja tri bita posljedica flush bitova i njihov izlaz se naziva bitovima repa, tail bits).

Ako nije došlo do grešaka, na prijemu bi bila sekvenca 11 11 01 11 01 01 11. Ali, neka je, na primjer, primljena sekvenca 01 11 01 11 01 01 11. Desila se jedna greška, prvi bit je primljen kao 0.

1.Točka odluke 1; Dekoder promatra dva bita, 01. U ovom trenutku on uočava da se desila jedna pogreška, jer početni bitovi mogu biti samo 00 ili 11. Ali kako dekoder ne može sa sigurnošću utvrditi koji bit je primljen sa greškom, on napamet bira putanju 00 kao početni izbor. Dekoder dekodira ulazni bit kao 0, koji odgovara putanji 00, a u brojač grešaka stavlja vrijednost 1. Sada je na točki 2.

Page 11: Konvolucijski Kodovi

Slika 6. Sekvencijalno dekodiranje

2. Točka odluke 2; Dekoder sada promatra slijedeći skup bitova, 11. Odavde donosi odluku da je poslan bit 1, koji savršeno odgovara jednoj od kodnih riječi i prelazi u točku 3.

3. U točki odluke 3, primljeni bitovi su 01, ali izbor kodnih riječi je 11 i 00. Ovo se vidi kao greška i brojač grešaka se uvećava na 2. Kako je vrijednost brojača grešaka manji od postavljenog praga vrijednosti 3 (koji se postavlja na osnovu statistika kanala) dekoder nastavlja dalje. On svojevoljno bira gornju putanju i nastavlja do točke 4, odlučujući da je poslani bit 0.

4. U točki odluke 4 dekoder prepoznaje još jednu grešku, jer su primljeni bitovi 11, a izbor kodnih riječi 10 i 01. Brojač grešaka se uvećava na 3 u oba slučaja, što daje znak dekoderu da se vrati unazad. Ovo prikazuje slika 6.

Slika 7. Sekvencijalno dekodiranje

5. Dekoder se vraća do točke 3 gdje je vrijednost brojača grešaka bila manja od 3 i bira preostalu mogućnost do točke 5.

6. U točki 5 se ponovo suočava sa uslovom greške. Primljeni bitovi su 11, ali je izbor kodnih riječi 01 i 10, što prikazuje slika 7. Vrijednost brojača greške se uvećava na 3, pa se dekoder ponovo vraća u nazad.

7. moguće putanje iz točke 3 su iscrpljene. Dekoder se mora vratiti unazad dalje od točke 3. Vraća se u točku 2, ali ako ovdje napravi preostalu mogućnost izbora, vrijednost brojača grešaka se trenutno uvećava na 3, tako da se mora vratiti iz točke 2 u točku 1. Ovo prikazuje Slika 8.

Page 12: Konvolucijski Kodovi

Slika 8. Sekvencijalno dekodiranje

Iz točke 1, svi izbori se savršeno slažu sa izborom kodnih riječi i dekoder uspješno dekodira poruku kao 1011000, prikazano na slici 9.

Slika 9. Sekvencijalno dekodiranje

Memorijski zahtjevi za sekvencijalno dekodiranje su upravljivi, pa se ova metoda koristi za kodovima sa velikim vrijednostima constraint length, gdje je odnos S/N nizak.

Page 13: Konvolucijski Kodovi

4.2. Viterbi algoritmi

Ovaj algoritam je jedan od najpoznatijih za dekodiranje konvolucijskih kodova po pravilu najvećih izgleda (maximum likely-hood decoding), a prvi ga je predstavio Andrew Viterbi 1967 g. i po njemu nosi naziv.

Ako definiramo da je c kodni slijed koji je prenesen preko kanala, a r primljeni slijed onda imamo slijedeću jednakost

r=c+e

gdje u izrazu e predstavlja slijed pogreške.

Viterbi algoritam traži takav kodni slijed c' koji daje najveću vjerojatnost P(r׀c') da je r primljeni, a c' preneseni slijed.

Viterbi dekoder ispituje cijelu primljenu sekvencu dane dužine. Dekoder izračunava metriku svake putanje i donosi odluku na osnovu ove metrike. Prate se sve putanje, dok se dvije putanje ne spoje u jedan čvor. Onda se putanja sa većom metrikom zadržava, a ona sa manjom metrikom se odbacuje.

Za sekvencu od N bita ukupan broj mogućih primljenih sekvenci je 2N. Od njih, samo 2kK su validne. Viterbi algoritam primjenjuje pravila maksimalnih izgleda kako bi ograničio usporedbe na 2kK preživjelih putanja umjesto provjere svih putanja.

Najčešća korištena metrika je metrika Hamingovog razmaka. Ovo je samo broj pozicija bitova u kojima se primljena kodna riječ i dozvoljene kodna riječ poklapaju. Primjer se nalazi u tablici 4.

Primljeni biti

Dozvoljena kodna riječ

1

Dozvoljena kodna riječ

2

Hamingova metrika 1

Hamingova metrika 2

00 00 11 2 001 10 01 0 210 00 11 1 1

Tablica 4. Primjer Hamingove metrike

Ove metrike su kumulativne, tako da je putanja sa najvećom ukupnom metrikom najvjerojatnija. Primjer dekodiranja Viterbi algoritmom je prikazan u slijedećem primjeru.

Page 14: Konvolucijski Kodovi

4.2.1. Dekodiranje Viterbi algoritmom

Neka je primljena sekvenca 01 11 01 11 01 01 11.1. U t=0, primaju se bitovi 01. Dekoder uvijek počinje u stanju 000. Od ove točke

dostupne su mu dvije putanje, ali ni jedna ne odgovara dolazećim bitovima. Dekoder izračunava metriku obije grane i nastavit će simultano duž obije grane za razliku od sekvencijalnog dekodiranja gdje se izbor pravi na svakoj točki odluke. Metrika za obije grane je jedna, što znači da jedan od dva bita odgovara dolaznim bitovima. Slika 10.

Slika 10. Viterbi dekodiranje

2. U t=1, dekoder se širi iz dva moguća stanja u četiri stanja. Metrike ovih grana se proračunavaju preko slaganja kodne riječi i dolazećih bitova, 11. Nova metrika je prikazana desno od trellisa. Slika 11

Slika 11. . Viterbi dekodiranje

Page 15: Konvolucijski Kodovi

3. U t=2, četiri stanja se šire u osam, kako bi pokazala sve moguće putanje. Metrike putanja izračunate za bitove 01 su dodane na prethodne metrike iz t=1. Slika 12

Slika 12. . Viterbi dekodiranje

4. U t=3, trellis je potpuno popunjen. Svaki čvor ima najmanje jednu putanju koja dolazi u njega. Metrike su prikazane na slici.

5. U t=4, putanje nastavljaju naprijed i sada počinju da konvergiraju u čvorovima. Dobiju se dvije metrike za svaku od putanja koja dolazi u čvor po principu maksimalnih izgleda, u svakom čvoru se odbacuje putanja sa manjom metrikom, jer za nju postoje manji izgledi, odnosno manje je vjerojatna. Ovo odbacivanje putanja na svakom čvoru pomaže u smanjivanju broja putanja koje trebaju biti ispitane i Viterbi metodi daje snagu. Slika 13.

Slika 13. . Viterbi dekodiranje

Page 16: Konvolucijski Kodovi

Sada u svakom čvoru postoji jedna ili više putanja koje konvergiraju. Metrike za sve putanje su dane na desnoj strani. U svakom čvoru zadržava se samo putanja sa najvećom metrikom, a odbacuju ostale prikazane crvenom bojom. Poslije odbacivanja putanje sa manjom metrikom ostaju putanje koje prikazuje Error: Reference source not found Prikazana metrika je ona od pobjedničke putanje.

Slika 14. . Viterbi dekodiranje

6. U t=5, poslije odbacivanja putanja kao što je prikazano, ponovo se ide naprijed i proračunavaju se nove metrike. Na slijedećem čvoru putanje ponovo konvergiraju i ponovo se odbacuju one sa manjom metrikom. Slika 15.

Slika 15. . Viterbi dekodiranje

Page 17: Konvolucijski Kodovi

7. U t=6, primljeni bitovi su 11. Ponovo se metrike proračunavaju za svaku putanju. Odbacuju se sve putanje sa manjom metrikom, ali se zadržavaju obje ako su im metrike jednake. Slika16.

Slika 16. . Viterbi dekodiranje

Trellis od sedam koraka je kompletiran. Sada se promatra putanja sa najvećom metrikom, koja je pobjednik. Putanja koja prolazi kroz stanja 000, 100, 010, 101, 110, 011, 001, 000 odgovara bitovima 1011000, koji predstavljaju dekodiranu sekvencu. Slika 17.

Slika 17. Viterbi dekodiranje

Dužina ovog trellisa je bila 4 bita plus m bita. U idealnom slučaju ovo bi trebalo biti jednako dužini poruke, ali procesom zaokruživanja zahtjevi za memorijom mogu biti umanjeni, a dekodiranje ne mora kasniti do kraja emitirane sekvence. Tipična dužina zaokruživanja za konvolucijske kodove je 128 bita ili 5 do 7 puta veća od constraint length. Viterbi dekodiranje je prilično značajno jer se također primjenjuje i na dekodiranje blok kodova. Ovakav oblik trelis dekodiranja je također korišten i za trellis-kodiranu modulaciju (TCM).

Page 18: Konvolucijski Kodovi

5. ZAKLJUČAK

U ovom radu vidjeli smo neke metode kodiranja i dekodiranja konvolucijskih kodova. Generalno možemo zaključiti da podjela na dvije metode (optimalnu i podoptimalnu) ima svoje uporište gledajući same postupke u metodama dekodiranja.Viterbi algoritmi spada u optimalnu metodu i najčešće je primjenjivani algoritam jer se temelji na maksimumu vjerojatnosti minimizirajući pojavu pogreške, a kao nedostatak možemo navesti eksponencijalnu ovisnost o ograničenoj dužini. Što je ograničena dužina veća, to je veća pouzdanost sustava, ali i veća složenost Viterbi algoritma.Da bi se izbjegla ta složenost postoje podoptimalne metode, a jedna takva je i prikazana u seminaru, a to je metoda sekvencijalnog dekodiranja koja smanjuje broj putova, a samim tim imamo i manji broj proračuna. Sve to dovodi do manje optimalnosti sustava i mogućnosti pogreške u koliko se prilikom eliminacije putova uklone i oni pravi.Isto tako premašivanje limita memorije možemo izgubiti neke informacije što nam malo degradira učinkovitost ove metode.Postoji još dota raznih metoda koje imaju svoje prednosti i mane s obzirom na brzinu, složenost i učinkovitost.Zbog svoje široke primjene u svijetu komunikacija i različitim tehnološkim područjima njih se razvoj može očekivati i u budućnosti odnosno možemo očekivati sve brže i efikasnije metode dekodiranja.

6. LITERATURA

[1] Sinković V., Informacija, simbolika i semantika, ŠKOLSKA KNJIGA ZAGREB, 1997

[2] http://complextoreal.com/chapters/convo.pdf

[3] http://www.fer.hr/_download/repository/SKT08_09-10_Kodiranje.pdf

[4] N. Rožić, Informacija i komunikacije, kodiranje s primjenama, ALINEA, ZAGREB 1992.