Vous êtes sur la page 1sur 5

Codes lin

eaires

Correction par syndr


omes

Codes lin
eaires

Un exemple de detection derreurs


On utilise pour la transmission
un codage
1 0 0 1
(3, 6), donne par la matrice 0 1 0 1
0 0 1 0

Un exemple de detection derreurs

lineairesystematique de taille
1 0
0 1 .
1 1

On recoit le message 011111. Comment savoir si ce message est correct ?


Le codage est systematique, donc si ce message est correct, le mot
dorigine etait 011, et on devrait retrouver le message recu en codant 011.
On compare donc le message recu 011111 avec celui obtenu en codant les
trois premiers bits 011 # 011110
Seule la comparaison des trois bits de controle est pertinente. On a trouve
110 `a la place des bits recus 111, lerreur entre les deux est
110 + 111 = 001 %= 000, donc le message recu nest pas correct.
G. Montcouquiol (IUT Orsay)

Codes d
etecteurs et correcteurs derreurs

Codes lin
eaires

2006-2007

77 / 96

Cette operation
garder les p premiers bits du message recu, les recoder,

prendre les n p bits de contr


ole du resultat et les additionner aux

bits de controles du message recu,

comparer le r
esultat `a 0,

revient `a faire le produit du message recu avec la matrice H =


o`
u P est la matrice de parite du codage.

G. Montcouquiol (IUT Orsay)

Codes d
etecteurs et correcteurs derreurs

Codes lin
eaires

P
Inp
1
0
1
0
1
0

2006-2007

"

0
1

1
.
0

0
1

78 / 96

Correction par syndr


omes

Exemples

Soit C un code lineaire de taille (n, p) ayant une matrice generatrice


standard G = (Ip P), P etant la matrice de parite.
La matrice
de
ole du code C est la matrice de taille n (n p)
" contr
!
P
.
H=
Inp

Definition
Soit m un mot binaire de taille n. On appelle syndr
ome de m, et on note
(m), le produit mH. Cest un mot de longueur n p.
Le syndrome correspond `a la somme des bits de contr
oles du message recu
et des bits de contr
ole recalcules.

2006-2007

1 1
*
Codage (3, 1) par r
epetition : G = 1 1 1 , donc H = 1 0 .
0 1
Exemple de calcul de syndr
ome : (101) = 10, (111) = 00.

1
1 0 0 1
1

Codage (4, 3) par parit


e : G = 0 1 0 1, donc H =
1 .
0 0 1 1
1
Exemple de calcul de syndr
ome : (1011) = 1, (1001) = 0.

1 1

1 0
1 0 0 1 1

Autre code : G = 0 1 0 1 0 , donc H =


0 1 . Exemple

1 0
0 0 1 0 1
0 1
de calcul de syndr
ome : (01010) = 00, (11111) = 11.
)

Definition

Codes d
etecteurs et correcteurs derreurs

1
1

1 1 0
0

Dans lexemple precedent, on a P = 1 0 1 , donc H =


1

0 1 1
0
0
On verifie quon a bien 011111 H = 001.

Correction par syndr


omes

Matrice de controle - syndromes

G. Montcouquiol (IUT Orsay)

Correction par syndr


omes

79 / 96

G. Montcouquiol (IUT Orsay)

Codes d
etecteurs et correcteurs derreurs

2006-2007

80 / 96

Codes lin
eaires

Correction par syndr


omes

Codes lin
eaires

Matrice de controle et detection derreurs

Matrice de controle et detection derreurs

Demonstration

Theor`eme

Soit m (Z/2Z)n un mot de longueur n. On note mI (Z/2Z)p le mot


forme des p premiers bits de m (bits dinformations), et mC (Z/2Z)np
le mot forme des n p dernier bits de m (bits de contr
ole) : m = mI .mC
(concatenation).
!
"
P
On utilise le fait que H secrit
.
Inp
!
"
P
mH = 0np (mI .mC )
= 0np mI P + mC = 0np
Inp
mC = mI P mI .mC = mI (Ip P) m = mI G m C .

Soient C un code lineaire et H sa matrice de contr


ole.
Un message m est un mot du code si et seulement si son syndr
ome est
nul :
m C mH = 0np
La matrice de contr
ole fournit donc un moyen efficace de detection des
erreurs.

G. Montcouquiol (IUT Orsay)

Correction par syndr


omes

Codes d
etecteurs et correcteurs derreurs

Codes lin
eaires

2006-2007

81 / 96

G. Montcouquiol (IUT Orsay)

Codes d
etecteurs et correcteurs derreurs

Correction par syndr


omes

Codes lin
eaires

Applications

Applications

La matrice de contr
ole est H =

Soit C
generatrice standard
le code lineaire donne par sa matrice

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

G =
0 0 1 0 0 1 1 0 0
0 0 0 1 0 0 0 1 1
0 0 0 0 1 1 0 0 1
Les mots m1 = 010101010, m2 = 111111111, m3 = 011010000 font-ils
partie du code ?

1
0
1
0
1
1
0
0
0

2006-2007

82 / 96

2006-2007

84 / 96

Correction par syndr


omes

0
1
1
0
0
0
1
0
0

1
0
0
1
0
0
0
1
0

0
1
0
1
1
0
0
0
1

On calcule les syndr


omes :
m1 H = 1100,
m2 H = 0110,
m3 H = 0000,
donc seul m3 fait partie du code.

G. Montcouquiol (IUT Orsay)

Codes d
etecteurs et correcteurs derreurs

2006-2007

83 / 96

G. Montcouquiol (IUT Orsay)

Codes d
etecteurs et correcteurs derreurs

Codes lin
eaires

Correction par syndr


omes

Codes lin
eaires

Syndromes et classes dequivalence du code

Correction par syndr


omes

Liste des syndromes

On rappelle la definition de la relation dequivalence C associee `a un code


lineaire C :
u Cv u + v C

Theor`eme
Deux messages sont equivalents pour la relation C si et seulement si ils ont
le meme syndr
ome :
u Cv (u) = (v )

Demonstration

On a vu que le principe de la correction derreurs pour un code lineaire


consiste `a determiner, dans chaque classe dequivalence du code, un mot
de plus petit poids (le vecteur derreurs).
On va utiliser le fait que les classes dequivalences du code sont en
bijection avec lensemble des syndr
omes possibles
On va donc construire un tableau, appele liste des syndr
omes, associant
`a chaque syndr
ome possible un mot de plus petit poids ayant ce syndr
ome.

u Cv u + v C (u + v ) = 0np (u) + (v ) = 0np


(u) = (v )

G. Montcouquiol (IUT Orsay)

Codes d
etecteurs et correcteurs derreurs

Codes lin
eaires

2006-2007

85 / 96

Correction par syndr


omes

2006-2007

86 / 96

Correction par syndr


omes

Exemple
Soit C
aire de taille (4, 2), de matrice generatrice standard
! le code line"
1 0 1 1
G=
(meme code que dans lexemple du tableau standard).
0 1 0 1

1 1
0 1

La matrice de controle est H =


1 0
0 1

On se donne un code lineaire C , de taille (n, p), dont on connat une


matrice de contr
ole H.

Methode
On commence par
ecrire dans une premi`ere colonne tous les

syndr
omes possibles, cest-`a-dire tous les mots de longueur n p.

On parcourt ensuite lensemble des mots de longueur n de poids 0, 1,

puis 2, 3 etc. Pour chaque mot on calcule son syndr


ome. Si cest la
premi`ere fois que ce syndr
ome apparat, on ecrit le mot dans la
deuxi`eme colonne, en face de son syndr
ome.

On continue jusqu`
a ce quil y ait un mot en face de chaque syndr
ome.

Codes d
etecteurs et correcteurs derreurs

Codes d
etecteurs et correcteurs derreurs

Codes lin
eaires

Construction de la liste des syndromes

G. Montcouquiol (IUT Orsay)

G. Montcouquiol (IUT Orsay)

2006-2007

87 / 96

Construction de la liste des syndr


omes :
syndr
omes
00
01
10
11

vecteurs derreurs
0000
0001
0010
1000

G. Montcouquiol (IUT Orsay)

(0000) = 00
(0001) = 01
(0010) = 10
(0100) = 01, dej`a present
(1000) = 11

Codes d
etecteurs et correcteurs derreurs

2006-2007

88 / 96

Codes lin
eaires

Correction par syndr


omes

Codes lin
eaires

Utilisation de la liste des syndromes

Correction par syndr


omes

Exemple
On avait obtenu la liste des syndr
omes suivante :

