Sunteți pe pagina 1din 9

4.

Coduri Hamming ciclice


Obiectivul lucrrii: Lucrarea se ocup cu studiul codurilor Hamming ciclice corectoare de
o eroare/detectoare de dou erori, codate i decodate prin circuite de divizare i registre de
deplasare cu reacie.
Sarcinile lucrrii:

De studiat metodele de construire a circuitelor de divizare,

De implementat i de simulat codecul codului Hamming ciclic;

De estimat caracteristicile codecului.


4.1.Breviar teoretic
Codurile ciclice snt coduri bloc n care cele n simboluri care formeaz un cuvnt snt

considerate ca fiind coeficienii binari ai unui polinom v(x) de grad n-1.


Cuvintele unui cod ciclic se prezint n forma polinomial:

c x

n 1
i
ci x
i 0

c 0 c1 x c 2 x 2 ... c n 1 x n1 ,

(2.1)

sau, prescurtat:
c= (c0, c1, , cn-1).

(2.2)

Orice cuvnt al codului ciclic este deplasarea ciclic (cu o poziie) a unui alt cuvnt de cod.
De exemplu, (cn-1, c0, c1, , cn-2) este deplasarea ciclic (n dreapta) a vectorului (2.2). La nivel
de implementare o deplasare ciclic este uor asociat cu o deplasare ciclic ntr-un registru.
Codurile ciclice au proprietatea c dac v(x) este un cuvnt cu sens, atunci orice permutare
ciclic a simbolurilor sale este un cuvint cu sens.
De asemenea, cuvintele de cod snt privite ca elemente ale unei algebre lineare (+, )
modulo p(x)= xn+1. Cuvintele cu sens (n numr de 2k) snt elemente ale idealului generat de
polinomu ireductibil primitiv g(x) (numit polinom generator, divizor al polinomului p(x)) de grad
m:
v(x)= a(x) g(x),
iar cuvintele fr sens (n numr de 2n-2k) alctuiesc cele 2m clase de resturi modulo p(x).
Relaiile matriceale deduse n cazul codurilor grup rmn valabile, codurile ciclice fcnd
parte, de asemenea, din categoria codurilor lineare.
Codarea este operaiunea de determinare a polinomului simbolurilor de control c(x) n
funcie de polinomul simbolurilor de informaie a(x). Simbolurile de control introduc o
redundan care faciliteaz detecia i corecia erorilor.
1

Acestea pot fi calculate pe baza polinomului generator g(x), din relaia:


c ( x) rest

x m a( x)
g ( x)

sau pe baza polinomului de control h(x) de grad k, din relaia


v ( x ) h( x ) 0 mod p ( x ),

n ambele cazuri rezultnd un cuvnt de cod de forma:


v ( x ) x m a ( x ) rest

x m a( x)
.
g ( x)

Polinomul de control poate fi determinat din polinomul modulo i polinomul generator cu


relaia:
h( x )

p( x)
.
g ( x)

Cu ajutorul coeficienilor polinomului de control, matricea H poate fi scris astfel:


0
0
H
...

hk

...

hk

...

h1

0
...

...
...

hx
...

hk 1
...

...
...

h0
...

hk 1

...

h0

h0

...

h0

0
.
...

Codul Hamming ciclic este un cod perfect (n=2m-1), corector de o eroare (dmin=3) i
sistematic, adic are proprietatea ca simbolurile de informaie snt delimitate de simbolurile de
control i snt plasate succesiv la sfritul cuvntului de cod.
Decodarea este operaia invers codrii i const n gsirea unei corespondene ntre
cuvntul eronat recepionat v(x) i erorile introduse de canal e(x):
v / ( x ) v ( x ) e( x ).

Decodarea se face pe baza valorii corectorului s(x):


s ( x) rest

v / ( x)
e( x )
rest
,
g ( x)
g ( x)

care se obine prin sumarea simbolurilor de control recepionate cu simbolurile de control


obinute prin recordarea simbolurilor de informaie recepionate:
s ( x) c / ( x ) rest

x m a ( x)
.
g ( x)

Codurile ciclice cu distana minim 3 pot fi utilizate fie pentru corecia erorilor singulare,
fie pentru detecia erorilor duble. n ambele cazuri, se prelucreaz valoarea corectorului,
folosindu-se diverse circuite pentru efectuarea codrii i a decodrii.
4.2.Codarea prin circute de divizare
Coderul este format dintr-un circuit de divizare cu celule de memorare pe 1 bit i
sumatoare modulo 2 interioare. Circuitul de divizare are conexiunile buclei de reacie realizate
conform coeficienilor polinomului generator g(x).
Schema bloc a codorului cu circuit de divizare prin g(x) este prezentat n figura 2.1
Pe durata primelor k tacte, comutatorul K este n poziia 1, astfel cei k bii de informaie de
1 MX

p0

p1
r0

p2
r1

pn-k

0/1

rn-k
2

