Sunteți pe pagina 1din 16

Capitolul 5

Modulaţie Codată

5
1. Zoom-out asupra codării de canal
Trellis

1.1. Premise
Tehnicile de codare de canal protejează datele digitale de erori, introducând o anumită redundanţă în
secvenţa de date. Codurile de canal pot fi folosite fie pentru detecţia de erori, numindu-se coduri detectoare
de erori, fie pentru detecţia şi corecţia de erori, numindu-se coduri corectoare de erori.
În 1948, Shannon a demonstrat că erorile ce apar la transmisia pe un canal zgomotos pot fi reduse la
orice nivel dorit, prin alegerea unei tehnici de codare corespunzătoare, fără a înrăutăţi rata de transfer a
informaţiei. Formula lui Shannon aplicabilă pentru canale AWGN care exprimă capacitatea canalelor de
comunicaţie este dată de relaţia (1), în care C reprezintă capacitatea canalului (în biţi pe secundă), B este
banda semnalului transmis (în Hz ), P semnifică puterea semnalului recepţionat (în W ), iar N 0 este
densitatea spectrală de putere unilaterală a zgomotului (în W Hz ). Puterea recepţionată la receptor este dată
de relaţia (2), în care Eb este energia de bit medie, iar Rb este rata de bit a transmisiei. Ecuaţia (1) poate fi
normalizată la banda de transmisie, rezultând relaţia (3), în care C B denotă eficienţa de bandă.
 P   P
C= B log 2 1 + = B log 2 1 +  (1)
 N 0 
B  N 
P = Eb Rb (2)
C  E R 
= log 2 1 + b b  (3)
B  N0 B 
Principalul scop al tehnicilor de detecţie şi corecţie a erorilor este acela de a îmbunătăţi calitatea
transmisiei într-o legătură de comunicaţie, prin introducerea unui grad de redundanţă în fluxul de date.
Introducerea unor biţi redundanţi implică o creştere a fluxului de date transmis şi, prin urmare, şi o creştere a
necesarului de bandă a canalului, în condiţiile în care se doreşte a nu se afecta rata de transmisie a sursei de
date. Acest fapt conduce la reducerea eficienţei de bandă a legăturii de date atunci când transmisia este
caracterizată de un raport SNR ridicat, însă atunci când transmisia are loc în condiţii de raport SNR redus,
performanţele transmisiei cresc considerabil în termeni de BER .
Un circuit de codare de canal operează asupra mesajelor digitale produse de sursa de informaţie prin
transformarea lor în secvenţe de cod adecvate transmisiei pe canalul de comunicaţie. Există trei categorii de
bază de coduri detectoare şi corectoare de erori: codurile bloc, codurile convoluţionale şi codurile turbo.

1.2. Codurile bloc


Codurile bloc sunt coduri corectoare de erori (forward error correction – FEC) care permit detecţia
şi corecţia unui număr de erori fără a fi necesară retransmisia biţilor (sau simbolurilor) eronaţi. Codurile bloc
sunt indicate a fi folosite pentru îmbunătăţirea performanţelor unui sistem de comunicaţii atunci când alte
metode (cum ar fi creşterea puterii de emisie sau utilizarea unui demodulator mai sofisticat la recepţie) sunt
impracticabile.
În cazul codurilor bloc, blocurilor de biţi de informaţie li se adaugă biţi de paritate pentru a crea
cuvinte de cod sau blocuri de cod. Un codor bloc transformă k biţi de informaţie în n biţi codaţi. Astfel, un
număr de n − k biţi redundanţi sunt adăugaţi celor k biţi de informaţie în scopul detecţiei şi corecţiei de
erori. Un cod bloc este referit ca fiind un cod ( n, k ) , având rata de codare Rc = k n , corespunzând ratei
sursei de informaţie divizată prin rata fluxului de date de pe canalul de comunicaţie.
Pagina 73
Tehnici de Comunicaţii Digitale
Abilitatea unui cod de a corecta erorile depinde de distanţa codului. În funcţie de acest parametru,
există mai multe categorii de coduri bloc, fiecare oferind diverse nivele de protecţie la erori.
Aşadar, pe lângă rata de codare, alţi parametri importanţi ai codurilor bloc sunt distanţa codului şi
ponderea cuvintelor de cod. Aceştia sunt definiţi în continuare.
Distanţa codului – Distanţa dintre două cuvinte de cod reprezintă numărul de elemente prin care
diferă cele două cuvinte de cod Ci şi C j , ca în relaţia (4), unde d simbolizează distanţa între cuvintele de
cod, iar q este numărul total de valori posibile pentru Ci şi C j (numărul de cuvinte de cod posibile).
Lungimea fiecărui cuvânt de cod este N elemente sau caractere. În cazul în care codul utilizat este un cod
binar, atunci această distanţă este tocmai distanţa Hamming. Distanţa minimă d min este distanţa cea mai
mică din toată mulţimea cuvintelor de cod, conform relaţiei (5).
N
(
d C=
i ,C j ) ∑ Ci,l ⊕ C j ,l ( modulo q ) (4)
l =1

d min = Min d Ci , C j{( )} (5)


Ponderea codului – Ponderea unui cuvânt de cod de lungime N este dată de numărul de elemente
diferite de zero ale cuvântului de cod. În cazul unui cod binar, ponderea reprezintă numărul elementelor de
„1” din cuvântul de cod, conform relaţiei (6).
N
w ( Ci ) = ∑ Ci ,l (6)
l =1

1.3. Proprietăţi ale codurilor bloc


Liniaritatea – Fie Ci şi C j două cuvinte de cod ale unui cod bloc ( n, k ) . Fie α1 şi α 2 două
elemente ale alfabetului codului. Un cod se numeşte liniar numai dacă orice combinaţie α1C1 + α 2C2 este tot
un cuvânt de cod. Un cod liniar trebuie să includă şi cuvântul de cod format numai din zerouri. În consecinţă,
un cod de pondere constantă nu este liniar.
Sistematicitatea – Un cod sistematic este un cod în care biţii de paritate sunt adăugaţi după biţii de
informaţie. Astfel, în cazul unui cod ( n, k ) , în orice cuvânt de cod primii k biţi sunt identici cu biţii de
informaţie, iar ultimii n − k biţi (rămaşi) sunt combinaţii liniare ale celor k biţi de informaţie.
Ciclicitatea – Codurile ciclice sunt o submulţime a codurilor liniare, care satisfac următoarea
proprietate de permutare ciclică: dacă C = [ cn −1 , cn − 2 ,..., c1 , c0 ] este un cuvânt de cod al unui cod ciclic, atunci
[cn−2 , cn−3 ,..., c0 , cn−1 ] ,
obţinut printr-o permutare ciclică a lui C , este tot un cuvânt de cod. Aceasta
înseamnă că toate permutările ciclice ale lui C sunt cuvinte de cod. Ca o consecinţă a proprietăţii de
ciclicitate, structurile componente folosite pentru codare şi decodare sunt reutilizabile, ceea ce conduce la
simplificarea acestor operaţii.

1.4. Exemple de coduri bloc


Codurile Hamming – Acestea au fost printre primele coduri corectoare netriviale. Aceste coduri
împreună cu variante ale lor au fost folosite pentru corecţia erorilor în sistemele de comunicaţii digitale.
Există atât coduri Hamming binare, cât şi nonbinare. Un cod Hamming binar respectă proprietatea (7), în
care k reprezintă numărul biţilor de informaţie utilizaţi pentru a forma un cuvânt de cod cu n biţi, iar m
este un număr întreg pozitiv. Numărul simbolurilor de paritate este egal cu n − k =m.
( n, k=) (2 m
− 1, 2m − 1 − m ) (7)
Codurile Hadamarad – Aceste coduri se obţin prin selectarea ca şi cuvinte de cod a liniilor unei
matrice Hadamarad. O matrice Hadamarad A este o matrice de dimensiuni N x N , formată din „1” şi „0”,
astfel încât fiecare linie diferă de orice altă coloană a matricei în exact N 2 locaţii (indecşi). Una dintre linii
conţine numai zerouri, iar restul liniilor conţin câte N 2 zerouri şi N 2 elemente de „1”. Distanţa minimă a
acestor coduri este egală cu N 2 .
În cazul în care N = 2 , matricea Hadamarad A arată precum cea din relaţia (8).

Pagina 74
Modulaţie Codată Trellis

0 0 
A=  (8)
0 1 
Faţă de cazul special tocmai considerat, când N = 2m ( m fiind o valoare întreagă pozitivă), codurile
Hadamarad pot avea şi alte lungimi, dar atunci nu mai sunt liniare.
Codurile Golay – Aceste coduri reprezintă un caz special netrivial de coduri binare liniare ( 23, 21) ,
având distanţa minimă egală cu 7 şi capacitatea de a corecta 3 biţi eronaţi.
Codurile ciclice – Acestea sunt o submulţime a clasei de coduri liniare, submulţime de coduri care
satisfac proprietatea de ciclicitate. Ca rezultat al acestei proprietăţi, aceste coduri posedă o structură
repetitivă, repetitivitate ce poate fi exploatată la codare, respectiv decodare.
Un cod ciclic poate fi generat folosind un polinom generator g ( p ) de grad ( n − k ) . Polinomul
generator al unui cod ciclic ( n, k ) este factor al polinomului p n + 1 şi are forma generală (9).
g ( p=
) p n−k + g n−k −1 p n−k −1 + ... + g1 p + 1 (9)
Un mesaj informaţional poate fi scris sub formă polinomială conform relaţiei (10), în care
( xk −1 ,..., x0 ) reprezintă cei k biţi de informaţie. Cuvântul de cod rezultat poate fi scris sub forma (11), în
care c ( p ) este un polinom de grad mai mic decât n .
( p ) xk −1 p k −1 + ... + x1 p + x0
x= (10)
c=( p) x( p) ⋅ g ( p) (11)
Implementarea unui codor pentru un cod ciclic se realizează de obicei cu un registru liniar de
deplasare cu reacţie, bazat fie pe polinomul generator, fie pe polinomul de paritate.
Codurile BCH – Aceste coduri ciclice sunt printre cele mai importante coduri bloc, având în vedere
faptul că ele există pentru o varietate de rate de codare, au câştiguri de codare ridicate şi pot fi implementate
pentru viteze mari de transmisie. Lungimea blocului unui cod este = n 2m − 1 , pentru m ≥ 3 , iar numărul
( )
erorilor corectabile este limitat la t < 2m − 1 2 . Codurile BCH binare pot fi generalizate pentru a crea clase
de coduri nonbinare utilizând m biţi pe simbol. Cea mai importantă şi mai cunoscută în acelaşi timp clasă de
coduri BCH sunt codurile Reed-Solomon.
Codurile Reed-Solomon (RS) – Acestea sunt coduri nonbinare care au capacitatea de a corecta erori
grupate (erori de burst) şi de obicei sunt utilizate în conjuncţie cu alte coduri în cadrul unor sisteme de codare
concatenate. Lungimea blocului acestui cod este = n 2m − 1 . Aceasta poate fi însă extinsă la 2m sau 2m + 1 .
Numărul simbolurilor de paritate care trebuie utilizate pentru a corecta un număr de e erori este n − k = 2e ,
iar distanţa minimă este d min= 2e + 1 . Codurile RS sunt cele care ating valoarea cea mai mare a distanţei
minime comparate cu toate celelalte coduri liniare.

1.5. Codurile convoluţionale


Codurile convoluţionale diferă fundamental de codurile bloc prin aceea că secvenţa biţilor de
informaţie nu se mai regăseşte în cuvintele de cod grupată în blocuri distincte de biţii redundanţi. Din contra,
o secvenţă continuă de biţi de informaţie este transformată prin codare tot într-o secvenţă continuă de biţi
codaţi.
k biţi N nivele
de date
1  k 1  k 1  k

1 2 n
Secvenţa codată (n biţi)
Figura 1. Structura generală a unui codor convoluţional.
Un cod convoluţional este generat prin trecerea secvenţei de date printr-un registru de deplasare cu
un număr finit de stări. La modul general, un registru conţine N nivele (celule de deplasare) a câte k biţi şi
n funcţii generatoare liniare, bazate pe polinoamele generatoare, conform schiţei din Figura 1. Datele de
Pagina 75
Tehnici de Comunicaţii Digitale
intrare sunt deplasate în cadrul registrului de deplasare (shift register) câte k biţi odată. Rata de codare este
Rc = k n . Parametrul N este denumit lungime de constrângere şi indică numărul de simboluri (de date) de
intrare de care depinde ieşirea codorului la un moment dat. Acest parametru indică, cât de puternic şi
complex este codul. În continuare sunt evidenţiate câteva modalităţi de reprezentare a codurilor
convoluţionale.
Matricea generatoare – Matricea generatoare a unui cod convoluţional poate defini codul, însă este
semi-infinită deoarece intrarea are lungime semi-infinită. Prin urmare, aceasta nu este o metodă convenientă
de reprezentare a unui cod convoluţional.
Polinoamele generatoare – Pentru codurile convoluţionale se specifică o mulţime de n vectori, câte
unul pentru fiecare dintre cele n sumatoare modulo 2. Fiecare vector, de dimensiune N ⋅ k indică,
conectarea codorului la sumatorul modulo 2. Un „1” pe poziţia „i” a vectorului indică faptul că celula
corespunzătoare din registrul de deplasare are conexiune către sumatorul respectiv, iar un „0” indică absenţa
unei astfel de legături.
Tabelul logic – Un astfel de tabel se poate construi pentru a indica ieşirile codorului convoluţional şi
starea codorului pentru toate secvenţele de intrare în codor.
Diagrama de stări – De vreme ce ieşirea codorului depinde de intrare şi de starea curentă a codorului,
se poate utiliza o diagramă de stări pentru a reprezenta procesul de codare. Diagrama de stări este pur şi
simplu un graf al tuturor stărilor posibile precum şi a tranziţiilor posibile între stări.
Diagrama arbore – Aceasta reprezintă structura codorului sub forma unui arbore, în funcţie de stările
şi ieşirile codorului.
Diagrama trellis – La o privire mai atentă asupra arborelui, se poate observa că structura acestuia se
repetă atunci când numărul de celule de deplasare (fiecare pe câte k biţi) este mai mare decât lungimea de
constrângere. Se poate observa că ramurile ce provin din două noduri având aceeaşi stare sunt identice în
sensul că acestea generează secvenţe de ieşire identice. Aceasta înseamnă că cele două noduri având aceeaşi
etichetă se pot contopi. În urma acestui proces de contopire, se obţine o altă diagramă, numită diagramă
trellis, care este o reprezentare mai compactă.

