Sunteți pe pagina 1din 8

2.

CODURI LINIARE HAMMING


Obiectivul lucrrii: n aceast lucrare se studiaz procesul de codare, respectiv de decodare, cu
ajutorul codului Hamming, punnd n eviden modalitatea de corecie a unei erori sau detecie a dou
erori.
Sarciinile lucrrii :
de analizat modul de construire a codecului codului Haming liniar;
de implementat i de simulat codecul codului Haming liniar;
de estimat caracteristicile codecului.
2.1.Breviar teoretic
2.1.1.Detectarea si corectarea erorilor
Abilitatea codului de a detecta i corecta erori este condiionat de prezena simbolurilor
suplimentare (redundante). Coderul primete la intrarea sa k simboluri informaionale binare, iar la ieire
se obin n simboluri binare, n>k unde n este numrul biilor cuvnt chee.
n codurile liniare valorile simbolurilor de control sunt combinaii liniare ale simbolurilor
informaionale. n cazul codurilor binare fiecare simbol de control este ales astfel nct suma lui (modulo
2) cu simbolurile informaionale selectate s fie egal cu zero.
Orice cod liniar este un cod grup. Codurile grup, n care cele n simboluri care formeaz un cuvnt,
snt considerate ca fiind elementele unui vector n dimensional.
Forma general a unui cuvnt de cod este urmtoarea:
v= < c1,c2 ,a3,c4,a5,a6,a7,c8,a9 c16>
lungimea cuvntului fiind n= k+m;
unde m este numrul bitilor de control.
Primele k simboluri snt generate de sursa de informaie i snt numite simboluri de informaie,
ultimele simboluri snt redundante i servesc deteciei i coreciei erorilor, de aceea se numesc simboluri
de control.
Un cod corector bloc este declarat de ansamblul (n,k,t), unde t este numrul de simboluri ce pot fi
corectate.
n figura 2.1 este prezentat structura redus a unui sistem de transmisiune a informaiei.

N
(a)
Si

(v)
Coder

(e)

(v)

Canal de
transmisiuni

(a)
Decoder

Fig.2.1. Schema bloc redusa a sistemului de comunicatie


unde:
a este un vector ce conine biii informaionali, reprezentnd litere ale alfabetului primar;
v este un vector de lungime n, reprezentnd cuvntul de cod;
e este un vector de lungime n, reprezentnd cuvntul eroare introdus de sursa de zgomot (dintre
cei n bii, numai t bii (bituri) snt diferii de zero astfel nct n urma adunrii modulo 2 a lui e cu v s nu
fie afectai dect t bituri al acestuia din urm);
v este vectorul la ieirea canalului de transmitere a informaiei i reprezint suma modulo 2
dintre vectorii e i v;
a este un vector de k ce ajunge la utilizator.
Caracteristicile specifice codurilor liniare snt:
a) distana de cod d este cea mai mic distan Hamming care exist ntre vectorii ce formeaz
spaiul vectorial al codului. Distana Hamming dintre vectorii a i b se calculeaz cu urmtoarea formul:
r

d (ak bk ),
k 1

unde ak i bk snt elementele celor doi vectori ntre care se msoar distana.
Numrul de erori care poate fi detectat i corectat (t) n cazul unui cod liniar se obine din relaia:
d 2t+1.

(2.1)

n cazul codului Hamming distana de cod are valoarea 3. Din relaia (1.1) rezult c, n particular,
codul liniar Hamming poate detecta i corecta o singur eroare, deci t=1.
b) Numrul simbolurilor de control m din cuvntul de cod se determin cu ajutorul relaiei:
2m m k 1 .

(2.2)

c) Matricea de control H de dimensiuni [m x n]. Vectorii coreci sunt n spaiul nul al matricei H,
or fiecare vector corect este ortogonal cu fiecare vector linie al matricei H:
Hv T 0.

(2.3)

2.1.2. Particularitile generrii codului liniar Hamming


2

Codul Hamming este singurul cod grup perfect corector de o eroare. Acest cod este nesistematic,
respectiv poziiile de control snt 21, ..., 2m-1, corespunznd unor vectori coloan din matricea de control
H, ceea ce uureaz determinarea simbolurilor de control din relaia (2.3). Matricea de control este
construit astfel nct fiecare coloan reprezint scrierea n binar a poziiei sale n cadrul matricei:
0
0


