PR6_-_Turbo_kod
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Sveučilište J. J. Strossmayera u Osijeku<br />
Elektrotehnički fakultet<br />
Kneza Trpimira 2b, 31 000 OSIJEK<br />
Tel. 031 224 600 - Fax. 031 224 605<br />
http://www.etfos.hr<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
Kodovi i <strong>kod</strong>iranje<br />
6. <strong>Turbo</strong> <strong>kod</strong><br />
Akademska godina 2011./2012.<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 1/50
De<strong>kod</strong>er s tvrdim i mekim odlučivanjem<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• U cilju realizacije pouzdanog <strong>kod</strong>nog<br />
sustava važnu ulogu ima odabrana mjera<br />
sličnosti (udaljenosti) između dviju <strong>kod</strong>nih<br />
riječi koja se naziva udaljenost <strong>kod</strong>a.<br />
• Dvije važne mjere sličnosti koje se koriste<br />
za određivanje udaljenosti između dviju<br />
<strong>kod</strong>nih riječi su Hammingova i Euklidska<br />
udaljenost <strong>kod</strong>a.<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 2/50
De<strong>kod</strong>er s tvrdim odlučivanjem<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Primjena neke od navedenih mjera <strong>kod</strong>a ovisi o odabranom<br />
<strong>kod</strong>nom sustavu, zahtijevanoj vjerojatnosti pogreške bita, tipu<br />
prijenosnog kanala i vrsti demodulatora.<br />
• U praksi se Hammingova udaljenost <strong>kod</strong>a koristi u slučaju<br />
prijenosa binarnim simetričnim kanalom (BSC, engl. binary<br />
simmetric channel) u kojem se svaki simbol promatra zasebno u<br />
odnosu na ostale simbole.<br />
• Kod donošenja odluke o primljenom simbolu koristi se tzv.<br />
većinska odluka što je potpuno jednako računanju Hammingove<br />
udaljenosti između primljene riječi i svih mogućih poslanih<br />
<strong>kod</strong>nih riječi.<br />
• Ovakav tip de<strong>kod</strong>era naziva se de<strong>kod</strong>er s tvrdim odlučivanjem<br />
(engl. hard-decision decoder).<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 3/50
BSC i AWGN kanal<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Važno je napomenuti da su <strong>kod</strong> prijamnika koji koristi<br />
de<strong>kod</strong>er s tvrdim odlučivanjem demodulator i de<strong>kod</strong>er dva<br />
odvojena bloka.<br />
• Prethodno navedeno svojstvo binarnog simetričnog kanala<br />
svrstava ga u kategoriju diskretnih kanala bez memorije<br />
(engl. discrete memoryless channels).<br />
• Navedena definicija za BSC može se proširiti ako se u<br />
razmatranje uključi kanal s aditivnim bijelim Gaussovim<br />
šumom AWGN (engl. Additive White Gaussian Noise).<br />
• Kada se prijenos obavlja preko AWGN kanala, tada se kao<br />
metrika uzima Euklidska udaljenost:<br />
n<br />
∑<br />
j=<br />
1<br />
( r j<br />
− c′<br />
j<br />
) 2 .<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 4/50
De<strong>kod</strong>er s mekim odlučivanjem<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Odluka o primljenom simbolu provodi se uzimajući u<br />
razmatranje cijelu <strong>kod</strong>iranu poruku.<br />
• U ovom slučaju de<strong>kod</strong>er se naziva de<strong>kod</strong>er s mekim<br />
odlučivanjem (engl. soft-decision decoder).<br />
• Demodulator i de<strong>kod</strong>er u prijamniku nisu dva odvojena<br />
bloka, nego jedan jedinstveni blok.<br />
• Na ovaj se način obavlja izmjena informacija između<br />
demodulatora i de<strong>kod</strong>era s ciljem smanjenja<br />
vjerojatnosti pogreške bita.<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 5/50
De<strong>kod</strong>er s mekim odlučivanjem<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Vjerojatnost pogrešne odluke o primljenom bitu<br />
manja je <strong>kod</strong> de<strong>kod</strong>era s mekim odlučivanjem u<br />
odnosu na de<strong>kod</strong>er koji koristi tvrdo<br />
odlučivanje.<br />
• Složenost sklopovske izvedbe de<strong>kod</strong>era s<br />
mekim odlučivanjem nešto je veća u odnosu na<br />
de<strong>kod</strong>er s tvrdim odlučivanjem.<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 6/50
Primjer:<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Pretpostavimo prijenos binarne informacije<br />
preko AWGN kanala koristeći sljedeći signalni<br />
skup:<br />
– kada izvorište generira „0“, tada se odašilju tri<br />
jednaka signala s pozitivnim polaritetom i<br />
jediničnim iznosom energije (+1, +1, +1),<br />
– za slučaj kada izvorište generira " 1" odašilju se tri<br />
jednaka signala s negativnim polaritetom i<br />
jediničnim iznosom energije (-1, -1, -1).<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 7/50
Primjer:<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Za slučaj prijamnika s de<strong>kod</strong>erom, koji koristi tvrdo<br />
odlučivanje, svaki se od signalnih uzoraka pojedinačno<br />
demodulira, a potom se, ako većina od primljenih<br />
uzoraka ima pozitivan polaritet, na izlazu de<strong>kod</strong>era<br />
pojavljuje "0".<br />
• U suprotnom se na izlazu de<strong>kod</strong>era pojavljuje "1".<br />
• Navedeni postupak, tzv. većinska odluka, identičan je<br />
određivanju Hammingove udaljenosti između<br />
primljenih signalnih uzoraka i svih mogućih signalnih<br />
sljedova koji se mogu pojaviti na izlazu predajnika.<br />
• Uzima onaj <strong>kod</strong>ni slijed koji ima najmanju<br />
Hammingovu udaljenost.<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 8/50
Primjer:<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Drugi tip de<strong>kod</strong>era (meko odlučivanje), nakon što je<br />
provedena demodulacija, provodi odluku između + + +<br />
i - - - na osnovu Euklidske udaljenosti:<br />
• Pretpostavimo da su odaslani i primljeni signali x =<br />
(+1, +1, +1) odnosno y = (+0.8, -0.1, -0.2).<br />
• Pojedinačna demodulacija signalnih uzoraka pokazuje<br />
da je, u primljenom signalu, većina signalnih uzoraka<br />
negativnog polariteta, što nas navodi na (pogrešan)<br />
zaključak da je odaslani simbol "1".<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 9/50
Primjer:<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Također, isti rezultat dobivamo računanjem<br />
Hammingove udaljenosti između primljenog<br />
signalnog slijeda i svih mogućih poslanih<br />
signalnih slijedova, tj. (+,-,-),(+,+,+) = 2 i<br />
(+,-,-),(-,-,-) = 1.<br />
• Iz ovoga zaključujemo da je odaslani simbol 1.<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 10/50
Primjer:<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• S druge strane, kvadratična Euklidska udaljenost između<br />
primljenih i poslanih signala je:<br />
• Što nas navodi na (ispravnu) odluku, tj. odaslan je simbol<br />
"0".<br />
• Zaključujemo da de<strong>kod</strong>er s tvrdim odlučivanjem donosi<br />
pogrešnu odluku zato što nije u razmatranje uključio<br />
činjenicu da demodulacija drugog i trećeg signalnog<br />
uzorka nije pouzdana jer su njihove vrijednosti bliske<br />
nuli.<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 11/50
TURBO KOD<br />
T<br />
E F<br />
O<br />
• Patentirao ih je Claude Berrou-a 1992.g.<br />
• Nude velika poboljšanja pri usporedbi s<br />
ostalim <strong>kod</strong>ovima. Omogućavaju rad vrlo<br />
blizu Shannonovog ograničenja.<br />
Zavod za komunikacije<br />
• Koriste ulančavanje konvolucijskih <strong>kod</strong>ova<br />
za postizanje boljih performansi <strong>kod</strong>iranja<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 12/50
Ulančavanje <strong>kod</strong>ova<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Ulančavanje je spajanje dvije <strong>kod</strong>ne riječi c 1 i c 2 u jednu<br />
<strong>kod</strong>nu riječ tako da se novi niz sastoji od elemenata jednog i<br />
drugog koji su poredani zadanim redoslijedom.<br />
• Ako je c 1 = {000; 001; 110; 111} i c 2 = {000; 100; 011; 111}.<br />
• Tada je c_ = {000000; 001100; 110011; 111111}.<br />
• Kombinacija dvaju <strong>kod</strong>ova c 1 i c 2 je niz c 1 c 2 koji se sastoji od<br />
<strong>kod</strong>nih riječi nastalih ulančanim vezanjem svih <strong>kod</strong>nih riječi<br />
c 1 sa svim <strong>kod</strong>nim riječima c 2 .<br />
• Veličina c 1<br />
i c 2<br />
ne moraju biti jednake<br />
• Npr. ako je c 1 = {00; 01; 10; 11} i c 2 = {00; 11}.<br />
Tada je c_ = {0000; 0011; 0100; 0111; 1000; 1011; 1100;<br />
1111}.<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 13/50
Ulančavanje <strong>kod</strong>ova<br />
T<br />
E F<br />
O<br />
• Ulančani <strong>kod</strong>ovi se sastoje od dva odvojena <strong>kod</strong>a koji se<br />
međusobno povezuju da bi tvorili jači <strong>kod</strong>. Mogu se<br />
povezivati serijski ili paralelno.<br />
• Pr. Serijsko ulančavanje<br />
Zavod za komunikacije<br />
<strong>kod</strong>er 1<br />
<strong>kod</strong>er 2<br />
F 1<br />
=k 1<br />
/n 1<br />
F 2<br />
=k 2<br />
/n 2<br />
modulator<br />
kanal<br />
de<strong>kod</strong>er 1<br />
de<strong>kod</strong>er 2<br />
demodulator<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 14/50
Serijsko ulančavanje <strong>kod</strong>ova<br />
T<br />
E F<br />
O<br />
• Ukupna <strong>kod</strong>na brzina <strong>kod</strong> serijskog<br />
ulančavanja iznosi:<br />
• što je jednako umnošku <strong>kod</strong>nih brzina ta dva<br />
<strong>kod</strong>era.<br />
• Općenito:<br />
F tot<br />
=<br />
Zavod za komunikacije<br />
k1k<br />
n n<br />
1<br />
2<br />
2<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 15/50
Serijsko ulančavanje <strong>kod</strong>ova<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Krajnji <strong>kod</strong>er prije kanala se naziva unutarnji <strong>kod</strong>er.<br />
Izlazni kompozitni <strong>kod</strong> je složeniji nego bilo koji <strong>kod</strong><br />
posebno.<br />
• Međutim, takav <strong>kod</strong> je jednostavan za de<strong>kod</strong>iranje:<br />
jednostavno primijenimo svaku komponentu de<strong>kod</strong>era<br />
prema redoslijedu, od unutarnjeg prema vanjskom.<br />
• Takva jednostavna shema ima nekoliko nedostataka,<br />
najznačajniji od njih se naziva “širenje pogreške”.<br />
• Ako se dogodi pogreška u <strong>kod</strong>noj riječi, ona rezultira<br />
određenim brojem pogrešnih bitova. Kada pogreška<br />
prijeđe na sljedeći de<strong>kod</strong>er, može se dogoditi da ne bude<br />
ispravljena.<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 16/50
Serijsko ulančavanje <strong>kod</strong>ova<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Serijski ulančani <strong>kod</strong>ovi još se nazivaju produktni<br />
<strong>kod</strong>ovi, jer je serijsko ulančavanje u biti multiplikativan<br />
proces.<br />
• Minimalna <strong>kod</strong>na<br />
distanca iznosi:<br />
d = d ×<br />
min<br />
1<br />
min<br />
d<br />
2<br />
min<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 17/50
Paralelno ulančavanje <strong>kod</strong>ova<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
<strong>kod</strong>er 1<br />
n1<br />
ulaz<br />
k<br />
<strong>kod</strong>er 2<br />
n2<br />
multiplekser<br />
modulator<br />
kanal<br />
izlaz<br />
osnovni<br />
ulančani<br />
de<strong>kod</strong>er<br />
demultiplekser<br />
demodulator<br />
Kod paralelnog ulančavanja <strong>kod</strong>na brzina iznosi:<br />
1 2<br />
Minimalna <strong>kod</strong>na distanca je: d = d + d −1<br />
min<br />
k<br />
F tot<br />
=<br />
n 1<br />
+ n 2<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 18/50<br />
min<br />
min
Usporedba PCCC i SCCC<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 19/50
Ulančavanje <strong>kod</strong>ova<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Kod oba načina ulančavanja najčešće se još između<br />
<strong>kod</strong>era dodaje interleaver (preplitanje) koji povećava<br />
kapacitet otklanjanja pogrešaka povećavajući<br />
slučajnost <strong>kod</strong>a.<br />
• <strong>Turbo</strong> <strong>kod</strong>ovi <strong>kod</strong> <strong>kod</strong>iranja koriste paralelno<br />
ulančavanje, a de<strong>kod</strong>er je zasnovan na načelu<br />
serijskog ulančavanja.<br />
• Serijski ulančani de<strong>kod</strong>eri se koriste iz razloga što je<br />
između pojedinih <strong>kod</strong>era moguće razmjenjivati<br />
informacije zbog čega imaju bolje karakteristike, dok<br />
u paralelnom ulančavanju de<strong>kod</strong>eri rade neovisno.<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 20/50
Primjena Interleavera<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Interleaving je postupak preuređivanja redoslijeda niza bitova iz<br />
jednog u drugi po nekom zadanom pravilu. Inverzni postupak se<br />
naziva deinterleaving.<br />
• Poboljšava sposobnost ispravljanja pogreške <strong>kod</strong> <strong>kod</strong>iranja.<br />
• Kod turbo <strong>kod</strong>ova, interleaving se koristi prije <strong>kod</strong>iranja<br />
informacije <strong>kod</strong> drugog <strong>kod</strong>era.<br />
• Osnovna uloga interleavera je konstruiranje dugih blok <strong>kod</strong>ova iz<br />
konvolucijskih <strong>kod</strong>ova s malom memorijom, jer se <strong>kod</strong>ovi sa<br />
velikom dužinom mogu približiti Shannonovom ograničenju.<br />
• Osim toga, interleaving širi paritetne bitove iz ostalih de<strong>kod</strong>era<br />
izvan usnopljene pogreške.<br />
• Interleaver daje ispremještane informacijske bitove za drugi <strong>kod</strong>er<br />
i dekorelira ulaze za de<strong>kod</strong>ere na prijemnoj strani, tako da su<br />
iterativni algoritmi de<strong>kod</strong>iranja zasnovani na nekoreliranoj<br />
informaciji koja se razmjenjuje između de<strong>kod</strong>era.<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 21/50
Primjena Interleavera<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Dužina interleavera je obično jednaka dužini informacijskih<br />
okvira koji se <strong>kod</strong>iraju.<br />
• Izbor dužine interleavera za promjenjive vrijednosti SNR također<br />
igra značajnu ulogu u performansama turbo <strong>kod</strong>a. Povećanjem<br />
dužine interleavera smanjuje se broj pogrešaka.<br />
• Interleaver smanjuje koeficijent pogreške procesom nazvanim<br />
“spektralno raspršenje”.<br />
• Dužina interleavera ovisi i o vrsti primjene turbo <strong>kod</strong>a, zato što o<br />
njoj ovisi kašnjenje <strong>kod</strong> de<strong>kod</strong>iranja.<br />
• Na primjer za prijenos zvuka u realnom vremenu koriste se male<br />
dužine interleavera (oko 300 bita), za prijenos slike koriste se<br />
srednje dužine interleavera (oko 4000 bita), a za prijenos datoteka<br />
mogu se koristiti interleaveri s velikom dužinom (oko 16000<br />
bita), što izaziva veliko kašnjenje, ali se postiže vrlo mali BER pri<br />
de<strong>kod</strong>iranju.<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 22/50
Pseudo-slučajni interleaver<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Pseudo-slučajni interleaver je definiran sa pseudo-slučajnim<br />
generatorom brojeva ili look-up tablicom gdje su svi brojevi u<br />
rasponu od 1 do N (dužina bloka informacijskih bitova).<br />
• Interleaver na slici ulazni niz [01101001] transformira u niz<br />
[01011001]<br />
• Kod turbo <strong>kod</strong>ova najbolje rezultate daju pseudo-slučajni interleaveri<br />
i interleaveri koji su zasnovani na njima.<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 23/50
Interleaver sa cirkularnim pomakom<br />
T<br />
E F<br />
O<br />
• Permutacija P <strong>kod</strong> interleavera sa cirkularnim pomakom je<br />
definirana sa<br />
P<br />
( i) = ( ai + s) mod L<br />
s < i<br />
Zavod za komunikacije<br />
• gdje su zadovoljeni uvjeti a < L i , a je prost broj i<br />
period cirkularnog pomaka, i je indeks informacijskih bitova u<br />
okviru, a s predstavlja pomak.<br />
Primjer:<br />
parametri: L=8, a=3<br />
i s=0<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 24/50
UMTS Interleaver<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• UMTS interleaver je optimiziran za mobilne mreže treće<br />
generacije. Standardiziran je prema UMTS (Universal Mobile<br />
Telecommunications System) specifikacijama.<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 25/50
UMTS Interleaver<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Radi sa dužinama okvira od 40 do 5114 bitova.<br />
• UMTS interleaver se sastoji od četiri faze:<br />
• u prvoj fazi (a) informacijski bitovi se ubacuju u matricu.<br />
Matrica može imati 5, 10 ili 20 redaka, a broj stupaca se kreće<br />
od 8 do 256 što ovisi o dužini okvira. Ako je broj bitova manji<br />
od broja elemenata u matrici dodaju se lažni bitovi (dummy<br />
characters).<br />
• u drugoj fazi (b) obavlja se permutacija u retcima<br />
• u trećoj fazi se obavlja miješanje pozicije redaka (c)<br />
• četvrta faza je čitanje informacijskih bitova po stupcima (d)<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 26/50
Bušenje prilikom <strong>kod</strong>iranja<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Svrha bušenja u turbo <strong>kod</strong>ovima je periodično brisanje<br />
određenih bitova zbog smanjenja opterećenja sustava uslijed<br />
<strong>kod</strong>iranja.<br />
k bitova<br />
<strong>Turbo</strong><br />
<strong>kod</strong>er<br />
n bitova<br />
Uređaj za<br />
bušenje<br />
(1−λ) n bitova<br />
• uređaj za bušenje briše bitove s vjerojatnošću λ. Stoga<br />
očekivani broj preostalih bitova iznosi (1-λ)n.<br />
• Ovakav koncept je prikladan za konvolucijske <strong>kod</strong>ove i stvara<br />
optimalne karakteristike u prilagodbi brzine <strong>kod</strong>a<br />
multipleksiranju transportnog kanala.<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 27/50
Bušenje prilikom <strong>kod</strong>iranja<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Osnovni tip turbo <strong>kod</strong>era koristi dva RSC <strong>kod</strong>era. Kodna<br />
brzina takvog <strong>kod</strong>era je F = 1/3 ako nema bušenja, to jest za<br />
neki ulazni niz bitova u <strong>kod</strong>er, dobije se tri puta duži niz<br />
bitova. Prvi bit u izlaznom nizu je informacijski, drugi je<br />
paritetni iz prvog RSC <strong>kod</strong>era, treći je paritetni iz drugog RSC<br />
<strong>kod</strong>era, taj redoslijed se naizmjence ponavlja do kraja<br />
izlaznog niza:<br />
•Algoritam za bušenje briše paritetne bitove zadanim redoslijedom, jer<br />
oni predstavljaju redundanciju, a bušenje sustavnih bitova se izbjegava,<br />
zato što su oni najvažniji za prijenos informacije.<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 28/50
Bušenje prilikom <strong>kod</strong>iranja<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Slika prikazuje način bušenja u slučaju kada se koriste dva<br />
RSC <strong>kod</strong>era. Pri tome je <strong>kod</strong>na brzina F = 1/2 zato što je sada<br />
u <strong>kod</strong>noj riječi svaki drugi bit paritetni. Bušeni <strong>kod</strong> ima nešto<br />
slabiju BER karakteristiku, ali veću <strong>kod</strong>nu brzinu.<br />
Sustavni<br />
bitovi<br />
Paritetni<br />
bitovi #1<br />
Paritetni<br />
bitovi #2<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 29/50
<strong>Turbo</strong> <strong>kod</strong>er<br />
T<br />
E F<br />
O<br />
• Općeniti turbo <strong>kod</strong>er sastoji se od dva, tri ili n rekurzivnih<br />
sustavnih konvolucijskih <strong>kod</strong>era (RSC).<br />
• Svi <strong>kod</strong>eri koriste različite interleavere iste dužine.<br />
Zavod za komunikacije<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 30/50
<strong>Turbo</strong> <strong>kod</strong>er<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Na ulaz prvog <strong>kod</strong>era se dovodi niz informacijskih bitova<br />
određene duljine K, a svi ostali <strong>kod</strong>eri primaju isti niz bitova,<br />
ali s različitim redoslijedom.<br />
• Redoslijed ulaznih bitova za svaki <strong>kod</strong>er je različit i ovisi o<br />
vrsti interleavera. Na taj način svaki <strong>kod</strong>er generira paritetne<br />
bitove koji su nezavisni.<br />
• Dobiveni paritetni bitovi i sustavni bitovi se buše i<br />
multipleksiraju u serijski niz bitova .<br />
• Konvolucijski <strong>kod</strong>ovi korišteni u turbo <strong>kod</strong>ovima najčešće<br />
imaju malu ograničenu duljinu od 3 do 5. Veće vrijednosti se<br />
ne koriste, jer se povećava kompleksnost de<strong>kod</strong>iranja, a time i<br />
kašnjenje. Ako se ne koristi bušenje, <strong>kod</strong>na brzina turbo<br />
<strong>kod</strong>era je:<br />
1<br />
F = n + 1<br />
• gdje je n broj RSC <strong>kod</strong>era u turbo <strong>kod</strong>eru.<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 31/50
Rekurzivni sustavni konvolucijski <strong>kod</strong>er<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Ovaj <strong>kod</strong>er se dobiva dovođenjem jednog izlaza na ulaz neponavljajućem<br />
sustavnom konvolucijskom <strong>kod</strong>eru.<br />
• Osnovni konvolucijski <strong>kod</strong>er se predstavlja generatorskim<br />
nizom g 1<br />
= [1 1 1] i g 2<br />
= [1 0 1], te se može prikazati kao G =<br />
[g 1<br />
,g 2<br />
].<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 32/50
Rekurzivni sustavni konvolucijski <strong>kod</strong>er<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• RSC <strong>kod</strong>er koji je proizašao iz osnovnog konvolucijskog <strong>kod</strong>era<br />
predstavlja se s G = [1, g 2<br />
/g 1<br />
], gdje je prvi izlaz predstavljen s g 1<br />
vraća na ulaz. c 1 predstavlja sustavni izlaz, g 2<br />
izlaz za sljedeći stupanj,<br />
a g 1<br />
izlaz koji se vraća na ulaz <strong>kod</strong>era.<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 33/50
Algoritmi za de<strong>kod</strong>iranje<br />
turbo <strong>kod</strong>ova<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Algoritam odlučivanja koji uzima u obzir a<br />
posteriory vjerojatnosti naziva se MAP algoritam.<br />
• MAP je skraćenica od “Maksimum a posteriori<br />
Probability”.<br />
• MAP maksimizira izlaznu vjerojatnost koja se<br />
zasniva na mekim vrijednostima iz de<strong>kod</strong>era.<br />
Algoritam koji upotrebljava meke ulaze i izlaze<br />
naziva se SISO (Soft Input – Soft Output)<br />
algoritam.<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 34/50
MAP ili BCJR algoritam<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Algoritam su prvi uveli L. Bahl, J. Cocke, F. Jelinek i J. Raviv<br />
1974. god. te se često naziva i BCJR, u čast pronalazača.<br />
• SISO algoritmi koriste rešetkasti dijagram za predstavljanje svih<br />
mogućih sekvenci stanja <strong>kod</strong>era. Rešetkasti dijagram opisuje<br />
moguće prijelaze iz trenutnog stanja u vremenskom koraku k u<br />
slijedeće stanje u vremenskom koraku k+1 za RSC <strong>kod</strong>er koji<br />
<strong>kod</strong>ira dani ulazni niz.<br />
• Broj stanja ovisi o memoriji RSC <strong>kod</strong>era. Duljina rešetkastog<br />
dijagrama ovisi o duljini informacijskih bitova K i memoriji m.<br />
• Rešetkasti dijagram ne mora prikazivati prijelaze za svaki<br />
vremenski korak posebno, dopušten je skraćeni prikaz dijagrama.<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 35/50
MAP i SOVA algoritam<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• SOVA (Soft Output Viterbi Algorithm)<br />
• SOVA algoritam je manje kompleksan od MAP<br />
algoritma, ali ima slabije karakteristike.<br />
• Složenost MAP algoritma se može smanjiti<br />
implementacijom u logaritamskoj domeni.<br />
• Logaritamska inačica MAP algoritma se naziva log-<br />
MAP. Na taj način se računske operacije množenja<br />
pretvaraju u zbrajanje, što znatno ubrzava algoritam.<br />
• log-MAP algoritam se može pojednostaviti sa linearlog-MAP,<br />
constant-log-MAP i max-log-MAP<br />
algoritmom.<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 36/50
MAP algoritam<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Osnovna zamisao je da MAP algoritam pronalazi<br />
najvjerojatniji bit koji je poslan u <strong>kod</strong>noj riječi.<br />
• Algoritam je kompliciraniji od Viterbijevog algoritma,<br />
jer u proračun uključuje metriku puta i metriku<br />
prijelaza. Te metrike se računaju rekurzivno iz<br />
rešetkastog dijagrama.<br />
• Kod rekurzije naprijed računaju se koeficijenti α s<br />
lijeva na desno, a <strong>kod</strong> rekurzije unatrag računaju se<br />
koeficijenti β s desna na lijevo. Na temelju izračunatih<br />
koeficijenata MAP algoritam dobiva meke izlaze.<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 37/50
MAP algoritam<br />
T<br />
E F<br />
O<br />
• Na izlazu iz <strong>kod</strong>era<br />
imamo slijed c = c 1 c 2 …<br />
c N , tj. N <strong>kod</strong>nu riječ, gdje<br />
je c k generirani simbol<br />
trenutka k. Kodirani<br />
podatak se potom prenosi<br />
bezmemorijskim AWGN<br />
kanalom pa za primljeni<br />
slijed imamo r = r 1 r 2 …<br />
r N . Primljeni slijed<br />
podijelimo na tri dijela<br />
koji redom predstavljaju<br />
prošlost, sadašnjost i<br />
budućnost:<br />
r<br />
= r r2<br />
... r<br />
14243<br />
k − 1<br />
rk<br />
rk<br />
+ 1<br />
... rN<br />
=<br />
Zavod za komunikacije<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 38/50<br />
r<br />
< k<br />
14243<br />
r<br />
> k<br />
r<br />
< k<br />
r<br />
k<br />
r<br />
> k
MAP algoritam<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Logaritam omjera a posteriori vjerojatnosti za ulazni bit trenutka<br />
k računamo iz sljedeće relacije:<br />
L(<br />
i<br />
k<br />
| r)<br />
=<br />
ln<br />
∑<br />
R<br />
1<br />
∑<br />
R<br />
0<br />
P(<br />
s′<br />
, s,<br />
r)<br />
P(<br />
s′<br />
, s,<br />
r)<br />
=<br />
ln<br />
∑<br />
R<br />
1<br />
∑<br />
α<br />
α<br />
k −1<br />
k<br />
−<br />
1<br />
( s′<br />
) γ ( s′<br />
, s)<br />
β ( s)<br />
k<br />
( s′<br />
) γ ( s′<br />
, s)<br />
β ( s)<br />
• gdje P ( s′<br />
, s,<br />
r)<br />
predstavlja a posteriori (združenu) vjerojatnost<br />
primljenog slijeda r za prijelazno stanje od stanja s' trenutka k-1<br />
do stanja s trenutka k.<br />
• R 1 označava skup svih grana koje potječu od ulaznog bita 1, a R 0<br />
skup svih grana koje potječu od ulaznog bita 0.<br />
R<br />
0<br />
k<br />
k<br />
k<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 39/50
MAP algoritam<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• γ k<br />
( s′<br />
, s)<br />
je vjerojatnost prijelaza tj. vjerojatnost da je u stanju S k<br />
= s primljen simbol r k<br />
te da je grana koja se spaja na to stanje<br />
došla iz stanja S k-1<br />
= s ' , a računa se iz relacije:<br />
γ<br />
k<br />
( s ′,<br />
s)<br />
= P(<br />
rk<br />
ck<br />
) P(<br />
ik<br />
• Za AWGN kanal, računamo na sljedeći način:<br />
n<br />
i L i ⎛ L ⎞<br />
′ =<br />
⎜ ∑<br />
k ( k )/ 2 c<br />
γ<br />
k<br />
( s , s)<br />
Cke<br />
exp cklrkl<br />
⎟<br />
⎝ 2 l=<br />
1 ⎠<br />
• α i β su vjerojatnosti prošlosti i budućnosti, a izračunavaju se iz<br />
rekurzivnih formula:<br />
1 s = 0<br />
( s)<br />
( ) ( , ) početni uvjet: α<br />
0<br />
( s)<br />
=<br />
= α<br />
1<br />
s′<br />
γ s s<br />
k<br />
∑<br />
α ⎩ ⎨⎧ 0 s ≠ 0<br />
s′<br />
′<br />
k − k<br />
)<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 40/50
MAP algoritam<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
β<br />
1(<br />
s′<br />
k<br />
) ∑ k<br />
( s)<br />
k<br />
( s′<br />
−<br />
= β γ , s)<br />
s<br />
početni uvjet:<br />
β N<br />
( s)<br />
=<br />
⎧1<br />
⎨<br />
⎩0<br />
s<br />
s<br />
=<br />
≠<br />
0<br />
0<br />
• Vjerojatnost α računamo kada se <strong>kod</strong>nom rešetkom krećemo<br />
prema naprijed, počevši sa α 0<br />
( s)<br />
gdje je s = 0, 1, …, Q – 1. Q je<br />
ukupan broj stanja. Taj proračun se naziva prolaz unaprijed<br />
(engl. forward pass).<br />
• Vjerojatnost β računamo kada se <strong>kod</strong>nom rešetkom krećemo<br />
prema natrag, počevši sa β N<br />
(s) gdje je s = 0, 1, …, Q – 1. Taj<br />
proračun se naziva prolaz unatrag (engl. backward pass).<br />
• Upravo je zbog toga BCJR algoritam poznat i pod nazivom<br />
algoritam naprijed-natrag (engl. forward-backward algorithm).<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 41/50
MAP algoritam<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Obilježavanje <strong>kod</strong>ne rešetke uz pomoć α, β i γ vjerojatnosti<br />
• Sa dobivenim vrijednostima α, β i γ računamo oblik posteriori<br />
(združene) vjerojatnosti P( s′ , s,<br />
r)<br />
= α<br />
1(<br />
s)<br />
( s′<br />
−<br />
γ , s)<br />
β ( s )<br />
′<br />
k k k<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 42/50
MAP algoritam<br />
T<br />
E F<br />
O<br />
• slučaj P(1,2,r) kada je ulazni bit 1.<br />
Zavod za komunikacije<br />
• Na isti način računamo i sva ostala stanja <strong>kod</strong>ne<br />
rešetke, prvo za ulazni bit 1, a potom i za ulazni bit 0.<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 43/50
MAP algoritam<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Logaritam omjera a posteriori vjerojatnosti za<br />
ulazni bit trenutka k dobijemo iz relacije:<br />
R1<br />
L( i | r)<br />
= ln<br />
k<br />
∑<br />
∑<br />
R<br />
0<br />
P(<br />
s′<br />
, s,<br />
r)<br />
P<br />
(<br />
s<br />
′<br />
,<br />
s<br />
,<br />
r<br />
)<br />
P(0,2,<br />
r)<br />
+ P(1,2,<br />
r)<br />
+ P(2,3,<br />
r)<br />
+ P(3,3,<br />
r)<br />
= ln<br />
P<br />
(0,0,<br />
r<br />
)<br />
+<br />
P<br />
(1,0,<br />
r<br />
)<br />
+<br />
P<br />
(2,1,<br />
r<br />
)<br />
+<br />
P<br />
(3,1,<br />
r<br />
)<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 44/50
MAP algoritam<br />
T<br />
E F<br />
O<br />
• Sažetak<br />
izračuna:<br />
Zavod za komunikacije<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 45/50
MAP algoritam<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Normalizirani oblik za α, β i P norm dobivamo iz<br />
relacija:<br />
α ( s)<br />
k<br />
=<br />
gdje je:<br />
α ′<br />
k<br />
( s)<br />
∑ α ′ k<br />
( s)<br />
β<br />
k −1<br />
( s′<br />
)<br />
=<br />
∑<br />
s s<br />
′<br />
∑<br />
Pk<br />
= ∑α<br />
k<br />
R<br />
0<br />
R<br />
1<br />
( −1 β ′ ′<br />
k −1<br />
( s )<br />
β ′ ( s′<br />
)<br />
k −1<br />
s′<br />
) γ ( s′<br />
, s)<br />
β ( s)<br />
k<br />
k<br />
P<br />
norm<br />
=<br />
( s′<br />
, s,<br />
r)<br />
=<br />
P(<br />
s′<br />
, s,<br />
r)<br />
∑ Pk<br />
∑ α ′ ′ + ∑ ′ ′<br />
k −1( s ) γ<br />
k<br />
( s , s)<br />
β<br />
k<br />
( s)<br />
α<br />
k 1(<br />
s ) γ<br />
k<br />
( s<br />
=<br />
−<br />
R<br />
R<br />
0<br />
1<br />
, s)<br />
β ( s)<br />
k<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 46/50
<strong>Turbo</strong> de<strong>kod</strong>er<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• De<strong>kod</strong>er turbo <strong>kod</strong>a se sastoji od dva ili više MAP de<strong>kod</strong>era, što ovisi<br />
o vrsti turbo <strong>kod</strong>a.<br />
• Na početku de<strong>kod</strong>iranja a posteriori informacija je jednaka nuli,<br />
nakon de<strong>kod</strong>iranja u prvom de<strong>kod</strong>eru proizvedena a posteriori<br />
informacija se šalje u drugi de<strong>kod</strong>er zajedno sa primljenom<br />
informacijom iz drugog <strong>kod</strong>era na predajnoj strani, nakon toga ili se<br />
donosi čvrsta odluka ili se a posteriori informacija iz drugog de<strong>kod</strong>era<br />
šalje u prvi de<strong>kod</strong>er.<br />
• Pri tome je de<strong>kod</strong>irana informacija koja se dobije svakim sljedećim<br />
de<strong>kod</strong>erom sve bliža izvornoj informaciji. Nakon de<strong>kod</strong>iranja<br />
informacije u drugom de<strong>kod</strong>eru završava prva iteracija.<br />
• Iteracija predstavlja jedan ciklus razmjene a priori informacije koji<br />
počinje de<strong>kod</strong>iranjem informacije u prvom de<strong>kod</strong>eru, a završava<br />
de<strong>kod</strong>iranjem u drugom de<strong>kod</strong>eru. Pri tome se a posteriori<br />
informacija s drugog de<strong>kod</strong>era na početku sljedeće iteracije šalje<br />
prema prvom de<strong>kod</strong>eru.<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 47/50
T<br />
E F<br />
O<br />
• Povećanjem broja iteracija algoritam<br />
je sve bliže ispravnoj <strong>kod</strong>noj riječi.<br />
• Broj iteracija koji će se koristiti<br />
ovisi o omjeru signal/šum.<br />
• Pri određenom broju iteracija dolazi<br />
do zasićenja i nakon toga nema<br />
smisla povećavati broj iteracija.<br />
• Pri manjim omjerima signal/šum se<br />
koristi veći broj iteracija, a pri većim<br />
manji broj iteracija.<br />
Zavod za komunikacije<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 48/50
Primjena turbo <strong>kod</strong>a<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
• Upotrebljava se u mobilnim mrežama treće generacije<br />
UMTS i CDMA 2000, digitalnoj televiziji DVB, u<br />
satelitskim komunikacijama i u istraživanju svemira<br />
CCSDS.<br />
• O vrsti primjene ovisi koliki broj stanja i koje <strong>kod</strong>ne brzine<br />
će biti upotrebljavane. Za implementaciju algoritama<br />
<strong>kod</strong>iranja i de<strong>kod</strong>iranja se upotrebljavaju DSP procesori,<br />
ASIC integrirani krugovi i sklopovi sa FPGA jezgrom.<br />
• Brzine de<strong>kod</strong>iranja se kreću od nekoliko kilobita u sekundi<br />
(DSP procesori) do nekoliko stotina megabita u sekundi<br />
(FPGA sklopovi)<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 49/50
Neke primjene turbo <strong>kod</strong>a<br />
T<br />
E F<br />
O<br />
Zavod za komunikacije<br />
11.4.2012. <strong>Turbo</strong> <strong>kod</strong> 50/50