Sunteți pe pagina 1din 52

Capitolul 4.

Adaptarea fluxului de date la canalul de comunicaŃie

4. ADAPTAREA FLUXULUI DE DATE LA CANALUL DE COMUNICAłIE

Transmiterea informaŃiilor prin sistemele de comunicaŃii de date este limitată


ca performanŃe (volum, viteză) de mai mulŃi factori, printre care puterea semnalului
emis, nivelul de zgomot sau lăŃimea de bandă disponibilă. În acest context se pune
problema de a găsi metode care să permită vehicularea unui conŃinut informaŃional
util cât mai apropiat de capacitatea maximă de transfer a unui canal de comunicaŃie.
În scopul atingerii acestui deziderat secvenŃa binară de date ce urmează a fi
transmisă este transpusă în forme de undă adecvate pentru un anumit canal de
comunicaŃie. Conversiile avute în vedere se pot aplica atât la nivelul succesiunii de
biŃi de la intrarea canalului (codare, compresie), cât şi la nivelul asocierii biŃilor cu
forme de undă pentru transport (modulaŃie, codare).
Având în vedere natura mediilor de comunicaŃie utilizate rezultă că
întotdeauna biŃii trebuie asociaŃi cu parametri ai unor semnale acceptate de canalul
de comunicaŃie. În plus, forma de undă purtătoare de informaŃie trebuie adaptată la
canalul de comunicaŃie disponibil.
Asocierea directă între valori binare şi nivele de tensiune generează o primă
posibilitate de transport a informaŃiei numită comunicaŃie în banda de bază. În
general, atunci când spectrul semnalului transmis nu suferă modificări vom vorbi
despre transmisiuni în banda de bază. Când forma de undă care codifică fluxul de
biŃi este înlocuită cu o alta, determinând translatarea spectrului de frecvenŃe iniŃial
ocupat de semnal, vorbim de modulaŃia semnalului. Procedura inversă, necesară la
recepŃie, se numeşte demodulare. În transmisiunile de date semnalul modulator este
un semnal digital, iar modulaŃia devine una particulară (FSK, ASK, PSK), diferită de
cea analogică (MF, MA, MP) prin faptul că semnalul ce trebuie transportat poate
avea doar valori discrete.

169
TRANSMITEREA INFORMAłIEI ÎN REłELELE DE CALCULATOARE

EmiŃător

Modulator
S FTJ FTB

Generator
Date
P Purtătoare
Zgomot
N
Canal de comunicaŃie

Demodulator
FTB A FTJ Decizie Date

Receptor

Figura 4.1 Schema bloc a unui sistem de transmisiuni de date cu


modulaŃie

Schema bloc a unui sistem de transmisiuni de date cu modulaŃie este


prezentată în figura 4.1.
Filtrul trece-bandă de la emisie are rolul de a elimina componentele spectrale
ale semnalului situate în afara benzii de trecere a canalului de transmisie. Din acest
motiv, forma de undă y(t) generată de blocul de modulare suferă o limitare a benzii,
ceea ce determină apariŃia de distorsiuni de atenuare şi fază.
Filtrul trece-bandă de la recepŃie maximizează raportul semnal-zgomot,
eliminând zgomotele şi interferenŃele din afara benzii de trecere. Forma caracteristicii
filtrului poate compensa parŃial distorsiunile de atenuare.
Demodulatorul realizează conversia semnalului modulat în semnal în bandă
de bază, funcŃia sa depinzând de modulaŃia utilizată.
Filtrul trece-jos de după detecŃie are rolul de a separa semnalul în bandă de
bază.
Circuitul de sondare şi decizie permite recuperarea secvenŃei de date din
semnalul obŃinut după filtrare.

La nivelul comunicaŃiilor de date creşterea eficienŃei unei transmisii se poate


realiza uneori prin înlocuirea secvenŃei de biŃi ce trebuie transportată, cu o altă
secvenŃă care vehiculează însă aceiaşi informaŃie, dar care oferă diverse avantaje:
imunitate crescută la perturbaŃii, timp de transmisie mai redus, utilizare mai eficientă
a capacităŃii de transport, facilităŃi de extragere a tactului de transmisie, eliminarea
componentei de curent continuu etc. O astfel de procedură se numeşte codare
(respectiv decodare la recepŃie).
Atât modulaŃia, cât şi codarea, sunt metode de adaptare a informaŃiei
transportate la canalul de comunicaŃie în scopul unei transmisii cât mai eficiente.

170
Capitolul 4. Adaptarea fluxului de date la canalul de comunicaŃie

4.1 Modularea şi demodularea semnalelor folosind purtătoare analogică

ModulaŃia poate fi definită în general, ca o modificare a caracteristicilor unui


semnal purtător, după o anumită regulă, în funcŃie de un alt semnal, semnal
modulator. Semnalul purtător este de obicei un semnal de o anumită frecvenŃă, care
satisface cerinŃele de propagare pe un canal de comunicaŃie. Semnalul care conŃine
informaŃia şi care modulează semnalul purtător se numeşte, aşa cum s-a arătat,
semnal în bandă de bază.
Deoarece în cazul transmisiunilor binare în banda de bază şirul serial de biŃi
determină generarea unei succesiuni de forme de undă ponderate cu valorile de bit,
este convenabil să se exprime semnalul obŃinut printr-o expresie particulară, care
pune în evidenŃă forma de undă folosită pentru semnalizare ca sumă de valori
discrete ale aceluiaşi semnal decalat în timp:
+∞

x (t ) = ∑a k ⋅ s ( t − kT ) (4.1)
−∞

unde s(t) este forma de undă folosită pentru semnalizare, de obicei impuls
rectangular, iar ak succesiunea de biŃi ce se transmite, având valorile „0” sau „1”.
Pentru a pune în evidenŃă relaŃiile dintre valorile biŃilor de informaŃie şi
frecvenŃele f1 şi f 2 , se poate defini un factor de ponderare bipolară bk :

bk = 2 a k − 1 (4.2)

Se observa că dacă ak ia valori unipolare 0 şi 1, bk ia valorile bipolare ±1, iar


semnalul capătă forma echivalentă:
+∞

x (t ) = ∑b k ⋅ s ( t − kT ) (4.3)
−∞

ceea ce evidenŃiază posibilitatea reprezentării bipolare, numită uneori şi codare


dublu-curent.
Forma de undă s(t) folosită pentru semnalizare este cea care determină
proprietăŃile de propagare pe un anumit canal de comunicaŃie. Dacă s(t) este un
impuls rectangular, la trecerea acestuia printr-un canal de bandă limitată forma de
undă va fi distorsionată (vezi capitolul 1.3) generând interferenŃe intersimbol. Dacă
forma de undă este sinusoidală având frecvenŃa în interiorul benzii de trecere atunci
aceasta se va transmite fără distorsionare.

Pentru a adapta spectrul semnalului transmis la canalul de comunicaŃie


disponibil se utilizează diverse tehnici de modulaŃie, cele mai importante fiind
descrise în continuare.

4.1.1 ModulaŃia în frecvenŃă

În cazul transmisiunilor de date, modulaŃia în frecvenŃă constă în alocarea


unor anumite frecvenŃe biŃilor sau grupurilor de biŃi, situaŃie în care semnalul modulat

171
TRANSMITEREA INFORMAłIEI ÎN REłELELE DE CALCULATOARE

are valori discrete pentru frecvenŃă. De aceea, modulaŃia se numeşte cu deplasare


sau cu comutare de frecvenŃă, FSK - Frequency Shift Keying.
ModulaŃia FSK este printre cele mai răspândite datorită simplităŃii de obŃinere
a semnalului modulat şi metodelor accesibile de demodulare. Ea este folosită în
principal în transmisiunile de date de mică viteză. Datorită caracterului neliniar,
bandă de frecvenŃă ocupată de semnalul FSK este mai mare decât a semnalului
modulator în banda de bază. Din acest motiv FSK se utilizează pe canalele de
comunicaŃie unde nu se pune problema folosirii eficiente a benzii de frecvenŃă ci
problema încadrării într-o anumită fereastră de frecvenŃă .
Echipamentele de modulare/demodulare FSK sunt de complexitate medie.
Amplitudinea semnalului modulat fiind constantă, puterea semnalului poate fi uşor
controlată, ceea ce face această modulaŃie utilizabilă în primul rând acolo unde este
necesară limitarea puterii semnalului (la echipamente portabile alimentate din baterii
locale).
În cazul unui semnal digital binar, modulaŃia FSK asociază bitului "1" o
frecvenŃă f1 şi bitului "0" o frecvenŃă f 0 . În aceste condiŃii se definesc:

- frecvenŃa purtătoare sau frecvenŃa medie f p :


f1 + f 0
fp = (4.4)
2

- deviaŃia de frecvenŃă ∆f :
f −f
∆f = 1 0 ; (4.5)
2
∆f fiind valoarea cu care variază f p pentru a fi egală cu f1 şi f 0 ;

- indicele de modulaŃie m:

2∆ f
m= ; (4.6)
f bit
unde f bit = 1/T este viteza de transmisie a datelor binare (debit binar).

Deoarece frecvenŃa purtătoare variază în jurul valorii centrale f p cu ± ∆f ,


înseamnă că:
f p − ∆f = f1
(4.7)
f p + ∆f = f 0

Semnalul y FSK (t) de la ieşirea modulatorului FSK este de forma:

yFSK (t )= A ⋅ cos[ω p t +θ 0 +k1 x(τ )dτ ] (4.8)

PulsaŃia instantanee a semnalului este derivata în domeniul timp a


argumentului funcŃiei cosinus:

ω (t ) = ω p + k1 ⋅ x(t ) (4.9)

172
Capitolul 4. Adaptarea fluxului de date la canalul de comunicaŃie

În relaŃia (4.8) A este amplitudinea purtătoarei, ωp = 2πfp este pulsaŃia


purtătoarei, θ0 este faza iniŃială iar k1 este un factor de conversie pentru semnalul
modulator x(t).

Particularizând relaŃia (4.8) pentru FSK, prin discretizare, se poate considera


că pulsaŃia ω(t) = ωn pentru nT < t < (n+1)T este constantă pe fiecare interval de bit
T (sau interval de simbol pentru transmisiunile multibit). Dacă g(t) este forma de undă
folosită pentru semnalizare, atunci semnalul modulat FSK poate fi exprimat şi sub
forma echivalentă

yFSK (t )= A ⋅ ∑ g (t − nT ) ⋅ cos(ωnt + θ 0 ) (4.10)


n

sau în forma simplificată:

 A ⋅ cos 2πf 1t , dacă g n (t ) = 1


y FSK (t )=  (4.11)
 A ⋅ cos 2πf 2 t , dacă g n (t ) = 0

ModulaŃia de frecvenŃă descrisă poate fi o modulaŃie binară, cu două valori


posibile pentru parametrul modulat f n (respectiv ω n ) sau o modulaŃie multinivel, cu
M = 2 m valori posibile pentru parametrul modulat, caz în care valorile frecvenŃei sunt
echidistante.
Deoarece x(t) este semnalul modulator care poate lua doar două valori,
corespunzător simbolurilor „1” si „0” transmise se poate considera situaŃia transmisiei
bipolare, astfel încât x(t) = ±1. Divizând cu 2π expresia (4.9) rezultă situaŃiile:

k1 k1 k
f0 = f p + ; f1 = f p − ; ⇒ ∆f = 1 (4.12)
2π 2π 2π

SecvenŃă 1 0 1 1 0 1 0
date
t

Semnal
modulat t
FSK

f1 f0 f1 f1 f0 f1 f0

Figura 4.2 Forme de undă specifice modulaŃiei FSK

173
TRANSMITEREA INFORMAłIEI ÎN REłELELE DE CALCULATOARE

Dacă, de exemplu, frecvenŃa purtătoare este de 1700 Hz şi este modulată cu


± 500Hz, se obŃine 1200 Hz pentru "1" şi 2200 Hz pentru "0". La recepŃie se poate
utiliza un circuit de limitare urmat de un circuit de numărare a trecerilor prin zero ale
semnalului recepŃionat, în funcŃie de această valoare generându-se o formă de undă
rectangulară.
În figura 4.2 este prezentat un semnal modulat FSK.

4.1.2 ModulaŃia de fază

ModulaŃia de fază, numită în cazul transmisiunilor de date şi modulaŃie cu


comutarea fazei sau cu deplasare de fază, PSK - Phase Shift Keying, asigură o
utilizare mai eficientă a benzii de frecvenŃe, dar necesită un echipament mai
complex, spre deosebire de FSK. ModulaŃia de fază este recomandată pentru
transmisiuni de date pe canalele de comunicaŃie unde fenomenul de alunecare a
fazei (jitter de fază) este redus sau controlabil (constant). Parametrul modulat al
semnalului purtător este faza, care se modifică prin salt la intervale de timp egale. În
figura 4.3 este exemplificată evoluŃia în timp a fazei unui semnal PSK cu mai multe
nivele.

ω p t + Φ(t )

3π/2

π/2

0
1 2 3 4 7 t/T
5 6
-π/2

Figura 4.3 EvoluŃia fazei unui semnal PSK cu mai multe nivele

Semnalul PSK poate fi exprimat astfel:

yPSK (t ) = A ⋅ cos[ω p t + Φ (t )] (4.13)

unde faza Φ(t)= Φ n pentru nT < t < (n+1)T este constantă pe fiecare interval de bit T
(sau interval de simbol pentru transmisiunile multibit).

Semnalul modulat PSK poate fi exprimat şi altfel:

yPSK (t )= A ⋅ ∑ g (t − nT ) ⋅ cos(ω pt + Φ n ) (4.14)


n

174
Capitolul 4. Adaptarea fluxului de date la canalul de comunicaŃie

relaŃie în care g(t) este forma de undă folosită pentru semnalizare: impuls
dreptunghiular, g(t) = 1 pe intervalul considerat.
În formă simplificată, considerând două valori simetrice pentru fază, relaŃia
(4.14) poate fi scrisă echivalent astfel:

 A ⋅ cos 2πft , dacă g n (t ) = 1


y PSK (t )=  (4.15)
− A ⋅ cos 2πft , dacă g n (t ) = 0

RelaŃia (4.14) pune în evidenŃă faptul că semnalul PSK poate fi considerat ca


o succesiune de semnale de frecvenŃă f p şi fază iniŃială Φ n .
În urma modulaŃiei, secvenŃa de date este transpusă în secvenŃa valorilor
absolute ale fazelor Φ n , caz în care vorbim de modulaŃie de fază absolută PSK,
Phase Shift Keying sau în secvenŃa diferenŃelor ∆Φ n = Φ n − Φ n− 1 caz în care definim
o modulaŃie de fază relativă sau diferenŃială DPSK, Differential Phase Shift Keying.
ModulaŃia de fază poate fi o modulaŃie binară, cu două valori posibile pentru
parametrul modulat ( Φ n sau ∆Φ n ) sau o modulaŃie multinivel, cu M = 2 m valori
posibile pentru parametrul modulat. Valorile parametrului modulat Φ n sunt
echidistante:
2π 2π 2π 2π
; 2 ; 3 ; ... M .
M M M M
Transmisiunile de date PSK trebuie să fie sincrone deoarece modificările fazei
au loc la intervale egale de timp T.
Reconstituirea secvenŃei fazelor la recepŃie necesită un semnal purtător local
de aceeaşi frecvenŃă cu semnalul purtător emis şi având faza purtătorului nemodulat.
ObŃinerea unui astfel de semnal la recepŃie nu este posibilă decât cu o anumită
eroare de fază numită ambiguitate de fază. Prin sincronizarea purtătorului local, pe
baza informaŃiei conŃinute în purtătorul recepŃionat, se poate obŃine o fază egală cu
una din fazele posibile în procesul de modulaŃie, de exemplu Φ k . SecvenŃa fazelor
absolute Φ n nu este însă reconstituită corect, existând o eroare Φ k . Din acest motiv
se preferă modulaŃia de fază diferenŃială, diferenŃa ∆Φ n nefiind afectată de eroarea
de sinfazare Φ k .

Putem considera pentru exemplificare o modulaŃie binară având următoarele


convenŃii de alocare a fazelor sau salturilor de fază:
- pentru PSK: "0" se codifică prin Φ n = 0° şi "1" se codifică prin Φ n = 180°
- pentru DPSK: "0" se codifică prin ∆Φ n = 0° şi "1" se codifică prin ∆Φ n = 180°
Unei secvenŃe de simboluri binare îi corespund astfel următoarele faze
absolute:
SecvenŃa binară: 0 1 0 0 1 1 0
Φ n (PSK): 0° 180° 0° 0° 180° 180° 0°
Φ n (DPSK): 0° 180° 180° 180° 0° 180° 180°

În cazul modulaŃiei PSK absolute deciziile se iau prin comparaŃie cu faza


semnalului purtător recuperat local, la recepŃie. Dacă această fază de referinŃă este
eronată, datorită ambiguităŃii de fază care apare, simbolurile reconstituite pot fi
negatele celor iniŃiale. În cazul modulaŃiei diferenŃiale, reconstituirea salturilor de fază

175
TRANSMITEREA INFORMAłIEI ÎN REłELELE DE CALCULATOARE

nu este afectată de eroarea de sincronizare deoarece deciziile se iau pe baza


diferenŃelor de fază şi nu pe baza fazelor absolute.

O formă de undă obŃinută în urma unei modulaŃii de fază este prezentată în


figura 4.4.

SecvenŃă 1 0 1 1 0 1 0
date
t
Salt fază Salt fază Salt fază

Semnal
modulat t
PSK

Ф1 Ф0 Ф1 Ф1 Ф0 Ф1 Ф0

Figura 4.4 Forme de undă specifice modulaŃiei PSK

Semnalul PSK poate fi exprimat şi sub altă formă:

y PSK (t )= A∑ g (t − nT )cos Φ n cos ω p t − A∑ g (t − nT )sin Φ n sin ω p t (4.16)


n n

RelaŃia (4.16) pune în evidenŃă faptul că semnalul PSK poate fi considerat ca


o sumă de semnale modulate în amplitudine cu purtători de aceeaşi frecvenŃă, dar
defazaŃi unul faŃă de altul, semnalele modulatoare fiind ∑ g (t − nT )cosΦn , respectiv
n

∑ g (t − nT )sin Φ
n
n .

Spectrul semnalului PSK sau DPSK are aceeaşi lărgime ca şi cel modulat în
amplitudine cu bandă laterală dublă.

Fazele utilizate în codarea dibit (recomandarea CCITT V.26):


Dibit: 00 01 11 10
Salt de fază (varianta A): 0° 90° 180° 270°
Salt de fază (varianta B): 45° 135° 225° 315°

Fazele utilizate în codarea tribit (recomandarea CCITT V.27):


Tribit: 001 000 010 011 111 110 100 101
Salt de fază: 0° 45° 90° 135° 180° 225° 270° 315°

Tabelul 4.5 Alocări de fază pentru modulaŃia PSK cu 4 şi 8 nivele

176
Capitolul 4. Adaptarea fluxului de date la canalul de comunicaŃie

În general, modem-urile PSK, conform recomandărilor CCITT, folosesc o


modulaŃie cu 4 sau 8 faze, ceea ce permite transmiterea pe linie a de două sau trei
ori mai multe date pentru aceeaşi lărgime de bandă, prin gruparea biŃilor câte doi
(dibiŃi) sau câte trei (tribiŃi). Grupând biŃii câte şase de exemplu se obŃin 64 de niveluri
de fază ce trebuie identificate la recepŃie.
Câteva recomandări CCITT sunt sintetizate în tabelele 4.5.

4.1.3 ModulaŃia în amplitudine

ModulaŃia în amplitudine este o metodă de modulaŃie liniară, prin care spectrul


de frecvenŃă al semnalului este translatat din banda de bază în două benzi situate
simetric faŃă de frecvenŃa purtătoarei. Din cele două benzi laterale, în urma
procesului de modulaŃie, se poate transmite una singură, ceea ce face ca prin
modulaŃia de amplitudine să se asigure o utilizare eficientă a benzii canalului de
transmisiune. Acest avantaj al modulaŃiei de amplitudine, comparativ cu modulaŃia de
frecvenŃă sau de fază, o recomandă pentru utilizarea în sisteme de transmisiuni de
date de viteză mare pe canale de bandă limitată. În schimb, echipamentul de
recepŃie este complex, deoarece detecŃia este de tip coerent, necesitând un semnal
local sincron şi sinfazic cu semnalul purtător recepŃionat.
Deoarece, în cazul semnalelor binare, amplitudinea semnalului modulat
variază în trepte corespunzător secvenŃelor binare, modulaŃia discretă în amplitudine
se mai numeşte cu comutare (deplasare) de amplitudine ASK - Amplitude Shift
Keying.
În funcŃie de banda din spectrul semnalului modulat transmisă, se disting mai
multe variante ale sistemelor de transmisiuni cu modulaŃie în amplitudine:
- cu două benzi laterale (sau bandă laterală dublă)
- cu bandă laterală unică
- cu bandă laterală reziduală
- cu modulaŃie de amplitudine în cuadratură.

Sistemele cu bandă laterală dublă au aproximativ aceeaşi eficienŃă de utilizare


a benzii ca şi transmisiunile cu modulaŃie de frecvenŃă. Dacă se elimină semnalul
purtător, păstrându-se componentele laterale, creşte ponderea semnalului util şi se
reduce puterea totală de transmisie. În schimb, se complică echipamentul de
recepŃie, deoarece nu mai este posibilă detecŃia coerentă.
Sistemele cu bandă laterală unică asigură cea mai eficientă utilizare a benzii
canalului, dar deoarece semnalul de date binar care modulează purtătoarea are
componente de frecvenŃe foarte joase, este dificil să se elimine prin filtrare una din
benzile laterale fără a o afecta pe cealaltă.
Sistemele cu bandă laterală reziduală permit realizarea unui compromis între
eficienŃa utilizării benzii şi posibilitatea eliminării parŃiale a unei benzi laterale.
În sistemele cu modulaŃie de amplitudine în cuadratură se utilizează două
semnale purtătoare în cuadratură transmise simultan, având aceeaşi frecvenŃă, dar
modulate de semnale diferite. Deşi se transmit ambele benzi laterale, eficienŃa este
echivalentă cu cea obŃinută la modulaŃia cu bandă laterală unică, deoarece se
dublează cantitatea de informaŃie transportată.

Pornind de la schema generală a unui sistem de transmisie cu modulaŃie


(figura 4.1) se poate considera că generatorul de date generează impulsuri

177
TRANSMITEREA INFORMAłIEI ÎN REłELELE DE CALCULATOARE

rectangulare unipolare (simplu curent) în concordanŃă cu secvenŃa de date. Filtrul


trece jos de la emisie limitează spectrul semnalului modulator şi reduce interferenŃa
inter-simboluri prin pre-formarea semnalului modulator.
Modulatorul de amplitudine translatează spectrul semnalului modulator din
banda de bază în jurul frecvenŃei purtătoare.
Filtrul "trece-bandă" de la emisie reŃine din spectrul semnalului modulat în
amplitudine numai banda utilă care se transmite. El poate atenua complet sau parŃial
una din benzile laterale ale semnalului, reducând interferenŃa cu celelalte canale
(diafonie).
La recepŃie, filtrul "trece-bandă" elimină zgomotele şi interferenŃele din afara
benzii utile.
Detectorul sau demodulatorul de amplitudine realizează funcŃia inversă
modulatorului, la ieşirea sa regăsindu-se semnalul în banda de bază şi
componentele translatate pe armonici ale frecvenŃei purtătoare (în special armonica
a II-a), care sunt înlăturate de filtrul "trece-jos" care urmează.
Prin sondarea semnalului în banda de bază, obŃinut la ieşirea ultimului filtru,
se recuperează o secvenŃă de date similară cu cea de la emisie.

Forma generală a unui semnal modulat în amplitudine este:

y ASK (t ) = x(t ) ⋅ cos(ω p t + θ ) = A ⋅ [1 + m ⋅ g (t )] ⋅ cos(ω p t + θ ) (4.17)

unde m este indicele de modulaŃie, iar g(t) funcŃia modulatoare.

Deoarece în transmisiunile de date amplitudinea poate lua doar valori


discrete, relaŃia de mai sus poate fi discretizată sub forma

y ASK (t )= ∑ An ⋅ g (t − nT ) ⋅ cos(ω p t + θ 0 ) (4.18)


n

expresie echivalentă cu

 A1 ⋅ cos 2πft , dacă g n (t ) = 1


y ASK (t )=  (4.19)
 A2 ⋅ cos 2πft , dacă g n (t ) = 0

Aşa cum se observă şi din relaŃiile de mai sus, obŃinerea semnalului ASK se
poate face prin multiplicarea ponderată şi sumarea semnalelor modulator şi purtător.
Multiplicarea se realizează prin diverse tehnici: folosind circuite de multiplicare
analogică, prin choppare, prin utilizarea dispozitivelor cu caracteristică de transfer
neliniară sau prin utilizarea de circuite acordate.
ModulaŃia ASK este simplă şi nu presupune echipamente foarte complexe, dar
este afectată de atenuarea canalului de comunicaŃie şi de zgomotele aditive. De
aceea ea este utilizată pe mediile de comunicaŃie mai puŃin zgomotoase, cum este
cazul fibrelor optice. Astfel, în cazul transmisiunilor optice se alocă o intensitate a
fasciculului luminos pentru „0” şi o altă intensitate pentru „1”.
În figura 4.6 este prezentată forma de undă asociată unei modulaŃii ASK cu
două niveluri.

178
Capitolul 4. Adaptarea fluxului de date la canalul de comunicaŃie

SecvenŃă 1 0 1 1 0 1 0
date
t

Semnal A1

modulat A0 t
ASK

A1 A0 A1 A1 A0 A1 A0

Figura 4.6 Forme de undă specifice modulaŃiei ASK

4.1.4 ModulaŃia de amplitudine în quadratură

O formă particulară de modulaŃie în amplitudine este QAM – Quadrature


Amplitude Modulation. ModulaŃia QAM foloseşte două purtătoare ortogonale,
respectiv două semnale sinusoidale defazate cu π / 2 (în quadratură), adică un
semnal de tip sinus şi unul de tip cosinus. Deoarece aceste semnale au fiecare
amplitudinea maximă când celălalt este nul, ele pot fi utilizate ca două purtătoare
independente. Astfel, fluxul de date de intrare poate fi divizat în două secvenŃe,
preluându-se separat biŃii pari (2n), respectiv biŃii impari (2n+1), fiecare din aceste noi
semi-secvenŃe modulând în amplitudine câte o purtătoare în quadratură.
Semnalul QAM poate fi aşadar exprimat prin relaŃia

yQAM (t )= ∑ [ A2 n ⋅ g (t − 2nT ) ⋅ cos(ω p t + θ 0 ) + A2 n +1 ⋅ g (t − (2n + 1)T ) ⋅ sin(ω p t + θ 0 )]


n
(4.20)
sau în forma simplificată:

 A2 n +1 ⋅ cos 2πft , pentru g 2 n +1 (t )


yQAM (t )=  (4.21)
 A2 n ⋅ sin 2πft , pentru g 2 n (t )

ModulaŃia QAM poate fi privită ca o modulaŃie dublă, în fază şi în amplitudine.

Extinzând principiul QAM, se pot utiliza mai multe purtătoare simultan, cu


condiŃia ca atunci când unul din semnale are valoarea maximă, celelalte să treacă
prin zero. Transmiterea secvenŃei de date partajat pe mai multe frecvenŃe în acelaşi
timp este în fapt o divizare a spectrului de frecvenŃe, FDM - Frequency Division
Multiplexing. Dacă frecvenŃele se aleg astfel încât spectrul fiecărei purtătoare să fie
maxim atunci când celelalte sunt nule, atunci spunem ca purtătoarele sunt
ortogonale iar modulaŃia rezultată se numeşte OFDM - Orthogonal Frequency
Division Multiplexing Semnalele modulate utilizate se numesc sub-purtătoare.

179
TRANSMITEREA INFORMAłIEI ÎN REłELELE DE CALCULATOARE

Fluxul iniŃial de date este distribuit în mod egal către fiecare purtătoare, rezultând
astfel posibilitatea de transport paralel a unor sub-fluxuri cu rata de bit mult mai
redusă decât cea iniŃială, ceea ce reduce interferenŃele inter-simboluri. Neasigurarea
ortogonalităŃii sub-purtătoarelor determină apariŃia de interferenŃe între acestea
(interferenŃe inter-purtătoare).

FSK, PSK, ASK: ASK simplificat:


s1(t)
y1(t) s(t)
„1” 
g(t) y(t) g(t) y(t)
 
„0”  y2(t)
s2(t)

QAM: s1(t)

g2n+1(t) y1(t)

g(t) y(t)

g2n(t)  y2(t)
s2(t)

y(t) s1 s2 y1 y2
y FSK (t ) cos 2πf1t cos 2πf 2t A ⋅ cos 2πf1t A ⋅ cos 2πf 2t
y PSK (t ) cos 2πft − cos 2πft A ⋅ cos 2πft − A ⋅ cos 2πft
y ASK (t ) cos 2πft A1 ⋅ cos 2πft A2 ⋅ cos 2πft
yQAM (t ) cos 2πft sin 2πft A2 n +1 ⋅ cos 2πft A2 n ⋅ sin 2πft

Figura 4.7 Principiul tehnicilor de modulaŃie FSK, PSK, ASK şi QAM

Din expresiile ce caracterizează modulaŃiile prezentate (relaŃiile 4.11, 4.15,


4.19) rezultă ca ele se pot obŃine principial prin sumarea formelor de undă
corespunzătoare biŃilor de intrare. Acestea la rândul lor se obŃin prin multiplicarea
formei de undă folosită pentru semnalizare (impuls) cu un semnal sinusoidal
particular. În figura 4.7 este descris acest principiu. În cazul ASK schema se
simplifică şi mai mult, reducându-se la un singur multiplicator. Spre deosebire de
FSK, PSK şi ASK care implică separarea biŃilor pe două căi in funcŃie de valoarea lor
„0” sau „1”, modulaŃia QAM impune separarea biŃilor pari şi impari în scopul
multiplicării lor cu două semnale defazate (similar cu PSK), fiecare succesiune
modulând apoi în amplitudine purtătoarea corespunzătoare (similar cu ASK).

180
Capitolul 4. Adaptarea fluxului de date la canalul de comunicaŃie

Semnal în
banda de bază

PAM t

PWM t

PPM t

Figura 4.8 ModulaŃia impulsurilor în amplitudine (PAM),


în lăŃime (PWM) şi în poziŃie (PPM)

4.2 ModulaŃia în impulsuri

În cazul modulaŃiei în impulsuri, purtătoarea este un semnal alcătuit din


impulsuri rectangulare periodice. ModulaŃia constă în strobarea semnalului în banda
de bază la intervale regulate de timp şi conversia acestor valori în valori pentru
amplitudine, lăŃime sau poziŃie a unui impuls.
Strobarea este procesul de obŃinere a unei secvenŃe de valori instantanee a
semnalului util la intervale de timp periodice sau intermitente. Ieşirea circuitelor de
strobare este reprezentată de valori ale amplitudinii la momente determinate de timp.
Strobarea semnalului de intrare se poate face nu numai la momente
determinate de timp ci şi la modificarea semnalului faŃă de o valoare de referinŃă
(prag) sau simultan cu trecerile prin zero ale semnalului dacă forma de undă se
pretează unei astfel de tratări.

4.2.1 Metode de modulare în impulsuri a semnalelor analogice

Având în vedere parametrii ce caracterizează impulsurile care compun


semnalul purtător se pot identifica trei metode de modulaŃie in impulsuri, metode
descrise succint in continuare.

181
TRANSMITEREA INFORMAłIEI ÎN REłELELE DE CALCULATOARE

ModulaŃia impulsurilor în amplitudine


ModulaŃia impulsurilor în amplitudine PAM - Pulse Amplitude Modulation,
constă în modificarea amplitudinii undei purtătoare de impulsuri corespunzător cu
variaŃia semnalului modulator. Se poate observa (figura 4.8) că fiecare eşantion al
semnalului strobat modulează amplitudinea unui impuls.

ModulaŃia impulsurilor în lăŃime


ModulaŃia în lăŃime sau în durată - PWM, Pulse Width Modulation, sau PDM -
Pulse Duration Modulation utilizează un tren de impulsuri de amplitudine constantă
cu intervale de timp de succedare determinate, având lăŃimea (durata) variabilă
conform cu eşantioanele semnalului modulator (figura 4.8).

ModulaŃia impulsurilor în poziŃie


ModulaŃia în poziŃie – PPM, Pulse Position Modulation, utilizează ca purtător o
succesiune de impulsuri de durată şi amplitudine constante, fiind variabilă poziŃia
relativă a impulsului faŃă de momentele de eşantionare (figura 4.8).

4.2.2 ModulaŃia impulsurilor în cod

Metodele de modulaŃie a impulsurilor de mai sus transportă informaŃia


într-o formă în principiu analogică, deoarece unul din parametrii impulsului este
continuu variabil. Dacă în urma eşantionării valorile rezultate sunt convertite într-un
număr de niveluri discrete corespunzătoare intervalului de încadrare a valorii
semnalului de intrare la diverse momente de timp, acestea pot fi exprimate prin valori
numerice, digitizate (figura 4.9).

În comunicaŃiile de date este posibil ca semnalul să fie afectat de zgomot şi să


nu se mai poată reface fidel informaŃia transportată. De aceea a fost dezvoltată o
tehnică de conversie a fiecărui impuls modulat în amplitudine într-o succesiune unic
determinată de impulsuri de amplitudine constantă, impulsuri a căror prezenŃă sau
absenŃă codifică numeric mărimea discretizată a eşantionului modulator.
Deşi impulsurile modulate în amplitudine pot avea o infinitate de valori, prin
discretizare acestea sunt cuantizate astfel încât mărimea de interes (amplitudinea,
de exemplu) poate fi exprimată printr-un număr determinat de valori discrete, aşa
cum este sugerat în figura 4.9.
Amplitudinea semnalului este reprezentată pe 8 niveluri, acceptându-se o
eroare egală cu pasul de cuantizare (1/8 din amplitudinea maximă). Sistemele
actuale utilizează 128 sau 256 de niveluri. După cuantizare, semnalul este strobat la
intervale determinate de timp şi valorile determinate sunt codate binar, de exemplu
pe 3 biŃi în exemplul considerat în figura 4.9. În general, pentru N nivele de
cuantizare sunt necesari log 2 N biŃi pentru fiecare eşantion.
Deoarece prin această tehnică se obŃine un tren de impulsuri binare care
codează eşantioanele semnalului modulator, modulaŃia corespunzătoare se numeşte
"modulaŃie cu codarea impulsurilor în cod".
PrezenŃa sau absenŃa unui impuls poate fi uşor detectată chiar şi în prezenŃa
perturbaŃiilor, deci imunitatea la zgomot este astfel mult îmbunătăŃită. Dezavantajul
principal constă în imposibilitatea reproducerii fidele a semnalului iniŃial datorită
limitării impuse de pasul de cuantizare şi frecvenŃa de eşantionare. Această abatere
este denumită uneori zgomot de cuantizare. Pentru a transmite 128 de nivele de

182
Capitolul 4. Adaptarea fluxului de date la canalul de comunicaŃie

cuantizare, de exemplu, sunt necesari 7 biŃi, ceea ce permite obŃinerea unor canale
telefonice cu raport semnal-zgomot de 22 dB, nivel comparabil cu al canalelor
telefonice analogice performante.

Prag decizie
Semnal original Semnal cuantizat
7
6
5
4
3
2
1
0

t
010 000 001 100 111 110 010 000 001 100
Eşantioanare Impuls modulat în amplitudine

1
0 t
SecvenŃa de impulsuri logice transmise

Figura 4.9 ModulaŃia impulsurilor în cod

Se poate arăta matematic (teoremele lui Nyquist) că dacă cea mai înaltă
frecvenŃă din componentele spectrale ale semnalului este n Hz, atunci trenurile de 2n
impulsuri pe secundă permit transportarea unei informaŃii suficiente pentru refacerea
corectă a semnalului iniŃial. În cazul vocii umane, limitând frecvenŃă superioară la
4000 Hz, aceasta poate fi transportată de o purtătoare de impulsuri cu 8000
pulsuri/secundă (PAM).
În transmisiunile telefonice, domeniul de frecvenŃă codat PCM ("Pulse Coded
Modulation" - modulaŃia impulsurilor în cod) este de 200 - 3500 Hz, utilizându-se
8000 de strobări/secundă. Pentru distingerea a 256 de niveluri de volum sunt
necesari 8 biŃi, ceea ce înseamnă 8 x 8000 = 64.000 kbps.
În tabelul de mai jos sunt prezentate debitele binare minimale necesare pentru
diverse semnale uzuale.

LăŃime de bandă Numărul de biŃi Debitul binar necesar


Tip de semnal analogică [kHz] utilizaŃi pentru [kbps]
cuantizare
Voce telefonică 4 8 4 x 2 x 8 = 64
Muzică Hi-Fi 20 8 20 x 2 x 8 = 320
Videotelefonie 1000 3 1000 x 2 x 3 = 6000
Televiziune color 4600 10 4600 x 2 x 10 = 92000

Tabelul 4.10 LăŃimi de bandă şi debite binare minimale


necesare pentru diverse semnale

183
TRANSMITEREA INFORMAłIEI ÎN REłELELE DE CALCULATOARE

4.3 Coduri de linie

La nivelul fizic al stivei de protocoale ISO/OSI, scopul urmărit prin codare este
acela de a obŃine o formă de undă care să poată fi transmisă cât mai eficient prin
mediul de comunicaŃie: să se încadreze în lăŃimea de bandă oferită de canal, să
permită recuperarea simplă a datelor oferind informaŃii de sincronizare şi eventual să
faciliteze identificarea erorilor de transmisie. Codurile de linie, numite şi coduri de
transport, sunt deci coduri optimizate ca şi distribuŃie spectrală (în scopul de a avea o
componentă continuă nulă sau de a ocupa o lăŃime de bandă cât mai redusă) sau
coduri cu facilităŃi de asigurare a sincronizării la recepŃie, adică un număr suficient de
tranziŃii în forma de undă.
Principalele coduri de linie sunt descrise în continuare.

4.3.1 Coduri NRZ

Codurile NRZ -Non Return to Zero (fără întoarcere în zero) sunt coduri de linie
care codifică simbolurile „1” printr-o stare semnificativă a unui semnal (de obicei o
tensiune pozitivă) şi „0” printr-o altă stare semnificativă (de obicei o tensiune
negativă), fără să existe o stare neutră sau de aşteptare (zero). Această proprietate
face ca semnalele codate NRZ să transporte o cantitate mai mare de energie (şi pe
durata lui „1” şi pe durata lui „0”) şi să ofere condiŃii relativ bune de sincronizare la
recepŃie (deoarece există tot timpul o stare semnificativă prezentă).
Sunt uzuale trei tipuri de coduri NRZ: NRZ-L (NRZ-Level), NRZ-M (NRZ-Mark)
şi NRZ-S (NRZ-Space).

Tb
+
Date
NRZ-L 1 0 1 1 0 1 0 0
0 t

NRZ-L +
1 0 1 1 0 1 0 0 t
Bipolar
-

+
NRZ-M 1 0 1 1 0 1 0 0
0 t

+
NRZ-S 1 0 1 1 0 1 0 0
0 t

Figura 4.11 Coduri NRZ

184
Capitolul 4. Adaptarea fluxului de date la canalul de comunicaŃie

Codul NRZ-L păstrează nivelul de semnal constant în timpul intervalului de bit,


fiind alocat câte un nivel fiecărei stări logice. Codul NRZ-L coincide cu reprezentarea
uzuală a semnalelor binare. NRZ-L unipolar se mai numeşte si NRZ natural.
În cazul NRZ-M sau NRZ-S are loc o schimbare (tranziŃie) a nivelului la
începutul intervalului de bit pentru una din stările logice şi nici o tranziŃie pentru
starea complementară. Pentru NRZ-M tranziŃia indică "1" (sau "mark"), iar lipsa ei "0"
(sau "space"), NRZ-S fiind complementar din acest punct de vedere (respectiv
tranziŃie pentru "0" şi lipsă tranziŃie pentru "1"). Toate codurile NRZ pot fi bipolare sau
unipolare. Figura 4.11 prezintă diagramele de semnal specifice codurilor NRZ.

Codurile NRZ sunt uşor de generat şi de decodat şi nu necesită condiŃii


speciale pentru transmisie. Ele sunt printre cele mai răspândite coduri, în special
NRZ-L. O variantă a codului NRZ-M utilizează tranziŃii la sfârşitul intervalului de bit şi
nu la începutul intervalului de bit, caz în care el se numeşte NRZI - Non Return to
Zero Inverted, figura 4.12.

+
Date
NRZ-L 1 0 1 1 0 1 0 0
0 t

NRZI +

0 t
1 0 1 1 0 1 0 0

Figura 4.12 Codul NRZI

În cazul secvenŃelor lungi de biŃi de acelaşi fel şi care nu sunt asociaŃi cu


tranziŃii (şiruri lungi de „0” în cazul NRZ-M sau NRZI) se poate pierde sincronismul la
recepŃie. De aceea aceste coduri sunt uneori asociate cu metode de limitare a
lungimii secvenŃelor de date care nu generează tranziŃii (secvenŃele lungi de „0”, de
exemplu) cum ar fi RLL - Run Length Limited folosit în cazul înregistrărilor magnetice
sau bit stuffing folosit în cazul comunicaŃiilor USB, ambele bazându-se pe inserarea
de biŃi neinformaŃionali, după anumite reguli, în scopul generării de tranziŃii în forma
de undă.

Dezavantajul codurilor NRZ constă în existenŃa unei componente de curent


continuu ceea ce presupune canale de comunicaŃie fără cuplaje inductive sau
capacitive, precum şi inexistenŃa unei informaŃii implicite de ceas care să faciliteze
sincronizarea la recepŃie, dar şi lipsa posibilităŃilor de detecŃie a erorii.
NRZ este utilizat în comunicaŃiile seriale RS232 sau în reŃelele Gigabit
Ethernet 1000Base-X.
NRZI este folosit la compact discuri, comunicaŃii USB sau în reŃele pe fibră
optică la 100Mbps, 100Base-FX.

185
TRANSMITEREA INFORMAłIEI ÎN REłELELE DE CALCULATOARE

4.3.2 Codul RZ

Codul RZ – Return to Zero (coduri cu întoarcere în zero) este un cod


caracterizat de existenŃa unor stări neutre asociate cu transmisia de simboluri „0”.
Acesta se obŃine printr-o combinaŃie între NRZ-L (secvenŃa de date) şi semnalul de
ceas, ceea ce îl face propriu necesităŃilor de sincronizare. Codul RZ este prezentat în
figura 4.13. El se obŃine practic prin conjuncŃia logică (AND) între datele NRZ-L şi
semnalul de ceas. Deci "0" va fi reprezentat prin absenŃa impulsului pe timpul
intervalului de bit, iar "1" prin prezenŃa impulsului pe timpul intervalului de bit.
Codurile RZ au un debit binar (sau rata de transfer informaŃional) de 1/ Tb bps,
Tb fiind intervalul de bit. Intervalul elementar minim al formei de undă folosite pentru
semnalizare, Tp, este mai mic decât Tb , Tp < Tb (figura 4.13). Prin urmare rata de
modulaŃie, modulation rate R = 1/Tp este mai mare decât debitul binar, information
rate D = 1/ Tb .
Rata de modulaŃie, numită şi viteză de transmisie a simbolurilor, se măsoară
în Bd (Baud, vezi capitolul 1.3), un Baud fiind echivalent cu un impuls (sau o condiŃie
discretă în general) pe secundă. În cazul NRZ, intervalul elementar de semnal este
egal cu intervalul de bit, T = Tb , deci rata de informaŃie D în bps este egală cu rata de
modulaŃie R în Bd. Deci, pentru semnale NRZ, cele două unităŃi de măsură au
aceeaşi semnificaŃie. Pentru semnale RZ, intervalul elementar este 1/2 din intervalul
de bit , Tp = Tb x 1/2.
Creşterea ratei de modulaŃie se poate face prin reducerea duratei intervalului
elementar Tp. Dacă însă intervalul elementar este prea mic comparativ cu timpul de
creştere ("rise time") şi timpul de cădere ("fall time") al semnalului transmis pe linia
de comunicaŃie, datele nu mai pot fi recuperate corect la recepŃie deoarece
amplitudinea pulsului poate să nu mai intersecteze pragul de decizie.
Pentru o rată de modulaŃie fixă, compromisul făcut pentru introducerea
informaŃiei de ceas de transmisie în semnalul RZ unipolar constă în reducerea vitezei
de transmisie comparativ cu NRZ.

Tb
Date +
NRZ-L 1 0 1 1 0 1 0 0
0 t

Clock

+ Tp
RZ
Unipolar t
0
1 0 1 1 0 1 0 0

Figura 4.13 Codul RZ

186
Capitolul 4. Adaptarea fluxului de date la canalul de comunicaŃie

Semnalul RZ, deoarece nu are facilităŃi complete de sincronizare (de exemplu


în cazul şirurilor lungi de „0”) nu este utilizat pentru transmisiuni de date uzuale,
găsindu-şi însă aplicaŃii în înregistrarea magnetică digitală a semnalelor.
Avantajul esenŃial al codurilor RZ comparativ cu NRZ este facilitatea de
sincronizare rezultată prin includerea informaŃiei de ceas, facilitate care trebuie
exploatată pe durata transmiterii de simboluri „1”. Codurile RZ au însă o componentă
de curent continuu şi o lăŃime de bandă extinsă faŃă de NRZ.
Codurile RZ, ca şi codurile NRZ, nu posedă posibilităŃi intrinseci de detecŃie a
erorii.

4.3.3 Coduri cu modularea poziŃiei sau a duratei impulsului

Codarea impulsurilor în poziŃie, PPM - Pulse Position Modulation, utilizează un


puls de 1/4 din intervalul de bit, plasat la începutul acestuia pentru "0" şi un puls de
1/4 din intervalul de bit plasat la mijlocul intervalului de bit pentru "1", figura 4.13.
În cazul modulaŃiei impulsurilor în durată PDM - Pulse Duration Modulation se
utilizează pulsuri de 1/3 din intervalul de bit pentru "0" şi 2/3 din intervalul de bit
pentru "1", ambele plasate la începutul intervalului de bit (figura 4.14).
În cazul semnalului PPM, intervalul elementar Tp este 1/4 din intervalul de bit
(Tp = Tb x 1/4), deci rata de transfer se reduce de patru ori faŃă de NRZ în aceleaşi
condiŃii, respectiv pentru o rată de modulaŃie constantă (deoarece rata de modulaŃie
maximă este specifică unui canal şi este determinată din timpul de creştere sau
timpul de cădere al semnalului de pe linia de transmisie fiind deci influenŃată de
lungimea şi tipul liniei).

Date +
NRZ-L 1 0 1 1 0 1 0 0
0 t

+
PPM
Unipolar t
0
1 0 1 1 0 1 0 0
+
PDM
Unipolar t
0
1 0 1 1 0 1 0 0

Figura 4.14 Codurile PPM şi PDM

Semnalul PDM având un interval elementar minim Tp = Tb x 1/3, permite,


pentru aceeaşi rată de modulaŃie, o viteză de transmisie de trei ori mai mică decât
NRZ.
În cazul semnalelor modulate PPM şi PDM, timpul maxim în care semnalul de
linie poate să fie într-o anumită stare este mult mai mic decât pentru NRZ. Pentru
PPM acest timp este 1,25 x Tb , iar în cazul PDM este 0,67 x Tb . Nivelul mediu de
semnal pe linie, respectiv componenta continuă, va fi mult redusă în cazul PPM şi

187
TRANSMITEREA INFORMAłIEI ÎN REłELELE DE CALCULATOARE

PDM faŃă de NRZ. Evident, PDM este o soluŃie mai avantajoasă decât PPM, în
condiŃiile în care ambele includ informaŃia de ceas de transmisie.

4.3.4 Coduri cu codarea fazei, PE

Codurile PE - Phase Encoded (cu fază codată) utilizează tranziŃiile nivelului de


semnal atât pentru transportul datelor, cât şi pentru informaŃia de sincronizare. Sunt
patru tipuri de coduri PE:

- BiФ-L - Biphase Level, bifazic de nivel sau Manchester


- BiФ-M (BMC) - Biphase Mark, bifazic mark
- BiФ-S (BSC) - Biphase Space, bifazic space
- DM - Delay Modulation, cu modulaŃia întârzierii sau Miller

Fiecare cod implică cel puŃin o tranziŃie a nivelului de semnal pe un interval de


bit, deci implicit există şi informaŃia de sincronizare.

Codul BiФ-L este de fapt o modulare PSK ("Phase Shift Keying") care se
obŃine prin sumarea modulo 2, folosind un operator EXCLUSIVE-OR (XOR), a
semnalului codat NRZ-L cu ceasul de transmisie. Prin urmare, în forma de undă
rezultată vom regăsi semnalul de ceas pentru „0” şi inversul semnalului de ceas
pentru „1”. (figura 4.15). Semnalul astfel obŃinut este coerent din punct de vedere al
fazei.
În ceea ce priveşte codurile BiФ-L (bifazice nivel) acestea sunt cunoscute şi
sub denumirea de coduri Manchester. Aşa cum se observă (figura 4.14) ele folosesc
o tranziŃie pozitivă la mijlocul intervalului de bit pentru "0" logic şi una negativă, tot la
mijlocul intervalului de bit pentru "1" logic. Pentru "1" şi "0" adiacenŃi apare un impuls
de lăŃime egală cu intervalul de bit. Pentru secvenŃele constante de "1" sau "0" se
obŃine de fapt semnalul de ceas, neinversat pentru „0” şi inversat pentru „1”. Există şi
versiunea de cod care alocă invers tranziŃiile, acesta numindu-se cod Manchester
inversat.
Codul Manchester codifică biŃii prin tranziŃii, ceea ce înseamnă că el conŃine
câte o tranziŃie pentru fiecare interval de bit, ceea ce îl face foarte eficient pentru
sincronizarea la nivelul echipamentului de recepŃie (autosincronizare). Valoarea
medie a semnalului astfel generat este nulă, deci acest cod nu introduce
componenta continuă în forma de undă transmisă. În schimb, datorită tranziŃiilor
suplimentare introduse, ocupă o lăŃime de bandă dublă faŃă de semnalul în banda de
bază sau decât NRZ sau NRZI. Din cauza numărului mai mare de tranziŃii în unitatea
de timp, la aceeaşi lăŃime de bandă ocupată este mai puŃin eficient decât alte coduri.
Codul Manchester poate fi privit ca un caz particular de cod PSK, deoarece
fiecare bit comandă faza impulsului rectangular al purtătoarei.
Codarea BФ-L (Manchester) este utilizată în reŃelele de comunicaŃie de tip
Ethernet.

Codurile BiФ-M şi BiФ-S pot fi considerate semnale binare modulate FSK


("Frequency Shift Keying") cu coerenŃă de fază. În cazul BiФ-M, un "1" logic este
reprezentat printr-o succesiune de substări „01”, „10” transmise pe timpul intervalului
de bit, în timp ce "0" logic este reprezentat prin succesiunea de substări „00” şi „11”.
Starea care urmează la un moment dat pentru un anumit bit transmis va fi, dintre

188
Capitolul 4. Adaptarea fluxului de date la canalul de comunicaŃie

cele două posibile, cea care asigură inversarea stării anterioare (tranziŃie). Cele
două substări posibile se succed astfel încât dacă starea dinainte s-a terminat pe
nivel „1” atunci cea care urmează va începe cu nivel „0” şi invers.
Semnalul BiФ-S este similar cu semnalul BiФ-M, cu deosebirea că alocările de
semnal pentru "0" şi "1" sunt inversate. Pentru aceste coduri, variabila logică este
codată printr-o tranziŃie la începutul fiecărui intervalul de bit la care se adaugă şi
tranziŃii la mijlocul intervalului de bit atunci când se transmite „1” în cazul BiФ-M sau
„0” în cazul BiФ-S.
În figura 4.15 sunt exemplificate codurile BiФ-M şi BiФ-S.

+
Date
1 0 1 1 0 1 0 0
NRZ-L t
0

BФ-L
Manchaster t
-
1 0 1 1 0 1 0 0
+
BФ-M
- t
1 0 1 1 0 1 0 0
+
BФ-S

- t
1 0 1 1 0 1 0 0

DM +
Miller
- t
1 0 1 1 0 1 0 0

Figura 4.15 Coduri PE bipolare

Codul DM este cunoscut şi sub denumirea de cod Miller. Un "1" logic este
reprezentat printr-o tranziŃie la mijlocul intervalului de bit, iar "0" logic printr-o tranziŃie
la sfârşitul intervalului de bit, dacă "0" este urmat tot de "0" sau nici o tranziŃie dacă
"0" este urmat de "1" logic.

Codurile bifazice (L, M şi S) au impulsul elementar al formei de undă folosite


pentru transmisie de lăŃime minimă 1/2 din intervalul de bit, Tp = Tb / 2. Cea mai mare
durată a impulsului elementar este un interval de bit Tb. Codul DM (Miller) are
impulsul elementar de durată mai mare: durata minimă este egală cu un interval de
bit Tb iar durata maximă este 2 x Tb. Această proprietate constituie un avantaj
deoarece dacă impulsul elementar este prea scurt, mai scurt ca durată decât 50%
din timpul de creştere (figura 4.16), atunci recuperarea corectă a datelor este
compromisă dacă nu se utilizează tehnici de refacere. Deci, o deplasare de fază
(jitter de fază) de 50% pentru codurile NRZ, corespunde la codurile bifazice limitei de

189
TRANSMITEREA INFORMAłIEI ÎN REłELELE DE CALCULATOARE

operare corectă. Totodată, codurile bifazice au o viteză de transmisie (rată a


informaŃiei) înjumătăŃită faŃă de cea a codurilor NRZ pentru aceeaşi rată de
modulaŃie. Codurile bifazice bipolare nu conŃin în spectrul lor componenta continuă.

Tp= Tr Tp= 50% ·Tr


Impulsuri
elementare t

tr
Impulsuri Prag de decizie
recepŃionate
t

Figura 4.16 Efectul duratei impulsului elementar asupra deciziei

Codurile DM ("Delay Modulation") au aceeaşi caracteristică de interferenŃă


intersimboluri ca şi codurile NRZ, deoarece au acelaşi interval elementar. Ele au
performanŃe mai bune deoarece durata maximă a semnalului cu nivel constant este
2 x Tb. În acelaşi timp, codurile DM necesită o lăŃime de bandă mai mică, nu au
componenta de curent continuu şi includ totodată şi facilităŃi de sincronizare. Atât
codurile BФ, cât şi DM, sunt utilizate pentru înregistrările digitale magnetice. Cele BФ
se pretează la înregistrările pe disc magnetic, iar DM la înregistrările de înaltă
densitate cu împachetarea secvenŃelor de biŃi.

În general, codurile cu codarea fazei au un spectru de frecvenŃe îngust, nu au


componentă de curent continuu şi oferă posibilităŃi de sincronizare.
Codurile bifazice nu au posibilităŃi de detectare a erorilor. Codul DM oferă
posibilitatea de detecŃie a unei erori prin urmărirea duratei intervalului de semnal cu
nivel constant: dacă acesta este mai mare decât 2 x Tb atunci a apărut o eroare. El
necesită două strobări pe fiecare interval de bit. Deoarece secvenŃele lungi de "1"
sau "0" sunt codate prin tranziŃii, se reduce probabilitatea de eroare faŃă de codurile
clasice care permit lipsa de semnal pe linie (şi deci posibilitatea simulării unui "1" fals
prin strobarea unui impuls de zgomot).

4.3.5 Coduri multinivel, MLB

Codurile binare multinivel, MLB - Multi Level Binary, utilizează mai multe
niveluri ale semnalului de linie. Codurile multinivel prezentate în continuare folosesc
trei niveluri de semnal (+, 0, -) pentru reprezentarea informaŃiei binare. La recepŃie se
obŃine un singur bit pe durata Tb. Aceste coduri se mai numesc şi coduri
pseudoternare pentru a le deosebi de cele real ternare, unde la recepŃie se extrag
1,57 biŃi de informaŃie pe o perioadă de transmisie şi nu un singur bit ca în cazul
MLB. Principalele coduri multinivel sunt prezentate în figura 4.17 şi sunt descrise în
continuare.
Cel mai performant cod de impulsuri din categoria MLB este codul PRZ - Polar
Return to Zero (RZ polar). El este un cod RZ care utilizează trei niveluri de semnal.

190
Capitolul 4. Adaptarea fluxului de date la canalul de comunicaŃie

Un "1" logic este reprezentat printr-un impuls de polaritate pozitivă, iar "0" logic este
reprezentat printr-un impuls de polaritate negativă. Fiecare puls durează 1/2 din Tb.
Codul RZ polar, PRZ, utilizează o formă de undă care revine la 0 pentru
fiecare puls indiferent dacă numărul de biŃi „0” sau „1” este par sau impar. Din acest
motiv nu este necesar un semnal separat de ceas pentru recepŃie deoarece
informaŃia de ceas se găseşte pe fiecare interval de bit Tb. Codul are proprietăŃi de
sincronizare foarte bune datorită prezenŃei de tranziŃii pe fiecare interval de bit. În
cazul şirurilor lungi de „1” sau „0” apare o deplasare de curent continuu (componenta
continuă) ca şi în cazul NRZ.
Codurile multinivel bipolare BP utilizează impulsuri de durată Tb / 2 sau Tb
pentru "1" logic şi lipsa de impuls pe durata intervalului de bit pentru "0" logic.
Polaritatea impulsurilor pentru "1" logic este alternantă. De aceea aceste coduri se
mai numesc şi coduri AMI - Alternate Mark Inversion, de obicei cu referire la
utilizarea de impulsuri cu durata egală cu intervalul de bit. Deoarece pe durata lui „0”
există lipsă impuls iar pe durata lui „1” se transmit alternativ pulsuri pozitive şi
negative valoarea medie e semnalului este nulă şi deci se elimină astfel componenta
continuă. Codurile BP/AMI sunt utilizate pe larg în sistemele de comunicaŃii telefonice
T1-PCM. Deoarece codurile BP nu au componentă de curent continuu, se pot utiliza
repetoare de linie tele-alimentate, cuplate prin transformatoare şi alimentate printr-o
buclă de curent de la echipamentul central.

Date +
NRZ-L 1 0 1 1 0 1 0 0
0 t

Clock
t

+
PRZ
0
RZ Polar t
-
1 0 1 1 0 1 0 0
+
BP 0
- t
1 0 1 1 0 1 0 0
+
AMI 0
- t
1 0 1 1 0 1 0 0

Figura 4.17 Codurile PRZ şi BP / AMI

191
TRANSMITEREA INFORMAłIEI ÎN REłELELE DE CALCULATOARE

ProprietăŃile de sincronizare ale codurilor BP sunt foarte bune doar dacă


numărul de biŃi "0" transmişi succesiv este limitat. Aceasta permite rămânerea în
sincronism a circuitelor de ceas a repetoarelor logice de pe linie. Pentru secvenŃele
lungi de "0" a fost utilizată o schemă de substituire B6ZS - Binary with 6 Zeros
Substitution pentru înlocuirea secvenŃelor mai lungi de 6 zerouri cu o secvenŃă
determinată care să permită rămânerea în sincronism şi care să poată fi determinată
univoc la recepŃie în scopul eliminării ei şi refacerii succesiunii iniŃiale de date. Există
şi alte scheme de substituire bazate pe acelaşi principiu, codurile astfel generate
numindu-se coduri AMI modificate şi vor fi prezentate ulterior.
O procedură de codare similară asociază „1” cu lipsa semnalului şi „0” cu
impulsuri alternative.

În cazul codurilor dicod, DI - Dicode, un impuls bipolar (de lungime Tb pentru


DI-NRZ şi Tb / 2 pentru DI-RZ) este asociat fiecărei tranziŃii a datelor de intrare (figura
4.18). Pulsurile succesive trebuie să alterneze ca semn. Fronturilor crescătoare din
secvenŃa de date li se asociază puls pozitiv iar fronturilor descrescătoare li se
asociază puls negativ. Ca şi în cazul NRZ-M şi NRZ-S, polaritatea pulsurilor ar putea
să nu corespundă neapărat cu starea logică a datelor. Un puls pozitiv poate
reprezenta atât o tranziŃie din "0" în "1", caz în care rezultă codurile prezentate, cât şi
o tranziŃie din "1" în "0", caz în care se obŃin alte coduri, echivalente, cu proprietăŃi
similare.

Date +
NRZ-L 1 0 1 1 0 1 0 0
0 t

Clock
t

+
DI-NRZ 0
t
-
1 0 1 1 0 1 0 0
+
DI-RZ 0
t
-
1 0 1 1 0 1 0 0
Figura 4.18 Codurile DI

Spectrul de putere pentru codurile DI-RZ/NRZ este similar cu cel al codurilor


BP/AMI şi nu conŃine componentă de curent continuu. Sincronizarea de bit pentru
codurile DI se obŃine ca şi la cele BP. La codurile DI, ca şi la BP/AMI numărul de biŃi
identici succesivi trebuie contorizat şi substituit dacă se depăşeşte o anumită
lungime. Codurile DI au posibilitatea intrinsecă de detectare a erorilor singulare,
datorită numărului de două tranziŃii (una pozitivă şi una negativă) care sunt asociate

192
Capitolul 4. Adaptarea fluxului de date la canalul de comunicaŃie

cu bitul codat, ceea ce înseamnă că un număr par de pulsuri succesive cu aceeaşi


polaritate este echivalent cu apariŃia erorii.

Codurile ternare cu perechi selectate, PST - Pair Selected Ternary, au fost


dezvoltate pentru a minimiza neajunsul altor coduri bipolare în ceea ce priveşte
pierderile de sincronizare la transmiterea secvenŃelor lungi de "0". Ele păstrează
avantajul inexistenŃei componentei continue în spectru şi posibilitatea intrinsecă a
detectării unei erori singulare. Pentru codarea PST şirul de biŃi este grupat în perechi,
iar semnalul transmis în linie este determinat pe baza unui tabel de codare (tabelul
4.19).

Pereche Succesiune simboluri ternare Succesiune simboluri ternare


biŃi mod A mod B
00 - + - +
01 0 + 0 -
10 + 0 - 0
11 + - + -

Tabelul 4.19 Alocarea simbolurilor pentru codul PST

Dacă simbolurile ternare (+, 0, - ) sunt reprezentate prin pulsuri (pozitiv, nul,
negativ) atunci codul PST rezultat se numeşte PST-L, Pair Selected Ternary Level
(PST de nivel). Dacă simbolurile ternare (+, 0, - ) sunt reprezentate prin semnale de
ceas (puls pozitiv de ceas, lipsă impuls, respectiv puls negativ de ceas) atunci codul
obŃinut se numeşte PST-RZ, Pair Selected Ternary Return to Zero (PST cu
întoarcere în zero). Codurile PST descrise sunt reprezentate în figura 4.20.

Date +
NRZ-L 1 0 1 1 0 1 0 0
0 t

Clock
t

+
PST-L 0
- t
1 0 1 1 0 1 0 0
+
PST-RZ 0
- t
1 0 1 1 0 1 0 0

Figura 4.20 Coduri PST

193
TRANSMITEREA INFORMAłIEI ÎN REłELELE DE CALCULATOARE

Pe acelaşi principiu se pot genera şi alte tipuri de coduri PST, numite generic
coduri PST modificate, de exemplu folosind numai alocările de mod A, numai
alocările de mod B sau, cazul PST uzual, folosind alternarea modului A cu modul B
(vezi tabelul 4.19) pentru fiecare apariŃie a perechii 01, respectiv 10, în scopul
anulării componentei continue, aşa cum de altfel s-a exemplificat mai sus (figura
4.20). Sunt de asemenea posibile şi alte alocări decât cele descrise. Deoarece
succesiunea de 2 simboluri cu câte 3 niveluri permite 32 = 9 combinaŃii pentru
reprezentarea a 22 = 4 cuvinte binare, rezultă că există mai multe posibilităŃi de
alocare.

Codurile duobinare, DB - DuoBinary, sunt un exemplu de codare corelativă de


nivel deoarece există o corelaŃie între nivelurile succesive de semnal. Codurile DB
utilizează trei niveluri de semnal, nivelul din mijloc (0) fiind alocat lui "0", iar celelalte
două (+ , -) lui "1". Semnalul pseudoternar este generat prin precodarea datelor de
intrare astfel încât tranziŃiile de semnal să aibă loc numai între niveluri vecine, nefiind
de exemplu permise tranziŃiile de la "+" la "-" şi invers deoarece este sărit nivelul "0".
Codul DB codifică „0” prin lipsă impuls iar „1” este reprezentat prin puls pozitiv
dacă numărul de biŃi „0” până în momentul respectiv este par şi prin puls negativ
dacă numărul de biŃi „0” transmişi până la momentul respectiv este impar (figura
4.21).
Precodarea utilizează interferenŃa controlată intersimboluri. Avantajul principal
constă în dublarea debitului binar pentru aceeaşi lăŃime de bandă. Codul duobinar
poate determina erorile singulare prin sesizarea violării regulii de codare. Deşi ca
utilizare a benzii de frecvenŃă codurile duobinare sunt avantajoase, utilizarea lor este
limitată datorită unei importante componente de curent continuu. ProprietăŃile de
sincronizare sunt similare cu ale codurilor NRZ.

Date +
NRZ-L 1 0 1 1 0 1 0 0
0 t

Clock
t

+
t
DB 0
-
1 0 1 1 0 1 0 0

Figura 4.21 Codul DB

194
Capitolul 4. Adaptarea fluxului de date la canalul de comunicaŃie

Date +
NRZ-L 1 0 1 1 0 1 0 0
0 t

Clock
t

+
t
MLT-3 0
-
1 0 1 1 0 1 0 0

Figura 4.22 Codul MLT-3

Un cod multinivel uzual este MLT-3. Este folosit în reŃelele Ethernet 100
Base-Tx. Acest cod ocupă o lăŃime de bandă redusă comparativ cu alte coduri
(Manchester, AMI) şi generează interferenŃă electromagnetică redusă. Semnalul
MLT-3 rămâne în starea curentă când se transmite un „0” şi îşi schimbă ciclic starea
(+, 0, -) când se transmite „1” (figura 4.22).

4.3.6 Coduri alfabetice

Codurile alfabetice se bazează pe substituirea secvenŃei de biŃi cu o


succesiune de simboluri cu două stări (binare), cu trei stări (ternare) sau cu patru
stări (quaternare). Ele sunt identificate prin denumiri de forma nBmX, unde nB se
referă la numărul de biŃi succesivi (n) ce urmează a fi codaŃi unitar iar mX se referă la
numărul de simboluri (m) binare (X devine B), ternare (X devine T) sau quaternare (X
devine Q) utilizate pentru codificarea succesiunii iniŃiale nB.
În cazul codurilor alfabetice mulŃimea cuvintelor de cod de lungime n
generează un alfabet de intrare cu 2n cuvinte de cod distincte. Fiecărui cuvânt de cod
de intrare i se pune în corespondenŃă, prin codare, un alt cuvânt de cod, de ieşire.
Sunt disponibile 2m (mB), 3m (mT) sau 4m (mQ) cuvinte de cod de ieşire. De obicei
numărul de cuvinte de cod de ieşire este mai mare decât numărul de cuvinte de cod
de intrare ceea ce permite realizarea corespondenŃei într-o manieră avantajoasă
pentru transmisie fie prin alegerea doar a acelor simboluri care satisfac anumite
criterii fie prin utilizarea, după anumite reguli, a mai multor cuvinte de cod de ieşire
pentru un cuvânt de cod de intrare (în scopul identificării erorilor de transmisie, de
exemplu). Codurile mT şi mQ sunt coduri multinivel.
Principalele coduri alfabetice sunt descrise în continuare.

4B5B - este un cod care asociază fiecărui grup de 4 biŃi o secvenŃă de 5 biŃi, ceea ce
înseamnă că utilizează doar 16 cuvinte de cod din cele 32 posibile. Cuvintele
selectate pentru utilizare sunt doar cele care asigură cel puŃin o tranziŃie pentru
fiecare secvenŃă. ApariŃia unor secvenŃe din cele nealocate poate da informaŃii

195
TRANSMITEREA INFORMAłIEI ÎN REłELELE DE CALCULATOARE

despre apariŃia de erori de transmisie. Deoarece se transmit 5 biŃi pentru o informaŃie


reprezentată pe 4 biŃi, rezultă că lăŃimea de bandă efectivă este cu 25% mai mare.
4B5B este utilizat pe liniile 100BaseTX (IEEE 802.3u, 1995) şi MADI - Multichannel
Audio Digital Interface.

4B3T - este un cod folosit pentru ISDN BRI şi reprezintă grupuri de 4 biŃi, folosind 3
simboluri ternare (pe 3 niveluri: +, 0, -). Prin urmare, codul asociază 24 = 16
combinaŃii binare cu 33 = 27 simboluri ternare. Nu se utilizează combinaŃia 000
pentru a evita lipsa tranziŃiilor. Pentru eliminarea componentei continue, secvenŃele
de intrare pot fi reprezentate alternativ, complementar, (+ + -) şi (- - +), de exemplu.

8B10B - asociază simboluri de 10 biŃi cuvintelor binare de 8 biŃi. Este un cod care
păstrează informaŃiile de sincronizare şi elimină componenta continuă. În acest scop
fiecare cuvânt de intrare este codificat, alternativ, prin două secvenŃe binare
complementare. Astfel, numărul de biŃi „1” respectiv „0” care formează un prim
cuvânt binar ce urmează a fi transmis la prima apariŃie a secvenŃei de intrare este
egal cu numărul biŃi „0” respectiv „1” care formează cel de-al doilea cuvânt binar
transmis la următoarea apariŃie a secvenŃei de intrare. În acest fel două secvenŃe
corespunzătoare apariŃiilor succesive ale aceluiaşi cuvânt de intrare asigură o
valoare medie nulă a formei de undă rezultate. De asemenea, prin alegerea
combinaŃiilor 10B utilizate, se urmăreşte şi reducerea numărului de biŃi succesivi
identici, în scopul reducerii interferenŃei intersimbol. Cei 5 biŃi mai puŃin semnificativi
(b0 - b4) sunt codaŃi printr-un grup de 6 biŃi, iar restul de 3 biŃi (b5 - b7) sunt codaŃi
printr-un grup de 4 biŃi, secvenŃele astfel obŃinute fiind concatenate. Codul foloseşte
un sistem de reprezentare de forma Dxx.y, unde xx este cuprins între 0 şi 31, iar y
între 0 şi 7 (corespunzător numărului de biŃi alocaŃi). Codul defineşte şi simboluri de
control, caz în care reprezentarea este de forma Kxx.y. Deoarece numărul
simbolurilor posibile pe 10 biŃi este de 4 ori mai mare decât numărul simbolurilor de 8
biŃi ce trebuie transmise, fiecare secvenŃă de intrare are asociate două secvenŃe de
ieşire complementare pentru a determina o valoare medie nulă a formei de undă
obŃinute, aşa cum s-a arătat mai sus. Implementarea acestui cod se face de obicei
hardware, la nivelul interfeŃei de reŃea.
Codul 8B/10B este utilizat de Serial ATA, USB 3.0, Gigabit Ethernet, XAUI,
PCI Express, fibră optică, dar şi pentru stocarea digitală pe bandă magnetică.
Versiuni modificate ale acestui cod sunt folosite în standardul Compact Disc
(8B/14B), în reŃele 10 Gigabit Ethernet (64B/66B) sau în codarea video digitală DVI
(Digital Video Interface) sau HDMI (High Definition Multimedia Interface). Codul a
fost propus în 1983 de către Al Widmer şi Peter Franaszek.

2B1Q – Two-Binary, One-Quaternary, utilizează un simbol (1Q) definit prin 4 niveluri


posibile de semnal (quaternar) pentru a coda 2 biŃi (2B). Este un cod folosit în
sistemele ISDN.

4.3.7 Coduri AMI modificate

Atunci când se utilizează codul AMI (Alternate Mark Inversion), datorită faptului că
pulsurile succesive au polarităŃi complementare, componenta continuă se anulează
într-o manieră simplă şi evidentă existând astfel şi tranziŃii pe durata secvenŃelor
lungi de „1”. Rămâne nerezolvată însă problema includerii informaŃiei de sincronizare

196
Capitolul 4. Adaptarea fluxului de date la canalul de comunicaŃie

pentru secvenŃele lungi de „0”. Pentru a rezolva aceste situaŃii s-au propus codurile
AMI modificate, numite şi coduri de substituŃie, care substituie secvenŃele de „0” de o
anumită lungime cu secvenŃe ce includ tranziŃii. Principalele coduri de acest tip sunt
descrise în continuare.

B8ZS - Bipolar with Eight-Zero Substitution, substituie secvenŃele mai lungi de 8 biŃi
de zero, fiind utilizat în sistemele vocale de 64 kbps PCM. SecvenŃele constante de 8
biŃi „0” nu permit menŃinerea sincronizării echipamentelor şi sunt substituite. Aşa cum
s-a arătat, secvenŃele lungi de „1” nu ridică această problemă deoarece, în
transmisiile uzuale AMI (Alternate Mark Inversion), biŃii „1” succesivi sunt reprezentaŃi
prin impulsuri bipolare complementare. Este folosit în sistemele T1 (USA).

B3ZS - este prescurtarea pentru Bipolar with Three-Zero Substitution, fiind


caracterizat de introducerea deliberată în şirul de date a unei secvenŃe bipolare
atunci când şirul de date conŃine 3 sau mai multe zerouri consecutive. Este utilizat
pentru a asigura numărul de tranziŃii necesar sincronizării. Este folosit în sistemele
T3 (USA).

HDB3 - este un cod folosit în principal în Europa, Australia şi Japonia pe liniile E1


(AMI). Denumirea este o prescurtare pentru High-Density Bipolar de ordinul 3. Patru
biŃi „0” succesivi sunt codaŃi ca în tabelul de mai jos, determinând tranziŃii de
sincronizare corespunzătoare.
Număr de pulsuri transmise anterior
Ultimul puls impar par
negativ 000- +00+
pozitiv 000+ -00-

4.3.8 Coduri alfa-numerice şi numerice

O categorie fundamentală de coduri utilizate la nivelul superior al stivei de


protocoale ale modelului ISO/OSI, respectiv la nivelul aplicaŃie (interfaŃa cu
utilizatorul) sunt codurile alfa-numerice şi codurile numerice. Ele sunt proiectate
pentru a reprezenta litere, cifre, simboluri sau mesaje, asociind acestora cuvinte de
cod unice. Astfel de coduri sunt codul ASCII (pentru reprezentarea caracterelor alfa-
numerice) sau codul binar natural BCD (pentru reprezentarea numerelor naturale).
Codul ASCII de 7 biŃi plus paritate (ASCII - American Standard Code for
Information Interchange) a fost introdus de Institutul pentru Standarde al USA şi a
fost apoi acceptat ca standard federal. El conŃine, în afara caracterelor standard,
caractere speciale pentru controlul comunicaŃiei (vezi tabelul 4.23). ASCII utilizează
cel de-al 8-lea bit pentru paritate (impară pentru transmisiuni sincrone şi pară pentru
transmisiuni asincrone).
Echivalentul internaŃional pentru ASCII este Alfabetul InternaŃional nr. 5 al
CCITT (recomandarea V.3.) stabilit de CCITT şi ISO (International Standards
Organization), care are o variantă de bază şi o versiune internaŃională de referinŃă.
Aceasta din urmă este perfect similară cu ASCII cu o singură deosebire în linia 4,
coloana 2 (simbolul monetar). Codul conŃine 128 de caractere de control, simboluri
grafice, litere, cifre şi simboluri de uz general. El prezintă o anume flexibilitate pentru
utilizare adaptată particularităŃilor naŃionale.

197
TRANSMITEREA INFORMAłIEI ÎN REłELELE DE CALCULATOARE

b7b6b5 000 001 010 011 100 101 110 111


b4b3b2b1 rând\col 0 1 2 3 4 5 6 7
0000 0 NUL DLE SP 0 @ P ` p
0001 1 SOH DC1 ! 1 A Q a q
0010 2 STX DC2 " 2 B R b r
0011 3 ETX DC3 # 3 C S c s
0100 4 EOT DC4 $ 4 D T d t
0101 5 ENQ NAK % 5 E U e u
0110 6 ACK SYN & 6 F V f v
0111 7 BEL ETB ' 7 G W g w
1000 8 BS CAN ( 8 H X h x
1001 9 HT EM ) 9 I Y i y
1010 10 LF SUB * : J Z j z
1011 11 VT ESC + ; K [ k {
1100 12 FF FS , < L \ l |
1101 13 CR GS - = M ] m }
1110 14 SO RS . > N ^ n ~
1111 15 SI US / ? O _ o DEL

Tabelul 4.23 Codul ASCII

O parte din caractere sunt utilizate pentru controlul unor funcŃiuni de


comunicaŃie: sincronizare, gestionare mesaje, control.

Orice poziŃie din tabel poate fi identificată prin structura de biŃi sau prin
precizarea coloanei şi rândului. De exemplu, caracterul "F", situat în coloana 4,
rândul 6 poate fi reprezentat prin secvenŃa binară 100 0110 sau prin 4/6.
O variantă a codului ASCII este DIC - Data Interchange Code. Acesta este
diferit de ASCII în ceea ce priveşte unele caractere tipăribile care sunt înlocuite cu
caractere de control (netipăribile), conŃinând şi un bit de paritate pară. El a fost
adaptat pentru comunicaŃia computer-computer.

Alte coduri larg răspândite sunt: EBCDIC - Extended Binary Coded Decimal
Interchange Code, Codul Baudot de 5 biŃi utilizat în echipamentele de tipărire din
generaŃii mai vechi, Codul Hollerith (IBM), Codul BCD (Binary Coded Decimal - binar
codat zecimal).
EBCDIC este o extensie a codului ASCII în sensul că foloseşte un bit
suplimentar, al 8-lea, ceea ce permite dublarea numărului de caractere, la 256. În
plus, aceasta permite exprimarea hexazecimală a caracterului prin gruparea celor 8
biŃi câte 4 şi convertirea numărului binar respectiv în baza 16.
Codurile de alfa-numerice şi numerice sunt definite prin standarde şi convenŃii
şi nu au fost proiectate pentru transmitere eficientă pe canalele de comunicaŃie ele
fiind optimizate pentru dialog şi pentru procesare eficientă.

4.4 Elemente de teoria informaŃiei utilizate în construirea codurilor

Transportul informaŃiilor între două puncte, pe un canal de comunicaŃie,


presupune nu numai adaptarea fluxului de date la caracteristicile canalului (aşa cum
se întâmplă în cazul modulaŃiilor sau în cazul codurilor de linie), dar şi transmiterea

198
Capitolul 4. Adaptarea fluxului de date la canalul de comunicaŃie

fără erori a unui volum cât mai mare de informaŃii. În aceste scop se pune problema
ca fluxul de biŃi transmişi să transporte o cantitate cât mai mare de informaŃie, prin
optimizarea modului de alocare a cuvintelor de cod mesajelor transmise: utilizarea de
cuvinte de cod de lungime cât mai mică, alocarea de coduri scurte mesajelor care se
trimit mai frecvent sau definirea unor delimitatori optimi pentru cuvintele de cod în
cadrul secvenŃei transmise.

4.4.1 Categorii de coduri informaŃionale

Codurile optimizate pentru transportul unui volum cât mai mare de informaŃii
pe canale ideale (fără zgomot), sunt analizate sub denumirea de coduri
informaŃionale pentru canale fără perturbaŃii.
Unele coduri sunt proiectate pentru a asigura un anumit nivel de gestiune a
erorilor de transmisie (identificarea apariŃiei erorilor, corectarea erorilor). Acestea vor
fi abordate sub denumirea de coduri pentru canale cu perturbaŃii.

Codurile proiectate pentru canale de comunicaŃie care nu sunt afectate de


zgomot consideră că secvenŃa de biŃi transmisă ajunge intactă la recepŃie. În aceste
condiŃii cuvintele de cod asociate mesajelor de transmis trebuie să aibă o lungime cât
mai mică pentru a genera un debit binar cât mai redus şi în acelaşi timp trebuie să
permită delimitarea cuvintelor de cod transmise serial, în scopul extragerii mesajelor
iniŃiale.
Fluxul de informaŃii transmise pe un canal de comunicaŃie este alcătuit dintr-o
succesiune de mesaje. Generatorul de mesaje se numeşte sursă. O sursă este deci
caracterizată de un set de mesaje disponibile din care se aleg cele care urmează să
se transmită. Fiecărui mesaj al sursei i se poate atribui o probabilitate de a fi
transmis. Mesajelor li se asociază succesiuni de simboluri acceptate de canalul de
comunicaŃie. Aceste simboluri formează alfabetul canalului sau, generalizând,
alfabetul codului.
Receptorul trebuie să identifice, prin mijloace de corelaŃie specifice, care
mesaj a fost transmis la un moment dat cu probabilitatea maximă.
Deoarece informaŃia este transmisă folosind un set de mesaje predefinite,
înseamnă ca ea are un caracter discret.
Se poate astfel observa că, prin transmiterea informaŃiei sub forma mai multor
mesaje, aceasta capătă un caracter discret.
Presupunem o sursă primară de mesaje (sursă informaŃională) cu distribuŃia:

 s s K sn 
S :  1 2  (4.22)
 p1 p2 K pn 

Simbolurile acceptate de canalul de comunicaŃie formează mulŃimea


X = { x1, x2, ... , xm }.

În vederea realizării transmisiunii pe un astfel de canal, fiecărui mesaj sk i se


asociază o succesiune de simboluri din mulŃimea X, succesiune numită cuvânt de
cod. Se generează astfel mulŃimea cuvintelor de cod C = { c1, c2, ... , cn }.
CorespondenŃa bijectivă stabilită între mulŃimea cuvintelor de cod C şi mulŃimea
mesajelor S = { s1, s2, ... , sn } se numeşte cod.

199
TRANSMITEREA INFORMAłIEI ÎN REłELELE DE CALCULATOARE

4.4.2 Măsurarea cantităŃii de informaŃie

Se consideră o sursă de mesaje discretă (care poate furniza un număr finit de


mesaje), completă (la un moment dat este furnizat cu certitudine un anumit mesaj) şi
fără memorie (furnizarea unui mesaj nu depinde de cele furnizate anterior).
Dacă sursa este completă, conform definiŃiei de mai sus rezultă:
n

∑p
k =1
k = 1 , sau echivalent: (4.23)
n

Us k = E (evenimentul sigur).
k =1

Dacă mesajul sk este furnizat cu probabilitatea pk, atunci informaŃia care se


obŃine la furnizarea sa este o funcŃie de probabilitate şi are forma:

i(sk) = k log pk (4.24)

În cazul unei surse complete, discrete şi fără memorie care conŃine două
mesaje, notate, de exemplu, „0” şi „1”, se poate obŃine o informaŃie unitară, i(sk) = 1
dacă cele două mesaje sunt echiprobabile şi dacă k = -1.
Această valoare unitară a informaŃiei se numeşte bit (Binary digIT). Prin
definiŃie un bit reprezintă informaŃia care se poate obŃine la furnizarea unui mesaj din
două egal probabile.
1
Pentru pk = (mesaje echiprobabile), k = -1 şi considerând logaritmul în baza
2
2, rezultă:
1
i (sk ) = − log 2 = 1 [ bit / mesaj ] (4.25)
2

Prin urmare informaŃia furnizată de un mesaj poate fi transmis cu


probabilitatea pk, se calculează cu relaŃia:

i (sk ) = − log 2 pk [ biŃi / mesaj ] (4.26)

Dacă logaritmul este în baza e ( logaritm natural ), atunci rezultă:

i (sk ) = − ln ( pk ) = − ln 2 ⋅ log 2 pk (4.27)

Unitatea de măsură în acest caz se numeşte “nat” (natural unit):

1
1 nat = ≈ 1.44 biti (4.28)
ln 2

Dacă baza logaritmului este 10, unitatea de măsură se numeşte “dit” sau „decit”
(decimal unit) sau „Hartley”:

200
Capitolul 4. Adaptarea fluxului de date la canalul de comunicaŃie

1
1 dit = ≈ 3.32 biti (4.29)
log10 2

Pentru caracterizarea unei surse de mesaje nu este sugestivă informaŃia


transportată de un mesaj punându-se problema determinării informaŃiei medii pe
mesaj al unei surse. InformaŃia fiind o variabilă aleatoare discretă, cunoscând
probabilităŃile de furnizare a mesajelor ce compun sursa, se poate determina
informaŃia medie pe mesaj în cazul unei surse discrete, completă şi fără memorie.
Această mărime fizică este entropia sursei, notată H(S):

n n
H (S ) = ∑ pk ⋅ i (sk ) = − ∑ pk ⋅ log 2 pk (4.30)
k =1 k =1

Raportând aceasta mărime la durata medie de transmisie a unui mesaj se


obŃine debitul mediu de informaŃii al sursei.
Se poate arata că, în cazul unei surse cu numai două mesaje, informaŃia nu
poate depăşi valoarea maximă de un bit. Pentru a creşte de m ori valoarea
informaŃiei medii, numărul n de mesaje trebuie crescut la valoarea nm datorită
dependenŃei logaritmice.

4.5 Coduri pentru canale fără perturbaŃii

4.5.1 Coduri instantanee

Un cod se numeşte nesingular, dacă toate cuvintele de cod sunt distincte.


Un cod se numeşte unic decodabil dacă fiecărei succesiuni din alfabetul
codului îi corespunde o singură succesiune de mesaje.
Pentru ca un cod nesingular să fie unic decodabil este necesar să se ataşeze
cuvintelor de cod simboluri sau secvenŃe care să delimiteze cuvântul astfel încât la
transmiterea acestora, serial, pe un canal de comunicaŃie receptorul să poată
extrage corect cuvântul.
Dacă s-ar folosi un cod de forma s1 = 1, s2 = 01, s3 = 10, s4 = 11 atunci se
poate observa imediat că, deşi codul este nesingular, dacă se transmite „1101”
există mai multe succesiuni de mesaje posibile s4 s2 , s1 s1 s2 , s1 s3 s1 , deci nu se
poate lua o decizie corectă, codul nefiind unic decodabil.
SoluŃia imediată constă în utilizarea unor delimitatori. Delimitatorul poate fi un
simbol plasat la începutul sau la sfârşitul cuvântului de cod, ca în exemplele care
urmează:

A. Cod cu delimitator la sfârşit: s1 = 10, s2 = 110, s3 = 1110, s4 = 11110


B. Cod cu delimitator la început: s1 = 01, s2 = 011, s3 = 0111, s4 = 01111

Dacă delimitatorul se află la începutul cuvântului, atunci, pentru a se lua


decizia că s-a sfârşit recepŃionarea unui cuvânt trebuie aşteptat simbolul de la
începutul cuvântului următor. Această situaŃie are loc atunci când un cuvânt de cod
este prefix pentru celelalte. În exemplul de mai sus, pentru codul B, s1 este prefix
pentru s2, s3 şi s4, cuvântul s2 este prefix pentru s3 şi s4 iar s3 este prefix pentru s4.

201
TRANSMITEREA INFORMAłIEI ÎN REłELELE DE CALCULATOARE

În cazul exemplului A, nici un cuvânt de cod nu este prefix pentru altul şi nu


trebuie aşteptat cuvântul următor pentru a decide ce cuvânt s-a transmis.

Prin definiŃie codurile în care nici un cuvânt de cod nu este prefix pentru altul.
se numesc coduri instantanee. În exemplul de mai sus codul A este cod instantaneu.

Pentru a mări eficienŃa codului şi a creşte cantitatea medie de informaŃie pe


simbol vehiculat, codurile se construiesc prin alocarea unor cuvinte de lungime mică
mesajelor care se transmit mai des. De exemplu, în cazul codului Morse, caracterul
cel mai des transmis în limba engleză este „e”, căruia i s-a ataşat simbolul cel mai
scurt, „.”.

Codurile pentru care lungimea medie a cuvintelor de cod este cea mai mică
posibilă se numesc coduri compacte. În cazul acestor coduri lungimile cuvintelor de
cod trebuie să descrească odată cu creşterea probabilităŃii mesajelor.

Există mai mulŃi algoritmi de generare a codurilor instantanee având mesajele


cu probabilităŃi maxime de transmisie asociate cu cuvintele de lungime minimă.
Unele metode utilizate în scopul obŃinerii de coduri instantanee compacte sunt
prezentate în continuare.

4.5.2 Codarea Shannon-Fano

Metoda Shannon-Fano constă în ordonarea descrescătoare a mesajelor


sursei după probabilităŃi şi împărŃirea acestora în două grupe (submulŃimi) astfel încât
sumele probabilităŃilor din fiecare grupă sa fie cât mai apropiate posibil. Se alocă
apoi un prim simbol („0”, de exemplu) primei grupe şi un al doilea simbol („1” de
exemplu) celei de a doua grupe. Noile submulŃimi de mesaje sunt din nou divizate în
acelaşi mod (astfel încât să aibă sumele probabilităŃilor cât mai apropiate) şi din nou
se alocă simboluri „0” şi „1”. Procedura continuă până la epuizarea mesajelor.
Succesiunea de simboluri alocate formează cuvântul de cod. În tabelul 4.24 se poate
urmări modul de aplicare a algoritmului pentru o sursă cu şapte mesaje.

Mesaje ProbabilităŃi SubmulŃimi 1 SubmulŃimi 2 SubmulŃimi 3 SubmulŃimi 4 Cod


s2 0.25 0 0 00
(0.45) (0.25)
s6 0.2 1 01
(0.2)
s5 0.15 1 0 0 100
(0.55) (0.30) (0.15)
s3 0.15 1 101
(0.15)
s1 0.1 1 0 110
(0.25) (0.1)
s4 0.1 1 1 1111
(0.15) (0.1)
s7 0.05 0 1110
(0.05)

Tabelul 4.24 Codarea Shannon - Fano

202
Capitolul 4. Adaptarea fluxului de date la canalul de comunicaŃie

În cazul în care probabilităŃile sunt puteri întregi ale lui ½, împărŃirea se poate
face astfel încât probabilităŃile cumulate asociate submulŃimilor să fie egale. În acest
caz se obŃine un cod absolut optimal, adică un cod cu eficienŃa maximă, unitară.
Dacă probabilităŃile nu sunt puteri întregi ale lui ½, atunci metoda nu conduce
întotdeauna la soluŃia optimă, generându-se coduri instantanee, dar nu optimale.
Codarea Shannon-Fano este utilizată în compresia zip.

4.5.3 Codarea Huffman

Algoritmul propus de David Huffman se bazează pe reaşezarea mesajelor


sursei primare astfel încât probabilităŃile acestora să fie ordonate descrescător.
Ultimele două mesaje, cu probabilităŃile cele mai mici, sunt grupate într-un nou mesaj
compus, reordonându-se din nou mesajele, inclusiv noul mesaj compus. Se
grupează în continuare ultimele două mesaje, cu probabilităŃile cele mai mici şi se
reordonează din nou, procedura continuând până la epuizarea tuturor mesajelor.
În etapa următoare se alocă arbitrar simboluri „0” şi „1”, începând de la
ultimele mesaje (compuse sau simple) obŃinute, mergând invers pe lanŃul de
ordonare. Succesiunea de simboluri binare asociate probabilităŃilor care includ
mesajul iniŃial constituie cuvântul de cod.
Pentru exemplificare se consideră o sursă de mesaje având distribuŃia de mai
jos.
s s2 s3 s4 s5 s6 
S :  1  (4.31)
 0.1 0.3 0.15 0.05 0.15 0.25 

Aplicarea metodei de codare Huffman conduce la obŃinerea succesivă a grupărilor


reordonate ca în tabelul 4.25.

Mesaje Ordonare 1 Ordonare 2 Ordonare 3 Ordonare 4 Ordonare 5


0.6 (0)
0.4 0.4 (1)
0.3 0.3 (00)
s2 0.3 0.3 0.3 0.3 (01)

s6 0.25 0.25 0.25 (10)

s5 0.15 0.15 0.15 (11)

s3 0.15 0.15 (000)


0.15 (001)
s1 0.1 (0010)

s4 0.05 (0011)

Tabelul 4.25 Codarea Huffman

Corespunzător alocărilor de simboluri binare, rezultă următoarele cuvinte de


cod asociate mesajelor:

s1 = 0010; s2 = 01; s3 = 000; s4 = 0011; s5 = 11; s6 = 10

203
TRANSMITEREA INFORMAłIEI ÎN REłELELE DE CALCULATOARE

Codul obŃinut astfel este instantaneu şi compact. În funcŃie de ordinea de


alocare a simbolurilor, se pot obŃine mai multe coduri instantanee şi compacte.
Procedeul descris se poate extinde şi pentru cazul în care alfabetul codului
conŃine mai mult de 2 simboluri. Dacă alfabetul codului are m simboluri gruparea
celor n mesaje se face câte m , prin constituirea în acest mod de grupări conŃinând
un număr de mesaje egal cu numărul de simboluri posibile Dacă este cazul, se
adaugă un număr suplimentar de mesaje cu probabilitate zero, care nu se transmit
niciodată, astfel încât întotdeauna să se poată constitui grupările complete de m
mesaje, adică trebuie îndeplinită condiŃia

n = m + z (m-1), unde z este numărul de grupări (4.32)

Algoritmul Huffman se poate aplica şi pornind de la frecvenŃa de apariŃie a


unui mesaj, frecvenŃă care este evident corelată cu probabilitatea de furnizare a
mesajului: numărul de apariŃii al unui simbol este p % („p” fiind probabilitatea de
transmisie) din numărul total de simboluri transmise.
Un avantaj important al codurilor Huffman este acela că, pe lângă generarea
cuvintelor de cod, oferă şi o metodă de conversie de la o reprezentare multinivel (cu
mai mult de două simboluri, de obicei ternară sau quaternară) la o reprezentare
binară, respectiv o succesiune de „0” şi „1” care poate fi procesată în continuare
(codare aritmetică).
Codarea Huffman este utilizată de compresiile pkzip şi de codec-urile jpeg şi
mp3. Un cod Huffman modificat este utilizat şi în transmisiunile fax.

4.6 Coduri pentru canale cu perturbaŃii

Codurile prezentate nu sunt optimizate pentru utilizare în transferul informaŃiei


prin reŃelele de date. Ele urmăresc identificarea corectă a biŃilor la recepŃie (coduri de
linie) sau obŃinerea unor timpi de transmisie cât mai reduşi (coduri pentru canale fără
perturbaŃii). Astfel de coduri se numesc coduri fără managementul erorilor şi pot fi
utilizate pe canalele unde nu apar perturbaŃii.
Unele coduri urmăresc gestiunea erorilor de transmisie ce pot să apară pe un
canal de comunicaŃie, situaŃii în care cuvintele de cod trebuie să conŃină informaŃii
suplimentare, redundante, care să permită depistarea apariŃiei erorilor (coduri
detectoare de eroare) sau corectarea erorilor pe baza identificării poziŃiei biŃilor
eronaŃi (coduri corectoare de eroare). În aceste cazuri cuvântului de cod i se adaugă
simboluri suplimentare care reduc însă rata reală de transfer a datelor utile pentru un
canal dat. În această categorie intră de exemplu codurile cu bit de verificare a
parităŃii sau codurile bloc şi ele se numesc coduri cu gestionarea erorilor sau coduri
pentru canale cu perturbaŃii.

4.6.1 Principii de gestionare a erorilor

În scopul gestiunii erorilor se pot folosi secvenŃe bine delimitate (cuvinte), de


lungime fixă. Astfel de coduri se numesc coduri bloc. Ele pot conŃine un număr de
simboluri informaŃionale k pentru codificarea a 2k mesaje şi un număr r de control.
Lungimea n a cuvântului de cod va fi astfel:
n=k+r (4.33)

204
Capitolul 4. Adaptarea fluxului de date la canalul de comunicaŃie

Atunci când simbolurile de control sunt grupate şi delimitate explicit în


structura cuvântului de cod (de obicei la început sau la sfârşit) codurile se numesc
sistematice.

În cazul în care transmisia nu este organizată pe cuvinte de cod, fiind transmis


un şir continuu de biŃi (sau de lungime foarte mare) codurile se numesc coduri non-
bloc sau coduri recurente. Uneori acestea sunt optimizate pentru corecŃia
secvenŃelor de erori succesive, cazuri în care vorbim de coduri pentru corecŃia
salvelor de erori sau coduri convoluŃionale.
Codurile generate pe baza unor ecuaŃii algebrice (expresii matriciale, sume de
control) se numesc şi coduri algebrice. Astfel de coduri sunt codul Hamming, codul
Hadamard sau codurile ciclice care vor fi descrise în subcapitolele următoare.
Unele coduri prezintă proprietăŃi care le încadrează în mai multe din
categoriile de coduri menŃionate mai sus.
În cazul canalelor cu perturbaŃii codurile trebuie să aibă capacitatea de a
gestiona potenŃialele erori. Din acest punct de vedere codurile pot fi coduri
detectoare de erori sau corectoare de erori.

Pentru detecŃia unei erori de transmisie este necesar ca un cuvânt de cod


transmis să conŃină informaŃii suplimentare care să permită identificarea apariŃiei unei
succesiuni eronate. Prin urmare aceste coduri conŃin informaŃii redundante. În cazul
detecŃiei de erori de transmisie soluŃia de rezolvare a erorilor constă în lansarea unor
cereri de retransmisie.
Există mai multe metode de a identifica apariŃia unui cuvânt eronat. Dacă un
cuvânt este transmis de mai multe ori şi la recepŃie se compară succesiunile primite
se poate decide dacă succesiunea este corectă sau nu. Această metodă nu este
eficientă deoarece presupune ocuparea suplimentară a canalului util. O metodă mai
eficientă constă în transmiterea unui bit suplimentar care indică paritatea secvenŃei.
La recepŃie se verifică paritatea şi se compară cu cea indicată de bitul de paritate.
Problema detecŃiei erorilor nu este însă rezolvată în cazul apariŃiei unui număr par de
erori (care nu modifică paritatea). O soluŃie mai eficientă o constituie utilizarea
codurilor ciclice sau a altor coduri algebrice ce vor fi descrise ulterior.

Pentru a putea identifica apariŃia erorilor de transmisie, cuvintele de cod


trebuie să aibă un număr suficient de diferenŃe pentru ca la recepŃie să se poată
aprecia dacă secvenŃa primită aparŃine sau nu mulŃimii cuvintelor de cod. Numărul de
necoincidenŃe dintre două cuvinte de cod se numeşte distanŃa Hamming, notată în
continuare cu D.
Se poate arăta că pentru a detecta apariŃia a e erori, este necesar ca

D ≥ e +1 (4.34)

Pentru corecŃia unui cuvânt recepŃionat receptorul analizează cuvântul


recepŃionat şi va considera că, cu probabilitatea maximă, s-a transmis cuvântul de
cod aflat la distanŃa Hamming minimă faŃă de cel recepŃionat. Pentru a corecta în
acest mod cuvântul recepŃionat, este necesar ca, în funcŃie de numărul e al erorilor
corectabile, cuvintele codului utilizat să satisfacă relaŃia:

D ≥ 2e +1 (4.35)

205
TRANSMITEREA INFORMAłIEI ÎN REłELELE DE CALCULATOARE

În cazul uzual al codurilor binare eronarea unui bit înseamnă substituirea


acestuia cu valoarea complementară. Pe aceasta bază se poate considera că la
nivelul canalului are loc o operaŃie de tip XOR (adunare binară modulo 2, „sau
exclusiv”) între cuvântul de cod transmis şi un cuvânt de aceiaşi lungime, numit
cuvânt eroare, care va conŃine „1” pe poziŃiile unde apare eroare şi „0” acolo unde nu
apare eroare.

4.6.2 Coduri bloc liniare

Aşa cum s-a arătat anterior, codurile bloc conŃin cuvinte de lungime fixă (n)
fiind alcătuite din simboluri informaŃionale (k) şi simboluri de control (r). Simbolurile
de control trebuie să reflecte structura de simboluri informaŃionale pentru a permite
eventuala identificare a poziŃiilor eronate şi deci corectarea erorilor de transmisie.
Codurile bloc la care şi simbolurile de control se obŃin prin combinaŃii liniare ale celor
informaŃionale se numesc coduri liniare. În algebra booleana prin combinaŃii liniare se
înŃelege suma modulo 2 (restul împărŃirii cu 2, operare de tip XOR).
În cazul codurilor bloc liniare structura cuvântului transmis este de forma:

a1 a2 ... ak c1 c2 ... cr (4.36)

cu k+r = n.

Determinarea celor r simboluri de control se realizează plecând de la un


sistem de r ecuaŃii liniar independente de forma:

h11a1 ⊕ h12 a2 ⊕ ... ⊕ h1n an = 0


h a ⊕ h a ⊕ ... ⊕ h a = 0
 21 1 22 2 2n n
 (4.37)
 ..................................................
hr1a1 ⊕ hr 2 a2 ⊕ ... ⊕ hrn an = 0

unde hij ∈ {0,1} , cu j = 1, n ; i = 1, m , ak ∈ {0,1}, k = 1, n .

Din sistemul de ecuaŃii (4.37) se pot determina întotdeauna r simboluri ak ,


dacă sunt cunoscute n - r = k simboluri informaŃionale ak (sistemul va fi format din
ecuaŃii liniar independente).

În scopul unei scrieri mai compacte, se fac notaŃiile:

[V ] = [a 1 a 2 ... a n ] 1× n - cuvânt de cod (4.38)

h11 h12 ... h1n 


h h ... h2 n 
[H ] =  21 22 - matrice de control (4.34)
 ... ... ... ... 
 
 hr1 hr 2 ... hrn  r × n

206
Capitolul 4. Adaptarea fluxului de date la canalul de comunicaŃie

Cu notaŃiile de mai sus sistemul (4.37) se scrie compact sub forma:

[H ] ⋅ [V ]T = [ 0] (4.40)

RelaŃia (4.40) este universal valabilă pentru toate codurile bloc liniare, ceea ce
diferă de la un cod la altul fiind structura matricei de control [H].
Din (4.40) se observă că matricea de control [H] are un număr de linii egal cu
numărul simbolurilor de control r şi un număr de coloane egal cu numărul de
simboluri din cuvântul de cod n.
În cazul în care pe canalul de comunicaŃie apar erori se poate defini un cuvânt
eroare care conŃine „1” pe poziŃiile eronate şi „0” în rest.

[ε ] = [ε1 ε 2 ... ε n ] (4.41)

Daca [V’] este cuvântul recepŃionat, atunci neconcordanŃele dintre [V] şi [V’] vor fi
date de [ε].

[V '] = [a'1 a'2 ... a'n ]


[ε ] = [V ] ⊕ [V '] sau [V '] = [V ] ⊕ [ε ] sau [V ] = [V '] ⊕ [ε ] (4.42)

La recepŃie, dispozitivul care poate decide că ceea ce s-a recepŃionat este


corect sau nu şi eventual poate preciza şi locurile unde s-au introdus erori, se
numeşte decodor.
Implementarea decodorului se realizează după relaŃia (4.43):

[Z ] = [H ] ⋅ [V `]T (4.43)
unde
H este matricea de control cu care s-a realizat codarea
V` este cuvântului recepŃionat
Z este corectorul cuvântului recepŃionat:

 z1 
z 
[Z ]m×1 =  2  ; z i ∈ {0,1}. (4.44)
.....
 
 zm 

S-a arătat că [V `] = [V ] ⊕ [ε ] . Înlocuind această relaŃie în (4.43) se obŃine

[Z ] = [H ] ⋅ [ [V ] ⊕ [ε ] ]T = [1
H
42
] ⋅ [V4]T [ ] [ ]T
3⊕ H ⋅ ε => [Z] = [H ] ⋅ [ε ]
T
(4.45)
= [O ]

Se observa că, prin structura sa, corectorul [Z] marchează prin „1” poziŃiile
unde au apărut erori. Asta înseamnă ca trebuie să existe câte un corector pentru
fiecare combinaŃie de erori posibile. De exemplu, dacă pe canalul de transmisiuni pot
apărea “e” erori pe oricare din cele n poziŃii, înseamnă că pentru corecŃia automată a
acestora, vor trebui să existe Cne corectori distincŃi.

207
TRANSMITEREA INFORMAłIEI ÎN REłELELE DE CALCULATOARE

Pentru a corecta e erori sau mai puŃine, este necesar ca

2 m ≥ M = Cn0 + Cn1 + ... + Cne . (4.46)

unde M reprezintă numărul de cuvinte eroare posibile.

Prin urmare la recepŃie se calculează corectorul cu relaŃia (4.43) şi dacă


acesta are toate elementele nule atunci înseamnă ca ceea ce s-a recepŃionat este
corect. Dacă corectorul conŃine elemente nenule atunci înseamnă că au apărut erori.
Cunoscând corectorul [Z] şi având matricea de control [H] se poate determina
cuvântul eroare [ε] plecând de la relaŃia (4.45). Astfel se vor cunoaşte poziŃiile
eronate, deci se va putea face corecŃia necesară.
În mod practic, pentru o corecŃie rapidă, la receptor se construieşte un tabel
cu toŃi corectorii posibili şi cuvintele eroare care îi generează astfel încât imediat ce s-
a calculat corectorul să se poată extrage cuvântul eroare corespunzător. Pot exista
mai multe cuvinte eroare care generează acelaşi corector, dar se consideră cel cu
ponderea cea mai mică, pe principiul distanŃei minime.
Conform relaŃiei (4.42) sumând cuvântul recepŃionat cu cuvântul eroare se
obŃine cuvântul cel mai probabil transmis.

