Sie sind auf Seite 1von 78

Communication Num

erique

Communication Numerique
Codes correcteurs derreurs
Yoann Morel

http://xymaths.free.fr/Signal/Communication-Numerique-cours-TP.php

Communication Num
erique

Introduction
Definition
Position du probl`eme
Exemples

Generalites sur les codes


Canal binaire symetrique sans memoire
Param`etres dun code

Codes en bloc lineaires


Definition
Forme systematique dun code
Caracterisation dun mot code
Decodage par le syndr
ome
Code de Hamming

Autres codes
Codes cycliques

Communication Num
erique
Introduction

Introduction
Definition
Position du probl`eme
Exemples

Generalites sur les codes


Canal binaire symetrique sans memoire
Param`etres dun code

Codes en bloc lineaires


Definition
Forme systematique dun code
Caracterisation dun mot code
Decodage par le syndr
ome
Code de Hamming

Autres codes
Codes cycliques

Communication Num
erique
Introduction
D
efinition

Introduction
Definition
Position du probl`eme
Exemples

Generalites sur les codes


Canal binaire symetrique sans memoire
Param`etres dun code

Codes en bloc lineaires


Definition
Forme systematique dun code
Caracterisation dun mot code
Decodage par le syndr
ome
Code de Hamming

Autres codes
Codes cycliques

Communication Num
erique
Introduction
D
efinition

Introduction
Definition
Un code correcteur derreurs est une technique de codage basee
sur la redondance de linformation, destinee `a detecter, voire
corriger, les erreurs qui peuvent-etre generees par un canal de
communication peu fiable.

Communication Num
erique
Introduction
D
efinition

Introduction
Definition
Un code correcteur derreurs est une technique de codage basee
sur la redondance de linformation, destinee `a detecter, voire
corriger, les erreurs qui peuvent-etre generees par un canal de
communication peu fiable.
La detection dune erreur dans un message peut sembler naturelle ; sa
localisation precise et sa correction sont quant `a elles moins evidentes.

Communication Num
erique
Introduction
D
efinition

Introduction
Definition
Un code correcteur derreurs est une technique de codage basee
sur la redondance de linformation, destinee `a detecter, voire
corriger, les erreurs qui peuvent-etre generees par un canal de
communication peu fiable.
La detection dune erreur dans un message peut sembler naturelle ; sa
localisation precise et sa correction sont quant `a elles moins evidentes.
Lorigine de la theorie des codes peut-etre situee en 1947 par Richard
W. Hamming, utilisant un ordinateur developpe aux laboratoires Bell,
Two weekends in a row I came in and found that all my stuff had been
dumped and nothing was done. I was really aroused and annoyed because I
wanted those answers and two weeks had been lost. And so I said,
Damn it, if the machine can detect an error, why cant it locate the
position of the error and correct it ?

Communication Num
erique
Introduction
Position du probl`
eme

Introduction
Definition
Position du probl`eme
Exemples

Generalites sur les codes


Canal binaire symetrique sans memoire
Param`etres dun code

Codes en bloc lineaires


Definition
Forme systematique dun code
Caracterisation dun mot code
Decodage par le syndr
ome
Code de Hamming

Autres codes
Codes cycliques

Communication Num
erique
Introduction
Position du probl`
eme

Introduction

Le role du correcteur derreurs peut-etre limite `a la simple


detection (et localisation . . .) derreurs.
La correction seffectue alors par une nouvelle requete de
transmission du message, ou seulement des parties erronees.
Cas du protocole TCP
sommes de controle (checksum)
Cela peut se reveler insuffisant, ou inadapte suivant le
contexte (GSM par exemple)

Communication Num
erique
Introduction
Position du probl`
eme

Introduction
Deux situations principales peuvent se presenter :
Presence de petites erreurs relativement frequentes et isolees.

, Ex : Telecommunication, communication perturbee par


un bruit additif aleatoire
Presence derreurs peu frequentes, mais plus volumineuses

, Ex : CD : norme Philips permet de corriger jusqu`a 4096


bits errones consecutifs (rayure de environ 1 mm
de large)
Effacement de caract`ere(s) : un bit nest pas altere, mais
simplement supprime.

Communication Num
erique
Introduction
Exemples

Introduction
Definition
Position du probl`eme
Exemples

Generalites sur les codes


Canal binaire symetrique sans memoire
Param`etres dun code

Codes en bloc lineaires


Definition
Forme systematique dun code
Caracterisation dun mot code
Decodage par le syndr
ome
Code de Hamming

Autres codes
Codes cycliques

Communication Num
erique
Introduction
Exemples

1er exemple : Code `a repetitions


Il sagit de la mani`ere la plus nave daborder le probl`eme :
si la transmission dun mot peut-etre entachee derreur(s), il ny a
qu`a le transmettre directement plusieurs fois !
Supposons que lon ait 4 messages `a envoyer : 00, 01, 10 et 11 (ou
que lon ait prealablement decoupe le message initial en blocs de 2
bits).
Pour augmenter nos chances de recevoir un message correct, on
peut encoder nos 4 mots suivant :
mot original
00
01
10
11

