CATEGORII DOCUMENTE |
Astronomie | Biofizica | Biologie | Botanica | Carti | Chimie | Copii |
Educatie civica | Fabule ghicitori | Fizica | Gramatica | Joc | Literatura romana | Logica |
Matematica | Poezii | Psihologie psihiatrie | Sociologie |
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 |
Vizualizari: 1707
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved