coduri in

21
Coduri in comunicatii de date Universitatea din Craiova, Facultatea de Automatica, Calculatoare si Electronica 2010-2011

Upload: alexandru-robert-dumbrava

Post on 09-Apr-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Coduri in

8/8/2019 Coduri in

http://slidepdf.com/reader/full/coduri-in 1/21

Coduri incomunicatii de date

Universitatea din Craiova, Facultatea de Automatica,Calculatoare si Electronica 2010-2011

Page 2: Coduri in

8/8/2019 Coduri in

http://slidepdf.com/reader/full/coduri-in 2/21

*****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ăştiat4. Coduri grup5. Coduri ciclice6. Coduri convoluţionaleTransimisia seriala

Page 3: Coduri in

8/8/2019 Coduri in

http://slidepdf.com/reader/full/coduri-in 3/21

Sisteme de transmisiuni cu spectru împrăştiat

Principiul împrăştierii spectrului. Modelul unui sistem de comunicaţiecu spectru împrăştiat

Împrăştierea spectrului este o tehnică de modulaţie a semnalului purtător deinformaţie. Această tehnică reprezintă o soluţie calitativ superioară în multe aplicaţii ceimplică comunicaţii prin medii cu acces multiplu, în special canalele radio.

Spre deosebire de tehnicile clasice de modulaţie, împrăştierea spectrului aducecâteva elemente noi. Primul este că semnalele cu spectru împrăştiat utilizate pentrutransmiterea 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 factorulexpansiunii de bandă [2]

β e = W/R (1.1)

 pentru un semnal cu spectru împrăştiat este mult mai mare decât unitatea. Redundanţamare, inerentă în semnale cu spectru împrăştiat, este necesară pentru a putea realizatransmisii la nivelele mari de interferenţă ce sunt întâlnite în unele canale radio sau pesatelit. Codarea este un element important în proiectarea semnalelor cu spectruîmprăştiat deoarece formele de undă codate sunt de asemenea caracterizate printr-unfactor de expansiune a benzii ce este mult mai mare decât unitatea şi deoarece codareaeste 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 zgomotulaleator şi dificil de demodulat de receptoare, altele decât cel dedicat. Acest element estedescris î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 facedificilă detectarea sa de către un ascultător neavizat în prezenţa zgomotului defond;

