Sunteți pe pagina 1din 21

Coduri in

comunicatii de date

Universitatea din Craiova, Facultatea de Automatica,


Calculatoare si Electronica 2010-2011
*****Cuprins*****

Coduri utilizate în sistemele de transmisiuni cu spectru


împrăştiat:
1. Sisteme de transmisiuni cu spectru împrăştiat
2.Secvenţe pseudo-aleatoare (CN—coduri zgomot)
3.Tehnici adiţionale de îmbunătăţire a performanţelorsistemelor
cu spectru împrăştiat
4. Coduri grup
5. Coduri ciclice
6. Coduri convoluţionale
Transimisia seriala
Sisteme de transmisiuni cu spectru împrăştiat

Principiul împrăştierii spectrului. Modelul unui sistem de comunicaţie


cu spectru împrăştiat

Împrăştierea spectrului este o tehnică de modulaţie a semnalului purtător de


informaţie. Această tehnică reprezintă o soluţie calitativ superioară în multe aplicaţii ce
implică comunicaţii prin medii cu acces multiplu, în special canalele radio.
Spre deosebire de tehnicile clasice de modulaţie, împrăştierea spectrului aduce
câteva elemente noi. Primul este că semnalele cu spectru împrăştiat utilizate pentru
transmiterea informaţiei digitale se disting prin aceea că lăţimea lor de bandă W [Hz]
este mult mai mare decât rata informaţiei R [biţi per secundă]. Astfel factorul
expansiunii de bandă [2]
β e = W/R (1.1)

pentru un semnal cu spectru împrăştiat este mult mai mare decât unitatea. Redundanţa
mare, inerentă în semnale cu spectru împrăştiat, este necesară pentru a putea realiza
transmisii la nivelele mari de interferenţă ce sunt întâlnite în unele canale radio sau pe
satelit. Codarea este un element important în proiectarea semnalelor cu spectru
împrăştiat deoarece formele de undă codate sunt de asemenea caracterizate printr-un
factor de expansiune a benzii ce este mult mai mare decât unitatea şi deoarece codarea
este o metodă eficientă de introducere a redundanţei.
Al doilea element important implicat în proiectarea semnalelor cu spectru
împrăştiat este pseudoaleatorul, care face ca semnalele să apară similar cu zgomotul
aleator şi dificil de demodulat de receptoare, altele decât cel dedicat. Acest element este
descris împreună cu aplicaţia acestor semnale.

Semnalele cu spectru împrăştiat sunt utilizate cu scopul:


(1) de a combate sau suprima efectele dăunătoare ale interferenţei datorate bruiajului,
a interferenţei cu alţi utilizatori ai canalului şi a interferenţei proprii datorate
propagării pe căi multiple;
(2) de a ascunde semnalul prin transmiterea sa la o putere joasă şi, astfel, de a face
dificilă detectarea sa de către un ascultător neavizat în prezenţa zgomotului de
fond;
(3) crearea de mesaje private în prezenţa altor ascultători.
(4) În alte aplicaţii decât comunicaţiile, semnalele cu spectru împrăştiat sunt folosite
pentru a obţine un nivel de acurateţe (timp de întârziere) cum şi un nivel al ratei
(vitezei) cum măsurătorilor în radar sau navigaţie.
Schema bloc prezentată în Figura 1.1 ilustrează elementele de bază ale unui sistem
de comunicaţie digital cu spectru împrăştiat, cu o secvenţă de informaţie binară la
intrarea transmiţătorului şi la ieşirea receptorului. Codorul şi decodorul de canal, cât
şi modulatorul şi demodulatorul sunt elementele de bază ale sistemului. În
completarea acestor elemente avem două generatoare identice de secvenţe (tipar)
pseudoaleatoare, una ce conlucrează cu modulatorul la finele transmisiei iar cea de-a
doua ce conlucrează cu demodulatorul la finele recepţiei. Generatoarele generează o
secvenţă binară pseudoaleatoare sau pseudonoise (PN) ce este introdus ă în semnalul
transmis la modulator şi extrasă din semnalul recepţionat la demodulator.

Tehnici de împrăştiere a spectrului.


Există diferite tehnici de a împrăş tia un semnal: –împrăştiere cu Secvenţă
Directă (DS Direct Sequence), –împr ăştiere cu salt de frecvenţă (FH Frequency-
Hopping), –împrăştiere cu salt de timp (TH Time Hopping) şi Multipurtătoare CDMA.
Sunt posibile, de asemenea, combinaţii ale lor.
*
Împrăştiere cu secvenţă directă
Secvenţa-directă este cea mai bună tehnică de împrăştiere a spectrului cunoscută.
Semnalul de date este multiplicat cu un cod zgomot pseudo-aleator (PN code). Un cod
PN este o secvenţă de semnale elementare (chips) de valori –1 şi 1 (polară) sau 0 şi 1
(nepolară) şi are proprietăţile zgomotului. Aceste proprietăţi de zgomot duc la valori
mici ale intercorelaţiei dintre coduri şi la dificultatea de a bruia sau de a detecta mesajul
de date.

