• Aucun résultat trouvé

Universit´e Bordeaux I Master CSI 2 Ann´ee 2004-2005 Cours de codes (UE Codes/Signal)

N/A
N/A
Protected

Academic year: 2021

Partager "Universit´e Bordeaux I Master CSI 2 Ann´ee 2004-2005 Cours de codes (UE Codes/Signal)"

Copied!
38
0
0

Texte intégral

(1)

Universit´e Bordeaux I Master CSI 2

Ann´ee 2004-2005

Cours de codes (UE Codes/Signal)

Christine Bachoc

(2)

Bibliography

[1] J.H. van Lint, Introduction to coding theory, 3eme edition, Springer

[2] W. C. Huffman, V. Pless, Fundamentals of error-correcting codes, Cam- bridge University Press 2003

[3] The handbook of Coding Theory

(3)

Chapter 1 Introduction

La th´eorie des codes s’est d´evelopp´ee pour r´epondre au probl`eme de la correc- tion des erreurs introduites dans un syst`eme de transmission de l’information. `A l’origine d´evelopp´ee par des ing´enieurs en ´electronique, elle constitue maintenant une branche des math´ematiques discr`etes. Dans le cadre du Master CSI, l’objectif de ce cours est d’initier les ´etudiants `a une autre probl´ematique de la transmission des informations, en insistant sur les applications pratiques, et de d´evelopper les connections de ce sujet avec la cryptographie.

Le support physique utilis´e pour transmettre ou stocker une information (par exemple le t´el´ephone, l’atmosph`ere, l’espace (penser aux communications par satellite), mais aussi la m´emoire d’un ordinateur, les disques compacts, etc..) soumet cette information `a des distorsions ind´esirables, ou bruit, qui l’alt`erent.

Ce bruit peut ˆetre caus´e par un rayonnement, une alt´eration du support, des in- terf´erences, etc.. L’information recueillie par le receveur du canal est en g´en´eral diff´erente de celle ´emise par la source. L’objectif de la th´eorie des codes est de prot´eger l’information de cet ´eventuelle alt´eration.

En th´eorie de l’information, les caract´eristiques statistiques du mode de trans- mission consid´er´e sont mod´elis´ees par le canal de transmission. Par exemple, le canal sym´etrique binaire transmet des mots binaires c ∈ Fn2, o`u chaque bit est transmis ind´ependamment, avec une probabilit´e p d’erreur.

On peut sch´ematiser grossi`erement la situation de la fac¸on suivante:

(4)

Afin d’augmenter la fiabilit´e du canal, c’est-`a-dire le taux d’information cor- rectement transmise, on peut penser `a introduire de la r´ep´etition dans cette in- formation. Tous les enseignants savent bien que pour transmettre une informa- tion `a leurs ´el`eves, et pour ˆetre sˆurs que celle-ci n’a pas ´et´e d´enatur´ee, il ne faut pas h´esiter `a la r´ep´eter aussi souvent que possible. Sur ce beau principe, imagi- nons que nous voulons envoyer le message binaire suivant : 11111111. Si nous l’envoyons deux fois, le receveur pourra comparer les deux versions de notre mes- sage. Si ces deux versions ne sont pas identiques, il peut conclure `a l’existence d’une erreur au moins dans la transmission. Il faut remarquer ici que cet objectif est aussi atteint en rajoutant seulement un bit de contrˆole de parit´e, c’est-`a-dire la valeur de la somme des bits modulo 2. Ici cela donnerait 111111110. `A nouveau, si la somme des bits n’est pas 0 modulo 2 `a l’arriv´ee, on peut conclure `a l’existence d’une erreur au moins. Il est bon de remarquer que, dans le premier cas, le taux de transmission du canal, qui est la proportion d’information utile transmise, est ´egal

`a 1/2, tandis que dans le second cas, ce taux vaut 8/9. Reprenant l’exemple de la r´ep´etition, on voit intuitivement que, si le message est r´ep´et´e un grand nombre de fois, le receveur pourra “jeter” `a coup sˆur un plus grand nombre de messages erron´es, et avoir une confiance plus solide en les messages qui ont “l’air” corrects.

Un nouveau ph´enom`ene apparait mˆeme: si le message est r´ep´et´e r fois, et que ces r copies ne sont pas toutes identiques, le receveur peut opter pour la version du message la plus souvent rec¸ue.

1.1 Le canal sym´etrique binaire et la th´eorie de Shan- non

Le canal sym´etrique binaire (BSC) transmet des mots binaires de longueur n, ap- partenant `a un code C ⊂ Fn2. On suppose que les bits sont transmis ind´ependamment, et que un bit est transmis correctement avec probabilit´e 1 − p, incorrectement avec probabilit´e p. On suppose p < 1/2 et dans la pratique p est petit. (Sch´ema). On suppose ´egalement que les mots de C sont ´equiprobables.

Notons c la variable al´eatoire repr´esentant le mot transmis, y la variable al´eatoire repr´esentant le mot rec¸u. On a:

(5)

prob(y | c) =

n

Y

i=1

prob(yi | ci) = (1 − p)card{i|yi=ci}pcard{i|yi6=ci}

= (1 − p)n

 p 1 − p

card{i|yi6=ci}

Un d´ecodeur par maximum de vraisemblance choisit de renvoyer le mot ˆc qui maximise c ∈ C → prob(y | c). Comme p/(1 − p) < 1, maximiser prob(y | c) revient `a minimiser card{i | yi 6= ci}. Ainsi, le d´ecodeur renvoi un mot du code qui diff`ere de y sur le moins de coordonn´ees.

On voit apparaitre ici la notion de distance de Hamming entre deux mots:

dH(c, y) = card{i | yi 6= ci}.

Le taux de transmission d’un code C est par d´efinition R = log(|C|)/n. Il mesure la quantit´e d’information utile transmise. On pourrait penser que la fia- bilit´e de la transmission ne peut ˆetre obtenue qu’au d´etriment de ce taux de trans- mission. En fait il n’en est rien, comme l’a montr´e Shannon en 1948.

A tout canal est associ´e une valeur, appel´ee capacit´e. Sans entrer dans les` d´etails, la capacit´e du canal BSC est C(p) = 1 + p log p + (1 − p) log(1 − p). Soit Perrla probabilit´e d’erreur, c’est-`a-dire la moyenne des probabilit´es que ˆc 6= c.

Th´eor`eme 1 (Shannon, 1948) Soit R < C(p) et soit  > 0. Pour n assez grand, il existe des codes C ⊂ Fn2 de taux de transmission ´egal `a R, et tels que Perr < .

Le th´eor`eme de Shannon, que nous ne d´emontrerons pas ici, laisse entiers deux probl`emes majeurs: D’abord il est purement existentiel, il ne r´epond donc pas `a la question de la construction effective de tels codes; ensuite, il ne prend pas en compte le probl`eme algorithmique, qui est surtout celui de r´ealiser un d´ecodage efficace.

(6)

Chapter 2

Codes, Codes lin´eaires, g´en´eralit´es

