Vous êtes sur la page 1sur 2

Sciences de lingnieur

CODE DE HAMMING.
I PRESENTATION : Le code de Hamming est utilis dans les transmissions de donnes car il permet de dtecter et de corriger une erreur survenue dans un bloc transmis. Principe du codage.

2k  k  1 bits de donnes par un bloc de n 2k  1 bits en ajoutant donc k bits, dits de correction, certaines positions au bloc de m bits. Le tableau suivant indique les nombres de bits de correction, de donnes pour diffrentes valeurs de k.
On fixe un entier k et on code chaque bloc de m

k=3 k=4 k=5 Dans la suite de ltude, on retient k=3. Position des k bits de correction :

m=4 m=11 m=26

n=7 n=15 n=31

Les k bits de correction sont placs dans le bloc envoy aux positions dindice une puissance de 2 en comptant partir de la gauche. Ainsi, en notant k1 k2 k3 les bits de correction et m1 m2 m3 m4 les bits de donnes, le bloc envoy est : A = k1 k2 m1 k3 m2 m3 m4. Calcul des k bits de correction : Les k bits de correction sont calculs en utilisant une matrice de parit H, reprsente cidessous pour k=3.
1 2 3 4 5 6 7

1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1

Remarque : La colonne i de la matrice reprsente en binaire la valeur de i.

Les k bits de correction sont tels quen considrant le vecteur A

k1 k2 m1 k3 , on ait H.A m2 m3 m4

0 0 . 0

Lyce Jacques Amyot Auxerre

combiHamming 02/05/2005 Page 1 sur 2

Sciences de lingnieur

On obtient ainsi 3 quations scalaires que doivent vrifier les k bits de correction : k1  m1  m2  m4 0mod ulo 2 k 2  m1  m3  m4 0 mod ulo 2 k3  m2  m3  m4 0 mod ulo 2
Remarque : les oprations daddition sont faites modulo 2. Par exemple : 1+0=1 ; 1+1=0 ; 1+1+1=1 ; etc. Le bloc A parfaitement dtermin est alors envoy.

Rception des donnes et vrification : On reoit le bloc C = c1 c2 c3 c4 c5 c6 c7 qui peut tre diffrent du bloc A si il y a eut des perturbations sur la ligne. Si on considre quil ny a eut quune seule erreur de transmission, alors on peut crire : C = A + E o E est un bloc contenant 6 bits 0 et 1 bit 1. Les positions des 0 et du 1 sont inconnues dans le bloc. On calcule le vecteur S tel que : S

s1 s2 H.C s3

H.( A  E)

H.A  H.E

H.E .

Finalement, S est une des colonnes de la matrice de parit dont lindice nous donne la position de lerreur dans le bloc C. Lerreur est corrige en changeant le bit considr dtat. s3 s2 s1 est le code binaire de position de lerreur dans le bloc C que nous obtenons partir des quations suivantes : s1 (c1  c3  c5  c 7 ) mod ulo 2 s2 (c 2  c3  c 6  c 7) mod ulo 2 s3 (c 4  c5  c 6  c 7)mod ulo 2 Si s3 = s2 = s1 = 0, alors il ny a pas eut derreur. II TRAVAIL DEMANDE : 1. Etablir les tables de vrit de k1, k2 et k3. 2. Dterminer les expressions logiques de k1, k2 et k3. 3. On souhaite envoyer le bloc de donnes 1110. Dterminer le bloc A que lon envoie effectivement en utilisant le code de Hamming. 4. Etablir les tables de vrit de s1, s2 et s3. 5. Dterminer les expressions logiques de s1, s2 et s3. 6. On reoit le bloc 0011101. Vrifier quil ne contient pas derreur et corriger le ventuellement. Ecrire alors le bloc de donnes envoy.

Lyce Jacques Amyot Auxerre

combiHamming 02/05/2005 Page 2 sur 2

Vous aimerez peut-être aussi