Sunteți pe pagina 1din 9

Canale discrete de transmisiune cu constrângeri

şi coduri de translaŃie a datelor

1. Obiectivul lucrării

Această lucrare îşi propune să prezinte caracterizarea canalelor discrete cu constrângeri


prin matricea tranziŃiilor de stare şi metoda de calcul a capacităŃii acestui tip de canale. De
asemenea, se studiază o modalitate de construcŃie a codurilor bloc de translaŃie a datelor pentru
acest tip de canale, ilustrându-se practic un cod RLL de lungime fixă.

2. Introducere teoretică

2.1. Canalul binar cu constrângeri

Canalul binar cu constrângeri este sistemul de comunicaŃie care conŃine în alfabetul de


intrare doar două litere, "0" şi "1", şi care nu permite ca simbolurile de intrare să poată fi
transmise în ordine arbitrară.
Un caz tipic este dat de canalul binar cu constrângeri RLL (Run Lenth Limited). Un
exemplu de constrângere RLL constă în a nu permite existenŃa şirurilor de simboluri formate
numai din "0" sau "1" de lungime mai mare decât o valoare maximă k. Această restricŃie
asigură ca tranziŃiile între şirurile "0" şi "1" să nu fie prea rare, lucru important pentru păstrarea
informaŃiei de sincronizare a emiŃătorului cu receptorul. Din aceste tranziŃii receptorul are
posibilitatea extragerii informaŃiei de sincronizare pentru semnalul recepŃionat din canalul
discret, reglându-şi baza de timp locală după tactul emiŃătorului.
De asemenea, o altă constrângere RLL limitează numărul de simboluri identice
succesive la o valoare minimă d. Această restricŃie asigură existenŃa unor tranziŃii nu prea dese
ale semnalului de pe canal, ceea ce înseamnă reducerea benzii de frecvenŃă ocupate de semnal
şi posibilitatea citirii lui cu ajutorul unor interferenŃe între simboluri având o rezoluŃie nu foarte
pretenŃioasă. Canalul discret care respectă ambele restricŃii de acest tip se notează prin RLL
(d,k).
Pentru canalul binar cu constrângeri se poate defini un set al stărilor permise:
S = {S0 , S1 ,..., S N −1 } ,
fiecare stare corespunzând unuia sau mai multor moduri posibile prin care poate trece secvenŃa
anterioară de intrare. Din fiecare stare pot fi transmise doar simbolurile din alfabetul de intrare
{0,1}. La următorul impuls de ceas al canalului va fi transmis unul din simbolurile permise, în
acel moment starea schimbându-se, starea nouă depinzând de starea veche şi de simbolul
transmis.
Se poate reprezenta grafic succesiunea stărilor canalului folosind două tipuri de
diagrame:
• diagrame de stare: acestea descriu tranziŃiile dintr-o stare în alta cu ajutorul arcelor
de cerc pe care se va înscrie simbolul transmis care face trecerea între stări;
• diagrame trellis: acestea descriu tranziŃiile dintr-o stare în alta desfăşurate pe axa
timpului, astfel încât să se poată observa schimbarea unei stări în oricare alta pe
parcursul a mai multor impulsuri de ceas.

31
Pentru exemplificare s-a ales un canal binar cu constrângerea de tipul următor: se interzice
transmiterea unei secvenŃe ce conŃine un şir mai mare de trei simboluri identice (k = 3).
Deci setul stărilor permise va fi:
S0 = 111 S3 = 0
S1 = 11 S4 = 00
S2 = 1 S5 = 000
Diagrama de stare corespunzătoare este cea din figura 1:

Fig. 1. Diagrama de stare a canalului binar cu constrângerile RLL (0,3).


Fiecare stare exprimă cel mai recent şir de simboluri identice, iar tranziŃiile se fac
respectând constrângerea impusă. Spre exemplificare, se presupune canalul în starea S4. De
aici, prin emiterea unui "0", canalul trece în starea S5, deci există trei simboluri de zero emise
consecutiv. Din starea S5 nu se poate emite decât simbolul "1". Emiterea unui "0" din starea S5
nu este posibilă, acest lucru ducând sistemul într-o stare nedefinită.
Diagrama trellis corespunzătoare are forma din figura 2:

Fig. 2. Diagrama trellis a canalului binar cu constrângerile RLL (0,3).