Methode
Soit w " le mot recu. On calcule son syndr
ome (w " ).
On regarde dans la liste le vecteur derreurs e correspondant `a ce
syndrome, puis on corrige le mot recu en le remplacant par w = w " + e.
Par construction de la liste, e est un element de poids minimum dans la
classe dequivalence de w " . Donc w est bien un mot du code le plus proche
de w " , ce qui justifie cette methode de correction.
Remarque : la liste des syndromes nest pas unique. En particulier, si
plusieurs mots de plus petit poids ont le meme syndrome, le choix de celui
qui apparat dans le tableau aura une influence sur la correction.

G. Montcouquiol (IUT Orsay)

Codes d
etecteurs et correcteurs derreurs

Codes lin
eaires

2006-2007

89 / 96

vecteurs derreurs
0000
0001
0010
1000

avec
la matrice
ole
de contr
1 1
0 1

H=
1 0
0 1

Si on recoit le mot 0111 : (0111) = 10,


on le corrige en 0111 + 0010 = 0101.
Si on recoit le mot 0110 : (0110) = 11,
on le corrige en 0110 + 1000 = 1110.

G. Montcouquiol (IUT Orsay)

Correction par syndr


omes

Codes d
etecteurs et correcteurs derreurs

Codes lin
eaires

Remarques

2006-2007

90 / 96

Codes de Hamming

Matrice de controle et distance du code

Attention : pour la correction, il faut disposer de la liste des

syndr
omes et de la matrice de contr
ole (pour calculer les syndr
omes).

rapide et moins encombrante que la correction par tableau standard :


elle est donc `a privilegier.

La construction de la liste des syndr


omes peut quand meme etre

longue et fastidieuse. Pour certains codes lineaires particuliers, il


existe des methodes de correction plus rapides.

Codes d
etecteurs et correcteurs derreurs

2006-2007

La matrice de contr
ole donne directement des informations sur la capacite
de correction dun code lineaire.

Theor`eme

La correction par syndr


ome est un peu plus compliquee mais plus

G. Montcouquiol (IUT Orsay)

syndr
omes
00
01
10
11

Soit C un code lineaire, de distance de Hamming d(C ), et ayant une


matrice de contr
ole H.
On a d(C ) 3 si et seulement si les lignes de H sont toutes distinctes et
non nulles.
On se servira de ce resultat pour construire des codes lineaires pouvant
corriger une erreur.

91 / 96

G. Montcouquiol (IUT Orsay)

Codes d
etecteurs et correcteurs derreurs

2006-2007

92 / 96

Codes lin
eaires

Codes de Hamming

Codes lin
eaires

Matrice de controle et distance du code

Codes de Hamming

Construction de codes lineaires

Demonstration
On remarque que le syndr
ome dun mot de poids 1, 0...010...0, ayant

exactement un 1 en i-`eme position, est la i-`eme ligne de H :


les lignes de la matrice de controle correspondent aux syndr
omes des
mots de poids 1.

Donc une ligne de H est nulle si et seulement si il existe un mot de

poids 1 de syndrome nul, cest-`a-dire un mot du code de poids 1,


ce qui equivaut `a d(C ) = 1.

De la m
eme facon, les syndromes des mots de poids 2 correspondent

aux sommes de deux lignes distinctes de H.

Pour construire un code lineaire C de taille (n, p) pouvant corriger au


moins une erreur (i.e. d(C ) 3) :
on construit la matrice de contr
ole H de taille n (np), en

commencant par lidentite en bas, puis en ajoutant des lignes non


nulles toutes differentes (possible uniquement si n 2np 1)
!
"
P
connaissant H =
, on connat la matrice de parite P, et donc
Inp
la matrice generatrice standard G = (Ip P) du code.

Deux lignes de H sont identiques si et seulement si leur somme est

nulle, donc si et seulement si il existe un mot de poids 2 de syndr


ome
nul, cest-`a-dire un mot du code de poids 2.

G. Montcouquiol (IUT Orsay)

Codes d
etecteurs et correcteurs derreurs

Codes lin
eaires

2006-2007

93 / 96

G. Montcouquiol (IUT Orsay)

Codes d
etecteurs et correcteurs derreurs

Codes de Hamming

Codes lin
eaires

Codes de Hamming

Un code de Hamming est un code lineaire dont la matrice de contr


ole H
est constitue de tous les mots binaires non nuls de longueur k.
Cest un code parfait, de taille (2k 1, 2k 1 k), et de distance 3.
Exercice : construire un mot du code de poids 3.
Les codes de Hamming sont simples `a construire et permettent de corriger
exactement une erreur, ce qui justifie leur utilite.

G. Montcouquiol (IUT Orsay)

Si k = 2 : alors H = 1 0, donc G = 1 1

Definition

Codes d
etecteurs et correcteurs derreurs

2006-2007

95 / 96

94 / 96

Codes de Hamming

Exemples de codes de Hamming

1 1

2006-2007

*
1 .

0 1
On retrouve le code (3, 1) par repetition : cest le plus petit code de
Hamming.

1 1 1
1 1 0

1 0 1

Si k = 3 : on construit H =
0 1 1 par exemple, donc
1 0 0

0 1 0

1 0 0
0 1 0
G =
0 0 1
0 0 0
(7,
4).
G. Montcouquiol (IUT Orsay)

0
0
0
1

1
1
1
0

1
1
0
1

0 0 1

1
0
. Cest un code de Hamming de taille
1
1

Codes d
etecteurs et correcteurs derreurs

2006-2007

96 / 96