108
Introduction à la Théorie de l’Information et au Codage Marc Lelarge 22 mai 2012

Introduction à la Théorie de l'Information et au Codage

Embed Size (px)

Citation preview

Page 1: Introduction à la Théorie de l'Information et au Codage

Introduction à la Théorie del’Information et au Codage

Marc Lelarge

22 mai 2012

Page 2: Introduction à la Théorie de l'Information et au Codage

2

Page 3: Introduction à la Théorie de l'Information et au Codage

Table des matières

1 Suites typiques et compression de données avec pertes 7

1.1 Entropie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.2 Ensemble typique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.3 Codage de source avec perte . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.4 Convexité et propriétés de l’entropie . . . . . . . . . . . . . . . . . . . . . 11

1.5 Entropie conditionnelle et Information mutuelle . . . . . . . . . . . . . . . 12

1.6 Test d’hypothèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.7 Exercice : Définition axiomatique de l’entropie . . . . . . . . . . . . . . . . 15

2 Codage pour des sources discrètes 17

2.1 Mots code de longueur variable . . . . . . . . . . . . . . . . . . . . . . . . 17

2.2 Un théorème de codage de source . . . . . . . . . . . . . . . . . . . . . . . 20

2.3 Un codage optimal : le codage de Huffman . . . . . . . . . . . . . . . . . . 21

2.3.1 Cas du code binaire : D = 2 . . . . . . . . . . . . . . . . . . . . . . 21

2.3.2 Extension au cas D > 2 . . . . . . . . . . . . . . . . . . . . . . . . 23

2.4 Exercice : un test pour les codes non-ambigus . . . . . . . . . . . . . . . . 24

3 Codage de source universel 27

3.1 Codage universel pour une suite binaire . . . . . . . . . . . . . . . . . . . 27

3.2 Codage par automates à états finis . . . . . . . . . . . . . . . . . . . . . . 29

3.3 Algorithme de Lempel-Ziv . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.4 Exercice : optimalité de l’algorithme de Lempel-Ziv pour une source sansmémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4 Propriétés de l’entropie et de l’information mutuelle 37

4.1 Rappels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.2 Règles de la chaîne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.3 Inégalités de convexité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.3.1 Inégalité logsum et applications . . . . . . . . . . . . . . . . . . . . 41

4.4 Data Processing inequality . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.5 Inégalité de Fano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.6 Exercice : Lien entre théorie de l’information et courses de chevaux . . . . 44

3

Page 4: Introduction à la Théorie de l'Information et au Codage

4 TABLE DES MATIÈRES

5 Canaux discrets sans mémoire et leurs fonctions capacité-coût 475.1 Définitions et codes sans erreur . . . . . . . . . . . . . . . . . . . . . . . . 475.2 Inégalité de Fano et réciproque du théorème de codage de canal . . . . . . 495.3 La fonction capacité-coût . . . . . . . . . . . . . . . . . . . . . . . . . . . 505.4 Réciproque du théorème de codage de canal avec coût . . . . . . . . . . . 535.5 Le théorème de codage de canal . . . . . . . . . . . . . . . . . . . . . . . . 545.6 Exercice : Canal avec feedback . . . . . . . . . . . . . . . . . . . . . . . . 58

6 Sources sans mémoire et leurs fonctions taux-distorsion 616.1 La fonction taux-distorsion . . . . . . . . . . . . . . . . . . . . . . . . . . 616.2 Théorème de codage de source de Shannon . . . . . . . . . . . . . . . . . . 64

7 Le théorème de codage source-canal 67

8 Codes linéaires 718.1 Décodage par maximum de vraisemblance . . . . . . . . . . . . . . . . . . 718.2 Géométrie de Hamming . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728.3 Codes linéaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738.4 Codes de Hamming (binaires) . . . . . . . . . . . . . . . . . . . . . . . . . 748.5 Décodage du syndrome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

9 Codes cycliques 779.1 Propriétés générales des codes cycliques . . . . . . . . . . . . . . . . . . . 779.2 Classification des codes binaires cycliques de longueur 7 . . . . . . . . . . 81

10 Corps finis 8310.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8310.2 Polynômes minimaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8410.3 Comment trouver des polynômes irréductibles . . . . . . . . . . . . . . . . 8810.4 Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

11 Codes BCH (Bose-Chaudhuri-Hocquenghem) 9111.1 Code de Hamming cycliques . . . . . . . . . . . . . . . . . . . . . . . . . . 9111.2 Codes BCH corrigeant 2 erreurs . . . . . . . . . . . . . . . . . . . . . . . . 9211.3 Facteurs de X

n − 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9411.4 Codes BCH corrigeant t erreurs . . . . . . . . . . . . . . . . . . . . . . . . 9511.5 Codes de Reed-Solomon . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9711.6 Le polynôme de Mattson-Solomon . . . . . . . . . . . . . . . . . . . . . . 9811.7 Décodage de codes BCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10111.8 Forme usuelle des identités de Newton et décodage de codes BCH . . . . . 10111.9 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

Page 5: Introduction à la Théorie de l'Information et au Codage

TABLE DES MATIÈRES 5

Notations

Pour des variables aléatoires (v.a.) discrètes X et Y à valeurs dans X et Yresp., on utilisera les notations suivantes pour x ∈ X et y ∈ Y :

p(x) = P (X = x)

p(y) = P (Y = y)

p(x, y) = P (X = x, Y = y)

p(x|y) = P (X = x|Y = y) = p(x, y)/p(y).

Lorsque ces notations sont ambigues, on pourra écrire pX(x), pY (y), pX,Y (x, y), pX|Y (x|y).

Page 6: Introduction à la Théorie de l'Information et au Codage

6 TABLE DES MATIÈRES

Page 7: Introduction à la Théorie de l'Information et au Codage

Chapitre 1

Suites typiques et compression dedonnées avec pertes

1.1 Entropie

Une source (discrète) émet une suite de v.a. Ui∞i=1 à valeurs dans un ensemblefini U appelé l’alphabet de la source. Si les Ui sont indépendants et identiquementdistribués (i.i.d.) de loi P , la source est dite sans mémoire de distribution P .

Définition 1.1.1 Soit U une variable aléatoire à valeurs dans un ensemble finiU , de distribution de probabilité :

p(u) = P (U = u), u ∈ U .

Son entropie est, par définition, la quantité

H(U) = −E [log(p(U))] = −∑

u∈Up(u) log p(u) ,

avec la convention 0 log 0 = 0.

Le choix de la base du logarithme correspond à un choix d’unité. Sauf mention ducontraire, on choisit par défaut la base 2. L’entropie s’exprime alors en bits.

7

Page 8: Introduction à la Théorie de l'Information et au Codage

8CHAPITRE 1. SUITES TYPIQUES ET COMPRESSION DE DONNÉES AVEC PERTES

1.2 Ensemble typique

Définition 1.2.1 Pour n ∈ N et δ > 0, l’ensemble typique Anδ par rapport à la

distribution p(u) est l’ensemble des suites (u1, . . . , un) ∈ Un telles que :

2−n(H(U)+δ) ≤ p(u1, . . . , un) ≤ 2−n(H(U)−δ).

Théorème 1.2.1 Pour tout n ∈ N, δ > 0, on a :

1. Si (u1, . . . , un) ∈ A(n)δ alors

H(U)− δ ≤ −1

nlog p(u1, . . . , un) ≤ H(U) + δ.

2. Pour tout ǫ > 0 et pour n suffisament grand, on a :

P(

A(n)δ

)

= P(

(U1, . . . , Un) ∈ A(n)δ

)

≥ 1− ǫ.

3. le cardinal de l’ensemble A(n)δ est borné par :

∣∣∣A

(n)δ

∣∣∣ ≤ 2n(H(U)+δ),

et pour tout ǫ > 0, pour n suffisament grand, ce cardinal est minoré par :

∣∣∣A

(n)δ

∣∣∣ ≥ (1− ǫ)2n(H(U)−δ).

Remarque 1.2.1 Le point 3. du Théorèm entraine directement :

H(U)− δ ≤ lim infn→∞

log∣∣∣A

(n)δ

∣∣∣

n≤ lim sup

n→∞

log∣∣∣A

(n)δ

∣∣∣

n≤ H(U) + δ.

Démonstration. Le point 1 est une application directe de la définition. Le point2 découle de la loi faible des grands nombres en écrivant :

−1

nlog p (U1, U2, . . . , Un) = −

1

n

n∑

i=1

log p(Ui),

qui est une somme de v.a. i.i.d. de moyenne −E [log p(U)] = H(U).

Page 9: Introduction à la Théorie de l'Information et au Codage

1.3. CODAGE DE SOURCE AVEC PERTE 9

Pour la première partie du point 3, on écrit :

1 =∑

(u1,...,un)∈Un

p(u1, . . . , un) ≥∑

(u1,...,un)∈A(n)δ

p(u1, . . . , un) ≥∣∣∣A

(n)δ

∣∣∣ 2−n(H(U)+δ),

où la dernière inégalité provient de la définition de l’ensemble typique.Pour la seconde partie du point 3, on a grâce au point 2 pour n suffisament

grand :

1− ǫ ≤ P(

A(n)δ

)

≤∣∣∣A

(n)δ

∣∣∣ 2−n(H(U)−δ).

1.3 Codage de source avec perte

Nous considérons dans ce chapitre une notion très générale de codage que nouspréciserons dans le chapitre suivant. Un codage binaire est une paire de fonctions

f : Uk → 0, 1n, et φ : 0, 1n → Uk.

Pour une source donnée, la probabilité d’erreur du code (f, φ) est

e(f, φ) := P (φ(f(U (k))) 6= U (k)),

avec U (k) = (U1, . . . , Uk) les k premiers symboles émis par la source.

Le but est de trouver des codes avec un ratio n/k petit et une probabilité d’erreurpetite. Plus précisément, pour tout k, soit n(k, ǫ) le plus petit entier n tel qu’ilexiste un (k, n)-code satisfaisant e(f, φ) ≤ ǫ.

Théorème 1.3.1 Pour une source discrète sans mémoire de distribution P (U =u) = p(u), on a pour tout ǫ ∈ (0, 1) :

limk→∞

n(k, ǫ)

k= H(U) = −

u∈Up(u) log p(u).

Démonstration. L’existence d’un (k, n)-code binaire avec e(f, φ) ≤ ǫ est équiva-lente à l’existence d’un ensemble A ⊂ Uk avec P (A) ≥ 1 − ǫ et |A| ≤ 2n. A estalors l’ensemble des suites u(k) ∈ Uk reproduites de manière exacte, c.a.d. tellesque φ(f(u(k))) = u(k).

Page 10: Introduction à la Théorie de l'Information et au Codage

10CHAPITRE 1. SUITES TYPIQUES ET COMPRESSION DE DONNÉES AVEC PERTES

Soit s(k, ǫ) la taille mimimale d’un ensemble A ⊂ Uk avec P (A) ≥ 1− ǫ, c.a.d

s(k, ǫ) = min|A|; P (A) ≥ 1− ǫ.

Pour prouver le théorème, il suffit de montrer que pour ǫ ∈ (0, 1),

limlog s(k, ǫ)

k= H(U). (1.1)

Pour tout δ > 0, en prenant A = A(k)δ l’ensemble typique pour la source p(u),

on a pour k suffisament grand P(

A(k)δ

)

≥ 1− ǫ et donc :

s(k, ǫ) ≤ |A(k)δ | ≤ 2k(H(U)+δ),

donc

lim supk

log s(k, ǫ)

k≤ H(U). (1.2)

Inversement, pour tout A ⊂ Uk avec P (A) ≥ 1− ǫ > 0, le point 2 du Théorème

1.2.1 implique que pour k suffisament grand P(

A(k)δ

)

≥ 1+ǫ2

et donc

P (A ∩A(k)δ ) ≥ P (A)− (1− P

(

A(k)δ

)

) ≥ 1− ǫ

2.

On a donc par définition de A(k)δ ,

|A| ≥ |A ∩ A(k)δ | ≥

u(k)∈A∩A(k)δ

p(u(k))2k(H(U)−δ) ≥ 1− ǫ

22k(H(U)−δ),

et donc pour tout δ > 0,

lim infk→∞

1

klog s(k, ǫ) ≥ H(U)− δ.

Ceci, avec (1.2), implique (1.1).

Corollaire 1.3.1

0 ≤ H(U) ≤ log |U|

Page 11: Introduction à la Théorie de l'Information et au Codage

1.4. CONVEXITÉ ET PROPRIÉTÉS DE L’ENTROPIE 11

1.4 Convexité et propriétés de l’entropie

Lemme 1.4.1 Si (pi : 1 ≤ i ≤ n) est une distribution de probabilité alors leminimum de la fonction

G(q1, . . . , qn) = −∑

pi log qi,

sur toutes les distributions de probabilité (q1, . . . , qn) est atteint uniquement pourqk = pk, 1 ≤ k ≤ n.

Démonstration. En utilisant l’inégalité de convexité log z ≤ (z − 1) log e qui estune égalité uniquement lorsque z = 1, on obtient :

log

(qkpk

)

≤(qkpk− 1

)

log e,

avec égalité si et seulement si qk = pk. On a donc

G(p1, . . . , pn)−G(q1, . . . , qn) =∑

k

pk log

(qkpk

)

≤ log e∑

k

(qk − pk) = 0.

On en déduit facilement les théorème suivants :

Théorème 1.4.1 Pour tout n, H(p1, . . . , pn) ≤ logn, avec égalité si et seulementsi p1 = p2 = · · · = pn = 1/n.

Démonstration. D’après le lemme précédent, on a :

H(p1, . . . , pn) = G(p1, . . . , pn) ≤ G(1/n, . . . , 1/n) = log n,

avec égalité si et seulement si pi = 1/n pour tout 1 ≤ i ≤ n.

Théorème 1.4.2 Si X et Y sont des v.a. (discrètes) alors H(X, Y ) ≤ H(X) +H(Y ), avec égalité si et seulement si X et Y sont indépendantes.

Démonstration. On a

H(X) +H(Y ) = −∑

x

p(x) log p(x)−∑

y

p(y) log p(y)

= −∑

x,y

p(x, y) log p(x)−∑

x,y

p(x, y) log p(y)

= −∑

x,y

p(x, y) log p(x)p(y).

Page 12: Introduction à la Théorie de l'Information et au Codage

12CHAPITRE 1. SUITES TYPIQUES ET COMPRESSION DE DONNÉES AVEC PERTES

Donc par le Lemme 1.4.1, on a

H(X, Y ) = −∑

x,y

p(x, y) log p(x, y) ≤ −∑

x,y

p(x, y) log p(x)p(y) = H(X) +H(Y ),

avec égalité si et seulement si p(x, y) = p(x)p(y), c’est à dire si X et Y sontindépendantes.

1.5 Entropie conditionnelle et Information mutuelle

Étant donné une v.a. X sur un espace de probabilité Ω et A un événementdans Ω, on définit l’entropie conditionnelle de X sachant A par

H(X|A) = −m∑

k=1

P (X = xk|A) logP (X = xk|A).

De la même manière si Y est une autre v.a., on définit l’entropie conditionnelle deX sachant Y par

H(X|Y ) =

m∑

j=1

H(X|Y = yj)P (Y = yj)

= −∑

x,y

p(x, y) log p(x|y).

Il est facile de vérifier les propriétés suivantes :

H(X|X) = 0

H(X|Y ) = H(X) si X et Y sont indépendantes

H(X|Y ) = 0 si et seulement si X = g(Y ) pour une fonction g.

Pour la dernière propriété, il suffit d’écrire H(X|Y ) =∑

H(X|Y = yi)P (Y = yi)donc pour que H(X|Y ) = 0, il faut que H(X|Y = yi) = 0 pour chaque i, c’est àdire qu’il existe xi tel que P (X = xi|Y = yi) = 1. Donc X est déterminé par Y .

L’entropie d’une paire (X, Y ) ne nécessite pas de nouvelle définition ! On no-tera H((X, Y )) = H(X, Y ). La différence H(X, Y ) − H(X) mesure la quantitéd’information supplémentaire sur le couple (X, Y ) donnée par Y si X est déjàconnu. Comme montré dans le théorème suivant, cette différence est l’entropieconditionnelle de Y sachant X.

Théorème 1.5.1 Pour toute paire de v.a. X, Y , on a H(X, Y ) = H(Y )+H(X|Y ).

Page 13: Introduction à la Théorie de l'Information et au Codage

1.6. TEST D’HYPOTHÈSE 13

Démonstration. On écrit

H(X, Y ) = −∑

x,y

p(x, y) log p(x, y)

= −∑

x,y

p(x, y) log p(y)p(x|y)

= −∑

y

p(y) log p(y)−∑

x,y

p(x, y) log p(x|y),

ce qui est l’égalité souhaitée.

Corollaire 1.5.1 Pour toute paire de v.a. X, Y , H(X|Y ) ≤ H(X) avec égalité siet seulement si X et Y sont indépendantes.

Démonstration. On a H(X|Y ) = H(X, Y )−H(Y ) et H(X, Y ) ≤ H(X)+H(Y )avec égalité si et seulement si X et Y sont indépendantes. Le résultat en découle.

Définition 1.5.1 L’information mutuelle entre X et Y est définie par

I(X ; Y ) = H(Y )−H(Y |X) = H(X)−H(X|Y ) = H(X) +H(Y )−H(X, Y ).

L’information mutuelle entre X et Y correspond à la diminution d’incertitude surY causée par la connaissance de X, c’est à dire la quantité d’information sur Ycontenue ’dans’ X. Elle est symmétrique en X et Y .

1.6 Test d’hypothèse

Problème : décider entre deux distributions P et Q à partir d’un échantillonde taille k, c.a.d. le résultat de k tirages indépendants. Un test est défini par unensemble A ⊂ Uk : si l’échantillon (U1, . . . , Uk) appartient à A alors le test retournel’hypothèse P sinon Q.

On considère un scénario où les hypothèses ne sont pas symmétriques. On désireune probabilité d’erreur au plus ǫ si P est la vraie distribution, c.a.d. P (A) ≥ 1−ǫ.Le but est alors de minimiser la probabilité d’erreur si l’hypothèse Q est vraie, c.a.d

β(k, ǫ) = minQ(A), t.q. A ⊂ Uk, P (A) ≥ 1− ǫ.

Théorème 1.6.1 Pour tout ǫ ∈ (0, 1), on a

limk→∞

1

klog β(k, ǫ) = −

u∈Up(u) log

p(u)

q(u).

Page 14: Introduction à la Théorie de l'Information et au Codage

14CHAPITRE 1. SUITES TYPIQUES ET COMPRESSION DE DONNÉES AVEC PERTES

Définition 1.6.1 L’entropie relative ou distance de Kullback-Leibler entre deuxdistributions p et q est définie par :

D(p‖q) = Ep

[

logp(U)

q(U)

]

=∑

u∈Up(u) log

p(u)

q(u),

avec les conventions 0 log 00= 0, 0 log 0

q= 0 et p log p

0=∞.

Pour deux distributions p et q telles que p(u)q(u) > 0 pour tout u ∈ U , ondéfinit l’ensemble An

δ (p‖q) par l’ensemble des suites (u1, . . . , un) ∈ Un telles que :

2−n(D(p‖q)+δ) ≤ q(u1, . . . , un)

p(u1, . . . , un)≤ 2−n(D(p‖q)−δ).

Théorème 1.6.2 Si p(u)q(u) > 0 pour tout u ∈ U , pour tout n ∈ N et δ > 0, ona :

1. Si (u1, . . . , un) ∈ A(n)δ (p‖q) alors

D(p‖q)− δ ≤ 1

nlog

p(u1, . . . , un)

q(u1, . . . , un)≤ D(p‖q) + δ.

2. Pour tout ǫ > 0 et pour n suffisament grand, on a :

P(

A(n)δ (p‖q)

)

≥ 1− ǫ.

3. Pour tout ǫ > 0 et pour n suffisament grand, on a :

(1− ǫ)2−n(D(p‖q)+δ) ≤ Q(

A(n)δ (p‖q)

)

≤ 2−n(D(p‖q)−δ).

Démonstration. La démonstration est similaire à celle pour l’ensemble typique.Le premier point découle de la définition et le point 2 de la loi faible des grandsnombres. Pour le point 3, on écrit :

Q(

A(n)δ (p‖q)

)

=∑

(u1,...,un)∈A(n)δ

(p‖q)

q(u1, . . . , un)

≤∑

(u1,...,un)∈A(n)δ

(p‖q)

p(u1, . . . , un)2−n(D(p‖q)−δ) ≤ 2−n(D(p‖q)−δ),

et pour l’autre borne :

Q(

A(n)δ (p‖q)

)

≥∑

(u1,...,un)∈A(n)δ

(p‖q)

p(u1, . . . , un)2−n(D(p‖q)+δ) ≥ (1− ǫ)2−n(D(p‖q)+δ),

Page 15: Introduction à la Théorie de l'Information et au Codage

1.7. EXERCICE : DÉFINITION AXIOMATIQUE DE L’ENTROPIE 15

où la dernière inégalité découle du point 2.

Intuitivement, l’ensemble A(n)δ (p‖q) permet de distinguer les distributions p

et q : si la suite est tirée selon P , alors elle appartient avec grande probabilitéà A

(n)δ (p‖q) tandis que si elle est tirée selon Q, la probabilité d’appartenance à

A(n)δ (p‖q) décroît exponentiellement vite vers zéro.

Démonstration.(du Théorème 1.6.1)Le cas p(u)q(u) > 0 pour tout u ∈ U découle directement du théorème précédent.En effet, on a directement,

1

klog s(k, ǫ) ≤ 1

klogQ

(

A(n)δ (p‖q)

)

≤ −D(p‖q) + δ.

Inversement, pour tout A ⊂ Uk avec P (A) ≥ 1−ǫ, on a P(

A ∩A(k)δ (p‖q)

)

≥ 1−2ǫpour k suffisament grand et donc

Q(A) ≥ Q(

A ∩ A(k)δ (p‖q)

)

≥ (1− 2ǫ)2−k(D(p‖q)+δ).

On a donc 1klog s(k, ǫ) ≥ 1

klog(1− 2ǫ)−D(p‖q)− δ.

1.7 Exercice : Définition axiomatique de l’entropie

Étant donné une distribution de probabilité p1, . . . , pn, on cherche une fonctionH(p1, . . . , pn) quantifiant “l’incertitude” associée à cette distribution. On postuleles conditions suivantes pour la fonction H :

(A1) H(p1, . . . , pn) est maximum pour p1 = p2 = · · · = pn = 1/n.

(A2) H est une fonction symétrique en ses arguments.

(A3) H(p1, . . . , pn) ≥ 0 avec égalité quand un des pi vaut 1.

(A4) H(p1, . . . , pn, 0) = H(p1, . . . , pn).

(A5) H(1n, . . . , 1

n

)≤ H

(1

n+1, . . . , 1

n+1

).

(A6) la fonction H est continue.

(A7) pour des entiers m et n,

H

(1

mn, . . . ,

1

mn

)

= H

(1

m, . . . ,

1

m

)

+H

(1

n, . . . ,

1

n

)

.

(A8) pour p = p1 + · · ·+ pm et q = q1 + · · ·+ qn où tous les pi, qi sont positifs. Sip et q sont strictement positifs tels que p+ q = 1, on a :

H (p1, . . . , pm, q1, . . . , qn) = H(p, q) + pH (p1/p, . . . , pm/p) + qH (q1/q, . . . , qn/q) .

Page 16: Introduction à la Théorie de l'Information et au Codage

16CHAPITRE 1. SUITES TYPIQUES ET COMPRESSION DE DONNÉES AVEC PERTES

1. Jusifier les différents axiomes.

2. Montrer que la fonction g(n) = H(1n, . . . , 1

n

)est de la forme g(n) = A lnn

pour un certain A.

3. En déduire la forme de H(p, 1− p) quand p est rationel.

4. Conclure.

Page 17: Introduction à la Théorie de l'Information et au Codage

Chapitre 2

Codage pour des sources discrètes

2.1 Mots code de longueur variable

Définition 2.1.1 Un code de source C pour une variable aléatoire U ∈ U est unefonction de U vers D∗ (l’ensemble des mots finis sur un alphabet D-aire). C(u) estle mot code correspondant à u, et l(u) sa longueur.

Définition 2.1.2 La longueur moyenne L(C) d’un code pour la variable aléatoireU de distribution de probabilité p(u) est :

L(C) =∑

u∈Up(u)l(u)

Remarque 2.1.1 Dans la suite, on supposera sans perte de généralité : D =0, 1, . . . , d− 1.

Exemple 2.1.1: Sur un alphabet binaire, si :

P (U = 1) = 1/2 C(1) = 0

P (U = 2) = 1/4 C(2) = 10

P (U = 3) = 1/8 C(3) = 110

P (U = 4) = 1/8 C(4) = 111

17

Page 18: Introduction à la Théorie de l'Information et au Codage

18 CHAPITRE 2. CODAGE POUR DES SOURCES DISCRÈTES

on a H(U) = 1.75 bits et L(C) = 1.75 bits. Par exemple : 0110111100110 se décodeen 134213.

Définition 2.1.3 Un code C est dit non-ambigu si :

x 6= y ⇒ C(x) 6= C(y).

Définition 2.1.4 L’extension C∗ du code C est la fonction des mots finis de Uvers les mots finis de D définie par

C(u1 . . . un) := C(u1) . . . C(un) (concaténation)

Définition 2.1.5 Un code C est dit uniquement décodable si son extension C∗

est non-ambigüe.

Définition 2.1.6 Un code est dit instantané si aucun mot code n’est le préfixed’un autre mot code.

Exemple 2.1.2: Parmi les codes suivants :

U code 1 code 2 code 31 0 10 02 010 00 103 01 11 1104 10 110 111

Le code 3 est instantané.Le code 2 est uniquement décodable (il suffit de regarder la parité du nombre de0 après 11).Le code 1 est non-ambigu, mais non uniquement décodable, par exemple 010 peutse décoder par 2, 14 ou 31.

Un code instantané est uniquement décodable. De plus un code instantané peutêtre décodé sans référence aux mots code future puisque la fin d’un mot code estreconnaissable immédiatement.

Théorème 2.1.1 (Inégalité de Kraft) Pour un code instantané sur un alpha-bet de taille D, les longueurs des mots code l1, . . . , lm doivent vérifier :

i

D−li ≤ 1

Inversement, étant donné une suite de longueurs vérifiant cette inégalité, il existeun code instantané avec des mots code ayant ces longueurs.

Page 19: Introduction à la Théorie de l'Information et au Codage

2.1. MOTS CODE DE LONGUEUR VARIABLE 19

Démonstration. Pour prouver le premier point, on peut considérer l’arbre decodage du code C.

Soit lmax la longueur du plus long mot code. Un mot code de longueur li aDlmax−li descendants à la profondeur lmax qui doivent être disjoints des descendantsdes autres mots code par la propriété du préfixe. On a donc :

i

Dlmax−li ≤ Dlmax .

Inversement étant donné des longueurs ℓ1, . . . , ℓm satisfaisant l’inégalité de Kraft,on peut toujours construire un arbre de codage comme précédemment : dans l’arbreD-aire, associer au premier (pour l’ordre lexicographique de l’arbre) noeud deprofondeur l1 le mot code 1 et retirer ses descendants. Associer alors au premiernoeud restant de profondeur l2 le mot code 2 et ainsi de suite.

Théorème 2.1.2 (McMillan) Les longueurs des mots code d’un code D-aireuniquement décodable doivent satisfaire l’inégalité de Kraft.

Une conséquence immédiate est que les codes instantanés seront tout aussiperformants (pour ce qui concerne leurs longueurs) que les codes uniquement dé-codables (et pas moins, comme on aurait pu le penser).

Démonstration. Soit k un entier.On a :

(∑

u∈UD−l(u)

)k

=∑

u1∈U. . .∑

uk∈UD−l(u1)−l(u2)···−l(uk)

=∑

(u1,...,uk)∈Uk

D−l(u1...uk)

=

klmax∑

m=1

A(m)D−m

où :

A(m) = |(u1 . . . uk) ∈ Uk, l(u1 . . . uk) = m|

On a A(m) ≤ Dm car le code est uniquement décodable, et donc :∑

u∈UD−l(u) ≤ (klmax)

1/k

Or (klmax)1/k −−−→

k→∞1, ce qui conclut la preuve

Page 20: Introduction à la Théorie de l'Information et au Codage

20 CHAPITRE 2. CODAGE POUR DES SOURCES DISCRÈTES

2.2 Un théorème de codage de source

Théorème 2.2.1 Etant donné une source discrète à valeurs dans U et d’entropieH(U), et étant donné un alphabet de D symboles pour le code, il est possible decoder chaque lettre de la source de manière instantanée et telle que la longueurmoyenne des mots satisfasse : L(C) < H(U)

logD+ 1.

De plus, pour tout code uniquement décodable : L(C) ≥ H(U)/ logD.

Démonstration. On a :

H(U)− L(C) logD =∑

u

p(u) log1

p(u)−∑

u

p(u)l(u) logD

=∑

u

p(u) logD−l(u)

p(u)

On sait par ailleurs que pour z > 0, log z ≤ (z − 1) log e, on a donc :

H(U)− L(C) ≤ (log e)(∑

u

D−l(u) −∑

u

p(u)

︸ ︷︷ ︸

=1

)

≤ 0par (Mcmillan)

Pour l’autre inégalité, on choisit l(u) tel que D−l(u) ≤ p(u) < D−l(u)+1.On a donc :

u

D−l(u) ≤ 1

D’après l’inégalité de Kraft, il existe donc un code instantané avec ces longueurs,de plus

log p(u) < (−l(u) + 1) logD

l(u) <− log p(u)

logD+ 1

et

L(C) =∑

p(u)l(u) <H(U

logD+ 1

Théorème 2.2.2 Pour une source discrète sans mémoire d’entropie H(U) et unalphabet à D symboles, il est possile de coder les suites de k lettres de la source desorte que :

Page 21: Introduction à la Théorie de l'Information et au Codage

2.3. UN CODAGE OPTIMAL : LE CODAGE DE HUFFMAN 21

1. La propriété du préfixe soit satisfaite

2. La longueur moyenne des mots code par lettre source vérifie :

H(U)/ logD ≤ Lk/k < H(U)/ logD + 1/k

où Lk =∑

u1...ukl(u1 . . . uk)p(u1 . . . uk)

Démonstration. Il suffit de vérifier que H(U (k)) = kH(U), et le résultat découledu théorème précédent.

On a bien H(U (k)) =∑

u1...ukp(u1 . . . uk) log p(u1 . . . uk) et par la propriété sans

mémoire de la source, p(u1 . . . uk) = p(u1) . . . p(uk), d’où le résultat.

2.3 Un codage optimal : le codage de Huffman

On présente ici le codage de Huffman. Il est optimal en ce sens qu’il n’existepas de code uniquement décodable avec une longueur moyenne inférieure.

Dans toute la suite, on se restreint aux codes instantnés sans perte de généralitépar l’inégalité de McMillan.

2.3.1 Cas du code binaire : D = 2

On suppose que U = U1, . . . , Uk, avec p(u1) ≥ p(u2) ≥ · · · ≥ p(uk).

Lemme 2.3.1 Pour tout k ≥ 2, un code binaire optimal existe pour lequel lesmots code les moins probables C(uk) et C(uk−1) ont la même longueur et diffèrentpar le dernier bit. (disons que C(uk) finit par 1 et C(uk−1) par 0)

Démonstration. Si l(uk) < maxi l(ui) := l(uj) alors on obtient un meilleur codeen interchangeant les mots codant uk et uj. En effet, on change L(C) de :

∆ = p(uj)l(uk) + p(uk)l(uj)− p(uk)l(uk)− p(uj)l(uj)

= (p(uj)− p(uk))(l(uk)− l(uj)) ≤ 0.

On peut donc supposer l(uk) = maxi l(ui).Si maintenant C(uk) est le seul mot de longueur l(uk), on obtient un meilleur

code instantané en tronquant les derniers bits de C(uk). Donc il existe ui telque l(ui) = l(xk) et C(ui) et C(uk) diffèrent dans le dernier digit. Donc l(ui) ≥l(uk−1) et par le même argument que précédemment, interchanger C(ui) et C(uk−1)n’augmente pas L(C).

Page 22: Introduction à la Théorie de l'Information et au Codage

22 CHAPITRE 2. CODAGE POUR DES SOURCES DISCRÈTES

On a donc réduit le problème de construction d’un code optimal à celui deconstruire C(u1), . . . , C(uk−2) et trouver les l(uk)− 1 premiers digits de C(uk).

On définit maintenant l’ensemble réduit : U ′ = u′1, . . . , u

′k−1 avec la v.a U ′

associée : p(u′j) = p(uj) si j ≤ k − 2 et p(u′

k−1) = p(uk) + p(uk−1).Il y a une bijection entre les codes instantanés pour U ′ et les codes instantanés

pour U pour lesquels C(uk) et C(uk−1) ne diffrent que par le dernier digit, C(uk)finissant par un 1 et C(uk−1) par un 0.

Lemme 2.3.2 Si un code instantané est optimal pour U ′, le code instantané cor-respondant pour U est optimal.

Démonstration.

l(uj) =

l(u′

j) si j ≤ k − 2l(u′

k−1) + 1 si j ≥ k − 1

Donc,

L(C) =∑

p(uj)l(uj)

=∑

j≤k−2

p(u′j)l(u

′j) + (p(uk−1) + p(uk))(l(u

′k−1) + 1)

Or p(uk−1) + p(uk) = p(u′k−1), donc :

L(C) = L(C ′) + p(u′k−1).

Comme p(u′k−1) ne dépend pas de C ′, on peut minimiser L(C) sur la classe des

codes où C(uk) et C(uk−1) ne diffèrent que sur le dernier digit en minimiasantL(C ′). Par le lemme 2.3.1, un tel code minimise L(C) sur tous les codes instantanés.

Application On construit donc l’arbre de codage de Huffman de proche enproche en rassemblant à chaque étape les deux noeuds de plus faible probabilitéet en affectant la somme de ces probabilités au noeud père.

Voici un exemple :

mot code message p(uk)00 u1 0.301 u2 0.2510 u3 0.25110 u4 0.1111 u5 0.1

Page 23: Introduction à la Théorie de l'Information et au Codage

2.3. UN CODAGE OPTIMAL : LE CODAGE DE HUFFMAN 23

2.3.2 Extension au cas D > 2

On définit un arbre de codage complet comme un arbre de codage pour lequeltous les noeuds intermédiaires ont D enfants.

Lemme 2.3.3 Le nombre de feuilles dans un arbre de codage complet est de laforme D +m(D − 1) pour un certain entier m.

Démonstration. Le plus petit arbre complet a D feuilles, le second plus petit ena D-1+D (on remplace une feuille de l’arbre précédent par un noeud à D enfants),d’où le résultat par récurrence.

Pour un code instantané, nous complétons son arbre de codage en rajoutant Bfeuilles (non utilisées par le code).

Pour un code optimal, toutes les feuilles non utilisées doivent être au mêmeniveau que le mot code le plus long, et ne diffèrent que par le dernier digit.

Un code optimal doit donc avoir au plus D − 2 feuilles inutilisées.

Si K le nombre de mots code et B le nombre de feuilles inutilisées, on doit avoir :

B +K = m(D − 1) +D et B ≤ D − 2,

donc K − 2 = m(D − 1) + (D − 2− B) et 0 ≤ D − 2− B ≤ D − 2ainsi, B = D − 2− ((K − 2)mod(D − 1)).En suivant le Lemme 2.3.1, un code optimal existe pour lequel les B feuilles

inutilisées et les D−B mots code les moins probables diffèrent par le dernier digit.Donc la première étape consiste à grouper les D −B noeuds les moins probables.Ensuite à chaque itération, l’ensemble réduit est de cardinal D +m(D − 1) et onregroupe les D noeuds les moins probables.

Exemple 2.3.1: Pour D = 3 et K = 6, il faut rajouté 1 feuille inutilisée et onobtient dans cet exemple :

mot code message p(uk)0 u1 0.41 u2 0.320 u3 0.221 u4 0.05220 u5 0.03221 u6 0.02

Page 24: Introduction à la Théorie de l'Information et au Codage

24 CHAPITRE 2. CODAGE POUR DES SOURCES DISCRÈTES

2.4 Exercice : un test pour les codes non-ambigus

Le but de cet exercice est de donner un algorithme qui permet de vérifier si uncode est non-ambigu. Voici un exemple d’un code binaire ambigu :

C = 1, 011, 01110, 1110, 10011. (2.1)

Le mot w = 011101110011 a deux factorisations :

w = (01110)(1110)(011) = (011)(1)(011)(10011).

L’alphabet D-aire est noté D. L’ensemble des mots sur D est noté D∗. Pourx, y ∈ D∗, on définit :

x−1y = z ∈ D∗; xz = y et, xy−1 = z ∈ D∗; x = zy.

Pour des ensembles X, Y de D∗, on étend ces définitions comme suit :

X−1Y = ∪x∈X ∪y∈Y x−1y et, XY −1 = ∪x∈X ∪y∈Y xy−1.

Les puissances de X sont définies par X0 = e où e est le mot vide, X1 = X etXn+1 = XXn = xy, x ∈ X, y ∈ Xn, pour n ≥ 1.

On voit un code D-aire C comme un sous-ensemble de D+ = D∗−e. On définitalors

U1 = C−1C − e,

Un+1 = C−1Un ∪ U−1n C, pour n ≥ 1.

Nous allons montrer le théorème suivant :

Théorème 2.4.1 Le code C ⊂ D+ est un code non-ambigu si et seulement siaucun des ensembles Un définis ci-dessus ne contient le mot vide.

1) Ecrire U1, U2, U3 pour le code binaire donné par (2.1). Que vaut U1 pourun code instantané ? Que valent les Un pour l’exemple de code binaire vu encours : 10, 00, 11, 110 ?

2) Montrer par induction sur k que : pour tout n ≥ 1 et k ∈ 1, . . . , n, on ae ∈ Un ssi il existe un mot u ∈ Uk et des entiers i, j ≥ 0 tels que :

uC i ∩ Cj 6= ∅ et i+ j + k = n. (2.2)

3) En déduire le Théorème 2.4.1.

Page 25: Introduction à la Théorie de l'Information et au Codage

2.4. EXERCICE : UN TEST POUR LES CODES NON-AMBIGUS 25

1) Pour le code donné par (2.1), on a :

U1 = 10, 110, 0011, C−1U1 = 0, 10, U−11 C = 011;

U2 = 0, 10, 011, C−1U2 = 0, e, U−12 C = 11, 110, 011, e, 10.

donc e ∈ U3 et C est ambigu.Pour un code instantané, on a U1 = ∅.Pour l’exemple vu en cours, on a U1 = Un = 0.

2) On fait une induction décroissante sur k. Pour k = n : si e ∈ Un, il suffit deprendre u = e, i = j = 0. Inversement si (11.2) est vérifiée pour k = n, on ai = j = 0 et donc u = e.Soit n > k ≥ 1, on suppose que l’equivalence est vraie pour n, n−1, . . . , k+1.Si e ∈ Un alos par induction, il existe v ∈ Uk+1 tel que vx = y avec x ∈ C i

et y ∈ Cj et i+ j + k + 1 = n. Par définition de Uk+1, on a– soit zv = u avec z ∈ C et u ∈ Uk. Dans ce cas, ux = zvx = zy avec x ∈ C i

et zy ∈ Cj+1 donc uC i ∩ Cj+1 6= ∅.– soit z = uv avec z ∈ C et u ∈ Uk. Dans ce cas, zx = uvx = uy aveczx ∈ C i+1 et y ∈ Cj donc C i+1 ∩ uCj 6= ∅.

Dans les deux cas (11.2) est satisfaite.Inversement, supposons qu’il existe u ∈ Uk et i, j ≥ 0 avec

uC i ∩ Cj 6= ∅, i+ j + k = n.

On peut donc écrire : ux1x2 . . . xi = y1y2 . . . yj. Si j = 0 alors i = 0 et k = n.Pour j ≥ 1, on distingue à nouveau deux cas selon les longueurs respectivesde u et y1 :– si u = y1v pour un v ∈ D+, alors v ∈ C−1Uk ⊂ Uk+1 et de plus vx1x2 . . . xi =y2 . . . yj. Donc vC i ∩ Cj−1 6= ∅ et par l’hypothèse d’induction e ∈ Un.

– si y1 = uv pour un v ∈ D+, alors v ∈ U−1k C ⊂ Uk+1 et x1x2 . . . xi =

vy2 . . . yj. Donc C i ∩ uCj−1 6= ∅ et e ∈ Un.3) Si C est ambigu, alors il existe une relation :

x1x2 . . . xp = y1y2 . . . yq, x1 6= y1.

On peut supposer sans perte de généralité que x1 = y1u pour un u ∈ D+.On a alors u ∈ U1 et uCp−1 ∩ Cq−1 6= ∅, d’où e ∈ Up+q−1.Inversement si e ∈ Un. Prenons k = 1 dans la question précédente : il existeu ∈ U1 et des entiers i, j ≥ 0 tels que uC i ∩ Cj 6= ∅. Comme u ∈ U1, on axu = y pour x, y ∈ C et x 6= y car u 6= e. Il découle de xuC i ∩ xCj 6= ∅ queyC i ∩ xCj 6= ∅ montrant que C est ambigu.

Page 26: Introduction à la Théorie de l'Information et au Codage

26 CHAPITRE 2. CODAGE POUR DES SOURCES DISCRÈTES

Page 27: Introduction à la Théorie de l'Information et au Codage

Chapitre 3

Codage de source universel

On cherche maintenant à trouver un codage pour une une suite quelconque u(n)

sans faire aucune hypothèse probabiliste. Nous commençons par voir un exemplesimple d’un tel codage pour une suite binaire, avant d’étudier l’algorithme deLempel-Ziv.

3.1 Codage universel pour une suite binaire

Pour coder une suite binaire u(n) ∈ 0, 1n, on étudie l’algorithme offline 1 suivant :– envoyer le nombre de 1 dans la suite :

∑ni=0 ui, en ⌈log2(n+ 1)⌉ bits ;

– envoyer l’indice de la suite parmi toutes les suites ayant k 1, en ⌈log(nk

)⌉

bits.

Il faut donc au total :

ℓ(u(n)) ≤ log(n+ 1) + log

(n

k

)

+ 2

On relie cette valeur à l’entropie grâce au lemme suivant.

Lemme 3.1.1 Pour k 6= 0, n, on a√

n

8k(n− k)≤(n

k

)

2−nH( kn) ≤

√n

πk(n− k)

1. un algorithme qui doit lire l’ensemble du message avant de pouvoir commencer le codage

27

Page 28: Introduction à la Théorie de l'Information et au Codage

28 CHAPITRE 3. CODAGE DE SOURCE UNIVERSEL

Démonstration. On rappelle la formule de Stirling :

√2πn

(n

e

)n

≤ n! ≤√2πn

(n

e

)n

exp

(1

12n

)

On note alors k = np et q = 1−p. On rappelle la notation H(p) = −p log(p)−q log(q), de telle sorte que 2−nH(p) = pnpqnq.

On a alors,

(n

k

)

=

(n

np

)

≤√2πn

(ne

)nexp

(1

12n

)

√2πnp

(npe

)np√2πnq

(nqe

)nq

=1√

2πnpq× 1

pnpqnqexp

(1

12n

)

<1√πnp

2nH(p),

Car exp(

112n

)<√2.

De même pour la borne inférieure, on a

(n

np

)

≥√2πn

(ne

)n

√2πnp

(npe

)np√2πnq

(nqe

)nq exp

(

− 1

12np− 1

12nq

)

=1√

2πnpq2nH(p) exp

(

− 1

12np− 1

12nq

)

.

On distingue alors plusieurs cas :– si np ≥ 1 et nq ≥ 3, alors exp(−( 1

12np+ 1

12nq)) ≥ exp(−1

9) >

√π2

,– si np = 1 et nq = 1 alors n = 2 et p = 1

2, la borne vaut 2 et est correcte.

– si np = 1 et nq = 2 alors n = 3 et p = 13, la borne vaut 2.92 et est correcte.

– si np = 2 et nq = 2 alors n = 4 et p = 14, la borne vaut 5.66 et est correcte.

On a donc

ℓ(u(n)) ≤ log(n + 1) + nH

(k

n

)

− 1

2log(n)− 1

2log(π

k

n

n− k

n) + 2

≤ nH

(k

n

)

+1

2log(n)− 1

2log(π

k

n

n− k

n) + 3

Donc le coût pour décrire cette suite est de ≈ 12log(n) bits en plus du coût

optimal de nH(kn

)pour une distribution de Bernoulli correspondant à p = k

n.

Page 29: Introduction à la Théorie de l'Information et au Codage

3.2. CODAGE PAR AUTOMATES À ÉTATS FINIS 29

3.2 Codage par automates à états finis

Nous allons dans un premier temps étudier la compression d’une suite infinie u pardes automates finis. Nous établirons alors une borne sur le taux de compressionde tels algorithmes, avant de montrer que l’algorithme de Lempel-Ziv atteint cetteborne.

Dans toute la suite, chaque symbole de la source appartient à un alphabet finiayant J symboles avec J ≥ 2.

Définition 3.2.1 Un automate à espace d’états fini est composé d’une tête delecture se trouvant dans un certain état (parmi un ensemble fini). L’automate litl’entrée symbole par symbole, chacun d’entre eux entraînant un changement d’étatet l’émission d’un mot, éventuellement vide. Les changements sont régis par unetable de transitions qui est une caractéristique de l’automate.

Pour l’entrée u = u1u2u3 . . . , l’automate produit y = y1y2y3, . . . en visitant lesétats z = z1z2z3 . . . donnés par :

– yk = f(zk, uk) à valeurs 0, 1∗, pour k ≥ 1,– zk+1 = g(zk, uk) à valeurs dans l’espace d’états (fini), pour k ≥ 1.

Les fonctions f et g correspondent à une consultation de la table des transitions.On notera uj

k = ukuk+1 . . . uj et f(zk, ujk) = yjk, g(zk, u

jk) = zj+1.

Le décodeur a connaissance de l’automate et de son état initial. Il doit être capablede reconstruire u à partir de y.

Définition 3.2.2 On dit qu’un encodeur est sans perte d’information, ou SPI, siusr 6= vtr alors pour tout zr on a :

– soit f(zr, usr) 6= f(zr, v

tr),

– soit g(zr, usr) 6= g(zr, v

tr).

Pour un encodeur n’étant pas SPI, il est impossible de retrouver u à partir dey. Notons cependant qu’un encodeur SPI n’est pas nécessairement “uniquementdécodable”, comme le montre l’exemple 3.2.

Nous calculons maintenant une borne inférieure sur le nombre de bits utilisés parsymbole d’entrée pour tout encodeur SPI. Cette borne s’appliquera également auxencodeurs SPI conçus en connaissant U à l’avance, comme le fait l’algorithme deHuffman.

Page 30: Introduction à la Théorie de l'Information et au Codage

30 CHAPITRE 3. CODAGE DE SOURCE UNIVERSEL

Figure 3.1 – Automate d’encodage. Les suites infinies AAAA . . . et BBBB . . .sont codées par 0000 . . . et donc indistinguables pourtant l’automate est SPI.

Définition 3.2.3 Pour un encodeur E, son ratio de compression pour u est définipar

ρE(un1) =

1

nℓ (yn1 ) .

On définit alors :

ρs(un1) = minρE(un

1), E encodeur SPI à s états

On note que ρs(un1) ≤ ⌈log J⌉.

On définit alors la compressibilité de u, notée ρ(u) par :

ρs(u) = lim supn→∞

ρs(un1 )

ρ(u) = lims→∞

↓ ρs(u).

Soit c(un1) le nombre maximum de mots distincts en lesquels un

1 peut être découpé(le mot vide ε inclus). On a donc c(un

1) ≥ 1.

Si un1 est découpé en c ≥ 1 mots distincts, on définit m et 0 ≤ r ≤ Jm tels que

c =

m−1∑

k=0

Jk + r.

Si un tel c est donné, le n minimal est obtenu par ngeq∑m−1

k=0 kJk +mr car il y aJk mots de longueur k.

Page 31: Introduction à la Théorie de l'Information et au Codage

3.2. CODAGE PAR AUTOMATES À ÉTATS FINIS 31

Pour J ≥ 2, on a

m−1∑

k=0

Jk =Jm − 1

J − 1

m−1∑

k=0

kJk = mJm

J − 1− J

J − 1

Jm − 1

J − 1

On obtient donc :

n ≥ m(c− r +1

J − 1)− J

J − 1(c− r) +mr

≥ (m− 2)

(

c +1

J − 1

)

− J

J − 1c

≥ (m− 2)c

De plus, on a c < Jm+1−1J−1

donc c < c(J − 1) + 1 < Jm+1 et m + 1 ≥ logJ(c). Aufinal on obtient :

n > c logJ

( c

J3

)

. (3.1)

Théorème 3.2.1 Pour tout encodeur SPI à s états,

ℓ(yn1 ) ≥ c(un1) log2

(c(un

1)

8s2

)

.

Démonstration.

On a u11 = w1 . . . wc où c = c(un

1) mots différents. On pose cij = le nombre de motsqui trouvent l’encodeur dans l’état i et le laissent dans l’état j. Comme l’encodeurest SPI, les sorties correspondantes sont nécessairement différentes et leur longueurtotale ℓij doit satisfaire (3.1) avec J = 2 puisque y est une suite binaire, donc :

ℓij ≥ cij log2

(cij8

)

.

Donc ℓ(yn1 ) =∑

1≤i,j≤s cij log2( cij

8

). Comme

∑cij = c(un

1) et que le minimum du

terme de droite sous cette contrainte est atteint à cij =c(un

1 )

s2(fonction convexe

symétrique), on obtient le résultat voulu.

Le lemme suivant est montré en exercie.

Page 32: Introduction à la Théorie de l'Information et au Codage

32 CHAPITRE 3. CODAGE DE SOURCE UNIVERSEL

Lemme 3.2.1

c(un1) = O(

n

log(n))

D’après le théorème,

ρs(u) ≥ lim sup1

nc(un

1 ) log2(c(un

1))

8s2)

= lim supn→∞

1

nc(un

1 ) log2(c(un1))− lim sup

n→∞

1

nc(un

1) log(8s2)

= lim supn→∞

1

nc(un

1 ) log2(c(un1)).

Comme cette dernière expression ne dépend pas de s, on a :

ρ(u) ≥ lim supn→∞

1

nc(un

1 ) log2(c(un1)). (3.2)

3.3 Algorithme de Lempel-Ziv

Nous décrivons maintenant l’algorithme de Lempel-Ziv. Le fonctionnement est lesuivant :

– initialiser un dictionnaire avec tous les mots de longueur 1 ;– attribuer à chaque mot un codage en binaire, par ordre lexicographique ; si

le dictionnaire a D mots, la longueur des mot-code est ⌈log2D⌉.– chaque fois qu’un mot de longueur m appartenant au dictionaire est lu en

entrée,– émettre le mot-code correspondant,– remplacer dans le dictionnaire le mot par l’ensemble des extensions d’une

lettre du mot (c’est à dire les mots de longueur m+1 ayant comme préfixele mot lu en entrée).

Un exemple permet de mieux saisir le comportement de l’algorithme. Soit aaaccbla chaîne à compresser. La figure 3.3 donne alors les différents états du dictionaireen lisant de gauche à droite. La chaîne émise est 00 000 110 0111.

Le décodage s’effectue de façon parfaitement symétrique. Étant donné que la miseà jour du dictionnaire est faite après l’émission du mot-code, le décodeur peutfaire la même mise à jour une fois le mot-code reçu, et donc maintenir le mêmedictionnaire tout au long de la décompression.

On note qu’il demeure un problème lors de la fin du codage : le dernier mot lu necorrespond pas nécessairement à une feuille de l’arbre. Diverses solutions existent

Page 33: Introduction à la Théorie de l'Information et au Codage

3.3. ALGORITHME DE LEMPEL-ZIV 33

Figure 3.2 – Évolutions successives du dictionnaire

pour pallier à ceci, par exemple en choisisant de numéroter tous les nøeuds del’arbre plutôt que les feuilles.

Voyons maintenant dans quelle mesure le codage de Lempel-Ziv est efficace. Si l’al-gorithme découpe un

1 en cLZ(un1) mots w1, w2, . . . wcLZ

, alors un1 = εw1, w2, . . . wcLZ

et les cLZ(un1 )−1 premiers mots sont différents. Si l’on concatène les deux derniers

mots, on obtient un découpage en cLZ(un1) mots différents. On a alors cLZ(u

n1) ≤

c(un1 ).

La taille du dictionaire à la fin du découpage de un1 est J + (cLZ(u

n1 )− 1)(J − 1),

et le nombre de nøeuds dans l’arbre clz(un1 )J .

Même si on attribue à chaque noeud de l’arbre un mot-code, le nombre totalde digits binaires envoyés sera :

ℓLZ(yn1 ) ≤ cLZ(u

n1 )⌈log2(JcLZ(un

1))⌉≤ c(un

1) log2(2Jc(un1)

D’où

lim supn→∞

1

nℓLZ(y

n1 ) ≤ lim sup

n→∞

c(un1 )

nlog2(c(u

n1)) ≤ ρ(u),

où la dernière inégalité vient de (3.2).

L’algorithme de Lempel-Ziv est donc au moins aussi bon que n’importe quel en-codage SPI par automates finis. Noter cependant que l’algorithme de Lempel-Zivn’est pas un encodage par automate fini. Par contre, le codage de Huffman parblocs fait partie de cette dernière classe et donc l’algorithme de Lempel-Ziv “faitdonc aussi bien” que le codage de Huffman par blocs pour toute longueur de bloc.

Page 34: Introduction à la Théorie de l'Information et au Codage

34 CHAPITRE 3. CODAGE DE SOURCE UNIVERSEL

3.4 Exercice : optimalité de l’algorithme de Lempel-

Ziv pour une source sans mémoire

1. Montrer le lemme énoncé sans démonstration en cours : c(un1 ) = O(n/ logn).

– En reprenant les notations du cours, soit c′ = c/J3 et n′ = n/J3. On a vuen cours que n′ > c′ logJ c

′. Pour n suffisament grand tel que√n′ ≤ 2 n′

logJ n′ ,on a– soit c′ <

√n′ et donc c′ < 2n′/ logJ n

′.– soit c′ ≥

√n′ et alors c′ < n′

logJ c′≤ n′

logJ√n′

= 2n′

logJ n′ .

2. Montrer que pour toute v.a. X à valeurs entières de moyenne E[X ], on a :

H(X) ≤ (E[X ] + 1) log (E[X ] + 1)−E[X ] logE[X ],

avec égalité quand X suit une loi géométrique : P (X = k) = qk(1− q) pourk ≥ 0.– pour Y de loi géométrique P (Y = k) = qk(1 − q) pour k ≥ 0, on aE[Y ] = q

1−qet :

H(Y ) = −∑

k

qk(1− q) log qk(1− q)

= − log(1− q)− E[Y ] log q,

on a donc bien égalité dans ce cas.– Soit X une v.a. discrète de loi pk et Y de loi géométrique de même moyenneqk. On a alors

H(X) = −∑

pk log pk

= −∑

pk logpkqk−∑

pk log qk

= D(p||q)−∑

pk log qk(1− q)

≤ − log(1− q)−∑

kpk log q = H(Y ),

où l’inégalité vient de D(p||q) ≥ 0.

3. Soit Ui∞i=1 une suite de v.a. i.i.d. à valeurs dans un ensemble fini U etd’entropie H(U). On note C(n) la v.a. égale au nombre maximal de motsdistincts en lequel U (n) peut être découpé. C’est à dire avec les notations ducours : C(n) = c(Un

1 ). Nous allons montrer qu’avec probabilité 1, on a :

lim supn→∞

C(n) logC(n)

n≤ H(U).

Ce résultat permet de démontrer l’optimalité de l’algorithme de Lempel-Zivdans le cas particulier d’une source sans mémoire.

Page 35: Introduction à la Théorie de l'Information et au Codage

3.4. EXERCICE : OPTIMALITÉ DE L’ALGORITHME DE LEMPEL-ZIV POUR UNE SOURCE SANS

a) Pour un découpage de un1 en c mots distincts, on note cℓ le nombre de

mots de longueur ℓ. Montrer que

logP (u1, u2, . . . , un) ≤ −∑

cℓ log cℓ.

b) On définit la v.a. Z par P (Z = ℓ) = cℓc. En utilisant les deux exercices

précédents, montrer que

limn→∞

c

nH(Z) = 0

c) Conclure.a) On note le découpage : u1u2 . . . un = w1w2 . . . wc. On a alors :

logP (u1, u2, . . . , un) =

c∑

i=1

logP (wi)

=∑

i,|wi|=ℓ

logP (wi)

≤∑

cℓ log

i,|wi|=ℓ

P (wi)

cℓ

≤ −∑

cℓ log cℓ,

où la première inégalité provient de la concavité du log et la seconde dufait que le wi étants distincs

i P (wi) ≤ 1.

b) Z est une v.a. de moyenne E[Z] =∑

ℓ ℓcℓc

= nc. On a donc :

H(Z) ≤(n

c+ 1)

log(n

c+ 1)

− n

clog

n

c

= log(n

c+ 1)

+n

clog( c

n+ 1)

.

Doncc

nH(Z) ≤ c

nlog(n

c+ 1)

+ log( c

n+ 1)

,

le résultat découle de c = O(n/ logn).c) Pour tout u1, . . . , un, et tout découpage en c mots distincst, on a

logP (u1, . . . , un) ≤ −∑

cℓ log cℓ

= −c log c− c∑

cℓclog

cℓc

= −c log c− cH(Z).

Page 36: Introduction à la Théorie de l'Information et au Codage

36 CHAPITRE 3. CODAGE DE SOURCE UNIVERSEL

On a donc avec probabilité 1 :

−1

nlogP (U1, . . . , Un) ≥

C(n)

nlogC(n)− C(n)

nH(Z),

et on obtient le résultat désiré en prenant la limite n→∞.

Page 37: Introduction à la Théorie de l'Information et au Codage

Chapitre 4

Propriétés de l’entropie et del’information mutuelle

Notations On utilise les conventions : 0 × log 0 = 0, a × loga

0= ∞ pour

tout a > 0 et 0× log0

0= 0.

4.1 Rappels

(X, Y ) ∼ p(x, y) = P(X = x, Y = y)

Définition 4.1.1 entropie (jointe) : H(X, Y ) = −∑x∈X∑

y∈Y p(x, y) log p(x, y)(logarithme en base 2)

entropie conditionnelle :

H(Y |X) =∑

x∈Xp(x)H(Y |X = x)

= −∑

x∈Xp(x)

y∈Yp(y|x) log p(y|x)

= −∑

x∈X

y∈Yp(x, y) log p(y|x).

Théorème 4.1.1 règle de la chaîne

H(X, Y ) = H(X) +H(Y |X)

37

Page 38: Introduction à la Théorie de l'Information et au Codage

38CHAPITRE 4. PROPRIÉTÉS DE L’ENTROPIE ET DE L’INFORMATION MUTUELLE

Démonstration. On utilise p(x, y) = p(x)p(y|x) de telle sorte que :

H(X, Y ) = −∑

x∈X

y∈Yp(x, y) log p(x, y)

= −∑

x∈X

y∈Yp(x, y) log p(x)−

x∈X

y∈Yp(x, y) log p(y|x)

= H(X) +H(Y |X).

Corollaire 4.1.1

H(X, Y |Z) = H(X|Z) +H(Y |X,Z)

Définition 4.1.2 L’information mutuelle est définie par :

I(X ; Y ) = H(X)−H(X|Y )

= H(Y )−H(Y |X)

= D(p(x, y)||p(x)p(y)),

avec D(p||q) =∑x∈X p(x)logp(x)

q(x)la distance de Kullbak-Leibler.

4.2 Règles de la chaîne

Théorème 4.2.1 (pour l’entropie) Soit (X1, ..., Xn) ∼ p(x1, ..., xn), alors

H(X1, ..., Xn) =n∑

i=1

H(Xi|Xi−1...X1)

Démonstration. On écrit p(x1, . . . , xn) = p(x1)p(x2|x1)...p(xn|xn−1...x1), soit :

H(X1, ..., Xn) = −∑

x1...xn

p(x1, ..., xn)log

n∏

i=1

p(xi|xi−1...x1)

= −n∑

i=1

x1...xn

p(x1, ..., xn)logp(xi|xi−1...x1)

=n∑

i=1

H(Xi|Xi−1...X1)

Page 39: Introduction à la Théorie de l'Information et au Codage

4.3. INÉGALITÉS DE CONVEXITÉ 39

Définition 4.2.1 l’information mutuelle conditionnelle des v.a X et Y étant donnéZ est : I(X ; Y |Z) = H(X|Z)−H(X|Y, Z).

Théorème 4.2.2 (pour l’information)

I(X1, ..., Xn; Y ) =n∑

i=1

I(Xi; Y |Xi−1..X1)

Démonstration.

I(X1...Xn; Y ) = H(X1, ..., Xn)−H(X1, ..., Xn|Y )

=

n∑

i=1

H(Xi|Xi−1..X1)−n∑

i=1

H(Xi|Xi−1...X1, Y )

=n∑

i=1

I(Xi; Y |Xi−1..X1).

4.3 Inégalités de convexité

Théorème 4.3.1 D(p||q) ≥ 0 avec égalité ssi ∀x, p(x) = q(x).

Démonstration. Par stricte concavité du log, on a :

x, p(x)>0

p(x) logq(x)

p(x)≤ log

x, p(x)>0

q(x) ≤ 0.

Corollaire 4.3.1 I(X ; Y ) ≥ 0 avec égalité ssi X et Y sont indépendantes

Démonstration. Il suffit d’observer que : I(X ; Y ) = D(p(x, y)||p(x)p(y))

Corollaire 4.3.2 – D(p(y|x)||q(y|x)) ≥ 0 avec égalité ssi p(y|x) = q(y|x), ∀y, xtq p(x) > 0.

– I(X ; Y |Z) ≥ 0 avec égalité ssi X et Y sont indépendantes conditionnellementà Z.

Page 40: Introduction à la Théorie de l'Information et au Codage

40CHAPITRE 4. PROPRIÉTÉS DE L’ENTROPIE ET DE L’INFORMATION MUTUELLE

Théorème 4.3.2 H(X) ≤ log|X | où |X | = nombre d’éléments dans le support deX, c’est à dire le nombre de x tels que p(x) > 0 avec égalité ssi X ∼ Unif(X ).

Démonstration. Soit u(x) =1

|X | la distribution uniforme sur X . On note alors

que

D(p||u) =∑

x∈Xp(x) log

p(x)

u(x)= log|X | −H(X)

Théorème 4.3.3 H(X|Y ) ≤ H(X) avec égalité ssi X et Y sont indépendantes.

Démonstration. 0 ≤ I(X ; Y ) = H(X)−H(X|Y ).

Exemple 4.3.1:Attention l’entropie conditionnelle diminue en moyenne mais on peut avoir

H(X|Y = Y ) > H(X) pour des y particuliers, comme le montre l’exemple suivant :

X \ Y 1 2

1 03

4

21

8

1

8

On a H(X) = H(1/8) ≈ 0.544 bit. H(X|Y = 1) = 0 bit et H(X|Y = 2) = 1bit. L’incertitude sur X augmente si Y = 2 est observée et elle diminue (forte-ment !) si Y = 1 est observée. En moyenne, on a :

H(X|Y ) = 3/4H(X|Y = 1) + 1/4H(X|Y = 2) = 1/4 ≤ H(X).

Théorème 4.3.4 H(X1, ..., Xn) ≤∑n

i=1H(Xi) avec égalité ssi les Xi sont indé-pendantes.

Démonstration.

H(X1, ...Xn) =

n∑

i=1

H(Xi|Xi−1...X1) ≤n∑

i=1

H(Xi)

avec égalité ssi Xi est indépendante de Xi−1, . . .X1, c’est à dire si les Xi sontindépendantes entre elles.

Page 41: Introduction à la Théorie de l'Information et au Codage

4.3. INÉGALITÉS DE CONVEXITÉ 41

4.3.1 Inégalité logsum et applications

Théorème 4.3.5 pour tout, a1...anb1...bn ≥ 0, on a :

n∑

i=1

ai logaibi≥

n∑

i=1

ai log

∑ni=1 ai∑ni=1 bi

avec égalité ssiaibi

= cst.

Démonstration. On suppose tout d’abord que pour tout i, ai > 0 et bi > 0. Soit

f(t) = t log t. On a f ′(t) = log t+

1

log(e)et f ′′(t) =

1

t log e> 0 pour tout t > 0. Donc

f est strictement convexe et∑

αif(ti) ≤ f(∑

αiti), pour αi ≥ 0,∑

αi = 1, ti > 0.Il suffit alors de prendre

αi =bi∑

bjet, ti =

aibi.

Si aj = 0 et bj = 0 alors avec les conventions choisies, le j-ème terme dumembre de gauche est nul et on peut supprimer aj et bj à gauche et à droite.

Si aj > 0 et bj = 0, le terme de gauche vaut ∞ donc l’inégalité est toujoursvalable.

Si aj = 0 et bj > 0, on peut supprimer le j-ème terme dans le mebre de gaucheet en supprimant bj dans le terme de droite, on obtient bien un majorant :

i 6=j

ai logaibi≥∑

i 6=j

ai log

i 6=j ai∑

i 6=j bi≥

n∑

i=1

ai log

∑ni=1 ai∑ni=1 bi

.

Lemme 4.3.1 D(p||q) est convexe en la paires (p, q), c’est à dire, pour tout λ ∈0, 1

D(λp1 + (1− λ)p2||λq1 + (1− λ)q2) ≤ λD(p1||q1) + (1− λ)D(p2||q2)

Démonstration. On applique l’inégalité logsum à x fixé :

(λp1(x) + (1− λ)p2(x)) logλp1(x) + (1− λ)p2(x)

λq1(x) + (1− λ)q2(x)≤ λp1(x) log

p1(x)

q1(x)+ (1− λ)p2(x) log

p2(x)

q2(x).

Page 42: Introduction à la Théorie de l'Information et au Codage

42CHAPITRE 4. PROPRIÉTÉS DE L’ENTROPIE ET DE L’INFORMATION MUTUELLE

Théorème 4.3.6 H(X) est une fonction concave de p(x).

Démonstration. Il suffit de noter que : H(X) = log|X | − D(p||u), où u lesdistribution uniforme.

Théorème 4.3.7 Soit (X, Y ) ∼ p(x, y). L’information mutuelle I(X, Y ) est unefonction concave de p(x), à p(y|x) fixée, et convexe en p(y|x), à p(x) fixée.

Démonstration. I(X ; Y ) = H(Y )−∑x p(x)H(Y |X = x)Si p(y|x) est fixée alors p(y) est une fonction linéaire de p(x). Donc H(Y ) qui

est concave en p(y) est concave en p(x). Le second terme est linéaire en p(x) doncla différence est concave.

Maintenant p(x) est fixée. A p1(y|x) et p2(y|x), on associe :

p1(x, y) = p1(y|x)p(x) et, p1(y)

p2(x, y) = p2(y|x)p(x) et, p2(y).

On définit alors pλ(y|x) = λp1(y|x)+(1−λ)p2(y|x) ainsi que pλ(x, y) = p(x)pλ(y|x) =λp1(x, y) + (1 − λ)p2(x, y) et pλ(y). Finalement, soit qλ(x, y) = p(x)pλ(y) de tellesorte que qλ(x, y) = λq1(x, y) + (1− λ)q2(x, y) et

I(X ; Y ) = D(pλ(x, y)||qλ(x, y)),

comme D(p||q) est convexe en (p, q), I(X, Y ) est convexe en p(y|x) à p(x) fixée.

4.4 Data Processing inequality

Définition 4.4.1 (X, Y, Z) est une chaîne de Markov si p(z|x, y) = p(z|y). On adonc p(x, y, z) = p(x)p(y|x)p(z|y). On notera parfois X → Y → Z.

Remarque 4.4.1 p(x, z|y) =p(x, y, z)

p(y)=

p(x, y)

p(y)× p(z|y) = p(x|y)p(z|y) donc

X → Y → Z ssi X et Z sont conditionnellement indépendantes étant donné Ydonc Z → Y → X.

Théorème 4.4.1 Si X → Y → Z alors maxI(X ; Y ), I(X ;Z) ≥ I(X ;Z).

Démonstration.

I(X ; Y, Z) = I(X ;Z) + I(X ; Y |Z)= I(X ; Y ) + I(X ;Z|Y ).

Page 43: Introduction à la Théorie de l'Information et au Codage

4.5. INÉGALITÉ DE FANO 43

Comme X et Z sont conditonnellement indépendantes, on a I(X ;Z|Y ) = 0.Comme I(X ; Y |Z) ≥ 0, on a I(X ; Y ) ≥ I(X ;Z). L’autre inégalité provient dufait que Z → Y → X et de la symétrie de l’information mutuelle.

Corollaire 4.4.1 Si X → Y → Z alors I(X ; Y |Z) ≤ I(X ; Y ).

Démonstration. En reprenant la décomposition de I(X ; Y, Z) ci-dessus, il suffitde noter que I(X ;Z) ≥ 0.

4.5 Inégalité de Fano

On veut estimer X ∼ p(x) (p(x)>0 pour tout x ∈ X ) en observant Y avecp(y|x). Soit X un estimateur de X, c’est à dire tel que X → Y → X.

Théorème 4.5.1 Pour tout X tel que X → Y → X, soit Pe = P (X 6= X) alorson a

H(Pe) + Pelog(|X | − 1) ≥ H(X|X) ≥ H(X|Y ),

où H(p) = −p log p− (1− p) log(1− p).

Remarque 4.5.1 Pe = 0→ H(X|Y ) = 0→ Y est une fonction de X.

Démonstration. On définit :

E =

1 si X 6= X0 sinon

On a :

H(E,X|X) = H(X|X) +H(E|X, X)

= H(E|X) +H(X|E, X).

Comme H(E|X, X) = 0 et H(E|X) ≤ H(E) = H(Pe), et de plus,

H(X|E, X) = P (E = 0)H(X|X, E = 0) + P (E = 1)H(X|X, E = 1)

≤ (1− Pe)× 0 + Pe log(|X | − 1),

au final, on obtient :

H(Pe) + Pe log(|X | − 1) ≥ H(X|X).

Par l’inégalité ’data processing’, on a : I(X ; X) ≤ I(X ; Y ) et donc H(X|X) ≥H(X|Y ).

Page 44: Introduction à la Théorie de l'Information et au Codage

44CHAPITRE 4. PROPRIÉTÉS DE L’ENTROPIE ET DE L’INFORMATION MUTUELLE

4.6 Exercice : Lien entre théorie de l’information

et courses de chevaux

Objectif : définir une stratégie ’optimale’ pour jouer aux courses.

Problème : M chevaux concurrents, pi proba le ième cheval gagne. Si le ièmecheval gagne, on gagne o(i) fois sa mise. C’est à dire, si on a misé 1 euro, on obtiento(i) euro si i gagne et rien sinon (la mise de 1 euro est perdue).

On suppose que le joueur distribue toute sa fortune sur les chevaux. Soit b(i) =la fraction parié sur le cheval i. On a b(i) ≥ 0 et

∑Mi=1 b(i) = 1.

Après n courses, la fortune du joueur est (en supposant qu’initialement S0 = 1),Sn =

∏ni=1 S(Xi) avec S(X) = b(X)o(X) et X est le cheval vainqueur.

Théorème 4.6.1 Si les Xi sont i.i.d. ∼ p(x) alors la fortune du joueur utilisant la

stratégie b "croît" exponentiellement : lim1

nlog2 Sn = W (b, p) =

∑mk=1 pk log2(b(k)o(k))

où la convergence est en probabilité.

Démonstration. Il suffit d’appliquer la loi faible des grands nombres et de noterque W (b, p) = E[log S(X)].

Attention rien ne dit que W (b, p) ≥ 0 !

Théorème 4.6.2 (Critère de Kelly) La stratégie optimale est de prendre b∗ = pet dans ce cas W (b∗, p) =

∑pi log o(i)−H(p) (optimum doubling rate)

Démonstration. Il suffit d’écire :

W (b, p) =∑

pi log o(i)−H(p)−D(p||b).

Dans le cas équitable :∑

i

1

o(i)= 1 alors ri =

1

o(i)est une distribution de pro-

babilité qui correspond à l’estimée de la probabilité pi par le bookmaker. On aalors

W (b, p) = D(p||r)−D(p||b)

Si notre estimée b de p est meilleure que celle du bookmaker alors W (b, p) ≥ 0.Dans le cas spécial où oi = m pour tout i, on a W (b∗, p) = logm−H(p). Les

courses à faible entropie sont les plus profitables.On considère maintenant le cas où le joueur peut choisir de ne pas miser une

fraction de sa fortune b0.

Page 45: Introduction à la Théorie de l'Information et au Codage

4.6. EXERCICE : LIEN ENTRE THÉORIE DE L’INFORMATION ET COURSES DE CHEVAUX45

a) Si les cotes sont équitables, c’est à dire∑m

i=11oi

= 1, la stratégie optimaleconsiste à tout parier de façon proportionnelle a p.

b) Si les cotes sont favorables,∑m

i=11oi< 1, montrer qu’il est possible de parier

sans risque, c’est à dire la fortune du joueur augmente à chaque course avecprobabilité 1.

c) Dans le cas favorable, quelles est la stratégie optimale ?a) Les stratégies b0 > 0, bi = et b′0 = 0, b′i = bi +

b0oi

sont équivalentes. Pourl’étude des stratégies optimales, on peut donc se restreindre aux stratégiesavec b0 = 0 qui ont été étudiées en cours.

b) Soit c =(∑m

i=11oi

)−1

> 1. La stratégie bi =coi

permet d’avoir sa fortune

doublée de log2 c > 0 quelque soit l’issue de la course.c) Nous allons montrer que toute stratégie avec b0 > 0 est sous-optimale. Le

résultat du cours permet alors de conclure que la stratégie optimale est deparier proportionellement à p. Le ’doubling rate’ d’une stratégie b est donnépar

m∑

k=1

pk log2 (b0 + bkok) .

Si b0 > 0, on considère alors la stratégie b′0 = 0 et b′k = bk + b0cok

qui a un’doubling rate’ de

m∑

k=1

pk log2 (b0c+ bkok) ,

qui est plus grand que le précédent puisque c > 1.

Page 46: Introduction à la Théorie de l'Information et au Codage

46CHAPITRE 4. PROPRIÉTÉS DE L’ENTROPIE ET DE L’INFORMATION MUTUELLE

Page 47: Introduction à la Théorie de l'Information et au Codage

Chapitre 5

Canaux discrets sans mémoire etleurs fonctions capacité-coût

5.1 Définitions et codes sans erreur

Un canal discret sans mémoire est caractérisé par :– un alphabet d’entrée X , de cardinal r– un alphabet de sortie Y , de cardinal s– un coût b(x) associé à chaque entrée x– une probabilité de transition p(y|x) qui définit une matrice stochastique (no-

tée Q) de taille r × s :

p(y|x) ≥ 0, ∀x ∈ X ,∑

y∈Yp(y|x) = 1.

Ce modèle de canal reçoit donc une entrée x à chaque unité de temps et émet yavec probabilité p(y|x) pour un coût de b(x).

Canal sans mémoire : s’il est utilisé n fois sur les entrées x1, . . . xn, la pro-babilité qu’il émette y1 . . . yn est

p(y|x) =n∏

i=1

p(yi|xi)

et cela coute

b(x) =n∑

i=1

b(xi).

47

Page 48: Introduction à la Théorie de l'Information et au Codage

48CHAPITRE 5. CANAUX DISCRETS SANS MÉMOIRE ET LEURS FONCTIONS CAPACITÉ-COÛT

Si les entrées sont des variables aléatoires (v.a.) X = (X1, . . . , Xn) suivant uneloi p(X), alors le coût moyen est

E [b(X)] =∑

x

p(x)b(x).

Définition 5.1.1 Un (M,n)-code est un sous-ensemble

C = x1, . . . xM ⊂ X n.

La longueur d’un tel code est n.Le taux du code est R = log2 M

n(bits/symbole).

Un code est dit β-admissible si ∀i, b(xi) ≤ nβ.Une règle de décodage pour ce code est une fonction

f : Yn −→ C ∪ ?

La probabilité d’erreur sur le mot code xi est

P(i)E = P

(f(y) 6= xi|xi envoyé

)

=∑

f(y)6=xi

p(y|xi)

Exemple 5.1.1: Prenons X = 0, 1/2, 1, Y = 0, 1 et b(0) = b(1) = 1, b (1/2) =0 et les probabilités de transition suivantes :

Q =

1 01/2 1/20 1

.

Soit k ≤ n. L’ensemble suivant est un (2k, n)-code

C = (x1 · · ·xk, 1/2 · · ·1/2) |xi ∈ 0, 1 .

Ce code est β-admissible pour β ≥ kn

et son taux est kn

bits/symbole.En prenant la règle de décodage :

f(y1, . . . , yn) = (y1, . . . , yk, 1/2 . . . 1/2) ,

la probabilité d’erreur pour ce canal est nulle (pour k ≤ n) quelque soit le motcode envoyé.

Page 49: Introduction à la Théorie de l'Information et au Codage

5.2. INÉGALITÉ DE FANO ET RÉCIPROQUE DU THÉORÈME DE CODAGE DE CANAL49

Réciproquie du Théorème de codage de canal pour une pro-

babilité d’erreur nulle

Supposons qu’on ait un (2nR, n)-code avec ∀i, P (i)E = 0, et X est uniformément

distribué. On a alors :

nR = logM = H(X)

= H(X|Y ) + I(X ; Y )

= 0 +

(

H(Y )−n∑

i=1

H (Yi|Y1, . . . , Yi−1, X)

)

car ∀i, P (i)E = 0,

= H(Y )−n∑

i=1

H (Yi|Xi) car canal sans mémoire,

≤n∑

i=1

H (Yi)−n∑

i=1

H (Yi|Xi)

=n∑

i=1

I (Xi; Yi)

≤ n ·maxp(X)I(X ; Y ) = nC

Cette dernière quantité s’appelle la capacité du canal.

5.2 Inégalité de Fano et réciproque du théorème

de codage de canal

Le calcul précédent a été fait pour une probabilité d’erreur nulle. Il est facile de legénéraliser comme suit.

On Suppose toujours que X uniformément distribuée. Donc l’erreur moyenneest définie par : PE = 1

2nR

i P(i)E . On a alors,

nR = H(X)

= H(X|Y ) + I(X, Y )

≤ 1 + P (f(Y ) 6= X)nR + I(X ; Y ) par l’inégalité de Fano

≤ 1 + nRPE + I(X, Y )

≤ 1 + nRPE + nC

Page 50: Introduction à la Théorie de l'Information et au Codage

50CHAPITRE 5. CANAUX DISCRETS SANS MÉMOIRE ET LEURS FONCTIONS CAPACITÉ-COÛT

Ainsi, PE ≥ 1− CR− 1

nR. Par conséquent, si R > C, alors PE > 0 pour n suffisament

grand et donc pour tout n (puisque dans le cas contraire, il suffirait alors deconcatener un code court sans erreur pour obtenir une contradiction).

5.3 La fonction capacité-coût

Pour tout n, on définit la nème fonction capacité coût par

Cn(β) = max

I(X, Y )∣∣∣E [b(X)] ≤ β et P (Y |X) =

p(yi|xi)

Dans ce contexte, on dira que X est une source test et qu’elle est β-admissible siE[b(X)] ≤ nβ.

Remarque 5.3.1 a) Pour p(y|x) fixées, I(X, ; Y ) est une fonction continuede p(x) et la maximisation est faite sur un compacte donc atteinte.

b) Cn(β) est définit pour tout β ≥ βmin = min b(x)|x ∈ X.c) Cn est croissante pour β ≥ βmin.

La fonction capacité-coût du canal est définie par

Cβ = supn

1

nCn(β)

Théorème 5.3.1 Cn est concave en β ≥ βmin.

Démonstration.Soit α1, α2 ≥ 0 tq α1 + α2 = 1.On doit montrer que pour β1, β2 ≥ βmin, on a :

Cn(α1β1 + α2β2) ≥ α1Cn(β1) + α2Cn(β2).

Soit X1 et X2 deux sources test de distribution p1 et p2 qui atteignent Cn(β1)et Cn(β2), c’est à dire telles que Y 1 et Y 2 soient les sorties associées et :

– X i est βi-admissible pour i = 1, 2 ;– I(Xi; Y i) = Cn(βi) pour i = 1, 2.La source test X définie par la distribution α1p1 + α2p2 est (α1β1 + α2β2)-

admissible, et donc Cn(α1β1 + α2β2) ≥ I(X, Y ), si on note Y la sortie associée.Comme I(X, Y ) est concave en p(x), on obtient :

I(X, Y ) ≥ α1I(X1, Y 1) + α2I(X2, Y 2)

= α1Cn(β1) + α2Cn(β2).

Page 51: Introduction à la Théorie de l'Information et au Codage

5.3. LA FONCTION CAPACITÉ-COÛT 51

Théorème 5.3.2 Pour un canal discret sans mémoire,

∀n ≥ 1, ∀β ≥ βmin, Cn(β) = n · C1(β)

Démonstration. Soit (X, Y ) un couple de source test - sortie atteignant C1(β).En considérant la source test X = (X1, . . . , Xn) où X,X1, . . .Xn sont i.i.d., onobtient facilement Cn(β) ≥ nC1(β).

Pour ce qui est de l’autre sens de l’inégalité, soit X β-admissible qui atteintCn(β). Le canal n’ayant pas de mémoire, on a grâce au calcul fait en Section 5.1 :

Cn(β) = I(X, Y ) ≤n∑

i=1

I (Xi, Yi).

