Cours 11 — 10-17-24 mai 2011 11.1 Code de Hamming cycliques

Théorie de l’information et codage 2010/2011
Cours 11 — 10-17-24 mai 2011
Enseignant: Marc Lelarge Scribe: Nicolas Daviaud - Marc Lelarge
Pour information
Page web du cours
http://www.di.ens.fr/~lelarge/info11.html
11.1 Code de Hamming cycliques
Rappel : la matrice de parité d’un code de Hamming de longueur n=2m1 a pour
colonnes les 2m1 m-uplets distincts et non nuls.
Si α(2m) est un élément primitif, alors 1, α, . . . α2m2sont distincts et non nuls,
et peuvent être représentés par des m-ulpets. On définit le code de Hamming Hmavec
paramètres n=2m1,k=nm,dmin =3 par la matrice de parité H=1α··· α2m2
les αisont remplacés pas les m-uplets correspondants.
E 11.1.1: C  H H3
On se place dans le cas (23) et α3+α+1=0
H=
0010111
0101110
1001011
Un vecteur c=(c0···cn1) appartient à Hmssi HcT=0 ssi c(α)=0 où c(X)=c0+c1X+
···+cn1Xn1. Par la propriété (M2), on a c∈ HmM(1)(X)|c(X) où M(1)(X) est le polynôme
minimal de α.
Théorème 11.1.1 Le code de Hamming Hmci-dessus est un code cyclique de générateur le
polynôme minimal de α.
Un résultat précédent fournit la matrice générant Hm:
G=
M(1)(X) 0 ··· 0
0XM(1)(X)....
.
.
.
.
.......0
0··· 0Xnm1M(1)(X)
11-1
Cours 11 — 10-17-24 mai 2011 2010/2011
E 11.1.2: C  H H3()
Une matrice génératrice est
G=
1 1 0 1
1101
1101
1101
De plus, on a h(X)=X7+1
X3+X+1=X4+X2+X+1 et donc
˜
H=
10111
10111
10110
On remarque que ˜
H,Hmais la dernière ligne de ˜
Hpeut s’obtenir comme la somme des
premières et dernières lignes de H.
11.2 Codes BCH (Bose-Chaudhuri-Hocquenghem)
On commence par un exemple en reprenant le code de Hamming cyclique de longueur
n=15, c’est à dire avec m=4 et matrice de parité :
H=(1 α··· α14).
L’idée est de ’rajouter des bits de parité grâce à une fonction f:
H= 1α··· α14
f(1) f(α)··· f(α14)!
S’il y a deux erreurs en i,jalors le syndrome est :
s=H
i+H
j= αi+αj
f(αi)+f(αj)!
On est donc amené à résoudre αi+αj=z1et f(αi)+f(αj)=z2.
Voici deux choix pour fqui ne sont pas judicieux :
flinéaire ->mauvais car n’ajoute aucune information
f=X2->mauvais car en caractéristique 2 x2+y2=(x+y)2.
Nous allons maintenant voir que le choix f(x)=x3permet de corriger deux erreurs.
Avec f(x)=x3, on obtient αi+αj=z1,0 et α3i+α3j=z2=(αi+αj)(α2i+αi+j+α2j)=
11-2
Cours 11 — 10-17-24 mai 2011 2010/2011
z1(z2
1+αiαj) de telle sorte que : αiαj=z2
z1
+z2
1. Donc αiet αjsont solutions de l’équation du
second degré :
X2+z1X+(z2
z1
+z2
1)=0 (11.1)
Décodage du code BCH corrigeant deux erreurs : pour yrecu, on calcule s=HyTpuis
si z1=z2=0, décider qu’il n’y a pas d’erreur
si z1,0 et z2=z3
1, corriger une erreur en itq z1=αi
si z1,0 et z2,z3
1corriger deux erreurs en iet javec αiet αjracines de (11.1)
sinon, détecter au moins 3 erreurs
S’il y a moins de deux erreurs, elles seront corrigées. On a donc démontré que dmin 5
pour ce code.
E 11.2.1:
Reprenons l’exemple ci-dessus avec m=4, F(24) et α4+α+1=0
H= 1α α2α3α4α5α6α7··· α14
1α3α6α9α12 1α3α6··· α12 !
Remarque : α3n’est pas un élément primitif.
Supposons qu’on ait deux erreurs en 6 et 8. On trouve alors z1=α6+α8=α14 =1001
et z2=α3+α9=α=0100. On a donc z2
z1
+z2
1=α2+α13 =α14 et on cherche donc les racines
de X2+α14X+α14 =(X+α6)(X+α8) et on retrouve bien les deux erreurs correspondant à
α6et α8(donc en position 7 et 9).
Plus généralement, un code de longueur n=2m1 corrigeant deux erreurs Cest donné
par la matrice de parité
H= 1α α2. . . α2m2
1α3α6. . . α3(2m2) !.
On a alors cCHcT=0
Pn1
i=0ciαi=0 et Pn1
i=0ciα3i=0
ppcm M(1)(X),M(3)(X)|c(X)
M(1)(X)M(3)(X)|c(X)
où dans la dernière équivalence, on utilise le fait que M(1)(X) et M(3)(X) sont irréductibles
et distincts (cf exo) et donc premiers entre eux.
Théorème 11.2.1 Le code binaire BCH Ccorrigeant deux erreurs a pour paramètres n =2m1,
k=n2m et dmin 5
11-3
Cours 11 — 10-17-24 mai 2011 2010/2011
Démonstration. Le seul point à noter concerne la dimension :
k=n2mdeg g(X)=2mcf exo.
11.3 Facteurs de Xn1
Nous avons vu que le polynôme générateur d’un code cyclique de longueur nsur F(q)
doit être un facteur Xn1.
On suppose que net qsont premiers entre eux : nq=1.
Il existe un plus petit entier mtel que n|qm1 (ce résultat découle de l’exercice 11-1).
mest appelé l’ordre multiplicatif de qmodulo n.
On a alors (exercice 9-3) Xn1|Xqm11 mais ne divise aucun des Xqs11 pour
0<s<m.
Donc les racines de Xn1 qui sont appellées les racines n-ième de l’unité sont dans
l’extension de corps F(qm) et ne sont inclus dans aucun corps plus petit.
Comme la dérivée de Xn1 est nXn1et que nq=1, ces deux polynômes sont
premiers entre eux. Donc Xn1 a nracines distinctes. En fait il découle de l’exercice
11-2(i) qu’il existe une racine n-ième de l’unité primitive notée α, telle que
Xn1=
n1
Y
i=0
(Xαi).
Dans toute la suite, αest une racine nième de l’untité primitive.
Nous avions défini les classes cyclotomiques modulo pm1. Plus généralement, la
classe cyclotomique modulo nsur F(q) qui contient sest
Cs={s,sq,...,sqms1}avec sqmssmod n.
On remarque que m1=|C1|=mest l’ordre multiplicatif de qmodulo n. On obtient alors
un partition
{0,1,...,n1}=sCs,
sparcrout les représentants de classes mod n.
E 11.3.1:
Pour n=9, q=2, on obtient :
C0={0}
C1={1,2,4,8,7,5}
C3={3,6}.
11-4
Cours 11 — 10-17-24 mai 2011 2010/2011
Donc m=6 et X91 se décompose sur F(26).
Comme précédemment, on définit le polynôme minimal de αspar :
M(s)(X)=Y
iCs
(Xαi).
C’est le polynôme unitaire de degré minimal à coecients dans F(q) ayant αscomme
racine.
On a alors
Xn1=Y
s
M(s)(X),sparcrout les représentants de classes.
C’est la factorisation de Xn1 en polynômes irréductible sur F(q).
E 11.3.2:
On continue l’exemple avec n=9 et q=2 : on a donc X9+1=M(0)(X)M(1)(X)M(3)(X).
Comme M(0)(X)=X+1, et que le seul polynôme irreductible de degré 2 sur F(2) est
X2+X+1 donc M(3)(X)=X2+X+1 de telle sorte que M(1)(X)=X6+X3+1.
11.4 Codes BCH corrigeant terreurs
Théorème 11.4.1 Borne BCH : Soit Cun code cyclique de polynome générateur g(X)tel que
pour des entiers b 0et δ1, g(αb)=g(αb+1)=···=g(αb+δ2)=0. Alors dmin δ.
Démonstration. Si c=(C0,c1,...,cn1) C alors c(αb)=c(αb+1)=··· =c(αb+δ2)=0 donc
HcT=0 avec
H=
1αbα2b. . . α(n1)b
1αb+1α2(b+1) . . . α(n1)(b+1)
.
.
..
.
..
.
..
.
.
1αb+δ2α2(b+δ2) . . . α(n1)(b+δ2)
.
La matrice Hn’est pas forcément la matrice de parité entière. Il sut cependant de montrer
que toute combinaison de δ1 colonnes de Hsont linéairement indépendantes sur
F(qm). Soit donc cde poids wδ1 avec ci,0 ssi i∈ {a1,a2,...,aw}. Alors HcT=0
implique :
αa1b. . . αawb
αa1(b+1) . . . αaw(b+1)
.
.
..
.
.
αa1(b+w1) . . . αaw(b+w1)
ca1
.
.
.
caw
=0.
11-5
1 / 14 100%

Cours 11 — 10-17-24 mai 2011 11.1 Code de Hamming cycliques

La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !