PDF - Telfor
PDF - Telfor
PDF - Telfor
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