Académique Documents
Professionnel Documents
Culture Documents
1.1 Introduction
5
Chapitre 1. Codes linéaires, codes quasi-cycliques
d (x, y) = # {i ∈ N, 1 ≤ i ≤ n : xi 6= yi } .
Définition 1.2 La distance minimale d’un code linéaire C est l’entier d donné
par :
d = min {d (x, y) : x, y ∈ C, x 6= y}
6
1.2. Généralités sur les codes linéaires
d’où x = z.
w = min {w (x) : x ∈ C, x 6= 0} .
Preuve : Soit E l’ensemble de tous les vecteurs de Fnq dont les k − 1 dernières
coordonnées sont nulles. C’est un Fq -sous-espace vectoriel de Fnq de dimension
n − k + 1. On a donc
7
Chapitre 1. Codes linéaires, codes quasi-cycliques
On en déduit que d ≤ n − k + 1.
Lorsque la borne de Singleton est atteinte, le code linéaire est dit MDS.
(Maximum Distance Separable)
Définition 1.3 Une matrice génératrice d’un [n, k] code C est une matrice à
k lignes et n colonnes dont les lignes forment une base de C sur Fq .
G = (Ik P ) ,
Définition 1.5 Le code dual C ⊥ d’un [n, k] code C est le code linéaire défini
par
C ⊥ = y ∈ Fnq :< x, y >= 0, ∀x ∈ C .
8
1.2. Généralités sur les codes linéaires
∀x ∈ Fnq , x ∈ C ⇐⇒ H t x = 0.
xRy ⇔ xt H = y t H ⇔ x − y ∈ C.
9
Chapitre 1. Codes linéaires, codes quasi-cycliques
x4 = x2 + x3 ,
x5 = x1 + x3 ,
x6 = x1 + x2 .
e2 + e3 + e4 = y2 + y3 + y4 = s1 ,
e1 + e3 + e5 = y1 + y3 + y5 = s2 ,
e1 + e2 + e6 = y1 + y2 + y6 = s3 .
On peut vérifier directement que si une seule erreur survient elle est détectée
et corrigée. Par exemple, si (s1 , s2 , s3 ) = (1, 1, 0) , alors e = (0, 0, 1, 0, 0, 0)
est l’unique solution de poids 1.
En fait, il s’agit ici d’un [6, 3] code C sur F2 de distance minimale d = 3 et de
matrice génératrice standard
1 0 0 0 1 1
G = 0 1 0 1 0 1 .
0 0 1 1 1 0
1 1 0 0 0 1
10
1.2. Généralités sur les codes linéaires
Dans ce qui suit, nous allons rappeler quelques procédés qui permettent de
construire de nouveaux codes à partir de codes donnés.
C1 ⊕ C2 = {(c1 , c2 ) : c1 ∈ C1 , c2 ∈ C2 } .
Exemple 1.2 Le code binaire de Golay est le code engendré par la matrice
11
Chapitre 1. Codes linéaires, codes quasi-cycliques
standard G = (I12 A) , où
1 1 0 1 1 1 0 0 0 1 0
0 1 1 0 1 1 1 0 0 0 1
1 0 1 1 0 1 1 1 0 0 0
0 1 0 1 1 0 1 1 1 0 0
0 0 1 0 1 1 0 1 1 1 0
0 0 0 1 0 1 1 0 1 1 1
A=
1
0 0 0 1 0 1 1 0 1 1
1 1 0 0 0 1 0 1 1 0 1
1 1 1 0 0 0 1 0 1 1 0
0 1 1 1 0 0 0 1 0 1 1
1 0 1 1 1 0 0 0 1 0 1
1 1 1 1 1 1 1 1 1 1 1
C’est un [23, 12, 7] code. Le code de Golay étendu est un [24, 12, 8] code et
une matrice génératrice de ce code peut être obtenue en rajoutant à G une
colonne de sorte que la somme des coordonnées de chaque ligne soit nulle.
Définition 1.7 Un code linéaire C de longueur n sur Fq est dit cyclique s’il
12
1.3. Codes cycliques
vérifie
∀ (c0 , c1 , . . . , cn−1 ) ∈ C, (cn−1 , c0 , . . . , cn−2 ) ∈ C.
On a l’identification :
L’anneau Fq [x] / (xn − 1) étant principal, tout code cyclique C est engendré
par un unique polynôme unitaire g (x) de degré inférieur ou égal à n − 1.
13
Chapitre 1. Codes linéaires, codes quasi-cycliques
est une matrice génératrice du code cyclique C. La matrice G est dite circulante.
On a clairement :
x7 − 1 = (x + 1) x3 + x + 1 x3 + x2 + 1 .
Nous obtenons tous les codes cycliques de longueur 7 sur F2 en faisant tous les
produits des facteurs irréductibles de x7 − 1. Il y en a 8 en tenant compte du
14
1.3. Codes cycliques
g (x) = (x + 1) x3 + x + 1 = x4 + x3 + x2 + 1.
0 0 1 0 1 1 1
Parmi les codes cycliques, les codes BCH constituent l’une des familles
les plus importantes. Ces codes ont été découverts par R.C. Bose et D.K.
Ray-Chaudhuri (1960), et, indépendamment par A. Hocquenghem (1959). Une
sous-famille importante des codes BCH a été découverte à la même période
par Reed et Solomon. Les codes de Reed-Solomon sont utilisés pour la lecture
des CD et DVD.
15
Chapitre 1. Codes linéaires, codes quasi-cycliques
m1 (x) = (x − α) x − α2 x − α4 x − α8 x − α16 ,
Donc, en prenant
g (x) = m1 (x) m3 (x) m5 (x) m7 (x) = ppcm (m1 (x) , m2 (x) , · · · , m10 (x)) ,
16
1.3. Codes cycliques
Le poids de c (x) ne peut être égal à 1 puisque αi 6= 0. Il ne peut pas non plus
17
Chapitre 1. Codes linéaires, codes quasi-cycliques
∀c ∈ C, T ` (c) ∈ C.
1 0 1 1 0 1
18