mot code
00 00 00
01 01 01
10 10 10
11 11 11

Communication Num
erique
Introduction
Exemples

1er exemple : Code `a repetitions

Sil survient une erreur dans la transmission, elle naffectera pas les
trois couples formant le mot du code.
Le decodage peut donc se faire par vote majoritaire sur les 3
couples de bits.
Pour ce code `a repetition, le taux dinformation est seulement 33 %
(33 % des bits transmis correspondent `a de linformation), tandis
que 66 % ont pour seul but la protection de cette information.

Communication Num
erique
Introduction
Exemples

2`eme exemple : Code `a repetition ameliore

Un autre exemple de codage


est le suivant :

mot original
00
01
10
11

mot code
00 000
01 101
10 110
11 011

Communication Num
erique
Introduction
Exemples

2`eme exemple : Code `a repetition ameliore

Un autre exemple de codage


est le suivant :
Supposons que le mot recu soit y = 01001.

mot original
00
01
10
11

mot code
00 000
01 101
10 110
11 011

Communication Num
erique
Introduction
Exemples

2`eme exemple : Code `a repetition ameliore

Un autre exemple de codage


est le suivant :
Supposons que le mot recu soit y = 01001.

mot original
00
01
10
11

Ce mot ne correspond `a aucun mot du code :


il comporte donc une, ou plusieurs, erreurs.

mot code
00 000
01 101
10 110
11 011

Communication Num
erique
Introduction
Exemples

2`eme exemple : Code `a repetition ameliore

Un autre exemple de codage


est le suivant :
Supposons que le mot recu soit y = 01001.

mot original
00
01
10
11

mot code
00 000
01 101
10 110
11 011

Ce mot ne correspond `a aucun mot du code :


il comporte donc une, ou plusieurs, erreurs.
Lidee de la correction est de rechercher parmi tous les mots du
code celui qui est le plus proche :
Ecart mot recu/mot du code
y 00 000 = 01001
y 01 101 = 00100
y 10 110 = 11111
y 11 011 = 10010

Poids de lerreur
2
1
5
2

Communication Num
erique
Introduction
Exemples

2`eme exemple : Code `a repetition ameliore

Un autre exemple de codage


est le suivant :
Supposons que le mot recu soit y = 01001.

mot original
00
01
10
11

mot code
00 000
01 101
10 110
11 011

Ce mot ne correspond `a aucun mot du code :


il comporte donc une, ou plusieurs, erreurs.
Lidee de la correction est de rechercher parmi tous les mots du
nc
code celui qui est le plus proche :
do
it
Ecart mot recu/mot du code Poids de lerreur
et
ois n
h
,
c
o
1
y 00 000 = 01001
2
ati 10
On stim 01 1
y 01 101 = 00100
1
0
le =
=
y 10 110 = 11111
5

x
y nc
y 11 011 = 10010
2
do

Communication Num
erique
Introduction
Exemples

2`eme exemple : Code `a repetition ameliore


Remarques :
Si on avait eu 2, ou plus, erreurs de meme poids, on naurait
pas ete en mesure de determiner le mot le plus proche.
En regardant dun peu plus pr`es, tous les mots du code
diff`erent dau moins 3 bits, et ce code permet donc de corriger
de mani`ere certaine une erreur unique.
On ne peut pas corriger avec ce code des mots contenant 2
erreurs, et encore moins 3 erreurs (qui peuvent alors netre
meme pas detectees !)
Le co
ut de ce code est de 3/5 = 60 % doccupation `a la
protection de linformation
(le taux dinformation est de 2/5 = 40 %)

Communication Num
erique
Introduction
Exemples

3`eme exemple : Code de parite


Supposons que lon ait des mots de 7 bits `a envoyer (code ASCII
par exemple), et que lon sinteresse simplement `a la detection
dune erreur.
Un moyen et de coder chacun des mots sur 8 bits, en ajoutant un
8`eme bit, appele bit de parit
e, de telle sorte que dans tous les
mots le nombre de 1 soit pair.

1011001 est code 10110010
Par exemple,
0110100 est code 01101001

Communication Num
erique
Introduction
Exemples

3`eme exemple : Code de parite


Supposons que lon ait des mots de 7 bits `a envoyer (code ASCII
par exemple), et que lon sinteresse simplement `a la detection
dune erreur.
Un moyen et de coder chacun des mots sur 8 bits, en ajoutant un
8`eme bit, appele bit de parit
e, de telle sorte que dans tous les
mots le nombre de 1 soit pair.

1011001 est code 10110010
Par exemple,
0110100 est code 01101001
Dune mani`ere generale, un mot du code est de la forme
x = [u1 u2 u3 u4 u5 u6 u7 p]
X

ui = u1 + u2 + u3 + u4 + u5 + u6 + u7 + p 0 [2]
X
ou encore
p
ui [2]

o`
u

Communication Num
erique
Introduction
Exemples

3`eme exemple : Code de parite


Supposons que lon ait des mots de 7 bits `a envoyer (code ASCII
par exemple), et que lon sinteresse simplement `a la detection
dune erreur.
Un moyen et de coder chacun des mots sur 8 bits, en ajoutant un
8`eme bit, appele bit de parit
e, de telle sorte que dans tous les
mots le nombre de 1 soit pair.

1011001 est code 10110010
Par exemple,
0110100 est code 01101001
Ce code permet de detecter une erreur, ou 3 erreurs ou 5
erreurs, ou 7 erreurs, mais pas 2, 4 ou 6 erreurs.
De plus, ce code ne permet pas la localisation de lerreur, et
donc pas sa correction.
Par contre, ce code permet de retablir un caract`ere efface !

Communication Num
erique
Introduction
Exemples

4`eme exemple : Code ISBN

Le code ISBN (International Standard Book Number) est un code


permettant didentifier un livre.
Il utilise lalphabet {0; 1; 2; 3; 4; 5; 6; 7; 8; 9; X}
Seuls les 9 premiers caract`eres permettent didentifier le livre, le
10`eme servant `a controler la validite du code (de meme que la cle
dun RIB, o`
u les 2 derniers chiffres dun numero de securite sociale,
ou encore pour un numero de carte bancaire . . .)
Par exemple, le premier caract`ere permet didentifier la langue de
louvrage (0 pour langlais, 2 pour le francais . . .), tandis que les
deux numeros suivants identifient lediteur.

Communication Num
erique
Introduction
Exemples

4`eme exemple : Code ISBN


