Vous êtes sur la page 1sur 4

CODE BINAIRE DE HAMMING 37

2.6 CODE BINAIRE DE HAMMING

2 3
1 0 0 0 0 1 1
60 1 0 0 1 0 17
En prenant comme exemple le code H [7; 4] de matrice génératrice G = 6
40
7
0 1 0 1 1 05
2 3 0 0 0 1 1 1 1
0 1 1 1 1 0 0
et de matrice de contrôle H = 41 0 1 1 0 1 05 ; on remarque que la matrice H
1 1 0 1 0 0 1
contient tous les mots de code de longueur trois sauf le mot 000 (23 1 éléments
disposés en colonnes).

Dé…nition 2.63 Soit r 2 N et soit n = 2r 1: Soit H la matrice (r 2r 1) dont les


colonnes sont les di¤érents vecteurs non nuls de Vr : Alors H est la matrice de contrôle
d’un [n; k]-code binaire où n = 2r 1 et k = n r:
Ce code est appelé code de Hamming [n; k] ([2r 1; 2r r 1]).

Théorème 2.64 Tout code de Hamming est un code 1-correcteur parfait.

Preuve.
a) Montrons d’abord qu’un code de Hamming C est de distance minimum au moins
3.
Comme C est un code binaire, d(C) = M in !(c):
c6=02C
- Supposons que C contient un mot u de poids 1 avec u = (u1 ; u2 ; ::; un ) et ui 6= 0:
Alors H ut = 0. D’où la ieme colonne de H est nulle. Contradiction.

- Supposons que C contient un mot v de poids 2 avec v = (v1 ; v2 ; ::; vn ) avec vi 6= 0


et vj 6= 0: Alors H v t = 0 =) hi + hj = 0 =) hi = hj . Donc H contient deux
colonnes identiques. Contradiction. Donc d(C) 3:

Rem: En fait, d(C) = 3; on peut le montrer simplement en exhibant un mot de code


de poids 3 (8i; j; 9k =hi + hj = hk =) 9x=!(x) = 3):

b) montrons que C est parfait.

On a la boule B1 (x) de centre x 2 C et de rayon 1 contient 1+n = 2r vecteurs. Comme


jCj = 2k = 2n r , alors l’union de toutes les boules est égale à 2n ensemble de
tous les vecteurs de F n :
CODE BINAIRE DE HAMMING 38

Corollaire 2.65 Pour un [n; k]-code de Hamming, les chefs de classe sont exactement
les vecteurs de F n de poids 1:

Remarque 2.66 Les colonnes de la matrice de contrôle H peuvent être réarangées de


telle sorte que la j eme colonne de H soit simplement la représentation binaire d’une
erreur à la j eme composante "decimal integer".

Ceci nous conduit à l’algorithme de décodagesuivant des codes de Hamming :

Algorithm 3 On reçoit un vecteur y, calculer son syndrome H y t et supposons qu’il


représente le "decimal integer j". En supposant qu’il n’y a qu’une seule erreur, le
système de décodage avec le maximum de vraisemblance donne:
i) Si j = H y t = 0, alors pas d’erreur, y est un mot de code.
ii) Si j = H y t 6= 0, alors décoder y avec une erreur dans la jeme position de y.

Exemple 2.67 le H [7; 4] code de Hamming a pour matrice de contrôle


2 3
0 0 0 1 1 1 1
4
H= 0 1 1 0 0 1 15 : Supposons qu’on ait reçu le vecteur y = (1010110):
1 0 1 0 1 0 1
H y t = (0; 0; 1): En supposant qu’il n’y a pas plus d’une erreur, alors l’erreur s’est
produite dans la première composante et donc, on décode y par y = (0010110):

Exercice 12: Ecrire la matrice de contrôle d’un code binaire [15; 11; 3] :
Comment va-t-il décoder le vecteur a) y = (1000:::::::::0)?
b) y = (1:::::::::::::1)?

Exercice 13: Soit un [n; k]-code binaire 1-correcteur. Montrer que k 2r r 1:

Remarque 2.68 Connaissant k, l’inégalité k 2r r 1 , 2r n + 1 permet


de déterminer le nombre minimal de bits de contrôle à ajouter pour obtenir un code
1-correcteur.
CODE BINAIRE DE HAMMING 39

Proposition 2.69 Les codes de Hamming binaires sont les codes systématiques qui
atteignent cette limite théorique:
pour n bits, le nombre de bits de contrôle est Log2 (n + 1). Ce sont donc des codes
parfaits pour n = 2r 1:
Autrement dit, ce sont des [n; n bLog2 (n)c 1] :

Théorème 2.70 Le code de Hamming [n; n bLog2 (n)c 1] est un code 1-correcteur
qui requiert un nombre de bits de contrôle minimale parmi tous les codes [n; k] qui sont
1-correcteur.
En particulier, Le code de Hamming [2r 1; 2r r 1] est un code 1-parfait.

2.6.1 Description d’un codage pour le code binaire de Hamming

(S1 ; :::; Sk ) ! (C1 ; :::; Cn ) 2 f0; 1gn tel que:

- les bits Ci = i = 2l ; l = 0; 1:::sont des bits de contrôle, les autres des bits de
données.
- le bit de contrôle d’indice i = 2l est la somme mod 2 de tous les bits de données
Cj dont l’indice j écrit en base 2 a le (l + 1)eme bit égal à 1:

Exemple 2.71 Code de Hamming H [7; 4] : (S1 ; :::; S4 ) ! (C1 ; :::; C7 ):


8
>
> C3 = S1
<
C5 = S2
C1 ; C2 et C4 bits de contrôle et :
>
> C6 = S3
:
C7 = S4
0 1
8 3 = 1:20 + 1:21 + 0:22
< C1 = C3 + C5 + C7 B 5 = 1:20 + 0:21 + 1:22 C
C2 = C3 + C6 + C7 car B C
@ 6 = 0:20 + 1:21 + 1:22 A :
:
C4 = C5 + C6 + C7
7 = 1:20 + 1:21 + 1:22
CODE BINAIRE DE HAMMING 40

2.6.2 Description d’un décodage

Pour assurer la correction d’un code de Hamming, le contrôle de parité est fait de la
façon suivante:
tous les bits de contrôle d’indice i = 2l sont véri…és. Une erreur est détectée si
l’un de ces bits erroné.
Soit alors e la somme des indices des bits de contrôle i qui sont érronés. S’il y
a une seule erreur, elle provient alors du bit e.

Exemple 2.72 Code de Hamming H [7; 4] :


Supposons que l’on reçoive le mot (1111101): Le message source devrait être 1101
(C3 ; C5 ; C6 ; C7 ):
Les bits de contrôle devraient être alors 100 (C1 ; C2 ; C4 ):
On a 111, donc il y a dans les bits 2 et 4: La correction d’une erreur unique est réalisée
en modi…ant le bit d’indice 4 + 2 = 6.
Le mot corrigé est alors 1111111 qui correspond au mot source 1111:

Vous aimerez peut-être aussi