Dans ce chapitre, nous allons ´etudier les codes lin´eaires sur un corps fini Fq. Mˆeme si l’on ne s’int´eresse ultimement qu’aux codes binaires, il est n´ecessaire de consid´erer dans certaines constructions des codes sur des corps finis plus g´en´eraux, c’est pourquoi nous nous plac¸ons d’embl´ee dans ce cadre plus g´en´eral (mais pas plus difficile..).

Pour l’instant, les seules choses `a savoir sur les corps finis sont les suivantes:

si p est un nombre premier, il existe un unique (`a isomorphisme pr`es) corps fini `a p

´el´ements qui est Z/pZ muni des op´erations usuelles. Pour un entier q quelconque, il existe un corps fini `a q ´el´ements si et seulement si q est une puissance d’un nombre premier p, soir q = pr; dans ce cas il est unique (`a isomorphisme pr`es), il contient un unique sous-corps isomorphe `a Fp = Z/pZ, sur lequel il est un espace vectoriel de dimension r.

2.1 Poids et distance de Hamming

Introduites par Hamming en 1950, ces notions sont fondamentales comme on l’a vu pour estimer l’efficacit´e d’un code dans le cadre d’un canal o`u les variables al´eatoires d´efinies par les coordonn´ees sont ind´ependantes et ´egales.

D´efinition 1 Soit x = (x1, . . . , xn) ∈ Fnq. Le poids de Hamming de x, not´e wt(x) est ´egal au nombre de coordonn´ees non nulles de x.

wt(x) := card{i : 1 ≤ i ≤ n | xi 6= 0}.

Soit x, y ∈ Fnq. La distance de Hamming de x et y, not´ee dH(x, y) est ´egale au nombre d’indices i o`u les coordonn´ees de x et y diff`erent.

(7)

dH(x, y) = wt(x − y) := card{i : 1 ≤ i ≤ n | xi 6= yi}.

.

le support d’un ´el´ement x ∈ Fnq est l’ensemble des indices i tels que xi 6= 0.

Le poids de x est donc le cardinal de son support.

Il faut remarquer que la distance de Hamming, est une vraie distance au sens m´etrique du terme. Rappelons bri`evement les propri´et´es d’une distance d(x, y), faciles `a v´erifier sur dH.

• d(x, y) = 0 ⇔ x = y

• d(x, y) = d(y, x)

• d(x, z) ≤ d(x, y) + d(y, z)

La boule de centre x et de rayon R est par d´efinition l’ensemble B(x, R) := {y : y ∈ Fnq | d(x, y) ≤ R}.

On peut remarquer que y ∈ B(x, R) ⇔ y − x ∈ B(0, R).

Exercice: Montrer que card(B(x, R)) = PR k=0

n

k(q − 1)k.

D´efinition 2 Un code C de longueur n est un sous-ensemble de Fnq. La distance minimale de C, not´ee d(C), est le minimum des distances entre deux ´el´ements distincts de C.

d(C) = min

x,y∈C,x6=ydH(x, y).

Proposition 1 Notons t = [d−12 ]. Les boules B(x, t) avec x ∈ C sont deux `a deux disjointes, et t est la valeur maximale du rayon pour cette propri´et´e.

.

Supposons que l’on utilise un code C pour la transmission de mots de Fnq, de distance minimale d. On note c un mot transmis et y le mot rec¸u, avec e = y − c.

Un d´ecodeur peut op´erer de la fac¸on suivante. Si y appartient `a l’une des boules B(z, t) avec z ∈ C, il renvoi ˆc = z. Sinon, il renvoi un message d’erreur (variante:

il renvoi un des mots les plus proches mais pas unicit´e). On voit que ˆc 6= c d`es que y /∈ B(c, t). Alors:

(8)

Perr =X

c∈C

prob(c) prob(wt(e) > t)

= 1

|C|

X

e∈Fn2,wt(e)>t

(1 − p)n

 p 1 − p

wt(e)

= (1 − p)n

|C|

n

X

w=t+1

 p

1 − p

w

 n w



(q − 1)w

et on voit que Perr diminue lorsque t augmente. En clair, `a cardinal fix´e, on cherche un code avec d aussi grand que possible.

On dit que C d´etecte d − 1 erreurs et corrige t = [(d − 1)/2] erreurs.

2.2 Codes lin´eaires

Dans notre ´etude des codes contenus dans Fnq, nous allons nous concentrer sur les codes lin´eaires, c’est-`a-dire ceux qui ont une structure d’espaces vectoriels. En ef- fet, les outils de l’alg`ebre lin´eaire facilitent dans ce cas les op´erations d’encodage et de d´ecodage, comme nous le verrons. De plus, il a ´et´e d´emontr´e que le r´esultat (non constructif) de Shannon reste vrai si l’on se restreint aux codes lin´eaires.

Nous voil`a donc rassur´es, on peut en principe ˆetre tout aussi efficace dans la cor- rection de l’information avec des codes lin´eaires..

D´efinition 3 Un code est dit lin´eaire si C est un Fq-sous espace vectoriel de Fnq. Dans ce cas, on note k sa dimension.

Si C est lin´eaire, on peut remarquer que, si x et y sont dans C, alors x − y appartient ´egalement `a C. Comme dH(x, y) = wt(x − y), la distance minimale de C est ´egale au minimum des poids des ´el´ements non nuls de C. On a:

d(C) = wt(C) = min{wt(x), x ∈ C \ {0}}.

D’un point de vue algorithmique, le calcul de la distance d’un code quel- conque n´ecessite |C|2 op´erations, tandis que pour un code lin´eaire il n’en faut que |C| (environ).

Si C est un code lin´eaire, longueur, dimension et distance sont les param`etres fondamentaux de C et sont not´es [n, k, d].

(9)

2.3 Orthogonalit´e

Nous introduisons une notion d’orthogonalit´e sur l’espace Fnqavec la forme bilin´eaire symm´etrique non d´eg´en´er´ee x · y = Pn

i=1xiyi.

Lorsque Fq = F2, on identifie souvent un mot de Fn2 avec son support. La notation x∩y d´esigne donc le mot de support l’intersection des supports respectifs de x et y. On a alors:

• x · y = wt(x ∩ y) mod 2

• En particulier, x · x = wt(x) mod 2.

• wt(x + y) = wt(x) + wt(y) − 2wt(x ∩ y)

Parfois on consid`ere d’autres formes que celle d´efinie plus haut. Un cas impor- tant est celui de Fq= F4. Rappelons que F4 = {0, 1, w, w2}, o`u w2+ w + 1 = 0.

Sur ce corps, l’application x → x2 est un automorphisme de corps, qui d´efinit une involution encore appel´ee conjugaison. On note aussi ¯x = x2. Il est usuel de consid´erer sur Fn4 la forme hermitienne x · y =Pn

i=1xii.

2.4 Matrice g´en´eratrice, de contrˆole de parit´e

D´efinition 4 Soit C un code lin´eaire de longueur n et de dimension k. Une ma- trice g´en´eratrice de C est une matrice k × n dont les lignes forment une base de C. Le code dual du code C est l’orthogonal C de C pour la forme usuelle x · y =Pn