Exemplu
Se consideră un sistem de codare pentru transmiterea de cuvinte binare cu lungimea
de 6 biŃi cu posibilitatea de corecŃie a 23 combinaŃii de erori. Matricea de control ar
putea avea structura de mai jos.

1 0 1 1 0 0
H = 0 1 1 0 1 0
1 1 0 0 0 1 m×n

Conform relaŃiei (4.40) la receptor se pre-construieşte un tabel conŃinând cuvintele


eroare posibile şi corectorii corespunzători:

Cuvinte eroare Corectori ObservaŃii


posibile
000000 000 RecepŃie corectă
100000 101 Corectori pentru cuvintele care conŃin o
010000 011 singura eroare, indiferent de poziŃie
001000 110
000100 100
000010 010
000001 001
110000 110 Corectori inutilizabili, deoarece au fost
101000 011 deja determinaŃi pentru alte cuvinte
100100 001 eroare cu pondere mai mică
100010 111 Corector pentru două erori

208
Capitolul 4. Adaptarea fluxului de date la canalul de comunicaŃie

Dacă se recepŃionează secvenŃa [100011] corectorul care se obŃine conform


relaŃiei (4.40) este [110] ceea ce, conform tabelului, înseamnă că exisă o eroare pe
poziŃia a 3-a din stânga conform cuvântului eroare [001000]. Prin urmare se poate
face corecŃia şi se decide că secvenŃa cel mai probabil transmisă este [101011].

