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

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 0

-4

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 de date codate cu rata . Acest tip de codare este mai puternic dect codarea bloc, 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 2 .... m 1 2 .... m 1 2 .... m

n sumatoare modulo 2 1 2 n

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 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= Pentru structura din exempul 2.1. secvenele la ieirea celor dou sumatoare sunt

(2.3)

x1=

x2= Cele dou ieiri sunt ntreesute pentru a genera secvena la ieire: x= Cu acestea, pentru secvena de intrare particular dat,

(2.4)

(2.5)

(2.6)

se poate determina secvenele la ieirea celor dou sumatoare

x1

x2 deci secvena de cod generat este: v

(2.7)

(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 [00] [01] [10] [11] Intrare 0 1 0 1 0 1 0 1 Starea urmtoare [00] [10] [00] [10] [01] [11] [01] [11] Ieire [00] [11] [11] [00] [10] [01] [01] [10]

Aceasta este reprezentat schematic n figura 2.3.


00

00 11 10 10 00 01 11 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 01 10 11

00

00 01 10

00

00

00 11

00
11

11

11 10

01 10
01

01
.....

00 10 01 01

10 11

11
t=1

11

11

t=0

t=2

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

00

....

00
11

00

10 01

00
10 11

....

10
01

11

00
11 10

00

....

01
00

11

10 01

10
01 01

....

11
10

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 figura 2.6
IN

. Codorul este reprezentat n

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 001 101 010 010 101 011 100 111 011 Figura 2.7 - Diagrama de tranziie a strilor pentru codul definit de polinoamele (2.10) 011 100 001 101 110 110 010 001 000 110 111 100

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. Traiectoriile corespunztoare celor dou cuvinte sunt w1=[000,000,000,000,000,000, . ] w2=[111,110,101,111,000,000,.] (2.13)

d)

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
stare 000 100 010 101 110 011 101 010 101 010 001 000 100 intrare 1 0 1 1 0 1 0 1 0 0 0 1 1 ieire 111 110 010 110 011 101 001 010 001 101 111 111 001

00 00 01 01 10 0 10 1 11 0 11 1

000 111

000 111

000 111 000 101

000 111 010

000 111

000 111

000 111

000 111

000 111

000 111 101

000 111 111

000

000 111

110

010 101 001 011 110 100 011 011 101

001

010 001 111

001

001

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

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 este: ,tiind c la ieirea codorului a fost generat

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 10 00 11 11 01 00 11 00 10 01 10 10 10 00 11 00 11 00 00 00

01 10

01

01

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 0,0,0,0,0 0,0,1,0,0 0,1,0,0,0 0,1,1,0,0 1,0,0,0,0 1,0,1,0,0 1,1,0,0,0 1,1,1,0,0 Ieire codor 00,00,00,00,00 00,00,11,10,11 00,11,10,11,00 00,11,01,01,11 11,10,11,00,00 11,10,00,10,11 11,01,01,11,00 11,01,10,01,11 Metrica cii -12.05 -14.24 -5.48 -16.43 -14.24 -16.43 -7.67 -9.86 Distana Hamming 5 6 2 7 6 7 3 4

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.
3.1

CODUL TURBO
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.
ntreestor 1 Codor 1

Codor 2

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 D D D D

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 0 1 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 1

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 1 0 2

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 secvena recepionat din canal pn n acest moment s fie y ,
j<k k-1 k-1 j<k

(3.16) (s)= P(y |S =s) este probabilitatea ca, dat fiind starea trellisului s la momentul k, secvena recepionat din canal, dup acest moment, s fie y ,
j>k k j>k k

(3.17) (,s)=P({y S =s}| S =) este probabilitatea ca, dat fiind trellisul n starea la 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 c k k k k-1

