Codes Linéaires : Définitions et Propriétés
Codes Linéaires : Définitions et Propriétés
et correction d
logo
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
Sommaire
6 Codes parfaits
Code linéaire
Définition
1 Un code linéaire C de longueur n est un sous-espace vectoriel
de Fn .
Cela signifie que le codage peut être réalisé par des
multiplications matricielles.
2 On dira donc qu’un code C [n, k, dm ] est linéaire s’il existe une
matrice G de dimension n × k dont les coefficients sont dans
F tels que l’ensemble des mots de code soient obtenus par
produit matriciel entre les mots source u et G. Pour Fn2 :
C = {y | y = G · u, u ∈ Fk2 }
Code linéaire
Définition
1 Un code linéaire C de longueur n est un sous-espace vectoriel
de Fn .
Cela signifie que le codage peut être réalisé par des
multiplications matricielles.
2 On dira donc qu’un code C [n, k, dm ] est linéaire s’il existe une
matrice G de dimension n × k dont les coefficients sont dans
F tels que l’ensemble des mots de code soient obtenus par
produit matriciel entre les mots source u et G. Pour Fn2 :
C = {y | y = G · u, u ∈ Fk2 }
Code linéaire
Définition
1 Un code linéaire C de longueur n est un sous-espace vectoriel
de Fn .
Cela signifie que le codage peut être réalisé par des
multiplications matricielles.
2 On dira donc qu’un code C [n, k, dm ] est linéaire s’il existe une
matrice G de dimension n × k dont les coefficients sont dans
F tels que l’ensemble des mots de code soient obtenus par
produit matriciel entre les mots source u et G. Pour Fn2 :
C = {y | y = G · u, u ∈ Fk2 }
1 0 0 0
0 1 0 0
0 0 1 0
G=
0 0 0 1
0 1 1 1
1 0 1 1
1 1 0 1
logo
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
I8
G=
1···1
I8
G=
1···1
Code systématique
Définition
Dire que le code C est systématique revient à dire que la matrice
génératrice de C est sous la forme
Ik
0
G
logo
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
Sommaire
6 Codes parfaits
Distance minimale
Les codes linéaires sont intéressants car on dispose en général
d’informations sur leur distance minimale. De plus, dire qu’un code
C est linéaire revient à dire que la somme de deux mots de C est
encore un mot de C et le mot nul est toujours un élément de C (de
par la définition d’un sous-espace vectoriel).
Proposition
Soit C un code linéaire. Alors la distance minimale dm de C est
égale au plus petit poids de Hamming non nul d’un mot de C.
Preuve
La distance minimale est le plus petit élément non nul de
l’ensemble des distances entre deux mots de code. Il suffit donc de
montrer que cet ensemble coı̈ncide avec l’ensemble des poids des
mots de code. Tout d’abord, tout poids est une distance car logo
ωH (m) = dH (m, 0...0). Ensuite, toute distance est un poids car
0 0 0 0
dH (m, m ) = ωH (m + m ) et si m, m ∈ C on a aussi m + m ∈ C .
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
Distance minimale
Les codes linéaires sont intéressants car on dispose en général
d’informations sur leur distance minimale. De plus, dire qu’un code
C est linéaire revient à dire que la somme de deux mots de C est
encore un mot de C et le mot nul est toujours un élément de C (de
par la définition d’un sous-espace vectoriel).
Proposition
Soit C un code linéaire. Alors la distance minimale dm de C est
égale au plus petit poids de Hamming non nul d’un mot de C.
Preuve
La distance minimale est le plus petit élément non nul de
l’ensemble des distances entre deux mots de code. Il suffit donc de
montrer que cet ensemble coı̈ncide avec l’ensemble des poids des
mots de code. Tout d’abord, tout poids est une distance car logo
ωH (m) = dH (m, 0...0). Ensuite, toute distance est un poids car
0 0 0 0
dH (m, m ) = ωH (m + m ) et si m, m ∈ C on a aussi m + m ∈ C .
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
Distance minimale
Les codes linéaires sont intéressants car on dispose en général
d’informations sur leur distance minimale. De plus, dire qu’un code
C est linéaire revient à dire que la somme de deux mots de C est
encore un mot de C et le mot nul est toujours un élément de C (de
par la définition d’un sous-espace vectoriel).
Proposition
Soit C un code linéaire. Alors la distance minimale dm de C est
égale au plus petit poids de Hamming non nul d’un mot de C.
Preuve
La distance minimale est le plus petit élément non nul de
l’ensemble des distances entre deux mots de code. Il suffit donc de
montrer que cet ensemble coı̈ncide avec l’ensemble des poids des
mots de code. Tout d’abord, tout poids est une distance car logo
ωH (m) = dH (m, 0...0). Ensuite, toute distance est un poids car
0 0 0 0
dH (m, m ) = ωH (m + m ) et si m, m ∈ C on a aussi m + m ∈ C .
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
Borne de Singleton
logo
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
Sommaire
6 Codes parfaits
Matrice de contrôle
logo
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
Matrice de contrôle
logo
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
Théoreme
Soit C un code systématique de matrice génératrice
Ik
0
G
0
. Alors la matrice H = (G In−k ) est une matrice de contrôle de
G.
logo
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
Exemple
1 0 1
0 1 1
logo
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
Exemple
1 0 1
0 1 1
logo
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
Exemple
1 1 1 0 1 0 0
1 1 0 1 0 1 0 .
1 0 1 1 0 0 1
Proposition
Soit C un code linéaire de matrice de contrôle H.
Alors dm est le nombre minimal de colonnes de H linéairement
dépendantes.
Par exemple :
Si H a une colonne nulle, on a dm = 1;
Si H a deux colonnes identiques, on a dm = 2
Sinon, et si une colonne de H est égale à la somme de deux
autres, on a dm = 3. etc...
Proposition
Soit C un code linéaire de matrice de contrôle H.
Alors dm est le nombre minimal de colonnes de H linéairement
dépendantes.
Par exemple :
Si H a une colonne nulle, on a dm = 1;
Si H a deux colonnes identiques, on a dm = 2
Sinon, et si une colonne de H est égale à la somme de deux
autres, on a dm = 3. etc...
Sommaire
6 Codes parfaits
logo
Remarque
logo
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
Remarque
logo
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
Remarque
logo
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
logo
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
Preuve
Supposons que le mot code c0 ait été émis et que ρ symboles aient
été transformés en symboles d’effacement (les autres symboles
constituant c0 ont été transmis correctement).
Alors un seul mot code peut être obtenu à partir du mot reçu en
remplaçant les symboles d’effacement par des symboles q-aires. En
effet, s’il en existait deux, alors la distance entre ces deux mots
code serait inférieure ou égale à ρ, donc strictement inférieure à
dm , ce qui est impossible. Donc le seul mot code qui peut être
obtenu en remplissant les symboles d’effacement est le mot code
c0 .
logo
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
Proposition
Un code linéaire C de distance minimale dm peut ”remplir” ρ
effacements et corriger t erreurs si t et ρ vérifient à la fois :
ρ + 1 ≤ dm
2t + ρ + 1 ≤ dm
logo
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
Preuve
Supprimer sur tous les mots code les éléments q-aires dont les
rangs coı̈ncident avec les rangs des symboles d’effacement
apparaissant dans le mot reçu,
0
On obtient un nouveau code de distance minimum dm avec
0
dm ≥ dm − ρ.
0
dm − 1
Un tel code peut corriger t erreurs si t ≤ b c.
2
Si la condition 2t + ρ + 1 ≤ dm est remplie, alors on a
0 0
2t ≤ dm − 1 − ρ. mais dm − ρ ≤ dm . Donc 2t ≤ dm − 1, soit
0 0
d −1 d −1
t≤ m . Comme t est entier, on a t ≤ b m c et par
2 2
conséquent le code peut corriger t erreurs.
Après correction des t erreurs, on obtient un mot code amputé
de ρ symboles (remplacés par le symbole d’effacement).
logo
Comme ρ + 1 ≤ dm , on sait d’après la proposition précédente
que le code peut remplir ces effacements.
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
Exercice
On considère le code C donné par :
C = {000000, 010101, 101010, 111111}
1 Ce code est-il linéaire?
atteinte?
4 Bob reçoit le message 10?0?0. Peut-il avec certitude corriger
Sommaire
6 Codes parfaits
logo
Notion de syndrome
Notion de syndrome
Notion de syndrome
Notion de syndrome
logo
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
Exemple
On considère le code :
mots d’information mots code
000 000000
001 001110
010 010101
011 011011
100 100011
101 101101
110 110110
111 111000
On note u1 u2 u3 les mots d’information et a1 a2 · · · a6 les mots code.
On a a1 = u1 , a2 = u2 , a3 = u3 , donc le code est systématique.
D’autre part les éléments binaires de contrôle s’expriment comme
combinaisons linéaires des éléments binaires d’information: logo
logo
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
1 0 0
0 1 0
0 0 1 = I3
G=
0 1 1
P
1 0 1
1 1 0
0 1 1 1 0 0
logo
H= P I6−3 = 1 0 1 0 1 0 .
1 1 0 0 0 1
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
Exemple
logo
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
Finalement on obtient:
syndrome (transposés) séquences z (transposées)
000 000000
001 000001
010 000010
011 100000
100 000100
101 010000
110 001000
111 100100
Exercice
1 1 1 0 1 1
0 1 0 0 1 1
G=
1
.
0 1 1 0 1
0 1 1 1 0 1
Suite exercice
1 1 1 0 0
H= 0 1 0 1 0 .
1 0 0 0 0
Sommaire
6 Codes parfaits
Inégalité de Hamming
Proposition
Soit C un code de paramètres (k, n) et de capacité de correction t.
Alors on a :
Pt i n−k
i=0 Cn ≤ 2
logo
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
Définition
Soit C un code de paramètres (k, n), de capacité de correction t.
On dit que C est un code parfait s’il vérifie une des trois
caractérisations équivalentes suivantes :
Les boules de rayon t et de centre les mots du code forment
une partition de {0, 1}n
C
Pvérifie le cas d’égalité de l’inégalité de Hamming
t i = 2n−k (on dit que C vérifie l’égalité de
C
i=0 n
Hamming).
Pour tout mot r ∈ {0, 1}n , il existe un unique mot de code m
qui réalise le minimum de d(r , m).
logo
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
Sommaire
6 Codes parfaits
Code de Hamming
Définition
Soit 2 ≤ m un entier.
Un code de Hamming est un code de paramètres
(2m − m − 1, 2m − 1) dont une matrice de contrôle est obtenu par
n’importe quelle énumération en colonne de tous les mots de m
bits non nuls.
Proposition
Un code de Hamming a toujours pour distance minimale 3.
Preuve
Par définition, la matrice de contrôle d’un tel code n’a pas de
colonne nulle donc dm ≥ 2 et n’a pas deux colonnes identiques
donc dm ≥ 3; enfin en faisant la somme de deux colonnes
logo
contenant exactement un seul 1 on obtient un vecteur contenant
exactement deux 1, donc une autre colonne, d’où dm = 3.
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
Code de Hamming
Définition
Soit 2 ≤ m un entier.
Un code de Hamming est un code de paramètres
(2m − m − 1, 2m − 1) dont une matrice de contrôle est obtenu par
n’importe quelle énumération en colonne de tous les mots de m
bits non nuls.
Proposition
Un code de Hamming a toujours pour distance minimale 3.
Preuve
Par définition, la matrice de contrôle d’un tel code n’a pas de
colonne nulle donc dm ≥ 2 et n’a pas deux colonnes identiques
donc dm ≥ 3; enfin en faisant la somme de deux colonnes
logo
contenant exactement un seul 1 on obtient un vecteur contenant
exactement deux 1, donc une autre colonne, d’où dm = 3.
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
Code de Hamming
Définition
Soit 2 ≤ m un entier.
Un code de Hamming est un code de paramètres
(2m − m − 1, 2m − 1) dont une matrice de contrôle est obtenu par
n’importe quelle énumération en colonne de tous les mots de m
bits non nuls.
Proposition
Un code de Hamming a toujours pour distance minimale 3.
Preuve
Par définition, la matrice de contrôle d’un tel code n’a pas de
colonne nulle donc dm ≥ 2 et n’a pas deux colonnes identiques
donc dm ≥ 3; enfin en faisant la somme de deux colonnes
logo
contenant exactement un seul 1 on obtient un vecteur contenant
exactement deux 1, donc une autre colonne, d’où dm = 3.
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
Remarque
logo
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
Théorème fondamental
logo
Définition d’un code linéaire Distance minimale d’un code linéaire Matrice de contrôle d’un code linéaire Détection et correction d
Théorème fondamental
logo