Le 10`eme caract`ere se determine suivant :
c10

9
X

i ci [11] ou encore,

i=1

10
X

i ci 0 [11]

i=1

Le code ISBN permet de :


detecter sil y a au moins une erreur dans le numero
retrouver un numero effacer
detecter une transposition de 2 caract`eres

Communication Num
erique
Introduction
Exemples

4`eme exemple : Code ISBN


Le 10`eme caract`ere se determine suivant :
c10

9
X

i ci [11] ou encore,

i=1

10
X

i ci 0 [11]

i=1

Le code ISBN permet de :


detecter sil y a au moins une erreur dans le numero
retrouver un numero effacer
detecter une transposition de 2 caract`eres
Ex : Le numero ISBN suivant est-il valide ? 2 - 70 - 42 1030 - 6
Ex : Retrouver le chiffre manquant : 0 - 201 - 1 ? - 502 - 7

Communication Num
erique
Introduction
Exemples

4`eme exemple : Code ISBN


Le 10`eme caract`ere se determine suivant :
c10

9
X

i ci [11] ou encore,

i=1

10
X

i ci 0 [11]

i=1

Le code ISBN permet de :


detecter sil y a au moins une erreur dans le numero
retrouver un numero effacer
detecter une transposition de 2 caract`eres
Ex : Le numero ISBN suivant est-il valide ? 2 - 70 - 42 1030 - 6
Ex : Retrouver le chiffre manquant : 0 - 201 - 1 3 - 502 - 7

Communication Num
erique
G
en
eralit
es sur les codes

Introduction
Definition
Position du probl`eme
Exemples

Generalites sur les codes


Canal binaire symetrique sans memoire
Param`etres dun code

Codes en bloc lineaires


Definition
Forme systematique dun code
Caracterisation dun mot code
Decodage par le syndr
ome
Code de Hamming

Autres codes
Codes cycliques

Communication Num
erique
G
en
eralit
es sur les codes
Canal binaire sym
etrique sans m
emoire

Introduction
Definition
Position du probl`eme
Exemples

Generalites sur les codes


Canal binaire symetrique sans memoire
Param`etres dun code

Codes en bloc lineaires


Definition
Forme systematique dun code
Caracterisation dun mot code
Decodage par le syndr
ome
Code de Hamming

Autres codes
Codes cycliques

Communication Num
erique
G
en
eralit
es sur les codes
Canal binaire sym
etrique sans m
emoire

Canal binaire symetrique sans memoire


Bruit AGB
Codage
Xk

Filtre adapte

kT

Decision

?
- h(t)

- h(t)

Yk

@
@ -

Xk et Yk prennent leurs valeurs dans lalphabet {0, 1}


La probabilite derreurs est :
r
p = P (Yk = 1|Xk = 0) = P (Yk = 0|Xk = 1) = erfc

b
N0

La probabilte derreur ne depend pas de linstant k dutilisation du


canal : le canal est dit sans memoire

Communication Num
erique
G
en
eralit
es sur les codes
Canal binaire sym
etrique sans m
emoire

Canal binaire symetrique sans memoire


On peut alors representer la chane de transmission entre Xk et Yk
par le schema :
1p
HH
*

Xk
H p Yk
HHH
j

-

1p

Tout se passe comme si Xk etait soumis `a un bruit additif et que


lobservation Yk secrivait :
Yk = Xk Bk
o`
u designe laddition modulo 2 (ou exclusif) et Bk est une suite
de variables aleatoires `a valeurs dans {0, 1}, independantes et
identiquement distribuees avec,
P (Bk = 1) = p

Communication Num
erique
G
en
eralit
es sur les codes
Canal binaire sym
etrique sans m
emoire

Probabilite derreur. Distance


