Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AstronomieBiofizicaBiologieBotanicaCartiChimieCopii
Educatie civicaFabule ghicitoriFizicaGramaticaJocLiteratura romanaLogica
MatematicaPoeziiPsihologie psihiatrieSociologie


CODURI BLOC LINIARE

Matematica



+ Font mai mare | - Font mai mic



CODURI BLOC LINIARE



I.          Coduri bloc lineare; Generalitati

Fie matricea generatoare pentru codul bloc linear (8, 4)

I.1. Sa se determine cuvintele de cod corespunzatoare tuturor mesajelor posibile. Care este distanta Hamming minima a codului ?

m G=c

mesajul

Cuvinte de cod

dHmin = 2 = w(c13) = d(c2,c15)

I.2. Sa se scrie matricea G sub forma sistematica [I4x4 Q] (daca este posibil, se vor pastra din matricea Q numai acele coloane care au cate doua simboluri 1). Sa se determine toate cuvintele de cod sub forma sistematica.

~

mesajul

Cuvinte de cod

I.3. Sa se scrie matricea H sub forma sistematica. Sa se determine toate cuvintele de cod corespunzatoare codului dual. Sa se verifice proprietatea de ortogonalitate a codului original cu cel dual.

H = [QTI4x4] =    

Distanta Hamming minima este egala cu nr. Minim de coloane a caror suma este vectorul nul deci:

DHmin = 2

mesajul

Cuvinte de cod

GS HT = = O4x4

Se deduce ca orice cuvant al codului original, ci , exista un cuvant dk al codului dual astfel incat :

ci dkT = 0, i,k =

c1 d1T = 0 c9 d11T = 0

c2 d3T = 0 c10 d8T = 0

c3 d4T = 0 c11 d13T = 0

c4 d12T = 0 c12 d9T = 0

c5 d5T = 0 c13 d14T = 0

c6 d6T = 0 c14 d15T = 0

c7 d10T = 0 c15 d2T = 0

c8 d7T = 0

I.4. Sa se determine matricea standard de decodare. Sa se determine sindromurile corespunzatoare tuturor cuvintelor eroare alese .

Tabela are 16 coloane cu 16 linii adica 256 cuvinte binare(8 biti).Sunt luati 15 vectori de eroare

si = ei HT    i =

=>    s1 = [0001]; s2 = [0010]; s3 = [0100]; s4 = [1000]; s5 = [0110]; s6 = [1000];

s7 = [1101]; s8 = [0010]; s9 = [0001]; s10 = [0111]; s11 = [1011]; s12 = [0101];

s13 = [1110]; s14 = [0011]; s15 = [1110];

Distanta minima Hamming este dHmin = 2 poate detecta vectori eroare de dHmin -1= 1 biti nenuli.

II. Coduri Hamming

Codurile Hamming sunt coduri bloc lineare (2m-1, 2m-m‑1) corectoare de o singura eroare (deci distanta Hamming minima este 3). Matricea de verificare a paritatii H, de dimensiune (m x (2m-1)) are urmatoarea proprietate: coloanele sale corespund vectorilor asociati tuturor secventelor binare de lungime m, cu exceptia vectorului nul.

II.1. Sa se determine analitic matricile G si H codul Hamming (7,4) in forma sistematica.

Matricea de verificare a paritatii H are dimensiunea (3x7);

H=

G =

II.2 Sa se determine matricile G si H pentru codul Hamming (7,4), folosind functia hammgen. Corespund aceste matrici formei sistematice ?

[H,G] = hammgen (3)

H=    G=

Matricile corespund formei sistematice H = [I3x3 QT]    G = [Q I4x4]    Q =

II.3. Sa se determine toate cuvintele de cod posibile, folosind functia encode

msg = [0 0 0 0 ; 0 0 0 1 ; 0 0 1 0 ; 0 0 1 1 ; 0 1 0 0 ; 0 1 0 1 ; 0 1 1 0 ; 0 1 1 1 ; ;1 1 1 1 ]

code = encode(msg,7,4,'hamming')

II.4. Sa se determine matricea (tabela) standard de decodare si sindromurile asociate cuvintelor de cod alese.

Tabela va avea 24 coloane, fiecare corespunde unui cuvant cod, pentru acoperirea celor 27=128 cuvinte binare de 7 biti sunt necesare 8 linii, deci trebuie alesi 7 vectori de eroare.

Tabela standard de decodare va fi in figura urmatoare.

s = r HT = [1010110]     = [ 0 0 1]

sindromurile cuvintelor alese vor fi:

s1 = [0 0 0 0 0 0 1] HT = [1 0 1]

s2 = [0 0 0 0 0 1 0] HT = [1 1 1]

s3 = [0 0 0 0 1 0 0] HT = [0 1 1]

s4 = [0 0 0 1 0 0 0] HT = [1 1 0]

s5 = [0 0 1 0 0 0 0] HT = [0 0 1]

s6 = [0 1 0 0 0 0 0] HT = [0 1 0]

s7 = [1 0 0 0 0 0 0] HT = [1 0 0]

II.4. Sa se decodeze mesajul [ 1 0 1 0 1 1 0]

a)     analitic;

b)    folosind functia decode;

c)     calculand sindromul si folosind matricea (tabela) standard de decodare.   

a) s = r HT = e HT =[e0 + e3 + e5 + e6 , e1 + e3 + e4 + e5 , e2 + e4 + e5 + e6 ] = [0 0 1]

daca e2 = 1 (e0,e1,e2..sunt bitii vectorului eroare) => e = [0 0 1 0 0 0 0]

=> ĉ = r + e = [1 0 0 0 1 1 0 ] => m=[ 0 1 1 0]