1.6. Exemplu de cod convoluţional


Un exemplu de codor convoluţional este ilustrat în Figura 2. În acest caz, k = 1 , n = 2 şi N = 3 . Prin
urmare rata de codare este 1 2 , iar numărul de stări 2( N −1)k = 4 . O altă metodă de a descrie un codor
convoluţional, pe lângă desenarea schemei bloc, este şi aceea de a specifica cum variază cei n biţi de ieşire
din codor în funcţie de starea codorului (registrului de deplasare). Acest lucru se face de obicei prin
specificarea celor n vectori g1 , g 2 , ..., g n cunoscuţi sub denumirea de secvenţe generatoare ale codului
convoluţional. Componenta numărul i , unde 1 ≤ i ≤ 2kN , din vectorul g j , unde 1 ≤ j ≤ n , are valoarea 1 dacă
ieşirea celulei de întârziere cu numărul i din registrul de deplasare este conectată la sumatorul corespunzător
bitului j din secvenţa de ieşire (codată) sau are valoarea 0 în caz contrar. În exemplul considerat secvenţele
generatoare sunt cele din relaţia (12).
 g1 = [1 0 1]
 (12)
 g 2 = [1 1 1]
N=3

Figura 2. Un codor convoluţional cu rata de codare 1 2 .


Din cauză că un codor convoluţional are o memorie finită, după cum s-a apreciat şi anterior, el poate
fi destul de uşor reprezentat sub forma unei diagrame de stări, ca în Figura 3. Fiecare stare a codorului
convoluţional este reprezentată printr-un pătrat, iar tranziţiile între stări sunt reprezentate prin săgeţi care
Pagina 76
Modulaţie Codată Trellis
conectează între ele pătratele respective. Pe fiecare linie sunt reprezentate atât biţii (bitul) de intrare care
determină tranziţia respectivă, cât şi biţii de ieşire ai codorului cauzaţi de acea tranziţie ( In Out ).

Figura 3. Diagrama de stări a codorului exemplificat.


O şi mai populară reprezentare a unui cod convoluţional este diagrama trellis. Diagrama trellis
reprezintă o metodă de a ilustra tranziţiile între stări pe măsură ce trece timpul şi este obţinută poziţionând pe
o axă verticală toate stările posibile ale codorului şi repetând această axă de-a lungul axei timpului
(orizontală). Apoi, fiecare trecere dintr-o stare în alta este reprezentată printr-o săgeată ce leagă cele două
stări aparţinând fiecare câte unei axe verticale (moment de timp) diferită, dar consecutive. Ca şi în cazul
diagramei de stări, şi în cazul diagramei trellis există maxim 2k ramuri care intră într-o stare şi maxim 2k
ramuri care ies. Se obişnuieşte ca în cazul k = 1 să se reprezinte prin linie plină o tranziţie datorată apariţiei
la intrarea codorului a unui bit 0 , iar prin linie punctată o tranziţie datorată apariţiei la intrarea codorului a
unui bit 1 . Figura 4 ilustrează diagrama trellis corespunzătoare codorului din Figura 2.

Starea a

Starea b

Starea c

Starea d
Timp

Figura 4. Diagrama trellis a codorului exemplificat.


În cazul unui cod convoluţional, procedura de codare este destul de simplă. Se presupune că iniţial
(înainte ca informaţia să apară la intrarea codorului) codorul se află în starea „numai zerouri” (toate celulele
sale au la ieşire valoarea 00...0 , adică, câte k de 0 ). Biţii de informaţie intră în codor câte k odată, iar cei n
biţi corespunzători la ieşirea codorului sunt transmişi pe canalul de comunicaţie. Procedura este continuată
până când ultimul grup de k biţi este încărcat în codor şi cei n biţi corespunzători rezultaţi prin codare sunt
transmişi pe canal. Pentru simplitate se poate presupune că după ultimul grup de k , un alt grup de k ( N − 1)
zerouri intră în circuitul de codare şi biţii corespunzători celor n ieşiri ale codorului sunt transmişi pe canalul
de comunicaţie. Acest lucru determină codorul să ajungă tot în starea „numai zerouri” ,fiind astfel pregătit
pentru următoare secvenţă ce trebuie codată.
Ne propunem, astfel să determinăm care este secvenţa codată cu ajutorul codorului reprezentat în
Figura 2 în cazul în care secvenţa de informaţie aplicată la intrarea codorului este x = (1101011) . Este
suficient să nu uităm faptul că, codorul se află iniţial în starea „numai zerouri”, iar după transmisia ultimului

Pagina 77
Tehnici de Comunicaţii Digitale
bit de informaţie, codorul mai este alimentat cu încă două zerouri. Aceasta însemnă că secvenţa de
informaţie transmisă este de fapt x1 = (110101100 ) . Folosind această secvenţă rezultă prin codare cuvântul de
cod c = (111010000100101011) .

1.7. Algoritmul Viterbi pentru decodarea codurilor convoluţionale


