12.01.2015 Views

PDF - Telfor

PDF - Telfor

PDF - Telfor

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

BIDIREKCIONI SEKVENCIJALNI DEKODERI<br />

KAO UNUTRAŠNJI DEKODERI<br />

KASKADNIH KODNIH SISTEMA<br />

Miloš Hasura<br />

Elektrotehnički fakultet u Beogradu<br />

I UVOD<br />

Sistemi za kvalitetan prenos poruka imaju osobinu da i<br />

pored smetnji u kanalima za prenos sačuvaju poruke<br />

verodostojnim. Kvalitet sistema sa kodovanjem se ogleda u<br />

sposobnosti detekcije i ispravljanja eventualnih grešaka<br />

nastalih tokom prenosa. Kodovanje će imati veći efekat ako<br />

se ostvari što je moguće veće rastojanje između kodnih reči,<br />

međutim, velika rastojanja između kodnih reči i zahtev da<br />

odnos između tzv. informativnih i neinformativnih simbola<br />

(simbola koji unose redundansu) bude što bolji sa aspekta<br />

efikasnog prenosa, iziskuje upotrebu dugačkih kodnih reči.<br />

Dugačke kodne reči predstavljaju problem prilikom<br />

realizacije kodera i dekodera i često ih čine neefikasnim.<br />

Stoga je upotreba kaskadno vezanih kodera (concatenated<br />

coding system) doprinela povećanju efikasnosti uz ostvarenje<br />

većeg kodnog rastojanja. Na slici 1. prikazana je opšta šema<br />

kaskadnog kodnog sistema. Informacija se koduje prvo u tzv.<br />

spoljašnjem, potom u unutrašnjem koderu, redosled<br />

dekodovanja je obrnut (vrši se prvo dekodovanje koje<br />

odgovara unutrašnjem koderu, pa dekodovanje koje odgovara<br />

spoljašnjem koderu). Telekomunikacioni kanal podrazumeva<br />

sitem za modulaciju - demodulaciju i sam fizički kanal.<br />

Slika 1. Kaskadni kodni sistem<br />

Postoji više kombinacija vezivanja kaskadnih kodera, no<br />

jedno od opšte prihvaćenih rešenja je upotreba blok kodera<br />

kao spoljašnjeg i konvolucionog kodera kao unutrašnjeg<br />

kodera. Preciznije, za spoljašnji koder/dekoder se koristi Rid-<br />

Solomon koder/dekoder (Reed-Solomon), zbog osobine da<br />

ima maksimalnu distancu između kodnih reči (d = n – k + 1),<br />

može da koriguje T grešaka (2T = n - k) i pogodnosti za<br />

realizaciju. Na izlazu dekodera konvoluciono kodovanih<br />

poruka greške koje se javljaju su korelisane, ovo kvari<br />

osobine Rid-Solomon dekodera, pa se između dva kodera<br />

umeće interliver (najčešće blok interliver zbog svoje<br />

jednostavnosti), odnosno deinterliver između dekodera koji<br />

reanžirajući simbole smanjuju korelaciju između pogrešnih<br />

simbola. U daljem tekstu dat je pregled sekvencijalnih<br />

dekodera konvoluciono kodovanih poruka.<br />

II BIDIREKCIONI SEKVENCIJALNI DEKODERI<br />

Sekvencijalno dekodovanje konvoluciono kodovanih reči<br />

daje dobre rezultate po pitanju verovatnoće greške, štaviše<br />

ona se može učiniti proizvoljno malom. S druge strane<br />

poznato je da rastojanje između kodnih reči utiče i na<br />

verovatnoću greške i na broj operacija prilikom dekodovanja<br />

[1]. Veća rastojanja se dobijaju primenom konvolucionih<br />

kodera sa većim brojem memorijskih lokacija. Međutim,<br />

povećanje memorijskih lokacija dodatno komplikuje proces<br />

dekodovanja jer se povećava broj mogućih stanja u kojima se<br />

dekoder može da zadesi, a samim tim se u slučaju većih<br />