b)           msg = decode ([1 0 1 0 1 1 0],7,4,'hamming')

msg =

c)              sindromul vectorului receptionat este cel corespunzator erorii [0 0 1 0 0 0 0];

in coloana 7 ĉ se regaseste in prima linie ĉ = [1010110] + [0010000] = [1000110] =>

m = [0 1 1 0]

III. Coduri ciclice

III.1. Folosind functia cyclpoly determinati polinomul generator corespunzator codului ciclic (8,3). Desenati structura codorului cu registru de deplasare.

g=cyclpoly(8,3)

g=[1 1 0 0 1 1]

g(D)=1+D+D4+D5

Circuitul de codare folosind registru in configuratia MSRG

III.2. Folosind functia encode generati biti de verificare a paritatii. Toate cuvintele de cod corespunzatoare unui nod ciclic (7,3).

Verificati proprietatea de deplasare ciclicxa.

Msg=[0 0 0 ; 0 0 1 ; 0 1 0 ; 0 1 1 ; 1 0 0 ; 1 0 1 ; 1 1 0 ; 1 1 1]

Code=encode (msg, 7.3 ; `cyclic` ; cyclpoly(7,3)

Se deplaseaza circular cu o pozitie fiecare cuvand de cod.

III.3. Pe baza polinomului generator sa se scrie matricea G

III.4.

Folosind functia cyclgen determinati matricile G si H in forma sistematica. Verificati analitic care este forma cea mai corecta.

[H , G]= cyclgen(7 , cyclpoly (7,3))

Impartim polinoamele la g(D)=1+D2+D3+D4

D4= g(D)+D3+D2+1

D5= D*g(D)+g(D)+D2+D+1=g(D)*(D+1)+D2+D+1

D6= D2*g(D)+D*g(D)+D=g(D)*(D2+D)+D

n (D)=bi(D)+D4+i,    i=0,1,2

n (D)= 1+D2+D3+D4

n (D)= D+D6

n (D)= 1+D+D2+D5

=>

si

Se observa ca G si H determinate analitic au acceasi forma cu cele determinate de functia cyclgen.

III.5. Care este sindromul corespunzator vectorului receptionat r= [0 1 1 1 0 0 0 ] ? Verificati analitic, folosind diviziunea polinomiala, rezultatul obtinut.

s = r HT = [0111000] = [0111]

r(D)=D+D2+D3

grad<grad => s(D)=r(D)= D+D2+D3 => s1=s2=s3=1, iar s0=0

III.6. Folosind functia decode determinati mesajul si pozitia erorii corespunzatoare mesajului receptionat de la punctul III.5. Verificati analitic rezultatul obtinut.

msg = decode([0111000],7,3,'cyclic',cyclpoly(7,3))

msg = 0

0

1

m = [001] caruia ii corespunde cuvantul de cod [0111001]

Petru determinarea pozitiei erorii:

e = encode(msg,7,3,'cyclic',cyclpoly(7,3))-[0;1;1;1;0;0;0];

e'= 0 0 0 0 0 0 1

e6(D)=D6 s(D)=D+D2+D3 s=[0 1 1 1]

e5(D)=D5 s(D)=D+D2 s=[0 1 1 0]

e4(D)=D4    s(D)=1+D2+D3 s=[1 0 1 1]

e3(D)=D3 s(D)=D3 s=[0 0 0 1]

e2(D)=D2 s(D)=D2 s=[0 0 1 0]

e1(D)=D s(D)=D s=[0 1 0 0]

e0(D)=1 s(D)=1 s=[1 0 0 0]

Sindromul corespunzator lui r este cel corespunzator e6, deci este eronat bitul al saptelea, deci    ĉ=[0 1 1 1 0 0 1] care corespunde mesajului [0 0 1]

IV. Coduri convolutionale

Fie codorukl convolutional descris de polinoamele

g1(D)=1+D+D2

g2(D)=1+D2

g1(D)=1+D

IV.1. Sa se rezolve analitic:

a)     sa se deseneze schema codorului,

b)    sa se deseneze diagrama de tranzitii;

c)     sa se deseneze diagrama trellis

d)     sa se determine cuvantul de cod cod corespunzator mesajului m=[110101]

m=[1 1 0 1 0 1] => w(D)= 1+D+D3+D5

x1(D) = (1+D+D3+D5)(1+D+D2) =1+D+D3+D5+D+D2+D4+D6+D2+D3+D5+D7 = 1+D4+D6+D7

ð     x1=[1 0 0 0 1 0 1 1]

x2(D)= (1+D+D3+D5)(1+D2)= 1+D+D3+D5+D2+D3+D5+D7=1+D+D2+D7

ð     x2=[1 1 1 0 0 0 0 1]

x3(D)= (1+D+D3+D5)(1+D)= 1+D+D3+D5+D+D2+D4+D6=1+D2+D3+D4+D5+D6

ð     x3=[1 0 1 1 1 1 1 0]

secventa de cod generatoare va fi:

e)     folosind algoritmul Viterbi sa se decodeze semnalul r=[101111011101000000]

Cuvantul de cod se putea determina din diagrama de tranzitie saau din diagrama trellis, pornind din starea 00 si mergand pe linie continua daca bitul de intrare e 0 sau punctata daca bitul de intrare e 1, ultimele doua grupe de cate trei biti se obtin cand ultimul simbol al mesajului iese din circuit .

La fiecare pas se compara secventa receptionata cu cele doua iesiri posibile; acestea au cate trei biti iar cele doua iesiri sunt una valoarea negata a celeilalte si se alege din ele cea care are cel putin doi biti identici cu secventa receptionata.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1707
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved