Vous êtes sur la page 1sur 13

Facult des Sciences et Techniques Tanger 1re anne Cycle Ingnieur Goinformation

Corrections des erreurs : Code de Hamming

Ralis par : Suivi par : Pr.Ait ElKbir


Youssra Mahtaj Safa Kouki Amal Hasmi

Anne Universitaire : 2012/2013

Rseaux et tlinformatiques

Geoinformation

Page 2

Rseaux et tlinformatiques

Sommaire :
1.Introduction 2.Problmatique 3.Correction des erreurs 1.Cas gnral 2.Distance de Hamming 3.Code de Hamming 4. Performance dun code correcteur 5. Conclusion

Geoinformation

Page 3

Rseaux et tlinformatiques

I-Introduction
La transmission de donnes numriques se fait par le biais de canaux sous forme de signaux lectriques. Une transmission sur une distance quelconque est obligatoirement parasite (Notamment cause de diverses sources de perturbations lectromagntiques et de la qualit des matriaux : Cest ce quon appelle bruit en gnral) ce qui entraine les erreurs sur les messages reus.Or en informatique, une erreur dun seul bit peut avoir des consquences srieuses si elle a lieu dans un excutable : instruction errone, criture au mauvais emplacement en mmoire. Le taux derreur varie normment suivant les canaux, il est gnralement compris entre 10-3 et 10-9 .La cause des perturbations, donc de l'augmentation du taux d'erreur, peut tre multiple : quipement ou rseau dfectueux, pointage incorrect d'une antenne, longueur des cbles. Pourtant, dans ce domaine, il est primordial que les informations collectes soient le plus identique possible .Il y a donc ncessit de scuriser la transmission : cest le rle des codes correcteurs derreurs. On rajoute au message transmettre des informations supplmentaires, qui permettent de reconstituer le message au niveau du rcepteur.

Geoinformation

Page 4

Rseaux et tlinformatiques

2- Problmatique :

Dans ses conditions, la suite binaire reue ne sera pas identique la suite mise.

Comment peut-on corriger une erreur lors dune transmission ?

Geoinformation

Page 5

Rseaux et tlinformatiques

3.Correction derreurs
Quelles sont les solutions possibles ? On peut envisager deux types de solutions pour sassurer de lintgrit des donnes transmises. On peut agir sur le canal de transmission. Objectif : rendre le taux derreur ngligeable. Implique de remplacer les infrastructures existantes ce qui est impraticable. De toute faon le taux derreur nul nexiste pas. On peut agir sur le message transmis. Objectif : tre capable de dtecter si des erreurs de transmission ont eu lieu, et ventuellement les corriger. Cest le principe des codes correcteurs derreurs. Un code correcteur est une technique de codage base sur la redondance. Elle est destine corriger les erreurs de transmission d'un message sur une voie de communication peu fiable. La thorie des codes correcteurs ne se limite pas qu'aux communications classiques (radio, cble coaxial, fibre optique, etc.) mais galement aux supports de stockage comme les disques compacts, la mmoire RAM et d'autres applications ou l'intgrit des donnes est importante.

3.1 Principe gnral Chaque suite de bits a transmettre est augmente par une autre suite de bits dite de redondance ou de contrle . Pour chaque suite de k bits transmise, on ajoute r bits. On dit alors que l'on utilise un code C(n, k) avec n = k + r .

Geoinformation

Page 6

Rseaux et tlinformatiques

A la rception, les bits ajoutes permettent d'effectuer des contrles.

Deux approches de correction derreurs sont possibles : Utilisation de code auto-correcteurs Exemple : code de Hamming, BCH,Reed et Muller Correction par retransmission : Si dtection dune erreur alors demander lmetteur de renvoyer le mme message.

3.2 Distance de Hamming La distance de Hamming doit son nom a Richard Hamming. Elle est dcrite dans un article fondateur pour la thorie des codes. Elle est utilise en tlcommunication pour compter le nombre de bits altrs dans la transmission d'un message d'une longueur donne. Exemple : la distance de Hamming entre 1011101 et 1001001 est 2 car deux bits sont diffrents. Il est souhaitable d'avoir une certaine distance entre les mots envoys, afin de dtecter s'il y a eu une erreur de transmission. Par exemple, si l'on a trois messages transmettre de trois bits, il vaut mieux choisir les codages qui sont a distance 2 les uns des autres, par exemple 000, 110 et 101. En effet, si un seul bit est altr, on recevra un message impossible. Par contre, en utilisant 000, 001 et 010, un bit altr pourrait passer inaperu.

Geoinformation

Page 7

Rseaux et tlinformatiques

La distance de Hamming dun code est directement lie ses performances : Un code avec une distance d dtecte d-1 erreurs et corrige k erreurs o d=2K+1

3.3 Code de Hamming Structure d'un code de Hamming Un code de Hamming permet la dtection et la correction automatique d'une erreur si elle ne porte que sur une lettre du message. Un code de Hamming est parfait, ce qui signifie que pour une longueur de code donne, il n'existe pas d'autre code plus compact ayant la mme capacit de correction. En ce sens, son rendement est maximal. les m bits du message transmettre et les n bits de contrle de parit. longueur totale : 2n-1 longueur du message : m = (2n-1)-n on parle de code x-y : x est la longueur totale du code (n+m) et y la longueur du message (m) les bits de contrle de parit Ci sont en position 2i pour i = 0, 1, 2,... les bits du message Dj occupe le reste du message.

Retrouver l'erreur dans un code de Hamming

Si les bits de contrle de parit C2, C1, C0 ont tous la bonne valeur, il n'y a pas d'erreurs ; sinon la valeur des bits de contrle indique la position de
Geoinformation Page 8

Rseaux et tlinformatiques

l'erreur entre 1 et 7. Le code de Hamming prsent ici ne permet de retrouver et corriger qu'une erreur. Pour savoir quels bits vrifient chaque bit de contrle de parit dans un code de Hamming, il faut construire le tableau ci-dessous :

On numrot les lignes de 1 a x=2n-1 dans la colonne de droite (prenons comme exemple x=7), puis on convertit chaque nombre en binaire et l'on crit chaque bit dans les colonnes de gauche. On colorie de la couleur de Ci les nombres de droite s'il y a un 1 dans la colonne Ci . Par exemple, 5 sera color en vert et en rouge, car sur la ligne du 5, il y a un 1 dans les colonnes C2 et C0. C2 (en vert) colore les bits 4, 5, 6, 7. Ce sont les bits qu'il vrifie. C1 (en bleu) vrifie les bits 2, 3, 6, 7. C0 (en rouge) vrifie les bits 1, 3, 5, 7. On constate que chaque bit de donnes est colore d'une manire diffrente. Cela permettra de retrouver la position d'une erreur. Exemple d'un code de Hamming 7-4

Geoinformation

Page 9

Rseaux et tlinformatiques

On souhaite envoyer le message 1010. Compltons le mot de Hamming correspondant :

C0 vaut 0 pour pouvoir rendre pair 1+1+0 (les bits d'indices 7, 5, 3). C1 vaut 1 pour pouvoir rendre pair 1+0+0 (les bits d'indices 7, 6, 3). C2 vaut 0 pour pouvoir rendre pair 1+0+1 (les bits d'indices 7, 6, 5).

Imaginons que l'on reoive le mot 0010010 (le bit de poids fort a t altr). C0 a la mauvaise valeur, car 0+1+0+0 est impair, donc il y a une erreur en position 7, 5, 3 ou 1. C1 a la mauvaise valeur, car 0+0+0+1 est impair, donc il y a une erreur en position 7, 6, 3 ou 2. C2 a la mauvaise valeur, car 0+0+1+0 est impair, donc il y a une erreur en position 7, 6, 5 ou 4. Ecrivons le nombre binaire C2C1C0 ou Ci vaut 0 si le bit de controle Ci a la bonne valeur et 1 sinon. On obtient ici 111, ce qui correspond a 7 en binaire. Le bit erron est le numro 7. Que se passe-t-il si c'est un des bits de contrle qui est altr ? Imaginons que l'on ait reu 1010011 (cette fois-ci, c'est le bit de poids faible qui a t altr). C0 a la mauvaise valeur, car 1+1+0+1 est impair. Il y a une erreur en position 7, 5, 3 ou 1. C1 a la bonne valeur, car 1+0+0+1 est pair. Il n'y a pas d'erreur en position 7, 6, 3 et 2

Geoinformation

Page 10

Rseaux et tlinformatiques

C2 a la bonne valeur, car 1+0+1+0 est pair. Il n'y a pas d'erreur en position 7, 6, 5 et 4. Ici, C2C1C0 vaut 001. Le bit errone est donc le numero 1.

7-Performance du code correcteur


La performance dun code dtecteur/correcteur derreurs se juge par : Sa capacit de dtection et de correction derreurs, mesure par la distance de Hamming d du code, dune part Laugmentation de la taille des messages, mesure par le rapport n/p Un bon code est un code qui, p et n fix, maximise d (ou qui, p et d fix, minimise n). Par exemple, si le taux derreurs est trs faible et les messages faciles rexpdier, savoir dtecter une erreur peut suffire. Par contre si le taux derreurs est lev et les messages couteux rexpdier, on va privilgier la capacit de correction au dbit. Exemples de code de Hamming un mot de code 7-4 a un coefficient d'efficacit de 4/7 = 57 % un mot de code 15-11 a un coefficient d'efficacit de 11/15 = 73 %
Geoinformation Page 11

Rseaux et tlinformatiques

un mot de code 31-26 a un coefficient d'efficacit de 26/31 = 83 %

5. Conclusion

Lmergence des calculs, stockages et transmissions numriques ont donn aux codes correcteurs derreurs une grande importance. Le code de Hamming est un code la fois dtecteur et correcteur do limportance de son utilisation De plus Cest un code parfait, ce qui signifie que pour une longueur de code donne, il n'existe pas d'autre code plus compact ayant la mme capacit de correction. Son rendement est maximal OR : Il existe dautres codes qui permettent de corriger plus dune erreur et qui sont performant pour les grandes distances : Reed et Muller Codes de Rsidus Quadratiques Codes BCH

Geoinformation

Page 12

Rseaux et tlinformatiques

Codes de Reed-Solomon Codes de Goppa

Geoinformation

Page 13