Sunteți pe pagina 1din 7

Laborator TAM

Laborator 2

GENERAREA CODURILOR (SECVENELOR) DE MPRTIERE


INTRODUCERE TEORETIC

1. CODURI BLOC LINIARE Codurile bloc lineare (n,k) colecteaz blocuri de k bii succesivi ai mesajului informaional, pe care i prelucreaz, genernd blocuri de cte n>k bii ai mesajului codat.
In trare ( s e c v e n ta m e s a j ) k b i ti

C o d o r b lo c ( n ,k )

I e s ir e ( s e c v e n t a c o d a ta ) n > k b i ti

Fig.1.1. Schema bloc conceptual a codorului bloc (n.k)

Rata codului

R=

n k

(1)

n cele ce urmeaz se vor utiliza notaiile: - mi = [mi ,0 , mi ,1 , ... , mi ,k ] pentru vectorul asociat mesajului ci = [ci ,0 ,ci ,1 , ... ,ci ,n ] pentru vectorul asociat cuvntului de cod.

Matricea generatoare a codului. Coduri sistematice Cum orice cod bloc linear (n,k), este un subspaiu al spaiului vectorial generat de mulimea vectorilor binari de lungime n {g 0 , g1 , ... , g k 1 } care reprezint baza,

()c , ()a1 , ... ,a k {0,1} c = a1 g1 + a2 g 2 + ... + ak g k


Codorul este specificat prin matricea generatoare G (kxn),
g0 g0,0 g0,1 .... g0,n1 g g 1,0 g1,1 .... g1,n1 G= 1 = .... ........................... g k 1 gk 1,0 g k 1,1 .... g k 1,n 1

(2)

(3)

dac m = [m0 m1 .... mk 1 ], mi {0 ,1}, 0 i k 1 este mesajul ce trebuie codat, cuvntul de cod corespunztor se determin astfel c = mG = m0 g 0 + m1 g1 + ... + mk 1 g k 1 (4)

Laborator TAM

Laborator 2

Coduri sistematice n general, att din punct de vedere al simplitii implementrii hardware a codorului ct i al decodrii semnalului, este de dorit ca toi biii corespunztori mesajului s fie grupai la nceputul sau la sfritul secvenei de cod, aa cum este sugerat n figura 1.2.
bitii mesajului
k

bitii redundanti
n-k

bitii redundanti
n-k

bitii mesajului
k

Fig.1.2. Organizarea mesajului n forma sistematic

n cazul n care se cuvintele de cod respect aceast organizare, codurile se numesc sistematice.
q 01 .... q0, n k 1 1 0 ... 0 q 00 qi, j {0,1} q11 .... q1, n k 1 1 0 ... 0 q10 G = Q (n k ) xk I kxk = , i = 0, 1, ... , k 1 .................................................. j = 0, 1, ... , n k q k 1,0 q k 1,1 .... q k 1, n k 1 0 0 ... 1

(5)

q 01 .... q0, n k 1 1 0 ... 0 q 00 qi, j {0,1} q11 .... q1, n k 1 1 0 ... 0 q10 G = I kxk Q (n k ) xk = , i = 0, 1, ... , k 1 .................................................. j = 0, 1, ... , n k 0 0 ... 1 q k 1,0 q k 1,1 .... q k 1, n k 1

(6)

Decodarea pe baza sindromului i a matricii (tabelei) standard Fie C un cod bloc linear (n,k), cu elementele c1 ,c2 , ... c2k .

Matricea standard pentru un cod bloc linear (n,k) este dat n tabelul 1.1. Tabelul 1.1.
c 0 = [00 ... 0]

c1
c1 + e1 c1 + e 2
......

c2
c 2 + e1 c2 + e2
......

...... ...... ...... ...... ......

c 2k
c 2k + e1 c2k + e 2
......

e1 e2
......

e 2( n k )

c1 + e 2( n k )

c 2 + e 2( n k )

c 2 k + e 2( n k )

Pentru a minimiza probabilitatea de eroare vectorii eroare {e1 ,e1 , ... ,e 2( n k ) }trebuie alei astfel nct s corespund erorilor celor mai probabile ce pot apare. O metod este aceea de a alege mai nti vectorii eroare cu o un singur bit nenul, apoi cu doi, .a.m.d., pn cnd sunt epuizate toate posibilitile.

Laborator TAM

Laborator 2