Notons c = [c1 c2 . . . cn ] le mot transmis, et y = [y1 y2 . . . yn ] le mot
recu, alors
Prob (y|c) =

Qn

i=1 Prob (yi |ci )

= (1 p)card{i/yi =ci } pcard{i/yi 6=ci }


card{i/yi 6=ci }

p
n
= (1 p)
1p

Un decodeur par maximum de vraisemblance doit choisir de


renvoyer le mot c qui maximise la fonction : c 7 Prob (y|c).
Comme p/(1 p) < 1, maximiser cette probabilite revient `a
minimiser le nombre derreurs : card {i/yi 6= ci }

Communication Num
erique
G
en
eralit
es sur les codes
Canal binaire sym
etrique sans m
emoire

Distance et poids de Hamming

Soit x = [x1 x2 . . . xn ] et y = [y1 y2 . . . yn ] sont deux messages de


longueur n.
Definition
La distance de Hamming entre x et y est le nombre d(x, y) de
composantes o`
u x et y diff`erent.
Le poids de Hamming de x est le nombre w(x) de composantes
non nulles de x.
Ex : Si x = 10110 et y = 00101, alors d(x, y) = 4 et w(x) = 3 et
w(y) = 2.

Communication Num
erique
G
en
eralit
es sur les codes
Param`
etres dun code

Introduction
Definition
Position du probl`eme
Exemples

Generalites sur les codes


Canal binaire symetrique sans memoire
Param`etres dun code

Codes en bloc lineaires


Definition
Forme systematique dun code
Caracterisation dun mot code
Decodage par le syndr
ome
Code de Hamming

Autres codes
Codes cycliques

Communication Num
erique
G
en
eralit
es sur les codes
Param`
etres dun code

Codeur : Dispositif qui associe `a une suite de k bits dinformation


une suite de n bits.
Code : Un code est un ensemble de mots de n bits.
Distance et poids dun code : Soit C un code :
la distance minimum de C est le nombre
d = Min {d(x, y)/x, y C, x 6= y}
le poids minimum de C est le nombre :
w = Min {w(x)/x C, x 6= 0}

Communication Num
erique
G
en
eralit
es sur les codes
Param`
etres dun code

Codeur : Dispositif qui associe `a une suite de k bits dinformation


une suite de n bits.
Code : Un code est un ensemble de mots de n bits.
Distance et poids dun code : Soit C un code :
la distance minimum de C est le nombre
d = Min {d(x, y)/x, y C, x 6= y}
le poids minimum de C est le nombre :
w = Min {w(x)/x C, x 6= 0}

Ex :

mot original
00
01
10
11

mot code
00 000
01 101
10 110
11 011

n=5; k=2
d = 3
w = 3

Communication Num
erique
G
en
eralit
es sur les codes
Param`
etres dun code

Le taux dinformation dun code est le nombre r = k/n.


r < 1 : ajout dinformation
r = 1 : pas dinformation supplementaire
r > 1 : compression de donnee . . .
Un code est dit t-correcteur si il permet de corriger toute erreur
de au plus t caract`eres.
On a la caracterisation :
C est t-correcteur d 2t + 1
ou encore, comme d = w ,




d 1
w 1
t=E
=E
2
2

Communication Num
erique
G
en
eralit
es sur les codes
Param`
etres dun code

Ex :

mot original
00
01
10
11

mot code
00 000
01 101
10 110
11 011

n=5; k=2
d = 3
w = 3

On dit que le code C est de param`etres (5, 2, 3). Un tel code a :


un taux dinformation : r = 2/5 (ou un taux de
redondance de 3/5).
un pouvoir de correction de 1 bit, on dit quil est
1-correcteur.

Communication Num
erique
G
en
eralit
es sur les codes
Param`
etres dun code

Autre exemple : Code de parite Ce code ajoute un bit, appele bit


de parite, `a une suite de k bits dinformation de facon `a ce que le
nombre total de 1 du mot code ainsi forme soit pair.
Ex : Pour k = 3, on a n = 4 et, par exemple :
000 0000
010 0101
111 1111
Cest un code (4, 3) dont le taux dinformation est r =
On a d = w = 2, et donc t = 0 :
Ce code ne permet aucune correction.

3
= 75 %.
4

Communication Num
erique
Codes en bloc lin
eaires

Introduction
Definition
Position du probl`eme
Exemples

Generalites sur les codes


Canal binaire symetrique sans memoire
Param`etres dun code

Codes en bloc lineaires


Definition
Forme systematique dun code
Caracterisation dun mot code
Decodage par le syndr
ome
Code de Hamming

Autres codes
Codes cycliques

Communication Num
erique
Codes en bloc lin
eaires
D
efinition

Introduction
Definition
Position du probl`eme
Exemples

Generalites sur les codes