În sistemele cu secvenţă directă, lungimea codului este [22] aceeaşi cu factorul


de împrăştiere adică:
β e(DS) = NDS

Împrăştiere cu salt de frecvenţă (Frequency Hopping FH)


O altă tehnică de împrăştiere a spectrului este prin salt de frecvenţă sau
Frequency Hopping (FH), care prezintă un efect „near–far” mult mai scăzut. Frecvenţa
purtătoare este modificată în acord cu o secvenţă unică (o secvenţă FH de lungime NFH).
În acest fel banda este mărită prin factorul NFN (dacă canalele nu se suprapun):
β e(FH) = NFH

Împrăştiere cu salt de timp (Time Hopping TH)


DS şi FH sunt cele mai comune forme de semnale cu spectru împrăştiat utilizate
în practică. Însă pot fi folosite şi alte metode pentru a introduce pseudoaleatorul în
semnalul cu spectru împrăştiat. O metodă, similară cu FH, este saltul (comutarea)
timpului. În TH, un interval de timp, care este ales mult mai mare decât 1/R, inversul
ratei informaţiei, este divizat într-un număr mare de sloturi de timp. Simbolurile
informaţiei codate sunt transmise, într-un slot de timp ales pseudoaleator, ca un bloc de
unul sau mai multe cuvinte de cod. Pentru a transmite biţii codaţi se poate utiliza
modulaţia PSK.

Secvenţe pseudo-aleatoare (CN—coduri zgomot)

Cerinţele codurilor zgomot

Semnalele transmise în sistemele cu spectru împrăştiat se doresc a fi aleatoare ca


şi zgomotul . Pentru a fi folosite în sistemele realizabile, aceste semnale trebuie să fie
construite pe baza unui număr finit de parametri, selectaţi aleatoriu şi stocaţi. La fel de
important, semnalele trebuie să fie generate şi la receptor şi trebuie să fie sincronizate
pentru a coincide perfect cu tactul transmisiei recepţionate .
* Deoarece doar un număr finit de parametri pot fi stocaţi memoria
transmiţătorului şi receptorului, urmărind ideile stabilite de teorema de eşantionare a lui
Nyquist, valorile numerice ale formei de undă aleatoare trebuie doar să fie specificate ca
eşantioane la intervale de timp proporţionale cu inversul benzii ocupate de semnale.
Trecând aceste eşantioane printr-un filtru liniar se generează întreaga formă de undă
continuă în timp ca o interpolare a semnalelor de intrare. Deoarece semnalele sunt ca
zgomotul gausian, fiecare eşantion poate fi aproximat ca şi o variabilă aleatoare
gausiană. Însă, aceasta va necesita specificarea unui număr suficient de biţi pe eşantion
pentru a obţine fidelitatea dorită. Chiar limitând complexitatea prin specificarea doar a
unui bit pe eşantion, ceea ce corespunde unei secvenţe binare, efectul utilizării unei
astfel de forme de und ă binare aleatoare este aproape la fel cu utilizarea unei forme de
undă de tip zgomot gausian. Faptul că forma de undă aleatoare binară poate fi uşor şi
flexibil modulată cu un semnal digital purtător de informaţie are consecinţe practice
importante.
O secvenţă aleatoare binară independentă este secvenţa Bernoulli (numită în
literatura inginerească „coin-flipping”).Proprietăţile de cheie „aleatoare” a secvenţei
Bernoulli sunt:

R.1 Proprietatea de simetrie:


Frecvenţele relative pentru „0” şi „1” (ponderile zerourilor şi unu-urilor) sunt ½.

R.2 Proprietatea de lungime de fugă:


În secvenţa aleatoare binară apar grupuri de zerouri şi unu-uri, numite lungimi de
fugă; jumătate din lungimile de fug ă sunt de mărime (lungime) unitară; un sfert sunt
de lungime doi; o optime sunt de lungime 3; o fracţie 1/2n sunt de lungime n pentru
orice n finit.
R.3 Proprietatea de deplasare şi adunare:
Dacă secvenţa aleatoare este deplasată cu orice număr nenul de elemente, secvenţa
rezultată va avea un număr egal de coincidenţe şi necoincidenţe cu secvenţa originală.

Coduri utilizate pentru împrăştierea


spectrului
Codurile care se pot găsi în sistemele DS practice sunt: coduri Walsh-Hadamard,
secvenţe M, coduri Gold şi coduri Kasami. Aceste seturi de coduri pot fi în mare
împărţite în două clase: coduri ortogonale şi coduri neortogonale. Secvenţele Walsh fac
parte din prima categorie, în timp ce celălalt grup conţine aşa numitele secvenţe
generate cu registre de deplasare.

1 Codurile Walsh Hadamard


Secvenţele Walsh Hadamard au avantajul de a fi ortogonale, şi în acest fel se pot
elimina interferenţele de multi-acces. Există totuşi şi câteva neajunsuri:

• Codurile nu au un singur maxim al autocorelaţiei.


• Împrăştierea nu este pe întreaga lăţime de bandă, energia fiind dispersată pe un
număr de frecvenţe discrete.
 Deşi intercorelarea de-a lungul întregii secvenţe este zero, intercorelarea calculată
pentru o por ţiune din secvenţe este nenulă. Consecinţa este că se pierde avantajul de a
folosi coduri ortogonale.
 Ortogonalitatea este de asemenea afectată de efectele canalui asupra semnalului
ca de exemplu apariţia căilor multiple. În sistemele practice este utilizată egalizarea
pentru a recupera semnalul iniţial.
Aceste neajunsuri fac ca secvenţele Walsh să nu poată fi utilizate în sistemele
noncelulare. Sistemele în care sunt folosite secvenţele Walsh sunt sistemele celulare
CDMA. Spre exemplu, sistemul IS-95 foloseşte o combinaţie între o secvenţă Walsh şi o
secvenţă M pentru a face posibilă sincronizarea.
Secvenţele Walsh se obţin prin eşantionarea funcţiilor cu acelaşi nume. Funcţiile
Walsh formează un set complet ortonormat de funcţii rectangulare. Există trei grupuri de
funcţii Walsh care diferă între ele numai prin modul de ordonare:
– ordonare pe bază de secvenţă
(Walsh); – ordonare naturală
(Hadamard);
– ordonare diadică (Paley).
Secvenţe M

Secvenţele M, sunt secvenţe generate prin registru de deplasare (secvenţe


MLSR). Secvenţele M nu sunt ortogonale, dar au un maxim îngust al autocorelaţiei. Aşa
cum s-a arătat deja, aceste coduri pot fi generate utilizând un registru de deplasare.
Obţinerea de secvenţe de secvenţe M este condiţionată de utilizarea conexiunilor buclei
de reacţie în acord cu coeficienţii unui polinom primitiv de grad m. În Anexa A sunt
prezentate polinoamele primitive până la gradul m=13. Lungimea secvenţei M generate
este egală cu 2m-1. Numărul de coduri posibile este dat de numărul de polinoame
primitive existente pentru respectivul m. Secvenţele M au câteva proprietăţi speciale:

Secvenţele M sunt cvasi-echilibrate: numărul de 1 este cu 1 mai mare decât


numărul de 0.
Spectrul unei secvenţe M are o anvelopă de forma „sinc 2”. În Figura 2.2 este
prezentat, [9], spectrul unei secvenţe Walsh de lungime 64 şi al unei secvenţe M
de lungime 63. Ambele secvenţe sunt (aproape) de aceeaşi putere. Figura arată că
aplicarea unei secvenţe M distribuie mai bine puterea pe întregul domeniu de
frecvenţe decât secvenţa Walsh.
• Proprietatea „deplasează-şi-adună” poate fi formulată după cum urmează:
Tk u = Ti u + Tj u. (2.13a)

Aici u este o secvenţă M. Combinând două deplasări ale acestei secvenţe


(deplasări relative i şi j) obţinem secvenţa M, cu o altă deplasare relativă.
Nu există o formulă generală pentru intercorelarea a două secvenţe M, putând fi
formulate doar câteva reguli.
O aşa numită „pereche preferată” este o combinaţie de secvenţe M pentru care
intercorelarea duce la doar 3 valori diferite: -1, -2[(m+1)/2] şi 2[(m+1)/2] –2. Nu există
perechi preferate pentru secvenţele M cu o lungime de 4 k unde k este un întreg.

Proprietăţile secvenţelor M :

R.1: Proprietatea de simetrie


R.2: Proprietatea de lungime de fugă
R.3: Proprietatea de deplasare şi adunare

Tehnici adiţionale de îmbunătăţire a


performanţelor sistemelor cu spectru împrăştiat

Prin natura sa, tehnica împrăştierii spectrului oferă o resursă timp-frecvenţă


considerabil mai mare decât cea necesară transmisiei informaţiei pentru oricare
utilizator în parte. Aceasta se reflectă prin câştigul de procesare, Gp, mare, sau prin
raportul W/R (lăţime de bandă–rată de transmisie) mare. Acest exces de redundanţă
poate fi exploatat pentru a îmbunătăţi performanţa, fără a compromite alte avantaje ale
câştigului mare de procesare . În acest capitol sunt prezentate două tehnici de procesare
ce aduc îmbunătăţiri sistemului de transmisie: întreţeserea (interleavingul) şi codarea
pentru corecţia erorilor.

* Întreţeserea

Avantajul imediat al excesului de redundanţă este că determină independenţa