i=1xiyi.

C:= {u : u ∈ Fnq | u · v = 0 pour tout v ∈ C}.

Une matrice de contˆole de parit´e de C est une matrice (n − k) × n g´en´eratrice de C. Un code est dit autodual s’il est ´egal `a son dual.

Proposition 2 Soit C un code lin´eaire, de longueur n et de dimension k, soit G une matrice g´en´eratrice de C et soit H une matrice de contrˆole de parit´e de C.

alors:

• x ∈ C ⇔ Il existe u ∈ Fkq | x = uG

• x ∈ C ⇔ Hxt= 0

(10)

• C contient un mot de poids au plus w, ssi w colonnes de H sont lin´eairement d´ependantes.

Remarque 1 Ainsi, un code C est de poids d si et seulement si, il existe d colonnes de sa matrice de contrˆole de parit´e lin´eairement d´ependantes, tandis que d − 1 colonnes quelconques sont ind´ependantes. cette remarque est `a la base du pro- cessus de construction des codes de Hamming, que nous verrons au paragraphe suivant.

Proposition 3 Soit C un code lin´eaire de matrice g´en´eratrice G. Supposons que G soit de la forme dite canonique ou syst´ematique G = [Ik| A]. Alors une matrice de contrˆole de parit´e est H = [−At| In−k].

2.5 Equivalence de codes ´

Soit Snle groupe des permutations de l’ensemble {1, 2, . . . , n}. Ce groupe op`ere sur Fnq par permutation des coordonn´ees:

σ ∈ Sn, (x1, . . . , xn)σ := (xσ(1), . . . , xσ(n)).

Exercice: Montrer que (xσ)τ = xστ.

Toutes les notions introduites sont invariantes par permutation: ainsi, wt(σ(x)) = wt(x), σ(x) · σ(y) = s · y, dH(σ(x), σ(y)) = dH(x, y), etc.. Si un code C1 est l’image d’un code C2 par une permutation σ, bien que distincts, ces codes auront les mˆemes propri´et´es relativement au probl`eme de la correction de l’information.

Pour cette raison, on ´etudie en g´en´eral les codes `a permutation pr`es.

A toute permutation σ, on associe une matrice M` σ qui est la matrice de la transformation lin´eaire de Fnq associ´ee `a σ. C’est une matrice n × n, dont toutes les entr´ees sont nulles, sauf les (σ(i), i) o`u elles sont ´egales `a 1. On a:

xσ = xMσ.

Si C est un code lin´eaire de matrice g´en´eratrice G, Cσ est encore un code lin´eaire, de matrice g´en´eratrice GMσ. Celle-ci est obtenue `a partir de G par per- mutation, suivant σ, des colonnes de G.

Proposition 4 (et d´efinition.) Soit C1, C2deux codes lin´eaires de matrices g´en´eratrices respectivement G1et G2. On dit que les codes C1et C2sont ´equivalents s’il existe

(11)

une permutation σ telle que C2 = C1σ. Cela est ´equivalent `a demander qu’il existe une matrice de permutation Mσ et une matrice k × k P `a coefficients dans Fq et inversible telles que

G2 = P G1Mσ.

On utilise aussi la notion d’´equivalence monomiale. Deux codes sont dit monomialement ´equivalents s’ils sont ´echang´es par une tranformation monomi- ale, o`u une transformation monomiale est une transformation du type

(x1, . . . , xn) → (a1xσ(1), . . . , anxσ(n)), avec, pour tout i, ai ∈ Fq.

Exercice: Quelles notions sont invariantes par transformation monomiale, et quelles notions ne le sont pas ? Quelle est la matrice d’une transformation monomiale ? Montrer que l’ensemble des transformations monomiales forme un groupe, iso- morphe au produit semi-direct (Fq)no Sn. Quel est son cardinal ?

D´efinition 5 L’ensemble des permutations σ ∈ Sntelles que σ(C) = C forme un groupe, appel´e le groupe des permutations (ou le groupe des automorphismes) du code C, et not´e Aut(C).

2.6 Les codes de Hamming

Dans ce paragraphe, on construit une famille de codes qui ont pour propri´et´e de corriger une erreur. En vertu de la Proposition 2 et de la remarque qui la suit, on doit donc construire des matrices de contrˆole de parit´e H telles que deux colonnes ne soient pas lin´eairement d´ependantes. Si r est le nombre de lignes de H, ces colonnes appartiennent `a Frq, doivent donc ˆetre non nulles, et on doit en choisir au plus une par droite de Frq. Le nombre maximum de colonnes est donc (qr − 1)/(q − 1).

D´efinition 6 On note H(q, r) et on appelle code de Hamming sur Fq d’ordre r le code d´efini (`a ´equivalence monomiale pr`es) par la matrice de contrˆole de parit´e dont les colonnes d´ecrivent l’ensemble Frq\ {0} modulo Fq(i.e. l’espace projectif de dimension r − 1).

(12)

Exemple: : Pour q = 2 et r = 3, on obtient pour matrice de contrˆole de parit´e

H =

1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 0 1 1 1

.

Une matrice g´en´eratrice de H(2, 3) est donc

G =

1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 1 0 0 0 1

 .

Le code H(2, 3) a pour param`etres [7, 4, 3] et son dual [7, 3, 4].

Proposition 5 1. Le code H(q, r) est de longueur n = (qr − 1)/(q − 1), de dimension n − r et de distance minimal 3.

2. C’est un code parfait, c’est-`a-dire ∪x∈H(q,r)B(x, 1) = Fnq.

3. Son dual H(q, r)est un code simplexe, c’est-`a-dire tous ses mots non nuls sont de mˆeme poids. La valeur commune de leur poids est qr−1.

Preuve: Le point 1. est d´ej`a d´emontr´e. Notons que le poids 3 est bien atteint puisque toutes les droites sont repr´esent´ees. Les boules B(x, 1) sont disjointes et on a vu que card(B(x, 1)) = 1 + n1(q − 1) = 1 + n(q − 1) = qr. On a donc:

card(∪x∈H(q,r)B(x, 1)) = card(H(x, r))qr = qn−rqr = qn.

Comme qnest pr´ecis´ement le cardinal de Fnq, on en d´eduit l’´egalit´e des ensembles.

Notons H la matrice de contrˆole de parit´e de H(q, r) d´ecrite plus haut. Un mot de H(q, r)est de la forme x = uH o`u u parcourt Frq. Notons c1, . . . , cnles colonnes de H. Alors x = (u·c1, . . . , u ·cn). On sait que les ciparcourent Frq\{0}

modulo Fq; d’autre part, u · c = 0 si et seulement si u · λc = 0 pour λ ∈ Fq. Donc:

wt(u) = card{c ∈ Frq | u · c 6= 0}/(q − 1).