Pentru a efectua decodarea cu ajutorul acestei matrici se folosete faptul c produsul dintre orice vector al codului i transpusa matricii de verificare a paritii este nul. Astfel, oricare ar fi vectorul recepionat r=cm+ej, produsul dintre acesta i transpusa matricii de verificare a paritii este
rH T = c m + e j H T = c m H T + e j H T = e j H T

(7)

2. CODURI CONVOLUIONALE n general, un cod convoluional este complet determinat dac se cunosc polinoamele generatoare, care definesc: numrul de celule ale registrului de deplasare (dat de gradul maxim al acestora-1); numrul de sumatoare modulo 2 (dat de numrul de polinoame); conexiunile ntre celulele registrului i aceste sumatoare. Exemplu 1 S se implementeze codorul definit de polinoamele
g1 ( D) = 1 + D + D 2 g1 = [111] g 2 ( D) = 1 + D 2 g 2 = [101]

(8)

i s se determine cuvntul de cod dac secven de date este w=[1011]. Codorul are o intrare, 2 ieiri, registrul de deplasare este format din 2 celule, iar rata codului este R=1/2. Structura codorului este reprezentat n figura 1.3. Biii de intrare sunt introdui n registrul de deplasare de la stnga la dreapta. Pentru fiecare bit de intrare introdus n codor, sunt generai cte doi bii la ieirea celor dou sumatoare modulo 2. Cele dou sumatoare sunt citite alternativ, astfel nct rata codului este dubl fat de rata secvenei de intrare. Secvena de intrare se poate scrie astfel
w(D ) = w0 + w1D + .... + w j D j + ... w = w0 , w1, ... w j ...

w j {0,1} biti de intrare

(9)

x1(D) g1(D)=1+D+D
2

Secventa de iesire w(D)

Fig.1.3. Structura codorului convoluional cu rata 1/2 din exemplul 1

g2(D)=1+D2

x2(D)

Diagrama de tranziii se poate determina din tabelul de tranziii Tabelul 1.2.

Laborator TAM
Tabelul 1.2.
Starea curent [00] [01] [10] [11] Intrare 0 1 0 1 0 1 0 1 Starea urmtoare [00] [10] [00] [10] [01] [11] [01] [11] Ieire [00] [11] [11] [00] [10] [01] [01] [10]

Laborator 2

Aceasta este reprezentat schematic n figura 1.4.


00

00 11 10 10 00 01 01 11 01 11

10

Fig.1.4. Diagrama de tranziie a strilor pentru codorul convoluional din exemplul 1

Descrierea codoarelor prin diagrama trellis Codoarele folosite pentru coduri convoluionale mai pot fi descrise i cu ajutorul diagramelor trellis care permit o vizualizare a evoluiei att n spaiul strilor ct i n timp. Astfel pe vertical se reprezint toate strile posibile ale codorului, la fiecare moment de timp. Un bit de intrare 0 va determina trecerea codorului ntr-o alt stare, trecere ce va fi reprezentat printr-o linie continu ce unete starea de pornire de la momentul discret t i starea urmtoare de la momentul (t+1). Trecerile datorate biilor de intrare 1 sunt reprezentate prin linii punctate. Deasupra acestora sunt trecui biii care apar la ieirea codorului. Pe msur ce codorul evolueaz n spaiul strilor se realizeaz o deplasare de la dreapta la stnga prin diagrama trellis, iar secvena de date codat se poate citi urmrind datele trecute deasupra liniilor parcurse. Pentru codorul descris n exemplul 1 diagrama trellis este reprezentat n figura 1.5.

Laborator TAM
00 00 00 11 01 10 11 01 10 11 10 01 10 10 01 01 11 t=0 11 11 01 11 11 11 00 01 00

Laborator 2

00

00

00

..
10

t=1

t=2

t=3

Fig.1.5. Diagrama trellis asociat codorului din exemplul 1

Decodarea codurilor convoluionale: algoritmul Viterbi

Pasul 1. Se ncepe de la adncimea j=1. Se determin metrica pentru fiecare cale care intr ntr-una din strile urmtoare, i se memoreaz starea n care a ajuns, metrica asociat i calea parcurs. Pasul 2. Pentru fiecare j=j+1 se determin metricile pariale pentru toate cile emergente unei anumite stri astfel: metrica supravieuitorului (adncimea j)+ metrica cii care intr n starea urmtoare Pentru fiecare stare se pstreaz metrica maxim (supravieuitoare), cealalt fiind eliminat. Se memoreaz de fiecare dat starea, metrica i calea supravieuitoare asociat Pasul 3. Dac j L+m se repet punctul 2. Altfel algoritmul se termin.
Secv. recept ionat a 00 1 10 10 2 10 3 11 4 11 5 10 6 01 7 11 3

01

11

11 11 10

11

10 01 11 10

01

Diagrama trellis la momentul t=8T


3. SECVENE PSEUDOALEATOARE Secvenele pseudoaleatoare generate de generatoarele cu regitri de deplasare (SRG) sunt foarte utile n multe aplicaii din domeniul comunicaiilor: accesul multiplu, codarea n transmisiunile cu spectru mprtiat, secretizarea convorbirilor, protecia la bruiaj, radare greu de detectat de ctre inta urmrit, scrambling (transformarea semnalelor vocale sau de date n semnale cu biii "0" si "1" echiprobabili), etc.

Laborator TAM

Laborator 2

Matricea A Matricea A nmulit cu vectorul n-dimensional asociat registrului de deplasare va determina coninutul acestuia la tactul urmator. Pentru un registru cu lungimea n, matricea A va avea dimensiunea n x n. Prima linie a matricii conine coeficienii ci , iar sub diagonala principala vom avea o diagonala de "1".
c1 c 2 c3 ... c n1 c n 1 0 0 0 0 A = 0 1 0 0 0 ................................ 1 0 0 0 0

Ecuaia caracteristic i polinomul caracteristic Pentru orice matrice n x n ecuaia caracteristic rezult din egalarea cu zero a determinantului [ A I ]. Exemplu:
c1 1 A= 0 0 c2 c3 1 0 0 0 1 0 0 0 1 0

Pentru cazul general (o matrice A de dimensiune n x n) vom avea:

F ( x) = x n + c1 x n1 + c2 x n 2 + ... + 1 .
Polinomul caracteristic este definit prin:
f ( x) = 1 + c1 x + c 2 x 2 + c3 x 3 + ... + c n x n

DESFURAREA LUCRRII I. Coduri bloc lineare; Generaliti Fie matricea generatoare pentru codul bloc linear (8, 4)

10011011 11100111 G= 01101010 11011100


I.1. S se determine cuvintele de cod corespunztoare tuturor mesajelor posibile. Care este distana Hamming minim a codului ? I.2. S se scrie matricea G sub forma sistematic [I4x4 Q]. S se determine toate cuvintele de cod sub forma sistematic. I.3. S se determine matricea standard de decodare.

Laborator TAM
II. Coduri convoluionale Fie codorul convoluional descris de polinoamele g1(D)=1+D+D2 ; g2(D)=1+D2 ; g3(D)=1+D S se rezolve analitic: a) b) c) d) s se deseneze schema codorului i s se deseneze diagrama de tranziii; s se deseneze diagrama trellis s se determine cuvntul de cod corespunztor mesajului m=[110101] folosind algoritmul Viterbi s se decodeze semnalul r=[10110]

Laborator 2

III. CODURI PSEUDOALEATOARE Pentru polinomul generator f (D ) = 1 + D 2 + D 5 s se scrie matricea generatoare III.1. Considernd starea iniial [1 0 0 0 0], s se genereze secvena PN de lungime 25-1, astfel: >> x=x0 >> for i=1:31, x=(x*A)-2*floor((x*A)/2); c(i)=x(1); end III.2. S se translateze secvena binar obinut din valori logice {0,1} n valori binare {-1,1} >> cb=2*c-1. III.3. S se calculeze funcia de autocorelaie care se obine prin nmulirea secvenei PN cu toate variantele obinute din secvena iniial prin rotaie ciclic cu cte o poziie, astfel: >> c1=cb; >> for i=1:31, c1=[c1(31), c1(1:30)]; r(i)=c*c1'/31; end III.4. S se vizualizeze funcia de autocorelaie i s se reprezinte grafic. Ce observai ? III.5. S se determine funcia de corelaie parial a codului pe lungimea de 5, 15, 25. Astfel, pentru o lungime de corelaie de 5 se poate folosi sintaxa: c1=cb; for i=1:31, c1=[c1(31), c1(1:30)]; r5(i)=c(1:5)*c1(1:5)'/5; end S se reprezinte grafic funciile de corelaie parial obinute. Ce observaii putei face ? ATENIE! Graficele pt punctul III se vor face cu funcia stem i nu plot!

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