ieşirilor canalului. Cu cât e mai mare numărul de componente de cale independente
disponibile în prezenţa fadingului, cu atât e mai bună performanţa. (vezi paragraful 1.2
punctul g)
Dispunem de L căi şi de N chipuri per simbol. Problema e că chipurile succesive
nu pot fi privite ca independente. Este posibil, însă, să reordonăm chipurile astfel încât
cele N chipuri ce provin de la acelaşi simbol să nu mai fie transmise succesiv. Mai
exact, ele sunt transmise la intervale suficient de largi astfel că fading-ul va conduce la
amplitudine şi fază

Ieşire către Intrare dinspre


canal canal
Intrare J Ieşir
x1 x2 x3 coloane J coloane e
rânduriI
rânduriI

x1 x2 x3 x4 xJ
xJ+1
x2J+1 x1 x2 x3 x4 xJ
xJ+1
x(I-1)J+1 xIJ x2J+1
Interleave
r x(I-1)J+1 xIJ
ÎNSCRIERE pe Deinterleaver
RÂNDURI RECEPŢIE pe COLOANE
CITIRE pe CITIRE pe
RÂNDURI
COLOANE
Secvenţa întreţesută: x1, xJ+1, x2J+1, … ,x(I-1)J+1, x2 , xJ+2.Oricare două simboluri
aflate iniţial la mai puţin de J poziţii unul de celălalt vor fi depărtate la cel puţin I
poziţii.

Figura 3.1 Întreţesere/deîntreţesere bloc.


* Codarea corectoare de erori
Metoda efectiv universală de exploatare a redundanţei este codarea
corectoare de erori (FEC–forward error-correcting). FEC îmbunătăţeşte
performanţa pentru canalele cu amplitudine şi fază fixe la fel de bine ca şi pentru
canalele cu fading. În capitolele următoare vor fi prezentate câteva dintre cele
mai utilizare coduri în sistemele cu spectru împrăştiat.

Decodare soft / hard


Indiferent de codul utilizat, structura unui receptor conţine un bloc de
decizie. Acest bloc reprezintă un comparator ce compară doi termeni pentru a
hotărâ valoarea fiecărui bit de informaţie din secvenţa recepţionată:

D1

Λ i ;
D0
2 Câştigul de codare
Câştigul de codare, pentru o aplicaţie dată, se defineşte ca şi raportul între
puterea semnalui, P s, necesară pentru a se obţine o anumită rată, impusă, a
erorii, pentru transmisia necodată şi puterea semnalului, Psc, necesară pentru a
obţine aceeaşi rată a erorii în cazul transmisiei codate:
Gc = 10 lg (Ps/Psc) [dB].

Criteriul MAP
Conform criteriul MAP (Maximum Aposteriori), prin procesul de
decodare se caută acea secvenţă emisibilă vk, ce maximizează probabilitatea
condiţionată aposteriori p(vj/r), peste toate secvenţele emisibile vjj=1 N.
Indiferent de metoda de decodare propriu-zisă, algoritmul decodării
urmăreşte, principial, aflarea acelei secvenţe de cod (cuvânt de cod), vk, din
mulţimea secvenţelor posibil a fi emise, V = vjj=1 N, ce maximizează
probabilitatea aposteriori:
P(k) = p(vk/r)

unde r este secvenţa recepţionată curentă.


Coduri grup

Codurile grup sunt denumite astfel deoarece mulţimea cuvintelor de cod


formează un grup comutativ faţă de operaţia de adunare. Codarea se poate face în
spaţiul nul al matricii de control, H:

H vT = 0

sau în idealul generat de matricea generatoare G:

v=iG

Matricea de control H are dimensiunile m x n; m= numărul de biţi de control din


cuvântul de cod v; n= numărul total de biţi; i este secvenţa de informaţie iar G are
dimensiunile k x n. Liniile matricii G sunt cuvinte de cod, şi totodată reprezintă un set
de vectori ce formează o bază a spaţiului vectorial dat de mulţimea cuvintelor de cod.
Decodarea codurilor grup presupune calculul corectorului:

Z = H wT

unde w = cuvântul recepţionat.


* În cazul unui cod grup detector de erori, analiza corectorului se rezumă la a
verifica dacă Z este sau nu un vector nul. În caz afirmativ se hotăr ăşte că nu există erori
în cuvântul recepţionat (concluzie posibil falsă –cazul recepţiei unui alt cuvânt de cod,
diferit de cel emis). În caz contrar, concluzia (100% adevărată –corectorul nu poate fi
diferit de zero dacă nu au fost erori) este că în w există erori.
Pentru coduri corectoare algoritmul decodării continuă cu aflarea cuvântului
eroare pe baza lui Z. În acest scop între mulţimea cuvintelor eroare corectabile şi
mulţimea corectorilor trebuie să existe o corespondenţă biunivocă. Când codul trebuie
să corecteze e erori atunci numărul cuvintelor corectabile este:
Nec = C1n  C2n  ...  Cen .

Numărul de corectori ce se poate obţine, m fiind dat, este:


Nc = 2m –1

deoarece Z ≡ 0 nu poate fi utilizat pentru un cuvânt eroare, valoarea zero semnificând


cuvânt corect. Trebuie ca:
Nc ≥ Nec
Coduri Reed Muller (R-M)

Codurile R-M sunt caracterizate de doi parametri, t (logaritmul numărului de


coloane din matricea G) şi r (numărul de secţiuni ai matricii G) , funcţie de care se
calculează toţi ceilalţi parametri:

n = 2t –numărul de biţi dintr-un cuvânt de cod;


d= 2t-r –distanţa de cod;

e= 2t-r-1–1 –numărul de erori corectabile;


k = ∑r Cit i=0 –numărul de biţi de informaţie.

Liniile matricii G formează r +1 subdiviziuni:


–diviziunea 0: o constituie prima linie, notată L0, cea de pondere n;
–diviziunea 1: este formată din secvenţe Walsh, notate de la Lt la L1, după o regulă
uşor de remarcat din relaţia (4.8);
–diviziunea 2 (dacă r≥ 2): este constituită din C2t linii, obţinute prin
compunerea (operaţia
„ŞI”) liniilor din diviziunea 1.
În continuare, celelalte diviziuni se obţin aidoma diviziunii 2, cu diferenţa că pentru
diviziunea i se compun i linii din diviziunea 1.

* După forma matricii G se observă că acest cod prezintă redundanţă implicită,


simbolurile de informaţie neregăsindu-se printre simbolurile cuvântului de cod
corespunzător.
Decodarea codului R-M este o decodare cu logică majoritară. Pentru fiecare
simbol de informaţie se pot scrie 2t-r relaţii de calcul (cel puţin). În ecuaţiile de calcul al
fiecărui simbol de informaţie fiecare simbol din cuvântul de cod apare cel mult o dată.
Astfel, dacă există cel mult e=2t - r-1 –1 erori în cuvântul recepţionat, acestea vort-r
afecta
t - r-1
tot atâtea ecuaţii, r ămânând nealterate de eroare cel puţin jumătate plus una (2 –2 –
1t-r= 2t-r-1 +1). Ca urmare, valoarea bitului în cauză va fi aleasă cea majoritară peste cele
2 ecuaţii.

Coduri ciclice
Coduri ciclice –descriere generală

Codurile ciclice sunt coduri bloc (toate cuvintele au aceeaşi lungime, codarea şi
decodarea unui bloc este independenţă de a celorlalte). Sunt numite coduri ciclice
deoarece orice permutare ciclică a unui cuvânt de cod este, de asemenea, cuvânt de cod :
-dacă u = un- 1 un-2 … u1 u0 este un cuvânt de cod ciclic, atunci u* = un-2 un-3 … u1 u0 un-1
este un cuvânt aparţinând aceluiaşi cod.
Cuvintele codului ciclic pot fi reprezentate sub formă de polinoame:
u(x) = un-1 xn-1 + un-2 xn-2 + … + u2 x2 + u1 x + u0 (5.1)

Structura cuvântului de cod ciclic cuprinde n biţi (coeficienţi binari), dintre care
primii k biţi (pentru un cod sistematic) sunt biţii de informaţie: u n-1, un-2 , … , u n-k iar
ultimii m biţi sunt biţii de control: um-1, um-2, … , u1 u0. Puterile lui x indică tactele la care
respectivii biţi sunt livraţi la ieşirea codorului, în ordine descrescătoare. Astfel:
n = k + m. (5.2)

Dacă codul este corector de o singură eroare (marginea Hamming coincide cu marginea
Varşamov–Gilbert):
n = 2m – 1. (5.3)

Cei k biţi de informaţie constituie polinomul de informaţie:


i(x) = un-1 xk-1 + un-2 xk-2 + … + un-k+1 x + un-k (5.4)

Codurile ciclice corectoare de o eroare, având distanţa de cod (distanţa Hamming


minimă între cuvintele codului) dHmin = 3, sunt capabile să corecteze o eroare sau să
detecteze două, [5].
* Obs. –Un cod este detector de ed erori (corector de ec erori) dacă detectează
(corectează) orice combinaţie de ed (ec) erori, sau mai puţine. Codurile ciclice
corectoare de o eroare sunt capabile să detecteze şi o parte dintre combinaţiile cu mai
mult de două erori, dar nu orice combinaţie cu mai mult de două erori.
-În practică sunt utilizate coduri ciclice detectoare de trei erori independente,
sau de pachete de erori, dar aceste coduri ciclice nu satisfac (5.3), şi, în plus, au dHmin ≥
4.
-Codurile BCH şi Reed-Solomon sunt de asemenea coduri ciclice (ele au
proprietatea de ciclicitate a cuvintelor de cod) şi prezintă acelaşi procedeu de codare
ca şi codurile ciclice corectoare de o eroare, însă sunt corectoare de erori multiple şi,
ca atare, diferă prin procedeele de decodare. Prezenta expunere referitoare la codurile
ciclice include şi codurile
BCH şi Reed-Solomon, exceptând cazul în care se specifică că este vorba despre
codurile ciclice corectoare de o eroare.
-În continuare, vom numi un cuvânt de cod (sau de informaţie) atât prin
secvenţa u (sau i) cât şi prin polinomul ataşat u(x) (respectiv i(x)).
Codarea codurilor ciclice
Codarea codurilor ciclice se poate face prin multiplicare sau prin împăr ţire. În
continuare va fi descrisă ultima metodă, metodă care conduce la un cod sistematic. În
această metodă, corespondenţa dintre i(x) şi u(x) este, [5]:

m
u(x)  i(x) m i(x) x
x  rest g(x) , (5.5)

unde rest ( )/g(x) semnifică restul împărţirii polinomului ( ) la g(x).

Obs. Operaţia de adunare din ecuaţia (5.5) este sumă modulo 2, iar coeficienţii
polinoamelor sunt din câmpul binar {0,1}.

Decodarea codurilor ciclice


Decodarea presupune, în cazul detecţiei de erori, verificarea exactităţii transmisiei
fiecărui cuvânt de cod recepţionat şi semnalarea prezenţei erorilor. La depistarea
prezenţei erorilor în cuvântul recepţionat se cere retransmisia sa. În cazul corecţiei de
erori, prin verificarea cuvântului recepţionat, pe lângă depistarea prezenţei erorilor, se
precizează şi poziţia lor (codurile ciclice în discuţie sunt corectoare de o eroare, însă
afirmaţia este valabilă şi pentru cazul general al corecţiei de erori multiple).

Obs. –La recepţia unui cuvânt, după verificarea sa, rezultă două concluzii alternative:
cuvântul este eronat sau cuvântul este corect.
Decizia în primul caz este 1OO% adevărată, în vreme ce, pentru cel de-al doilea
caz este posibil ca decizia să fie una falsă. Este cazul recepţiei unui cuvânt emisibil, altul
decât cel emis, rezultat prin eronarea celui emis. De remarcat că în astfel de cazuri se
depăşeşte puterea de detecţie/corecţie a codului.

Coduri BCH
Codul Bose, Chaudhuri si Hocquenghem, BCH, este un cod ciclic, corector de erori, cu
mai multe niveluri si de lungime variabilă,

Codurile BCH pot fi binare sau non-binare si pot să fie folosite împreună cu modulatia
PSK ori de câte ori numărul de niveluri este prim sau o putere a unui număr prim.
Capacitatea de corectie oferită este de până la 25% din numărul total de digiti continuti
într-un bloc.

5.4.1 Construcţia polinomului generator al codului


Codurile BCH sunt coduri ciclice corectoare de erori multiple . Structura
cuvântului de cod BCH, relaţia de codare, algoritmul codării şi implementarea sa, sunt
identice cu cele prezentate pentru codul ciclic corector de o eroare. Deosebirea constă în
construcţia şi proprietăţile polinomului generator, g(x).
Pentru a se corecta t erori dintr-un cuvânt este necesar a se preciza poziţia
fiecăreia. Dacă ne referim la un cuvânt de lungime n, unde:
n = 2q – 1

atunci informaţia necesară pentru a preciza un caracter eronat între cele n este:
ip1 = -log2(1/n)

Pentru a include şi varianta “cuvânt fără eroare”, considerăm că în acest caz se


“eronează” un al n+1–lea caracter, fictiv, astfel încât informaţia necesară pentru a preciza
poziţia unui caracter eronat (dintre n+1 caractere) este:
ip1 = log2(n+1)= q biţi

Ultima relaţie furnizează numărul de biţi de control, m = q, dintr-un cuvânt de cod


necesar pentru a se putea face corecţia unei erori .Dacă se doreşte a se corecta mai mult
de o eroare, atunci cantitatea de informaţie furnizată de biţii de control, de valoare m
(biţi), necesară corecţiei a „t” erori, cu t >1,trebuie să fie peste valoarea q.
* Spre exemplu, dorind a construi un cod corector de t = 2 erori, cantitatea de informaţie
necesară a fi furnizată de biţii de control, în număr de m, trebuie să fie:
m ≥ ip1 + ip2 = log2 [1 + n + (n +1) n/2] ≈ 2 q –1,

adică o informaţie aproape dublă (şi implicit un număr dublu de biţi de control) faţă de
cazul corecţiei unei erori.
Deoarece precizarea un caracter din cele n+1 ale câmpului Galois GF(2q)
reprezintă o informaţie de q biţi, rezultă posibilitatea de a crea „legături” între biţii de
informaţie şi cei de control pentru un cuvânt de cod BCH, construind polinomul
generator, g(x), astfel încât să aibă rădăcini t elemente ale câmpului respectiv. În felul
acesta, deoarece orice cuvânt de cod este multiplul lui g(x), cele t rădăcini ale lui g sunt
rădăcini şi pentru orice v. Această proprietate a cuvântului de cod furnizează informaţia
necesară şi suficientă pentru ca decodorul să afle poziţia a t erori.