(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, (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 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 fost transmis direct prin canal i recepionat ca i y . Cu alte cuvinte, acest termen corespunde biilor sistematici transportai de canal.
ks k k k

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 informaie extrinsec pentru bitul u .
k ks 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 primul decodor:

i reprezint intrarea n

(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 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) depinde doar de starea trecut (proces Markov

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) . Se

este un eantion de zgomot gaussian de medie nul i dispersie

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 logaritmul raportului de plauzibilitate i calculeaz

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 sau la o decodrii folosind proprietile de corecie i detecie ale codului. se folosete termenul de informaie aposteriori (relativ la un bit

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 i 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 dac secvena recepionat este

probabilitatea ca algoritmul s se afle n starea

(4.19) Definind i probabilitatea ca secvena recepionat s fie afl n starea sub forma (4.20) probabilitatea ca secvena transmis s fi fost secvena recepionat s fie , starea urmtoare s fie este iar ; atunci cnd algoritmul se

n condiiile n care starea curent este

(4.21)

- Calculul recursiv nainte al valorilor

(4.22)

Aadar, odat ce sunt cunoscute valorile Presupunnd c trellisul are starea iniial recuren sunt:

, valorile

pot fi calculate recursiv.

, condiiile iniiale pentru aceast

0 pentru

- Calculul recursiv napoi al valorilor

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:

0 pentru

Calculul probabilitiilor ramurilor

n cazul unui canal gaussian, se mai poate scrie

(4.25) 0

unde

este probabilitatea apriori a lui la starea

i i ieirea

este ieirea codorului .

asociat tranziiei de la starea

Cu acestea raportul de plauzibilitate (4.18) devine

Pentru determinarea acestui raport trebuie aplicate dou nivele de recursivitate: recursivitatea pozitiv pentru determinarea : , : i 0 pentru ;

- se iniializeaz - pentru se determin

i pentru toate ramurile i din diagrama trellis

unde

este probabilitatea apriori a fiecrui bit de informaie, iar i secvena din trellis .

este

ptratul distanei Euclidiene dintre secvena recepionat - pentru - pentru se reine i

se calculeaz i se reine

recursivitatea plauzibilitate

negativ

pentru

determianrea i

logaritmului

raportului

de

- se iniializeaz - pentru i

0 pentru

se determin

unde - pentru (4.26)

a fost calculat n recursivitea pozitiv. se calculeaz logaritmului raportului de plauzibilitate din realaia

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 i . 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. i poate fi folosit ca probabilitate apriori pentru decodare este

nu conine

n faza a doua. Informaia extrinsec ntreesut de la primul decodor probabilitatea apriori estimat pentru al doilea decodor:

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 - se determin - se determin , unde este numrul total de iteraii i iterativ folosind ecuaia (4.31)

- se determin

3) Dup finale 4.3.2

iteraii se ia decizia hard asupra mesajului transmis

pe baza metricii

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

pentru

. Similar

n care condiiile iniiale sunt

pentru

. , i n

Pentru nlocuirea valorilor probabilitilor logaritmate raportul din relatia (4.26) se poate scrie:

Aceast relaie se poate simplifica prin folosirea aproximrii:

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. Max-Log-MAP, valorile pentru i

algoritmul

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.
AWGN BPSK

Acronime
Additive White Gaussian Noise Binary Phase Shift Keing Zgomot alb aditiv Gaussian (modulaie cu) deplasare binar de faz Canal Binar Simetric Logaritmul raportului de plauzibilitate Probabilitatea a posteriori maxim Maximum de plauzibilitate Semnal binar fr ntoarcere la zero Coduri convoluionale concatenate n paralel Coduri sitematice recursive Coduri convoluionale concatenate n serie Intrare soft iesire soft Algoritmul Viterbi cu ieire soft Coduri turbo produs 3G proiect de parteneriat

BSC LLR

Binary Symetric Channel Log-Likelihood Ratio

MAP

Maximum Aposteriori Probability Maximum Likelihood Non Return to Zero

ML NRZ

PCC

Parallel Concatenated Convolutional Code Recursive Sistematic Codes Serial Concatenated Convolutional Code Soft Input Soft Output Soft Output Viterbi Algoritm

RSC SCCC

SISO SOVA

TPC 3GPP

Turbo Product Code 3rd Generation Partnerschip Project

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