smetnji u telekomunikacionom kanalu dekoder dovodi u<br />

situaciju da mora da ispita više putanja, odnosno da proveri<br />

više vrednosti metrika ovih putanja ili ekvivalentno da<br />

proveri veći broj početnih i krajnjih stanja kroz koje prolazi.<br />

Činjenica da broj mogućih stanja dekodera progresivno raste<br />

sa brojem memorijskih lokacija predstavlja veliku poteškoću<br />

za dekodere zasnovane na Viterbijevom algoritmu. Sadašnji<br />

realni sistemi sa Viterbijevim algoritmom sadrže do 6<br />

memorijskih lokacija u koderu.<br />

Sekvencijalni dekoderi imaju tu prednost što mogu da<br />

podrže kodovanje sa više memorijskih lokacija kodera, jer<br />

broj putanja zavisi od broja informativnih simbola, kao i od<br />

dužine bloka koji se koduje. Zbog ove osobine moguće je<br />

projektovati sisteme koji prenose dugačke blokove<br />

informativnih bita (50, 100, 200, 300 ili više informativnih<br />

simbola po bloku), a jedino ograničenje su raspoloživi<br />

memorijski i procesorski resursi dekodera. Unidirekcioni<br />

dekoderi su klasična rešenja koja dekoduju kodnu reč od<br />

njenog početka, pa do kraja i kada nema mnogo smetnji<br />

proces dekodovanja se odvija nesmetano. Veće smetnje su<br />

uzrok da trenutna metrika ne padne ispod određenog praga<br />

što dovodi dekoder u “privremenu zabunu” da je na dobroj<br />

putanji iako sledi lošu putanju, kada konačno, vrednost<br />

metrike padne ispod barijere dekoder će se vratiti nazad i<br />

pokušati da nastavi nekom drugom i u tom trenutku<br />

“najboljom” putanjom. Lutanja po kodnom stablu iziskuju<br />

veći broj operacija izračunavanja naročito ako se primenjuje<br />

Fano algoritam, odnosno veći broj memorijskih lokacija steka<br />

u slučaju Zigangirov-Jelinek algoritma. Realni sistemi<br />

podrazumevaju da je na raspolagunju ograničeno vreme za<br />

proces dekodovanja, kao i ograničena memorija za smeštaj<br />

privremenih rezultata dekodovanja. Ograničenja će se<br />

odraziti na performanse sekvencijalnih dekodera. U slučaju


da su dostignute granice sitema bilo po osnovu broja<br />

dozvoljenih operacija, bilo po osnovu raspoložive memorije<br />

proces dekodovanja može čak da bude i nasilno prekinut, a<br />

kao rezultat dolazi do pojave brisanja (erasure). U<br />

dekodovanoj sekvenci “obrisani” dekodovani simboli se<br />

mogu predstaviti nekim posebnim simbolom koji nije u<br />

skupu informativnih simbola kada je cilj ispitivanje<br />

performansi sistema, kada se sistem nalazi u konkretnoj<br />

upotrebi umesto “obrisanih” simbola upisuju se<br />

najverovatniji informativni simboli, u slučaju<br />

jednakoverovatnih informativnih simbola bira se po<br />

dogovoru. Pojava brisanja se u zavisnosti od same realizacije<br />

može primeniti na ceo blok koji nije do kraja dekodovan, a<br />

može se zadržati onaj deo reči koji odgovara najboljoj<br />

putanji, a ostatak se popunjava simbolima “brisanja”.<br />

Fizičko ograničenje veličine memorijskog steka može da<br />

se prevaziđe u toku procesa dekodovanja brisanjem najmanje<br />

verovatnih putanja, a u poslednje vreme se koriste i sistemi sa<br />

više stekova kako bi se ublažilo pogoršanje karakteristika<br />

koje je posledica brisanja. Ograničenja broja izvršenih<br />

operacija su uslovljena tolerancijom kašnjenja tokom<br />

dekodovanja, kao i kapacitetom bafera na prijemu podataka<br />

iz kanala. Drugim rečima upotreba bržih procesora, bržih<br />