Si u est non nul, ce cardinal vaut qr−1(q − 1) (en effet, un hyperplan de Frq a qr−1 ´el´ements donc son compl´ementaire en a qr − qr−1 = qr−1(q − 1). Donc wt(u) = qr−1.

(13)

La proc´edure de d´ecodage des codes de Hamming est tr`es simple. Soit y ∈ Fnq; on garde les notations pr´ec´edentes. Pour trouver le mot x ∈ H(q, r) le plus proche de y, il suffit de:

• Calculer s := Hyt.

• Si s = 0, retourner x = y.

• Si s 6= 0, chercher l’indice i tel que s = λci.

• Remplacer yipar yi− λ, et retourner x = y.

Preuve: : Notons i le mot dont les coordonn´ees sont toutes nulles sauf la i-`eme qui vaut 1. Clairement, on a Hyt = H(λi)t. Donc x := y − λi appartient `a H(q, r) et est `a distance 1 de y. Remarquons qu’on trouve toujours un indice i convenable, puisque toutes les droites de Frq sont repr´esent´ees dans les colonnes.

C’est donc une autre fac¸on de voir que ce code est parfait.

2.7 Distribution des poids d’un code.

D´efinition 7 La distribution des poids d’un code C lin´eaire est le n-uplet

(A0, A1, . . . , An), o`u Ai est ´egal au nombre des mots de C de poids i. En parti- culier, A0 = 1 etP

iAi = qk, o`u k est la dimension de C.

Exercice: Montrer que deux codes ´equivalents, et mˆeme monomialement ´equiva- lents, ont mˆeme distribution des poids.

D´efinition 8 Soit C un code binaire. On dit que C est un code pair si tous les mots de C ont un poids de Hamming pair.

On dit que C est un code doublement pair si tous les mots de C ont un poids de Hamming divisible par 4.

Proposition 6 Si C est un code binaire tel que C ⊂ C, alors C est un code pair.

Si C est un code binaire tel que C ⊂ C, et poss´edant une base de mots de poids divisibles par 4, alors C est un code doublement pair.

(14)

Preuve: Si C ⊂ C, alors pour tout x ∈ C, x · x = 0. Mais wt(x) ≡ x · x mod 2, donc wt(x) ≡ 0 mod 2. Si, en outre, C a une base de mots de poids divisibles par 4, alors tous les mots de C sont bien divisibles par 4 `a cause de la relation wt(x + y) = wt(x) + wt(y) − 2wt(x ∩ y).

Exercice: Montrer qu’un code peut ˆetre pair sans v´erifier C ⊂ C. Par contre, montrer que, si C est doublement pair, alors C v´erifie C ⊂ C.

Montrer que le code de Hamming ´etendu est un code doublement pair.

On peut se demander s’il existe une relation entre la distance minimale d’un code, et celle de son dual. En fait, la distance du code dual d´epend non seulement de la distance minimale du code, mais aussi de toute sa distribution des poids, comme le montre la formule de MacWilliams. Cette formule dit que la distribution des poids de C s’exprime lin´eairement en fonction de celle de C. Elle est une cons´equence de la formule de Poisson discr`ete que nous rappelons maintenant.

Th´eor`eme 2 (Formule de Poisson) Soit f : Fnq → A une application de Fnq dans un C-module A. Soit ˆf : Fnq → A d´efinie par: ˆf (v) = P

u∈Fnq(v, u)f (u), o`u (v, u) = ζptraceFq /Fp(v·u). Alors

X

u∈C

f (u) = 1

|C|

X

v∈C

f (v).ˆ

Preuve: On a

X

v∈C

f (v) =ˆ X

v∈C

(X

u∈Fnq

(v, u)f (u)) (2.1)

= X

u∈Fnq

f (u)(X

v∈C

(v, u)). (2.2)

L’application v → (v, u) est un caract`ere du groupe C, et on utilise les propri´et´es d’orthogonalit´e des caract`eres pour conclure queP

v∈C(v, u) = 0 si u /∈ C, et

= |C| sinon.

Th´eor`eme 3 (et d´efinition). Le polynˆome ´enum´erateur des poids d’un code C de longueur n sur Fq est le polynˆome homog`ene en deux variables x et y, de degr´e n, d´efini par:

(15)

WC(x, y) =X

u∈C

xn−wt(u)ywt(u). On a (formule de MacWilliams):

WC(x, y) = 1

|C|WC(x + (q − 1)y, x − y).

Preuve: On applique la formule de Poisson `a la fonction f (u) = xn−wt(u)ywt(u). Il faut calculer ˆf .

f (v) =ˆ X

u∈Fnq

(v, u)xn−wt(u)ywt(u) (2.3)

= X

u∈Fnq

n

Y

i=1

(vi, ui)x1−wt(ui)ywt(ui) (2.4)

=

n

Y

i=1

X

a∈Fq

(vi, a)x1−wt(a)ywt(a) (2.5)

=

n

Y

i=1

((vi, 0)x + (X

a6=0

(vi, a))y) (2.6)

et on utiliseP

a6=0(vi, a) = q − 1 si vi = 0, = −1 sinon. On obtient:

f (v) = (x + (q − 1)y)ˆ n−wt(v)(x − y)wt(v). (2.7)

Exemple: On a vu que le code H(q, r) est un code dont tous les mots non nuls sont de poids qr−1. Son polynˆome ´enum´erateur des poids est donc

WH(q,r)(x, y) = xn+ (qr− 1)xn−qr−1yqr−1.

La formule de MacWilliams nous permet donc de calculer WH(q, r):

WH(q,r)(x, y) = 1 qr



(x+(q − 1)y)n+

(qr− 1)(x + (q − 1)y)n−qr−1(x − y)qr−1 .

(16)

Pour q = 2, on obtient:

WH(2,r)(x, y) = 1

2r(x + y)2r−1−1

(x + y)2r−1+ (2r− 1)(x − y)2r−1 et, pour q = 2 et r = 3,

WH(2,3)(x, y) = x7 + 7x4y3+ 7x3y4+ y7.

2.8 Quelques constructions standards.

Des constructions standards permettent de fabriquer de nouveaux codes `a partir d’anciens. Dans ce paragraphe, on d´ecrit quelques-unes de ces constructions.

Extension par parit´e: Soit C un code de longueur n et de dimension k. On rajoute une coordonn´ee aux mots du code, de sorte que la somme des coordonn´ees d’un mot du nouveau code ´egale z´ero. Le nouveau code est donc de longueur n+1 et de mˆeme dimension. Dans le cas binaire, cette construction est particuli`erement int´eressante si le code de d´epart a une distance impaire d, car alors le code ´etendu est de distance d + 1.

Exemple: Le code de Hamming ´etendu H(2, 3)ext est un code de param`etres [8,4,4]. Il est de plus autodual.

Somme orthogonale: Soit C1et C2deux codes de param`etres respectifs [n1, k1, d1] et [n2, k2, d2]. On d´efinite C1 ⊕ C2 := {(x, y) : x ∈ C1, y ∈ C2}. Alors claire- ment, ce code a pour param`etres [n1+ n2, k1 + k2, min(d1, d2)].

Somme: La pr´ec´edente construction ne doit pas ˆetre confondue avec la somme dans Fnq. Si C1et C2sont deux codes de longueur n sur Fq, on d´efinit C1+ C2 :=

{x + y : x ∈ C1, y ∈ C2}. Le dual de ce code est l’intersection des codes duaux.

2.9 Encodage et d´ecodage, les classes d’un code li- n´eaire.

L’avantage des codes lin´eaires pour la transmission d’information est multiple.

D’une part, il suffit de stocker une matrice g´en´eratrice du code pour connaˆıtre tous ses ´el´ements. D’autre part, l’encodage des mots de Fnq est tr`es facile `a met- tre en oeuvre `a partir d’une matrice g´en´eratrice G, puisque il suffit d’effectuer

(17)

l’op´eration uG, si u = (u1, . . . , uk) est le mot `a transmettre. On peut remar- quer que, si G est sous forme canonique, v = uG a ses k premi`eres coordonn´ees

´egales `a celles de u. A partir d’un mot du code il est donc tr`es facile de revenir au message initial.

En ce qui concerne le d´ecodage, la situation est plus compliqu´ee. On s’int´eresse ici au d´ecodage par maximum de vraisemblance, qui consiste, pour un ´el´ement w ∈ Fnq, `a trouver un ´el´ement du code `a plus petite distance de w.

D´efinition 9 Les classes d’un code C de longueur n sur Fq sont les ensembles x + C, o`u x ∈ Fnq. Si k est la dimension de C, il y a qn−k classes distinctes.

Le poids, ou la distance minimale d’une classe diff´erente de C est wt(x + C) :=

min{wt(y) : y ∈ x + C}.

Le rayon de recouvrement du code C est le maximum des poids des classes.

C’est le plus petit entier δ tel que les boules de centres les mots du code et de rayon δ recouvrent Fnq:

Fmq = ∪x∈CB(x, δ).

Un code est dit parfait si son rayon de recouvrement δ est ´egal `a t := [(d − 1)/2], o`u d est sa distance minimale (clairement il est toujours sup´erieur..). Dans ce cas, les boules forment une partition de l’espace Fnq.

Proposition 7 Soit C un code de distance minimale d et soit t := [(d − 1)/2].

Alors les ensembles x + C, pour x ∈ Fnq avec 1 ≤ wt(x) ≤ t sont tous distincts.

Soit w ∈ Fnq et soit H une matrice de contrˆole de parit´e de C. le vecteur w appartient `a la r´eunion des boules de centre les mots du code et de rayon t, si et seulement si Hwtappartient `a l’ensemble {Hxt : 1 ≤ wt(x) ≤ t}. Dans ce cas, si Hwt= Hxt, alors w se d´ecode en w − x.

Exemple: Le code de Hamming binaire de param`etres [7, 4, 3]. On a t = 1, et 27−4= 7 + 1. Les classes de ce code sont donc C lui-mˆeme, plus les x + C avec C de poids 1. Si on note ei l’´el´ement de F72 dont toutes les coordonn´ees sont nulles sauf la i-`eme qui vaut 1, Hetiest simplement la i-`eme colonne de H.

(18)

Chapter 3

Codes cycliques

Dans ce chapitre, nous allons ´etudier une famille de codes particuli`ere, les codes cycliques. Nous allons voir qu’avec un peu d’alg`ebre, ils peuvent ˆetre analys´es facilement. En particulier, nous allons g´en´eraliser la construction des codes de Hamming, faits pour corriger une erreur, en imposant de corriger un nombre d’erreurs fix´e `a l’avance. Ce sont les codes BCH, qui en outre poss`edent un bon algorithme de d´ecodage. Ces codes sont tr`es utilis´es pour la correction d’erreurs.

3.1 Codes cycliques: g´en´eralit´es

On d´efinit la fonction “d´ecalage” sur Fnq, qui est une permutation circulaire des coordonn´ees:

Fnq −→ Fqn

s : (c0, c1, . . . , cn−1) 7−→ (cn−1, c0, c1, . . . , cn−2)

D´efinition 10 Soit C un code lin´eaire sur Fnq. On dit que C est cyclique si s(C) = C.

En tant que transformation de Fnq, s v´erifie bien sˆur sn = Id, et s est d’ordre n.

On v´erifie facilement que, si C est cyclique, C est aussi cyclique. Un exemple tr`es simple de code cyclique est le code de contrˆole de parit´e.

La propri´et´e d’ˆetre cyclique pour un code s’interpr`ete tr`es bien en termes de polynˆomes. On associe `a un mot c = (c0, c1, . . . , cn−1) un polynˆome, not´e c(x):

c(x) = c0+ c1x + · · · + cn−1xn−1. On consid`ere l’application compos´ee φ:

(19)

Fnq −→ Fq[x] −→ Fq[x]/(xn− 1)Fq[x]

φ : c 7−→ c(x) 7−→ c(x) mod xn− 1 L’application φ est un isomorphisme de Fq-espaces vectoriels.

Proposition 8 Un code lin´eaire C est cyclique si et seulement si φ(C) est un id´eal de l’anneau Rn := Fq[x]/(xn− 1)Fq[x].

Preuve: Dans Rn, la multiplication par x correspond `a la permutation circulaire des coefficients. Ainsi, pour tout u ∈ Fnq, φ(s(u)) = xφ(u); un code C est stable par s si et seulement si xφ(C) = φ(C). Comme d’autre part un code lin´eaire est aussi un Fq-espace vectoriel, il est stable par s si et seulement si son image par φ est un id´eal de Rn.

Il reste `a ´etudier la structure des id´eaux de Rn. Dans ce but, on supposera toujours que n est premier `a p = car(Fq). En effet, sous cette hypoth`ese, le polynˆome xn− 1 n’a que des racines simples.

D’autre part, on identifiera dans la suite un ´el´ement c de Fnq et le polynˆome c(x) qui lui est associ´e.

Th´eor`eme 4 Soit C un code cyclique sur Fq. Il existe un unique polynˆome g(x) ∈ Fq[x] tel que:

1. C = g(x)Rn mod xn− 1 2. g(x) divise xn− 1

De plus, g(x) est le polynˆome unitaire de plus petit degr´e de C; si deg(g) = k, alors dim(C) = n − k et une base de C est: {g(x), xg(x), . . . , xn−k−1g(x)}. Ce polynˆome est appel´e polynˆome g´en´erateur du code.

Preuve: Les id´eaux de Rn sont en bijection avec les id´eaux de Fq[x] qui conti- ennent xn − 1. D’autre part, les id´eaux de Fq[x] sont principaux, et g(x)Fq[x]

contient xn− 1 si et seulement si g(x) divise xn− 1.

Soit D ⊂ C le Fq-espace vectoriel engendr´e par {g(x), xg(x), . . . , xn−k−1g(x)}.

Clairement, D est de dimension n − k, car ces ´el´ements sont “triangulaires” sur {1, x, . . . , xn−1}. Il reste `a montrer que D est ´egal `a C, et pour cela, que les

(20)

xug(x) mod xn− 1 pour u ≥ n − k sont dans D. On effectue la division eucli- dienne de xug(x) par xn− 1 (dans Fq[x] bien sˆur). Il existe des polynˆomes q et r, qvec deg(r) < n, tels que

xug(x) = (xn− 1)q(x) + r(x).

Comme g(x) divise xn−1, g(x) divise aussi r(x). ´Ecrivons r(x) = g(x)r1(x);

on a deg(r1) < n − k et xug(x) = g(x)r1(x) mod xn− 1 ce qui montre bien que xug(x) appartient `a D.

La matrice g´en´eratrice de C associ´ee `a la base mise en ´evidence dans le th´eor`eme pr´ec´edent a une forme bien particuli`ere: si g = g0+ g1x + · · · + gkxk,

G =

g0 g1 . . . gk 0 . . . 0 0 g0 g1 . . . gk 0 . . . 0

. .. ... . ..

. .. ... . ..

0 . . . g0 g1 . . . gk

 Quelques propri´et´es ´el´ementaires laiss´ees en exercice:

1. C1 ⊂ C2 ssi g2divise g1

2. C1∩ C2 correspond au polynˆome ppcm(g1, g2) 3. C1+ C2 correspond au polynˆome pgcd(g1, g2)

4. Ca pour polynˆome g´en´erateur le polynˆome r´eciproque de g: xdeg(g)g(1/x).

Exemple: Les codes cycliques de longueur 7 sur F2. x7− 1 = (x − 1)(x3+ x + 1)(x3+ x2+ 1). Dimensions, distance minimales? nombre?

D´efinition 11 Soit C un code cyclique de longueur n sur Fq, engendr´e par le polynˆome g(x). Soit α une racine primitive n-i`eme de l’unit´e dans une clˆoture alg´ebrique de Fq. L’ensemble des z´eros de C est l’ensemble

Z(C) := {αi | g(αi) = 0}.

(21)

Remarquons que la plus petite extension de Fq qui contienne α est Fqr. o`u r est le plus petit entier tel que n divise qr− 1.

Puisque g(x) appartient `a Fq, le Frobenius σq, d´efini par σq(x) = xqop`ere sur les racines de g. Il s´epare l’ensemble Z(C) en orbites, correspondant au diff´erents polynˆomes minimaux sur Fq.

D´efinition 12 Les classes cyclotomiques modulo n sont les ensembles

C(k) := {kqi mod n}.

Elles forment une partition de l’ensemble {0, 1, 2, . . . , n − 1}.

Le polynˆome minimal de αksur Fqest ´egal `a Pαk =Q

i∈C(k)(x − αi).

Il est clair qu’un polynˆome g´en´erateur d’un code cyclique de longueur n est le produit d’un certain nombre de ces polynˆomes minimaux. Un code cyclique de longueur n sur Fq est donc d´etermin´e par un ensemble de classes cyclotomiques modulo n. On va voir que ces classes d´eterminent une borne inf´erieure pour la distance minimale du code.

3.2 Codes BCH

On fixe d´esormais une racine primitive n-i`eme de l’unit´e α dans une clˆoture alg´ebrique de Fq.

Th´eor`eme 5 (de la borne BCH) Soit C un code cyclique de longueur n sur Fq. Si Z(C) contient δ − 1 puissances successives de α, i.e. s’il existe b tel queb, αb+1, . . . , αb+δ−2} ⊂ Z(C), alors d(C) ≥ δ.

Preuve: Tout d’abord, on remarque que l’ensemble Z(C) permet de caract´eriser les ´el´ements de C, de la fac¸on suivante:

Lemme 1 Soit c = (c0, c1, . . . , cn−1) ∈ Fnq. On a: c ∈ C ssi c(αi) = 0 pour tout αi ∈ Z(C).

Preuve: Les ´el´ements de C sont les c(x) = g(x)h(x) mod xn− 1. Donc, si g(αi) = 0, on a aussi c(αi) = 0. R´eciproquement, si c(αi) = 0 pour tout αi ∈ Z(C), il est clair que g(X) divise c(X) puisque les z´eros de g sont simples.

(22)

On peut traduire cette condition matriciellement. Soit Z(C) := {αi1, . . . , αis} et soit P la matrice `a s lignes et n colonnes:

P :=

1 αi1i1)2 . . . (αi1)n−1 ... ... ... . . . ... 1 αisis)2 . . . (αis)n−1

 On a:

P

 c0

... cn−1

=

 c(αi1)

... c(αis)

 donc

c ∈ C ⇐⇒ P

 c0

... cn−1

=

 0

... 0

.

Notons que P n’est pas tout `a fait une matrice de contrˆole de parit´e de C, car ses coefficients ne sont pas `a priori dans Fq. Malgr´e cela, comme dans la Proposition 2, les mots de C correspondent `a des combinaisons lin´eaires nulles de ses colonnes. Ainsi:

C contient un mot non nul de poids ≤ δ −1 ⇐⇒ P contient δ −1 colonnes li´ees.

Fixons donc δ − 1 colonnes, associ´ees aux puissances j1, j2, . . . , jδ−1. On extrait de ces δ − 1 colonnes les lignes associ´ees aux δ − 1 puissances successives de α appartenant `a Z(C). On se retrouve avec la matrice carr´ee de taille δ − 1 suivante:

A =

b)j1b)j2 . . . (αb)jδ−1b+1)j1b+1)j2 . . . (αb+1)jδ−1

... ... . . . ... (αb+δ−2)j1b+δ−2)j2 . . . (αb+δ−2)jδ−1

 .

(23)

Le d´eterminant de cette matrice vaut

det(A) = (αb)j1b)j2. . . (αb)jδ−1