Funcţia decodorului este aceea de a estima la recepţie informaţia codată, folosind o metodă care să
asigure un număr minim de erori. Între secvenţa informaţională şi secvenţa de cod există o corespondenţă de
unu-la-unu. Mai mult, oricărei perechi secvenţă informaţională – secvenţă de cod îi corespunde o cale unică
din diagrama trellis. Astfel, rolul decodorului este acela de a estima calea din diagrama trellis care a fost
urmată de circuitul de codare.
Există o serie de tehnici pentru decodarea codurilor convoluţionale, dintre care cea mai importantă
metodă este algoritmul Viterbi care realizează o decodare cu plauzibilitate maximă (maximum likelihood
decoding) a codurilor convoluţionale. Algoritmul a fost prima dată descris de A. J. Viterbi şi poate fi
implementat atât în varianta cu decizionare hard, cât şi în varianta cu decizionare soft, cea de-a doua fiind
superioară cu aproximativ 2 − 3dB . Trebuie menţionat că atunci când se foloseşte decodarea cu decizionare
hard, se foloseşte ca metrică distanţa Hamming, pe când la decodarea cu decizionare soft se foloseşte ca
metrică distanţa Euclidiană.
În decodarea cu decizionare hard a codurilor convoluţionale se doreşte determinarea unei căi de
parcurs prin diagrama trellis a cărei secvenţă de cuvinte de cod, notată cu c să se găsească la distanţă
Hamming minimă faţă de secvenţa recepţionată cuantizată y . În decodarea cu decizionare hard canalul de
comunicaţie este considerat binar fără memorie (faptul că este fără memorie rezultă din presupunerea că
zgomotul ce afectează canalul este alb). Deoarece calea dorită porneşte din starea „numai zerouri” şi duce tot
la starea „numai zerouri”, se poate presupune că această cale are un număr fix de ramuri ( N + m , de
exemplu) şi de vreme ce fiecărei ramuri îi corespund câte n biţi cât are ieşirea codorului, numărul total de
biţi din c , ca şi din y este ( N + m ) n . Se notează secvenţa de biţi din secvenţa de cuvinte de cod, respectiv
din secvenţa recepţionată, corespunzătoare fiecărei ramuri i cu ci şi respectiv, yi , unde 1 ≤ i ≤ N + m , iar
fiecare ci şi yi este de lungime n biţi. În consecinţă, distanţa Hamming între c şi y este dată de relaţia
(13), d ( ci , yi ) având semnificaţia în Figura 5 de numărul de biţi diferiţi între cei n ( = 2 ) biţi recepţionaţi
(menţionaţi pe linia de sus din figură) şi cei n ( = 2 ) biţi ai cuvântului de cod posibil corespunzător
(menţionat pe linia de tranziţie – ramură).
N +m
d ( c, y ) = ∑ d ( ci , yi ) (13)
i =1
În decodarea cu decizionare soft, a codurilor convoluţionale, situaţia este similară celei cu
decizionare hard, cu următoarele diferenţe:
1. În loc de y se operează direct cu vectorul r , care constituie vectorul de ieşire al demodulatorului
digital optim (de tip corelator sau alt filtru adaptat).
2. În loc de secvenţa binară c , se operează cu o secvenţă corespunzătoare c′ , specificată conform
relaţiei (14).
 ε , cij = 1
= cij′  pentru 1 ≤ i ≤ N + m şi 1 ≤ j ≤ n (14)
− ε , cij = 0
3. În locul distanţei Hamming, se utilizează distanţa Euclidiană d E ( c′, r ) , definită ca în relaţia (15).
N +m
d E2 ( c′, r ) = ∑ d E2 ( ci′, ri ) (15)
i =1
Din relaţiile (13) şi (15) se vede că problema de rezolvat se poate formula astfel: dându-se un vector
a , să se găsească calea din diagrama trellis care porneşte din starea „numai zerouri”= a S= 0,0 0 şi ajunge
=
tot în starea „numai zerouri” b S=
0, N + m 0 , şi care are proprietatea că o măsură (metrică apriori aleasă) a
acestei căi are valoare minimă în raport cu măsura tuturor celorlalte căi dintre punctele a şi b . Problema se
mai poate formula şi ca o problemă de maximizare, în loc de minimizare; adică în loc să se caute
minimizarea distanţei Euclidiene, de exemplu, se poate încercarea maximizării corelaţiei. De remarcat faptul
Pagina 78
Modulaţie Codată Trellis
că indiferent de metrica aleasă, rezolvarea acestei probleme este mult simplificată de faptul că distanţa între
punctele a şi b se poate scrie ca suma ramurilor (distanţelor dintre punctele succesive ce sunt incluse în din
cale).
Algoritmul Viterbi poate fi descris după cum urmează: fie S j ,i nodul trellis corespunzător stării S j
la momentul i . Fiecărui nod din diagrama trellis i se asociază pe baza unei anumite metrice o valoare
( )
V S j ,i . Modalitatea de calcul a acestor valori se calculează după cum urmează.
. Fie V ( S0,0 ) = 0 şi se trece la momentul următor i = 1 .
. La momentul i se calculează metricele căilor parţiale corespunzătoare tuturor ramurilor ce intră
în fiecare nod. Practic pentru fiecare j , pentru fiecare ramură ce intră în nodul S j la momentul i , se
(
sumează V S jj ,i −1 ) (unde ramura noastră are capetele S j ,i şi S jj ,i −1 ) cu metrica corespunzătoare ramurii
respective (adică distanţa Hamming sau Euclidiană între valoarea dată de grupul de n biţi de cod
recepţionaţi şi valoarea indicată de grupul de biţi de pe ramură, care reprezintă nu starea, ci ieşirea Out a
codorului – a se vedea Figura 2 şi Figura 4), iar valorile rezultate pentru j -ul respectiv se reţin pentru a
putea găsi minimul lor.
( )
. V S j ,i ia valoarea celei mai mici metrice dintre toate căile parţiale ce intră în nodul
corespunzător stării S j la momentul i . Dintre toate ramurile care intră în nodul S j la momentul i se reţine
numai cea care corespunzătoare căii parţiale cu metrica de valoare minimă (cea care a dat valoarea V S j ,i ) ( )
(dacă sunt mai multe atunci se pot păstra toate sau se poate alege numai una dintre ele), celelalte pur şi
simplu ştergându-se din diagramă. Prin acest procedeu se creează un grup de cost minim de căi ce pornesc
din S0,0 .
. Dacă i < N + m , unde N este numărul segmentelor de cod de intrare (echivalent cu numărul de
celule de întârziere ale registrului de deplasare care intră în componenţa codorului) ( k biţi pentru fiecare
segment) iar m + 1 este lungimea secvenţei de informaţie (fără zerourile adăugate suplimentar) care a trecut
prin registrul de deplasare al codorului (cu alte cuvinte N + m reprezintă numărul total de tranziţii necesare a
fi efectuate în trellis pentru a decoda întreaga secvenţă recepţionată), atunci se face incrementarea i = i + 1 şi
se reia algoritmul de la pasul 2. Altfel algoritmul se opreşte aici.
 După ce au fost completate valorile pentru toate nodurile, se porneşte de la starea S0 , momentul