Se observă din această diagramă că tranziŃiile dintr-o strare în oricare altă stare sunt
posibile după un anumit număr de impulsuri de ceas. De exemplu, din starea S0 se ajunge în
starea S2 prin trecerea sistemului prin starea S3 intermediară, după un impuls de ceas.

2.2. Matricea tranziŃiilor de stare

Canalul discret cu constrângeri poate fi descris şi cu ajutorul matricii tranziŃiilor de


stare, notată cu B, la care elementele bij ale matricii reprezintă numărul de arce care trec din
starea Si în starea Sj de pe diagrama de stare.
În exemplul anterior, matricea tranziŃiilor de stare este de tipul:

32
 S0 S0 S 0 S1 S0 S2 S0 S 3 S 0 S4 S 0 S5 
S S S1S1 S1S 2 S1S 3 S1S 4 S1S5 
 1 0 
S S S 2 S1 S2 S2 S2 S3 S2 S4 S 2 S5  .
B= 2 0 
 S 3 S0 S3 S1 S3 S2 S3 S3 S3 S 4 S3 S5 
 S4 S0 S 4 S1 S4 S2 S3 S3 S4 S4 S 4 S5 
 
 S5 S0 S5 S1 S5 S2 S3 S3 S5 S 4 S5 S5 

Se obŃine:
0 0 0 1 0 0
1 0 0 1 0 0
 
0 1 0 1 0 0
B= .
0 0 1 0 1 0
0 0 1 0 0 1
 
0 0 1 0 0 0
Se poate extinde descrierea pentru un număr mai mare de paşi. Astfel, matricea
tranziŃiilor de stare pentru doi paşi se notează B2 şi are elementele b2ij date de numărul arcelor
distincte care fac trecerea de la starea Si la starea Sj şi care au o lungime de doi paşi (acoperă o
perioadă de timp de două impulsuri de ceas).

2.3. Capacitatea canalului

Pentru canalul cu constrângeri se defineşte capacitatea astfel:


 M (T ) 
C = lim log 2 [bit/secundă],
T →∞
 T 

unde M(T) reprezintă numărul total de secvenŃe permise pe care îl poate forma alfabetul
canalului în timpul T.
Această expresie este valabilă în cazul în care literele alfabetului au durate diferite. În
cazul simbolurilor de durate egale, capacitatea canalului binar cu constrângeri se poate exprima
şi în biŃi per simbol:
 M ( n) 
C = lim log 2 [bit/simbol],
T →∞
 n 

unde M(n) reprezintă numărul secvenŃelor de aceeaşi lungime n.


În acest caz se poate determina valoarea capacităŃii cu ajutorul matricii tranziŃiilor de
stare B, din relaŃia:
C = log2λ [bit/simbol],
unde λ este cea mai mare valoare proprie pozitivă a matricii B (rădăcina maximă a polinomului
caracteristic corespunzător matricii B). Această metodă de calcul a capacităŃii canalului se
aplică în cazul simbolurilor de aceeaşi durat ă.
Considerând exemplul de canal binar cu constrângeri RLL (0,3), se poate scrie ecuaŃia:
det[B − lI 6 ] = 0 .
Va rezulta deci:

33
−l 0 0 1 0 0
1 −l 0 1 0 0
0 1 −l 1 0 0
det =0.
0 0 1 −l 1 0
0 0 0 0 −l 1
0 0 1 0 0 −l
Aplicând câteva transformări elementare asupra determinantului, se obŃine polinomul
caracteristic:
l6 - l4 - 2l3 - 3l2 - 2l - l = 0 .
Rădăcina cea mai mare a polinomului este λ = lmax=1,84. Acestei valori îi corespunde
capacitatea canalului:
C = log2λ = 0,88 biŃi/simbol.

2.4. Coduri de translaŃie

Codul de translaŃie transformă secvenŃa de date de la intrarea canalului discret într-o


nouă secvenŃă care satisface constrângerile impuse de canal. Aceste coduri fac parte din
categoria codurilor de adaptare la canal.
Considerând o secvenŃă binară de date {cn }, finită sau infinită, aceasta poate fi
descompusă într-un mod unic într-o înlănŃuire de cuvinte, fiecare cuvânt terminându-se cu un
singur "1" şi începând cu un şir de zerouri sau cu lipsa zerourilor.
De exemplu, fie secvenŃa de date: 01010001011101...
Aceasta se poate desface în cuvinte: 01,01,0001,01,1,1,01,...
Un bloc (n,r) pentru translaŃia de date const ă în 2r secvenŃe de simboluri de canal,
fiecare secvenŃă având lungimea de bloc egală cu n, unde
r = numărul biŃilor de sursă (lungimea cuvântului de informaŃie),
n = numărul biŃilor de canal (lungimea cuvântului de cod).
Codul are rata R = r/n biŃi per simbol de canal.
SecvenŃele numite "cuvinte de cod" trebuie să satisfacă constrângerile canalului la
înşiruirea perechilor de simboluri. Deoarece cuvintele de cod vor fi concatenate, perechile
alăturate trebuie să satisfacă şi ele aceste constrângeri, deci va trebui să se elimine din lista
blocurilor câteva intrări, astfel ca, după concatenare, constrângerile să rămână respectate.

2.4.1. ConstrucŃia unui cod bloc de translaŃie

Metoda 1
Pentru exemplificare se consideră un cod bloc (3,2) la care constrângerea impusă este
aceea că nu sunt admise mai mult de două zerouri succesive.
Cuvintele de cod cu lungime de 3 biŃi care respectă această constrângere sunt:
1. 010
2. 011
3. 101
4. 110
5. 111

34
Acestea pot fi concatenate în orice ordine fără a distruge restricŃia impusă. Acum,
pentru a forma codul bloc (3,2) se aleg 22 = 4 cuvinte de cod din acest set şi se fixează un
tabel de corespondenŃă:

Cuvinte de informaŃie Cuvinte de cod


00 010
01 011
10 110
11 111

În general, codorul constă dintr-un tabel de 2r cuvinte de n biŃi, iar decodorul dintr-un
tabel de 2n cuvinte de r biŃi din care doar 2r cuvinte sunt folosite.

Metoda 2
O metodă matematică de construcŃie a codului bloc constă în formarea cuvintelor de
cod din două părŃi:
- un sufix,
- un prefix.
În cazul în care n este par, sufixul şi prefixul vor avea lungimi egale, şi anume n/2.
Dacă lungimea blocului este impară (n impar), atunci sufixul şi prefixul vor avea
lungimile după cum urmează:
- pentru prefix se alocă lungimea (n-1)/2,
- pentru sufix se alocă lungimea (n+1)/2.
Metoda se aplică pentru construcŃia unui cod bloc (5,3) pentru un canal cu constrângeri
care nu permit lungimi mai mari de trei simboluri identice succesive.
Metoda va decurge astfel: pentru început se vor alege acele prefixe de lungime doi biŃi
care conduc canalul în stări independente de starea iniŃială în care s-a găsit anterior canalul.
Prefixe: 00, 01, 10, 11.

Stări canal: S0 = 000; S1 = 00; S3 = 0; S3 = 1; S4 = 11; S5 = 111.


Exemplu.
Se consideră canalul în starea S0 şi la intrarea în canal va fi secvenŃa 00. Canalul va fi
blocat încă de la primirea primului bit, el trebuind să treacă într-o stare nepermisă cu patru
zerouri succesive.
Canalul se află în starea iniŃială. Primeşte la intrare aceeaşi secvenŃă prefix 00 luată şi
anterior în discuŃie; după primul simbol intrat în canal, acesta va trece în starea S2 şi după cel
de-al doilea simbol în starea S1.
RaŃionând în acelaşi mod se poate construi un tabel în care se va reprezenta starea
finală pe care o va atinge canalul pornind din fiecare stare iniŃială, pentru fiecare secvenŃă de
doi biŃi prezentă la intrarea în canal (vezi Tabelul 1).

Zona centrală a tabloului arată că doar prefixele 01 şi 10 conduc canalul către o stare
care este independentă de starea iniŃială.
Pentru fiecare dintre aceste prefixe (01 şi 10) se tabelează sufixele permise care
păstrează restricŃia canalului în cazul concatenării lor cu prefixele corespunzătoare.

35
S0 S1 S2 S3 S4 S5

000 00 0 1 11 111

00 - - 000 00 00 00

01 - 1 1 1 1 1

10 0 0 0 0 0 -

11 11 11 11 111 - -

Tab. 1. SecvenŃele permise la trecerea canalului din starea iniŃială în starea finală.
:
Prefixe 01 10
Sufixe 1. 001 001
Sufixe 2. 010 010
Sufixe 3. 011 011
Sufixe 4. 100 100
Sufixe 5. 101 101
Sufixe 6. 110 110
Pentru a obŃine codul (5,3) se aleg oricare opt din aceste cuvinte de cod şi se fixează
orice corespondenŃă prin intermediul unui nou tabel între cuvintele de cod de 5 biŃi şi cele de
informaŃie de 3 biŃi.
Exemplu:
INFO COD
000 01001
001 01010
010 01011
011 01100
100 10001
101 10010
110 10011
111 10100

2.4.1. ConstrucŃia unui cod bloc de translaŃie. Codul Franaszek

Tot în aceast ă lucrare este descris şi codul RLL (2,7) de lungime variabilă (cod prefix
de translaŃie) şi de rată ½ .
Lungimile datelor variază corespunzător pentru a păstra rata bit per simbol constantă.
Un exemplu de cod prefix pentru translaŃia de date este codul Franaszek din tabel,
proiectat pentru canalul binar cu constrângeri care admite succesiunea a cel puŃin două zerouri
şi a maximum şapte zerouri. Deci, un cod RLL (2,7).
Cuvinte de sursă Cuvinte de cod
11 0100
10 1000
000 000100
010 001000

36
011 100100
0010 00001000
0011 00100100
Canalul cu constrângerea RLL (2,7) are capacitatea C = 0,517 biŃi/simbol, iar codul
Franasyek corespunzător are rata R = 0,5 biŃi per simbol. Întotdeauna R < C.
Capacitatea canalului se calculează astfel:
a) Se construieşte matricea tranziŃiilor de stare, corespunzătoare diagramei de stare
asociate. Se definesc stările:
S0 = 1 S4 = 0000
S1 = 0 S5 = 00000
S2 = 00 S6 = 000000
S3 = 000 S7 = 0000000.
Diagrama de stare va fi:

0 0 0 0 0 0 0
S0 S1 S2 S3 S4 S5 S6 S7

1 1 1 1 1 1

Fig. 2. Diagrama de stare a canalului cu constrângerea RLL (2,7).


Matricea tranziŃiilor de stare va fi:
0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0
 
1 0 0 1 0 0 0 0
 
1 0 0 0 1 0 0 0 .
B=
1 0 0 0 0 1 0 0
 
1 0 0 0 0 0 1 0
1 0 0 0 0 0 0 1
 
1 0 0 0 0 0 0 0
Se determină polinomul caracteristic al matricii tranziŃiilor de stare conform relaŃiei:
det[B - λ I] = (-1)nP(λ),
unde: n = ordinul matricei (aici 8),
P(λ) = λn - Cn-1λn-1 - Cn-2λn-2 - ... - C1λ - C0.

37
MulŃimea: ÎCn-1, Cn-2, ..., C1, C0} reprezintă nişte coeficienŃi care după cum se
observă sunt chiar elementele coloanei 0 a matricei tranziŃiilor de stare.
Această relaŃie este valabilă doar pentru matrice de forma normală Frohenius, caz
întâlnit la toate matricele de stare B care intră în discuŃie în cazul canalelor discrete cu
constrângeri (d,k). Se obŃine:
P(λ) = (-1)8(1xλ8 – 0xλ7 – 0xλ6 – 1xλ5 – 1xλ4 – 1xλ3 – 1xλ2 – 1xλ - 1x1).
Deci:
det[B - λI] = λ8 - λ5 - λ4 - λ3 - λ2 - λ - 1.
Cea mai mare rădăcină a ecuaŃiei este: λmax = 1,431. Capacitatea canalului va fi:

C = log2λmax = 0,517 biŃi/simbol.


Se observă că rata acestui cod este foarte apropiată de capacitatea canalului, ceea ce
arată că este un cod complex.
Cuvintele de cod Franaszek satisfac condiŃia de prefix, deci pot fi decodate unic.

3. Descrierea evoluŃiei programului

După lansarea în execuŃie a programului "capa.exe" urmează a fi selectat tipul codului


dorit. Există două posibilităŃi:
• cod de lungime fixă,
• cod de lungime variabilă.

Codul bloc RLL (de lungime fixă)


Vor fi introduse valorile constrângerilor canalului (parametrii RLL: d = numărul minim
de simboluri identice succesive admise de canal, k = numărul maxim de simboluri identice
succesive admise de canal).
Programul va afişa stările permise de canal şi matricea corespunzătoare a tranziŃiilor de
stare B.
Prin apăsarea oricărei taste se trece la afişarea coeficienŃilor polinomului caracteristic
asociat matricii B, în ordinea descrescătoare a gradului, precum şi a polinomului caracteristic .
Din nou, apăsând oricare tastă, se trece la determinarea valorilor proprii ale matricii B,
prin căutarea rădăcinilor polinomului caracteristic. Metoda utilizată este de tip iterativ,
utilizând o contracŃie, conform teoremei de punct fix.
Vor fi afişate valoarea rădăcinii găsite şi capacitatea canalului binar cu constrângerile
date, calculată pe baza rădăcinii determinate anterior.
Va fi afişat un tabel în care vor fi reprezentate starea finală pe care o atinge canalul
pornind din fiecare stare iniŃială, pentru fiecare secvenŃă de biŃi prezentă la intrare. Din tabel se
identifică zona care conduce canalul către o stare independentă de starea iniŃială.
În continuare se vor afişa prefixele identificate din tabel, precum şi sufixele permise care
păstrează restricŃia canalului în cazul concatenării lor cu prefixele corespunzătoare.
În final se afişează codul (n,r) sub forma unui tabel cuvinte sursă – cuvinte canal şi se
compară capacitatea canalului cu rata codului.

Codul prefix RLL (de lungime variabilă) - codul Franaszek


Această parte de program afişează pe rând prin apăsarea oricărei taste:
• tabelul de cod al cuvintelor sursă şi canal

38
• stările canalului
• diagrama de stare
• matricea tranziŃiilor de stare
• polinomul caracteristic
• capacitatea canalului

4. Desfăşurarea lucrării

4.1. Se studiază introducerea teoretică.


4.2. Se parcurge opŃiunea 1 (cod RLL de lungime fixă).
4.3. Se introduc constrângerile d şi k şi se notează matricea B obŃinută şi polinomul
caracteristic. Exemplu:
• d = 2 şi k = 10, în cazul canalului reprezentat de mediul de înregistrare-redare de la
Compact Disc;
• d = 2 şi k = 7 sau d = 1 şi k = 8, în cazul canalelor reprezentate de mediul de
înregistrare-redare pe bandă magnetică.
4.4. Se notează valoarea rădăcinii maxime a ecuaŃiei şi a capacit ăŃii canalului.
4.5. Se vizualizează şi se reŃine codul obŃinut, notându-se rata acestuia.
4.6. Se reia rularea programului pentru alte seturi de date.
4.7. Se parcurge opŃiunea 2 a programului de simulare (cod Franaszek).
4.8. Se notează valorile parametrilor canalului RLL (2,7) şi ai codului Franaszek.

5. Întrebări

5.1. Care este explicaŃia existenŃei limitării inferioare şi superioare a numărului de


simboluri identice succesive admise pe un canal discret?
5.2. ConstruiŃi diagramele de stare şi trellis ale canalelor pentru seturile de date utilizate
în acest program.
5.3. InterpretaŃi valorile din matricile tranziŃiilor de stare obŃinute prin rularea
programului.
5.4. De ce nu se folosesc în practică formulele de calcul pentru capacitatea canalelor
discrete cu constrângeri rezultate din definiŃie?
5.5. DescrieŃi metoda de calcul a capacităŃii canalelor discrete cu constrângeri în cazul
în care simbolurile care parcurg canalul nu au aceeaşi durată.
5.6. Care este valoarea maximă pe care o poate atinge capacitatea canalelor binare cu
constrângeri calculată în program?
5.7. Se pot construi coduri bloc de translaŃie care să permită utilizarea întregii capacităŃi
a canalului?
5.8. De ce la construcŃia codului RLL de lungime fixă prin metoda 2 se caută acele
combinaŃii ale simbolurilor de la intrare care duc canalul într-o stare independentă de starea
iniŃială?
5.9. Metoda 1 de la construcŃia codului RLL de lungime fixă este eficientă pentru valori
mari ale parametrilor codului?
5.10. DaŃi exemple de aplicaŃii ale codurilor RLL de lungime fixă şi ale codului
Franaszek.

39

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