H
0
0

0
1
0

0
1
1

1
0
0

Simbolurile de control vor fi calculate dup operaia de codare.


Exemplu. Se consider un vector informaional de lungime k= 4
Avnd n vedere c de la sursa de informaie se emit 4 simboluri, iar numrul simbolurilor de
control care le nsoesc m = 3. Deci, lungimea cuvntului de cod este: n= m+k= 7.
Alcatuim matricea de control cu dimensiunile (3X7)
0
H 0
1

1
0

1
1

0
0

0
1

1
0

1
1 .
1

Pentru codul Hamming structura cuvntului de cod este:


v=<c1 c2 a3 c4 a5 a6 a7>,
unde v - cuvint chee , ci - simbolurile de control, aj - simbolurile informaionale.
Valorile simbolurilor de control snt date de soluiile urmtorului sistem de ecuaii:

Relaie echivalent cu

c1
c
2
a
H v T 0 H 3 0,
.
.

an

m ecuaii n care simbolurile c1, c2, c4 ... nu intervin dect o singur dat, deci pot fi exprimate n funcie
de celelalte simboluri (de informaie).
n urma codrii, simbolurile de control se determin dup urmtoarea relaie:

c1 a3 a5 a7 0;
c2 a3 a6 a7 0;
c4 a5 a6 a7 0.

Atunci:
c1 a3 a5 a7 ;
c2 a3 a6 a7 ;
c4 a5 a6 a7 .

Exemplu:
a3 =1; a5 = 0; a6 =1; a7 = 0
Atunci nlocuim datele conform tabelului.
c1 1 0 0 1
c2 1 1 0 0
c4 0 1 0 1

Cuvntul de cod la intrarea canalului de transmitere a informaiei este:


v= <1 0 1 1 0 1 0>
Mai exact:
c1 =1; c2 = 0; a3 =1; c4 = 1; a5 = 0; a6 =1; a7 = 0.
Construim schema coderului dupa urmatoarea expresie:
c1 a3 a5 a7
c2 a3 a6 a7
c4 a5 a6 a7

Fig.2.2. Coderul codului Hamming liniar (4,7)

Fig. 2.3. Modelul EWB al coderului codului Hamming liniar (4, 7)


Pentru a stabili poziia erorii se realizeaz operaia de decodare cu ajutorul metodei numerelor de
control [z1....zm].

Aceste numere snt soluiile urmtorului sistem de ecuaii:

z Hv T

z1
z
2

zm
innd seama de structura matricei H, n mod analog calculului precedent, se obine:
z1 = c1/ a3/ a5/ a7/
z 2 = c2/ a3/ a6/ a7/
z3 = c4/ a5/ a6/ a7/

nlocuim datele, shi obinem rezultatele:


z1 = 1 1 0 0 0
z2 = 0 1 1 0 0
z3 = 1 0 1 0 0

Canalul de transmitere a informaiei v = <1011010>


ntroducem o eroare : v = <1001010> , poziia eronat este indicat.
v - fara eroare:

c1 =1; c2 = 0; a3 =1; c4 =1; a5 =0; a6 =1; a7 =0.

v - cu eroare :

c1 =1; c2 = 0; a3 = 0; c4 =1; a5 =0; a6 =1; a7 =0.

Construim matricea conform tabelului cu o poziie eronat.


z1 = c1/ a3/ a5/ a7/
z 2 = c2/ a3/ a6/ a7/
z3 = c4/ a5/ a6/ a7/

Eroarea va aparea in z1 i z2 .
z1 = 1 0 0 0 1

z2 = 0 0 1 0 1
z3 = 1 0 1 0 0

Corectorii dai se introduc n decodificator, care genereaz un semnal de corecie a erorii n celula
n care are numrul de ordine reprezentat binar de (e1 e2 e3).
Pe baza acestor relaii, poziia bitului eronat se calculeaz prin relaia:
p=20 z1+ 21 z2+ 22 z3.
Schema bloc a circuitului de decodare este prezentat n figura 2.4.
6

Fig.2.4. Decoderul codului Hamming liniar (7, 4)

Fig.2.4. Modelul EWB a decoderul fara eroare codului Hamming liniar (4,7)

Fig.2.5. Modelul EWB al decoderului cu eroare si corectare a codului Hamming liniar (4,7)

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