Sunteți pe pagina 1din 60

1.

INTRODUCERE

Inventarea turbo-codurilor a facilitat operarea sistemelor de comunicaii aproape


de limita Shannon. Marea lor capacitate de corecie a datelor a fost recunoscut i
acceptat aproape pentru toate tipurile de canal ducnd la creterea ratei datelor i la
mbuntirea calitii serviciilor. Codurile turbo pot opera la o diferen de mult sub 1dB
fa de limita Shannon, depind astfel oricare alt tehnic de codare cunoscut azi.
Ctigul codrii turbo poate fi folosit pentru o eficienta cat mai mare a benzii de
transmisie sau pentru reducerea puterii necesare.
Ele au evoluat ntr-un ritm fr precedent i s-au consacrat n doar civa ani. Ca
rezultat al acestei evoluii foarte rapide, TC-urile au fost deja introduse n sisteme
standardizate ca de exemplu a III-a generaie a sistemelor radio mobile (3G). De
asemenea, performane impresionante s-au obinut cu TC-urile i n sistemele de
transmisie video.
Dupa Shannon, o comunicaie sigur este posibil printr-un canal orict de
zgomotos dac e ndeplinit condiia ca rata de transmisie s fie mai mic dect
capacitatea canalului. Codul perfect ar fi unul in care mesajul este trimis de o infinitate
de ori, de fiecare data in alta ordine, aleator. Receptorul primeste un numar infinit de
versiuni ale mesajului, afectate aleator. Din copiile sale, decodorul va putea decoda cu
probabilitate de eorare aproape nula mesajul trimis. Aceasta este teoria codului perfect,
unul care poate corecta toate erorile pentru un semnal virtual. Codul Turbo este un pas in
aceasta directie. Totusi, pentru o performanta acceptabila nu este nevoie ca informatiile
sa fie trimise de un numar infinit de ori, doua sau trei sunt suficiente pemtru niste
rezultate bune. In codurile Turbo, in special structura paralela, sunt folosite coduri
convolutionale recursive sistematice (RSC) ce lucreaza in paralel pentru a crea versiunile
aleatoare ale mesasjului. Structura paralela foloseste doua sau mai multe coduri RSC,
separate printr-un intretesator. Scopul intretesatorului este de a oferi fiecarui codor o
versiune necorelata, random, de informatie din care reies biti de paritate pentru fiecare
RSC. Independenta acestor biti de paritate depinde de tipul si lungimea intretesatorului.
La receptie, sunt acelasi numar de decodoare cate codoare folosite la transmisie, fiecare
lucrand cu aceeasi informatie si un set independent de biti de paritate. Acest tip de
structura se numeste Cod Convolutional cu Concatenare Paralela (PCCC). Decodarea
folosita este de obicei una iterativa. Cand avem doua astfel de codoare, semnalul rezultat
este de rata 1/3. De obicei, doua codoare sunt suficiente, cresterea numarului lor reduce
eficienta benzii de transmisie si nu aduce o crestere semnificatica a performantelor.
Codurile Turbo au fost unanim considerate cele mai puternice coduri de control al
erorilor cu importanta practica. Ele au devenit o zona populara in cercetarile in
comunicatii. Codurile Turbo au rezolvat dilema structurat aleator permitant partea
structurata in concatenare si cea aleatoare in intretesere. Caracteristica importanta a
codurilor Turbo este rata de eroare pe bit (BER) mica atinsa chiar si la rapoarte semnal

zgomot (SNR) mici. Performantele codurilor turbo sunt datorate intreteserii aleatoare si
decodarii iterative.

Figura 2.1- Diagrama bloc a unui sistem de comunicaie


Indiferent de sursa lor, informaiile trebuiesc traduse ntr-un set de semnale
optimizate pentru canalul pe care sunt trimise. Primul pas const n a elimina partea
redundant obinnd astfel o maximizare a ratei de transmisie a informaiei. Acest lucru
se realizeaz cu ajutorul codorului sursei. De asemenea datele trebuiesc protejate
mpotriva perturbaiilor introduse de canalul de comunicaii ntrct acestea pot duce la
interpretri greite ale mesajelor recepionate. Aceast protecie se poate realiza prin
folosirea strategiilor de control al erorilor. Aceast strategie poate fi o simpl detecie a
erorilor, entitatea care primete datele fiind informat despre blocurile de date
recepionate cu erori. Alte strategii urmresc corectarea erorilor i, pentru acestea, se
disting dou cazuri: (1) detectarea blocurilor de date recepionate eronat i corectare
erorilor prin retransmiterea acestor blocuri ( ARQ Automatic Repeat Request) i (2)
corectarea direct, la recepie a erorilor (FEC- Forward Error Correction). Blocul
modulator genereaz un semnal potrivit pentru canalul de transmisie.
Pentru recuperarea informaiei transmise, la recepie se folosesc n ordine inversat
blocurile de la emisie avnd acum funcii opuse.
Codarea canalului reprezint o soluie foarte eficient i comod de mbuntire a
performanelor unui sistem de comunicaie digital. Dintre codurile corectoare utilizate la
ora actual, cea mai performant clas o constituie turbo-codurile (TC). Performanele
acestora, evaluate prin curbele ratei erorii de bit (BER) funcie de raportul semnal per
zgomot (Signal to Noise Ratio, SNR), se apropie de limita Shannon. Limita Shannon se
refer la raportul semnal per zgomot minim necesar pentru a putea realiza o transmisie
sigur, i are valoarea ln(2) = 1,59 dB, n condiiile ideale ale unui canal de band
infinit. n cazurile practice, aceast limit teoretic depinde de lungimea blocurilor de

-4

date transmise. Pentru blocuri cu lungimea de 1000 de bii i o rat a erorii de 10 ,


valoarea limitei teoretice este de 0,8 dB.
Deoarece TC-urile opereaz la mai puin de 1dB distan de limita teoretic,
devine necesar obinerea unei precizii suficient de mari asupra curbelor BER/SNR n
vederea unei comparaii veridice.
Rata erorii (BER) este definit ca i raport ntre numrul de bii eronai, x, i
numrul total de bii transmii, N:
BER = x / N,
(1.1)
unde x numrul de bii eronai este o funcie de raportul semnal per zgomot, dat n
decibeli:
x = x().
(1.2)
n general, o curb BER este reprezentarea grafic a funciei:
b = lg(BER) = b(), (3)
aa cum se prezint n Fig.1.
Definim eroarea curbei BER n punctul (b , ) ca:
0

E = b / b (4)

Fig. 1.2 Exemplu de curba BER


Vreme de 50 de ani cercettorii au creat coduri limitate ca performan de
complexitatea decodrii i de complexitatea canalului.
n schema propus de Berrou i colaboratorii si s-a folosit concatenarea paralel a
dou coduri convoluionale sistematice recursive, plasnd un dispozitiv de ntreesere
ntre cele dou codoare. La decodor s-a introdus o structur iterativ ce folosete o
versiune modificat a algoritmului MAP clasic inventat de Bahl, pentru a decoda aceste
coduri paralele concatenate. ncepnd cu 1993 s-au depus eforturi mari n vederea
reducerii complexitii decodorului asociat.

2. CODURI CONVOLUIONALE
n acest capitol se va prezenta metoda de codare convoluional folosit pentru
controlul i corecia erorilor. n cazul acesteia, procesul de codare se desfoar
continual, astfel nct un ir de date de intrare cu rata
este transformat ntr-un alt ir
. Acest tip de codare este mai puternic dect codarea bloc,

de date codate cu rata

permind obinerea unor ctiguri de codare mai mari la aceeai complexitate.


Scopul acestei transformri este acela de a crete rezistena la perturbaii n
condiiile transmiterii acestor date printr-un canal afectat de zgomot. Transformarea este
complet structurat, n sensul c permite codarea si decodarea perfect a datelor, simultan
cu creterea redundanei informaiei la transmiterea prin canal.

2.2 Structura codorului convoluional


Codurile convoluionale sunt generate cu ajutorul unui registru de deplasare cu mk
celule i a n sumatoare care realizeaz corespondena dintre secvena de intrare i cea de
ieire ca in Fig 2.1. Codul este definit prin:
k = numrul de bii de date care intr n codor la un moment dat;
n = numrul de bii ce apar la ieirea codorului n urma procesrii celor k bii de date;
conexiunile ntre celulele registrului de deplasare i sumatoarele modulo 2.
Rata codului este dat de raportul

iar starea codorului este definit de coninutul registrului de deplasare, care este complet
determinat de secvena de intrare. Numrul total de stri posibile este
.
k bii de intrare
1

....

....

....

n sumatoare modulo 2
1

cuvntul de ieire format din n bii

Figura 2.1- Structura general a unui codor convoluional

Una din principalele caracteristici ale codurilor convoluionale este aceea c au memorie,
n sensul c fiecare simbol de ieire depinde de bitul curent de intrare dar i de (m-1) bii
de intrare anteriori.

2.2.1 Descrierea codorului convoluional


Codorul poate fi reprezentat prin cteva moduri distincte dar echivalente. Acestea
sunt:
-

pe baza polinoamelor generatoare


prin diagrama de tranziie a strilor
prin diagrama trellis
prin diagrama arbore

2.2.2 Descrierea codorului pe baza polinoamelor generatoare


n general, un cod convoluional este complet determinat dac se cunosc
polinoamele generatoare, care definesc:

numrul de celule ale registrului de deplasare (dat de gradul maxim al


polinoamelor);
numrul de sumatoare modulo 2 (dat de numrul de polinoame);
conexiunile ntre celulele registrului si aceste sumatoare.

Exemplul 2.1. S se implementeze codorul definit de polinomele

(2.2)
i s se determine cuvntul de cod dac secvena de date este

Codorul are o intrare, 2 ieiri, registrul de deplasare este format din 2 celule, iar
rata codorului este R=1/2. Structura codorului este prezentat n Figura 2.2.
Biii de intrare sunt introdui n registrul de deplasare de la stanga la dreapta.
Pentru fiecare bit de intrare introdus n codor sunt generai cte doi bii la ieirea celor
dou sumatoare modulo 2. n acest fel fiecare bit de intrare influeneaz semnalul la ieire
att pe intervalul de tact n care acesta a fost introdus ct i pe urmtoarele dou intervale
de tact.Cele dou sumatoare sunt citite alternativ, astfel nct rata codului este dubl fa
de rata secvenei de intrare.

Secvena
de ieire
D

Figura 2.2 - Structura codorului convoluional cu rata 1/2 din exemplul 1

Att secvenele de intrare ct i polinoamele generatoare se pot defini polinomial


sau vectorial. Secvena de intrare se poate scrie astfel

bii de intrare

w=

(2.3)

Pentru structura din exempul 2.1. secvenele la ieirea celor dou sumatoare sunt

x1=

x2=

(2.4)

Cele dou ieiri sunt ntreesute pentru a genera secvena la ieire:


x=

(2.5)

Cu acestea, pentru secvena de intrare particular dat,


(2.6)

se poate determina secvenele la ieirea celor dou sumatoare

x1

(2.7)

x2
deci secvena de cod generat este:
v

(2.8)

Codurile convoluionale pot fi sub form sistematic sau nesistematic. Forma


sistematic presupune ca unul din plolinoamele generatoare sa fie egal cu 1, astfel ct
secvena de intrare s apar direct n secvena de ieire. Cum codurile sistematice au n
general o complexitate mai mare n condiiile obinerii acelorai performane, sunt
preferate cele nesistematice.
Se definete lungimea

de constrngere a codului ca fiind gradul maxim al

polinoamelor generatoare. Aceasta este de asemenea o msur a cantitii de memorie


ocupat de codor, deoarece este egal cu lungimea registrului de deplasare
(2.9)

2.2.3

Descrierea codorului prin diagrama de tranziie a strilor

Codoarele pot fi descrise de asemenea cu ajutorul diagramelor de tranziie. n acest caz:


strile sunt reprezentate prin cercuri care include codul asociat strii (coninutul
celulelor registrului de deplasare);
ramurile corespund tranziiilor dintre stri; tranziiile determinate de intrri
egale cu 0 sunt reprezentate printr-o linie continu iar cele determinate de intrri
egale cu 1 prin linie punctat;
deasupra fiecrei ramuri este specificat secvena de ieire corespunztoare.
Astfel, pentru codorul descris n exemlul 2.1 diagrama de tranziii se poate determina din
tabelul de tranziii Tabelul 2.1

Tabel 2.1
Starea curent

Intrare

Starea urmtoare

Ieire

[00]

0
1
0
1
0
1
0
1

[00]
[10]
[00]
[10]
[01]
[11]
[01]
[11]

[00]
[11]
[11]
[00]
[10]
[01]
[01]
[10]

[01]
[10]
[11]

Aceasta este reprezentat schematic n figura 2.3.


00

00
11

11
10

10

01
00
01

01
11

10
Figura 2.3 - Diagrama de tranziie a strilor pentru codorul convoluional din exemplul 2.1.

2.2.4

Descrierea codoarelor prin diagrama trellis

Codoarele folosite pentru coduri convoluionale mai pot fi descrise i cu ajutorul


diagramelor trellis care permit o vizualizare a evoluiei att n spaiul strilor ct i n
timp. Astfel pe vertical se reprezint toate strile posibile ale codorului, la fiecare
moment de timp. Un bit de intrare 0 va determina trecerea codorului ntr-o alt stare,
trecere ce va fi reprezentat printr-o linie continu ce unete starea de pornire de la
momentul discret t i starea urmtoare de la momentul (t+1). Trecerile datorit biilor de
intrare 1 sunt reprezentate prin linii punctate. Deasupra acestora sunt trecui biii care
apar la ieirea codorului. Pe msur ce codorul evolueaz n spaiul strilor se realizeaz
o deplasare de la stnga la dreapta prin diagrama trellis, iar secvena de date codat se
poate citi urmrind datele trecute deasupra liniilor parcurse.Pentru codorul descris n
exemplul 2.1.diagrama trellis este reprezentat n figura 2.4.

00

00

00

00

00

00

00
11

01

11

01

11

01

01
.....

10

10

10

11
00

10

10

10

01
01

01

11

11

11

t=0

t=1

t=2

11

11

t=3

Figura 2.4 - Diagrama trellis asociat codorului din exemplul 2.1

Se observ c pentru

diagrama trellis se repet identic cu ceea ce

apare ntre momentele t=2 si t=3. Ieirea se poate determina direct din aceast diagram
determinnd ramurile parcurse pe baza secvenei de intrare i citind secvena generat
nscris deasupra liniilor care marcheaz tranziiile. Astfel, pentru o secven de intrare
secvena de ieire va fi
.
2.2.5

Descrierea codoarelor prin diagrama arbore

Ca i diagramele trellis, diagramele de tip arbore prezint att evoluia n spaiul


strilor ct i n timp. Se consider c starea iniial a codorului este [00]. Trecerile ntr-o
stare urmtoare cauzate de bii de intrare 0 sunt reprezentate ca ramuri care urc, n
timp ce cele cauzate de bii de intrare 1 ca ramuri care coboar. Deasupra fiecrei
ramuri se scrie ieirea codorului corespunztor tranziiei.
Pentru codorul descris n figura 2.1 diagrama arbore este prezentat n figura 2.5.
Se observ c dup patru intervale de tact toate cele opt tranziii posibile sunt
reprezentate; de la acest punct ncolo diagrama se repet simetric.
Dezavantajul reprezentrii tip arbore este acela ca dac secvena informaional
are o lungime de L bii, diagrama va avea
ramuri. Din acest motiv se prefer pentru
reprezentare diagrama trellis.

00

00

11

10

10

01

01

11

11

00

00

10

01

01

10

11

....

00

00

00

00

....

11

10

00

11

....

10

01

10

....

01

11

Figura 2.5 - Diagrama tip arbore asociat codorului din exemplul 2.1

Exemplul 2.2. Fie codorul convoluional definit de polinoamele generatoare

(2.10)

a)
b)
c)

desenai structura codorului;


desenai diagrama de tranziie a acestuia
determinai secvenade ieire dac secvena de intrare este
(2.11)

d)
e)

desenai diagrama trellis i artai traiectoria pe aceast diagram


care este distana Hamming ntre ieirile codorului corespunztoare lui
i

(2.12)

Codorul este format dintr-un registru de deplasare cu trei celule i trei sumatoare cu
conexiunile aferente date de polinoamele generatoare. Deoarece fiecrui bit de intrare i

corespund trei bii la ieire, deci rata codului este

. Codorul este reprezentat n

figura 2.6
IN

OUT

Figura 2.6 - Structura codorului definit de polinoamele generatoare 2.10

a)

Diagrama de tranziie corespunztoare este reprezentat n figura 2.7.


000
000
111

111
000

001

100
110

101
010
001

010

010

001

101
101

110
011

011

110
100

100
111
011

Figura 2.7 - Diagrama de tranziie a strilor pentru codul definit de polinoamele (2.10)

b)

Secvena de ieire se poate determina direct din funcionarea codorului,


folosind diagrama de tranziie sau prin calcul polinomial folosind secvena de
intrare si polinoamele generatoare. Rezultatul este prezentat n tabelul 2.2.

c)

Diagrama trellis se determin figurnd toate strile posibile i tranziiile


dintre ele. Presupunem c starea iniial este [000], traiectoria corespunztoare
secvenei de intrare date este reprezentat n figura 2.8.

d)

Traiectoriile corespunztoare celor dou cuvinte sunt


w1=[000,000,000,000,000,000, . ]
w2=[111,110,101,111,000,000,.]

(2.13)

Distana Hamming este egal cu numrul de diferene dintre cele dou traiectorii (sau
numrul de 1 din suma modulo doi a celor dou cuvinte de cod), dh=10
Tabel 2.2

00

000

stare

intrare

ieire

000

111

100

110

010

010

101

110

110

011

011

101

101

001

010

010

101

001

010

101

001

111

000

111

100

001

000

000

111

111

111

00

10
0
10
1
11
0
11
1

111

110

000
111

111

000
111

000
111

000
111

000
111

000

000

111 111

000
111

010

010

001
101

001

000

101

000
101

01
01

000

101

010
001

111

011

001
011
110
100
011

Figura 2.8 - Diagrama trellis pentru codorul convoluional definit de polinoamele 2.10

001

2.3

Decodarea codurilor convoluionale


n ceea ce urmeaz se prosupune c decodorul cunoate

structura codului (tie diagama trellis a acestuia),


secvena recepionat i
probabilitile de tranziie asociate canalului.
Rolul decodorului este acela de a estima secvena de date la intrarea codorului (intrarea
canalului) cu un numr ct mai mic de erori. Pentru aceasta se ine cont de faptul c
exist o coresponden biunivoc ntre secvena de date la intrarea codorului i secvena
de date codat i, n plus, acesteia i corespunde o cale unic prin trellis. Cu alte cuvinte
decodorul trebuie s estimeze traiectoria strbtut de codor prin trellis.
Se presupune c sursa de informaie este ideal, deci simbolurile la ieirea
acesteia sunt egal probabile i independente. Ieirea codorului se va reprezenta ca o
secven semi-infinit de date
(2.14)
Secvena la ieirea canalului este:
(2.15)
Probabilitatea de a recepiona secvena
secvena

,tiind c la ieirea codorului a fost generat

este:

Dat fiind secvena la ieirea canalului, , secvena de intrare cea mai probabil la
intrarea acestuia

este aceea care maximizeaz valoarea lui

. Aceasta este

metrica utilizat pentru a compara secvena de intrare a canalului cu cea de la ieirea


acestuia. Deoarece logaritmul este o funcie monoton se poate folosi de asemenea
metrica logaritmic

Aceast reprezentare reprezint avantajul unei implementri hardware i software


mai simple deoarece suma este o funcie liniar n timp ce produsul nu este.
Legea de decizie este:

ceea ce reprezint legea de decizie cu maxim de probabilitate aposteriori. n cazul n care


probabilitile datelor
sunt aceleai pentru toate valorile posibile se obine legea de
decizie cu maxim de plauzibilitate:

Ambele detectoare determin metricile aferente tuturor cilor din diagrama trellis,
ieirea acestora fiind acea secven care maximizeaz metrica de decizie.
n cele ce urmeaz se presupune ca semnalul se transmite prin intermediul unui
canal binar simetric (Binary symmetric channel BSC), cu o probabilitate de eroare
i respectiv o probabilitate de recepie corect
. Aceasta face ca toate
traiectoriile prin trellis s fie echiprobabile, deci decodarea se va face dup principuil
maximei plauzibiliti.
Cum probabilitatea de eroare a unui simbol satisface distribuia de probabilitate
binomial, probabilitatea de eroare a N simboluri va satisface distribuia de probabilitate
Bernoulli deci probabilitatea ca n erori s se produc ntr-un bloc de N simboluri binare
transmise printr-un canal binar simetric este:

iar probabilitatea de a se produce cel mult n erori ntr-un bloc de N date este:

Fie

distana Hamming ntre secvena recepionat y si secvena transmis

(respectiv numrul de poziii n care cele dou secvene difer). n cazul unui canal binar
simetric funcia de plauzibilitate se poate exprima n termenii distanei Hamming astfel

iar regula e decizie maxim de plauzibilitate se poate scrie :

respectiv sub forma logaritmic:

(2.23)
Cum probabilitatea de eroare p < 0,5, rezult

deci valoarea factorului

este ntotdeauna pozitiv. Pe de alt parte termenul

este

independent de poziia biilor testai, deci regula de decizie se reduce la minimizarea


distanei Hamming dintre secvena recepionat i toate secvenele transmise posibile.
(2.24)

Exemplul 2.3 Un sistem de comunicaie transmite un mesaj care este codat


convoluional conform diagramei trellis din figura 2.9. (tranziiile determinate de intrri
egale cu 0 sunt reprezentate printr-o linie continu iar cele determinate de intrri egale cu
1 prin linie punctat). Simbolurile codate sunt transmise printr-un canal discret fr
memorie cu probabilitatea de eroare
. S se determine metricile asociate celor 8
ci i distanele Hamming asociate. Pe baza acestora s se determine traiectoria cea mai
probabil prin trellis i secvena de date aferent la intrarea codorului.
secvena recepionat

01

10
00

11

00

10

11

00

00

00

00

11

11

11

00
10

00

10
01

10

01

01

01

10

Figura 2.9 - Diagrama trellis pentru exemplul 2.3

Se determin succesiv

(2.25)
Cu ajutorul acestora se determin succesiv metricile pentru fiecare cale prin trellis. De
exemplu pentru calea generat de intrarea [0 0 0 0 0] sunt 5 simboluri diferite i 5
simboluri identice deci
(2.26)
n mod similar se pot determina metricile asociate tuturor cilor din graf. Secvenele de
intrare, cele de ieire, metricile asociate i distana Hamming aferent sunt reprezentate n
tabelul 2.3.

Tabelul 2.3
Intrare

Ieire codor

Metrica cii

Distana Hamming

0,0,0,0,0

00,00,00,00,00

-12.05

0,0,1,0,0

00,00,11,10,11

-14.24

0,1,0,0,0

00,11,10,11,00

-5.48

0,1,1,0,0

00,11,01,01,11

-16.43

1,0,0,0,0

11,10,11,00,00

-14.24

1,0,1,0,0

11,10,00,10,11

-16.43

1,1,0,0,0

11,01,01,11,00

-7.67

1,1,1,0,0

11,01,10,01,11

-9.86

Metrica cu valoarea cea mai mare este de -5.48 (ceea ce corespude distanei
Hamming cea mai mic, egal cu 2). Secvena cea mai probabil la ieirea codorului este
[00 11 10 11 00]
iar mesajul care a determinat-o este
[0 1 0 0 0]

3.

CODUL TURBO

3.1

Configuraii de coduri turbo

Cel mai ntlnit model al unui codor turbo este reprezentat prin utilizarea n
paralel asupra aceleiai informaii a dou, trei sau n coduri convoluionale recursive
sistematice (RSC -Recursive Sistematic Codes).
Dei codurile nerecursive, nesistematice au o distan liber dfree, mai mare dect
cele recursive i sistematice, i astfel utilizate n varianta clasic (fr a fi concatenate)
ofer rezultate mai bune din punct de vedere al ratei erorii, totui n componena
turbocodurilor se dovedesc a avea performane superioare codurile recursive i
sistematice .
Structura paralel folosete dou sau mai multe coduri RSC fiecare cu un
ntreestor propiu diferit de celelalte. Datorit ntreeserii, chiar dac prelucreaz aceeai
informaie, codoarele componente vor genera bii de paritate diferii.
O structur general a unui codor turbo convoluional concatenat n paralel (PCC
Parallel Concatenated Convolutional Code) este prezentat n Figura 3.1

Codor 1

ntreestor 1

Codor 2

ntreestor n-1

Codor n

Figura 3.1 - Codor turbo convoluional concatenat n paralel cu rata de 1/(n+1)

Codurile convoluionale folosite de codurile turbo au de obicei lungimi de


constrngere mic, n jur de 3, 5. Dac n cazul codurilor convoluionale simple lungimea
de constrngere mare repezint un avantaj, n cazul coduriolor turo nu duce la
performane mai bune, n shimb crete complexitatea calculelor i ntrzierea decodrii.
Dac concatenm dou coduri obinem un semnal cu rata 1/3. Dac folosim trei
coduri rata va fi 1/4, i tot aa. De obicei dou codoare sunt suficiente ntruct creterea
numrului acestora reduce eficiena benzii fr s duc la mbuntiri proporionale ale
performanelor.

Un alt model de codor turbo este realizat prin concatenarea n serie a codoarelor
convoluionale (SCCC Serial Concatenated Convolutional Code). Codurile SCC au
performane mai bune n cazul rapoartelor semnal zgomot (SNR) mari. Dac n cazul
codurilor PCC era necesar ca toate codurile componente s fie RSC, n cazul codurilor
SCC doar codul de la intrare trebuie s fie RSC. De asemenea ratele codurilor
componente ale unui SCCC pot fi diferite. Codul de ieire poate fi chiar un cod bloc.
Un codor turbo realizat prin concatenarea n serie a altor coduri cu rate diferite poate
arta ca n Figura 3.2

Codor 1
Rat 1/2

ntreestor

Codor 2
Rat 2/3

Figura 3.2 - Codor turbo realizat prin concatenare serie

De asemenea exist i modele hibride care folosesc att concatenarea serie ct i


cea parlel. Un astfel de exemplu este ilustrat n Figura 3.3.

Codor 2

ntreestor 1

Codor 1

ntreestor 2

Codor 3

Figura 3.3 - Codor turbo hibrid

Un alt tip de codor numit codor turbo produs (TPC Turbo Product Code) are o
structur foarte diferit de cea paralel sau serie. Codul TP folosete coduri bloc n locul
celor convoluionale. Dou coduri bloc diferite (de obice coduri Hamming) sunt
concatenate serial fr a mai exita vreun intreestor ntre ele. Funcia de ntreesere este
asigurat de aplicaia rand-coloan de la un codor ctre cellalt. ntruct codurile sunt
independente i opereaz pe rnduri i coloane,se obine o aleatorizare suficient i de
aceea nreestorul nu mai este necesar.
La fel ca i codurile PCC, codurile TP funcioneaz bine la raport semnal zgomot
sczut i pot fi formate prin concatenarea oricror tipuri de coduri bloc.
Nu structura codurilor prezentate mai sus duce la denumirea de Turbo ci tipul
decodrii folosite. Este vorba de o decodare iterativ cu reacie (conexiune invers) care
amintete de principiul de funcionare a motoarelor turbo. Acest subiect va fi dezbtut pe
larg n capitolul urmtor.

Fig. 3.4 Zgomotul intodus de canal


Datele sunt trimise printr-un canal gaussian pana la decodorul Turbo. Semnalul
transmis este corupt din cauza zgomotului din canal. Decodorul MAP decodeaza datele
primite si biti receptionati sunt estimati pentru a coincide cu bitii originali transmisi. Rata
de eroare pe bit este calculata descoperind rata numarului de biti eronati din numarul total
de biti transmisi prin canal la orice moment de timp. Obiectivul este de a minimiza rata
rata de eroare pe bit.

3.2

Coduri turbo convoluionale

n acest subcapitol se va insista asupra structurii i funcionrii unui codor turbo


convoluional.
Codorul Turbo studiat este format din dou codoare convoluionale sistematice
recursive (RSC Recursive Sistematic Codes), ce funcioneaz n paralel, interconectate
printr-un circuit de ntreesere. Schema bloc a codorului este ilustrat n Figura 3.5.
Structura este cu concatenare paralel deoarece ambele codoare folosesc acelai set de
bii de intrare, dar cu ordinea schimbat datorit circuitului de ntreesere.

Codorul 1

Circuit de
ntreesere
Codorul 2

Figura 3.5 Codorul Turbo

Matricea generatoare a unui astfel de cod se poate scrie:

unde

, respectiv

sunt polinoame corespunztoare reaciei negative, respectiv

pozitive a celor dou coduri componente.


n cele ce urmeaz, pentru ilustrarea funcionrii, se presupune c rata codurilor
este de 1/2 i lungimea circuitului de ntreesere este N. Notnd cu secvena de intrare
(3.2)
Fiecare codor are dou ieiri: una corespunztoare biilor informaionali (codul fiind
sistematic) iar cealalt corespunztoare biilor de paritate. Astfel pentru primul codor
vom avea secvena corespunztoare mesajului :
(3.3)
respectiv cea corespunztoare biilor de paritate
(3.4)
Dup circuitul de ntreesere ordinea biilor secvenei de date este schimbat n
conformitate cu regula de ntreesere. Secvena rezultat se noteaz cu
(3.5)
Aceast secven va fi codat de cel de-al doilea codor, care scoate la ieire numai
secvena de verificare a paritii
(3.6)
Secvena codat rezult prin multiplexarea acestor trei secvene de la ieirea celor
dou codoare:
(3.7)
Rata total a unui astfel de cod este 1/3.
Din cauza circuitului de ntreesere care duce la prelucrarea secvenial a biilor,
se poate spune c un cod turbo lucreaz ca un cod bloc.
O alt problem care apare n cazul codurilor turbo este aceea a terminaiei sau
nchiderii trellisului (el trebuie adus n starea 0,astfel nct pentru urmtorul pachet de N
bii s porneasc tot din aceast stare). n cazul folosirii codurilor sistematice recursive
trellisul nu poate fi nchis prin introducerea unor k bii de 0, ci trebuiesc introdui k bii
de final ce depind de starea n care a rmas codorul dup introducera ultimului bit de
date. O soluie pentru acest problem este sugerat n Figura 3.6.

2
1

Figura 3.6 - Terminaia trellis

Astfel, pentru cei N bii de date, poziia comutatorului este 1, timp n care are
loc codarea propriu-zis. Dup aceasta poziia comutatorului trece pe 2, iar timp de k
intervale de tact n codor se introduc chiar biii corespunztori strii sale finale, astfel
nct n final el va fi adus n starea 0.
n mod uzual doar primul codor este forat s se termine n starea 0. Terminarea
celui de al doilea codor ntr-o stare oarecare nu influeneaz performanele sistemului n
ansamblu, astfel nct s justifice un surplus de bii.
Un codor turbo cu rat 1/3, format din codoare cu k celule, ce folosete un circuit
de ntreesere de lungime N, este echivalent cu un cod bloc liniar cu dimensiunea
(3(N+k),N). Exemplul 3.1 Fie un cod turbo de rat

, cu matricea generatoare

Circuitul de ntreesere este de tip bloc (2x4) datele fiind scrise pe linii i citite pe
coloane. S se deseneze schema codorului i s se scrie secvena la ieire dac la intrare
se aplic secvena
.
Polinomul

corespunde

reaciei

pozitive

iar

corespunde reaciei negative. Schema bloc este


prezentat n Figura 3.7. Aa cum a fost menionat mai sus, cele dou codoare sunt
identice, ntre ele fiind plasat circuitul de ntreesere.

Circuit de
ntreesere

Figura 3.7 - Schema codorului turbo descris de (3.9)

Notnd cu , , ,
coninutul celulelor registrului la fiecare moment de
timp, i innd cont c starea urmtoare respectiv ieirea se determin din relaiile

(3.9)

evoluia primului codor este descris n tabelul 3.1


Se observ c primele 8 intervale de tact codorul are la intrare biii mesaj,
genernd secvena codat corespunztoare biilor de paritate
. n
intervalele de tact 9-12 trebuiesc introdui la intrare biii finali (care corespund chiar cu
starea n care rmne codorul dup introducerea ultimului bit de date) astfel nct acesta
s revin n starea 0.
Circuitul de ntreesere nscrie secvena de intrare ntr-o matrice cu 2 linii i 4
coloane, nscrierea fcndu-se pe linie iar citirea pe coloane.

Tabel 3.1
k
1
2
3
4
5
6
7
8
9
10
11
12
13

in
1
0
1
0
1
1
0
0
1
0
1
1

S1
0
1
1
1
1
1
1
0
1
0
0
0
0

S2
0
0
1
1
1
1
1
1
0
1
0
0
0

S3
0
0
0
1
1
1
1
1
1
0
1
0
0

S4
0
0
0
0
1
1
1
1
1
1
0
1
0

out
1
0
1
0
0
0
1
1
0
1
1
0

. Cu aceast secven de intrare,


Secvena ntreesut este
evoluia celui de-al doilea codor este descris similar n tabelul 3.2

Tabel 3.2
k
in
1
1
2
1
3
0
4
1
5
1
6
0
7
0
8
0

S1
0
1
0
1
1
0
0
0

S2
0
0
1
0
1
1
0
0

S3
0
0
0
1
0
1
1
0

S4
0
0
0
0
1
0
1
1

out
1
1
0
1
0
0
1
1

Pentru cel de-al doilea codor operaia de nchidere nu mai este necesar. Secvena
de ieire corespunztoare biilor de verificare a paritii pentru ce-l de-al doilea codor este
.
Cu acestea sevena codat turbo se obine citind alternativ datele, ieirea primului
i respectiv celui de-al doilea codor , astfel
out=[1,1,1,0,0,1,1,1,0,0,0,1,1,0,0,1,0,0,0,1,1,0,1,1]
Unul din dezavantajele codrii turbo, aa cum a fost prezentat mai sus, este c rata
codului este relativ mare (1/3 fa de rata 1/2 a codului onvoluional de baz. Pentru a
reduce rata se pot ns folosi proprietile de corecie ale codurilor componente. Astfel
tiind c distana liber a fiecrui cod este d=5, poate fi eliminat un bit codat din 4 fr
ca decodarea s fie eronat. Operaia de puncturare este descris matriceal de

(3.10)
perioada de puncturare fiind de 2. n conformitate cu (3.10) biii de verificare a paritii
sunt teri alternativ. Secvena codat i puncturat este, n conformitate cu notaiile
folosite mai sus,
(3.11)
n acest fel rata codorului se reduce la 1/2.
Trebuie menionat c operaia de puncturare nu afecteaz decodarea n condiiile
n care canalul este ideal, nezgomotos. n condiiile n care aceasta introduce erori
suplimentare, probabilitatea de eroare crete. Dac se lucreaz la un raport semnal
zgomot suficient de mare operaia de puncturare nu afecteaz prea mult performanele
codului; dac ns raportul semnal zgomot este foarte redus, probabilitatea de eroare
crete semnificativ.

3.3

Tehnici de ntreesere

ntreeserea este un proces de re-aranjare a ordinii secvenei de intrare ntr-un alt


format. Operaia invers, de dez-ntreesere readuce secvena recepionat la forma
original.
n codarea turbo, ntreeserea este folosit nainte ca datele s fie codate de cel deal doilea codor component. n general, mrimea N a circuitului de ntreesere este mai
mare dect memoria codului k (numrul de celule ale registrului de codare). Rolul
principal al circuitului de ntreesere este de a construi un cod bloc lung pentru codurile
convoluionale cu memorie mic, mprtie n pachete erorile ce pot apare datorit
canalului. Circuitul de ntreesere ofer datele de intrare celui de-al doilea codor
component i decoreleaz intrrile celor dou decodoare componente, oferind
posibilitatea de a aplica un algoritm de decodare iterativ suboptim bazat pe schimbul de
informaie necorelat ntre cele dou decodoare componente. De exemplu, dup
corectarea unui numr de erori de ctre primul decodor component, erorile rmase pot fi
mprtiate de ntreestorul de la recepie, devenind corectabile de ctre cellalt decodor.
Prin creterea numrului de iteraii n procesul de decodare, probabilitatea de eroare de
bit se aproprie de capacitatea canalului. Rolul final al ntreestorului este acela de a rupe
secvenele de intrare cu pondere mic, astfel nct s creasc distana liber Hamming a
codului sau s reduc numrul de cuvinte de cod cu distane mici n spectrul distanei
codului.
mulimea indicilor secvenei de intrare respectiv de ieire
Fie
din circuitul de ntreesere. Matematic, procesul de ntreesere este descris de o funcie
bijectiv, definit pe mulimea A
(3.12)
unde
este indicele secvenei de intrare iar cel n care a fost transformat dup
ntreesere, corespunztor deci secvenei de ieire.

Un parametru important al dispozitivului de ntreesere l constituie distana


minim de ntreesere,
, definit ca minimul distanelor dintre poziiile rezultate dup
ntreesere a doi vecini din secvena de intrare.
Mrimea i structura ntreestorului afecteaz considerabil performana de
corectare a erorii codului turbo. La rapoarte semnal zgomot mici, mrimea
ntreestorului este un factor deosebit de important, pentru c performanele de corecie a
erorilor sunt dominate de ctigul ntreestorului. Efectele introduse de schimbarea
structurii ntreestorului n regiunea cu rapoarte semnal zgomot mici nu sunt
semnificative. Att mrimea ct i structura ntreestorului afecteaz distana liber
minim a codului turbo, ce joac un rol important n determinarea performanei codului la
rapoarte semnal zgomot mari i n consecin performana asimptotic a codului turbo.
Este posibil s proiectm ntreestori particulari care s duc la performane bune ale
codului la rapoarte semnal zgomot mari. Acest lucru este realizat prin spargerea ctorva
modele de intrare cu pondere mic care produc cuvinte de cod cu pondere mic n codul
total.
Pe de alt parte, orice circuit de ntreesere este caracterizat de o ntrziere, care
crete cu capacitatea lui de memorare. De aceea lungimea acestora trebuie aleas ca un
compromis ntre performane i ntrzierea maxim adus de utilizator.
Exist mai multe tehnici de ntreesere, n funcie de tipul canalului, de raportul
semnal zgomot la care lucreaz, de tipul de fading asociat canalului i de cerinele de
probabilitate de eroare i ntrziere impuse de utilizator. Dispozitivele de ntreesere se
mpart n principal n dou categorii. Prima categorie o constituie dispozitivele de
ntreesere avnd o structur regulat, iar a doua categorie o constituie dispozitivele de
de valori
ntreesere de tip aleator. Dispozitivele de ntreesere de tip regulat au
foarte mari, n schimb cele de tip aleator ofer o bun mprtiere.
3.3.1

Dispozitivul de ntreesere (interleaver)

Este o component indispensabil a oricrui turbocod. Datorit ntreeserii


secvenei furnizate celui de-al doilea codor, se obine o decorelare ntre diferitele intrri
ale unui decodor component, mai precis ntre secvenele: provenite din canal i cea
provenit de la cellalt decodor component (informaia intrinsec).
Un dispozitiv de ntreesere realizeaz o permutare a unei secvene de numere.
Altfel spus, un dispozitiv de ntreesere implementeaz o funcie bijectiv de forma:
: I I, cu I = 1,2, ... N,
unde N reprezint lungimea secvenei ce trebuie ntreesut. Pentru refacerea
ordinii iniiale se utilizeaz un dispozitiv pereche, de de-ntreesere, ce implementeaz
funcia invers:
: I I, cu (i) = i, iI.
Un bun interleaver trebuie s ndeplineasc dou condiii:
a) s aib o distan minim de ntreesere de valoare ct mai mare
b) s aib un grad de mprtiere ct mai bun.

3.3.2

Dispozitivul de ntreesere aleator

Dispozitivul de ntreesere aleator este relativ simplu de realizat, ofer cea mai
bun mprtiere a secvenei originale, ns are n general dmin=2, adic cea mai mic
valoare posibil. Ne vom referi la operaia de ntreesere (permutare) de tip aleator pentru
un bloc de date de lungime N. Procedeul de construcie al unui dispozitiv de ntreesere
aleator, implementat n MATLAB este urmtorul. Cunoscnd lungimea secvenei
originale, N, (care este implicit i lungimea de ntreesere) se construiete mulimea A =
A. Se atribuie
i se
{1,2 ... N}. Se alege n mod aleator un numr,
elimin aceast valoare din A. Procedeul se repet pn la epuizarea mulimii A.
Alegerea aleatoare, n MATLAB se face cu ajutorul funciei rand. Aceast funcie
genereaz numere aleatoare cu distribuie uniform n intervalul [0,1]. Teoretic se pot
genera 21492 valori fr a repeta nici una dintre ele.
Pentru ca intretesatorul aleator si cel bloc sunt cel mai mult utilizate, vom
compara aceste doua tipuri de intreteseri pentru 500 de frame-uri. Caracteristica arata ca
intretesatorul aleator are performante mai bune decat cel bloc.

Fig. 3.8 Analiza intretesatoarelor bloc si aleator


Lungimea intretesatorului este critica din punct de vedere al performantei codului,
mai ales la rapoarte semnal zgomot mici unde e esential castigul rezultat din intretesere.
In cazul codurilor turbo, coeficientii de eroare descresc cu cresterea intretesatorului.

Fig. 3.9 Analiza BER in functie de lungimea intretesatorului

3.4 Principiul Turbo


n Fig.3.10 se prezint schema unui TC n configuraie paralel. Secvena de
informaie, notat u, este codat de ctre codorul C1 rezultnd secvena de paritate x .
1

Aceeai secven de bii, u, este furnizat, ns n alt ordine prin ntreesere cu ajutorul
dispozitivului de ntreesere I, codorului C2, care genereaz la rndul su, secvena de
paritate x . Secvenele rezultate x =u, x i x , prin multiplexare i modulare (operaii
2

omise n Fig.1) constituie ieirea TC-ului, semnal ce va fi emis n canal. La ieirea


acestuia, prin demodulare i demultiplexare rezult secvenele (soft) recepionate, y , y i
0

y.
2

Fig. 3.10 Schema codor Turbo decodor MAP

Fiecare decodor calculeaz logaritmul raportului de plauzibilitate (Log Likelihood Ratio


LLR) pentru fiecare bit din u:

(3.12)
(n figur este prezentat doar logaritmul raportului de plauzibilitate al primului decodor,
notat LLR1) i de asemenea informaia extrinsec destinat celuilalt decodor.
Fiecare decodor primete informaie extrinsec i, pe baza ei i pe baza secvenelor venite
din canal (y i y respectiv y ntreesut i y ) furnizeaz la rndu-i informaie extrinsec.
0

Acest proces se repet iterativ de un anume numr de ori (impus sau calculat, funcie de
tipul TC-ului). Dup efectuarea tuturor iteraiilor impuse, se face o decizie hard asupra
logaritmului raportului de plauzibilitate generat dup ultima iteraie de unul din cele dou
decodoare. Secvena rezultat prin operaia de decizie hard constituie ieirea TC-ului.
Codoarele utilizate n TC-uri sunt n special cele recursive i sistematice. n Fig.2 este
prezentat un codor convoluional recursiv, sistematic, avnd matricea generatoare:

(3.13)
n contrast cu codorul convoluional, care are o implementare hard simpl, dup cum se
vede n Fig.2, un decodor, pentru a putea fi component al unui TC, trebuie s accepte
intrare soft i, de asemenea, s ofere ieire soft. Dispozitivul de ntreesere (interleaver)
realizeaz o permutare a secvenei de intrare. Altfel spus, implementeaz o funcie
bijectiv de forma:

(3.14)
Rolul acestei rearanjri este de a produce o decorelare ntre diferitele intrri ale unui
decodor component.

3.4.1 Algoritmi de decodare


Algoritmul Maximum A-Posteriori (MAP) este cel mai performant algoritm de decodare
utilizat n TC-uri. El a fost propus de Bahl, Cocke, Jelinek i Raviv (1974). Algoritmul
MAP calculeaz logaritmul raportului de plauzibilitate n forma:

unde:
()=P(S =y ) este probabilitatea ca trellisul s fie n starea la momentul k-1 iar
k-1

k-1

j<k

secvena recepionat din canal pn n acest moment s fie y ,


j<k

(3.16)
(s)= P(y |S =s) este probabilitatea ca, dat fiind starea trellisului s la momentul k,
k

j>k

secvena recepionat din canal, dup acest moment, s fie y ,


j>k

(3.17)
(,s)=P({y S =s}| S =) este probabilitatea ca, dat fiind trellisul n starea la
k

k-1

momentul k-1, s treac n starea s iar secvena recepionat din canal pentru aceast
tranziie este y . (L = coeficientul de ncredere al canalului ).
k

(3.18)

Algoritmul MaxLogMAP reprezint o simplificare a algoritmului MAP pentru uurina


implementrii. Aproximaia utilizat de algoritmul Max-Log-MAP este:

(3.19)
Algoritmul Log-MAP corecteaz aproximaia fcut de Max-Log-MAP prin utilizarea
logaritmului Jacobian:

(3.20)
unde (x) poate fi gndit ca un termen de corecie.
c

3.4.2 Informaia extrinsec


Logaritmul raportului de plauzibilitate, L(u /y), calculat cu ajutorul algoritmului MAP,
k

(relaia 4) poate fi privit ca o sum de trei termeni. Primul termen este informaia a-priori
asupra bitului u , care poate fi generat printr-o surs independent. n cazul unui
k

decodor turbo iterativ, fiecare decodor component este capabil s furnizeze celuilalt un
estimat al informaiei a-priori.
Termenul secund este ieirea soft a canalului reprezentnd bitul sistematic u , care a
k

fost transmis direct prin canal i recepionat ca i y . Cu alte cuvinte, acest termen
corespunde biilor sistematici transportai de canal.

ks

Ultimul termen deriv prin constrngerile impuse de codul utilizat, din secvena de
informaie a-priori i din secvena de informaie recepionat din canal y, excluznd bitul
sistematic recepionat y , i informaia a-priori pentru bitul u . De aceea se numete
ks

informaie extrinsec pentru bitul u .


k

4 DECODAREA CODURILOR TURBO


4.1

Introducere

Pentru ca o schem concatenat asemeni codului turbo s funcioneze


corespunztor, algoritmul de decodare nu trebuie s se limiteze oferind decizii dure
precum n cazul codurilor tradiionale. Pentru a exploata cel mai bine informaia nvaat
de la fiecare decodor, algoritmul de decodare trebuie s schimbe decizia hard cu una soft.
Pentru un sistem cu dou coduri componente, ideea care st la baza decodrii turbo
const n a trece deciziile soft de la ieirea unui decodor la intrarea celuilalt i de a repeta
de cteva ori acest proces pentru a obine decizii ct mai bune. Aadar un decodor pentru
a putea fi component al unui turbo cod, trebuie s accepte intrare soft i, de asemenea, s
ofere ieire soft. n continuare vor fi prezentai principalii algoritmi SISO (soft-input softoutput)
Algoritmii de decodare bazai pe trellis reprezint metode recursive prin care se
estimeaz secvena de date pe baza secvenei recepionate, pe baza unui criteriu de
evaluare a distanei dintre secvena recepionat si toate secvenele posibile prin diagrama
trellis, distan ce trebuie minimizat. Sunt cunoscute dou mari clase de algoritmi bazai
pe trellis:

familia de algoritmi de tip MAP (Maximum Aposteriori Probability). El


maximizeaz logaritmul raportului de plauzibilitate condiionat de o anumit
secven recepiont i o anumit succesiune de stri prin trellis. Acest algoritm
este optim din punct de vedere al minimizrii probabilitii de eroare de bit, fiind,
din acest punct de vedere superior algoritmului Viterbi, oferind nu numai secvena
estimat ct i probabilitiile ca fiecare bit din secven s fie corect recepionat.
Dezavantajul su const n faptul c complexitatea sa este mult mai mare dect a
algoritmului Viterbi convenional, deoarece trebuie s examineze toate cile
posibile prin trellis, fr eliminrile pe care algoritmul Viterbi le face la anumii
pai. Din aceast cauz au fost deduse un numr de versiuni simplificate care duc
la performane mai bune i la o complexitate mai mic (Max-Log-MAP, LogMAP,etc).

algoritmul Viterbi minimizeaz probabilitatea ca o secven incorect prin


trellis s fie aleas ca fiind cea corect n raport cu secvena recepionat. Fa de
algoritmul Viterbi clasic, cel folosit n cazul decodrii codurilor turbo prezint
dou modificri, i anume:
-

modalitatea de calcul a metricilor cilor a fost modificat astfel nct s


in seama de informaia apriori obinut de fiecare decodor de la perechea
sa;

algoritmul a fost modificat astfel nct s se obin att un estimat al


secvenei prin trellis ct i o ieire soft care s ofere celuilalt decodor o
informaie asupra metricii calculate;

A nu se confunda decodarea MAP sau SOVA ( Soft Output Viterbi Algoritm) cu


noiunea de decodare iterativ. Algoritmii MAP i SOVA sunt utilizai cu sistemele de
codare bazate pe trellis n timp ce procesul iterativ se poate aplica oricrui tip de cod
inclusiv codurilor bloc care nu sunt bazate pe trellis.
n cazul codurilor turbo, implementarea decodorului este foarte costisitoare din
punct de vedere al efortului de calcul; de aceea se prefer structuri de codare cu memorie
mic ( folosind registre de deplasare cu maxim 4 celule) i dimensiuni relativ reduse ale
circuitului de ntreesere, pentru a nu lucra cu blocuri de date foarte lungi (lungimea
trellisului pentru care se determin parametrii fiind dictat de dimensiunea blocului de
intrare)

4.2

Modelul sistemului

Se va analiza cazul unui codor turbo format din dou codoare convoluionale
sistematice recursive de rat 1/2, astfel rata total a codului este 1/3 ( se consider
varianta nepuncturat). Secvena de date de intrare este binar, cu simboluri egal
probabile i este notatcu
(4.1)
Fiecare component transmis este afectat de zgomot alb, gaussian, adititv, de
medie nul i varian
rezultnd secvenele de date recepionate (notate cu ), cele de
paritate ale primului codor (notate cu
(notate cu

), respectiv cele ale celui de-al doilea codor

). Modelul sistemului este reprezentat n Figura 4.1.

Figura 4.1 - Modelul codorului cu rata 1/3, a modulatorului i a canalului afectat de AWGN

Secvenele recepionate de la primul codor sunt

i reprezint intrarea n

primul decodor:
(4.2)
unde s-au notat cu t, t+1 momente de timp succesive.
Circuitul de dez-ntreesere de la recepie reface secvena ntreesut de la emisie
. Aceasta, mpreun cu secvena de paritate recepionat de la cel de-al doilea codor
reprezint intrarea celui de-al doilea decodor
(4.3)
Dac secvena de intrare binar este de lungime N:
(4.4)
unde

este un bit din mesaj la momentul t i N este dimensiunea blocului de intrare,

dictat de circuitul de ntreesere. Procesul de codare poate fi reprezetat prin diagrame de


stare sau diagrame trellis. n funcie de valoarea lui
codorul va genera la ieire un alt
bit de verificare a paritii

i va trece din starea

n starea

, unde

este

momentul de timp urmtor. Procesul poate fi complet definit prin urmtoarele funcii
(4.5)

ce depind de starea curent, simbolul curent i momentul de timp. Secvena de stri de la


momentul 0 la t este
(4.6)
iar probalitatea de a trece n starea

depinde doar de starea trecut

(proces Markov

de ordin 1) i este
(4.7)
Pentru fiecare cele trei seturi de vectori din Figura 4.1se vor folosi urmtoarele
notaii: ieirea codorului ntre momentele de timp 1 i t este
(4.8)
unde fiecare element din vector este un cod cuvnt de lungime N
(4.9)
Fiecare secven de cod

este codat NRZ, rezultnd secvena


(4.10)

unde fiecare element este un cuvnt de lungime N


(4.11)
N-1

(4.12)

Secvena codat i transformat NRZ este transmis printr-un canal cu zgomot


aditiv gaussian alb (AWGN) rezultnd la recepie secvena:
(4.13)
(4.14)
N-1
unde

(4.15)

este un eantion de zgomot gaussian de medie nul i dispersie

. Se

presupune c fiecare eantion de zgomot este independent de celelalte.


Decodorul d un estimat al intrrii n decodor pe baza secvenei recepionate.
Problema decodrii presupune gsirea secvenei modulate
sau a secvenei codate .
Deoarece exist o funcie bijectiv ntre cele dou secvene gsirea unuia dintre ele duce
la aflarea celeilalte printr-o simpl mapare.
Algoritmul de decodare bazat pe secvenele recepionate

calculeaz

logaritmul raportului de plauzibilitate

unde rapoartele de plauzibilitate se determin conform algoritmului aplicat (MAP sau


Viterbi). Regula de decizie hard este:

1
(4.17)
0
Decodarea iterativ a codorului turbo const n dou decodoare concatenate n
serie printr-un ntreestor identic cu cel de la codor. Schema de principiu este prezentat
n Figura 4.2.

Primul decodor primete la intrare secvena de informaie


verificare a paritii

i secvena de

. Decodorul produce o ieire soft care este ntreesut dup aceeai

regul ca i datele i apoi folosit pentru mbuntirea estimatului probabilitilor apriori


a informaiei pentru cel de-al doilea decodor. Celelalte dou intrri n al doilea decodor
sunt secvena de informaie ntreesut i secvena de verificare a paritii produs de
cel de-al doilea codor

. Al doilea decodor produce la rndul su o ieire soft care este

folosit pentru mbuntirea probabilitii de apriori a secvenei de informaie de la


intrarea primului decodor. Performanele decodorului pot fi mbuntite prin aceast
operaie iterativ. Bucla de reacie negativ este trstura principal a acestui decodor,
numele de turbo provenind de la principiul de funcionare al motorului turbo.
Dez-ntreestor

Decodr 1
MAP

ntreestor

ntreestor

Decodr 2
MAP

Dez-ntreestor

Figura 4.2 - Schema bloc a decodrii interative a codorului turbo

Dup un numr anumit de iteraii ieirea soft a ambelor decodoare nu i vor mai
mbuntii vizibil performanele. n acest stadiu final se ia decizia de decodare hard
pentru determinarea secvenei estimate a decodorului.
Din punct de vedere al terminologiei, poate este util s relum o parte din termenii
folosii n decodarea codurilor turbo, astfel:

se folosete termenul de informaie apriori sau intrinsec (relativ la un bit

sau

la o secven de bii) cantitatea de informaie cunoscut despre aceasta nainte de


nceperea decodrii, provenit din alt surs, sau folosind alte informaii
suplimentare transmise o dat cu datele utile.
se folosete termenul de informaie extrinsec (relativ la un bit
sau la o
secven de bii) cea informaie oferit de decodor dup examinarea secvenei
recepionate, bazndu-se pe informaia oferit de biii de verificare a paritii
recepionai (
, respectiv
), fr a folosi ns informaia oferit direct de
ctre biii sistematici ai codului (

); este vorba de informaia obinut n urma

decodrii folosind proprietile de corecie i detecie ale codului.


se folosete termenul de informaie aposteriori (relativ la un bit

sau la o

secven de bii) acea informaie obinut n urma decodrii lund n consideraie


toi biii recepionai (poate fi raportul de plauzibilitate sau logaritmul acestuia).

4.3

Decodarea folosind algoritmii de tip MAP

Aa cum s-a menionat, algoritmul MAP este mult mai complex din punct de
vedere al necesarului de efort computaional dect algoritmul Viterbi cu ieire hard n
condiiile acelorai performane, aa c, dei bazele teoreice au fost puse nc din anii 70
el a fost ignorat din punct de vedere al implementrii o perioad de 20 de ani. Variantele
obinute prin folosirea logaritmului de plauzibilitate i utilizarea anumitor aproximaii
reduc substanial efortul de calcul fr a-i reduce performanele. Aceste variante sunt
intitulate Log-MAP i Max-Log-MAP.
Algoritmul MAP presupune determinarea rapoartelor de plauzibilitate. S
examinm primul decodor MAP din prima iteraie pentru un cod component de rat 1/n.
n acest caz, raportul de plauzibilitate este:

unde s-au folosit notaiile

i
sunt probabilitiile apriori pentru 1 i 0 la intrarea n primul
decodor, iar

sunt probabilitile apriori de la intrarea n cel de-al

doilea decodor. Pentru iniierea operaiei de decodare la primul decodor se


presupune c probabilitile apriori sunt:

este ieirea pimului codor asociat tranziiei din starea

n starea

corespunztoare viilor de verificare a paritii;


reprezint secvena de bii recepionat dup trecerea prin canal a secvenei
;

cu

se noteaz numrul de stri ale codorului

probabilitatea ca algoritmul s se afle n starea

dac secvena recepionat este

(4.19)
Definind i probabilitatea ca secvena recepionat s fie
afl n starea

; atunci cnd algoritmul se

sub forma
(4.20)

probabilitatea ca secvena transmis s fi fost


secvena recepionat s fie

, starea urmtoare s fie

n condiiile n care starea curent este

este

iar

(4.21)

- Calculul recursiv nainte al valorilor

(4.22)

Aadar, odat ce sunt cunoscute valorile


Presupunnd c trellisul are starea iniial

, valorile

, condiiile iniiale pentru aceast

recuren sunt:

- Calculul recursiv napoi al valorilor

pot fi calculate recursiv.

0 pentru

Astfel, o dat ce valorile


pentru a calcula valorile

sunt cunoscute , se poate utiliza o recuren napoi


din valorile

Condiiile iniiale ce pot fi utilizate pentru aceast recuren sunt:

Calculul probabilitiilor ramurilor

0 pentru

n cazul unui canal gaussian, se mai poate scrie

(4.25)
0

este probabilitatea apriori a lui

unde

asociat tranziiei de la starea

la starea

este ieirea codorului

i
i ieirea

Cu acestea raportul de plauzibilitate (4.18) devine

Pentru determinarea acestui raport trebuie aplicate dou nivele de recursivitate:

recursivitatea pozitiv pentru determinarea


:

- se iniializeaz
- pentru

0 pentru

i pentru toate ramurile i din diagrama trellis

se determin

unde

este probabilitatea apriori a fiecrui bit de informaie, iar

ptratul distanei Euclidiene dintre secvena recepionat


- pentru
- pentru

este

i secvena din trellis

se reine
i

se calculeaz i se reine

recursivitatea
plauzibilitate

negativ

pentru

determianrea

- se iniializeaz

logaritmului

- pentru

raportului

de

0 pentru

se determin

unde

a fost calculat n recursivitea pozitiv.

- pentru

se calculeaz logaritmului raportului de plauzibilitate

din realaia

(4.26)
Cele dou etape sunt reprezentate n Figura 4.3

(a) recursivitatea pozitiv

(b) recursivitatea negativ

Figura 4.3 - Aplicarea recursivitatii pozitive (a) respectiv a celei negative (b)

Folosind definiiile i relaiile deduse mai sus, ieirea primului decodor este dat de

unde notaiile
decodor, iar
decodor.

i
i

sunt probabilitile apriori pentru 1 i 0 la intrarea n primul


sunt probabilitile apriori de la intrarea n cel de al doilea

Pentru iniierea operaiei de decodare la primul decodor se presupune c


probabilitile apriori sunt:

Relaia (4.30) devine

unde n-1 este numrul de bii de paritate ai codului


Cum codul este sistematic
. Raportul

sunt independeni de trellis i de starea .


poate fi descompus n trei pri :

unde

Mrimea

se numete informaia extrinsec, i este o funcie a informaiei

redundant introdus de codor. Ea nu conine informaia continu de bii ai codului

Aceast cantitate poate fi folosit pentru a mbunti probabilitatea apriori estimat


pentru faza urmtoare de decodare.
Din punct de vedere al celui de-al doilea decodor MAP, el va avea la intrare
versiunea ntreesut a lui , semnalul de informaie recepionat
este corelat cu
ieirea soft ntreesut din primul decodor,
trebuie extras din

. De aceea, contribuia datorit lui

, pentru a elimina aceast corelaie.

nu conine

i poate fi folosit ca probabilitate apriori pentru decodare

n faza a doua. Informaia extrinsec ntreesut de la primul decodor


probabilitatea apriori estimat pentru al doilea decodor:

este

Folosind relaia

se pot scrie pentru probabilitile apriori n cel de-al doilea decodor

iar

n cea de-a doua faz de decodare decodorul MAP estimeaz raportul de


plauzibilitate
ce poate fi de asemenea descompus n

Prin nlocuirea probabilitilor apriori din ecuaia (4.33) se obine

este informaia extrinsec pentru cel de-al doilea decodor care depinde de
informaia redundant furnizat de cel de-al doilea codor. Informaia extrinsec a celui
de-al doilea decodor poate fi folosit ca estimat al probabilitilor apriori pentru primul
decodor. Raportul de plauzibilitate pentru primul decodor poate fi scris ca:

4.3.1

Rezumatul metodei de decodare iterative MAP

1) Se iniializeaz metricile
2) Pentru

, unde este numrul total de iteraii

- se determin

- se determin

iterativ

- se determin

folosind ecuaia (4.31)

3) Dup

iteraii se ia decizia hard asupra mesajului transmis

pe baza metricii

finale
4.3.2

Algoritmul Max-Log-MAP

Principalul dezavantaj al decodrii MAP este acela c utilizeaz o cantitate mare


de memorie i necesit efectuarea unui numr mare de operaii aritmetice ce implic un
volum de calcul ridicat cum ar fi exponenialele i nmultirile. n plus necesarul de
memorie crete exponenial cu lungimea secvenei decodate.
O cale ce poate duce la scderea complexitii este operarea cu logaritmii
,
respectiv
, anume
probabilitilor

respectiv

n care condiiile iniiale sunt

n care condiiile iniiale sunt

pentru

pentru

Pentru nlocuirea valorilor probabilitilor logaritmate


raportul

din relatia (4.26) se poate scrie:

Aceast relaie se poate simplifica prin folosirea aproximrii:

. Similar

.
,

unde

poate fi calculat prin calcularea succesiv a (n-1) funcii maxime peste

dou valori. Cu aceast aproximare log-raportului de plauzibilitate devine:

Determinarea probabilitilor

este echivalent cu calcularea

metricilor cilor asociate recursivitilor pozitive si negative n algoritmul Viterbi, unde


metricile ramurilor sunt
.

Operaiile implicate n calculul lui

sunt aceleai operaii de adunare

i comparare care apar n algoritmul Viterbi. nmulirile din algoritmul MAP sunt
nlocuite de adunri. n acest fel, pentru fiecare bit, algoritmul Max-Log-MAP calculeaz
dou tipuri de metrici Viterbi i o alege pe ce mai mare. Complexitatea acestui algoritm
este similar cu cea a algoritmului Viterbi. Din punct de vedere al performanelor apare o
degradare fa de algoritmul MAP.
4.3.3

Algoritmul Log-MAP

Folosirea aproximrii din cazul algoritmului Max-Log-MAP duce la reducerea


volumului de calcul implicat de folosirea algoritmului MAP, dar se reflect i printr-o
scdere relativ a performanelor din punct de vedere al ratei erorii de bit atunci cnd se
folosete decodarea iterativ. O aproximare mai exact poate fi obinut utiliznd
algoritmul Jacobian

unde valoarea funciei


Similar

cu

poate fi vzut ca un termen de corecie.

algoritmul

Max-Log-MAP,

valorile

pentru

sunt calculate utiliznd recurena nainte i napoi. ns maximizrile


corespunztoare acestora sunt complementate prin termenul de corecie din logaritmul
Jacobian. Astfel se obin valori aproximative mai exacte. Similar, aproximarea lograportului de plauzibilitate poate fi fcut utiliznd logaritmul Jacobian. Ecuaia (4.49)
trebuie generalizat cu scopul de a face fa la mai mult de doi teremeni. Aceasta se face
prin gruparea operaiilor
dup cum urmeaz:

Termenul de corecie

nu trebuie calculat la fiecare pas, ci, deoarece poate lua

numai un set finit de valori ntre 0 i 5 poate fi memorat ntr-o matrice de corecie
precalculat.
Procedura folosit n cazul algoritmului log-MAP implic o complexitate ceva
mai mare dect cea utilizat n cazul precedent, dar rezultatele obinute din punct de
vedere al performanelor sunt foarte apropiate de cele ale algoritmului MAP (cu cteva
zecimi de decibel mai sczute).

Fig.4.4 Rata erorii (BER) funcie de raportul semnal per zgomot (n decibeli)

Fig. 4.5 Codor Turbo PCCC cu rata de 1/3

In acest exemplu vom folosi un cod turbo cu rata 1/3 care are doua coduri
convolutionale identice. Pentru ca Yk2s e o versiune amestecata a lui Yk1s, el nu este
transmis.Cel de-al doilea decodor primeste secventa Yk1s care trece prin dezintretesator
pentru a obtine Yk2s de care este nevoie la decodare.
Trellis-ul pentru fiecare este dat in figura de mai jos. Liniile albastre arata
transmisiile daca se primeste 0 si cele rosii daca se primeste 1. In notatia 1/11, prima
secventa arata bitul de intrare iar cea de-a doua cei doi biti codati. Dintre acestia, pe
primul il numim bit sistematic, si dupa cum se poate vedea, este acelasi cu bitul de
intrare. Cel de-al doilea bit este bitul de paritate. Fiecare cod foloseste acest trellis pentru
codare.

Fig. 4.6 Diagrama trellis pentru un cod RSC cu rata


Ca exemplu, alegem secventa de biti de informatie: 1, 0, 1, 0, 1, 0, 0, care in format
bipolar arata ca in Tabelul 1. Codul 1 codeaza toti acesti biti ca biti sistematici si de
paritate folosind trellisul din Fig.7. Bitii sunt codati in format bipolar.

Tabelul 4.1 - Bitii codati de primul codor

Secventa arata ca cea din diagrama trellis.

Fig. 4.7 - Diagrama trellis pentru secventa (1, -1, 1, -1, 1, -1, -1) prin primul codor
Codul 2 primeste aceeasi biti de informatie, dar intretesuti dupa un anumit tipar.
Intreteserea este o problema importanta in codarea turbo. Sunt mai multe tipuri de
intretesere, pe langa cea rand-coloana, care este cea mai cunoscuta. Avem mai jos un
tipar de intretesere "pseudo-random" reprezentat in Tabelul 2. Dezintretesatorul pune bitii
inapoi in ordinea originala. Simularile arata ca intreteserea pseudo-random functioneaza
cel mai bine cu codurile turbo in canale AWGN.

Tabel 4.2 - Regula de intretesere de la Codorul 1 la Codorul 2 si apoi dezintreteserea


de la Codorul 2 inapoi la Codorul 1.

Dupa inregistrarea secventei de informatie (1, -1, 1, -1, 1, -1, -1) in (1, 1, 1, -1, -1, -1, -1),
codorul 2 codeaza noua secventa ca in Tabelul 3

Tabelul 4.3 - Bitii intretesuti codati de Codorul 2

Pe diagrama trellis aceasta noua secventa este codata ca in Fig.8

Fig.4.8 - Diagrama trellis pentru informatia (1, 1, 1, -1, -1, -1, -1) prin al doilea codor
Bitii sistematici din codorul 2 sunt redundanti, deci nu vor fi transmisi. Aceasta ne
da o rata de 1/3 a codului daca nu luam in considerare si bitii de final (aducere a
codorului in starea initiala). Datele transmise sunt date in coloane sau: 111 -11-1 1-11 ...
Tabel 4.4 - Datele transmise, un bit sistematic si doi biti de paritate de la fiecare
codor

In asta consta codarea. La capatul de la receptie, presupunand ca semnalul trece


printr-un canal AWGN cu raportul Es/NO = 0.25, care este destul de mic. Apar erori si
datele sunt primite dupa cum se vede in Tabelul 5.
Tabelul 4.5 - Amplitudinile semnalului receptionat

Aceste date sunt numite intrari soft. Desi mai sus avem numai valori intregi, nu este
neaparat nevoie sa fie asa. Ele au fost alese intregi dar ca exemplu.
Avem un total de patru erori. Una in bitii sistematici si trei in cei de paritate.

Fata de Viterbi si alte coduri, in algoritmul MAP, decodarea este afectata de SNR-ul
canalului prin faptul ca sunt exagerate efectele bitilor sistematici. Deci, daca intervine o
eroare in acesti biti, este deasemenea exagerata. In Tabeul 5, am presupus ca al doilea bit
sistematic este o eroare, la fel ca primul si cel de-al patrulea bit de paritate. Termenul Lc
este o masura a SNR-ului semnalului.
Lc = 4*Es/NO = 4*0.25 = 1.0
Multiplicam semnalul recepionat cu Lc-ul definit mai sus, care in acest exemplu
este 1.0. Lc-ul indica starea canalului. Este de dorit ca acesta sa fie mare.
Tabelul 4.6 - Nivelele semnalului de intrare multiplicate cu Lc

Decodare
Pentru fiecare k, decodarea se realizeaza calculand valorile L ale bitului +1. Daca
sunt pozitive, decizia este in favoarea +1. Calcularea valorilor L sau L(uk) reprezinta un
proces complex. Ecuatia de baza folosita pentru calcularea acestor valori este:

Din acest calcul, daca L(uk) este pozitiv, atunci uk este +1.
Primul termen, Le(uk) este valoarea a-priori de la decodorul 2. Aceasta este
valoarea probabilitatii a-priori ale bitului in cauza. La inceput, decodorul nu stie aceasta
valoare, de aceea presupune ca este 0.5. Al doilea termen LcYk1s este calculat inmultind
Lc cu informatia sistematica, dupa modelul din Tabelul 6. Aceasta valoare poata numele
de valoare L a canalului si ofera informatii referitoare la SNR-ul canalului.
Al treilea termen mare este probabiliatea a-posteriori. Aceasta valoare este calculata
pentru fiecare segment din trellis. Putem avea un singur rezultat pentru o sectiune din
trellis: +1 sau -1. L(uk) ne spune care dintre ele este.
Ecuatia principala poate fi scrisa ca o suma de trei termeni.
L-apriori Presupunerea initiala despre bitul +1 in prima iteratie
L-canal Este corelat cu SNR-ul canalului si bitul sistematic si este egal cu
Lc*Yk1s
Le informatia calculata la fiecare iteratie numita valoare L a-posteriori.
Ec. 1 poate acum fi scrisa ca o suma astfel L-apriori + L-canal + Le(uk)
(4.52)

Valoarea L-canal nu se schimba de la iteratie la iteratie, pentru ca nici Lc si nici


bitul sistematic nu se schimba de la iteratie la iteratie. Deci, pentru ca este o constanta, o
vom denumi K. Singurele care se modifica sunt valorile L-apriori si L-aposteriori.
Valoare a-priori este folosita la intrare, pentru a determina noua probabilitate aposteriori si apoi pentru a calcula L(uk) sau este trecuta catre urmatorul decodor. Desi in
exemplu calculam L(uk) de fiecare data, in timpul decodarii actuale nu se procedeaza
astfel. Doar metrica a-posteriori este calculata si decodata, repetandu-se de un numar finit
de ori sau pana cand valoarea converge. L-posteriori mai este denumit si informatie
extrinseca.

Asadar, intregul obiectiv pentru acest calcul este de a determina valoare Lextrinseca, si apoi, cand devine suficient de mare, se calculeaza L(uk) si se ia o decizie.
Calcularea valorilor L foloseste un algoritm numit Recursivitate Inainte-Inapoi care este
deasemenea un alt nume pentru algoritmul BCJR.
In ecuatie, avem trei termeni care trebuiesc calculati:
Primul termen este numit metrica inainte. El este calculat dupa o recursivitate
inainte folosind ultimul termen numit metrica pe ramura. Este data de formula:

Este un proces recursiv. Folosim denumirea de metrica pentru ca aceste valori nu


sunt niste probabilitati in sensul strict, sunt masurile unor probabilitati. Pentru a putea
calcula metrica inainte, e nevoie sa calculam metrica pe ramuri.
In situatii reale, daca blocurile au 10000 de biti lungime, ar trebui sa calculam
aceste metrici de 10000 de ori pentru fiecare stare. In acest exemplu, avem doar 7 biti.
Avand doar 4 stari, va trebui sa calculam metricile doar de 7 x 4 x 2 = 56 ori.
Metrica pe ramura este corelarea semnalului receptionat cu valorile sale din trellis.
Daca valorile receptionate au acelasi semn ca bitii codati, atunci corelatia va fi un
ridicata. Pentru fiecare decodor, sunt metrici complete pe ramuri care incorporeaza bitii
sistematici si cei de paritate si metrici partiale care incorporeaza doar bitii de paritate.

Fig.4.9. Ciclu iterativ pentru decodor turobo MAP


1. Calcularea metricilor complete pe ramura
Metrica completa pe ramura este data de ecuatia

Datele necesare sunt Lc, valoarea sistematica, valorea de paritate si valorile codate trellis.
Se calculeaza pentru fiecare ramura a trellis-ului pentru toti cei 7 biti.
Exemplu: Pentru ramura 1 1 (de la starea 1 la starea 1), k=1,
Ce este Le si de ce este 0 ? Le este valoarea L initiala. La inceput, nu stim daca bitul
intalnit este 0 sau 1, deci presupunem ca probabilitatea sa fie 1 este egala cu
probabilitatea sa fie 0. Valoarea L este data de formula

Daca 0 si 1 sunt la fel de probabile, o presupunere sigura, atunci Le = ln 1 = 0 .Si asta


reprezinta Le. Este valoarea initiala a valorii L extrinseci. Valoarea L extrinseca este
informatia cheie pe care o folosesc decodoarele.

Fig.4.10 Traseul valorii extrinseci. Valoarea produsa de fiecare decodor


devine intrarea pentru urmatorul decodor
Aceasta valoare L extrinseca este ceea ce merge de la un cod la altul si este
deasemenea numita probabilitate a-posteriori la iesirea decodorului si devine
probabilitate a-priori la intrarea urmatorului decodor, crescand la fiecare iteratie. O
valoare mare pentru L reprezinta probabilitate crescuta ca decizia luata sa fie corecta.
Calcularea metricilor complete pe ramura necesita cinci intrari, reprezentate in
coloanele 1-5 de mai jos. Valoare pe ramura este calculata folosind ecuatia
Tabelul 4.7 Calcularea metricilor complete pe ramuri

Tabelul 4.8 Metricile complete pe ramuri pentru intregul semnal, dupa DEC1

2. Calcularea metricilor partiale pe ramuri


Aceste valori se bazeaza doar pe bitii de paritate. Este ultima parte din ecuatia 1. Le vom
folosi pentru a calcula valoarea L extrinseca totala.
Ecuatia pentru calcularea metricilor partiale este

Nici un termen din aceasta ecuatie nu se modifica la fiecare iteratie, deci se vor
calcula o singura data.

Tabelul 4.9 Metricile partiale pe ramuri raman constante pentru fiecare decodor

Figura 4.11 Metricile partiale pe ramuri in trellis


