Vous êtes sur la page 1sur 12

Codes correcteurs derreurs

Construction dun code correcteur derreurs systmatiques (donc dtecteur derreurs) :


Consiste ajouter k lments q-aires de contrle (ou de redondance) am+1 am+k aux mots
constitus de m lments q-aires dinformation a1 a2 am.
Symbole q-aire : Mot de q lment binaires (q : taille de lalphabet).
Ces k lments sont dtermins en par le biais dune fonction , dtermine lavance.

Mot de n lments
a1 a2 am am+k Appartenance
au code ???

(a1 am) Si correspondance

am+1 am+k am+1 am+k


Comparaison Sinon

Dtection
dune Erreur

Laurent BOUILLAUT Thorie de lInformation Chapitre 4 Codes correcteurs derreurs 1


Codes correcteurs derreurs

Principe du dcodage distance minimum :


Associer au mot reu y le mot code c le plus proche de y (y et c diffrent en un nombre de
rangs le plus petit possible).

Poids dun vecteur v : W(v)={nombre de composantes de v diffrentes de 0}.


Distance de Hamming entre u et v : d(u,v)={nombre dlments q-aires de mme rang qui diffrent de u v}
Distance minimum dm dun mot code : d m = inf d ( u , v )
u ,vC
u v

Proposition :
Soit C, un code linaire de distance minimum dm. Alors,les boules fermes centres sur les mots
code, de rayon t, sont disjointes deux deux si :
d 1
t ent m
2

Laurent BOUILLAUT Thorie de lInformation Chapitre 4 Codes correcteurs derreurs 2


1. Dtection et correction derreurs

Le rcepteur fonctionne ici sur le principe du dcodage distance minimum.

1.1. Cas dun signal sans symbole deffacement


Proposition : Un code linaire C de distance minimum dm permet de dtecter, au plus, dm-1 erreurs et
de corriger, au plus t = ent
d m 1 erreurs.

2

Remarque : On met le mot code c1. On se trouve alors dans lun des trois cas suivants :
- Le mot reu y1 est dans la boule centre sur c1 et de rayon t. Cela signifie que le nombre
derreurs commises est <t. Le mot code choisi par le rcepteur sera c1 et les erreurs seront
toutes corriges.
- Le mot reu y2 est dans une boule centre sur un mot
code cc1, de rayon t. Le nombre derreurs est donc >t.
Le mot code choisi par le rcepteur sera c et il y aura
systmatiquement une erreur.
- Le mot reu y3 nappartient aucune boule centre sur
un mot code et de rayon t. Le nombre d'erreurs est
donc suprieur t. Si c1 est le mot code situ le plus
prs de y, alors le rcepteur choisira c1 et les erreurs
commises (en nombre suprieur t) seront corriges.
Autrement, si le mot reu y4 n'appartient aucune boule, il y aura erreur systmatique.

Laurent BOUILLAUT Thorie de lInformation Chapitre 4 Codes correcteurs derreurs 3


1. Dtection et correction derreurs

1.2. Cas dun signal avec symbole deffacement


Canal q entres et q+1 sorties.

Proposition 1 : Un code linaire C de distance minimum dm peut remplir effacements (i.e. remplacer
dans un mot reu les symboles deffacement par les lments q-aires effectivement
mis) si dm-1
Proposition 2 : Un code linaire C de distance minimum dm peut remplir effacements et corriger t
erreurs si t et vrifient la fois :
+ 1 dm et 2t + + 1 dm

Code parfait : On se donne un code linaire C, t correcteur et de distance minimum dm . La longueur


des mots est n, rparties en m lments q-aires dinformation et k lments q-aires de
contrle.
On dira que le code C est parfait si et seulement si l'ensemble des boules fermes
centres sur les mots code et de rayon t forme une partition de l'ensemble des mots
possibles en rception.
En d'autres termes cela signifie que chaque mot reu est situ dans une des boules.

Proprit : Une condition ncessaire et suffisante pour qu'un code linaire C t-correcteur et de distance
minimum dm soit parfait est que ses paramtres vrifient la relation :
t

C .(q 1)
j
n
j
= qk
j =0

Laurent BOUILLAUT Thorie de lInformation Chapitre 4 Codes correcteurs derreurs 4


2. Gnration et dtection dun code

2.1. Matrice gnratrice


Soit C un code linaire, c'est- dire un sous-espace vectoriel de dimension m de l'espace vectoriel V
de dimension n. Alors si (g1,g2,...,gm) est une base de C et G la matrice dont les colonnes sont les
vecteurs de base de C, on peut expliciter les mots code de C :
C = {uV / u = Ga} o a correspond aux vecteurs colonnes dont les composantes sont les
lments q-aires d'information. G est la matrice gnratrice.

Exemples: (on se place dans le cas binaire q = 2 )


1. On prend n = 4 et m = 2
Si on choisit pour base de C g1=(1 0 0 0) et g2=(0 1 0 0), les mots code de u sont obtenus
partir des quatre vecteurs tels que :
1 0

0 1 x
u = * avec (x,y){0,1}
0 0 y

0 0

On dduit dm =1. Ce code ne permet pas de dtecter ni de corriger des erreurs.

Laurent BOUILLAUT Thorie de lInformation Chapitre 4 Codes correcteurs derreurs 5


2. Gnration et dtection dun code

2.1. Matrice gnratrice (suite)


1 0
Exemples (suite)
1 1
2. On prend pour base de C g1=(1 1 1 0) et g2=(0 1 1 1), la matrice G devient do :
1 1

0 1

La distance minimum est 2, donc le code est 1dtecteur et 0 correcteur.

Remarque
Le premier code que nous avons construit {0000,0100,1000,1100} est un code systmatique.
C'est--dire que les mots code sont constitus d'une part des bits d'information, et d'autre part des
bits de contrle. Le second code {0000,0111,1110,1001} n'est pas systmatique. Le caractre
systmatique d'un code peut tre obtenu en choisissant pour base du code des vecteurs qui
soient tels que la sous-matrice obtenue en prenant les m premires lignes de G est l'identit de
dimension m. Ainsi les lments binaires de contrle seront disposs droite des lments
binaires d'information.

Laurent BOUILLAUT Thorie de lInformation Chapitre 4 Codes correcteurs derreurs 6


2. Gnration et dtection dun code

2.2. Construction du code de Hamming C(7,4)


(cette notation signifie que la longueur des mots code est 7 et que le nombre d'lments binaires
d'information est 4).
On se propose de construire un code linaire systmatique parfait capable de corriger une erreur et de
distance minimum dm minimum.
dm 1
Le code tant 1 correcteur, la distance minimum doit vrifier : t = ent =1
dm = 3 ou dm = 4 . 2
La longueur n des mots code est donc suprieure ou gale 3.

Le code tant parfait, on sait que ses paramtres doivent vrifier la relation : 2 k = Cn0 + Cn1 ( 2 1 ) = n + 1
Pour chaque valeur de n suprieure ou gale 3, on va rechercher s'il existe ou non un entier k
vrifiant 2k = n +1.
On obtient ainsi (en se limitant aux deux premires solutions trouves) :

Construction du code correspondant la premire solution C(3,1).


Comme m = 1, il n'y a que deux mots code, l'un commenant par 0, l'autre
par 1. Le code tant linaire, il constitue un espace vectoriel et par
consquent il doit contenir l'lment neutre pour l'addition qui est le mot 000.
En outre la distance minimum tant 3, le second mot ne peut tre que 111.

Construction du code correspondant la premire solution C(7,4).


Le code tant systmatique, on peut crire les quatre premires lignes de la matrice G puisqu'on
sait que cette sous-matrice de G est l'identit de dimension 4. Ensuite il reste 3 lments
dterminer pour chacune des 4 colonnes afin d'obtenir la matrice G.
Laurent BOUILLAUT Thorie de lInformation Chapitre 4 Codes correcteurs derreurs 7
2. Gnration et dtection dun code

2.2. Construction du code de Hamming C(7,4) (suite)


On sait qu'alors 2 au moins des trois lments dterminer doivent prendre la valeur 1 pour faire en
sorte qu'il n'y ait pas de vecteurs de base, donc de mots code, qui aient un poids infrieur strictement
trois, sinon la distance minimum du code ne serait pas trois. De plus, il faut faire en sorte que les
lments ajouts sur deux colonnes diffrentes ne concident pas, sinon le mot code obtenu en
effectuant la somme des deux vecteurs correspondant ces colonnes aurait un poids gal deux, ce
qui serait en contradiction avec la valeur 3 de la distance minimum. Compte tenu de ces contraintes,
on peut choisir pour G la matrice suivante:
T
1 0 0 0 1 1 1

0 1 0 0 0 1 1
G=
0 0 1 0 1 0 1

0 0 0 1 1 1 0
En effectuant le produit de la matrice G par les vecteurs colonnes dont les quatre composantes
correspondent aux lments binaires d'information, on obtient les mots code.

Laurent BOUILLAUT Thorie de lInformation Chapitre 4 Codes correcteurs derreurs 8


3. Matrice de contrle

Cette matrice H, applique au mot reu, permet de savoir sil sagit ou non dun mot code.

- La matrice de contrle d'un code pourra tre utilise pour surveiller la qualit d'une liaison en
dtectant les configurations interdites du code,
- Une deuxime utilisation peut tre envisage pour corriger les erreurs en interprtant les mots reus en
des mots code.

Proprits : - HT G = 0
- Si c est un mot code, alors HTc=0

Pour un code systmatique, les lments binaires d'information figurant au dbut du mot ( gauche), la
matrice gnratrice G de C a la forme :
Id m PT
G = H = avec P, matrice n-m x m

P Id n m

Syndrome : Pour un mot reu y, on dfini le syndrome de y par : s(y)=HTy

Ainsi, si un mot code c est transform en un mot reu y=c+ e, cela signifie que e comporte
des "1" l o une erreur a t commise. Le syndrome de y s'crit alors : HTe.
On constate donc que le syndrome ne dpend que de l'erreur mais pas du mot reu. Cette
proprit va permettre de diminuer la complexit du dcodage distance minimum.

Laurent BOUILLAUT Thorie de lInformation Chapitre 4 Codes correcteurs derreurs 9


3. Matrice de contrle
Exemple
On considre le code :
On note u1u2u3 les mots d'information et a1a2...a6 les mots code.
On a a1=u1, a2=u2, a3=u3, donc le code est systmatique.
D'autre part les lments binaires de contrle s'expriment comme
combinaisons linaires des lments binaires d'information:
a4=u2+u3 a5=u1+u3 a6=u1+u2 .

Ceci nous permet d'crire la matrice gnratrice G du code :


T
1 0 1 1
Id
G = 3= 1 1 0 1
P
1 1 0 1
T T
0 1 1 1 0 1 1 1
P
T

On en dduit alors : H = = 1 0 1 1 = 1 0 1 1
Id 63 1 1 0 1 1 1 0 1

Pour construire la table de dcodage : On doit recenser les valeurs possibles des syndromes : qn-m =23,
de dimension n-m.

La squence z = (000000)T a pour syndrome (000)T


la squence z = (000001)T a pour syndrome (001)T
la squence z = (000010)T a pour syndrome (010)T
etc...

Laurent BOUILLAUT Thorie de lInformation Chapitre 4 Codes correcteurs derreurs 10


3. Matrice de contrle
Exemple (suite)
En effectuant HTz, on obtient finalement :

Laurent BOUILLAUT Thorie de lInformation Chapitre 4 Codes correcteurs derreurs 11


3. Exercices

Exercice 1

Un code associe deux lments binaires d'information des mots constitus de cinq lments
binaires suivant la correspondance:

1. Montrer que le code est systmatique et dterminer sa matrice gnratrice. En dduire sa matrice
de contrle.

2. On suppose que les lments binaires code sont transmis sur un canal binaire symtrique de
probabilit d'erreur infrieure 0,5. Construire la table de dcodage rpondant au principe du
dcodage distance minimum.

3. Quel est le nombre de configurations de une, deux et trois erreurs qui peuvent tre corriges par
la table? Calculer la probabilit d'erreur par mot code lie l'usage de cette table.

Laurent BOUILLAUT Thorie de lInformation Chapitre 4 Codes correcteurs derreurs 12