(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.

Page 4: Coduri in

8/8/2019 Coduri in

http://slidepdf.com/reader/full/coduri-in 4/21

Schema bloc prezentată în Figura 1.1 ilustrează elementele de bază ale unui sistemde comunicaţie digital cu spectru împrăştiat, cu o secvenţă de informaţie binară laintrarea 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-adoua ce conlucrează cu demodulatorul la finele recepţiei. Generatoarele generează osecvenţă binară pseudoaleatoare sau pseudonoise (PN) ce este introdus ă în semnalultransmis 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.

Page 5: Coduri in

8/8/2019 Coduri in

http://slidepdf.com/reader/full/coduri-in 5/21

*Î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 codPN 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 valorimici ale intercorelaţiei dintre coduri şi la dificultatea de a bruia sau de a detecta mesajulde date.

În sistemele cu secvenţă directă, lungimea codului este [22] aceeaşi cu factorulde î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 însemnalul 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, inversulratei informaţiei, este divizat într-un număr mare de sloturi de timp. Simbolurileinformaţiei codate sunt transmise, într-un slot de timp ales pseudoaleator, ca un bloc deunul sau mai multe cuvinte de cod. Pentru a transmite biţii codaţi se poate utilizamodulaţ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

Page 6: Coduri in

8/8/2019 Coduri in

http://slidepdf.com/reader/full/coduri-in 6/21

construite pe baza unui număr finit de parametri, selectaţi aleatoriu şi stocaţi. La fel deimportant, 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 memoriatransmiţă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 caeş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 cazgomotul gausian, fiecare eşantion poate fi aproximat ca şi o variabilă aleatoaregausiană. Î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 aunui bit pe eşantion, ceea ce corespunde unei secvenţe binare, efectul utilizării uneiastfel de forme de und ă binare aleatoare este aproape la fel cu utilizarea unei forme deundă de tip zgomot gausian. Faptul că forma de undă aleatoare binară poate fi uşor şiflexibil modulată cu un semnal digital purtător de informaţie are consecinţe practiceimportante.

O secvenţă aleatoare binară independentă este secvenţa Bernoulli (numită înliteratura inginerească „coin-flipping”).Proprietăţile de cheie „aleatoare” a secvenţeiBernoulli 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 suntde lungime doi; o optime sunt de lungime 3; o fracţie 1/2n sunt de lungime n pentruorice n finit.

R.3 Proprietatea de deplasare  şi adunare:

Dacă secvenţa aleatoare este deplasată cu orice număr nenul de elemente, secvenţarezultată va avea un număr egal de coincidenţe şi necoincidenţe cu secvenţa originală.

 

Coduri utilizate pentru împrăştiereaspectrului

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

Page 7: Coduri in

8/8/2019 Coduri in

http://slidepdf.com/reader/full/coduri-in 7/21

generate cu registre de deplasare.

1 Codurile Walsh HadamardSecvenţele Walsh Hadamard au avantajul de a fi ortogonale, şi în acest fel se potelimina 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 unnumă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 afolosi coduri ortogonale.Ortogonalitatea este de asemenea afectată de efectele canalui asupra semnaluluica 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 celulareCDMA. 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ţiileWalsh formează un set complet ortonormat de funcţii rectangulare. Există trei grupuri defuncţii Walsh care diferă între ele numai prin modul de ordonare:

  – ordonare pe bază de secvenţă(Walsh); – ordonare naturală(Hadamard); – ordonare diadică (Paley).

Page 8: Coduri in

8/8/2019 Coduri in

http://slidepdf.com/reader/full/coduri-in 8/21

Secvenţe M

Secvenţele M, sunt secvenţe generate prin registru de deplasare (secvenţeMLSR). Secvenţele M nu sunt ortogonale, dar au un maxim îngust al autocorelaţiei. Aşacum 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 bucleide 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 generateeste 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âtnumărul de 0.Spectrul unei secvenţe M are o anvelopă de forma „sinc2”. În Figura 2.2 este prezentat, [9], spectrul unei secvenţe Walsh de lungime 64 şi al unei secvenţe Mde 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 defrecvenţe decât secvenţa Walsh.• Proprietatea „deplasează-şi-adună” poate fi formulată după cum urmează:

Tk  u = Ti u + T j 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 fiformulate doar câteva reguli.O aşa numită „pereche preferată” este o combinaţie de secvenţe M pentru careintercorelarea 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 simetrieR.2: Proprietatea de lungime de fugă R.3: Proprietatea de deplasare  şi adunare

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

Page 9: Coduri in

8/8/2019 Coduri in

http://slidepdf.com/reader/full/coduri-in 9/21

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 oricareutilizator în parte. Aceasta se reflectă prin câştigul de procesare, G p, mare, sau prinraportul 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 alecâştigului mare de procesare . În acest capitol sunt prezentate două tehnici de procesarece 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ţaieşirilor canalului. Cu cât e mai mare numărul de componente de cale independentedisponibile î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âtcele N chipuri ce provin de la acelaşi simbol să nu mai fie transmise succesiv. Maiexact, ele sunt transmise la intervale suficient de largi astfel că fading-ul va conduce laamplitudine şi fază

Intrare

x1 x2 x3

   I

  r   â  n   d  u  r   i

Ieşire cătrecanal

Jcoloane

x1 x2 x3 x4 xJ

xJ+1x2J+1

x(I-1)J+1 xIJ

Interleaver 

ÎNSCRIERE pe

RÂNDURICITIRE peCOLOANE

   I

  r   â  n   d  u  r   i

Intrare dinsprecanal

J coloaneIeşir e

x1 x2 x3 x4 xJ

xJ+1x2J+1

x(I-1)J+1 xIJ

Deinterleaver 

RECEPŢIE pe COLOANECITIRE peRÂNDURI

Secvenţa întreţesută: x1, xJ+1, x2J+1, … ,x(I-1)J+1, x2 , xJ+2.Oricare două simboluriaflate 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.

Page 10: Coduri in

8/8/2019 Coduri in

http://slidepdf.com/reader/full/coduri-in 10/21

* Codarea corectoare de erori

Metoda efectiv universală de exploatare a redundanţei este codareacorectoare 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 pentrucanalele cu fading. În capitolele următoare vor fi prezentate câteva dintre celemai utilizare coduri în sistemele cu spectru împrăştiat.

Decodare soft / hardIndiferent de codul utilizat, structura unui receptor conţine un bloc de

decizie. Acest bloc reprezintă un comparator ce compară doi termeni pentru ahotă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ă, aerorii, pentru transmisia necodată şi puterea semnalului, Psc, necesară pentru aobţine aceeaşi rată a erorii în cazul transmisiei codate:

Gc = 10 lg (Ps/Psc) [dB].

Criteriul MAPConform criteriul MAP (Maximum Aposteriori), prin procesul de

decodare se caută acea secvenţă emisibilă vk , ce maximizează probabilitateacondiţionată aposteriori p(v j/r), peste toate secvenţele emisibilev j j=1  N.

Indiferent de metoda de decodare propriu-zisă, algoritmul decodăriiurmăreşte, principial, aflarea acelei secvenţe de cod (cuvânt de cod), vk , dinmulţimea secvenţelor posibil a fi emise, V = v j j=1   N, ce maximizează probabilitatea aposteriori:

P(k) = p(vk /r)

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

Page 11: Coduri in

8/8/2019 Coduri in

http://slidepdf.com/reader/full/coduri-in 11/21

Coduri grup

Codurile grup sunt denumite astfel deoarece mulţimea cuvintelor de codformează un grup comutativ faţă de operaţia de adunare. Codarea se poate face înspaţiul nul al matricii de control, H:

H vT = 0

sau în idealul generat de matricea generatoare G:

v = i G

Matricea de control H are dimensiunile m x n; m= numărul de biţi de control dincuvântul de cod v; n= numărul total de biţi; i este secvenţa de informaţie iar G aredimensiunile k x n. Liniile matricii G sunt cuvinte de cod, şi totodată reprezintă un setde 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 fidiferit de zero dacă nu au fost erori) este că în w există erori.