1 1 . . . 1

αj1 αj2 . . . αjδ−1 ... ... . . . ... (αδ−2)j1δ−2)j2 . . . (αδ−2)jδ−1

= αbj1+bj2+···+bjδ−1 Y

1≤k<l≤s

jk− αjl)

par la formule de Van der Monde. Comme ce d´eterminant est non nul, on peut conclure que les δ − 1 colonnes sont lin´eairement ind´ependantes, et donc que C ne contient pas de mot non nul de poids inf´erieur ou ´egal `a δ − 1.

D´efinition 13 Un code BCH de distance prescrite δ est un code cyclique, de longueur n sur Fq, engendr´e par le polynˆome:

g(x) = ppcm(Pαb+i | 0 ≤ i ≤ δ − 2) o`u Pαj est le polynˆome minimal de αj sur Fq.

Si b = 1, on l’appelle code BCH au sens restreint. Le poids minimal d’un code BCH de distance prescrite δ est au moins ´egal `a δ.

Exemple: Prenons q = 2, et δ = 3. On a Pα = Pα2 puisque α2 = σ(α). Si r = deg(Pα) et n = 2r − 1, i.e. si α est un g´en´erateur de F2r, le code C n’est autre que H(2, r).

Remarque 2 Il peut arriver que d(BCH) > δ.

3.3 Le d´ecodage des codes BCH

Non seulement la construction des codes BCH assure une borne inf´erieure pour leur distance minimale, mais de plus on a un algorithme de d´ecodage efficace pour ces codes (dˆu `a Berlekamp).