4.6.3 Codul Hamming

Dacă matricea de control [H] are o structură particulară atunci se pot genera
diverse coduri, unul dintre acestea fiind codul Hamming.
În cazul codului Hamming matricea de control conŃine pe fiecare coloană
transcrierea binară a numărului zecimal corespunzător: 0...01 pentru prima coloană,
0...10 pentru a doua coloană şi aşa mai departe până la 1...11 pentru ultima coloană.
Structura cuvântului de cod este de asemenea una particulară, conŃinând simbolurile
de control pe poziŃiile care sunt puteri întregi al lui 2. În acest fel fiecare ecuaŃie a
sistemului de ecuaŃii implementat de codor va conŃine un singur simbol de control şi
mai multe simboluri informaŃionale. Rezultă astfel o metodă simplă de determinare a
simbolurilor de control prin operaŃii XOR elementare.
Structura unui astfel cuvânt de cod va fi deci:

[V ] = [c1 c2 i3 c4 i5 i6 i7 c8 i9 K] (4.47)

unde i sunt simboluri informaŃionale iar c sunt simboluri de control.

Cunoscând numărul de biŃi informaŃionali se determină numărul necesar de


biŃi de control. În cazul unei singure erori, condiŃia necesară şi suficientă pentru
stabilirea numărului de simboluri de control r este dată de relaŃia 2 m ≥ Cn 0 + Cn1 sau