Si on pose βi = Eb(Xi, alors∑

i βi ≤ nβ.Par définition, ∀i, I(Xi, Yi) ≤ C1(βi), et on a donc :

Cn(β) ≤ n · 1n

n∑

i=1

Ci(βi)

≤ n · C1

(

1

n

n∑

i=1

βi

)

(concavité de C1)

≤ n · C1(β) (croissance de C1)

Corollaire 5.3.1 Pour un canal discret sans mémoire (DMC en anglais discretememoryless channel), C(β) = C1(β).

Propriétés générales de C(β) pour un DMC :– C(·) est croissante et concave pour β ≥ βmin. Donc C(·) est continue pourβ > βmin (en exercice, on montre C(β) est continue en βmin).

– La capacité du canal est le maximum de la fonction capacité-coût du canal(cela revient à accepter un coût infini). Si on note celle-ci Cmax et βmax =min E [b(X)]| I(X, Y ) = Cmax, alors on voit que C(β) = Cmax pour β ≥βmax et C(β) < Cmax pour β < βmax. Donc β 7→ C(β) est strictementcroissante sur (βmin, βmax). En particulier, on a pour β ∈ [βmin, βmax] :

C(β) = max I(X ; Y ) |E [b(X)] = β

Page 52: Introduction à la Théorie de l'Information et au Codage

52CHAPITRE 5. CANAUX DISCRETS SANS MÉMOIRE ET LEURS FONCTIONS CAPACITÉ-COÛT

Exemple 5.3.1: Canal binaire symmétriquePrenons X = Y = 0, 1, b(0) = 0 et b(1) = 1 et les probabilités de transition

suivantes :

Q =

(q pp q

)

,

avec p, q ≥ 0 tels que p+ q = 1 et p ≤ 1/2.Alors βmin = 0 et Cmin = 0.

Soit X une source test qui atteint C(β) pour 0 ≤ β ≤ βmax, cette dernièrequantité étant pour le moment inconnue. On a en particulier

P (X = 1) = b(1)P (X = 1) + b(0)P (X = 0)

= Eb(X)

= β

et

C(β) = I(X, Y )

= H(Y )−H(Y |X)

= H(Ber(1−β)p+βq

)−H (Berp)

≤ 1−H (Berp)

avec égalité pour βmax = 1/2, donc Cmax = 1−H (Berp) = 1−H(p). Au final, ona :

C(β) =

H((1− β)q + βp)−H(p) 0 ≤ β ≤ 1/21−H(p) β > 1/2.

Exemple 5.3.2: Reprenons l’exemple avec X = 0, 1/2, 1, Y = 0, 1 et b(0) =b(1) = 1, b (1/2) = 0 et les probabilités de transition suivantes :

Q =

1 01/2 1/20 1

.

Alors βmin = 0 et Cmin = 0.Soit X une source test qui atteint C(β) pour 0 ≤ β ≤ βmax. On a β = Eb(X) =

p(0)+p(1) et I(X ; Y ) est concave en p(0), p(1/2), p(1), donc par symmétrie p(0) =p(1) = β2, on a alors :

C(β) = I(X, Y ) = H(Y )−H(Y |X) = 1− (1− β) = β.

Page 53: Introduction à la Théorie de l'Information et au Codage

5.4. RÉCIPROQUE DU THÉORÈME DE CODAGE DE CANAL AVEC COÛT53

Donc βmax = 1 et

∀β ∈ [0, 1] C(β) = β

∀β ∈ [1,∞[ C(β) = 1.

Exemple 5.3.3:Prenons X = Y = 0, 1, 2, et b(0) = b(1) = 1, b(2) = 4 et les probabilités de

transition suivantes :

Q =

1 0 00 1 00 0 1

.

Alors βmin = 1 et Cmin = 1.Soit X une source test qui atteint C(β), notons αi = P (X = i). On a alors

C(β) = H(Y )−H(Y |X)

= H(Y ) car Y = X

= H(X)

= H(α0, α1, α2)

Cette quantité est maximale pour α0 = α1 = α2 = 1/3, et on obtient ainsi Cmax =log2 3 et βmax = 2.

En maximisant la quantité H(α0, α1, α2) sous la contrainte 1·α0+1·α1+4·α2 =β, on obtient finalement

∀β ∈ [1, 2], C(β) = H (2/3− β/6, 2/3− β/6, β/3− 1/3) .

5.4 Réciproque du théorème de codage de canal

avec coût

Nous reprenons les calculs de la Section 5.2 en prenant en compte les contraintesde coût.

Page 54: Introduction à la Théorie de l'Information et au Codage

54CHAPITRE 5. CANAUX DISCRETS SANS MÉMOIRE ET LEURS FONCTIONS CAPACITÉ-COÛT

Le message M est uniforme sur [1, 2nR] et encodé dans des mots-code β-admissibles : b[X(n)

i ] ≤ nβ pour tout i = 1, . . . 2nR.On a alors

nR = H(M)

≤ 1 + nRPE +

n∑

i=1

I(Xi, Yi)

≤ 1 + nRPE +n∑

i=1

C(E[b(Xi)])

≤ 1 + nRPE + nC

(

1

n

n∑

i=1

E[b(Xi)]

)

≤ 1 + nRPE + nC(β),

où les deux dernières inégalités découlent de la concavité de C et de sa monotoniean β. On a donc

R ≤ C(β)

1− PE

+1

n(1− PE),

et donc si PE → 0 alors R ≤ C(β).

5.5 Le théorème de codage de canal

On sait déjà que l’on ne trouvera pas de code permettant de transmettre avecune probabilité d’erreur moyenne arbitrairement faible si R > C. Le théorèmesuivant donne un résultat positif (mais non constructif) dans le cas R < C.

Théorème 5.5.1 Pour un canal discret sans mémoire de fonction capacité-coûtC(β), pour tout β0 ≥ βmin, et des réels β > β0 , R < C(β0), ǫ > 0, pour n

suffisamment grand, il existe un code Cdef= x1, . . . , xM de longueur n et une

règle de décodage, tel que :(a) chaque mot code xi est β-admissible(b) M ≥ 2⌈Rn⌉

(c) P(i)E < ǫ pour tout i = 1, 2, . . . ,M .

Démonstration. La preuve se décompose en deux parties. On va d’abord définirune fonction de décodage f pour un (M,n) code arbitraire. Puis on va montrer

Page 55: Introduction à la Théorie de l'Information et au Codage

5.5. LE THÉORÈME DE CODAGE DE CANAL 55

qu’il existe un code satisfaisant aux propriétés (a), (b), (c) en utilisant un argumentprobabiliste.Soit R < R′ < C(β0) et T = (x, y)

/I(x; y) ≥ nR′ ⊆ Ω où

I(x; y) = log2p(y|x)p(y)

avec, p(y) =∑

x

p(x, y) =∑

x

p(x)p(x|y).

On définit encore

B = x /b(x) ≤ nβ

T ⋆ = (x, y) ∈ T/x ∈ B

Pour un code C = x1, . . . , xM de longueur n, on définit la règle de décodage :pour chaque y, on pose S(y) l’ensemble des « bons candidats »

S(y) = x/(x, y) ∈ T ⋆ ⊆ B

Lorsque l’on reçoit y, si S(y) est réduit à un élément xi, alors on pose f(y) = xi

sinon on pose f(y) =?Pour le code C et avec cette règle de décodage, si xi est transmis et y est reçu, ona :

P iE ≤ P (xi /∈ S(y)) +

j 6=i

P (xj ∈ S(y))

Définissons les fonctions indicatrices ∆ et ∆ comme suit

∆(x, y) =

1, si (x, y) ∈ T ⋆

0, sinonet ∆ = 1−∆

Cela permet de réecrire la majoration sur P iE de manière explicite comme une

fonction (déterministe) du code C = x1, . . . , xM :

P iE ≤

y

∆(xi, y)p(y|xi) +∑

j 6=i

y

∆(xj , y)p(y|xi)def= Qi(x1, . . . , xM)

Voici maintenant la deuxième partie de la preuve (où l’on montre l’existence).L’idée du « random coding » est de définir une distribution de probabilités sur C,sous laquelle l’espérance des Qi -ce sont alors des v.a- tende vers 0, pour M = 2⌈Rn⌉.L’argument sera du type : « si en moyenne une quantité est petite, alors il existe

Page 56: Introduction à la Théorie de l'Information et au Codage

56CHAPITRE 5. CANAUX DISCRETS SANS MÉMOIRE ET LEURS FONCTIONS CAPACITÉ-COÛT

des tirages qui la rendent effectivement petite ». On fait le choix suivant pour ladistribution de probabilité sur les codes C :

p(x1, . . . , xM) =M∏

i=1

p(xi)

où p(xi) =∏n

k=1 p(xik) atteint C(β0).

Remarque 5.5.1 – l’intuition est la suivante : la loi p(x) en entrée du canalpermet de maximiser l’information mutuelle entre la sortie du canal et l’en-trée, ce qui ’signifie’ que les mots code x ayant une ’forte’ probabilité p(x)sont bien transmis. La loi choisie sur les codes met plus de ’poids’ sur lesmots code transmis de manière fiable et donc la ’densité’ de tels mots codeest plusélevée.

– Nous avons défini des codes jusqu’à présent comme des ensembles. Ici, ladéfinition d’un code est un M-uplet. En particulier, il peut y avoir deux mot-codes identiques qui vont donc systématiquement donner une erreur avec larègle de décodage que nous avons définie. Pour des raisons de symmétries,il est cependant plus facile d’effectuer les calculs avec cette distribution et demodifier le code pour résoudre ces problèmes a posteriori, ce que nous feronsà la fin de la preuve.

En prenant la moyenne par rapport à la loi sur les codes, on obtient :

E[Qi] = E[∑

y

∆(xi, y)p(y|xi)]

︸ ︷︷ ︸

E1

+∑

j 6=i

E[∑

y

∆(xj , y)p(y|xi)]

︸ ︷︷ ︸

E(j)2

Il s’agit à présent de majorer E1 et E(j)2 par des quantités tendant vers 0.

E1 =∑

x1,...,xM

p(x1 . . . p(xM)∑

y

∆(xi, y)p(y|xi)

=∑

x,y

p(x)p(y|x)∆(xi, y)

= P ((x, y) /∈ T ⋆)

≤ P (x, y) /∈ T ) + P (x /∈ B)

Ce qui se réecrit

E1 ≤ P (I(x, y) < nR′) + P (b(x) > nβ)

Page 57: Introduction à la Théorie de l'Information et au Codage

5.5. LE THÉORÈME DE CODAGE DE CANAL 57

dans l’espace probabilisé Ωdef= X n × Yn = (x, y)

/x ∈ X n, y ∈ Yn, muni de la

mesure de probabilité :

p(x, y) = p(x)p(y|x)

où• p(x) = p(x1) . . . p(xn) et p(.) atteint la capacité c(β0)• p(y|x) =∏n

i=1 p(yi|xi)Mais b(x) =

∑nk=1 b(xk) est une somme de v.a i.i.d de moyenne E[b(X)] ≤ β0 < β.

Par la Loi Faible des Grands Nombres (LFGN)

limn→∞

P (b(x) > nβ) = 0

Par la propriété sans mémoire du canal, on peut écrire

I(x, y) =n∑

k=1

logp(yk|xk)

p(yk)=

n∑

k=1

I(xk, yk)

Donc sous la probabilité p(x, y), nous avons à nouveau une somme de v.a. i.i.d demoyenne :

E[I(xk, yk)] = I(X, Y ) = C(β0) > R′

Et on peut conclure que P (I(x, y) < nR′)→ 0 par la LFGN. Passons à E(j)2

E(j)2 =

xj ,y

p(xj)∆(xj, y)∑

xi

p(xi)p(y|xi)

=∑

x,y

p(x)∆(x, y)p(y)

≤∑

x,y∈Tp(x)p(y)

Par définition de T , p(x)p(y) ≤ p(x, y)2−R′n. Donc

E(j)2 ≤ 2−R′n

x,y∈Tp(x, y) ≤ 2−R′n

et∑

j 6=iE(j)2 ≤ M2−R′n. Pour M = 2⌈Rn⌉+1 (ce choix de M paraît arbitraire mais

va être justifié dans la suite) et R′ > R, de dernier majorant tend vers 0 quand ntend vers l’infini.

Page 58: Introduction à la Théorie de l'Information et au Codage

58CHAPITRE 5. CANAUX DISCRETS SANS MÉMOIRE ET LEURS FONCTIONS CAPACITÉ-COÛT

Donc pour n assez grand, E[Qi] ≤ ǫ avec M = 22⌈Rn⌉+1. On définit l’erreurmoyenne par :

PE(C) = PE(x1, . . . , xM) =1

M

M∑

i=1

P iE(x1, . . . , xM)

Pour M = 2⌈Rn⌉+1 et n grand, la majoration de chacun des E[Qi] donne :

E[PE ] < ǫ.

Donc en particulier il existe un code x1, . . . , xM avec probabilité d’erreur moyenne

PE(x1, . . . , xM) < ǫ

Attention : il peut cependant exister des mots code xi avec

b(xi) > nβ ou P iE > ǫ.

Pour régler ce problème on procède de la façon suivante. On sait qu’au plus lamoitié des mots codes xi sont tels que P

(i)E ≥ ǫ sinon PE ≥ ǫ/2 (ce qui fournit une

contradiction quitte à changer ǫ← ǫ2

partout).Si on supprime les mots code ayant une probabilité d’erreur P i

E ≥ ǫ, on obtient unnouveau code avec M ≥ 2⌈Rn⌉ mots code. De plus le fait de supprimer des motscode ne peut faire que diminuer la probabilité d’erreur des mots code restant. Doncpour chacun des mots code restant, on a P i

E < ǫ.De plus, automatiquement, si b(xi) > nβ alors xi n’est pas dans le code obtenu.En effet, pour tout y, comme S(y) = x, (x, y) ∈ T & b(x) ∈ B alors xi /∈ S(y)

pour tout y et donc P(i)E = 1.

Finalement le code obtenu vérifie les trois propriétés attendues.

5.6 Exercice : Canal avec feedback

Dans un canal avec feedback, au moment de l’encodage du (n+1)-ème bit, onsait quels ont été les n premiers bits reçus. Le but est de montrer qu’un tel canala la même capacité que s’il n’y avait pas de feedback. Clairement Cfeedback ≥ C.Un (2nR, n) code avec feedback est une suite de fonctions 1, . . . , 2nR×Y i−1 → Xet une fonction de décodage g : Yn → 1, . . . , 2nR ∪ ?.Si W est uniformément distribuée dans 1, . . . , 2nR

P(n)E = P (g(Y (n)) 6= W )

Page 59: Introduction à la Théorie de l'Information et au Codage

5.6. EXERCICE : CANAL AVEC FEEDBACK 59

donc

nR = H(W ) = H(W |W ) + I(W ; W )

(Fano) ≤ 1 + P (W 6= W )nR + I(W ; W )

(Data Processing Ineq.) ≤ 1 + P(n)E nR + I(W ; Y (n))

et

I(W ; Y (n)) = H(Y (n))−H(Y (n)|W )

= H(Y (n))−n∑

i=1

H(Yi|Y1, . . . , Yi−1,W )

≤∑

i

H(Yi)−∑

i

H(Yi|Xi)

=

n∑

i=1

I(Xi, Yi) ≤ nC,

où la première inégalité vient du fait que Xi est une fonctions des Y1, . . . , Yi−1,Wdonc H(Yi|Y1, . . . , Yi−1,W ) = H(Yi|Y1, . . . , Yi−1,W,Xi) et que sachant Xi, Yi estindépendante des Y1, . . . , Yi−1,W donc H(Yi|Y1, . . . , Yi−1,W,Xi) = H(Yi|Xi).

Donc nR ≤ 1 + P(n)E nR + nC soit

R ≤ C

1− P(n)E

+1

n(1− P(n)E

Donc pour tout (2nR, n) code avec feedback tel que P(n)E → 0 quand n → ∞, on

doit avoir R ≤ C, ce qui suffit à conclure en vertu du théorème de codage de canal.

Canal à effacement

On cherche à déterminer la capacité C de ce canal.

C = max I(X ; Y ) = maxp(x)

H(Y )−H(α)

Posons π := P (X = 1), alors H(Y ) se réecrit

H(Y ) = H((1− π)α, α, π(1− α)) = H(α) + (1− α)H(π)

et donc C = 1− α.En fait, on savait qu’on ne pourrait pas faire mieux grâce au canal analogue avecfeedback. Cependant pour le canal à effacement avec feedback, la méthode de

Page 60: Introduction à la Théorie de l'Information et au Codage

60CHAPITRE 5. CANAUX DISCRETS SANS MÉMOIRE ET LEURS FONCTIONS CAPACITÉ-COÛT

transmission suivante est naturelle : le symbole reçu est transmis dans le canalfeednback, donc si e a été reçu, on peut réemettre jusqu’à transmission du bitvoulu. Dans ce cas on pourra transmettre au taux 1− α car la transmission d’unbit prend un temps aléatoire suivant une loi géométrique de paramètre de moyenne1

1−α. Donc pour transmettre k bits, il faut de l’ordre de n = k

1−αutilisations du

canal (lorsque k est grand).

Page 61: Introduction à la Théorie de l'Information et au Codage

Chapitre 6

Sources sans mémoire et leursfonctions taux-distorsion

6.1 La fonction taux-distorsion

Une source (discrète) émet une suite de symboles u dans un ensemble fini Uappelé l’alphabet de la source. Une source sans mémoire est caractérisée par sastatistique p(u) : la suite de symboles est une suite de v.a. Ui indépendantes etidentiquement distribuées (i.i.d.) de loi p.

Dans ce chapitre, nous considérons un encodage dans un alphabet de desti-nation V. Pour tout couple (u, v) ∈ U × V, d(u, v) ≥ 0 est l’erreur ou distortionassociée. Pour des vecteurs (u, v) ∈ Uk × Vk, on note d(u, v) =

∑ki=1 d(ui, vi).

Nous prendrons la convention : U = 0, . . . , r − 1 et V = 0, . . . , s − 1. Lamatrice de distorsion D est la matrice r × s à coefficients d(u, v).

Étant donné k > 0, une source et une fonction d’encodage, la distorsionmoyenne est alors :

E(d) = E[d(U, V )] =∑

u,v

p(u)p(v|u)d(u, v).

On définit alors la fonction

Rk(δ) = min I(U ;V ), E(d) ≤ kδ ,

où la minimisation est faite sur toutes les paires (U, V ) telles que U = (U1, . . . Uk)et les U1, . . . Uk sont i.i.d. de loi p(u).

61

Page 62: Introduction à la Théorie de l'Information et au Codage

62CHAPITRE 6. SOURCES SANS MÉMOIRE ET LEURS FONCTIONS TAUX-DISTORSION

Remarque 6.1.1 – p(v|u) peut être vue comme la probabilité de transitiond’un canal. On parlera alors de canal test.

– la fonction p(v|u) 7→ I(U ;V ) est continue donc elle atteint son minimumsur un compact.

– soit δmin =∑

u∈U p(u)minv d(v, u). On a E(d) ≥ kδmin, donc Rk(δ) est défi-nie pour δ ≥ δmin.

– la fonction δ 7→ Rk(δ) est clairement décroissante en δ.

Définition 6.1.1 La fonction taux-distorsion de la source est

R(δ) = infk

1

kRk(δ).

Théorème 6.1.1 La fonction δ 7→ Rk(δ) est convexe pour δ ≥ δmin.

Démonstration. Soit α1, α2 ≥ 0 avec α1 + α2 = 1. L’inégalité Rk(α1δ1 + α2δ2) ≤α1Rk(δ1) +α2Rk(δ2) s’obtient facilement en considérant les probabilités de transi-tion p(v|u) = α1p1(v|u) + α2p2(v|u) où pi est un canal test atteignant Rk(δi) pouri = 1, 2 et en utilisant la convexité de I(U ;V ).

Théorème 6.1.2 Pour une source discrète sans mémoire Rk(δ) = kR1(δ) pourtout k et δ ≥ δmin.

Démonstration. Soit p(v|u) une probabilité de transition atteignant Rk(δ), c’està dire telle que

I(U ;V ) = Rk(δ) et E[d(U, V )] ≤ kδ.

Comme les U1, U2, . . . , Uk sont indépendants, on a I(U ;V ) ≥∑ki=1 I(Ui;Vi). Avec

la notation δi = E[d(Ui, Vi)], on a I(Ui;Vi) ≥ R1(δi) donc I(U ;V ) ≥∑ki=1R1(δi).

Par le résultat de convexité démontré ci-dessus, on obtient :

k∑

i=1

R1(δi) ≥ kR1

(

1

k

k∑

i=1

δi

)

≥ kR1(δ),

où on utilise la monotonie de R1 dans la dernière inégalité. On a donc Rk(δ) ≥kR1(δ). Pour démontrer l’inégalité inverse, il suffit de considérer p(v|u) =∏k

i=1 p(vi|ui)où p(v|u) atteint R1(δ).

Corollaire 6.1.1 Pour une source discrète sans mémoire R(δ) = R1(δ) = min I(U ;V ), E[d] ≤

Page 63: Introduction à la Théorie de l'Information et au Codage

6.1. LA FONCTION TAUX-DISTORSION 63

Propriétés de R(δ) pour une source DSM :

- la fonction δ 7→ R(δ) est décroissante, convexe donc continue pour δ > δmin.Elle est également continue en δmin (exo !).

- Soit δmax = minv

u p(u)d(u, v) alors R(δ) = 0 si et seulement si δ ≥ δmax.En effet, soit v∗ = argmin

u p(u)d(u, v) alors l’encodage déterministe u→v∗ est tel que I(U ; v∗) = 0 et E[d] = δmax. Donc R(δ) = 0 pour δ ≥ δmax.Inversement si R(δ) = 0 alors le canal test doit avoir U et V indépendantset donc

E[d] =∑

p(u)p(v)d(u, v) ≥∑

v

p(v)δmax = δmax.

- Comme R(δ) est décroissante, convexe pour δ ≥ δmin et constante pour δ ≥δmax, R(δ) est strictement décroissante pour δmin ≤ δ ≤ δmax. En particulier,on a

R(δ) = minI(U ;V ), E[d] = δ pour δmin ≤ δ ≤ δmax.

- Dans le cas particulier où chaque ligne de D a au moins un 0 et chaquecolonne au plus un 0, on a δmin = 0 et E[d] = 0 ssi u → v ∈ v(u) =v, d(u, v) = 0 qui sont des ensembles disjoints par notre hypothèse. DoncR(0) = I(U ;V ) = H(U)−H(U |V ) = H(U).

Exemple 6.1.1:U = V = 0, 1 avec P (0) = p = 1− P (1) ≤ 1/2 et matrice de distorsion

D =

(0 11 0

)

On a δmin = 0, δmax = minp, 1 − p = p et R(0) = H(p). Pour 0 < δ < p,soit (U, V ) atteignant R(δ). On a I(U, V ) = H(U) − H(U |V ) = H(p) −H(U |V )et E[d] = P (U 6= V ) = δ. Donc par l’inégalité de Fano, on a H(U |V ) ≤ H(δ)et donc R(δ ≥ H(p) − H(δ). Pour obtenir l’inégalité opposée, il faut trouver(U, V ) tel que E[d] = δ et I(U ;V ) = H(p) − H(δ). Un candidat est de choisirp(u|v) = δ1(u 6= v)+(1−δ)1(u = v) puisqu’on a alors E[d] = δ et H(U |V ) = H(δ).Il faut donc vérifier qu’il est bien possible de choisir α = P (V = 0) tel queP (U = 0) = p. On calcule que p = α(1 − δ) + (1 − α)δ soit α = p−δ

1−2δ∈ [0, 1] car

0 < δ < p ≤ 1/2. Au final, on a montrer que

R(δ) =

H(p)−H(δ) 0 ≤ δ ≤ p,0 δ ≥ p.

Page 64: Introduction à la Théorie de l'Information et au Codage

64CHAPITRE 6. SOURCES SANS MÉMOIRE ET LEURS FONCTIONS TAUX-DISTORSION

6.2 Théorème de codage de source de Shannon

Soit U (k) = (U1, . . . , Uk) un vecteur representant les k premiers symbolesémis par une source. On suppose que ces k symboles sont ’compressés’en n bitsX(n) = (X1, . . . , Xn) et qu’il est possible à partir de ces n bits de les ’décoder’en k symboles de l’alphabet de destination : V (k) = (V1, . . . , Vk) de telle sorte que∑k

i=1E[d(Ui, Vi)] ≤ kδ. Il est facile de voir que l’on a nécessairement :

n

k≥ R(δ). (6.1)

En effet, par définition, on a I(U (k);V (k)) ≥ Rk(δ). De plus par l’inégalité dataprocessing, on a I(U (k);V (k)) ≤ I(X(k);V (k)) ≤ H(X(k)) ≤ n, ce qui implique queRk(δ)/k ≤ n/k et donc (6.1) découle (sans avoir fait l’hypothèse que la source estsans mémoire).

On voit donc qu’il faut au moins R(δ) bits pour représenter un symbole sourcesi la distorsion moyenne doit être inférieure à δ. Nous allons maintenant montrerqu’il ne faut ’pas plus de R(δ) bits’.

Définition 6.2.1 Un code de source de longueur k est un ensemble C = v1, . . . , vM ⊂Vk. Le taux du code est R = 1

klog2M .

Pour chaque suite de la source u = (u1, . . . , uk), f(u) est le mot code vi le plusproche de u :

d(u, f(u)) ≤ d(u, vj) ∀j ∈ 1, . . . ,M.

La distorsion moyenne de C est d(C) = 1k

u∈Uk p(u)d(u, f(u)), avec p(u) =p(u1) . . . p(uk).

Exemple 6.2.1: code (7, 4) de Hamming : U = V = 0, 1 avec p(0) = p(1) =

1/2 et D =

(0 11 0

)

. Chacun des 128 vecteurs binaires diffère d’au plus un bit

par rapport à un mot code donc

d(C) =1

7

(128− 16

128

)

=1

8.

Théorème 6.2.1 Soit δ ≥ δmin. Pour tout δ′ > δ et R′ > R(δ) pour k suffisamentgrand, il existe un codage de source C de longueur k avec M mots code tel que

– a) M ≤ 2⌊kR′⌋ ;

Page 65: Introduction à la Théorie de l'Information et au Codage

6.2. THÉORÈME DE CODAGE DE SOURCE DE SHANNON 65

– b) D(C) < δ′.

Démonstration. Soient R(δ) < R′′ < R′ et δ < δ′′ < δ′.

Pour un code C = v1, . . . , vM on définit les ensembles :

S = u, d(u, f(u)) ≤ kδ′′ (suites bien représentées par C),

T = u, d(u, f(u)) > kδ′′ (suites mal représentées par C).

On a donc

d(C) ≤ 1

k

u∈Sp(u)d(u, f(u))

︸ ︷︷ ︸

≤δ′′

+1

k

u∈Tp(u)d(u, f(u))

︸ ︷︷ ︸

≤B∑

u∈T p(u)

avec B = max d(u, v). On a donc

d(C) ≤ δ′′ +BP (d(u, f(u)) > kδ′′) , (6.2)

où la probabilité vient de l’aléa de la source. Pour être plus explicite, on définit

∆(u, v) =

1 si d(u, v) ≤ kδ′′

0 sinon.

On peut donc écrire (6.2) comme suit :

d(C) ≤ δ′′ +B∑

u

p(u)M∏

i=1

(1−∆(u, vi))

︸ ︷︷ ︸

K(C)

.

Il faut donc trouver un code de source C de longueur k avec au plus 2⌊kR′⌋

mots code et tel que K(C) < δ′−δ′′

B. Nous utilisons à nouveau un argument de

random coding. Soit p(u, v) la probabilité sur U×V qui atteint R(δ) : I(U ;V ) =R(δ) et E[d(U, V )] ≤ δ. On note les marginales par p(u) =

v p(u, v) et p(v) =∑

u p(u, v). On définit alors une probabilité sur Uk × Vk par p(u) =∏k

i=1 p(ui),p(v|u) = ∏k

i=1 p(vi|ui) de telle sorte que p(u, v) =∏k

i=1 p(ui, vi). On définit alorsune probabilité sur les codes de longueur k et ayant M mots code (vu comme desM-uplets de vecteurs de dimensions k) par :

p(C) =

M∏

i=1

p(vi) avec p(vi) =

k∏

j=1

p(vij).

Page 66: Introduction à la Théorie de l'Information et au Codage

66CHAPITRE 6. SOURCES SANS MÉMOIRE ET LEURS FONCTIONS TAUX-DISTORSION

Nous calculons la moyenne de K(C) sous cette probabilité :

E[K] =∑

v1...vM

p(v1) . . . p(vM)∑

u

p(u)M∏

i=1

(1−∆(u, vi))

=∑

u

p(u)

(∑

v

p(v)(1−∆(u, v)

)M

.

On définit maintenant

∆0(u, v) =

1 si d(u, v) ≤ kδ′′ et I(u; v) ≤ kR′′,0 sinon.

avec I(u; v) = log2

(p(v|u)p(v)

)

. Si δ0(u, v) = 1 alors p(v) ≥ 2−kR′′

p(v|u) et donc

E[K] ≤∑

u

p(u)

(

1− 2−kR′′∑

v

p(v|u)∆0(u, v)

)M

,

et donc en utilisant l’inégalité (1− xy)M ≤ 1− x+ e−yM valide pour 0 ≤ x, y ≤ 1et M > 0 avec x =

v p(v|u)∆0(u, v) et y = 2−kR′′

, on obtient

E[k] ≤ 1−∑

u,v

p(u, v)∆0(u, v) + exp(

−2−kR′′

M)

≤ P (d(U, V ) > kδ′′) + P (I(U ;V ) > kR′′) + exp(

−2−kR′′

M)

.

Le dernier terme tend vers 0 quand k tend vers l’infini car M = 2⌊kR′⌋ avec R′ > R′′.

Le fait que les deux premiers temes tendent également vers 0 découle de la loifaible des grands nombres. En effet, il suffit d’écrire : d(U, V ) =

∑ki=1 d(Ui, vi)

qui est une somme de k v.a. i.i.d. de moyenne E[d(U, V )] ≤ δ < δ′′. De mêmeI(U ;V ) =

∑ki=1 I(Ui;Vi) est une somme de v.a. i.i.d. de moyenne R(δ) < R′′.

Page 67: Introduction à la Théorie de l'Information et au Codage

Chapitre 7

Le théorème de codage source-canal

Un tel système est caractérisé par :- une v.a. U modélisant la source ;- une fonction d’encodage modélisé par p(X|U) ;- une probabilité de transition pour le canal p(Y |X) ;- une fonction de décodage p(V |Y ).

Coût moyen : β =1

nE[b(X)]

Distorsion moyenne : δ =1

kE[d(U, V )]

Taux de transmission : r =k

n

Le but est d’avoir des β et δ aussi petits que possible tandis que r est aussigrand que possible.Théorème 7.0.2 Pour une source et un canal donné :

1. Les paramètres β, δ, r doivent satisfaire r ≤ C(β)

R(δ)

2. Inversement étant donné β > βmin, δ > δmin et r < C(β)R(δ)

, il est possible de

construire une système tel que décrit ci-dessus avec β ≤ β, δ ≤ δ et r ≥ r

Démonstration.

67

Page 68: Introduction à la Théorie de l'Information et au Codage

68 CHAPITRE 7. LE THÉORÈME DE CODAGE SOURCE-CANAL

1. La suite (U,X, Y , V ) constitue une chaîne de Markov, donc I(U ;V ) ≤I(X; Y ). De plus E[b(X)] = nβ implique que I(X; Y )) ≤ Cn(β) et commeCn(β) ≤ nC(β), on a au final : I(X ; Y ) ≤ nC(β). De plus E[d(U, V )] = kδimplies that I(U ; (V )) ≥ kR(δ) et donc le point (a) est vérifié.

2. On vérifie que l’on peut choisir :

βmin ≤ β0 < β,

δmin ≤ δ0 < δ1 < δ

C ′ < C(β0),

R′ > R(δ0),

r <C ′

R′ .

Théorème de codage de source

Pour k0 suffisamment grand, il existe un code source C de longueur k0 avecM1 mots code tel que M1 ≤ 2⌊R

′k0⌋ et d(C) = 1k0E[dmin(U)] < δ1, avec

dmin(U) = mind(U, Vi), Vi ∈ C.Pour m défini plus tard, on note k = k0m. L’encodeur de source partitionneU = (U1, . . . , Uk) en m blocs de longueur k0 et émet m mots code de sourcecorrespondant à ces blocs, W = (W1, . . . ,Wk) est une suite de m mots codede C, le nombre de valeurs distinctes possibles pour W est inférieur ou égalà Mm

1 ≤ 2k0mR′

.

Encodeur de canal

On définit la distorsion pire cas du code C pour u ∈ Uk0 par dmax(u) =max d(u, vi), vi ∈ C , et la distorsion pire cas du code par D(C) =1k0E[dmax(U)] où l’espérance est par rapport a la statistique de la source.

On note ǫ = δ−δ1D(C)

et pour chaque m = 1, 2, . . . soit nm = ⌈mk0R′/c′⌉.

Théorème de codage de canal

Pour m suffisament grand, il existe un code x1, . . . , xM2 de longueur nm et

une règle de décodage tel que :

b(X i) ≤ nmβ

M2 ≥ 2⌈C′nm⌉ ≥ 2mk0R′

P(i)E < ǫ.

Page 69: Introduction à la Théorie de l'Information et au Codage

69

On suppose de plus que m est suffisament grand pour que r = knm

=k0m

⌈mk0R′

C′ ⌉≥ r, ce qui est possiblie puisque r < C′

R′ . On a également nβ =

E[b(X)] ≤ nβ.Il reste donc à prouver que δ ≤ δ.Le décodeur de canal est celui du théorème de codage de canal, le décodeurde source est celui dont la sortie V = (V1, . . . , Vk) de m mots code de sourcesi possible, sinon erreur.

B =

0 si Z = X1 sinon.

E[d(U, V )] = E[d(U, V ) | B = 0 ].P (B = 0) +E[d(U, V ) | B = 1].P (B = 1)

Si B = 0, d(U, V ) =m∑

l=0

dmin(Ul) avec U = (U1, . . . , Um) blocs de taille k0,

alors E[d(U, V ) | B = 0] = m.E[dmin(U)] < k0δ1m

Si B = 1, E[d(U, V ) | B = 1] ≤ m.E[dmax(U) | B = 1]

E[dmax(U) | B = 1] =

M2∑

i=1

E[dmax(U) | B = 1, X = Xi].P [X = Xi | B = 1]

=

M2∑

i=1

E[dmax(U) | X = Xi].P(i)E .

P (X = Xi)

P (B = 1)

E[dmax(U)|B = 1].P (B = 1) ≤ mǫ.E[dmax(U)] = k0m(δ − δ1) = k(δ − δ1)

Au final, on a δ = k−1E [d(U ;V )] < δ.

Page 70: Introduction à la Théorie de l'Information et au Codage

70 CHAPITRE 7. LE THÉORÈME DE CODAGE SOURCE-CANAL

Page 71: Introduction à la Théorie de l'Information et au Codage

Chapitre 8

Codes linéaires

8.1 Décodage par maximum de vraisemblance

Etant donné un canal et un code, on cherche un décodage minimisant la pro-babilité d’erreur, c’est à dire une fonction yj 7→ x∗

j pour j = 1, . . . , L.On a

1− Pe =L∑

j=1

p(yj)p(x∗j |yj),

où p(yj) ne dépend pas du décodage. On doit donc choisir x∗j qui maximise p(x|yj).

De manière similaire, si w est envoyé et v est reçu, il faut maximiser p(w|v) =p(w)

∏i p(vi|wi)

p(v)(dans le cas d’un canal sans mémoire).

Si tous les M symboles en entrée sont équiprobables alors le décodage optimalquand y est reçu est xi qui maximise p(y|xi) car :

p(xi|y) =p(xi)p(y|xi)

p(y)=

1

Mp(y)p(y|xi).

C’est le décodage par maximum de vraisemblance.Considérons maintenant un canal binaire symétrique (de probabilité d’erreur

ǫ ∈ (0, 1/2) ainsi qu’un code binaire de longueur n. Si tous les mots code sont équi-probables, alors le décodage par maximum de vraisemblance consiste à maximiser

p(v|w) = ǫd(w,v)(1− ǫ)n−d(w,v),

71

Page 72: Introduction à la Théorie de l'Information et au Codage

72 CHAPITRE 8. CODES LINÉAIRES

où d(w, v) est la distance de Hamming entre le mot reçu v et le mot code w. Pourun mot reçu fixé v, on note di = d(wi, v) la distance de Hamming entre le i-èmemot code et v. On a alors :

p(v|w1)

p(v|w2)=

(1− ǫ

ǫ

)d2−d1

.

Donc pour 0 < ǫ < 1/2, on a 1−ǫǫ

> 1 et donc p(v|w1) > p(v|w2) si et seulement sid1 < d2.

On a donc pour un canal binaire symétrique et un code dont tous les motscode sont équiprobables : le décodage minimisant la probabilité d’erreur consisteà minimiser la distance de Hamming, i.e. choisir le mot code le plus proche pourla distance de Hamming du mot reçu. Si il y a plusieurs mots code à distanceminimale, la probabilité d’erreur ne dépend pas du choix du mot code.

8.2 Géométrie de Hamming

Nous formalisons la notion de bon code ayant des mots code élpoignés.La distance de Hamming pour des mots non nécessairement binaires est dH(x, y) =

wH(x− y) =∑

i 1(xi 6= yi)Soit C = x1, . . . , xM un code de longueur n.On veut que C soit capable de corriger les erreurs de poids ≤ e.On envoie xi, et y = xi+z est reçu ; si wH(z) ≤ e alors xi = x. Le code est capablede corriger les erreurs de poids ≤ e ssi la distance entre chaque pair de mots codeest supérieur ou égale à 2e+ 1, i.e. dH(xi, xj) ≥ 2e+ 1 ∀i, jSoit dmin(C) = min(dH(x, x

′, x 6= x′ x, x′ ∈ C)) la distance minimale du code C.

Théorème 8.2.1 Un code C = x1, . . . , xM est capable de corriger toutes leserreurs de poids ≤ e ssi dmin(C) ≥ 2e+ 1

Théorème 8.2.2 Si un code sur un alphabet à q lettres et de longueur n est consti-tué de s mots code et corrige toutes les erreurs de poids ≤ e alors

s ≤ qn∑e

i=0

(ni

)(q − 1)i

Démonstration. Toutes les boules v, dH(wi, v) ≤ e doivent être disjointes et lecardinal de ces boules est

∑ei=0

(ni

)(q − 1)i d‘où l’inégalité.

Page 73: Introduction à la Théorie de l'Information et au Codage

8.3. CODES LINÉAIRES 73

Cette condition n’es pas suffisante comme montré par l’exemple suivnat :prendre en binaire, i.e q = 2, e = 1 et n = 4 de telle sorte que ⌊2n/(n + 1) =16/5⌋ = 3. Cependant il n’existe pas de code corrigeant une erreur avec plus de 2mots code.

8.3 Codes linéaires

X = Fq = 0, 1, . . . , q − 1 avec q un nombre premier

Définition 8.3.1 Un (n, k) code linéaire sur Fq est un sous-espace de dimentionk de F n

q , n est la longueur du code, k = dimension du code, taux = k/n.

Un code est décrit par k mots code linéairement indépendant x1, . . . , xk.Chaque mot code et l’un des qk combinaison linéaire

k∑

i=1

αixi, αi ∈ Fq

Définition 8.3.2 Soit C un (n, k) code linéaire sur Fq. Une matrice G dont l’es-pace engendré par les lignes est C est une matrice générant C.

Exemple 8.3.1:(5, 1) code C1, G =

(1 1 1 1 1

)

Exemple 8.3.2:(7, 4) code

G =

1 0 0 0 0 1 10 1 0 0 1 0 10 0 1 0 1 1 00 0 0 1 1 1 1

est le code de Hamming (7, 4)

Encodage (n, k) code linéaire a qk mots code message u = (u1, . . . , uk) ∈ F kq

mot code x = uG.

Matrice de parité / parity check matrixéquation de parité a1x1 + a2x2 + · · ·+ anxn = 0 qui est satisfaite pour tout x ∈ Cl’espace des vecteurs a = (a1, . . . , an) est l’espace C⊥ appelé code dual de C.

Page 74: Introduction à la Théorie de l'Information et au Codage

74 CHAPITRE 8. CODES LINÉAIRES

C⊥ a pour dimension n− k, C⊥ est un (n, n-k) code. Une matrice de parité pourC est une matrice générant C⊥

Définition 8.3.3 C un (n,k) code linéaire sur Fq, une matrice H avec la pro-priété, Hxt = 0⇔ x ∈ C est appellée matrice de parité de C

Pour un code linéaire, dH(x, x′) = wH(x− x′) et x− x′ ∈ Cdonc dmin(C) = minwH(x), x ∈ C, x 6= 0Il suffit donc de calculer qk − 1 poids au lieu des qk(qk − 1)/2 distances entre lesdifférents mots code.

Théorème 8.3.1 Si C est un (n,k) code linéaire sur Fq, de matrice de parité H,dmin(C) = le plus petite nombre de colonnes de H qui sont linéairement dépen-dantes.

Démonstration.Hxt = 0 = x1c1 + x2c2 + · · ·+ xncn Y = Fq.

Corollaire 8.3.1 Si C est un (n,k) code linéaire alors n− k ≥ dmin(C)− 1.

Démonstration. n− k est le rang de H et c’est le nombre maximum de colonneslinéairement indépendantes.

8.4 Codes de Hamming (binaires)

Définition 8.4.1 H de taille m× 2m− 1 binaire telle que les colonnes de H sontles 2m − 1 vecteurs non nuls de Fm

2 dans un ordre donné. Alors les n = 2m − 1,k = 2m − 1−m code linéaire sur F2 de matrice de parité H est appelé un code deHamming de longueur 2m − 1.

D’après le théorème précédent, la distance minimale d’un code de Hammingest de 3. Un code de Hamming peut donc corriger une erreur.

De plus la boule de Hamming de rayon 1 contient en dimension n, exavtement1 + n mots. Donc un code corrigeant une erreur a au plus (comme nous l’avonsvu précédement) 2n/(n + 1) mots code différents. En prenant n = 2m − 1 commec’est le cas pour les codes de Hamming, on obtient : 22

m−1/2m = 22m−m−1 = 2k.

Donc les codes de Hamming sont des codes parfaits : les boules de rayon 1 autourdes mots code forment une partition de F n

2 .

Page 75: Introduction à la Théorie de l'Information et au Codage

8.5. DÉCODAGE DU SYNDROME 75

8.5 Décodage du syndrome

x est transmis, y est reçu, et on note z = y − x le motif d’erreur

Si zi 6= 0 il y a erreur sur le ième bits = Hyt = Hzt est appelé le syndrome et ne dépend que du motif d’erreur.L’ensemble des solution en z de Hzt = s forme un coset du code C du type :C + z0 = x+ z0, x ∈ C

Il y a qn−k cosets de C correspondants aux qn−k syndromes possibles. Chaquecoset contient exactement qk éléments. Pour distinguer parmi les qk éléments ducoset celui correspondant au motif d’erruer, il faut faire des hypothèses sur le canal.Pour le canal binaire symétrique avec probabilité d’erreur ǫ < 1/2, on choisit z depoids minimal dans le coset.

Dans le cas du code de Hamming, si le motif d’erreur a poids 1 alors le syn-drome donne la colonne de H correspondant à l’endroit de l’erruer, i.e. le décodageconsiste a changer le bit correspondant.

Page 76: Introduction à la Théorie de l'Information et au Codage

76 CHAPITRE 8. CODES LINÉAIRES

Page 77: Introduction à la Théorie de l'Information et au Codage

Chapitre 9

Codes cycliques

9.1 Propriétés générales des codes cycliques

Définition 9.1.1 Un code (n, k) linéaire sur Fq est cyclique si pour tout mot codeC = (C0, . . . , Cn−1) le shift droit de C : CR = (Cn−1, C0, . . . , Cn−2) est aussi unmot code.

Exemple 9.1.1:

Les codes à répétition.

Exemple 9.1.2:

Le (7, 3)-code sur F2 de matrice :

G =

1 0 1 1 1 0 00 1 0 1 1 1 00 0 1 0 1 1 1

en effet :

L1CR

→ L2CR

→ L3CR

→ L1 + L2CR

→ L1 + L2 + L3CR

→ L1 + L3CR

→ L2 + L3CR

→ L1

77

Page 78: Introduction à la Théorie de l'Information et au Codage

78 CHAPITRE 9. CODES CYCLIQUES

Exemple 9.1.3:

Le (4, 2)-code sur F3 de matrice :

G =

(1 0 2 01 1 2 2

)

en effet :

L1CR

→ 2L1 + L2CR

→ 2L1CR

→ L1 + 2L2CR

→ L1

et

L2CR

→ L1 + L2CR

→ 2L2CR

→ 2L1 + 2L2CR

→ L2

Définition 9.1.2 La fonction génératrice d’un mot code C = (C0, . . . , Cn−1) estle polynôme C(X) = C0 + . . .+ Cn−1X

n−1

Théorème 9.1.1 Si C = (C0, . . . , Cn−1) est un mot code de fonction génératriceC(X) alors la fonction génératrice de CR est CR(X) = XC(X) mod (Xn − 1)

Démonstration. On a par définition :

C(X) = C0 + . . . Cn−1Xn−1

XC(X) = XC0 + . . . Cn−1Xn

CR(X) = Cn−1 + C0X + · · ·+ Cn−2Xn−1.

Donc XC(X)− CR(X) = Cn−1(Xn − 1) et,

XC(X) mod (Xn − 1) =[CR(X) mod (Xn − 1)

]+[XC(X)− CR(X) mod (Xn − 1)

]= C

Notation : [P (X)]n = P (X) mod (Xn − 1).On a en particulier, ∀i X i mod (Xn − 1) = [X i]n = X i mod n

Page 79: Introduction à la Théorie de l'Information et au Codage

9.1. PROPRIÉTÉS GÉNÉRALES DES CODES CYCLIQUES 79

Théorème 9.1.2 Si C est un code (n, k) cyclique et si C(X) est un mot code (onidentifie mot code et fonction génératrice d’un mot code) alors ∀P (X) [P (X)C(X)]nest aussi un mot code.

Démonstration. Découle du théorème précédent et de la linéarité du code.

Définition 9.1.3 Une fonction génératrice de degré minimal dans C est appeléegeneratrice du code C.

Exemple 9.1.4:

Reprenons l’exemple 9.1.2C1(X) = 1 +X2 +X3 +X4 est un polynôme générateur de C.

Exemple 9.1.5:

Reprenons l’exemple 9.1.3C1(X) = 1 + 2X2 est un polynôme générateur de C.Remarquons que les polynômes générateurs ne sont pas uniques 2C1(X) = 2+X2

est aussi polynôme générateur.

Le lemme suivant montre qu’il existe un unique polynôme générateur unitaire.

Lemme 9.1.1 Soit C un code cyclique de générateur g(X)

1. Si g(X) est un autre polynôme générateur alors g(X) = λg(X) avec λ ∈ Fq

2. Si P (X) est un polynôme tel que [P (X)]n est un mot code alors g | P

Démonstration.2. : On a P (x) = Q(x)g(x) + R(x) or [P (X)]n et [Q(X)g(X)]n sont des mots

codes donc R(X) est un mot code de degré strictement inférieur à g c’est donc 0.1. : découle directement de 2.

Théorème 9.1.3 1. Si C est un code (n, k) cyclique sur Fq alors son généra-teur g est un diviseur de Xn− 1 de plus C = (C0, . . . , Cn−1) est un mot codessi il est divisible par g et k = n− deg g.

Page 80: Introduction à la Théorie de l'Information et au Codage

80 CHAPITRE 9. CODES CYCLIQUES

2. Inversement si g est un diviseur de Xn − 1 alors il existe un (n, k) codecyclique de générateur g avec k = n−deg g. C’est exactement l’ensemble desvecteurs (C0, . . . , Cn−1) de fonction génératrice divisible par g.

Démonstration.1. : Soit P (X) = Xn−1 alors [P (X)]n = 0 donc est un mot code par conséquent

le lemme nous donne que g | P .⇐= immédiat d’après le théorème précédent car g est un mot code.=⇒ Immédiat d’après le lemme précédent car si C mot code alors C(X) = [C(X)]ndonc C(X) = I(X)g(X) avec deg I ≤ n− 1− deg g.

2. : Soit g(x) | Xn − 1. C(X) est un multiple de g ssi C(X) = I(X)g(X) et ilest facile de voire que le code est un code (n, k)-linéaire.Pour montrer que le code est cyclique on montre que [XI(X)g(X)]n est un motcode. Or

[xI(x)g(x)]n mod g(x) = xI(x)g(x) mod (xn − 1) mod g(x)

= xI(x)g(x) mod g(x) car g(X) | Xn − 1

= 0

Définition 9.1.4 On appelle polynôme de parité d’un code C le polynôme h(X) =Xn−1g(X)

avec g générateur de C.

Corollaire 9.1.1 Soit C un code (n, k) cyclique de générateur g et de polynômede parité h.On définit :

G1 =

g0 . . . gr 0 . . . 0

0. . .

. . .. . .

......

. . .. . .

. . . 00 . . . 0 g0 . . . gr

=

g(X)Xg(X)

...Xk−1g(X)

et

H1 =

hk . . . h0 0 . . . 0

0. . .

. . .. . .

......

. . .. . .

. . . 00 . . . 0 hk . . . h0

La matrice G1 génère le code C et sa matrice de parité est donnée par H1. De plusle vecteur I = (I0, . . . , Ik−1) est encodé par C = IG1 i.e. C(X) = I(X)g(X).

Page 81: Introduction à la Théorie de l'Information et au Codage

9.2. CLASSIFICATION DES CODES BINAIRES CYCLIQUES DE LONGUEUR 781

Démonstration. le produit scalaire de la i-ème ligne de G et de la j-ème lignede H est le coefficient de xk−i+j du produit h(x)g(x). Cependant par définitionh(x)g(x) = xn − 1 et comme k − i+ j ∈ [1, n− 1], ce coefficient est nul.

9.2 Classification des codes binaires cycliques de

longueur 7

On a :

X7 − 1 = (1 +X2 +X3 +X4)(1 +X2 +X3)

= (1 +X)(1 +X +X3)(1 +X2 +X3)

d’où :

(n, k) g(X)(7, 7) 1(7, 6) X + 1(7, 4) X3 +X + 1 code de Hamming(7, 4) X3 +X2 + 1 code de Hamming(7, 3) (X + 1)(X3 +X + 1) Exemple 9.1.2(7, 3) (X + 1)(X3 +X2 + 1) Exemple 9.1.2 à l’envers(7, 1) (X3 +X2 + 1)(X3 +X + 1) code à répétition(7, 0) X7 − 1

Remarque : Le polynôme g(x) = x3+x+1 divise xn−1 pour tout n multiple de7. Il est donc possible de construire des codes (7, 4), (14, 11), (21, 18), . . . cependanttous ces codes sauf le premier contiennent un vecteur de fonction génératrice x7−1donc ont une distance minimum de égale à 2 et ne peuvent pas être utilisés pourcorriger des erreurs.

Définition 9.2.1 Le plus petit entier n tel que g(x)|xn − 1 est la période de g(x)(car c’est la période de la suite xi mod g(x)i≥0).

Page 82: Introduction à la Théorie de l'Information et au Codage

82 CHAPITRE 9. CODES CYCLIQUES

Page 83: Introduction à la Théorie de l'Information et au Codage

Chapitre 10

Corps finis

Théorème 10.0.1 Si π(x) est irréductible sur F(p) et a degré m. Alors l’ensembledes polynômes de degré ≤ m−1 à coefficients dans F(p) avec les opérations moduloπ(x) forme un corps d’ordre pm.

On note α la classe d’équivalence du polynôme x. Par construction π(α) = 0.F(pm) est constitué de tous les polynômes en α de degré ≤ m − 1 à coefficientsdans F(p).

10.1 Introduction

Définition 10.1.1 La caractéristique d’un corps fini F est le plus petit entier ptel que 1 + 1 + . . .+ 1 = 0 (où 1 apparaît p fois).

Remarque : Soit F de caractéristique p (premier) et de cardinal q. Si p = q alorsF = F (p), et si q > p, alors on peut choisir un ensemble maximal β0 = 1, . . . βm−1d’éléments de F linéairement indépendants sur F (p).

F est un e.v. de dimension m sur F (p) et contient q = pm éléments. On note F⋆

les q − 1 éléments non nuls de F.

Théorème 10.1.1 F⋆ est un groupe multiplicatif cyclique d’ordre pm − 1.

83

Page 84: Introduction à la Théorie de l'Information et au Codage

84 CHAPITRE 10. CORPS FINIS

Démonstration. Par définition, F⋆ est un groupe multiplicatif.Soit α ∈ F

⋆. Comme |F⋆| = pm−1, αi a au plus pm−1 valeurs différentes. Il existedonc r, 1 ≤ r ≤ pm− 1, tel que αr = 1. Le plus petit r vérifiant cette propriété estappelé l’ordre de α.Soit α un élément de F⋆ d’ordre r maximal. Montrons que l’ordre l de tout élémentβ de F

⋆ divise r.Soit π premier tel que r = πar′ et l = πbl′ avec pgcd (r′, π) = pgcd (l′, π) = 1.απa

a pour ordre r′ et βl′ a pour ordre πb, donc απa

βl′ a pour ordre πbr′.Par conséquent, πbr′ ≤ r = πar′, soit b ≤ a.Cela montre que l divise r.Pour tout β ∈ F

⋆, β est donc solution de Xr − 1 = 0.∏

β∈F⋆ (X − β) divise Xr − 1, donc r ≥ pm − 1, et donc r = pm − 1 et F⋆ est

cyclique.

Corollaire 10.1.1 (Petit théorème de Fermat) Tout élément β d’un corps Fd’ordre pm satisfait l’identité βpm = β, donc Xpm −X =

β∈F (X − β).

Un élément α de F est dit primitif si son ordre est pm − 1.

Théorème 10.1.2 Tout corps fini a un élément primitif.

Démonstration. Il suffit de prendre un élément générant F⋆.

10.2 Polynômes minimaux

Définition 10.2.1 Le polynôme minimal sur F (p) de β est le polynôme unitaireM de degré minimal, à coefficients dans F (p), tel que M (β) = 0.

Propriétés des polynômes minimaux :Soit M (X) polynôme minimal de β dans F (pm).

(M1) M (X) est irréductible.

(M2) Si f (X) est un polynôme à coefficients dans F (p) tel que f (β) = 0, alorsM (X) divise f (X).

Démonstration. On écrit la division euclidienne de f par M :

f (X) = a (X)M (X) + r (X) deg r ≤ degM − 1

Page 85: Introduction à la Théorie de l'Information et au Codage

10.2. POLYNÔMES MINIMAUX 85

0 = 0 + r (β)⇒ r (β) ≡ 0

Donc r est le polynôme nul.

(M3) M (X) divise Xpm −X.

(M4) degM (X) ≤ m.

Démonstration. F (pm) est un espace vectoriel de dimension m sur F (p).

(M5) Le polynôme minimal d’un élément primitif de F (pm) a pour degré m. Untel polynôme est appelé polynôme primitif.

Démonstration. Soit β un élément primitif de polynôme minimal M (X)de degré d. On peut utiliser M (X) pour générer F d’ordre pd (comme dansle Théorème 10.0.1), F contient β et donc tout F (pm) donc d ≥ m.

Remarque : si un polynôme irréductible π est utilisé pour construire F (pm),et si α dans F (pm) est racine de π (X), alors π (X) est le polynôme minimalde α.

Théorème 10.2.1 Tous les corps finis d’ordre pm sont isomorphes.

Démonstration. Soient F , G deux corps d’ordre pm et soit α un élémentprimitif de F de polynôme minimal M(x). Par (M3), M(x) divise xpm−x. Parle petit théorème de Fermat, il existe β ∈ G qui a pour polynôme minimalM(x). Il est ensuite facile de voir que l’application α ↔ β s’étant en unefonction bijective de F dans G qui préserve l’addition et la multiplication.

Exemple 10.2.1:

On se place dans F (23) défini soir par x3 + x+ 1 soit par x3 + x2 + 1.

X3 +X + 1 X3 +X2 + 1

000 = 0 000 = 0100 = 1 100 = 1010 = α 010 = γ001 = α2 001 = γ2

110 = α3 101 = γ3

011 = α4 111 = γ4

111 = α5 110 = γ5

101 = α6 011 = γ6

Page 86: Introduction à la Théorie de l'Information et au Codage

86 CHAPITRE 10. CORPS FINIS

Isomorphisme :α↔ γ3

Théorème 10.2.2 Pour tout nombre premier p et entier m ≥ 1, il existeun corps d’ordre pm qui est noté F (pm).

Démonstration. Pour m = 1, il s’agit de Z/pZ.Pour m > 1, on construit F1 = F (p) ,F2, . . . ,Fr jusqu’à contenir tous leszéros de Xpm − X dans Fr, qui est alors d’ordre pm. Soit f (x) un facteurirréductible de degré ≥ 2 de Xpm − X sur F (p) = F1. On l’utilise pourobtenir une extension F2 de F1...

Théorème 10.2.3– F (pr) contient un sous-corps F (ps) si et seulement si s divise r.– β ∈ F (pr) est dans F (ps) si et seulement si βps = β.

Exemple 10.2.2:

F (4) et F (8) sont deux extensions de F (2). F (16) a comme sous corps F (4)et F (2), mais pas F (8). F (64) a comme sous corps F (8), F (4), F (2), maispas F (16) ni F (32).

(M6) Conjugués et classes cyclotomiques : β et βp ont même polynôme minimal.En particulier, dans F (2m), β et β2 ont même polynôme minimal.

Exemple 10.2.3:

Soit β ∈ F (24) de polynôme minimal X4 +X3 + 1. Alors

(β2)4

+(β2)3

+ 1 =(β4 + β3 + 1

)2= 0

Donc par (M2) le polynôme minimal de β2 divise X4+X3+1. Mais (β2)8= β

et donc on peut utiliser le même argument pour montrer que le polynômeminimal de β divise celui de β2.

Deux éléments ayant le même polynôme minimal sont dits conjugués.

Page 87: Introduction à la Théorie de l'Information et au Codage

10.2. POLYNÔMES MINIMAUX 87

Exemple 10.2.4:

On se place dans F (24). Les éléments suivants (sur chaque ligne) ont mêmepolynôme minimal :

α, α2, α4, α8, α16 = αα3, α6, α12, α24 = α9, α18 = α3

α5, α10, α20 = α5

α7, α14, α28 = α13, α26 = α11, α22 = α7

Les puissances de α tombent dans des ensembles disjoints. Ce sont les classescyclotomiques.

Définition 10.2.2 L’opération de multiplier par p divise les entiers modulopm−1 en ensembles appelés classes cyclotomiques modulo pm−1. Classe cy-clotomique contenant s :

spk : 0 ≤ k ≤ ms − 1, ms = min (j : spj ≡ s [pm − 1])

Exemple 10.2.5:

Pour p=2 et m = 4, les classes cyclotomiques modulo 15 sont :

C0 = 0C1 = 1, 2, 4, 8C3 = 3, 6, 12, 9C5 = 5, 10C7 = 7, 14, 13, 11

Dans l’exemple précédent, les éléments 1, 2, 5, 7 sont des représentants declasse.

Définition 10.2.3 Soit M (i) (X) le polynôme minimal de αi dans F (pm).Par (M6), on a :

M (pi) (X) = M (i) (X)

Si i est dans la classe cyclotomique Cs, alors∏

j∈Cs(X − αj) divise M (i) (X)

dans F (pm).

(M7) Pour tout i dans Cs, M (i) (X) =∏

j∈CS(X − αj).

De plus, Xpm−1 =∏

sM(s) (X) où s parcoure l’ensemble des représentants

de classe.

Page 88: Introduction à la Théorie de l'Information et au Codage

88 CHAPITRE 10. CORPS FINIS

10.3 Comment trouver des polynômes irréductibles

Théorème 10.3.1 Pour tout corps F (q), Xqm − X est le produit de tous lespolynômes unitaires irréductibles sur F (q) dont le degré divise m.

Application: On prend q = 2.

m = 1 : X2 +X = X (X + 1)

et X est le polynôme minimal de 0 tandis que X + 1 est celui de 1 dans F(2).

m = 2 : X4 +X = X (X + 1)(X2 +X + 1

)

On a M (0)(X) = X + 1 et M (1)(X) = M (2)(X) = X2 +X + 1 ayant pour racinesα et α2.

m = 3 : X8 +X = X (X + 1)(X3 +X + 1

) (X3 +X2 + 1

)

Dans F(23) défini par α3 + α + 1 = 0, on a : M (1)(X) = M (2)(X) = M (4)(X) =X3 +X + 1 et M (3)(X) = M (6)(X) = M (5)(X) = X3 +X2 + 1.

Définition 10.3.1 Le polynôme réciproque de f (X) est Xdeg ff (X−1).

Les polynômes X3 +X +1 et X3 +X2 +1 sont réciproques. Plus généralement lepolynôme réciproque de

anXn + an−1X

n−1 + · · ·+ a1X + a0

est

a0Xn + a1X

n−1 + · · ·+ an−1X + an.

Si a0 6= 0, les racines du polynôme réciproque sont les inverses des racines dupolynôme. Le réciproque d’un polynôme irréductible est irréductible.

m = 4 : X16 +X = X (X + 1)(X2 +X + 1

) (X4 +X + 1

) (X4 +X3 + 1

)

(X4 +X3 +X2 +X + 1

)

Page 89: Introduction à la Théorie de l'Information et au Codage

10.4. EXERCICE 89

Eléments de F(24) défini par α4 + α + 1 = 0 :

0000 0 0

1000 1 1

0100 α α

0010 α2 α2

0001 α3 α3

1100 1 + α α4

0110 α + α2 α5

0011 α2 + α3 α6

1101 1 + α + α3 α7

1010 1 + α2 α8

0101 α + α3 α9

1110 1 + α + α2 α10

0111 α + α2 + α3 α11

1111 1 + α + α2 + α3 α12

1011 1 + α2 + α3 α13

1001 1 + α3 α14

Les classes cyclotomiques ont été calculées dans l’exemple précédent et on a :

M (1)(X) = X4 +X + 1

M (3)(X) = X4 +X3 +X2 +X + 1

M (5)(X) = X2 +X + 1

M (7)(X) = X4 +X3 + 1

10.4 Exercice

Pour tout entier positif m, on définit ϕ(m) comme le nombre d’entiers positifs≤ m qui sont premiers avec m. (i) Montrer que

ϕ(m) = m∏

p|m

(

1− 1

p

)

,

où les p sont premiers. (ii) Montrer que si a ∧m = 1 alors

aϕ(m) ≡ 1(mod m).

Page 90: Introduction à la Théorie de l'Information et au Codage

90 CHAPITRE 10. CORPS FINIS

– On a clairement pour p premier : ϕ(p) = p − 1 et plus généralement pourk ≥ 1, ϕ(pk) = pk − pk−1. Pour deux nombres premiers entre eux p et q,on ϕ(pq) = ϕ(p)ϕ(q). Donc pour m =

∏ℓi=1 p

kii où les pi sont des nombres

premiers distincts, on a :

ϕ(m) =

ℓ∏

i=1

pkii (1−1

pi) = m

ℓ∏

i=1

(1− 1

pi).

– Les entiers b premiers avec m inférieur à m constituent un sous-groupe mul-tiplicatif de Z/mZ (l’inversibilité découle de l’identité de Bezout). Ce sous-groupe a pour ordre ϕ(m) et d’après le Théorème de Lagrange, l’ordre detout élément de ce groupe divise ϕ(m) d’où le résultat.

Page 91: Introduction à la Théorie de l'Information et au Codage

Chapitre 11

Codes BCH(Bose-Chaudhuri-Hocquenghem)

11.1 Code de Hamming cycliques

Rappel : la matrice de parité d’un code de Hamming de longueur n = 2m − 1 apour colonnes les 2m − 1 m-uplets distincts et non nuls.

Si α ∈ F(2m) est un élément primitif, alors 1, α, . . . α2m−2 sont distincts et nonnuls, et peuvent être représentés par des m-ulpets. On définit le code de HammingHm avec paramètres n = 2m − 1, k = n − m, dmin = 3 par la matrice de paritéH =

(1 α · · · α2m−2

)où les αi sont remplacés pas les m-uplets correspondants.

Exemple 11.1.1: Code de Hamming H3

On se place dans le cas F(23) et α3 + α+ 1 = 0

H =

0 0 1 0 1 1 10 1 0 1 1 1 01 0 0 1 0 1 1

Un vecteur c = (c0 · · · cn−1) appartient àHm ssi HcT = 0 ssi c(α) = 0 où c(X) =c0 + c1X + · · ·+ cn−1X

n−1. Par la propriété (M2), on a c ∈ Hm ⇔ M (1)(X)|c(X)où M (1)(X) est le polynôme minimal de α.

Théorème 11.1.1 Le code de Hamming Hm ci-dessus est un code cyclique degénérateur le polynôme minimal de α.

91

Page 92: Introduction à la Théorie de l'Information et au Codage

92 CHAPITRE 11. CODES BCH (BOSE-CHAUDHURI-HOCQUENGHEM)

Un résultat précédent fournit la matrice générant Hm :

G =

M (1)(X) 0 · · · 0

0 XM (1)(X). . .

......

. . . . . . 00 · · · 0 Xn−m−1M (1)(X)

Exemple 11.1.2: Code de Hamming H3 (suite)Une matrice génératrice est

G =

1 1 0 11 1 0 1

1 1 0 11 1 0 1

De plus, on a h(X) = X7+1X3+X+1

= X4 +X2 +X + 1 et donc

H =

1 0 1 1 11 0 1 1 1

1 0 1 1 0

On remarque que H 6= H mais la dernière ligne de H peut s’obtenir comme lasomme des premières et dernières lignes de H .

11.2 Codes BCH corrigeant 2 erreurs

On commence par un exemple en reprenant le code de Hamming cyclique delongueur 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 6= j alors le syndrome est :

s = H ′i +H ′

j =

(αi + αj

f(αi) + f(αj)

)

On est donc amené à résoudre αi + αj = z1 et f(αi) + f(αj) = z2.Voici deux choix pour f qui ne sont pas judicieux :

Page 93: Introduction à la Théorie de l'Information et au Codage

11.2. CODES BCH CORRIGEANT 2 ERREURS 93

– f liné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) = x3 permet de corriger deux

erreurs. Avec f(x) = x3, on obtient αi + αj = z1 6= 0 et α3i + α3j = z2 =(αi+αj)(α2i+αi+j+α2j) = z1(z

21 +αiαj) de telle sorte que : αiαj = z2

z1+ z21. Donc

αi et αj sont solutions de l’équation du second degré :

X2 + z1X + (z2z1

+ z21) = 0 (11.1)

Décodage du code BCH corrigeant deux erreurs : pour y recu, on calcule s =HyT puis

– si z1 = z2 = 0, décider qu’il n’y a pas d’erreur– si z1 6= 0 et z2 = z31 , corriger une erreur en i tq z1 = αi

– si z1 6= 0 et z2 6= z31 corriger deux erreurs en i et j avec αi et αj racines de(11.1)

– sinon, détecter au moins 3 erreursS’il y a moins de deux erreurs, elles seront corrigées. On a donc démontré que

dmin ≥ 5 pour ce code.

Exemple 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 : α3 n’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 z2z1+ z21 = α2 +α13 = α14 et on

cherche donc les racines de X2 + α14X + α14 = (X + α6)(X + α8) et on retrouvebien les deux erreurs correspondant à α6 et α8 (donc en position 7 et 9).

Plus généralement, un code de longueur n = 2m − 1 corrigeant deux erreurs Cest donné par la matrice de parité

H =

(1 α α2 . . . α2m−2

1 α3 α6 . . . α3(2m−2)

)

.

On a alorsc ∈ C ⇔ HcT = 0

⇔ ∑n−1i=0 ciα

i = 0 et∑n−1

i=0 ciα3i = 0

⇔ ppcm(M (1)(X),M (3)(X)

)|c(X)

⇔ M (1)(X)M (3)(X)|c(X)

Page 94: Introduction à la Théorie de l'Information et au Codage

94 CHAPITRE 11. CODES BCH (BOSE-CHAUDHURI-HOCQUENGHEM)

où dans la dernière équivalence, on utilise le fait que M (1)(X) et M (3)(X) sontirréductibles et distincts (cf exo) et donc premiers entre eux.

Théorème 11.2.1 Le code binaire BCH C corrigeant deux erreurs a pour para-mètres n = 2m − 1, k = n− 2m et dmin ≥ 5

Démonstration. Le seul point à noter concerne la dimension :

k = n− 2m⇔ deg g(X) = 2m cf exo.

11.3 Facteurs de Xn − 1

Nous avons vu que le polynôme générateur d’un code cyclique de longueur nsur F (q) doit être un facteur Xn − 1.

On suppose que n et q sont premiers entre eux : n ∧ q = 1.Il existe un plus petit entier m tel que n|qm − 1 (exo). m est appelé l’ordre

multiplicatif de q modulo n.On a alors (exo) Xn − 1|Xqm−1 − 1 mais ne divise aucun des Xqs−1 − 1 pour

0 < s < m.Donc les racines de Xn− 1 qui sont appellées les racines n-ième de l’unité sont

dans l’extension de corps F (qm) et ne sont incluses dans aucun corps plus petit.Comme la dérivée de Xn − 1 est nXn−1 et que n ∧ q = 1, ces deux polynômes

sont premiers entre eux. Donc Xn−1 a n racines distinctes. En fait (exo), il existeune racine n-ième de l’unité primitive notée α, telle que

Xn − 1 =n−1∏

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 pm−1. Plus généralement,

la classe cyclotomique modulo n sur F (q) qui contient s est

Cs = s, sq, . . . , sqms−1 avec sqms ≡ s mod n.

On remarque que m1 = |C1| = m est l’ordre multiplicatif de q modulo n. Onobtient alors un partition

0, 1, . . . , n− 1 = ∪sCs,

Page 95: Introduction à la Théorie de l'Information et au Codage

11.4. CODES BCH CORRIGEANT T ERREURS 95

où s parcrout les représentants de classes mod n.

Exemple 11.3.1:Pour n = 9, q = 2, on obtient :

C0 = 0C1 = 1, 2, 4, 8, 7, 5C3 = 3, 6.

Donc m = 6 et X9 − 1 se décompose sur F (26).

Comme précédemment, on définit le polynôme minimal de αs par :

M (s)(X) =∏

i∈Cs

(X − αi).

C’est le polynôme unitaire de degré minimal à coefficients dans F (q) ayant αs

comme racine.On a alors

Xn − 1 =∏

s

M (s)(X), où s parcrout les représentants de classes.

C’est la factorisation de Xn − 1 en polynômes irréductible sur F (q).

Exemple 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 t erreurs

Théorème 11.4.1 Borne BCH : Soit C un code cyclique de polynome générateurg(X) tel que pour des entiers b ≥ 0 et δ ≥ 1, g(αb) = g(αb+1) = · · · = g(αb+δ−2) =0. Alors dmin ≥ δ.

Démonstration. Si c = (C0, c1, . . . , cn−1) ∈ C alors c(αb) = c(αb+1) = · · · =c(αb+δ−2) = 0 donc H ′cT = 0 avec

H ′ =

1 αb α2b . . . α(n−1)b

1 αb+1 α2(b+1) . . . α(n−1)(b+1)

......

......

1 αb+δ−2 α2(b+δ−2) . . . α(n−1)(b+δ−2)

.

Page 96: Introduction à la Théorie de l'Information et au Codage

96 CHAPITRE 11. CODES BCH (BOSE-CHAUDHURI-HOCQUENGHEM)

La matrice H ′ n’est pas forcément la matrice de parité entière. Il suffit cependantde montrer que toute combinaison de ≤ δ − 1 colonnes de H ′ sont linéairementindépendantes sur F (qm). Soit donc c de poids w ≤ δ − 1 avec ci 6= 0 ssi i ∈a1, a2, . . . , aw. Alors H ′cT = 0 implique :

αa1b . . . αawb

αa1(b+1) . . . αaw(b+1)

......

αa1(b+w−1) . . . αaw(b+w−1)

ca1...

caw

= 0.

Donc le déterminant de la matrice de gauche est nul, hors à un facteur α(a1+···+aw)b,c’est

det

1 . . . 1αa1 αaw

......

αa1(w−1) . . . αaw(w−1)

,

qui est un determinant de Vandermonde donc∏

i>j(αai − αaj ) 6= 0.

Exemple 11.4.1:Considérons les cas suivants :– Hm a pour polynome générateur M (1)(X) dont α et α2 sont racines (par la

proprité (M6)). Donc b = 1 et δ = 3. Ainsi dmin ≥ 3, en fait, on a égalitédans ce cas.

– le code C de générateur M (1)(X)M (3)(X). On a alors M (1)(α) = M (1)(α2) =M (1)(α4) = 0 et M (3)(α3) = 0 donc dmin ≥ 5.

Définition 11.4.1 Code BCH : Un code cyclique de longueur n sur Fq est uncode BCH(b, δ) si son polynôme générateur est :

g(X) = ppcmM (b)(X), . . . ,M (b+δ−2)(X)

i.e. le polynôme unitaire de degré minimal admettant αb, . . . , αb+δ−2 comme ra-cines. Par défaut, un code BCH(δ) est un code BCH(1, δ).

Il découle du résultat précédent que dmin ≥ δ.On a : c est un mot code ssi c(αb) = c(αb+1) = · · · = c(αb+δ−2) = 0. En

particulier, une matrice de parité pour le code est donnée par

H =

1 αb α2b . . . α(n−1)b

1 αb+1 α2(b+1) . . . α(n−1)(b+1)

......

1 αb+δ−2 . . . α(n−1)(b+δ−2)

,

Page 97: Introduction à la Théorie de l'Information et au Codage

11.5. CODES DE REED-SOLOMON 97

où chaque entrée est remplacée par la colonne correspondante de m éléments deF (q). Une fois le remplacement effectué, il y a m(δ− 1) lignes dans la matrice quine sont pas nécessairement toutes indépendantes donc la dimension du code estau moins n−m(δ − 1). On a donc :

Théorème 11.4.2 Un code BCH(b, δ) de longueur n sur F (q) a une dimensionk ≥ n−m(δ−1) (où m est l’ordre multiplicatif de q modulon n) et vérifie dmin ≥ δ.

Remarque 11.4.1 Un code BCH est dit primitif si n = qm − 1, c’est-à-dire si αest un élément primitif de Fqm

Exemple 11.4.2: Codes BCH binaires de longueur 15 (b = 1) :

δ g(X) exposant des racines dim dmin

1 1 15 13 M (1) 1, 2, 4, 8 11 35 M (1)M (3) 1, . . . , 4, 6, 8, 9, 12 7 57 M (1)M (3)M (5) 1, . . . , 6, 8, 9, 10, 12 5 7

9, 11, 13, 15 M (1)M (3)M (5)M (7) 1, . . . , 14 1 15

On remarque que les distances minimales des codes BCH(9) et BCH(11) sont lesmêmes.

Exemple 11.4.3: Codes BCH binaires de longueur 23 (b = 1) : Lesclasses cyclotomiques sont : C0 = 0, C1 = 1, 2, 4, 8, 16, 9, 18, 13, 3, 6, 12 etC5 = 5, 10, 20, 17, 11, 22, 21, 19, 15, 7, 14. Finalement, le polynôme X23 + 1 sefactorise en X23 + 1 = (X + 1)M (1)(X)M (5)(X) avec

M (1)(X) = X11 +X9 +X7 +X6 +X5 +X + 1

M (5)(X) = X11 +X10 +X6 +X5 +X4 +X2 + 1.

Le code BCH(5) a pour polynôme générateur g(X) = M (1)(X) car M (3)(X) =M (1)(X) et donc a pour dimension 23− deg(g) = 12. Sa distance minimale est enfait 7 ≥ 5 !

11.5 Codes de Reed-Solomon

Définition 11.5.1 Un code de Reed-Solomon sur F (q) est un code BCH(b, δ) delongueur n = q − 1 (i.e. m = 1).

Page 98: Introduction à la Théorie de l'Information et au Codage

98 CHAPITRE 11. CODES BCH (BOSE-CHAUDHURI-HOCQUENGHEM)

Comme Xq−1−1 =∏

β∈F (q)∗(X−β), le polynôme minimal de αi est simplement

M (i)(X) = X − αi. Donc le polynôme générateur du code est

g(X) = (X − αb)(X − αb+1) . . . (X − αb+δ−2)

Exemple 11.5.1:

On considère F (4) = 0, 1, α, β = α2 avec α2+α+1 = 0.Un code RS sur F (4)de longueur n = 3 avec δ = 2 et b = 2 a pour polynôme générateur g(X) = X −β.Les mots code sont : 000, 1α0, β0α, βα1, 01α, αβ0, 10β, 111, 0αβ, β10, 1βα, ααα, 0β1, α01, α01, α

La dimension d’un code RS est k = n−deg g(X) = n− δ+1. Donc dmin ≥ δ =n−k+1, hors n−k est égal au rang de la matrice de parité H donc n−k ≥ dmin−1.Au final, pour un code RS

dmin = δ = n− k + 1.

11.6 Le polynôme de Mattson-Solomon

On considère toujours α ∈ F (qm) qui est une racine n-ième de l’unité primitive.Le poynôme de Mattson-Solomon (MS) associé au veccteur a = (a0, . . . , an−1) avecai ∈ F (qm) est le polynôme dans F (qm)[Z] :

A(Z) =

n∑

j=1

AjZn−j,

avec Aj = a(αj) =∑n−1

i=0 aiαij.

Remarque 11.6.1 On a :

A0

A1...

An−1

=

1 1 1 . . . 11 α α2 . . . αn−1

1 α2 α4 . . . α2(n−1)

......

1 αn−1 . . . α(n−1)2

a0a1...

an−1

Pour un code BCH(1, δ), tous les mots codes a sont tels que A1 = A2 = · · · =Aδ−1 = 0.

Page 99: Introduction à la Théorie de l'Information et au Codage

11.6. LE POLYNÔME DE MATTSON-SOLOMON 99

Théorème 11.6.1 Formule d’inversion : Le vecteur a peut être retrouvé à par-tir de A(Z) par :

ai =1

nA(αi), pour i = 0, 1, . . . , n− 1

a(X) =1

n

n−1∑

i=0

A(αi)X i

Remarque concernant 1n

: on a n = 1 + 1 + · · ·+ 1︸ ︷︷ ︸

n fois

et 1n

est son inverse (qui

existe car on fait toujours l’hypothèse que n∧ q = 1). En particulier, en binaire, ndoit etre impaire et 1

n= 1.

La preuve découle des deux lemmes suivants :

Lemme 11.6.1 Soit ξ ∈ F (qm) racine de Xn − 1 alors

n−1∑

i=0

ξi =

0 si ξ 6= 1,n si ξ = 1.

Démonstration. Si ξ 6= 1, on a∑n−1

i=0 ξi = 1−ξn

1−ξ= 0.

Lemme 11.6.2 Le vecteur c = (c0, c1, . . . , cn−1) peut être retrouvé à partir dec(x) = c0 + c1x+ · · ·+ cn−1x

n−1 par

ci =1

n

n−1∑

j=0

c(αj)α−ij.

Démonstration.n−1∑

j=0

c(αj)α−ij =

n−1∑

j=0

n−1∑

k=0

ckαkjα−ij

=n−1∑

k=0

ck

n−1∑

j=0

αj(k−i)

= nci.

Polynôme locateur : soit un vecteur a = (a0, . . . an−1) avec ai ∈ F (q) etayant w composantes non nulles ai1 , . . . , aiw . On associe au vecteur a les élémentsde F (qm) définis par

X1 = αi1, . . .Xw = αiw ,

Page 100: Introduction à la Théorie de l'Information et au Codage

100 CHAPITRE 11. CODES BCH (BOSE-CHAUDHURI-HOCQUENGHEM)

qui sont appelés les locateurs de a et les éléments de F (q) :

Y1 = ai1 , . . . Yw = aiw .

Le vecteur a est complétement déterminé par la liste (X1, Y1), . . . (Xw, Yw).On a

a(αj) = Aj =

w∑

i=1

YiXji .

Le polynôme locateur de a est donné par :

σ(Z) =w∏

i=1

(1−XiZ) =w∑

i=0

σiZi, avec σ0 = 1.

Les coefficients σi sont les fonctions symmétriques élémentairesdes Xi :

σ1 = −(X1 + · · ·+Xw)

σ2 = X1X2 +X1X3 + · · ·+Xw−1Xw

...

σw = (−1)wX1 . . .Xw.

Théorème 11.6.2 Identités de Newton : Pour tout j, les Ai satisfont la re-currence :

Aj+w + σ1Aj+w−1 + · · ·+ σwAj = 0. (11.2)

En particulier, on a :

Aw Aw−1 . . . A1

Aw+1 Aw . . . A2...

...A2w−1 A2w−2 . . . Aw

σ1

σ2...σw

= −

Aw+1

Aw+2...

A2w

Démonstration. Dans l’équation :w∏

i=1

(1−XiZ) = 1 + σ1Z + · · ·+ σwZw,

en prenant Z = 1Xi

et en multipliant par YiXj+wi , on obtient :

YiXj+wi + σ1YiX

j+w−1i + · · ·+ σwYiX

ji = 0.

En sommant sur i = 1, . . . , w, on obtient (11.2).

Page 101: Introduction à la Théorie de l'Information et au Codage

11.7. DÉCODAGE DE CODES BCH 101

11.7 Décodage de codes BCH

On se restreint au cas binaire et b = 1 de telle sorte que la matrice de paritéest :

H =

1 α α2 . . . αn−1

1 α3 α6 . . . α3(n−1)

......

1 αδ−2 . . . . . . α(δ−2)(n−1)

Étape 1 : calcul du sydromeLe mot code envoyé est c = c0c1 . . . cn−1 et le mot code reçu est y = c+ e où e

est le motif d’erreur. Le syndrome est alors donné par :

s = HyT =

i yiαi

i yiα3i

...∑

i yiα(δ−2)i

=

y(α)y(α3)

...y(αδ−2)

=

A1

A3...

Aδ−2

,

avec Aℓ = y(αℓ).Étape 2 : trouver le polynôme locateur σ(z)On suppose que le motif d’erreur e a pour poids w et composantes non nulles

ei1 , . . . , eiw , donc que les erreurs ont eu lieu en i1, . . . iw. On définit Xr = αir pourr = 1, . . . , w et σ(z) =

∏wi=1(1−Xiz).

On a alors Aℓ = y(αℓ) = c(αℓ) + e(αℓ) = e(αℓ) pour 1 ≤ ℓ ≤ δ − 1 donc dansle cas binaire Aℓ =

∑wi=1X

ℓi .

Le but est alors de trouver σ(z) de plus petit degré satisfaisant les identités deNewton étant donné A1, A2, . . . , Aδ−1.

Nous présentons un algorithme simple mais peu efficace ci-dessous.Étape 3 : trouver les racines de σ(z)La méthode la plus simple est de tester les différentes puissances de α. Il y a

une erreur en i si σ(α−i) = 0.

11.8 Forme usuelle des identités de Newton et dé-

codage de codes BCH

Soient X1, . . .Xw des indéterminées et

σ(z) =w∏

i=1

(1−Xiz)

Page 102: Introduction à la Théorie de l'Information et au Codage

102 CHAPITRE 11. CODES BCH (BOSE-CHAUDHURI-HOCQUENGHEM)

Noter l’abus de notations qui prend sens par la suite...On définit pour tout i ≥ 1 :

Pi =

w∑

r=1

X ir.

Lemme 11.8.1 Si P (z) =∑∞

i=1 Pizi, on a σ(z)P (z) + zσ′(z) = 0

Démonstration. On remarque que

P (z) =

w∑

r=1

Xrz

1−Xrz, donc σ(z)P (z) =

w∑

r=1

Xrz

w∏

i=1,i 6=r

(1−Xiz),

or σ′(z) = −∑wr=1Xr

∏wi=1,i 6=r(1−Xiz) donc le lemme est démontré.

On a donc en regardant les coefficients du membre de gauche :

P1 + σ1 = 0

P2 + P1σ1 + 2σ2 = 0...

Pw + σ1Pw−1 + · · ·+ σw−1P1 + wσw = 0,

et pour i > w, on a :

Pi + σ1Pi−1 + · · ·+ σwPi−w = 0.

Dans le cas binaire, c’est à dire si les Xi sont dans un corps de caractéristique2, on remarque tout d’abord que P2k = P 2

k . Donc les 2-ième, 4-ième... équationsci-dessus ne sont pas des containtes pour σ et on a alors :

1 0 0 0 0 . . . 0P2 P1 1 0 0 . . . 0P4 P3 P2 P1 1 . . . 0. . . . . . . . . . . . . . . . . . . . .

P2w−2 P2w−3 . . . . . . . . . . . . Pw−1

σ1

σ2

σ3...σw

=

P1

P3

P5...

P2w−1

. (11.3)

Ceci permet de démontrer le théroème suivant :

Théorème 11.8.1 Dans un corps de caractéristique 2 et si les (Xi)wi=1 sont deux

à deux distincts et non nuls, la matrice de taille ν × ν donnée par

Mν =

1 0 0 0 0 . . . 0P2 P1 1 0 0 . . . 0P4 P3 P2 P1 1 . . . 0. . . . . . . . . . . . . . . . . . . . .

P2ν−4 P2ν−5 . . . . . . . . . . . . Pν−3

P2ν−2 P2ν−3 . . . . . . . . . . . . Pν−1

Page 103: Introduction à la Théorie de l'Information et au Codage

11.8. FORME USUELLE DES IDENTITÉS DE NEWTON ET DÉCODAGE DE CODES BCH103

est non singulière si w = ν ou w = ν − 1 et est singulière si w < ν − 1.

Démonstration.(i) Si w < ν − 1, alors

01σ1

. . .σν−2

= 0,

d’après (11.3).(ii) Si w = ν alors

detMν =∏

1≤i<j≤ν

(Xi +Xj) . (11.4)

En effet, on a Pi =∑w

r=1Xir, donc si Xi = Xj pour i 6= j, on a Pi =

r 6=i,j Xir

et detMν = 0 par le point (i). Donc le membre de gauche doit être divisiblepar le membre de droite. Montrons maintenant que detMν est homogènede degré ν(ν − 1)/2. Soit γ(j, k) l’indice de P correspondant au coefficientMν(j, k) de la matrice. Par exemple, γ(2, 1) = 2, γ(2, 2) = 1... On prendcomme convention si le coefficient est 1 : γ(1, 1) = 0 et si le coefficient est 0 :γ(1, 2) = −∞. On a alors γ(ν, k) = 2ν − 1 − k et γ(j, ν) = 2j − 1 − ν pour2j ≥ ν + 1 et γ(j, ν) = −∞ pour 2j < ν + 1. On a donc pour k, j ≤ ν − 1et 2j ≥ ν + 1 :

γ(ν, k) + γ(j, ν) = ν − 2 + k − 2j

γ(j, k) = 2j − k − 1 donc,

γ(ν, k) + γ(j, ν)− γ(j, k) = ν − 1

On écrit maintenant : detMν =∑

s∈Sν

∏νi=1Mν(i, s(i)) et montrons par ré-

currence sur ν que chacun des termes (non nul) de cette somme est homogènede degré ν(ν − 1)/2. On observe que le terme associé à la permutation s esthomogène de degré :

ν∑

i=1

γ(i, s(i)) = γ(ν, s(ν)) + γ(s−1(ν), ν) +∑

i 6=ν,s−1(ν)

γ(i, s(i)).

D’après l’hypothèse de récurrence, on a, si γ(ν, s−1(ν)) 6= −∞∑

i 6=ν,s−1(ν)

γ(i, s(i)) =(ν − 1)(ν − 2)

2− γ(ν, s−1(ν))

Page 104: Introduction à la Théorie de l'Information et au Codage

104 CHAPITRE 11. CODES BCH (BOSE-CHAUDHURI-HOCQUENGHEM)

Au final, on obtient :

ν∑

i=1

γ(i, s(i)) = γ(ν, s(ν)) + γ(s−1(ν), ν)− γ(ν, s−1(ν)) +(ν − 1)(ν − 2)

2

= ν − 1 +(ν − 1)(ν − 2)

2=

ν(ν − 1)

2

Donc detMν est homogène de degré ν(ν−1)/2, ce qui implique que les deuxtermes de (11.4) ne diffèrent que d’une constante. Il reste à montrer quecette constante vaut 1 et non 0. Pour ceci, il suffit de calculer chaque termepour des valeurs particulières des Xi. Si ν est impaire, on prend pour Xi lesracines ν-ième de l’unité. On a alors

Pi =ν∑

r=1

X ir =

0 si i 6≡ 0 mod ν1 si i ≡ 0 mod ν

On vérifie alors qu’il y a exactement un 1 par ligne et par colonne dansMν donc detMν = 1. De même pour ν paire, en prenant les racines deXν − X = 0, on aboutit aussi à detMν = 1. Donc dans les deux cas, on abien (11.4).

(iii) Si w = ν − 1, il suffit de prender X1 = 0 et d’utiliser (11.4).

En utilisant ce théorème, on a donc un algorithme itératif qui permet de trouverσ(z) pour un code BCH(δ = 2t+1) si w erreurs ont lieu avec w ≤ t (et w inconnu).

On suppose que t erreurs ont eu lieu et on essaye de résoudre (11.3) avec wremplacé par t. D’après le théorème précédent, si t ou t−1 erreurs ont eu lieu, uneunique solution existe et on va directement à l’étape 3. Si moins de t − 1 erreursont eu lieu, les équations ne déterminent pas une solution. Dans ce cas, on supposeque t− 2 erreurs ont eu lieu et on recommence la procédure...

Exemple 11.8.1: Cas ν = 2. Le système est :(

1 0P 21 P1

)(σ1

σ2

)

=

(P1

P3

)

D’après le théorème précédent, ce système est inversible si w = 2 ou w = 1 maispas si w = 0. En effet on a P1 6= 0 pour w = 1, 2 alors que P1 = 0 pour w = 0.Dans le premier cas, on a donc σ1 = P1 et σ2 =

P3

P1+ P 2

1 . On trouve donc pour lepolynome localisateur

σ(z) = 1 + P1z +

(P3

P1+ P 2

1

)

z2 (11.5)

Page 105: Introduction à la Théorie de l'Information et au Codage

11.9. EXERCICES 105

On remarque que si w = 1 alors P3 = P 31 et σ(z) = 1 + P1z. On retrouve bien la

règle de décodage que l’on avait vue en Section 11.2 pour un code BCH binaire deparamètre δ = 5.

Exemple 11.8.2: Cas ν = 3. Le système à résoudre est :

1 0 0P 21 P1 1

P 41 P3 P 2

1

σ1

σ2

σ3

=

P1

P3

P5

De même, si w = 0, 1 alors le système n’est pas inversible. En effet si w = 1 alorsP3 = P 3

1 et les deux dernières lignes sont liées. Si w = 2 ou 3 alors le système estinversible. On calcule alors :

σ1 = P1

P3 = P 31 + P1σ2 + σ3

P5 = P 51 + P3σ2 + P 2

1 σ3

donc

σ2 =P 21P3 + P5

P 31 + P3

σ3 =P1P5 + P 3

1P3 + P6 + P 61

P 31 + P3

=P1P5 + P 3

1P3

P 31 + P3

+ P 31 + P3

On peut vérifier facilement que si w = 2, on a bien σ3 = 0 et on retrouve lepolynôme locateur (11.5).

11.9 Exercices

1. Pour p = 2 et n = 2m−1, montrer que les classes cyclotomiques C1 et C3 sontdistinctes et de même cardinal égale à m, pourvu que m ≥ 3. Qu’en est-ilpour C5 ? En déduire que la dimension du code BCH vu en cours corrigeantdeux erreurs est k = n− 2m.– On a toujours |Ci| ≤ m. Le fait que |C1| = m est évident. Pour m3 = |C3|,

on a : 3 · 2m3 ≡ 3[2m − 1], c’est à dire qu’il existe un entier k tel que3 · 2m3 = 3 + k(2m − 1), i.e.

k = 32m3 − 1

2m − 1donc si m3 < m,

2m3 − 1

2m − 1≤ 1

2et k = 1 ce qui est impossible.

Donc m3 = m1 = m et de plus 3 ∈ C3\C1 donc C1 6= C3.

Page 106: Introduction à la Théorie de l'Information et au Codage

106 CHAPITRE 11. CODES BCH (BOSE-CHAUDHURI-HOCQUENGHEM)

– Concernant C5, pour m = 4, on a C5 = 5, 10 donc m5 = 2.– dans la démonstration du cours, on a donc M (1)(X) et M (3)(X) qui sont

irréductibles et distincts de degré m. Donc le degré du polynôme générateurest 2m et la dimension du code en découle.

2. Pour le code BCH corrigeant deux erreurs vu en cours avec n = 24 − 1sur F(2), trouver les emplacements des erreurs si le sydrome est : s =(1001 0110)T ou (0101 1111)T .– En reprenant les notations du cours, on a z1 = 1 + α3 = α14 = α−1 etz2 = α + α2 = α5. On a bien z31 6= z2 et donc

z2z1

+ z21 = α6 + α13 = 1

Donc les erreurs ont eu lieu en i et 15− i avec αi +α−i = 1+α3. On testealors les valeurs possibles de i :

α + α−1 = 1 + α + α2

α2 + α−2 = 1 + α3,

donc les erreurs ont eu lieu pour i = 2 et i = 13, c’est à dire en positions3 et 14.

– On a z1 = α + α3 = α9 et z2 = 1 + α + α2 + α3 = α12. Donc z31 = z2 etl’erreur a eu lieu pour i = 9.

3. Dans la première version du cours, nous avons défini un code BCH binairede longueur 2m − 1 corrigeant deux erreurs en prenant comme fonctionf(x) = x3. Est-ce que le choix f(x) = x−1 est judicieux ? Obtient-on uncode cyclique ? Que dire quand m = 3 et F(23) est défini par α3 + α + 1 ?– En reprenant les notations du cours on aboutit alors au système d’équa-

tions : z1 = x + y et z2 = x−1 + y−1 avec x, y ∈ F(2m), non nuls.On a donc xy = z1

z2et on peut donc corriger deux erreurs comme dans

le cours. Plus généralement, on obtient un code cyclique de générateurM (1)(X)M (−1)(X) = M (1)(X)M (2m−2)(X). Pour m = 3, on a M (−1)(X) =M (3)(X), donc on retrouve le code BCH vu en cours.

4. Comme dans le cours, m est l’ordre multiplicatif de q modulo n. (i) Montrerque les racines de Xn−1 forment un sous-groupe cyclique de F (qm)∗. Montrerque les racines de Xn − 1 constituent le groupe multiplicatif d’un corps ssin = qm − 1.– le fait que les racines de l’unité constituent un sous-groupe multiplicatif deF (qm)∗ est évident. Soit α d’ordre maximal dans ce sous-groupe, disons r.Comme dans le cours, on montre que pour tout élément β d’orde ℓ, on aℓ|r. Pour π premier, si r = πar′ et ℓ = πbℓ′ avec π∧r′ = 1 et π∧ℓ′ = 1, alors

Page 107: Introduction à la Théorie de l'Information et au Codage

11.9. EXERCICES 107

απa

βℓ′ est d’ordre πbr′ donc b ≤ a et ℓ|r. On a donc toutes les racines del’unité qui satisfont Xr − 1 = 0, comme elles sont deux à deux distinctes,on a r = n.

– Si n = qm−1, l’implication est claire. Inversement, si les racines de l’unitéconstituent le groupe multiplicatif d’un corps. Ce corps est fini, contenudans F (qm) et contenu dans aucun coprs plus petit, c’est donc F (qm) etn = qm − 1.

5. Montrer que pour la définition plus générale de polynôme minimal vue encours, les propriétés (M1)-(M6) sont encore vraies.

– Soit M (s)(X) le polynôme minimal de αs défini par :

M (s)(X) =∏

i∈Cs

(X − αi).

– Montrons que M (s)(X) ∈ F (q)[X ]. On a

M (s)(X)q =∏

i∈Cs

(X − αi)q =∏

i∈Cs

(Xq − αqi) =∏

i∈Cs

(Xq − αi) = M (s)(Xq).

Donc si on écrit M (s)(X) =∑d

i=0 ciXi, on obtient :

M (s)(X)q =d∑

i=0

cqiXqi

M (s)(Xq) =d∑

i=0

ciXqi,

donc cqi = ci et donc ci ∈ F (q).– (M2) Si f(X) ∈ F (q)[X ] est tel que f(αs) = 0 alors M (s)(X)|f(X) (d’où le

nom polynôme minimal). En effet le calcul précédent montre que f(X)q =f(Xq) donc tous les αqrs sont racines de f .

– (M1) M (s) est irréductible. αs doit être racine d’un des facteurs irréductiblede M (s), disons P (X) et par (M2), M (s)(X)|P (X).

– (M3) M (s)(X)|Xqm −X car αs est racine de Xqm −X.– (M4) degM (s)(X) ≤ m car degM (s)(X) = ms avec ms le plus petit entier

tel que sqms ≡ s mod n or qm ≡ 1 mod n donc ms ≤ m.– (M5) m1 = m par définition.– (M6) clair par définition.

6. Montrer que le dual d’un code Reed-Solomon est un un code de Reed-Solomon.

Page 108: Introduction à la Théorie de l'Information et au Codage

108 CHAPITRE 11. CODES BCH (BOSE-CHAUDHURI-HOCQUENGHEM)

– Le polynôme générateur d’un code R-S est

g(X) = (X − αb) . . . (X − αb+δ−2)

donc le polynôme générateur du code dual est

h(X) =Xq−1 − 1

g(X)=

i 6=b,...,b+δ−2

(X − αi) = (X − αb+δ−1) . . . (X − αb+q−2)

7. Montrer que pour un code de Reed-Solomon de longueur n = qm − 1 et degénérateur

g(X) = (X − α)(X − α2) . . . (X − αd−1),

étendre chaque mot code c = c0 . . . cn−1 en rajoutant cn = −∑n−1i=0 ci produit

un code de longueur n+ 1, dimension n− d+ 1 et distance minimal d+ 1.– Rajouter cn ne change pas la dimension, il suffit de montrer que la distance

minimale est maintenant d+1, c’est à dire que le poids minimal d’un motcode non nul est d+ 1. C’est le cas si :

c(1) =n−1∑

i=0

ci = −cn 6= 0.

Comme c(X) = a(X)g(x) pour un certain a(X), on a c(1) = a(1)g(1). Ona g(1) 6= 0. Si a(1) = 0 alors c(X) est multiple de (X − 1)g(X) donc parla borne BCH vue en cours son poids est ≥ d+ 1.