uređaja za pristup memorijskim lokacijama, veća tolerancija<br />

na kašnjenje, veći kapaciteti za prijem paketa iz kanala mogu<br />

da poprave krajnje osobine dekodovanih poruka.<br />

Bidirekcioni način dekodovanja upravo daje bolje rezultate<br />

i po pitanju broja potrebnih operacija i po pitanju verovatnoće<br />

greške. Osnovni princip bidirekcionog načina dekodovanja je<br />

da se dekodovanje obavlja sa početka ka kraju bloka i od<br />

kraja ka početku. Prvobitno je predloženo da se blok<br />

dekoduje i od početka do kraja i od kraja do početka, pa da se<br />

rezultati na neki način uporede, no ovaj način ne doprinosi<br />

značajno poboljšanju po pitanju verovatnoće greške, ali<br />

svakako povećava i onako značajan broj operacija.<br />

Savremeni metod bidirekcionog dekodovanja podrazumeva<br />

upotrebu dva dekodera koja kreću svaki sa po jednog kraja<br />

bloka i obavljaju dekodovanje sve do nivoa na kome će se<br />

izvršiti spajanje (merging point). Prednost ovog načina je da<br />

duži paketi grešaka (burst) bivaju “napadnuti” sa dva kraja,<br />

pa je samim tim i veća verovatnoća da će dekoderi zajedno<br />

više prodreti za kraće vreme i uz manji broj operacija. Na<br />

slici 2. je simbolično prikazano dekodovanje bloka podataka<br />

koji sadrži pakete grešaka.<br />

Slika 2. Blok podataka sa paketima grešaka<br />

Paketi grešaka su i izvor pogoršanja karakteristika<br />

dekodera, jer se posle pojedinačnih grešaka dekoder značajno<br />

brže oporavlja, paketi grešaka duže zadržavaju dekoder u<br />

zabludi da sledi lošu putanju, pa su i skokovi pri povratku na<br />

ispravnu putanju veći i traže veći broj operacija. Što su kodni<br />

blokovi kraći manja je verovatnoća da će biti mnogo paketa<br />

grešaka u njima. Ovo omogućava da dekoderi brzo pređu<br />

oblasti u bloku bez ili sa malo grešaka, pa se spajanje<br />

najčešće dešava u oblastima gde je lociran paket grešaka.<br />

Kada nema paketa grešaka spajanje je obično u blizini<br />

sredine kodne reči, a broj operacija je približno jednak broju<br />

operacija unidirekcione metode. Postoji jedna interesantna<br />

pojava koja važi za bidirekcione dekodere, kada nema mnogo<br />

grešaka u kanalu prilikom dekodovanja identičnih sekvenci<br />

unidirekcioni dekoderi (i Fano i stek) mogu da imaju bolje<br />

rezultate, odnosno manji broj grešaka dekodovanja i manji<br />

broj izvršenih operacija, no ove pojave su retke i<br />

pretpostavlja se da zavise od konstelacije sekvence grešaka.<br />

Verovatno ako se veći broj grešaka javi u zoni spajanja dva<br />

dekodera, oni neće imati vremena da koriguju svoje putanje<br />

pre nego što se ispune uslovi spajanja.<br />

Da bi se bidirekciono dekodovanje moglo da obavlja<br />

potrebno je ispuniti dodatne uslove prilikom konvolucionog<br />

kodovanja sekvenci u odnosu na unidirekcioni slučaj. Pre<br />

svega kodovana sekvenca mora da se dovede u neko unapred<br />

poznato stanje (najčešće se terminira nulama), kako bi se<br />

uopšte moglo da vrši dekodovanje unazad.<br />

Prilikom dekodovanja unazad dobija se sekvenca inverzna<br />

originalno kodovanoj sekvenci. Značajan je i izbor<br />

konvolucionog koda, poželjno je da osim dobrog spektra<br />

rastojanja (distance profile) koda unapred ima dobar spektar<br />

rastojanja koda unazad. Treba koristiti simetrične ili bar<br />

simetrične kodove sa skoro optimalnim spektrom distanci<br />