Canal binaire symetrique sans memoire
Param`etres dun code

Codes en bloc lineaires


Definition
Forme systematique dun code
Caracterisation dun mot code
Decodage par le syndr
ome
Code de Hamming

Autres codes
Codes cycliques

Communication Num
erique
Codes en bloc lin
eaires
D
efinition

Codes lineaires

Code lin
eaire : si c1 et c2 designent les mots codes respectifs des
deux suites dinformation de k bits d1 et d2 , alors `a la suite
dinformation de k bits d1 d2 est associe le mot code c1 c2 .
(
d1 c1
alors , d1 d2 c1 c2
d2 c2
o`
u est laddition bit `a bit modulo 2.

Communication Num
erique
Codes en bloc lin
eaires
D
efinition

Codes en blocs
Code en bloc : Dans un code en bloc, les n elements binaires des
mots code sont calcules uniquement avec les k bits dinformation
du bloc courant.
[ d1 d2 . . . dk ] [ c1 c2 . . . cn ]
Au besoin, le message initial est decoupe en paquets, ou blocs, de
taille k.

Communication Num
erique
Codes en bloc lin
eaires
D
efinition

Codes en blocs
Code en bloc : Dans un code en bloc, les n elements binaires des
mots code sont calcules uniquement avec les k bits dinformation
du bloc courant.
[ d1 d2 . . . dk ] [ c1 c2 . . . cn ]
Au besoin, le message initial est decoupe en paquets, ou blocs, de
taille k.
Pour un code en bloc lineaire, le mot code c sobtient `a partir du
mot dinformation d par une expression matricielle de la forme :
c=dG
o`
u, d est un vecteur ligne de taille 1 k, c est un vecteur ligne de
taille 1 n et G est une matrice de taille k n appelee
matrice generatrice du code.

Communication Num
erique
Codes en bloc lin
eaires
D
efinition

Exemple du code parite :


Le taux dinformation est r =
taille (n 1) n est :

n1
, et sa matrice generatrice, de
n

G = In1

1
..
.
1

avec In1 la matrice identite de taille n 1.

Communication Num
erique
Codes en bloc lin
eaires
D
efinition

Exemple du code parite :


Le taux dinformation est r =
taille (n 1) n est :

n1
, et sa matrice generatrice, de
n

G = In1

1
..
.
1

avec In1 la matrice identite de taille n 1.

1 0 0 1
Ex : Pour n = 3, on a un code (4,3,2),
G = 0 1 0 1 .
de matrice generatrice
0 0 1 1
Par exemple, le mot u = [101] est code par :
c = uG = [1012] [1010] [2]

Communication Num
erique
Codes en bloc lin
eaires
D
efinition

Code `a repetition : Ce code associe `a k = 1 bit dinformation les


mots code :
d = 0 c = 0| 0 {z
. . . 0}
n
d = 1 c = 1| 1 {z
. . . 1}
n

Communication Num
erique
Codes en bloc lin
eaires
D
efinition

Code `a repetition : Ce code associe `a k = 1 bit dinformation les


mots code :
d = 0 c = 0| 0 {z
. . . 0}
n
d = 1 c = 1| 1 {z
. . . 1}
n
Le code `a repetition est donc un code (n, 1, n). Son taux
1
dinformation est r = . Sa distance est n : il peut corriger jusqu`a
n


n1
t=E
erreurs.
2

Communication Num
erique
Codes en bloc lin
eaires
D
efinition

Code `a repetition : Ce code associe `a k = 1 bit dinformation les


mots code :
d = 0 c = 0| 0 {z
. . . 0}
n
d = 1 c = 1| 1 {z
. . . 1}
n
Le code `a repetition est donc un code (n, 1, n). Son taux
1
dinformation est r = . Sa distance est n : il peut corriger jusqu`a
n


n1
t=E
erreurs.
2
h
i
Sa matrice generatrice est : G =
1
1
.
.
.
1
| {z }
n

Communication Num
erique
Codes en bloc lin
eaires
Forme syst
ematique dun code

Introduction
Definition
Position du probl`eme
Exemples

Generalites sur les codes


Canal binaire symetrique sans memoire
Param`etres dun code

Codes en bloc lineaires


Definition
Forme systematique dun code
Caracterisation dun mot code
Decodage par le syndr
ome
Code de Hamming

Autres codes
Codes cycliques

Communication Num
erique
Codes en bloc lin
eaires
Forme syst
ematique dun code

Forme systematique dun code


Un code est enti`erement determine par sa matrice generatrice G.
Les vecteurs-ligne de G sont eux-meme des mots-code, et sont
supposes lineairement independants.
Cela revient `a imposer que :
si d1 6= d2 , alors c1 = d1 G 6= c2 = d2 G :
des mots dinformation differents ne peuvent pas etre
identiquement codes.
En dautres termes, la matrice G est de rang k.
On montre de plus que les combinaisons lineaires sur les lignes de
G ainsi que les permutations sur les colonnes de G laissent
inchangees la probabilite derreur par mot code :
la distance (ou le poids) du code est inchange.

Communication Num
erique
Codes en bloc lin
eaires
Forme syst
ematique dun code

Forme systematique dun code


Dapr`es ces proprietes, la matrice generatrice G peut secrire sous
la forme (Pivot de Gauss) :


e = Ik |Pk(nk)
G
o`
u Ik est la matrice identite de taille k, et la matrice P est appelee
la matrice de parite du code.
Lorsque G est sous sa forme systematique, les mots code
commencent par k bits dinformation et sont completes par
(n k) bits de redondance :
si d = [d1 d2 . . . dk ] alors,
c = d G = [d1 d2 . . . dk p1 p2 . . . pnk ]

Communication Num
erique
Codes en bloc lin
eaires
Forme syst
ematique dun code

Par exemple, le code lineaire (7, 4)


generatrice :

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

defini par sa matrice


0
0
1
0

0
0

0
1

peut se mettre sous la forme systematique :

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

0
1

1
1

1
0
1
1

0
1
0
1

Communication Num
erique
Codes en bloc lin
eaires
Forme syst
ematique dun code

1
0
e=
G
0
0

0
1
0
0

0
0
1
0

0
0
0
1

1
0
1
1

1
1
1
0

0
1

1
1

Ainsi, si un bloc c = [c1 c2 c3 c4 ], est code en


d = cG = [c1 c2 c3 c4 p1 p2 p3 ]
o`
u,

p1 = c1 + c2 + c4
p2 = c1 + c2 + c3

p3 = c2 + c3 + c4

Communication Num
erique
Codes en bloc lin
eaires
Forme syst
ematique dun code

1
0
e=
G
0
0

0
1
0
0

0
0
1
0

0
0
0
1

1
0
1
1

1
1
1
0

0
1

1
1

Ainsi, si un bloc c = [c1 c2 c3 c4 ], est code en


d = cG = [c1 c2 c3 c4 p1 p2 p3 ]
o`
u,

p1 = c1 + c2 + c4
p2 = c1 + c2 + c3

p3 = c2 + c3 + c4
Tout se passe comme si, le codage consistait simplement en
lajout de (n k) bits de redondance.

Communication Num
erique
Codes en bloc lin
eaires
Forme syst
ematique dun code

Majoration de la distance dun code :


On a vu que la distance dun code d est aussi egale au poids de ce
code w .
Une fois la matrice generatrice du code mise sous forme systematique,

1 0 ... 0

..

 0 1
. Pk(nk)
e

G = Ik | Pk(nk) = .

..
..

. 0
0 ... 0 1
on peut denombrer au plus (n k + 1) zeros sur chaque ligne.
Ainsi d = w n k + 1, et on a la propriete :
La distance d dun code (n, k, d ) est majoree par n k + 1.


nk
Le pouvoir correcteur t dun tel code verifie donc t E
.
2

Communication Num
erique
Codes en bloc lin
eaires
Caract
erisation dun mot code

Introduction
Definition
Position du probl`eme
Exemples

Generalites sur les codes


Canal binaire symetrique sans memoire
Param`etres dun code

Codes en bloc lineaires


Definition
Forme systematique dun code
Caracterisation dun mot code
Decodage par le syndr
ome
Code de Hamming

Autres codes
Codes cycliques

Communication Num
erique
Codes en bloc lin
eaires
Caract
erisation dun mot code

Caracterisation dun mot code


Matrice de contr
ole de parit
e : On consid`ere un code lineaire C
de matrice generatrice G.
On appelle matrice de contr
ole de parite une matrice H de
dimension (n k) n et de rang (n k) qui verifie :
H GT = 0
Caract
erisation dun mot code : Si c est un bloc, de mot code
d = cG, alors, on doit avoir :

H dT = H (c G)T = H GT cT = H GT cT = 0
On a ainsi la propriete : le bloc d recu est un mot code (donc juge
non errone) si et seulement si

H dT = 0

Communication Num
erique
Codes en bloc lin
eaires
Caract
erisation dun mot code

Construction dune matrice de contr


ole de parit
e : Soit un
code lineaire dont la matrice G est mise sous forme systematique


G = Ik | Pk(nk)
Alors, la matrice de contr
ole de parite a pour expression :
H=

(P T )(nk)k | Ink

Communication Num
erique
Codes en bloc lin
eaires
Caract
erisation dun mot code

Construction dune matrice de contr


ole de parit
e : Soit un
code lineaire dont la matrice G est mise sous forme systematique


G = Ik | Pk(nk)
Alors, la matrice de contr
ole de parite a pour expression :
H=

1
0
1
1

1
1
1
0

(P T )(nk)k | Ink

Ex :

1
0
G=
0
0

0
1
0
0

0
0
1
0

0
0
0
1

0
1 0 1 1 1 0 0

1
et, H = 1 1 1 0 0 0 1
1
0 1 1 1 0 0 1
1

Communication Num
erique
Codes en bloc lin
eaires
D
ecodage par le syndr
ome

Introduction
Definition
Position du probl`eme
Exemples

Generalites sur les codes


Canal binaire symetrique sans memoire
Param`etres dun code

Codes en bloc lineaires


Definition
Forme systematique dun code
Caracterisation dun mot code
Decodage par le syndr
ome
Code de Hamming

Autres codes
Codes cycliques

Communication Num
erique
Codes en bloc lin
eaires
D
ecodage par le syndr
ome

Decodage par le syndrome


Syndr
ome : Soit un code lineaire de matrice de controle de parite
H, c un mot envoye, et y = c + b le mot recu.
Alors, on a : Hy T = H(c + b)T = HcT + Hbt = HbT
Ainsi, le vecteur s = H y T , ne depend que du bruit et non pas du
mot envoye.
On lappelle le syndrome associe `a y.

Communication Num
erique
Codes en bloc lin
eaires
D
ecodage par le syndr
ome

Decodage par le syndrome


Syndr
ome : Soit un code lineaire de matrice de controle de parite
H, c un mot envoye, et y = c + b le mot recu.
Alors, on a : Hy T = H(c + b)T = HcT + Hbt = HbT
Ainsi, le vecteur s = H y T , ne depend que du bruit et non pas du
mot envoye.
On lappelle le syndrome associe `a y.
Le syndrome se calcule `a partir du mot recu et de la matrice de
controle de parite, et ne depend que du bruit et non pas du mot
code emis.
A partir de la connaissance de H et de y, on peut donc esperer
determiner le bruit b, car s = Hy T = HbT .
Une fois le bruit connu, c se deduit simplement par c = y b.

Communication Num
erique
Codes en bloc lin
eaires
D
ecodage par le syndr
ome

Decodage par le syndrome


Dans lexemple precedent, le code est 1-correcteur : il ne peut
corriger quune seule erreur.
Supposons quune erreur e se soit effectivement glissee dans la
transmission dun mot c, code par le mot d = cG, et receptionne
selon y = d + e.
Lerreur ecrit alors e = [0 . . . 0 1 0 . . . 0], le 1 etant `a la j `eme
position. Le syndrome est
s = Hy T = H(y + e)T = HdT + HeT = HeT = Hj ,
o`
u Hj est la j `eme colonne de la matrice de contr
ole H.
On connat ainsi la position de lerreur, et il ny a plus qua corriger
le mot recu.

Communication Num
erique
Codes en bloc lin
eaires
Code de Hamming

Introduction
Definition
Position du probl`eme
Exemples

Generalites sur les codes


Canal binaire symetrique sans memoire
Param`etres dun code

Codes en bloc lineaires


Definition
Forme systematique dun code
Caracterisation dun mot code
Decodage par le syndr
ome
Code de Hamming

Autres codes
Codes cycliques

Communication Num
erique
Codes en bloc lin
eaires
Code de Hamming

Les codes de Hamming forment une classe particuli`ere de codes


lineaires.
Pour un entier m, les param`etres dun code de Hamming sont de
la forme (2m 1, 2m m 1, 3).
Par exemple,
(7, 4, 3) pour m = 3 (cf. TP)
(128, 120, 3) pour m = 7 (minitel).
Ces codes sont parfaits : pour tout mot recu, il existe un mot du
code `a une distance stictement inferieure `a d/2.
Autrement dit, tout mot recu peut-etre decode.

Communication Num
erique
Codes en bloc lin
eaires
Code de Hamming

Les codes de Hamming forment une classe particuli`ere de codes


lineaires.
Pour un entier m, les param`etres dun code de Hamming sont de
la forme (2m 1, 2m m 1, 3).
Par exemple,
(7, 4, 3) pour m = 3 (cf. TP)
(128, 120, 3) pour m = 7 (minitel).
Ces codes sont parfaits : pour tout mot recu, il existe un mot du
code `a une distance stictement inferieure `a d/2.
Autrement dit, tout mot recu peut-etre decode.
Malheureusement si 2, ou plus, erreurs se sont glissees dans le
message recu, ce code propose toujours une correction qui va etre
elle aussi erronee...

Communication Num
erique
Codes en bloc lin
eaires
Code de Hamming

Code de Hamming
etendu :
Pour palier cet inconvenient, le code de Hamming est souvent etendu :
A chaque bloc de 4 bits est ajoute les trois bits de redondance du
code de Hamming. Ces 7 bits sont alors completes par un bit de
parite. Ainsi, le decodage se fait suivant :

Communication Num
erique
Codes en bloc lin
eaires
Code de Hamming

Code de Hamming
etendu :
Pour palier cet inconvenient, le code de Hamming est souvent etendu :
A chaque bloc de 4 bits est ajoute les trois bits de redondance du
code de Hamming. Ces 7 bits sont alors completes par un bit de
parite. Ainsi, le decodage se fait suivant :
Sil ny a aucune erreur le syndrome est nul.

Communication Num
erique
Codes en bloc lin
eaires
Code de Hamming

Code de Hamming
etendu :
Pour palier cet inconvenient, le code de Hamming est souvent etendu :
A chaque bloc de 4 bits est ajoute les trois bits de redondance du
code de Hamming. Ces 7 bits sont alors completes par un bit de
parite. Ainsi, le decodage se fait suivant :
Sil ny a aucune erreur le syndrome est nul.
Si une unique erreur sest produite sur les sept premiers bits,
le syndrome donne la position de lerreur. Lexistence dun
nombre derreur impair est confirmee par le huiti`eme bit.

Communication Num
erique
Codes en bloc lin
eaires
Code de Hamming

Code de Hamming
etendu :
Pour palier cet inconvenient, le code de Hamming est souvent etendu :
A chaque bloc de 4 bits est ajoute les trois bits de redondance du
code de Hamming. Ces 7 bits sont alors completes par un bit de
parite. Ainsi, le decodage se fait suivant :
Sil ny a aucune erreur le syndrome est nul.
Si une unique erreur sest produite sur les sept premiers bits,
le syndrome donne la position de lerreur. Lexistence dun
nombre derreur impair est confirmee par le huiti`eme bit.
Si deux erreurs se sont produites, le syndrome nest pas nul.
Le huiti`eme bit indique une parite exact, signal dun nombre
pair derreurs. Une retransmission est necessaire.

Communication Num
erique
Codes en bloc lin
eaires
Code de Hamming

Code de Hamming
etendu :
Pour palier cet inconvenient, le code de Hamming est souvent etendu :
A chaque bloc de 4 bits est ajoute les trois bits de redondance du
code de Hamming. Ces 7 bits sont alors completes par un bit de
parite. Ainsi, le decodage se fait suivant :
Sil ny a aucune erreur le syndrome est nul.
Si une unique erreur sest produite sur les sept premiers bits,
le syndrome donne la position de lerreur. Lexistence dun
nombre derreur impair est confirmee par le huiti`eme bit.
Si deux erreurs se sont produites, le syndrome nest pas nul.
Le huiti`eme bit indique une parite exact, signal dun nombre
pair derreurs. Une retransmission est necessaire.
Si une erreur sest produite sur le huiti`eme bit, labsence
derreur indique par le syndrome permet de localiser lerreur et
le message est valide.

Communication Num
erique
Autres codes

Introduction
Definition
Position du probl`eme
Exemples

Generalites sur les codes


Canal binaire symetrique sans memoire
Param`etres dun code

Codes en bloc lineaires


Definition
Forme systematique dun code
Caracterisation dun mot code
Decodage par le syndr
ome
Code de Hamming

Autres codes
Codes cycliques

Communication Num
erique
Autres codes
Codes cycliques

Introduction
Definition
Position du probl`eme
Exemples

Generalites sur les codes


Canal binaire symetrique sans memoire
Param`etres dun code

Codes en bloc lineaires


Definition
Forme systematique dun code
Caracterisation dun mot code
Decodage par le syndr
ome
Code de Hamming

Autres codes
Codes cycliques

Communication Num
erique
Autres codes
Codes cycliques

Code cyclique
Les codes cycliques forment une sous-classe des codes lineaires.
Un code C est dit cyclique si
a = [a1 a2 . . . an ] C a0 = [an a1 . . . an1 ] C
Les codes cycliques sont des codes dont lalgorithme dencodage
est facile `a implanter grace `a des registres `a decalages.
Lalgorithme de decodage est quant-`a lui plus difficile `a mettre en
uvre.
Lencodage et le decodage de codes cycliques reposent sur la
notion de polynomes sur un corps fini, dont la theorie
mathematique depasse largement lambition de ce cours.

Communication Num
erique
Autres codes
Codes cycliques

Code cyclique

Les codes cycliques les plus utilises `a lheure actuelle sont les codes
de Reed-Solomon.
Ces codes sont optimums, dans le sens o`
u ils necessitent un
nombre minimum de redondance (n k) pour obtenir une distance
minimale donnee, et donc un nombre maximum derreurs qui
nk
peuvent etre corrigees : t =
2
Pour les modems ADSL, le code utilise est RS(240,224,8)

Communication Num
erique
Autres codes
Codes cycliques

Ces codes peuvent-etres utilises comme base de codes entrelaces :


les CIRC (Cross-Interleaved Reed Solomon Code), utilises
notamment sur les supports denregistrement du type CD ou DVD)
Lentrelacement consiste `a melanger les blocs afin de diluer
linformation. Cette procedure permet en particulier de minimiser
leffet dune bouffee derreurs (rayure sur un CD . . .).

Communication Num
erique
Autres codes
Codes cycliques

Codage avec un code CIRC :


Lidee du codage CIRC est de coder avec un premier code C1 , puis
dentrelacer les blocs, et enfin, de coder dans la foulee avec un
deuxi`eme code C2 .
D
ecodage dun code CIRC :
Pour decoder, on peut alors sappuyer sur le double codage : on
decode avec C2 , on desentrelace, puis on decode avec C1 .
Lapport important de ce code reside dans le traitement iteratif du
decodage :
C1 permet de corriger certaines erreurs, C2 ensuite en corrige
dautres. Le message peut alors `a nouveau etre decode par C1 . . .

Communication Num
erique
Autres codes
Codes cycliques

Codage avec un code CIRC :


Lidee du codage CIRC est de coder avec un premier code C1 , puis
dentrelacer les blocs, et enfin, de coder dans la foulee avec un
deuxi`eme code C2 .
D
ecodage dun code CIRC :
Pour decoder, on peut alors sappuyer sur le double codage : on
decode avec C2 , on desentrelace, puis on decode avec C1 .
Lapport important de ce code reside dans le traitement iteratif du
decodage :
C1 permet de corriger certaines erreurs, C2 ensuite en corrige
dautres. Le message peut alors `a nouveau etre decode par C1 . . .
Voir aussi `a ce sujet les turbo codes . . .