i N + m şi se parcurge calea inversă pe ramurile rămase ale diagramei trellis. Calea astfel găsită este unică
=
şi corespunde ieşirii decodorului.
Exemplu de aplicare a algoritmului Viterbi
Pentru exemplificarea aplicării algoritmului Viterbi, se propune decodarea cu decizionare hard a
secvenţei cuantizate y din relaţia (16), codorul convoluţional fiind cel desenat în Figura 2. Trebuie găsită
secvenţa de informaţie de maximă plauzibilitate (maximum likelihood – ML) şi numărul de erori din secvenţa
recepţionată.
y = ( 01101111010001) (16)
Codul în cauză este un cod ( 2,1) cu N = 3 . Lungimea secvenţei recepţionate y este 14 . Aceasta
însemnă că N + m = 7 şi trebuie desenată o diagramă trellis cu 7 nivele de tranziţie. De asemenea de
remarcat faptul că din cauză că secvenţa informaţională a fost completată la codare cu k ( N − 1) = 2 zerouri
(şi decodorul cunoaşte acest fapt), pe ultimele nivele de tranziţie ale diagramei se desenează numai ramurile
corespunzătoare zerourilor ca valori de intrare în codor. Aceasta mai înseamnă că de fapt lungimea secvenţei
de informaţie este egală cu 5 şi a ajuns să fie 7 în urma completării cu 2 zerouri necesare revenirii în starea
„numai zerouri”. Diagrama trellis corespunzătoare acestui exemplu este ilustrată în Figura 5. Secvenţa
recepţionată y este şi ea reprezentată în această figură pe prima linie. De remarcat faptul că pe diagramă s-a
reprezentat cu linie continuă cazul când tranziţia este datorată apariţiei unui bit de „0” la intrarea codorului,
iar cu linie punctată cazul când tranziţia este datorată apariţiei unui bit de „1” la intrarea codorului.
Conform algoritmului Viterbi, metrica stării iniţiale „numai zerouri” V ( S0,0 ) este iniţializată cu
valoarea 0 şi se trece la calculul metricilor ramurilor către următorul pas i = 1 . La acest nivel există numai
câte o ramură intrând în fiecare stare şi prin urmare nu sunt comparaţii de efectuat şi metricile ramurilor (care
sunt distanţele Hamming – practic numărul de biţi prin care diferă cele două grupuri – între valoarea dată de
Pagina 79
Tehnici de Comunicaţii Digitale
grupul de n = 2 biţi de cod recepţionaţi şi valoare indicată de grupul de biţi de pe ramură) se sumează pur şi
simplu cu metrica stării anterioare. La următorul pas, de asemenea nu există mai multe ramuri care să intre în
acelaşi nod şi ale căror metrice să se compare. Însă, la al treilea nivel de tranziţii i = 3 , pentru prima dată în
fiecare nod (stare) intră câte două ramuri. Aceasta însemnă că pentru a stabili ce metrică are starea
respectivă, trebuie calculate metricele corespunzătoare celor două căi parţiale date de ramurile ce intră în
nod, trebuie comparate şi trebuie reţinută valoarea cea mai mică. Calea parţială (sau căile în cazul general)
care ar fi dat valori ale metricii stării respective mai mari decât valoarea minimă, pur şi simplu se şterg din
diagramă. În Figura 5 ele sunt reprezentate printr-o săgeată frântă  . Calea parţială care rămâne se numeşte
supravieţuitor. De asemenea, se poate întâmpla ca să rămână mai multe căi parţiale supravieţuitor, urmând să
se decidă la un pas ulterior care dintre ele va rămâne până la final. În Figura 5 ele sunt marcate prin semnul
„?” pe ultima ramură a căii parţiale.
V(S0,7)
Secvenţa
recepţionată

Starea S0 -> 00

Starea S1 -> 01

Starea S2 -> 10

Starea S3 -> 11

i=0 i=1 i=2 i=3 i=4 i=5 i=6 i=7


Figura 5. Diagrama trellis pentru decodarea prin algoritmul Viterbi a secvenţei ( 01101111010001) .
Procedura se continuă până când se ajunge la starea finală „numai zerouri” a diagramei trellis
i = N + m = 7 , iar apoi se parcurge în sens invers (către i = 0 ) calea rămasă supravieţuitor în final. Această
cale reprezintă calea optimă de decodare, este reprezentată în Figura 5 cu linie îngroşată, iar secvenţa
corespunzătoare acesteia este (1100000 ) (urmărind rapoartele In Out din Figura 3), din care prin
eliminarea celor 2 zerouri adăugate suplimentar la codare rămâne secvenţa de informaţie utilă (11000 ) .
Cuvântul de cod corespunzător căii deduse este (11101011000000 ) , care se află la distanţa Hamming de
valoare 4 (numărul biţilor recepţionaţi eronat) faţă de secvenţa recepţionată. Algoritmul garantează că
aceasta este singura cale prin diagrama trellis care se află la o distanţă Hamming mai mică sau egală cu 4
faţă de secvenţa recepţionată y .
Pentru decodarea cu decizionare soft, procedura este similară, doar că se înlocuieşte distanţa
Hamming cu distanţa Euclidiană.

1.8. Câştigul de codare


Indiferent dacă sunt coduri bloc sau convoluţionale, acestea prezintă avantajul că oferă legăturii de
comunicaţie un câştig de codare. Câştigul de codare descrie cu cât se îmbunătăţesc, în termeni de
probabilitate de eroare, performanţele unui sistem de comunicaţii care foloseşte o tehnică de codare faţă de
acelaşi sistem de comunicaţii fără codare. Câştigul de codare este parametrul care permite de exemplu ca o
transmisie cu o rată a erorilor de 10−2 , în urma decodării să conducă la rate ale erorilor de 10−5 sau chiar
mai bune. Fiecare cod de control a erorilor are un anumit câştig de codare, care depinde de algoritmul de
codare, de metoda de implementare a decodorului şi de probabilitatea de eroare caracteristică canalului de
comunicaţie, Pc . Se poate arăta că o bună aproximare a probabilităţii ca mesajul decodat să fie eronat, PB ,
este dată de relaţia (17), unde t reprezintă numărul de erori corectabile în codul bloc ( n, k ) , iar prin Cin se
înţelege combinări de n luate câte i .
Pagina 80
Modulaţie Codată Trellis

1 n n −i
PB ≅ ∑
n i = t +1
i ⋅ Cin ⋅ Pci (1 − Pc ) (17)

Prin urmare, dacă se cunoaşte probabilitatea de eroare caracteristică canalului de comunicaţie, rata
de eronare a mesajelor decodate (de informaţie utilă) este uşor de determinat. Iar câştigul de codare este o
măsură a valorii raportului semnal – zgomot necesar suplimentar pentru ca probabilitatea de eroare a unui
sistem de comunicaţii ce nu foloseşte o tehnică de codare să aibă aceeaşi valoare ca şi când ar folosi.

1.9. Codurile Turbo


O familie de coduri ceva mai recent descoperite (prezentate în 1993) sunt codurile turbo, care au fost
încorporate în standardele pentru comunicaţii wireless 3G. Acestea combină capabilităţile oferite de codurile
convoluţionale cu teoria estimării de canal şi pot fi privite ca nişte coduri convoluţionale paralele sau
imbricate. Implementate corespunzător, codurile turbo oferă câştiguri de codare net superioare celor ale altor
coduri corectoare de erori şi permit legăturilor de comunicaţii să funcţioneze la capacităţi apropiate de limita
dată de formula lui Shannon. Totuşi, partea dificilă este aceea că aceste coduri performante necesită ca
receptorul să poată determina raportul semnal – zgomot instantaneu al legăturii de comunicaţie.

2. Combinarea tehnicilor de codare şi modulaţie


Se ştie că prin folosirea unei tehnici de codare se obţine o îmbunătăţire a performanţelor sistemului
de comunicaţii, însă cu preţul extinderii benzii necesare transmiterii semnalului. Prin codare creşte distanţa
Euclidiană între formele de undă ce se transmit corespunzător fluxului de simboluri sau biţi, dar în acelaşi
n 1
timp banda semnalului creşte de = ori. Astfel tehnicile de codare sunt foarte potrivite utilizării în
k Rc
aplicaţii care nu sunt constrânse din punctul de vedere al benzii de transmisie. În practică însă există
numeroase cazuri în care banda de transmisie disponibilă este limitată, iar depăşirea valorii limită nu este
permisă. De exemplu, transmisia datelor digitale pe un canal telefonic (prin modem) este constrânsă a se
desfăşura pe un canal de bandă îngustă, iar prin codare aceasta ar fi depăşită, ceea ce este inadmisibil.
Aşadar, utilizarea unei tehnici de codare introduce o redundanţă care duce la creşterea distanţei
Euclidiene dintre simbolurile transmise. Pe de altă parte, dimensiunile semnalului transmis vor spori de la k
dimensiuni/transmisie la n dimensiuni/transmisie, considerând o tehnică de modulaţie BPSK, de exemplu.
Această creştere a dimensionalităţii semnalului transmis conduce la creşterea benzii de transmisie. Dacă
totuşi se doreşte utilizarea unei tehnici de codare şi totodată menţinerea benzii semnalului transmis la
valoarea de dinainte de codare, atunci trebuie schimbată tehnica de modulaţie utilizată. În loc de BPSK, se va
folosi o tehnică de modulaţie pe mai multe nivele ale amplitudinii sau fazei, care este mai eficientă din
punctul de vedere al benzii ocupate de semnalul modulat. Bineînţeles că alegerea unei astfel de tehnici de
modulaţie, în condiţiile în care puterea de emisie nu este şi ea modificată, presupune o constelaţie de semnal
mai aglomerată şi implicit şi scăderea distanţei Euclidiene minime dintre puntele constelaţiei. Este de la sine
înţeles că acest fapt are un efect negativ asupra probabilităţii de eroare a sistemului. Se va vedea însă în
continuare că această reducere a distanţei Euclidiene în constelaţia semnalului modulat poate fi compensată
prin creşterea distanţei Hamming datorată utilizării codării, astfel încât per total performanţele sistemului de
comunicaţie nu numai că nu se înrăutăţesc, ci dimpotrivă, pot cunoaşte chiar o îmbunătăţire.
Se presupune ca exemplu că se foloseşte un cod cu rata de codare 2 3 . Dacă rata sursei de date este
R biţi/s, numărul de simboluri binare pe secundă la ieşirea codorului este egal cu 3R 2 . Dacă se doreşte
utilizarea unei constelaţii de semnal care ocupă după codare o bandă egală cu banda ocupată de semnal fără
codare (adică menţinerea benzii semnalului), trebuie ca fiecărui simbol binar de ieşire să-i corespundă m
dimensiuni, astfel încât numărul de dimensiuni pe secundă rezultat să fie acelaşi cu numărul de dimensiuni
pe secundă al datelor necodate, adică R . Prin urmare, trebuie îndeplinită relaţia (18).
3 2
=
R Rm ⇒ m = dimensiuni / simbol binar (18)
2 3
Aceasta însemnă că trebuie aleasă constelaţia de semnal astfel încât să corespundă cate două
dimensiuni la fiecare trei simboluri binare. Dar trei simboluri binare sunt echivalente cu opt puncte în
constelaţie şi prin urmare scopul urmărit poate fi atins prin alegerea unei constelaţii de semnal cu opt puncte
într-un spaţiu bidimensional. O astfel de constelaţie este cea a modulaţiei 8PSK. Prin urmare, utilizarea unui

Pagina 81
Tehnici de Comunicaţii Digitale
cod cu rata de codare 2 3 în combinaţie cu o schemă de modulaţie 8PSK nu va produce creşterea benzii
semnalului transmis.
În cele ce urmează se doreşte determinarea câştigului de codare obţinut printr-o astfel de schemă de
modulaţie însoţită de codare. Presupunând că puterea de emisie este P , iar rata de bit R = 1 Tb , este evident
că legătura dintre energia de bit şi puterea de emisie, în valori medii, în cazul când nu se foloseşte nici
not
tehnică de codare este dată de relaţia (19), iar distanţa minimă Euclidiană d BPSK ,min = d este, după cum
sugerează şi Figura 6, dată de relaţia (20).
P
Eb = (19)
R
4P
d2 = (20)
R
Q
d

− Eb Eb I

Figura 6. Constelaţia de semnal BPSK


Dacă doi biţi de informaţie sunt mapaţi într-un punct al constelaţiei 8PSK, energia acestui punct este
dată de relaţia (21). De aici se poate deriva expresia distanţei minime Euclidiene între punctele constelaţiei,
care după cum sugerează şi Figura 7 este dată de relaţia (22).
2P
Es = (21)
R
2P 2 π
= 4
2
d min
R 8
(
sin = 2 2 − 2 )P
R
(22)

Figura 7. Constelaţia de semnal pentru un semnal modulat 8PSK.


Evident că prin trecerea de la BPSK la 8PSK distanţa Euclidiană a scăzut, iar cu cât a scăzut ne
indică relaţia (23).
d2 2
= = 2+ 2 = 3.141  5.33dB (23)
d min 2 − 2
2

Această pierdere trebuie compensată prin codare. Este firesc însă ca rata de codare de 2 3 propusă
aici pentru a-şi justifica utilizarea trebuie nu numai să compenseze această pierdere, dar trebuie să ofere chiar
un câştig suplimentar. Poate fi utilizat orice cod bloc sau convoluţional care oferă distanţa minimă necesară
obţinerii câştigului de codare dorit. De exemplu, dacă se doreşte ca prin combinarea tehnicii de modulaţie cu
cea de codare să se obţină un câştig de 3dB , atunci codul trebuie să ofere un câştig de codare de 8.33dB
pentru a compensa şi pierderea celor 5.33dB prin schimbarea tehnicii de codare. Problema este că obţinerea
unui astfel de câştig de codare se poate realiza printr-un cod complex (cu o lungime de constrângere mare) ce
necesită o implementare complicată a codorului, respectiv decodorului. Totuşi, prin interpretarea tehnicilor
de modulaţie şi codare ca o entitate unică, se pot obţine performanţe asemănătoare, dar printr-o schemă de
codare mult mai simplă, după cum se va vedea în secţiunea următoare.
Pagina 82
Modulaţie Codată Trellis

3. Modulaţia codată Trellis (TCM)


Modulaţia codată trellis (trellis-coded modulation – TCM) este o metodă simplă de combinare a
tehnicii de modulaţie cu cea de codare în scopul îmbunătăţirii performanţelor sistemului de comunicaţii.
Această metodă constă în realizarea unor corespondenţe (mapări) prin partiţionarea mulţimii punctelor din
constelaţia de semnal în conformitate cu propunerea lui Ungerboeck (1982). Acest procedeu poate fi aplicat
atât în cazul folosirii codurilor bloc, cât şi a celor convoluţionale, însă din cauza existenţei unui algoritm
simplu, optim, de decodare cu decizionare soft (algoritmul Viterbi), se foloseşte cel mai adesea în conjuncţie
cu un cod convoluţional.

3.1. Principii de partiţionare a mulţimilor


Principalul aspect în partiţionarea unei constelaţii de semnal este acela de a găsi submulţimi ale
constelaţiei care să fie similare, iar în interiorul fiecărei partiţii separaţia punctelor să fie maximă. În acest
scop, se porneşte de la constelaţia originală, care se partiţionează în două submulţimi similare astfel încât în
interiorul fiecărei partiţii distanţa ce separă între ele cele mai apropiate puncte ale constelaţiei să fie maximă.
Apoi se aplică acelaşi principiu fiecăreia dintre aceste partiţii, se reia pentru subpartiţiile rezultate şi
procedeul se continuă. Momentul în care se opreşte partiţionarea depinde de codul utilizat.

0 4 2 6 1 5 3 7
Figura 8. Partiţionarea unei constelaţii 8PSK.
Un exemplu de partiţionare a mulţimii punctelor unei constelaţii este ilustrat în Figura 8. Se porneşte
de la o constelaţie 8PSK având energia de simbol Es . Distanţa minimă între punctele acestei constelaţii este
dată de relaţia (24).
Pagina 83
Tehnici de Comunicaţii Digitale

=
d0 (2 − 2 ) E s (24)
Această constelaţie este partiţionată în două submulţimi similare notate cu B0 şi B1 . Există mai
multe modalităţi în care constelaţia originală 8PSK poate fi partiţionată în două submulţimi, însă B0 şi B1
oferă o distanţă de valoare maximă între punctele cele mai apropiate ale aceleiaşi submulţimi, distanţă dată
de relaţia (25).
d1 = 2 Es (25)
În continuare, B0 şi B1 sunt partiţionate la rândul lor, rezultând submulţimile C0 , C1 , C2 şi C3 .
Astfel, distanţă între punctele constelaţiei a crescut la valoarea dată de relaţia (26).
d 2 = 2 Es (26)
Se mai poate face încă un pas, obţinându-se opt partiţii, fiecare conţinând câte un punct al
constelaţiei. Submulţimile corespunzătoare sunt notate cu D0 , ..., D7 .
Un alt exemplu de partiţionare a mulţimii de puncte ale constelaţiei este cel din Figura 9 pentru
cazul unei modulaţii QAM.

Figura 9. Partiţionarea mulţimii de puncte ale unei constelaţii 16QAM.

3.2. Modulaţie codată


Diagrama bloc a schemei de modulaţie codată este cea din Figura 10. Un bloc având k biţi de
intrare este divizat în două sub-blocuri având k1 şi, respectiv, k2 intrări. Primii k1 biţi se aplică la intrarea
unui codor binar ( n1 , k1 ) .

Selectare
Codor submulţime
{1, 2,..., 2 }
binar n1
Punct din
constelaţia de
semnal
Selectare
Biţi punct din
necodaţi submulţime
{1, 2,..., 2 }
k2

Figura 10. Diagrama bloc a unui sistem de modulaţie combinată cu codare.


Pagina 84
Modulaţie Codată Trellis

Ieşirea codorului are n1 biţi. Aceşti biţi sunt utilizaţi pentru a alege una dintre cele 2n1 submulţimi.
Aceasta înseamnă că, constelaţia a fost divizată în 2n1 submulţimi. După alegerea sub-constelaţiei, cei k2
biţi rămaşi sunt folosiţi pentru alegerea unuia dintre punctele sub-constelaţiei alese. Aceasta înseamnă că
fiecare sub-constelaţiei are 2k2 puncte. Rezultă astfel un echilibru între dimensiunea sub-constelaţiilor şi
numărul de paşi de partiţionare efectuaţi.
Ungerboeck a arătat că prin alegerea n= 1 k1 + 1 şi k 2 = 1 şi folosirea unui cod convoluţional simplu
se poate obţine o schemă de modulaţie codată care să asigure un câştig total între 3 şi 6dB . O astfel de
schemă este cea ilustrată în Figura 11, în care k1 = 1 , n1 = 2 şi k2 = 1 . Constelaţia conţine 2n1 + k2 = 8 puncte,
care este împărţită în 2n1 = 4 submulţimi, fiecare conţinând 2k2 = 2 puncte. Constelaţia aleasă aici este
8PSK şi este partiţionată ca în Figura 8. Ca şi cod convoluţional, poate fi ales în acest exemplu orice cod cu
rata de codare k1 n1 = 1 2 . Lungimea de constrângere unui cod este un parametru de proiectare şi poate ales
pentru a obţine un anumit câştig de codare. Desigur că lungimi de constrângere mai mari oferă câştiguri de
codare mai ridicate, însă cu preţul unei complexităţi sporite a codorului şi a decodorului. În exemplul de faţă
se alege o lungime de constrângere egală cu 3 . Diagrama trellis (cu un singur nivel) a acestui cod este
reprezentată în Figura 11, alături de schema codorului, care este echivalentă cu cea din Figura 2, caracterizat
de diagrama de stări din Figura 3.

1
4 2

7 3
Intrare
(câte 1 bit)
6 0
5

Biţi necodaţi (câte 1 bit)

Figura 11. Schemă de codare TCM.


