Documente Academic
Documente Profesional
Documente Cultură
Coduri Convolutionare Si Turbo
Coduri Convolutionare Si Turbo
INTRODUCERE
zgomot (SNR) mici. Performantele codurilor turbo sunt datorate intreteserii aleatoare si
decodarii iterative.
-4
E = b / b (4)
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,
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
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)
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
bii de intrare
w=
(2.3)
Pentru structura din exempul 2.1. secvenele la ieirea celor dou sumatoare sunt
x1=
x2=
(2.4)
(2.5)
x1
(2.7)
x2
deci secvena de cod generat este:
v
(2.8)
2.2.3
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]
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
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
Se observ c pentru
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
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
(2.10)
a)
b)
c)
d)
e)
(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
figura 2.6
IN
OUT
a)
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)
c)
d)
(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
este:
Dat fiind secvena la ieirea canalului, , secvena de intrare cea mai probabil la
intrarea acestuia
. Aceasta este
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
(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
(2.23)
Cum probabilitatea de eroare p < 0,5, rezult
este
01
10
00
11
00
10
11
00
00
00
00
11
11
11
00
10
00
10
01
10
01
01
01
10
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
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
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
Codor 2
ntreestor 1
Codor 1
ntreestor 2
Codor 3
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.
3.2
Codorul 1
Circuit de
ntreesere
Codorul 2
unde
, respectiv
2
1
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
Circuit de
ntreesere
Notnd cu , , ,
coninutul celulelor registrului la fiecare moment de
timp, i innd cont c starea urmtoare respectiv ieirea se determin din relaiile
(3.9)
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
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
3.3.2
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.
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
y.
2
(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.
unde:
()=P(S =y ) este probabilitatea ca trellisul s fie n starea la momentul k-1 iar
k-1
k-1
j<k
(3.16)
(s)= P(y |S =s) este probabilitatea ca, dat fiind starea trellisului s la momentul k,
k
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)
(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
(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
Introducere
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
Figura 4.1 - Modelul codorului cu rata 1/3, a modulatorului i a canalului afectat de AWGN
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
n starea
, unde
este
momentul de timp urmtor. Procesul poate fi complet definit prin urmtoarele funcii
(4.5)
(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
(4.12)
(4.15)
. Se
calculeaz
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.
i secvena de
Decodr 1
MAP
ntreestor
ntreestor
Decodr 2
MAP
Dez-ntreestor
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:
sau
sau la o
4.3
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:
i
sunt probabilitiile apriori pentru 1 i 0 la intrarea n primul
decodor, iar
n starea
cu
(4.19)
Definind i probabilitatea ca secvena recepionat s fie
afl n starea
sub forma
(4.20)
este
iar
(4.21)
(4.22)
, valorile
recuren sunt:
0 pentru
0 pentru
(4.25)
0
unde
la starea
i
i ieirea
- se iniializeaz
- pentru
0 pentru
se determin
unde
este
se reine
i
se calculeaz i se reine
recursivitatea
plauzibilitate
negativ
pentru
determianrea
- se iniializeaz
logaritmului
- pentru
raportului
de
0 pentru
se determin
unde
- pentru
din realaia
(4.26)
Cele dou etape sunt reprezentate n Figura 4.3
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
unde
Mrimea
nu conine
este
Folosind relaia
iar
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
1) Se iniializeaz metricile
2) Pentru
- se determin
- se determin
iterativ
- se determin
3) Dup
pe baza metricii
finale
4.3.2
Algoritmul Max-Log-MAP
respectiv
pentru
pentru
. Similar
.
,
unde
Determinarea probabilitilor
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
cu
algoritmul
Max-Log-MAP,
valorile
pentru
Termenul de corecie
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)
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.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.
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
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
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)
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:
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
Tabelul 4.8 Metricile complete pe ramuri pentru intregul semnal, dupa DEC1
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
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
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. )
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
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
BPSK
BSC
LLR
Log-Likelihood Ratio
Logaritmul raportului de
plauzibilitate
MAP
Maximum Aposteriori
Probability
Probabilitatea a posteriori
maxim
ML
Maximum Likelihood
Maximum de plauzibilitate
NRZ
PCC
Parallel Concatenated
Convolutional Code
Coduri convoluionale
concatenate n paralel
RSC
SCCC
Serial Concatenated
Convolutional Code
Coduri convoluionale
concatenate n serie
SISO
SOVA
TPC
3GPP
3G proiect de parteneriat
7. Bibliografie