Codul Golay

Codul secvential Golay formează un cuvat de cod de 23 biti, capabil


sa elimine orice combinatie de trei erori aleatoare dintr-un cuvant.
Există două moduri de transmisie:
- transmisie individuală;
- transmisie in pachete.
Formatul datelor pentru modul transmisiune individuală este prezentat 絜
figura 2.3.

Fig. 2.3.
Viteza de transmisiune este de 600 bps.
Blocul de date constă din 8 cuvinte de cod BCH (15:7) deci 56 biti de
informatie si 64 de biti de control.
Informatia transmisă in blocul de date (12 caractere numerice sau 8
alfanumerice) poate consta din:
• simboluri numerice cu 4 biti/simbol;
• simboluri alfanumerice cu 6 biti/simbol;
Formatul datelor pentru modul de transmisiune în pachete individuale este
prezentat in figura 2.4.

Codurile Reed-Solomon
Codurile Reed-Solomon (RS) fac parte din categoria codurilor ciclice, însă sunt
coduri nebinare .Spre deosebire de celelalte coduri ciclice, alfabetul codului RS nu este
câmpul binar {0, 1} ci un câmp finit de ordin superior, numit câmp Galois şi care va fi
descris în paragraful următor. În acest fel, cuvintele codului RS nu sunt secvenţe
(succesiuni) de biţi, ci de caractere. Aceste caractere pot fi reprezentate, la rândul lor,
prin secvenţe binare, însă sunt indivizibile din punct de vedere al codării şi decodării
Reed-Solomon.
* Structural, cuvintele de cod RS au aceeaşi alcătuire ca şi cele de cod ciclic:

u = un-1 un-2 ... u1 u0 uj GF(2q, p(x)) j = 0  n-1


unde: u – cuvântul de cod, format din n caractere;
un- un-
1 2 ... uk – caracterele de informaţie, în număr de m;
uk- uk- ... u0 – caracterele de control, în număr de
1 2 k;
q – ordinul câmpului;
p(x) – polinomul generator al câmpului GF.
Relaţia de codare are aceeaşi formă ca şi la codurile
ciclice:

u(x) = i(x) xk + rest (i(x) xk/g(x))


unde g(x) este polinomul generator al codului, al cărui construcţie este prezentată în
paragraful următor, iar
i(x) = un-1 xm-1 + un-2 xm-2 + ... + uk+1 x + uk

este polinomul de informaţie.*


Decodarea codurilor Reed-Solomon
Decodarea codurilor RS este în mare parte asemănătoare decodării codurilor BCH,
deosebirea constând în necesitatea de a afla pentru fiecare eroare pe lângă poziţie şi
valoarea ei. De remarcat că un cuvânt de cod RS este format din n caractere, adică q n
biţi. Astfel o eroare de caracter poate însemna până la q erori de bit.
La decodare, spre deosebire de codurile ciclice, într-un cuvânt de cod RS
recepţionat, în vederea corecţiei, este necesară atât localizarea erorii, cât şi stabilirea
valorii ei.
Comunicatii seriale
Transmisia seriala - date, semnale si temporizari

Transmisia digitala de date a evoluat de la conexiunea intre un calculator cu


echipamentele periferice, la calculatoare care comunica in retele internationale complexe.
Mai sunt insa multe de invatat de la simpla legatura punct la punct, sau RS232 dupa
standardul EIA. Cu toate ca transferul paralel este mai rapid, majoritatea transmisiilor de
date intre calculatoare sunt facute pe cale seriala pentru a reduce costul cablului si
conectorilor. Exista si limitari fizice de distanta, care nu pot fi depasite de magistrale
paralele. In comunicatia seriala, datele sunt transmise bit cu bit. *Toate comunicatiile
sunt caracterizate de trei elemente principale:

• -Date - intelegerea lor, scheme de codificare, cantitate


• -Temporizari - sincronizarea intre receptor si emitator, frecventa si faza
• -Semnale - tratarea erorilor, controlul fluxului si rutare

Codificarea datelor si controlul erorilor

Erorile pot aparea cand circuistica folosita pentru conexiune este afectata de zgomot
(interferente electrice) cum ar fi: lampi fluorescente, comutarea unor motoare mari, etc&
Aceste varfuri sunt induse in firele de comunicatie care se comporta ca niste antene.
Deoarece tensiunile cu care se lucreaza in calculatoare sunt mici, efectul pe care i-l are
acest zgomot este important. Circuistica respectiva trebuie sa fie imuna la aceste
zgomote.

Canalele moderne de comunicatie sunt din ce in ce mai fiabile. Metodele de detectie si