Diagrama trellis din Figura 11 este diagrama unui cod convoluţional obişnuit (a se revedea Figura
4), principala diferenţă fiind aceea că în cazul de faţă există câte două căi între stările de pe cele două nivele.
Aceasta se datorează existenţei în plus a unui număr de k2 = 1 bit, care diferenţiază câte un punct din fiecare
partiţie. Practic, cele două căi paralele care fac conexiunea între două stări corespund unei partiţii, iar fiecare
dintre cele două căi corespunde câte unui punct din partiţie. Rămâne de răspuns la întrebarea: care este
asocierea optimă dintre punctele constelaţiei şi ramurile diagramei trellis? În urma a numeroase simulări pe
calculator, precum şi din motive euristice, a fost formulată regula de mai jos.
. Atunci când apar tranziţii paralele, acestea corespund punctelor de semnal dintr-o singură partiţie
de pe ultimul nivel de partiţionare (rezultând astfel valori cât mai mari pentru distanţa minimă Euclidiană). În
exemplul considerat în Figura 8, submulţimile C0 = {D0 , D4 } , C2 = {D2 , D6 } , C1 = {D1 , D5 } şi
C3 = {D3 , D7 } corespund unor tranziţii paralele. Aceste puncte sunt separate printr-o distanţă Euclidiană de
valoare maximă, adică d 2 = 2 Es .
. Tranziţiile care pornesc din, sau intră în, oricare stare de pe ultimul nivel de partiţionare sunt
asociate unor partiţii care au o singură partiţie părinte în nivelul anterior de partiţionare. În exemplul
considerat, astfel de partiţii sunt {C0 , C2 } şi {C1 , C3 } , având părinţii corespunzători B0 şi respectiv, B1 . Şi
în acest caz distanţa minimă Euclidiană are valoare maxim posibilă, adică d1 = 2 Es .
Pagina 85
Tehnici de Comunicaţii Digitale
. Punctele constelaţiei de semnal trebuie să apară la fel de frecvent în toate partiţiile unui nivel de
partiţionare.
Pentru a putea observa comportamentul unei scheme de modulaţie cu codare, trebuie determinată
distanţa Euclidiană minimă între două căi ce unesc aceleaşi două noduri. Această distanţă, cunoscută şi ca
distanţa Euclidiană liberă, notată cu D fed , este o caracteristică importantă a unei scheme de modulaţie cu
codare trellis. O candidată pentru numele de D fed este distanţa Euclidiană între două tranziţii paralele, care
este d 2 = 2 Es . În Figura 12 este ilustrată diagrama trellis pentru o altă schemă de codare decât cea din
Figura 11. De această dată, ieşirea codorului este reprezentată pe liniile de tranziţie nu în format binar ci în
format zecimal, valorile respective fiind tocmai punctele din constelaţia de semnal, conform asocierii din
Tabel 1. În Figura 12 se mai propune o cale candidată pentru titlul de distanţă Euclidiană liberă. Astfel,
prima este distanţa dintre cele două tranziţii paralele (cu ieşirile zecimale 0 , respectiv 4 ) (pe un singur nivel
de tranziţie) ce leagă primele două noduri corespunzătoare aceleiaşi stări 00 , iar a doua candidată este pe trei
nivele de tranziţie din partea superioară a figurii (ce trece prin ieşirile 0 − 4 − 0 şi pleacă din starea 00 şi
ajunge tot în ea) şi calea din partea inferioară a figurii (ce trece prin ieşirile 2 − 1 − 2 şi pleacă la fel din starea
00 şi ajunge tot în ea). Oricum, distanţa Euclidiană corespunzătoare celei de-a doua candidate este, după
cum se poate vedea în Figura 11c sau în Figura 8, d = d 02 + 2d12 = 4.58 ⋅ Es , adică mai mare decât
distanţa dintre cele două tranziţii paralele. Se poate verifica faptul că pentru acest cod distanţa Euclidiană
liberă este D fed= d=2 2 Es . Pentru a compara acest rezultat cu cazul când nu s-ar utiliza nici o schemă de
codare, trebuie avută în vedere distanţa Euclidiană liberă în cazul neutilizării codării (27) şi distanţa
Euclidiană liberă în cazul utilizării codării (28). Prin urmare, câştigul de codare este cel dat de relaţia (29).
P
2
= 4=
d necodat Eb 4 (27)
R
2
= 4=
d codat Es 8 Eb (28)
2
d codat
=
Gcodare = 2
2  3dB (29)
d necodat

Starea 00

Starea 10

Starea 01

Starea 11

Figura 12. Cale cu distanţă Euclidiană minimă.


Punct constelaţie  0 1 2 3 4 5 6 7
Bit c1 0 1 0 1 0 1 0 1
Bit c2 0 0 1 1 0 0 1 1
Bit c3 0 0 0 0 1 1 1 1
Tabel 1. Mapare zecimală a punctelor constelaţiei de semnal 8PSK
Astfel, această schemă simplă de codare este capabilă să ofere un câştig de codare de 3dB fără a fi
necesară creşterea benzii ocupate. Preţul plătit pentru această îmbunătăţire a performanţelor este
complexitatea sporită a circuitelor de codare şi decodare.
În locul unei diagrame trellis cu 8 stări se poate folosi o diagramă trellis cu mai multe stări,
conducând la un câştig de codare mai ridicat. Ungerboeck a reuşit să demonstreze cu ajutorul unor simulări
Pagina 86
Modulaţie Codată Trellis
pe calculator repetate, că prin utilizarea unor diagrame trellis cu 8, 16, 32, 64, 128 sau 256 de stări se pot
obţine câştiguri de codare în domeniul 3.6 − 5.75dB . O diagramă trellis cu un număr de 8 stări este
reprezentată în Figura 13.

Starea 000

Starea 010

Starea 100

Starea 110

Starea 001

Starea 011

Starea 101

Starea 111

Figura 13. Codor Ungerboeck cu 8 stări.

3.3. Decodarea codurilor TCM


Decodarea unui semnal modulat cu codare trellis se realizează în două etape. Deoarece fiecare
tranziţie din diagrama trellis corespunde unei partiţii a mulţimii de puncte ale semnalului şi fiecare partiţie
corespunde în general unui număr de puncte din constelaţia de semnal, primul pas este acela de a găsi
punctul care este cel mai probabil să aparţină fiecărei partiţii. Acesta se realizează prin căutarea punctului din
fiecare partiţie care este cel mai apropiat în distanţă Euclidiană de punctul recepţionat. Acest prim pas în
decodarea unui semnal modulat cu codare trellis se numeşte decodarea submulţimii. După acest pas, în
diagrama trellis fiecărei tranziţii îi corespunde un singur punct (cel de maximă plauzibilitate) şi o singură
distanţă Euclidiană (distanţa între punctul recepţionat şi acel punct de maximă plauzibilitate). În acest fel s-a
obţinut o diagramă trellis clasică cu câte o singură tranziţie între două noduri (stări) de pe două nivele
consecutive ale diagramei. Al doilea pas în procedura de decodare este de a utiliza această distanţă
Euclidiană pentru a găsi calea pin diagrama trellis, cale a cărei distanţă Euclidiană totală faţă de secvenţa
recepţionată este de valoare minimă. Acest lucru este realizat cu ajutorul algoritmului Viterbi.
Tehnica de modulaţie cu codare trellis este astăzi larg utilizată în modemurile de viteză mare de la
capătul liniilor telefonice. Fără codare, aceste modemuri ating rate de date de până la 14400biţi s , cu o
constelaţie de semnal 64QAM. Datorită câştigului de codare introdus de modulaţia cu codare trellis această
viteză de transmisie a putut să fie mai mult decât dublată.

Pagina 87
Tehnici de Comunicaţii Digitale

4. Cuprins
1. ZOOM-OUT ASUPRA CODĂRII DE CANAL .................................................................................................................... 73
1.1. Premise ............................................................................................................................................................. 73
1.2. Codurile bloc .................................................................................................................................................... 73
1.3. Proprietăţi ale codurilor bloc ........................................................................................................................... 74
1.4. Exemple de coduri bloc ..................................................................................................................................... 74
1.5. Codurile convoluţionale .................................................................................................................................... 75
1.6. Exemplu de cod convoluţional .......................................................................................................................... 76
1.7. Algoritmul Viterbi pentru decodarea codurilor convoluţionale........................................................................ 78
1.8. Câştigul de codare ............................................................................................................................................ 80
1.9. Codurile Turbo.................................................................................................................................................. 81
2. COMBINAREA TEHNICILOR DE CODARE ŞI MODULAŢIE .............................................................................................. 81
3. MODULAŢIA CODATĂ TRELLIS (TCM) ...................................................................................................................... 83
3.1. Principii de partiţionare a mulţimilor ............................................................................................................... 83
3.2. Modulaţie codată .............................................................................................................................................. 84
3.3. Decodarea codurilor TCM................................................................................................................................ 87
4. CUPRINS .................................................................................................................................................................... 88

Pagina 88

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