2m ≥ 1 + n (4.48)

Din relaŃia de mai sus se determină numărul simbolurilor de control care


trebuie adăugate pentru a corecta o singură eroare. Fiind cunoscute simbolurile
informaŃionale se pune problema de a determina şi adăuga în cuvântul de cod
simbolurile de control. Metoda poate fi extinsă şi pentru două sau mai multe erori.
La decodare se calculează corectorul după metoda utilizata în cazul codurilor
bloc rezultând de asemenea circuite simplificate pentru determinarea biŃilor acestuia.
Codul binar furnizat de corector determină direct poziŃia care trebuie corectată în
structura cuvântului binar.

În general, codurile care utilizează k biŃi informaŃionali şi r biŃi de control pentru care
rezultă un cuvânt de cod cu lungimea n astfel încât

1) n = k + r ,
2) numărul de erori corectabile este e = r / m cu n = 2m – 1
3) distanŃa minima Hamming, D, este 2e + 1 ≤ Dmin ≤ 2e + 2

se numesc coduri BCH - Bose, Chaudhuri şi Hocquenghem. Acestea formează o


clasă largă de coduri corectoare de erori care include codul Hamming prezentat, dar
şi alte coduri (codul Reed – Solomon, de exemplu).

209
TRANSMITEREA INFORMAłIEI ÎN REłELELE DE CALCULATOARE

Exemplu
Pentru a transmite numerele de la 0 la 15 sunt necesari 4 biŃi informaŃionali.
Numărul simbolurilor informaŃionale fiind k = 4. Pentru a corecta o eroare, din
condiŃia 2 m ≥ n + 1 scrisă sub forma 2 m ≥ m + k + 1 se determină 2 m ≥ m + 5 ⇒ m = 3 .

Structura cuvântului de cod va fi:


[V ] = [c1 c2 i3 c4 i5 i6 i7 ]
Matricea de control va avea 3 linii şi 7 coloane iar sistemul de ecuaŃii de codare va
avea forma:
 c1
c 2 
 
0 0 0 1 1 1 1  i3 
[H ]⋅ [V ]T = 0 1 1 0 0 1 1 ⋅ c 4 = [0]
1 0 1 0 1 0 1  i5 
 
 i6 
 i7 
 
ceea ce este echivalent cu
c4 ⊕ i5 ⊕ i6 ⊕ i7 = 0 c4 = i5 ⊕ i6 ⊕ i7
 
c2 ⊕ i3 ⊕ i6 ⊕ i7 = 0 ⇔ c2 = i3 ⊕ i6 ⊕ i7
c ⊕ i ⊕ i ⊕ i = 0 c = i ⊕ i ⊕ i
1 3 5 7 1 3 5 7

adică trei funcŃii logice combinaŃionale implementabile cu operatori XOR (sumatoare


modulo 2) cu câte trei intrări.

4.6.4 Coduri cu bit de paritate

În cazul codurilor cu bit de paritate se adaugă un singur simbol de control c1,


m = 1, deci n = k + 1. Simbolul introdus reprezintă paritatea şi se determină astfel
încât să fie satisfăcută relaŃia:

a1 ⊕ a2 ⊕ ... ⊕ an ⊕ c1 = 0 (4.49)

unde simbolurile ai sunt simboluri informaŃionale care alcătuiesc cuvântul de cod iar
c1 este bitul de paritate.
În cazul acestei tehnici paritatea se poate aplica fiecărui caracter transmis sau
biŃilor de acelaşi rang ai caracterelor dintr-un bloc de date.
La recepŃie se recalculează paritatea şi se compară cu cea de la emisie.
Metoda este eficientă pentru o singură eroare sau pentru un număr impar de erori.
Detectarea modificării parităŃii nu permite însă şi identificarea poziŃiei unde a
apărut eroarea. SoluŃia practică constă în lansarea unei cereri de retransmisie ARQ -
Automatic Repeat reQuest ceea ce înseamnă retransmisia întregului bloc.
Metoda este eficientă în cazul transmisiunilor unde rata erorilor este redusă.

210
Capitolul 4. Adaptarea fluxului de date la canalul de comunicaŃie

4.6.5 Coduri ciclice

Codurile ciclice sunt coduri care au proprietatea că o permutare ciclică a unui


cuvânt de cod este tot un cuvânt de cod. Cuvintele de cod sunt reprezentate prin
polinoame de grad n-1 sau mai mic, adică de forma :

v( x) = a0 ⊕ a1 x ⊕ a2 x 2 ⊕ ...... ⊕ an−1 x n−1 (4.50)

unde ai pot lua valori 0 sau 1.


Cuvântul de cod format din succesiunea de simboluri binare a0 , a1 , ... an−1 . În
cazul acestor coduri se alege un polinom generator al codului, de grad m, egal cu
numărul simbolurilor de control necesare, de forma:

g ( x) = g 0 ⊕ g1 x ⊕ L ⊕ g m x m
gm = 1 (4.51)
gi ∈ {0,1}; i = 0, m − 1

Polinomul generator al codului, g(x), se alege ca divizor ireductibil al


polinomului x n ⊕ 1 iar gradul său m verifică ecuaŃia : 2 m ≥ n + 1 . Un astfel de polinom
se numeşte polinom primitiv. Pentru fiecare grad există cel puŃin un polinom primitiv
iar acestea sunt calculate în literatura de specialitate. De exemplu pentru gradul 2,
singurul polinom primitiv este de forma x 2 ⊕ x ⊕ 1 . Pentru gradul 3 polinoamele
primitive sunt x 3 ⊕ x 2 ⊕ 1 şi x 3 ⊕ x ⊕ 1 .
Prin definiŃie, un polinom v(x) este cuvânt de cod dacă el este divizibil prin
polinomul generator al codului g(x). Codul se numeşte ciclic deoarece orice
permutare ciclică a unui cuvânt de cod constituie tot un cuvânt de cod .
Cuvântul de cod (4.51) transmis pe canalul de comunicaŃie poate fi
recepŃionat sub forma (4.52)

v' ( x) = a0 '⊕ a1 ' x ⊕ K ⊕ an −1 ' x n −1 , ai '∈ {0,1} ; (4.52)

unde a 0 ' , a1 '...... a n−1 ' reprezintă cuvântul recepŃionat, posibil eronat.

La recepŃie se evaluează restul împărŃirii polinomului recepŃionat v’(x) la


polinomul generator g(x). Dacă restul obŃinut este nul, atunci cuvântul recepŃionat
este corect. Dacă restul este diferit de zero, se decide că ceea ce s-a recepŃionat
este eronat. Dacă din structura restului se pot determina locurile în care au fost
introduse erorile, atunci se poate realiza corecŃia automată a acestora.

Codurile ciclice pot fi sistematice sau nesistematice.


În cazul codurilor ciclice nesistematice simbolurile informaŃionale nu sunt
plasate grupat la începutul sau sfârşitul cuvântului de cod cum se întâmplă în cazul
codurilor sistematice.
Pentru construirea unui cod ciclic nesistematic, pornind de la cele k simboluri
informaŃionale i0 , i1......ik −1 , se determină polinomul informaŃional de forma:

i ( x ) = i0 ⊕ i1 x ⊕ K ⊕ ik −1 x k −1 (4.53)

211
TRANSMITEREA INFORMAłIEI ÎN REłELELE DE CALCULATOARE

Cuvântul de cod se determină ca fiind

v( x ) = g ( x ) ⋅ i ( x) (4.54)

Cuvântul de cod astfel generat este divizibil prin g(x) deci respectă definiŃia
cuvintelor de cod.
În cazul codurilor ciclice sistematice, simbolurile informaŃionale se plasează pe
ultimele k poziŃii ale cuvântului de cod . Pentru aceasta se construiesc cuvintele de
cod conform relaŃiei:

v( x ) = r ( x ) ⊕ x m ⋅ i ( x)

unde r(x) reprezintă restul împărŃirii cu g(x) a expresiei x m ⋅ i (x) :

x m ⋅ i( x) r ( x)
= q( x) ⊕ (4.55)
g ( x) g ( x)

Implementarea codoarelor şi decodoarelor pentru coduri ciclice are la bază


utilizarea circuitelor de multiplicare şi divizare al polinoamelor. Atât la codare, cât şi la
decodare, în cazul codurilor ciclice, sunt necesare operaŃii de multiplicare sau de
divizare a polinoamelor cu coeficienŃi 0 sau 1.

Unele coduri Hamming (vezi subcapitolul 4.6.3) sunt de asemenea coduri


ciclice deoarece definiŃiei acestora. De exemplu, codul Hamming având lungimea
cuvântului de cod de 7 biŃi (cu 4 simboluri informaŃionale şi 3 de control) poate fi
gestionat ca şi cod ciclic, folosind polinomul generator x 3 ⊕ x ⊕ 1 .

Codul Golay
Un exemplu de cod ciclic este codul Golay. Codul Golay este un cod ciclic a
cărui funcŃie generatoare este:

g(x) = x11 ⊕ x9 ⊕ x7 ⊕ x5 ⊕ x3 ⊕ 1 (4.56)

Pentru codul Golay neextins dmin = 7, iar pentru codul extins dmin = 8.
Trăsătura distinctă a acestui cod este aceea că este singurul cod cu lungimea
cuvântului de cod 23 capabil să corecteze 3 erori.
Codul Golay împreună cu codul Hamming corector de o eroare sunt singurele
coduri perfecte corectoare de erori. Codul Golay are parametrii: n = 23, k = 12 şi r =
11 şi este un cod corector de 3 erori. El este un cod perfect deoarece numărul
cuvintelor eroare corectabile este egal cu cel al corectorilor.

4.6.6 Codul Hadamard

În cazul codului Hadamard cuvintele de cod constituie coloanele unei matrice


numită matrice Hadamard. Matricea Hadamard este o matrice pătratică, n x n, în
care n = 2k, unde k este numărul de biŃi informaŃionali ai cuvântului necodat. Un

212
Capitolul 4. Adaptarea fluxului de date la canalul de comunicaŃie

cuvânt de cod are toate elementele „0” în timp ce toate celelalte cuvinte conŃin un
număr egal de simboluri „0” şi „1” , respectiv n/2 biŃi „0” şi n/2 biŃi „1” plasaŃi în poziŃii
diferite. Cuvintele de cod diferă între ele în n/2 poziŃii şi din acest motiv cuvintele de
cod sunt ortogonale unul faŃă de celălalt.
Matricea Hadamard ce furnizează două cuvinte de cod este:

 0 0
M 2 =   (4.57)
0 1

Cele două cuvintele de cod sunt 00 şi 01. Matricea M4 furnizează patru cuvinte de
cod şi este construită din trei matrici M2 şi o matrice M2 cu elementele negate, M2*.

0 0 0 0
 
M M2  0 1 0 1
M 4 =  2 = (4.58)
M2 M 2*   0 0 1 1
 
0 1 1 0 

În general:

M Mn 
M n =  n  (4.59)
Mn M n* 

Dacă o matrice Hadamard are dimensiunea n x n, atunci produce n cuvinte de


cod, fiecare cu n biŃi. Fiecare din cele n cuvinte de cod conŃine k biŃi informaŃionali
precum şi r = n - k biŃi de control. Numărul de cuvinte de cod trebuie să acopere
toate combinaŃiile posibile ale celor k biŃi informaŃionali, deci avem nevoie ca fiecare
cuvânt de cod să conŃină n = 2k biŃi. Se poate astfel calcula numărul de simboluri de
control k din structura unui cuvânt:

r = n - k = 2k- k (4.60)

Se poate observa că prin creşterea numărului de simboluri informaŃionale


creşte foarte mult numărul de simboluri de control ceea ce face ca eficienŃa codului
să se reducă dramatic.

k k
Rc = = k = 2k − 1 (4.61)
n 2

Din cauza numărului mare de simboluri de control, pentru a transmite cuvinte


codate folosind codul Hadamard cu aceeaşi rată informaŃională ca şi în cazul lipsei
codării este necesar un canal cu lăŃime de bandă mult mai mare. Deoarece codul
Hadamard necesită lăŃimi de bandă mari, este de obicei folosit acolo unde spectrul
radio nu este aglomerat şi nu sunt restricŃii în privinŃa lăŃimii de bandă ocupate, ca
de exemplu în spaŃiul cosmic.
Deoarece oricare două cuvinte diferă în n/2 poziŃii, distanŃa Hamming minimă
va fi:

213
TRANSMITEREA INFORMAłIEI ÎN REłELELE DE CALCULATOARE

n
Dmin = = 2 k −1 (4.62)
2

Ca urmare numărul de erori ce poate fi corectat cu un cod Hadamard este


conform relaŃiei (4.30) deduse anterior:

Dmin − 1 1
e= = 2 k −2 − (4.63)
2 2

Pentru corecŃia erorilor vom considera k > 2 deoarece altfel se obŃine un


număr de erori corectabile subunitar. Pentru un număr de simboluri informaŃionale k
mare şi numărul de erori corectabile e devine semnificativ. De exemplu, pentru a
transmite cifrele hexazecimale codate pe 4 biŃi (k = 4) sunt necesare r = 12 simboluri
de control, deci o lungime a cuvântului de cod de 16 biŃi, în condiŃiile corectării a 3 biŃi
eronaŃi din cei 4 posibili.

4.7 Coduri pentru corecŃia salvelor de erori

Codurile prezentate până acum sunt eficiente în cazul unor rate reduse a
erorilor şi în primul rând în cazul erorilor singulare. Practic erorile care apar într-o
transmisiune de date nu sunt singulare, existând secvenŃe ne-eronate, dar şi
secvenŃe eronate în totalitate (biŃi succesivi eronaŃi). Aşa se întâmplă în cazul
transmisiunilor radio sau al înregistrărilor magnetice. Atunci când erorile apar
succesiv spunem că avem de a face cu salve de erori. Salvele de erori presupun o
abordare diferita faŃă de cazul erorilor izolate, câteva soluŃii practice fiind descrise în
continuare [20].

4.7.1 Coduri cu blocuri întreŃesute

În principiu raŃionamentul care stă la baza corecŃiei salvelor de erori porneşte


de la ideea că mai mulŃi biŃi succesivi din acelaşi bloc de date pot fi eronaŃi, dar nu şi
biŃii de acelaşi rang din blocuri succesive. Pentru a exploata această observaŃie se
pot transmite biŃii într-o altă ordine: primul bit din primul cuvânt, primul bit din al doilea
cuvânt şi aşa mai departe. Fiecărei secvenŃe i se aplică apoi algoritmii de corecŃie
cunoscuŃi. De exemplu dacă se foloseşte un cod corector de o eroare, este posibil ca
acestea să se afle câte una în fiecare cuvânt transmis, adică o eroare în secvenŃa
alcătuită din biŃii de pe poziŃia 1, altă eroare va fi posibilă în secvenŃa alcătuită din
biŃii de pe poziŃia 2 şi aşa mai departe. Prin urmare dacă apare o salvă de erori care
eronează un cuvânt iniŃial, aceasta se va distribui noilor blocuri de date.
OperaŃiunea de formare a blocurilor de date prin preluarea biŃilor de acelaşi
rang din cuvinte succesive se numeşte întreŃesere iar codurile generate astfel se
numesc coduri întreŃesute (interleaving).
ÎntreŃeserea realizată astfel se numeşte întreŃesere bloc şi este descrisă
principial în figura 4.26.

214
Capitolul 4. Adaptarea fluxului de date la canalul de comunicaŃie

EmiŃător

Date ÎntreŃesere Codificare

Zgomot
N
Canal de comunicaŃie

Decodificare De-întreŃesere Date


recepŃionate

Receptor

p biŃi / rând

a11 a12 ... a1p


kxp
biŃi de a21 a22 ... a2p k biŃi / coloană
informaŃie ......................................
ak1 ak2 ... akp

c11 c12 ... c1p

c21 c22 ... c2p r biŃi de control / coloană


......................................
cr1 cr2 ... crp

Figura 4.26 Principiul codării-decodării cu blocuri întreŃesute

Implementarea practică se bazează pe registre de deplasare. O secvenŃă


având lungimea de k x p biŃi de informaŃie este încărcată într-un registru organizat
pe k linii şi p coloane. Şirul de biŃi este introdus bit cu bit începând de la celula a11.
La fiecare tact biŃii se deplasează cu câte o poziŃie la dreapta în timp ce bitul aflat pe
ultima poziŃie din dreapta a primului rând se mută pe cea mai din stânga poziŃie a
rândului următor şi aşa mai departe. La final, după umplerea registrului, datele sunt
transmise pe canalul de comunicaŃie într-o nouă succesiune, completată cu biŃii de
control: a11 a21 … ak1 c11 c21 ... cr1 . Noua secvenŃă conŃine k biŃi de informaŃie şi r
biŃi de control şi poate fi tratată ca în cazul codurilor corectoare de erori singulare.

215
TRANSMITEREA INFORMAłIEI ÎN REłELELE DE CALCULATOARE

Dacă secvenŃa de eroare afectează un întreg cuvânt, atunci, prin întreŃesere,


erorile vor fi distribuite câte una fiecărui cuvânt nou obŃinut, deci vor putea fi
corectate ca erori singulare.
În general, dacă codul utilizat poate să corecteze e erori, prin procesul de
întreŃesere va fi posibilă corectarea unei salve de B biŃi cu

B≤e·p (4.64)

4.7.2 Coduri cu întreŃesere convoluŃională

O schemă alternativă de întreŃesere, convoluŃională, este prezentată în figura


4.27. Cele patru comutatoare de date operează sincron şi distribuie pe liniile de la 1
la p biŃii fluxului binar de intrare d(k). Cascada de elemente de stocare formează
registre de deplasare. Începând cu linia 1, numărul de celule de stocare creşte cu s
pe măsură ce se trece de la o linie la alta. Ultima linie, p, are (p - 1) x s celule de
stocare. Numărul total de celule de stocare de pe fiecare linie, incluzând atât
emiŃătorul, cât şi receptorul, este, în fiecare caz, acelaşi, pe fiecare cale existând un
număr total de (p - 1) x s elemente de memorare.

Canal
comunicaŃie
(p-1)s celule stocare
···
1 1
s celule stocare (p-2)s celule stocare
··· ···
2 2
d(k) (p-3)s celule stocare
d’(k)
2s celule stocare
··· ···
3 3
intrare ieşire
(p-1)s celule stocare
···
p p

emiŃător receptor

Figura 4.27 Principiul codării cu întreŃesere convoluŃională

Pentru a evalua funcŃionarea în timp trebuie să se Ńină seama de faptul că


toate comutatoarele de date comută pe frecvenŃă de bit fb în timp ce registrele de
deplasare deplasează conŃinutul cu o frecvenŃă de ceas fb / p , deci un interval de
timp egal cu durata de bit multiplicată cu numărul de linii. Deplasarea la nivelul unui
registru are loc numai sincron cu comutatorul de date, atunci când acesta
alimentează linia respectivă cu date.
Succesiunea în care biŃii vor fi transmişi pe canalul de comunicaŃie este
diferită de succesiunea iniŃială şi va fi afectată de întreŃesere. Dacă doi biŃi succesivi
din şirul de intrare sunt d(k) şi d(k+1) se poate observa că, dacă primul îşi păstrează
rangul d(k), bitul care a fost iniŃial d(k+1) va deveni în schimb d(k+1+p·s). Astfel dacă

216
Capitolul 4. Adaptarea fluxului de date la canalul de comunicaŃie

p=7 şi s=3 vor exista p x s = 21 biŃi interpuşi între doi biŃi care au fost iniŃial adiacenŃi
unul celuilalt.

Şirul biŃilor
de intrare D1 D2 D3 D4
bi (Tb)
q1 q2 q3 q4

+ + +

v2 v3
v1 Pentru fiecare bit de intrare
se generează 3 biŃi de ieşire
Şirul biŃilor de
ieşire (Tb/3)

Figura 4.28 Exemplu de codor convoluŃional

Prin comparaŃie cu o întreŃesere bloc, întreŃeserea convoluŃională are


avantajul că pentru aceiaşi distanŃă de intercalare (întreŃesere) este necesar mai
puŃin spaŃiu de memorie. Un alt avantaj este şi faptul ca un astfel de codor/decodor
se poate reconfigura rapid prin reorganizarea celulelor.
Ca şi în cazul codurilor cu blocuri întreŃesute, se poate aplica şi în cazul
codurilor cu întreŃesere convoluŃională o schemă de corecŃie a erorilor izolate pentru
fiecare cuvânt de lungime s nou format.
În figura 4.28 este prezentat principiul de realizare a unui codor convoluŃional.
Şirul biŃilor ce urmează a fi codaŃi se aplică la intrarea unui registru de deplasare
alcătuit din celule de memorie (circuite bistabile de tip D, flip-flop). Datele memorate
în celulele registrului sunt introduse în operatori XOR (sau-exclusiv, sumatoare
modulo 2). O dată cu introducerea unui bit la intrare se generează cuvinte de 3 biŃi la
ieşire prin deplasarea controlată a comutatorului de ieşire (îşi schimbă poziŃia cu o
frecvenŃă de 3 ori mai mare decât cea cu care intră datele, 3 x 1/Tb). De exemplu
pentru o secvenŃă de intrare de forma (1 0 1 1 0) se generează o secvenŃă de ieşire
de forma (111 010 100 110 001 000 011 000 000). Fiecare bit de intrare intervine în
calcularea a 4 x 3 = 12 biŃi generaŃi. Pentru decodare se utilizează arbori de
decodare (grafuri) care descriu tranziŃiile posibile. Deoarece numărul de noduri astfel
generate este foarte mare, pentru reprezentare se folosesc diagramele trellis în locul
diagramelor de stare.
În funcŃie de numărul de celule ale registrului şi de numărul de operatori XOR
se pot genera diverse configuraŃii de codoare convoluŃionale. În literatură [20] sunt
descrise metode şi algoritmi de construire a codificatoarelor în funcŃie de parametrii
de codare.

217
TRANSMITEREA INFORMAłIEI ÎN REłELELE DE CALCULATOARE

4.7.3 Codul Reed-Solomon, RS

Codurile bloc descrise anterior sunt gestionate la nivel de biŃi individuali. Codul
bloc Reed-Solomon (RS) este structurat pe grupuri de biŃi. Astfel de grupuri de biŃi
sunt numite simboluri. Aşadar codul RS organizează şirul serial de biŃi de intrare în
simboluri având lungimea de m biŃi, ulterior operându-se cu acestea. Prin urmare,
dacă un bit dintr-un simbol este eronat atunci se consideră că întregul simbol este
eronat.
Codul RS are k simboluri informaŃionale (în loc de biŃi), r simboluri de control a
erorilor, deci o lungime totală a cuvântului de cod de n = k + r simboluri. În plus el
este caracterizat de faptul că numărul de simboluri dintr-un cuvânt de cod este ales
astfel încât

n = 2m – 1 (4.65)

Codul RS are capacitatea să corecteze un număr e de simboluri eronate, unde

e=r/2 (4.66)

Dacă presupunem cazul uzual când se operează cu octeŃi, m = 8 , şi rezultă


un număr de simboluri într-un cuvânt de cod n = 28 – 1 = 255 simboluri. Pentru a
putea corecta un număr de erori e =32 , trebuie utilizaŃi un număr de simboluri de
control r = 2e = 64. Numărul simbolurilor informaŃionale posibile se obŃine prin
diferenŃă: k = n - r , respectiv k = 255 - 64 = 191 simboluri informaŃionale pentru un
cuvânt de cod.
k 191
EficienŃa unui cod cu parametrii de mai sus este Rc = = ≅ 0,75 .
n 255
Numărul total de biŃi într-un cuvânt de cod este 255 x 8 = 2040 biŃi / cuvânt de cod.
Deoarece codul RS exemplificat poate să corecteze 32 de simboluri, el poate
să corecteze de fapt o salvă de 32 x 8 = 256 erori consecutive de bit . Dacă folosim
codul RS cu o adâncime de întreŃesere p = 4 (numărul de coloane în reprezentarea
matricială din figura 4.28), atunci numărul de simboluri eronate succesive este p x e
şi numărul de biŃi eronaŃi succesivi care pot fi corectaŃi este

B=m·p·e (4.67)

Pentru m = 8, e = 32 şi p = 10 rezultă, de exemplu, B = 2560 biŃi.

Deşi codul RS poate să corecteze o secvenŃă eronată de o anumită lungime,


el trebuie în acelaşi timp să prezinte şi un segment de date fără erori (zonă liberă de
erori). Este interesant de observat că în timp ce codul RS exemplificat poate să
corecteze 256 de erori consecutive de bit el trebuie să aibă o regiune fără erori cu
lungimea de (255-32) x 8 = 1784 biŃi. Dacă erorile sunt aleatoare la nivelul de o
eroare per simbol, atunci codul RS poate să corecteze numai 16 erori de bit într-un
şir de 2040 biŃi.
Aşadar codul RS nu este un cod eficient pentru corectarea erorilor aleatoare
deoarece, dacă acestea apar, de exemplu, câte una la nivel de simbol, atunci efortul
de corectare este acelaşi ca şi în cazul eronării întregului simbol. El este un cod
eficient pentru salve de erori, atunci când se operează cu lungimi de simbol m
semnificative.

218
Capitolul 4. Adaptarea fluxului de date la canalul de comunicaŃie

p = 4 simboluri / rând

a1 1 a1 2 a1 3 a1 4

a2 1 a2 2 a2 3 a2 4 k=223
................................................ Simb. informaŃie / coloană
a223 1 a223 2 a223 3 a223 p
simboluri
c1 1 c1 2 c1 3 c1 4
r = 32
c2 1 c2 2 c2 3 c2 4 biŃi de control / coloană
................................................
C32 1 c32 2 c32 3 c32 4

Figura 4.29 Cod RS cu m = 8, k = 233 şi r = 32

4.7.4 Coduri concatenate

Atunci când trebuie gestionate şi erori individuale şi erori în salve se utilizează


cascade de codoare / decodoare corespunzătoare. Codurile astfel obŃinute se
numesc coduri concatenate.
Pentru a ilustra tehnica de concatenare se poate analiza codificarea
reprezentată în figura 4.29. Aceasta foloseşte un cod RS cu k = 223, r = 32, m = 8 şi
cu adâncimea de întreŃesere p = 4. Fiecărui rând i se poate aplica o codare
Hamming adăugând celor 4 simboluri informaŃionale de pe fiecare linie câte 3
simboluri de control.
Se obŃine astfel o matrice extinsă la 4 + 3 = 7 coloane. Numărul de biŃi de
informaŃie rămâne k = 223 x 8 x 4 = 7136 biŃi de informaŃie
Numărul de biŃi de control pentru codarea RS este r(RS) = 32 x 8 x 4 = 1024
biŃi de control RS. Numărul de biŃi adăugaŃi în urma codificării suplimentare Hamming
este r(H) = 255 x 8 x 3 = 6120 biŃi de control Hamming.
EficienŃa acestui cod devine astfel:

k 1
Rc = ≅ (4.68)
k + r ( RS ) + r ( H ) 2

Fără concatenare lungimea salvelor de erori este B = 8 x 4 x 16 = 512 biŃi iar


lungimea unui bloc este n = 8 x 4 x 255 = 8160 biŃi.
Cu concatenare se obŃine o lungime a salvei de erori B = 8 x 7 x 16 = 896 biŃi
pentru o lungime a blocului n = 8 x 7 x 255 = 14280 biŃi.

Eficacitatea codificării în scopul corectării salvelor de erori se măsoară prin


raportul B/n (lungimea salvei de erori raportată la lungimea blocului). Pentru
exemplul considerat se poate remarca faptul că se obŃine acelaşi raport, cu sau fără
concatenare, adică 512 / 8.160 = 896 / 14.280.

219
TRANSMITEREA INFORMAłIEI ÎN REłELELE DE CALCULATOARE

Prin urmare, se poate trage concluzia că in urma concatenării, deşi nu se


modifică eficienŃa de corecŃie a salvelor de erori se introduce şi posibilitatea corecŃiei
erorilor singulare dacă acestea nu se succed prea des, respectiv 1 bit eronat la
fiecare 7 biŃi neeronaŃi. Pentru exemplul considerat este posibilă corectarea unei
salve de 896 erori, dar şi a unei erori la fiecare 7 biŃi în restul de 14.280 - 896 =
13.384 biŃi. Fără concatenare restul de 13.384 biŃi trebuie să fie lipsiŃi de erori. PreŃul
plătit pentru aceasta facilitate (corecŃia erorilor singulare) constă în lungimea mult
mai mare a blocurilor de date.

În cazul în care secvenŃa de date transmisă are o structură asociată cu un tip


particular de informaŃie, codificarea poate lua în considerare alte cerinŃe, specifice,
cum ar fi cele legate de obŃinerea cu prioritate a unei rate ridicate de compresie
(pentru transmiterea în timp real a fluxurilor video), sincronizarea unor transmisii
agregate (comunicaŃii mixte video şi audio), acceptarea de la început a unei anumite
rate a erorilor (compresia cu pierderi în cazul anumitor formate grafice) sau
exploatarea unor caracteristici sau imperfecŃiuni ale percepŃiei umane care nu permit
identificarea unor abateri dincolo de o anumită rezoluŃie (standardul mp3, de
exemplu). Aceste codificări se bazează pe o procesare prealabilă a fluxului
informaŃional şi presupun o abordare distinctă.

220