Soit donc C un code BCH (au sens restreint pour simplifier) de distance pre- scrite δ = 2t + 1. C corrige dont t erreurs. Soit y = y0+ y1x + · · · + yn−1xn−1 le mot rec¸u; on cherche donc c ∈ C tel que d(y, c) ≤ t. On pose

(24)

e = y − c = e0+ e1x + · · · + en−1xn−1.

La strat´egie de l’algorithme consiste `a d’abord d´eterminer les positions des erreurs, c’est-`a-dire l’ensemble des indices i tels que ei 6= 0, puis leurs valeurs ei. On pose donc:

P := {i : 0 ≤ i ≤ n − 1 | ei 6= 0}

et on construit un polynˆome localisateur des erreurs σ:

σ(z) :=Y

i∈P

(1 − αiz).

Remarquons que connaitre σ revient `a connaitre P , et que l’hypoth`ese d(y, c) ≤ t se traduit par: deg(σ) ≤ t.

On pose ensuite

S(z) :=

2t

X

l=1

y(αl)zl−1. Le polynˆome S est connu, puiqu’il ne d´epend que de y.

Proposition 9 Il existe un polynˆome w(z) de degr´e deg(w) < t, et premier `a σ, tel que

S(z)σ(z) = w(z) mod z2t. (3.1)

R´eciproquement, si σ0et w0sont deux polynˆomes tels que deg(σ0) ≤ t, deg(w) <

t et

S(z)σ0(z) = w0(z) mod z2t, alors il existe un polynˆome q(z) tel que:

0(z) = σ(z)q(z) w0(z) = w(z)q(z) Preuve: On y(αl) = e(αl) = P

i∈P eiαli pour tout 1 ≤ l ≤ 2t, puisque {αl, 1 ≤ l ≤ 2t} ⊂ Z(C).

(25)

S(z)σ(z) =

2t

X

l=1

X

i∈P

eiαlizl−1σ(z)

=X

i∈P

ei

2t

X

l=1

αlizl−1σ(z)

=X

i∈P

eiαi 1 − (αiz)2t 1 − αiz σ(z)

=X

i∈P

eiαi 1 − (αiz)2t Y

j6=i

(1 − αjz)

=X

i∈P

eiαiY

j6=i

(1 − αjz) mod z2t

Posons w(z) :=P

i∈PeiαiQ

j6=i(1 − αjz). Ce polynˆome est bien de degr´e au plus ´egal `a t − 1; de plus, w(α−i) = eiαiQ

j6=i(1 − αj−i) 6= 0 donc w est premier

`a σ.

Supposons qu’il existe w0 et σ0 comme indiqu´e. On a:

w(z)σ0(z) = S(z)σ(z)σ0(z) mod z2t

= w0(z)σ(z) mod z2t Comme deg(wσ0) < 2t et deg(w0σ) < 2t, on peut conclure

w(z)σ0(z) = w0(z)σ(z).

Comme pgcd(σ, w) = 1, on conclut que σ divise σ0et w divise w0, d’o`u le r´esultat.

Remarque 3 En termes de LFSR, l’´equation (3.1) s’interpr`ete par: la suite [y(αl), 1 ≤ l ≤ 2t] est engendr´ee par un LFSR de longueur t, de polynˆome de connection σ.

Donc σ est calcul´e par l’algorithme de Berlekamp-Massey! Noter que, comme on a 2t termes de la suite, il est unique.

On peut maintenant d´ecrire trois m´ethodes pour d´eterminer σ:

(26)

• La plus basique: on a t − 1 inconnues qui sont les coefficients de σ (son terme constant est 1); on a t − 1 conditions lin´eaires qui sont que les coeffi- cients de zt, zt+1, . . . , z2t−1 dans le produit S(z)σ(z) sont nuls. On r´esoud un syst`eme lin´eaire de taille t − 1, d’o`u une complexit´e en t3.

• On applique Berlekamp-Massey pour trouver σ: complexit´e en t2.

• On fait de l’algorithme d’Euclide ´etendu entre z2tet S(z) et on s’arrˆete en chemin.. En effet, dans l’algorithme d’Euclide ´etendu, on pose:

p0 = z2t, p1 = S, p0 = p1q1+ r1 p1 = S, p2 = r1, p1 = p2q2+ r2

. . .

pi−1, pi = ri−1, pi−1 = piqi+ ri . . .

jusqu’`a ce qu’on obtienne ri = 0. Notons que pgcd(z2t, S) ne peut ˆetre un zk avec k ≥ t, car dans ce cas on aurait y(αl) = 0 pour l = 1, . . . , t, m´ezalor e(αl) = 0 pour l = 1, . . . , t alors que e est suppos´e de poids au plus t. On a:

z2t S



=p0 p1



=q1 1 1 0

 p1 p2



=q1 1 1 0



. . .qi 1 1 0

  pi pi+1

 . ou encore

ai bi ci di

 z2t S



=

 pi pi+1



avec ai, bi, ci, di ∈ K[z] et v´erifient:

ai+1 bi+1 ci+1 di+1



= 0 −1

−1 qi+1

 ai bi ci di

 .

Comme pi est le reste de la division par pi−1, on a deg(pi) < deg(pi−1).

Donc, il existe i tel que deg(pi) < t ≤ deg(pi−1). On a alors:

aiz2t+ biS = pi

(27)

soit

biS = pi mod z2t.

Il reste `a se persuader que deg(bi) ≤ t. Les relations bi+1 = −di et di = −bi−1+ qidi−1 montrent par r´ecurrence que deg(bi) = deg(qi−1) + deg(qi−2)+· · ·+deg(q1). Or deg(qi) = deg(pi−1)−deg(pi) donc deg(bi) = deg(p0) − deg(pi−1) = 2t − deg(pi−1) ≤ t. On a donc trouv´e σ = bi. Une fois que σ est calcul´e, on trouve ses racines et donc les localisations des erreurs. Pour conclure, il faut calculer les valeurs des ei. Il suffit maintenant de r´esoudre les ´equations en deg(σ) inconnues:

e(αl) = y(αl), 1 ≤ l ≤ 2t

(28)

Chapter 4

Codes de Reed-Muller et fonctions bool´eennes

4.1 Fonctions bool´eennes

D´efinition 14 Une fonction bool´eenne `a m variables est une fonction f : Fm2 → F2.

Notons xi l’application qui `a y ∈ Fm2 associe sa i-`eme coordonn´ee yi. Les expressions x1+x2, x1x2, et, de fac¸on plus g´en´erale, toute expression polynomiale en les xi, d´efinissent une fonction bool´eenne. Remarquons que x2i = xipuisqu’on est sur F2, donc il est inutile d’introduire des exposants plus grands que 1. La proposition suivante montre que l’on d´ecrit ainsi toutes les fonctions bool´eennes.

Proposition 10 L’espace F des fonctions bool´eennes `a m variables est un F2- espace vectoriel de dimension n = 2m. Pour I ⊂ {1, . . . , m}, notons xI = Q

i∈Ixi. Toute fonction bool´eenne f a une ´ecriture unique sous la forme

f = X

I⊂{1,2,...,m}

aIxI = X

1≤i1<i2<···<is≤m

ai1,...,isxi1. . . xis. Le plus grand cardinal de I pour lequel aI 6= 0 s’appelle le degr´e de f .

Preuve: Notons δy la fonction bool´eenne d´efinie par δy(y) = 1, δy(x) = 0 si x 6= y. Clairement, pour toute fonction bool´eenne f , on a f = P

y∈Fm2 f (y)δy, et les δy forment une base de l’espace des fonctions bool´eennes qui est donc de dimension n = 2m.

(29)

D’autre part, on peut exprimer les fonctions δy alg´ebriquement en les xi:

δy =

m

Y

i=1

(xi+ yi+ 1).

Donc les monˆomes xi1. . . xis engendrent bien l’espace F ; comme il y en a ex- actementPm

s=0 m

s = 2m, ils forment une base de F .

4.2 Codes de Reed-Muller

Soit n = 2m. On met en bijection les entiers de 0 `a n − 1 et les ´el´ements de Fm2 via l’´ecriture binaire d’un nombre: on identifie donc k ∈ {0, . . . n − 1} et k ∈ Fm2 , o`u k = 2m−1k1+ 2m−2k2+ · · · + km. Pour all´eger les notations, on note indiff´eremment k = k.

Il y a alors (au moins) trois fac¸ons de voir un ´el´ement de Fn2:

• Comme un n-uplet u = (u0, u1, . . . , un−1) ∈ Fn2

• Comme une fonction bool´eenne f , d´efinie par: f (x) = ux,

• Comme un sous-ensemble A ⊂ Fm2 , correspondant aux coordonn´ees ´egales

`a 1: A = {x ∈ Fm2 | ux = 1}.

D´efinition 15 Le code de Reed-Muller R(r, m) est le code binaire engendr´e par les ´el´ements de Fn2 associ´es aux fonctions bool´eennes: xI telles que |I| ≤ m.

Exemples: le code R(1, 3) est engendr´e par les lignes de :

1 1 1 1 1 1 1 1 1

x1 0 0 0 0 1 1 1 1 x2 0 0 1 1 0 0 1 1 x3 0 1 0 1 0 1 0 1 Le code R(2, 3) est engendr´e par les lignes de :

1 1 1 1 1 1 1 1 1

x1 0 0 0 0 1 1 1 1 x2 0 0 1 1 0 0 1 1 x3 0 1 0 1 0 1 0 1 x1x2 0 0 0 0 0 0 1 1 x1x3 0 0 0 0 0 1 0 1 x2x3 0 0 0 1 0 0 0 1

(30)

Th´eor`eme 6 Le code R(r, m) a les propri´et´es suivantes:

1. Sa dimension est 1 + m1 + · · · + mr.

2. Sa distance minimale est 2m−r 3. R(r, m) = R(m − r − 1, m).

4. AGL(m, 2) ⊂ Aut(R(r, m)).

Preuve: Seule la distance minimale est un peu difficile, on la d´emontre en dernier.

On a vu que les xIsont lin´eairement ind´ependants, donc le calcul de la dimension de R(r, m) revient `a compter les xI ∈ R(r, m).

Posons Ai := {u ∈ Fm2 | xi(u) = 1}. Clairement, Ai est un sous-espace affine de Fm2 de codimension 1. Plus g´en´eralement, AI := {xi = 1, i ∈ I} est un sous-espace affine de codimension |I| (AI = ∩i∈IAi). Le produit scalaire des deux mots associ´es `a xI et xJ v´erifie: xI · xJ = wt(xI∪J) mod 2. Or un espace affine est de cardinal pair (plus pr´ecis´ement une puissance de 2 bien sˆur), sauf s’il est r´eduit `a un point. Cela arrive seulement pour I ∪ J = {1, 2, . . . , m}. Donc xI · xJ = 0 pour |I| ≤ r et |J | ≤ m − r − 1, ce qui prouve que R(m − r − 1, m) ⊂ R(r, m). Le calcul de leurs dimensions respectives conclut `a l’´egalit´e R(m − r − 1, m) = R(r, m).

Le groupe AGL(m, 2) est le groupe des transformations affines sur Fm2 . Il op`ere donc par permutation des n coordonn´ees de Fn2: si φ ∈ AGL(m, 2), (φ.u)x = uφ(x). Posons y = φ(x); il existe des coefficients ai,jet citels que yi =Pm

j=1ai,jxj+ ci. Explicitons l’action de φ sur les xi: (φ.xi)(x) = xi(φ(x)) = yi =Pm

j=1ai,jxj+ ci. De mˆeme,

(φ.xI)(x) = Q

i∈Iyi = Q

i∈I(Pm

j=1ai,jxj + ci). Ainsi, si |I| ≤ r, φ.xI est de degr´e au plus ´egal `a r, donc φ(R(r, m)) ⊂ R(r, m).

Le poids de xI est ´egal au cardinal de AI, soit `a 2m−|I|. Il reste `a ´evaluer le poids des combinaisons lin´eaires des xI. Pour cela, on utilise le lemme suivant:

Lemme 2 Soit P (t) ∈ F2[t] un polynˆome `a coefficients dans F2. Le poids de P , not´e wt(P (t)), est d´efini comme ´etant le nombre de ses coefficients non nuls. Soit P (t) = P

lbl(1 + t)l. Soit i0le plus petit indice tel que bi0 6= 0. Alors wt(P (t)) ≥ wt((1 + t)i0.

Références

Documents relatifs

Of course, as any dense code is complete, the question of the equivalence between completeness and maximality does not raise (for example, the restricted Dyck code is dense but

Le principe des turbo codes, comme tout code correcteur d'erreur, est d'introduire une redondance dans le message afin de le rendre moins sensible aux bruits et perturbations

On dit qu'un code binaire est pondéré lorsqu'on peut donner à un bit une valeur (un poids) en fonction de sa position dans le nombre ainsi on sait que dans le code binaire naturel,

Les salaires sont très faibles : 58 % des assistantes maternelles qui travaillent à temps complet perçoivent moins de 1 250 € nets par mois.. En 2014, le nombre de demandeurs

courantes Actif circulant hors trésorerie Passif circulant hors trésorerie Cycle de trésorerie Trésorerie – Actif Trésorerie - Passif Ce découpage permet de calculer

On peut donc utiliser la transform´ee de Walsh rapide pour calculer les fonctions affines les plus proches d’une fonction bool´eenne donn´ee.. La recherche de fonc- tions

On obtient ainsi une relation lin´eaire entre les bits de K; si la longueur de K est m, il faut en trouver m lin´eairement ind´ependantes pour d´eterminer K, ou du moins

Combinatorics on Words and Tilings Workshop Montr´ eal – April 2017...