(symmetric bidirectional optimum distance profile-SBODP,<br />

symmetric almost bidirectional optimum distance profile-<br />

SABODP) kako bi oba dekodera bila podjednako opterećena<br />

u toku dekodovanja i kako bi oba dekodera skoro podjednako<br />

napredovala kroz stablo.<br />

Kao što je već napomenuto spajanje putanja (dekodovanih<br />

sekvenci ) dva dekodera može da predstavlja problem, zato je<br />

neophodno da se spajanje izvrši bez preklapanja putanja čine<br />

bi se izbegle arbitražne operacije utrvđivanja eventualno<br />

“boljih” delova putanja u slučaju pojave odstupanja vrednosti<br />

dekodovanih sekvenci dva dekodera. Predložen je sledeći<br />

algoritam [2], bidirekcioni stek dekoder za dekodovanje<br />

koristi dva steka nazvana stek unapred (forward stack - FS) i<br />

stek unazad (backward stack - BS). Oba steka počinju<br />

simultano svaki sa odgovarajuce strane stabla. Nakon<br />

inicijalizacije steka unapred izračunavaju se metrike za sve<br />

čvorove naslednike i vrši se ažuriranje steka prema<br />

kumulativnoj metrici i uklanja se čvor čiji su čvorovi<br />

naslednici uneti (Fano metrika za i-ti čvor se određuje prema<br />

obrascu<br />

h<br />

j j<br />

⎪⎧<br />

⎡ P( y ) ⎤ ⎪⎫<br />

i<br />

| xi<br />

j<br />

λ<br />

i<br />

= ∑ ⎨log<br />

2 ⎢ ⎥ − B<br />

j<br />

= ( ) ⎬ gde su y<br />

i<br />

emitovani<br />

j 1 ⎪⎩ ⎣ P xi<br />

⎦ ⎪ ⎭<br />

simboli, a x j<br />

i<br />

primljeni simboli, kumulativna metrika se<br />

određuje kao<br />

L u<br />

=<br />

u<br />

∑<br />

i=<br />

0<br />

λ ) [3]. Proverava se da li je ispunjen<br />

i<br />

uslov da je zbir nivoa vršnog čvora u steku unazad (lBtop) i<br />

nivoa najdalje dostignutog čvora u steku unapred ( lf) veći ili<br />

jednak ukupnoj dužini koda (L). Najdalje dostignuti čvor u<br />

steku ne mora da ima i najbolju metriku, tj. ne mora da znači<br />

da je putanja koja se završava tim čvorom trenutno na vrhu<br />

steka. Potom se ispituju sve putanje dužine L - lBtop u FS.<br />

Ako postoji jedna ili više ovakvih putanja prekida se<br />

dekodovanje i od svih bira se ona sa najvećom kumulativnom<br />

metrikom, u suprotnom navedena procedura dekodovanja se<br />

sprovodi na steku unazad, pri tom uslov zaustavljanja<br />

dekodovanja je lFtop + lb ≥ L. Sekvence čije se kumulativne<br />

metrike upoređuju su dužine L - lFtop, gde su lb i lFtop nivoi


najdalje dostignutog čvora u steku unazad, odnosno nivo<br />

vršnog čvora u steku unapred. Procedura se vraća na stek<br />

unapred ukoliko dekododovanje nije završeno. Uslovi<br />

spajanja se proveravaju pre nastavljanja čvorova čime se<br />

izbegava preklapanje putanja.<br />

Izneti principi spajanja putanja mogu se primeniti i u<br />

bidirekcionom ostvarenju Fano algoritma. Bidirekcioni Fano<br />

algoritam praktično ima dva unidirekciona Fano dekodera<br />

dekoder unapred i dekoder unazad. Fano algoritam u<br />

svakom trenutku prati samo jednu putanju, pa je poznata<br />

samo vrednost nivoa te putanje, što pojednostavljuje proces<br />

spajajanja. Proceduru započinje dekoder unapred, nakon<br />

određivanja trenutne putanje unapred i njenog nivoa (nF),<br />

proverava se uslov spajanja (i samim tim i uslov prekidanja<br />

dekodovanja), tj. da li je zbir nivoa putanje unapred (nF) i<br />

nivoa putanje unazad (nB) jednak ukupnoj dužini kodovane<br />

reči. Ako uslov nije ispunjen proceduru nastavlja dekoder<br />

unazad, i ovde se nakon određivanja odgovarajućeg nivoa<br />

(nB) proverava uslov spajanja (završetka dekodovanja).<br />

Neispunjenje uslova spajanja vraća proces na dekoder<br />

unapred. Dekodovanje se okončava onog trenutka kada se<br />

izvrši spajanje putanja, ako ne postoje i druga ograničenja<br />

(npr. ograničen broj dozvoljenih operacija) koja mogu da<br />

izazovu nasilni prekid dekodovanja.<br />

III SIMULACIJE I REZULTATI<br />

U računarskoj simulaciji generisane su poruke dužine<br />

L = 50 bita (sa jednakoverovatnim simbolima 0 i 1).<br />

Konvolucioni koder sa M = 23 memorijska mesta, generišuće<br />

()<br />

matrice<br />

1 ( )<br />

G = [ 44407043]<br />

G 2 = [ 61070111]<br />

stvara<br />

simetričan bidirekcioni kod sa optimalnim profilom distanci.<br />

Telekomunikacioni kanal je modelovan modulatorom<br />

/demodulatorom binarnih faznih signala (BPSK), a dodati<br />

šum je aditivni beli Gausov. Demodulisane sekvence su<br />

paralelno dekodovane unidirekcionim Fano dekoderom<br />

(UFD), unidirekcionim stek dekoderom (USD),<br />

bidirekcionim Fano dekoderom (BFD) i bidirekcionim stek<br />

dekoderom (BSD) kako bi sva četiri tipa dekodera zapravo<br />

dekodovala identičnu sekvencu.<br />

Dobijene dekodovane sekvence su upoređene sa originalnim<br />

informativnim sekvencama. Rezultati su potvrdili heuristički<br />

dobijene zaključke [2] da broj operacija za dekodovanje<br />

bidirekcionim stek dekoderom ima Pareto raspodelu, kao i<br />

unidirekcionim stek dekoder, stim što se Pareto parametar<br />

duplira, a takođe se koriguje i odgovarujući koeficijent.<br />

Ako je raspodela ukupnog broja operacija potrebnih za<br />

unidirekciono stek dekodovanje (USD) bloka dužine L<br />

−ρ<br />

P( C<br />

USD<br />

L<br />

> N ) ~ N , raspodela ukupnog broja operacija<br />

potrebnih za bidirekciono stek dekodovanje (BSD) biće<br />

2ρ −2ρ<br />

P( C<br />

BSD<br />

L<br />

> N ) ~ 2 N , gde je N broj operacija, ρ<br />

USD BSD<br />

odgovarajući Pareto parametar, C<br />

L<br />

i C<br />

L<br />

broj operacija<br />

unidirekcionog odnosno bidirekcionog dekodera.<br />

Slika 4. Raspodele ukupnog broja operacija za blok dužine<br />

50 bita i verovatnoći greške 0.0324 pri unidirekcionom i<br />

bidirekcionom Fano dekodovanju<br />

Na slici 3. prikazane su dobijene raspodele ukupnog broja<br />

opecija po bloku podataka za stek algoritam. Na slici 4.<br />

prikazani su rezultati dobijeni za Fano algoritam.<br />

Slika 3. Raspodele ukupnog broja operacija za blok dužine<br />

50 bita i verovatnoći greške 0.0324 pri unidirekcionom i<br />

bidirekcionom stek dekodovanju<br />

Slika 5. Verovatnoće grešaka pri unidirekcionom i<br />

bidirekcionom stek dekodovanju za različite vrednosti<br />

odnosa signal/šum


Rezultati bidirekcionog Fano algoritma ukazuju da bi se<br />

aproksimacija raspodele ukupnog broja operacija po bloku za<br />

bidirekciono stek dekodovanje mogla primeniti i za ovaj<br />

slučaj kada je N veliko.<br />

Upoređivanjem procenjenih vrednosti verovatnoća<br />

nastajanja greški, moglo bi se zaključiti da je postignut i ovde<br />

izvesan dobitak, no mora se uzeti u obzir i činjenica da u toku<br />

simulacija nisu zabeležene pojave brisanja, jer nisu uzeta<br />

stroga ograničenja upravo da bi se videle osobine samih<br />

algoritama. Ograničenje ukupnog broja operacija za BFD je<br />

5.000.000 opercija, broj operacija za USD je 5.000.000, za<br />

BSD broj operacija je ograničen na 40.000 ukupno, za USD<br />

ograničenje je 40.000, stek algoritmi nisu imali ograničenja u<br />

broju memorijskih lokacija.<br />

IV ZAKLJUČAK<br />

Bidirekcioni algoritmi sekvencijalnog dekodovanja daju<br />

bolje rezultate naročito po pitanju potrebnog broja operacija,<br />

što je i najkritičniji parametar u dekodovanju konvoluciono<br />

kodovanih poruka. Ova poboljšanja dopuštaju da sistem u<br />

svojim granicama okonča proces dekodovanja sa manjim<br />

brojem pojava brisanja, što posredno popravlja vrednosti<br />

verovatnoće grešaka. Posmatrajući kaskadne kodne sisteme<br />

kao celinu, upotreba bidirekcionih dekodera proširuje opseg<br />

primene i za manje vrednosti odnosa signal/šum dokle god je<br />

broj eventualno načinjenih grešaka manji od broja koje Rid-<br />

Solomon kod može da otkrije i ispravi.<br />

LITERATURA<br />

[1] Pierre. R. Chevillat and Daniel J. Costello Jr., “Distance<br />

and Computation in Sequential Decoding,” IEEE Trans.<br />

Commun., vol. COM-24, pp. 440-447, Apr. 1976.<br />

[2] Samir Kallel and Kaiping Li, “Bidirectional Sequential<br />

Decoding,” IEEE Trans. Inform. Theory, vol. IT-43, pp.<br />

1319-1326, July 1997.<br />

[3] R. M. Fano, “A Heuristic Discussion of Probabilistic<br />

Decoding,” IEEE Trans. Inform. Theory, vol. IT-9, pp. 64-74,<br />

Apr. 1963.<br />

[4] Miloš Hasura, “Komparativna analiza dva kaskadna<br />

kodna sistema sa bidirekcionim sekvencijalnim<br />

dekodovanjem,” XLVI Konferencija ETRAN, Banja Vrućica<br />

Jun 2002.<br />

Slika 6. Verovatnoće grešaka pri unidirekcionom i<br />

bidirekcionom Fano dekodovanju za različite vrednosti<br />

odnosa signal/šum<br />

Na slici 5. i na slici 6. prikazane su procenjene vrednosti<br />

verovatnoća grešaka za unidirekcione i bidirekcione varijante<br />

stek i Fano algoritma.<br />

Uvođenje strožijih (realnijih) ograničenja idu u korist<br />

primene bidirekcionih algoritama [4]. Pojave brisanja se ređe<br />

javljaju, pa su bolji rezultati u pogledu verovatnoća greški,<br />

dok ograničen kapacitet lokacija u steku značajno povećava<br />

broj potrebnih operacija naričito kod USD.<br />

Abstract: An important part of the concatenated coding<br />

system is a sequential decoder. The main drawback of<br />

classical (unidirectional) sequential decoding is the<br />

variability of its decoding effort. Two bidirectional sequential<br />

decoding approach – Bidirectional Stack (Zigangirov-<br />

Jelinek) Algorithm and Bidirectional Fano Algorithm are<br />

analyzed by means of computer simulations. Obtained results<br />

suggest a decrease of the computational variability.<br />

BIDIRECTIONAL SEQUENTIAL DECODERS AS INNER<br />

DECODERS OF THE CONCATINATED CODING<br />

SYSTEM, Miloš Hasura

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!