Calcularea metricilor inainte
Codarea incepe intotdeauna din starea 1. Deci, presupunem ca semnalul poate fi doar in
starea 1 la momentul de timp k=0. Valoarea initiala a metricii inainte este 1. Celorlalte
trei stari le sunt date valorile 0 insemnand ca, nu sunt stari posibile. Metricile inainte sunt
calculate recursiv pentru fiecare stare (nu ramura).
Ecuatia este:

Calcularea metricilor inainte va fi facuta in doi pasi, primul va calcula numaratorul la


momentul de timp k si celalalt numitorul.

Figura 4.12 Calcularea metricii inainte

Vom calcula metrica inainte la starea 3, k=1 si apoi la starea 2, k=2. Algoritmul este
urmatorul. Sunt doua ramuri care converg in starea 3 la momentul de timp k=1. Fiecare
dintre acestea aduce metrica pe ramura completa in starea de convergenta. Calculul
implica inmultirea metricii pe ramura cu valoarea de inceput a starii, insumand apoi
aceste valori pentru toate ramurile care converg in starea in cauza. Noi avem doua ramuri.
Facem acest lucru pentru fiecare stare in care converg ramurile. Ne putem gandi la
traficul pe care il aduc aceste drumuri in intersectie.
Calculam metrica inainte pentru starea 3 astfel:
Singura alta metrica nenula la acest punct este in starea 1
Inainte de a continua pentru k=2, este nevoie sa normam aceste valori. Scopul
normarii este de a controla cresterea numerica datorata numarului mare de inmultiti intre
termeni. Inainte de a continua, normam valorile de fiecare data. Aceasta la face sa
semene mai mult cu niste probabilitati, sunt mai usor de analizat si reduce incarcarea
numerica.
Pentru a norma, folosim suma metricilor inainte care este 4.7048. Normand cele doua
metrici cu aceasta suma, obtinem cele doua valori din coloana 3 din tabel.
Acum, pentru starea doi, care are doua ramuri (din starea s3 si din s4) care converg,
metrica inainte este calculata astfel:
Facem calculele pentru toate patru starile si obtinem valorile de mai jos.
Tabelul 4.10 Calcularea metricilor inainte

Tabelul 4.11 Metricile inainte normate

3. Calcularea metricilor inapoi

Presupunem ca semnalul se va termina in starea 1. (Bitii de final sunt adaugati


pentru a-i forta terminarea in starea 1.) Starea finala este intotdeauna 1, deci primeste
valoarea 1 doar ca stare a metricii inainte. Restul celor 3 stari la momentul k=7 primesc o
valoare a metricii inapoi de 0. Priviti cum se propaga acestea inapoi:

Vom calcula metrica inapoi la starea 3. Sunt doua ramuri care vin in starea s la
momentul k=5, deci vom calcula intai metricile lor inapoi. In starea 2, vin doua ramuri 2
1 si 2 3.

(Sunt doua ramuri care converg aici, dar ambele au metrica inapoi
initiala 0, deci se va obtine tot 0. )

Figura 4.13 Calcularea metricii inapoi


Calculam toate aceste patru metrici cum este reprezentat la momentul de timp
k=7, apoi normam. Normam cu acelasi set de valori ca si la metrica inainte pentru a
pastra acelasi raport.
Tabelul 4.10 Valorile metricilor inapoi

Tabelul 4.11 Valorile normate ale metricilor inapoi

4. Calcularea valorii L extrinseci


Valoarea L extrinseca este data de produsul celor trei metrici
Este inmultirea intre metrica inainte, inapoi si metrica partiala pentru fiecare
ramura. Vom avea cate o valoare pentru fiecare ramura sau opt valori pentru fiecare
moment de timp, dupa cum este arata mai jos.

Tabelul 4.12 Calcularea metricii finale pe ramura

Figura 4.14 Metricile inainte si inapoi in trellis


Pentru a calcula valoarea L avem nevoie de un raport al acestor numere, pentru
ramurile +1 si -1. Pentru asta adunam metricile primelor patru ramuri si le impartim la
suma metricilor ultimelor patru ramuri pentru a indeplini urmatoarea ecuatie.

Consideram logaritmul natural al raportului. Este valoarea extrinseca la iesire


pentru aceasta iteratie. Aceste valori, dupa intretesere, intra in Decodorul 2 si devin
probabilitatile lui a-priori.
Valoarea L a bitului este data de formula

Tabelul 4.13 Calcularea L(uk) si luarea deciziei

Deciziile sunt independente la fiecare k, independent de trellis, deci asta face ca


acest algoritim sa minimizeze rata de eroare.
De aici Le, biti intretesuti ajung in DEC2 dupa cum urmeaza

Tabelul 4.14 Transferul a-posteriori spre DEC2 de la DEC1

Valorile Le ale acestui decodor nu mai sunt nule, cum erau la DEC1. Ele dau o
ideea asupra datelor care au fost transmise. Pe parcursul iteratiilor aceste valori devin din
ce in ce mai stabile si, de dorit, cu acelasi semn ca bitul transmis.
Mai jos vom vedea tabelele care dau toate informatiile despre cele patru iteratii.
Codul face greseli in primele iteratii, dar apoi converge catre valoarea corecta. Doar
prima iteratie este independenta, apoi fiecare iteratie o modifica usor de urmatoarea.
Valoarea extrinseca converge, dupa cum se poate vedea in reprezentarea grafica, pentru
fiecare decodor de la k=1 la k=4.
Tabelul 4.15 Totalul de decizii dupa 4 iteratii

Valorile L sunt trecute inainte si inapoi ca in tabelul 20.


Tabelul 4.16 Iesirea extrinseca si L(uk) dupa patru iteratii

Figura 4.15 Valorile extrinseci dupa 4 iteratii, pentru DEC1 si DEC2

Concluzii.
In 1993, la Conferinta Internationala IEEE in Comunicatii de la Geneva, Claude Berrou
si Alain Glavieux au introdus o schema de codare digitala care ar putea oferi un mediu de
comunicatii fara erori la rate si putere de transmisie mult peste ceea ce credeau posibil
majoritatea. Acest cod a fost numit Cod Turbo si este utilizat in sistemul de comunicatii
mobile de a treia generatie (3G), transmisiuni video digitale, comunicatii prin satelit si in
spatiu.
Aplicatii ale codurilor Turbo.
Codurile Turbo au fost propuse pentru diverse sisteme de comunicatii
Comunicatii in spatiu
Urmatoarea generatie de dispozitive NASA trimise in spatiu va contine coduri turbo. De
fapt, in septembrie 2003, Agentia Spatiala Europeana (ESA), cu sediul la Paris, a lansat
SMART-1, primul dispozitiv trimis in spatiu care va oferii transmisiuni de date bazate pe
codurile turbo. ESA a folosit acelasi tip de cod si pentru o urmatoare misiune, demarata
in 2004. Institutul National de Aeronautica din Washington, D.C, deasemenea se va baza
pe puterea codurilor turbo de a oferi transmisiuni de incredere. Ele sunt folosite pentru a
mari cantitatea de date din timpul unei transmisiuni la distante extrem de mari si raport
semnal zgomot mic care altfel ar fi pierdute.
CDMA2000
Codurile Turbo au fost recomandate in canalele direct si invers in a treia generatie a
metodelor de acces multimplu de banda larga (CDMA) in sistemul de comunicatii
mobile.
3GPP
Codurile Turbo sunt deja folosite in Japonia, unde au fost incorporate in standardul
pentru generatia a treia a sistemului de telefonie mobila, cunoscut oficial sub numele de
UMTS (Universal Mobile Telecomunications System). Ele sunt folosite pentru
transmisiuni de foto, video si posta electronica. Pentru transmisiuni de voce sunt totusi
folosite coduri convolutionale, din cauza intarzierilor la decodare mai mici decat cele ale
codurilor turbo.
Comunicatii prin satelit
Codurile Turbo au fost deasemenea recomandate pentru noul serviciu de comunicatii
multimedia al INMARSAT, care investigheaza acum si folosirea lor pentru servicii
digitale.
Dezavantaje ale codurilor Turbo
Intarzierea la decodare, timpul necesar decodarii datelor, este un punct in minus al
codurilor turbo. Cele cateva iteratii necesare la decodare introduc o intarziere
inacceptabila in comunicatii de voce in timp real sau alte aplicatii care necesita
procesarea instantanee a datelor precum stocarea pe hard disk-uri sau transmisiunile
optice.

6.

Acronime

AWGN

Additive White Gaussian Noise

Zgomot alb aditiv Gaussian

BPSK

Binary Phase Shift Keing

(modulaie cu) deplasare


binar de faz

BSC

Binary Symetric Channel

Canal Binar Simetric

LLR

Log-Likelihood Ratio

Logaritmul raportului de
plauzibilitate

MAP

Maximum Aposteriori
Probability

Probabilitatea a posteriori
maxim

ML

Maximum Likelihood

Maximum de plauzibilitate

NRZ

Non Return to Zero

Semnal binar fr ntoarcere la


zero

PCC

Parallel Concatenated
Convolutional Code

Coduri convoluionale
concatenate n paralel

RSC

Recursive Sistematic Codes

Coduri sitematice recursive

SCCC

Serial Concatenated
Convolutional Code

Coduri convoluionale
concatenate n serie

SISO

Soft Input Soft Output

Intrare soft iesire soft

SOVA

Soft Output Viterbi Algoritm

Algoritmul Viterbi cu ieire


soft

TPC

Turbo Product Code

Coduri turbo produs

3GPP

3rd Generation Partnerschip


Project

3G proiect de parteneriat

7. Bibliografie

- Bernard Sklar: A primer on turbo code concepts, IEEE Comunications Magazine,


vol.35, no. 12, pp. 94-102, Dec.1997
- C.E. Shannon: A Mathematical Theory of Communications, The Bell System
Technical Journal, Vol.27, pp. 379-423, 623-656. October, 1948
- Matthew C. Valenti and Jian Sun: Handbook of RF and Wireless Tehnologies
Chapter 12: Turbo Codes, pp 375-400, 2003
- Simona V. Halunga Fratu: Sisteme de comunicaie cu acces multiplu , Editura
Printech, pp 205-285 Bucureti 2005
- L. Hanzo, T.H. Liew, B.L. Yeap: Turbo Coding, Turbo Equalisation and Space-Time
Coding JohnWiley, August 2002
- C. Berrou, A. Glavieux, P. Thitimajshima Near Shannon Limit Error Correcting
Coding and Decoding: Turbo Codes, Proc. of ICC, Geneve, may 1993, pp. 1064-1070
- Todd K. Moon, Utah State University Error Correction Coding , New Jersey, 2005
- Alain Glavieux, Channel Coding in Communication Networks. From Theory to
Turbocodes , Franta 2005
-Design of an Interleaver for Turbo Codes using Genetic Algorithms, AIML Journal,
Volume (6), Issue (2), June, 2006 Coimbatore, India

S-ar putea să vă placă și