corectie a erorilor se indreapta spre domeniile CD-ROM-urilor si DVD-urilor. Toate
aceste metode implica introducerea de informatie neesentiala, pe langa date utile, in
transmisia datelor. Exista mai multe metode care merita sa fie studiate:

• Biti de paritate - simplu de aplicat , nu ofera siguranta mare


• Sume de control la nivel de bloc - simplu de aplicat , nu ajuta prea mult
• Impartire polinomiala - mai complicat de calculat, ofera securitate

De exemplu, receptorul trimite inapoi o copie a datei primite. Acest mecanism


injumatateste latimea de banda folosita. O alternativa ar fi ca emitatorul sa trimita data
urmata de o copie a acesteia.
Toate metodele de tratare a erorilor folosesc informatie redundanta. De cele mai multe
ori, aceste informatii sunt codificate inainte de transmisie.

*Paritatea este cea mai discutata metoda de detectie a erorilor pentru protectia
transmisiilor seriale de caractere ASCII. La oricare din metode, emitatorul prelucreaza o
parte din date si genereaza un fel de semnatura pe care apoi o transmite impreuna cu date
utile. Cand mesajul ajunge la receptor, acesta prelucreaza datele primite si genereaza o
semnatura pe care o compara cu cea primita. Daca cele doua semnaturi nu coincid, atunci
s-a produs o eroare. Metoda bitului de paritate se poate aplica pentru date binare de orice
lungime. Pentru fiecare cuvant este adaugat un bit de paritate (semnatura). Paritatea poate
fi para (cuvantul contine un numar par de 1) sau impara (cuvantul contine un numar
impar de 1). Calcularea paritatii se poate face cu operatorul XOR (SAU Exclusiv) intre
bitii cuvantului. Prin aceasta metoda este posibila doar detectia erorii singulare, cand
sunt afectati un numar impar de biti. O eroare dubla (afecteaza un numar par de biti) nu
poate fi detectata prin acest mecanism. Prin urmare, aceasta metoda nu ofera prea multa
securitate. Un singur bit de paritate nu ofera informatii despre pozitia erorii.

Codul Hamming
Codurile Hamming reprezinta o alta metoda care permite si localizarea erorii prin
adaugarea a mai mult de un bit de paritate dupa bitii utili. Este astfel posibila detectia si
corectia erorii. Problema este "unde sunt pozitionati bitii de paritate intre bitii utili ?"
Raspuns: pentru bitii de paritate se aloca pozitiile care sunt puteri ale lui 2 in cuvantul
dat. De xemplu, pentru 4 biti utili avem urmatoarea asezare:

unde D1, D2, D3, D4 sunt biti utili si P1,P2,P3, P4 sunt biti de paritate.

Cu formula d=2p - (p+1) se poate calcula numarul de biti utili (d) acoperiti de un numar
(p) de biti de paritate.

Unul din codurile grup cele mai cunoscute este codul Hamming C(n,k) corector de o
eroare, la care coloana hj a matricei de control H este reprezentrea binara a numarului j ,
daca eroarea este singulara.
Codul Hamming este singurul cod grup perfect corector de o eroare. Acest cod este
nesistematic, respectiv pozitiile de control sunt date de puteri ale lui 2 (de la 1 la m-1),
corespunzand unor vectori coloana din matricea de control H cu o pozitie diferita de zero.
Pentru a obtine un cod sistematic, se permuta coloanele matricei H rezultand matricea H

Parametrii codului Hamming


lungime:
n=2^m-1
numar simboluri de informatie:
k=2^m-m-1
numar simboluri de control:
m=n-k
distanta minima:
dmin=3
numar erori corectabile:
t=1
Matricea H pentru codul C(7,4) nesistematic
Matricea H pentru codul C(7,4) sistematic

Simbolurile de control se determina din relatia HvT=0 (unde vT este cuvantul de cod
transpus).
*Codul POCSAG

Codul POCSAG, folosit si in Romnia, organizează datele ca in figura 2.5.

Fig. 2.5.
Preambulul este format din 576 biti (18 cuvinte de cod din biti alternati
1,0,1,0.... pentru refacerea tactului);
CS cuvânt de sincronizare de 32 biti.
Pachetele de date sunt formate din un cuvant de sincronizare CS + 8
cadre a cate două cuvinte (deci 16x32 + 32 = 544 biti).
Un cuvânt are 32 biti( 31 codati BCH + un bit de paritate).
BiŃii de date se aranjează cu bitul cel mai putin semnificativ LSB la stanga (ca si la
Golay).
Se pot transmite un număr nelimitat de pachete.
Primul cuvant al primului cadru din pachet contine o adresă care
defineste pagerul destinatar. Restul de cuvinte din pachet sunt părti ale
mesajului. Mesajul continuă dintr-un pachet in altul.
Transmisiunea se incheie cu un nou cuvant de adresă sau cu un cuvant "inert"
(format dintr-o succesiune impusă de biti 1 si 0 ).

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