(a0 a1 ak-1 )= (cn-k cn-k+1 cn-1 )

1 M
X

Fig.2.1 Bloc-schema coderului sistematic implementat


n baza dispozitivului de divizare la p(x).

za dispozitivOUT
deDETECTOR

DE ERORI

la intrare se gsesc n cuvntul de la ieire. Celulele codorului vor conine dup k tacte
simbolurile de control.
Dup terminarea introducerii simbolurilor de informaie, comutatorul K este trecut n
poziia 2 i coninutul celulelor este evacuat, completndu-se ultimii m bii din cuvntul de cod,
care reprezint simbolurile de control.

4.3.Decodarea cu circuite de divizare


n schema cu corectare secvenial - unitatea detectoare (corectoare) este realizat printr-un
circuit care emite simbolul 1 n momentul de timp cnd poziia eronat a vectorului recepionat
apare la ieirea registrului de deplasare Rg, numit i acumulator. De aceea, schema secvenial
este mai sofisticat dect schema secvenial-paralel. Pentru codul Hamming ciclic sistematic
3

(7, 4) schema decoderului este prezentat n Figura 2.21. Circuitul D1 calculeaz restul r(x) de la
mprirea vectorului de intrare v(x) la polinomul p(x).
Restul de la mprire r(x) 0 se transcrie n registrul divizorului circuitului de corectare
D2. Poarta logic I din D2 are funcia de a genera 1 cnd registrul de deplasare tranziteaz n
starea potrivit. ntr-adevr, deoarece puterea elementului i al cmpului indic poziia j a erorii,
atunci, cnd eroarea va fi n celula i=0 a registrului de acumulare, divizorul din D2 va fi n starea
corespunztoare (v. Tabelul 2.5.). Cum semnalul log.1 apare la ieirea E a circuitului D2,
simbolul din poziia eronat va fi corectat i, totodat, acest semnal va reseta divizorul din D2.

4.4. Desfasurarea lucrarii


4.4.1. Studiul codurilor liniare Hamming
Scopul lucrarii: De studiat codarea si decodarea cu ajutorul codurilor ciclice Hamming cu
iesirea paralela,de analizat principiul de corectie a unei erori.
Sarcina:
1.De analizat principiul construirii coder-decoderului codului ciclic Hamming.
2.Asamblarea si simularea coder-decoderului codului ciclic Hamming.
3.Studierea caracteristicilor coder-decoderului.
Pe baza polinomului dat,de alcatuit coderul si decoderul,si cu ajutorul cuvintului
informational,de determinat cuvintul-cheie,de primit cuvintul-cheie la iesirea coder-decoderului
si de analizat posibilitatea schemei de a corecta o eroare.
De asamblat si analizat coder-decoderul codului ciclic Hamming in EWB.
m- gradul polinomului generator
g(x)- polinomul generator
4

V(x)- cuvintul-cheie
()- valoarea in registre
r(x)- restul
k=5, 6, 7, 8, 9, 10, 11, 12.
g(x)=1+x+x4;
g(x)=1+x3+x4;
g(x)=1+x2+x5;
g(x)=1+x3+x5;
Date initiale:
g ( x) 1 x x 3 1101;

m=3; k=4; n=7.


1.Dupa polinomul g(x) alcatuim schema necesara cu legaturile de reactie necesare.

Fig.3.1 Schema coderului dupa k tacte.


2.Verificam functionarea coderului dupa n tacte.

Fig.3.2 Rezultatele functionarii coderului dupa k tacte


3. Presupunem ca avem codul:
a( x) 1 x 2 x 3 1011

Determinam cuvintul-cheie dupa formula:


V ( x) x m a( x ) C ( x) x m a ( x)
x3 x5 x6

x m a ( x)
x 3 (1 x 2 x 3 )
x 3 (1 x 2 x 3 )

g ( x)
1 x x3

x3 x5 x6
1001011
1 x x3

Fig.3.3 Schema coderului dupa n tacte

4.Verificam functionarea coderului dupa n tacte


6

Fig.3.4 Rezultatele functionarii coderului dupa n tacte


Dupa introducerea a n tacte am primit codul <1001011> ceea ce corespunde calculelor
teoretice.
5.Elaboram decodificatorul, pentru aceasta impartim pozitia erorilor in diferite
parti ale codului(matricea unitara) la polinomul nostru ( g ( x) 1 x x 3 1101 ):
1. 0000001/1011=001

5. 0010000/1011=110

2. 0000010/1011=010

6. 0100000/1011=111

3. 0000100/1011=100

7. 1000000/1011=101

4. 0001000/1011=011

Asamblam schema decoderul conform polinomului g(x)


7

Fig.4 Schema Decoderul far eroare

Fig. 5 Schema decoderul cu eroare i corectare. troducem eroare in cuvintul chee 1001011
8

Fig. 6 Schema decoderul cu detectare bitului eronat si totodata corectarea lui.

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