Pentru coduri corectoare algoritmul decodării continuă cu aflarea cuvântuluieroare 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 trebuiesă corecteze e erori atunci numărul cuvintelor corectabile este:

 Nec = C1n C2

n ... 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ândcuvânt corect. Trebuie ca:

 Nc ≥ Nec

Page 12: Coduri in

8/8/2019 Coduri in

http://slidepdf.com/reader/full/coduri-in 12/21

Coduri Reed Muller (R-M)

Codurile R-M sunt caracterizate de doi parametri, t (logaritmul numărului decoloane 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 princompunerea (operaţia„ŞI”) liniilor din diviziunea 1.În continuare, celelalte diviziuni se obţin aidoma diviziunii 2, cu diferenţa că pentrudiviziunea 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 codcorespunzător.

Decodarea codului R-M este o decodare cu logică majoritară. Pentru fiecaresimbol de informaţie se pot scrie 2t-r  relaţii de calcul (cel puţin). În ecuaţiile de calcul alfiecă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 vor afectatot atâtea ecuaţii, r ămânând nealterate de eroare cel puţin jumătate plus una (2 t-r  –2t - r-1 – 1 = 2t-r-1 +1). Ca urmare, valoarea bitului în cauză va fi aleasă cea majoritară peste cele2t-r  ecuaţii.

Coduri ciclice

Page 13: Coduri in

8/8/2019 Coduri in

http://slidepdf.com/reader/full/coduri-in 13/21

Coduri ciclice –descriere generală

Codurile ciclice sunt coduri bloc (toate cuvintele au aceeaşi lungime, codarea şidecodarea unui bloc este independenţă de a celorlalte). Sunt numite coduri ciclicedeoarece 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: un-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 carerespectivii 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 margineaVarş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 Hammingminimă î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 ciclicecorectoare de o eroare sunt capabile să detecteze şi o parte dintre combinaţiile cu maimult 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 d  Hmin ≥ 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 codareca ş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 desprecodurile 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)).

Page 14: Coduri in

8/8/2019 Coduri in

http://slidepdf.com/reader/full/coduri-in 14/21

Codarea codurilor ciclice

Codarea codurilor ciclice se poate face prin multiplicare sau prin împăr ţire. Încontinuare va fi descrisă ultima metodă, metodă care conduce la un cod sistematic. Înaceastă metodă, corespondenţa dintre i(x) şi u(x) este, [5]:

u(x) i(x)  

x

m

   resti(x) x

m

, (5.5)g(x)

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 transmisieifiecă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 doileacaz 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 sedepăşeşte puterea de detecţie/corecţie a codului.

Coduri BCH

Page 15: Coduri in

8/8/2019 Coduri in

http://slidepdf.com/reader/full/coduri-in 15/21

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 modulatiaPSK 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.1Construcţia polinomului generator al coduluiCodurile BCH sunt coduri ciclice corectoare de erori multiple . Structura

cuvântului de cod BCH, relaţia de codare, algoritmul codării şi implementarea sa, suntidentice cu cele prezentate pentru codul ciclic corector de o eroare. Deosebirea constă înconstrucţia şi proprietăţile polinomului generator, g(x).

Pentru a se corecta t erori dintr-un cuvânt este necesar a se preciza poziţiafiecă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:

i p1 = -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:i p1 = log2(n+1)= q biţi

Ultima relaţie furnizează numărul de biţi de control, m = q, dintr-un cuvânt de codnecesar pentru a se putea face corecţia unei erori .Dacă se doreşte a se corecta mai multde 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ţienecesară a fi furnizată de biţii de control, în număr de m, trebuie să fie:

m ≥ i p1 + i p2 = 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ţă decazul 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 deinformaţie şi cei de control pentru un cuvânt de cod BCH, construind polinomulgenerator, g(x), astfel încât să aibă rădăcini t elemente ale câmpului respectiv. În felulacesta, deoarece orice cuvânt de cod este multiplul lui g(x), cele t rădăcini ale lui g suntrădăcini şi pentru orice v. Această proprietate a cuvântului de cod furnizează informaţia

Page 16: Coduri in

8/8/2019 Coduri in

http://slidepdf.com/reader/full/coduri-in 16/21

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, capabilsa 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 deinformatie si 64 de biti de control.Informatia transmisă in blocul de date (12 caractere numerice sau 8alfanumerice) 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

Page 17: Coduri in

8/8/2019 Coduri in

http://slidepdf.com/reader/full/coduri-in 17/21

Codurile Reed-Solomon (RS) fac parte din categoria codurilor ciclice, însă suntcoduri nebinare .Spre deosebire de celelalte coduri ciclice, alfabetul codului RS nu estecâmpul binar {0, 1} ci un câmp finit de ordin superior, numit câmp Galois şi care va fidescris î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ăriiReed-Solomon.

* Structural, cuvintele de cod RS au aceeaşi alcătuire ca şi cele de cod ciclic:

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

unde: u – cuvântul de cod, format din n caractere;un-1

un-2 ... uk  – caracterele de informaţie, în număr de m;

uk-1

uk-2

... u0 – caracterele de control, în număr dek;

q – ordinul câmpului; p(x) – polinomul generator al câmpului GF.

Relaţia de codare are aceeaşi formă ca şi la codurileciclice:

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 şivaloarea 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 RSrecepţionat, în vederea corecţiei, este necesară atât localizarea erorii, cât şi stabilireavalorii ei.

Page 18: Coduri in

8/8/2019 Coduri in

http://slidepdf.com/reader/full/coduri-in 18/21

Comunicatii seriale

Transmisia seriala - date, semnale si temporizari

Transmisia digitala de date a evoluat de la conexiunea intre un calculator cuechipamentele periferice, la calculatoare care comunica in retele internationale complexe.Mai sunt insa multe de invatat de la simpla legatura punct la punct, sau RS232 dupastandardul 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 siconectorilor. Exista si limitari fizice de distanta, care nu pot fi depasite de magistrale paralele. In comunicatia seriala, datele sunt transmise bit cu bit. *Toate comunicatiilesunt 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 areacest zgomot este important. Circuistica respectiva trebuie sa fie imuna la acestezgomote.

Canalele moderne de comunicatie sunt din ce in ce mai fiabile. Metodele de detectie sicorectie a erorilor se indreapta spre domeniile CD-ROM-urilor si DVD-urilor. Toateaceste metode implica introducerea de informatie neesentiala, pe langa date utile, intransmisia 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 mecanisminjumatateste latimea de banda folosita. O alternativa ar fi ca emitatorul sa trimita dataurmata de o copie a acesteia.

Page 19: Coduri in

8/8/2019 Coduri in

http://slidepdf.com/reader/full/coduri-in 19/21

Toate metodele de tratare a erorilor folosesc informatie redundanta. De cele mai multeori, aceste informatii sunt codificate inainte de transmisie.

*Paritatea este cea mai discutata metoda de detectie a erorilor pentru protectiatransmisiilor 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 dateutile. Cand mesajul ajunge la receptor, acesta prelucreaza datele primite si genereaza osemnatura pe care o compara cu cea primita. Daca cele doua semnaturi nu coincid, atuncis-a produs o eroare. Metoda bitului de paritate se poate aplica pentru date binare de oricelungime. Pentru fiecare cuvant este adaugat un bit de paritate (semnatura). Paritatea poatefi 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, candsunt 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 multasecuritate. Un singur bit de paritate nu ofera informatii despre pozitia erorii.

Codul Hamming

Codurile Hamming reprezinta o alta metoda care permite si localizarea erorii prinadaugarea a mai mult de un bit de paritate dupa bitii utili. Este astfel posibila detectia sicorectia 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=2 p - (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 oeroare, 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

Page 20: Coduri in

8/8/2019 Coduri in

http://slidepdf.com/reader/full/coduri-in 20/21

Page 21: Coduri in

8/8/2019 Coduri in

http://slidepdf.com/reader/full/coduri-in 21/21

*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 alternati1,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 + 8cadre 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 laGolay).Se pot transmite un număr nelimitat de pachete.Primul cuvant al primului cadru din pachet contine o adresă caredefineste pagerul destinatar. Restul de cuvinte din pachet sunt părti alemesajului. 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 ).