Anda di halaman 1dari 104

Theorie de linformation

&
Codes correcteurs derreurs
Eric Fabre
Charge de Recherches INRIA
1er mars 2000
Contents
1 Les concepts de la theorie de linformation 6
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.1 Objectifs de la theorie de linformation . . . . . . . . . . . . . 7
1.1.2 Organisation du cours . . . . . . . . . . . . . . . . . . . . . . 9
1.2 La notion dinformation . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.1 Laissons parler lintuition... . . . . . . . . . . . . . . . . . . . 11
1.2.2 Sources dinformation, information moyenne . . . . . . . . . . 11
1.2.3 Mesurer linformation . . . . . . . . . . . . . . . . . . . . . . 12
1.3 Rappels de probabilites . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3.1 Variable aleatoire . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3.2 Loi conditionnelle . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.3 Loi des grands nombres . . . . . . . . . . . . . . . . . . . . . 19
2 Entropie - Information mutuelle 21
2.1 Entropie dune variable aleatoire . . . . . . . . . . . . . . . . . . . . 21
2.1.1 Denition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.2 Proprietes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.3 Interpretation . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2 Entropie jointe et entropie conditionnelle . . . . . . . . . . . . . . . . 24
2.2.1 Entropie jointe . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.2 Entropie conditionnelle . . . . . . . . . . . . . . . . . . . . . 24
2.2.3 Proprietes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.4 Generalisations - Formule des conditionnements successifs . . 27
2.3 Methode graphique pour le calcul entropique . . . . . . . . . . . . . 28
2.4 Entropie relative entre deux lois (distance de Kullback-Leibler) . . . 30
2.5 Information mutuelle entre deux variables aleatoires . . . . . . . . . 32
2.5.1 Denition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.5.2 Proprietes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.6 Information mutuelle conditionnelle . . . . . . . . . . . . . . . . . . . 33
2.6.1 Denition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.6.2 Proprietes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2
2.6.3 Formule des conditionnements successifs . . . . . . . . . . . . 35
2.7 Methode graphique pour le calcul entropique (suite) . . . . . . . . . 35
2.8 Theor`eme sur le traitement de linformation . . . . . . . . . . . . . . 36
3 Codage de source, compression de donnees 39
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.2 Propriete asymptotique dequirepartition (AEP) . . . . . . . . . . . 40
3.2.1 Denition de lAEP . . . . . . . . . . . . . . . . . . . . . . . 40
3.2.2 Application au codage . . . . . . . . . . . . . . . . . . . . . . 42
3.3 Classes de codes de source . . . . . . . . . . . . . . . . . . . . . . . . 44
3.3.1 Classes de codes . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.3.2 Inegalite de Kraft . . . . . . . . . . . . . . . . . . . . . . . . 45
3.4 Code de Shannon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.4.1 Minoration de la longueur moyenne optimale . . . . . . . . . 48
3.4.2 Majoration de la longueur moyenne optimale . . . . . . . . . 49
3.5 Code de Human . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.5.1 Quatre idees force . . . . . . . . . . . . . . . . . . . . . . . . 50
3.5.2 Mise en oeuvre (exemples) . . . . . . . . . . . . . . . . . . . . 51
3.5.3 Resultat fondamental . . . . . . . . . . . . . . . . . . . . . . 53
3.6 Code de Lempel-Ziv . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.6.1 Taux dentropie dune source . . . . . . . . . . . . . . . . . . 54
3.6.2 Algorithme de Lempel et Ziv . . . . . . . . . . . . . . . . . . 55
4 Transmission de donnees sur un canal bruite 57
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.2 Capacite de canal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.2.1 Notations, denition dun canal . . . . . . . . . . . . . . . . . 58
4.2.2 Capacite dun canal . . . . . . . . . . . . . . . . . . . . . . . 59
4.2.3 Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.2.4 Classication generale des canaux . . . . . . . . . . . . . . . 62
4.3 Theor`eme de Shannon . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.3.1 Denitions preliminaires . . . . . . . . . . . . . . . . . . . . . 63
4.3.2 Deuxi`eme theor`eme de Shannon . . . . . . . . . . . . . . . . 64
4.3.3 Preuve de la CN . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.3.4 Autre consequence de la CN . . . . . . . . . . . . . . . . . . . 67
4.3.5 Transmission sans erreur . . . . . . . . . . . . . . . . . . . . . 67
4.3.6 Une idee de la preuve de la CS . . . . . . . . . . . . . . . . . 68
4.4 Connexion dune source `a un canal . . . . . . . . . . . . . . . . . . . 68
4.4.1 Le probl`eme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.4.2 Theor`eme de separation . . . . . . . . . . . . . . . . . . . . . 69
4.5 Capacite dun canal avec feedback . . . . . . . . . . . . . . . . . . . 71
3
5 Introduction aux codes correcteurs 72
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.2 Codage et decodage : generalites . . . . . . . . . . . . . . . . . . . . 73
5.2.1 Code bloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.2.2 Distance de Hamming . . . . . . . . . . . . . . . . . . . . . . 74
5.2.3 Borne de Gilbert-Varshamov . . . . . . . . . . . . . . . . . . 75
5.2.4 Decodage `a distance minimale . . . . . . . . . . . . . . . . . 76
5.2.5 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.3 Codes lineaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.3.1 Denition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.3.2 Matrice generatrice . . . . . . . . . . . . . . . . . . . . . . . . 79
5.3.3 Matrice de contr ole . . . . . . . . . . . . . . . . . . . . . . . . 81
5.3.4 Code dual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.3.5 Decodage par syndrome . . . . . . . . . . . . . . . . . . . . . 84
5.4 Exemples de codes lineaires classiques . . . . . . . . . . . . . . . . . 85
5.4.1 Codes de Hamming . . . . . . . . . . . . . . . . . . . . . . . 85
5.4.2 Codes de Reed-Muller . . . . . . . . . . . . . . . . . . . . . . 86
5.4.3 Code de Golay . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.5 Transformations de codes . . . . . . . . . . . . . . . . . . . . . . . . 86
5.5.1 Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.5.2 Selection dun sous-code . . . . . . . . . . . . . . . . . . . . . 87
5.5.3 Augmentation . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.5.4 Perforation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.5.5 Raccourcissement . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.6 Combinaisons de codes . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.6.1 Produit cartesien . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.6.2 Juxtaposition . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.6.3 Concatenation . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.6.4 Produit de codes . . . . . . . . . . . . . . . . . . . . . . . . . 89
6 Codes cycliques 90
6.1 Denition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.2 Polynome generateur . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.3 Codage systematique . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
6.4 Matrice de contr ole . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.5 Code dual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.6 Factorisation de X
n
1 sur F
q
[X] . . . . . . . . . . . . . . . . . . . 95
6.6.1 Structure du corps F
q
. . . . . . . . . . . . . . . . . . . . . . 96
6.6.2 Construction du surcorps F
q
m . . . . . . . . . . . . . . . . . . 96
6.6.3 Factorisation de X
n
1 dans F
q
[X] . . . . . . . . . . . . . . 97
6.7 Exemples de codes cycliques classiques . . . . . . . . . . . . . . . . . 98
6.7.1 Codes BCH (Bose-Chaudhury-Hocquenghem) . . . . . . . . . 99
4
6.7.2 Codes BCH primitifs binaires . . . . . . . . . . . . . . . . . . 100
6.7.3 Codes RS (Reed-Solomon) . . . . . . . . . . . . . . . . . . . . 101
6.7.4 Code de Golay . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.8 Methodes de decodage . . . . . . . . . . . . . . . . . . . . . . . . . . 102
7 Codes convolutifs 103
8 Applications 104
5
Chapter 1
Les concepts de la theorie de
linformation
Ce chapitre decrit les objectifs de la theorie de linformation et ses fondements his-
toriques. Apr`es un aper cu de lorganisation du cours, une suite dexemples intuitifs
permet de cerner progressivement la notion dinformation. On denit ensuite les
notions de source dinformation et dentropie dune source. On nit par des rappels
de theorie des probabilites.
1.1 Introduction
La theorie de linformation (TI) ne sest erigee en discipline autonome que tr`es
progressivement, poussee par la force des concepts quelle a degages.
`
A lorigine,
les preoccupations de son fondateur, Claude Shannon
1
, etaient essentiellement pra-
tiques. Lidee de communications numeriques, `a partir de lechantillonnage suivi
de la quantication dun signal analogique, etait dans lair depuis quelques temps.
En partie pour lutter contre le bruit des transmissions analogiques (et peut-etre
pour faciliter le cryptage des messages `a transmettre...) Il sagissait alors de savoir
combien de bits du signal numerise etaient reellement utiles `a la comprehension du
message par le recepteur. La reponse `a cette question etait dautant plus delicate
que les canaux de transmission (hertziens par exemple) etant bruites, une partie de
cette information serait alteree avant datteindre son recepteur...
1
Claude Shannon, encore vivant aujourdhui(1999), est mondialement reconnu comme le p`ere
de la theorie de linformation. Un concensus tr`es large xe lav`enement de cette discipline `a 1948,
date de publication de larticle A mathematical theory of communication. Communication in
the presence of noise, publie lannee dapr`es, a rendu son auteur mondialement cel`ebre.
6
1.1.1 Objectifs de la theorie de linformation
Schematiquement, vu daujourdhui, on pourrait classer ces probl`emes en trois categories.
`
A chacun dentre eux Claude Shannon aura apporte une contribution fondamentale.
Mesurer linformation
Cela pose en fait deux questions : 1/ denir dabord la notion dinformation, et
2/ concevoir un moyen de la quantier. La premi`ere question est delicate car
elle semble faire appel `a beaucoup de suggestivite. Le plus simple est de denir
une source dinformation, qui ne sera rien dautre quune variable aleatoire. Pour
mesurer linformation apportee par une source, on utilisera la notion dentropie dune
source, concept central en TI. Cette quantite donne lieu `a beaucoup dinterpretations.
On verra que lentropie a une unite : le bit.
Comprimer linformation
Une signal digital, une image numerique, un chier informatique de texte, etc.
peuvent etre extremements redondants. Chacun a utilise un jour des logiciels de
compression qui permettent de recuperer de la place sur un disque dur. Plus
generalement, toutes les applications qui ont des besoins de stockage (bases de
donnees, CD audio, archivage INA des emissions radio et tele, botes noires davions,
etc.) ou des debits de transmission limites (television satellite ou par cable, radio
numerique, telephonie cellulaire ou laire, etc.) se posent la question de supprimer
au mieux la redondance.
Bien entendu, le procede na dinteret que sil est reversible... Du moins faut-il
savoir `a partir de quand la compression se fait avec pertes. Noter que la compression
avec pertes est utile. Tout un champ de recherche, notamment pour le son et limage
xe ou animee, se preoccupe de methodes de compression dont les pertes restent peu
sensibles `a lauditeur / au spectateur. Pour le son, on peut citer le telephone, qui
na pas la qualite du CD mais reste comprehensible, ou encore le minidisc, qui utilise
leet de masquage acoustique dun son par un autre. En video, citons les normes
MPEG, le codage visiophone, qui rafrachit plus souvent limage des l`evres que celle
du reste du visage, etc.
On verra que la limite de compression du signal issu dune source dinformation
est justement... lentropie de cette source. On verra aussi les algorithmes de com-
pression standard. Il sagit bien s ur dalgorithmes travaillant en aveugle, i.e. sans
connaissance sur le contenu semantique du train de bit `a comprimer.
Transmettre linformation
Comme on la dit plus haut, cest lun des probl`emes fondateurs de la TI.Il peut
se formuler ainsi : on dispose dun message forme dune suite de symboles puises
7
dans un alphabet /. Par exemple / = 0, 1 ou / = a, b, c, . . .. Ce message doit
etre transmis `a travers un canal bruite, qui peut alterer aleatoirement les symboles
(g. 1.1). Par exemple, zolicatu est emis et tolirotu est re cu. Les proprietes
statistiques du bruit sont connues. Pour lutter contre ces alterations, lidee est de
rajouter de la redondance dans le signal : cest ce que lon appelle le codage du
message. Cest en quelque sorte linverse de la compression... Par exemple, on
peut decider de repeter 3 fois le signal `a lemission. Ainsi, si lon re coit tolirotu,
zalicaru, zoticaru, par une r`egle majoritaire sur chaque lettre, on retrouve bien
zolicatu. Bien entendu, une decision majoritaire est plus facile `a mettre en oeuvre
sur des bits que sur des lettres...
.
.
.
a
b b
a
z
.
.
.
c
.
.
.
c
d
.
.
.
CANAL
bruit alatoire symboles
rception de
symboles altrs
mision de
Figure 1.1: Canal de transmission. Chaque lettre emise peut etre transformee en
une autre lettre par le bruit du canal. La loi de probabilite du bruit est connue. Par
exemple, un canal `a bruit additif dit que la lettre re cue est voisine de la lettre
emise (voisinage dans lalphabet). La probabilite de lalteration peut decrotre avec
limportance du decalage.
En repetant le signal 3 fois, on a construit un codage de linformation dont
le rendement est 1/3. En eet, il faut emettre 3 symboles pour chaque symbole
utile du message. Cette perte de rendement est le prix `a payer pour lutter contre
le bruit. Avant 1948 et les travaux de Shannon, le gens pensaient que lon ne
pouvait transmettre sans erreur sur un canal bruite quen augmentant inniment la
redondance du signal. Cest `a dire en faisant tendre le rendement vers zero (g 1.2)...
Shannon a montre que cette intuition etait fausse. En fait, on peut transmettre
sans erreur pour des rendements non nuls (g 1.2)! Il existe une valeur limite du
rendement, notee C, que lon appelle la capacite du canal. Si lon veut emettre avec
un rendement R superieur `a C, on est s ur de faire des erreurs : leet du bruit ne
pourra pas etre corrige. En revanche, pour R < C, il est possible de construire un
codage de rendement R et corrigeant toutes les erreurs. Bien entendu, apr`es une
courte periode dincredulite, ce resultat surprenant a rendu cel`ebre son auteur.
Le resultat de Shannon est un peu plus n en realite. Il sagit dun resultat
asymptotique : Shannon propose une suite de codes de rendement R < C. Ces
codes sont de plus en plus longs, cest `a dire prennent des mots de k symboles en
entree et construisent des mots de n = k/R symboles `a emettre. Et lorsque k tend
8
P
e

=

p
r
o
b
a
b
i
l
i
t

e
r
r
e
u
r
k
n
= R =
nb symboles utiles
nb symboles transmis
k
n
R =
1
0
0 1
1
0
0 1
P
e
C = capacit
Figure 1.2: Avant Shannon (`a gauche) on croyait que la probabilite derreur dune
transmission ne tendait vers 0 que si le rendement tendait vers 0, cest `a dire quil
fallait repeter de nombreuses fois un symbole pour etre s ur de sa transmission cor-
recte. Shannon a montre (`a droite) que cette repetition pouvait etre limitee : on
peut transmettre sans erreur pour des rendements non nuls, pour autant que ceux-ci
sont inferieurs `a la capacite du canal.
vers linni, alors la probabilite derreur tend vers zero. Comme on le verra, ces codes
sont inutilisables en pratique car ils nont pas de structure interne : le codage dune
suite de k symboles en un mot de n symboles `a transmettre se fait `a laide dune
table, et de meme pour le decodage. Lorsque k augmente, la taille du dictionnaire
explose, ce qui les rend inutilisables... Il faut recourir ` a dautres techniques pour
emettre avec peu derreurs, meme pour R < C. Cest tout le travail de conception
des codes correcteurs derreurs, qui doivent or susamment de structures pour
permettre codage et decodage `a laide dalgorithmes, non plus de tables.
1.1.2 Organisation du cours
Le cours se divise en trois grandes parties. Les deux premi`eres traitent des concepts
fondamentaux de la theorie de linformation : entropie et capacite de canal, et
reposent essentiellement sur la theorie des probabilites. La troisi`eme sinteresse
aux techniques de construction de codes correcteurs derreurs. Elle repose sur des
notions usuelles dalg`ebre (espaces vectoriels, division de polynomes, primalite...)
particularisees au cas des corps nis.
Introduction
Elle correspond au premier chapitre et cherche `a donner une comprehension intuitive
de la notion dinformation, et ` a presenter les objectifs de la TI. On y rappelle
quelques bases de probabilites.
9
Entropie et compression
Ces chapitres sattachent `a mesurer la quantite dinformation apportee par une
source dinformation, quantite que lon appellera lentropie de cette source. Di-
verses interpretations de cette quantite sont donnees. On introduit aussi la notion
dinformation mutuelle : linformation apportee par une source sur une autre. Les
proprietes de ces quantites sont largement explorees, et on developpe des r`egles de
calcul entropique. On sinteresse ensuite au codage de source, cest `a dire `a la
transmission
2
la plus economique (en nombre de bits utilises) de linformation pro-
duite par une source. Cela peut se voir comme un probl`eme de compression de
donnees. Le resultat important de cette section est le premier theor`eme de Shan-
non, etablissant une limite `a la compression sans perte. On verra en particulier un
algorithme classique de compression : lalgorithme de Lempel-Ziv.
Capacite de canal et transmission
Cette partie se preoccupe de transmission dinformation sur un canal bruite. Plusieurs
types de canaux de transmission y sont decrits, et lon sinteresse en particulier `a la
capacite dun canal. Comme pour lentropie, les proprietes et r`egles de calcul sont
explorees, par exemple lorsque lon combine plusieurs canaux (en serie, en parall`ele).
Le resultat important est ici le second theor`eme de Shannon, qui demontre que lon
peut transmette sans erreur sur un canal bruite, pourvu que le rendement du code
utilise ne depasse pas la capacite du canal.
Codes correcteurs et algorithmes de decodage
Ces derniers chapitres compl`etent le second theor`eme de Shannon, qui ne donne pas
de technique de codage utilisable pour des transmissions ables. On introduit les
concepts de code detecteur et correcteur derreur. En particulier, on sinteresse `a
des codes dits algebriques, cest `a dire ayant des proprietes structurelles fortes qui
facilitent le codage et le decodage. Ces codes sont au minimum des codes lineaires,
pour lesquels on verra les notions de matrice generatrice, de matrice de contr ole,
de syndr ome... (Quelques rappels dalg`ebre sur les corps nis seront faits.) Parmi
ces codes lineaires, on explorera quelques sous-classes tr`es largement utilisees : les
codes cycliques et les codes convolutifs. Les algorithmes de decodage associes seront
detailles ; on sinteressera en particulier aux notions de decodage soft, de decodage
hard, de decodage au maximum de vraisemblance. Quelques applications seront
enn detaillees (le compact disc), avec de nouvelles perspectives sur les techniques
de codage actuelles, en particulier les turbo-codes, codes les plus performants `a ce
jour.
2
on fait ici lhypoth`ese dun canal parfait
10
1.2 La notion dinformation
1.2.1 Laissons parler lintuition...
Les personnes qui parlent le plus dinformation sont... les journalistes! Et defait,
en observant la presse, quelques proprietes de linformation peuvent etre degagees.
Imaginons par exemple que deux pays entrent soudainement en guerre. Les journaux
en font la une le jour meme et augmentent leur tirage. Une semaine plus tard, on
en parle moins, et un mois apr`es, il nen est plus fait mention (meme si la guerre
continue). Si dimproviste un armistice est signe, la presse sy interesse `a nouveau,
avant de sorienter vers dautres evenements. Cela nous apprend tout dabord que
linformation est attachee ` a un evenement. Si lon se donne comme mesure de la
quantite dinformation le nombre de colonnes `a la une, on voit aussi quun evenement
contient dautant plus dinformation quil est imprevisible. Enn, troisi`eme le con, la
quantite dinformation depend du degre dimprevisibilite de levenement, pas de sa
nature.
On peut corroborer ces observations en consideranr une information toujours
donnee dans les journaux, dans une quantite constante : la meteo. Cest quen eet
le temps de demain est toujours aussi impresisible...
`
A y regarder de plus pr`es, on
notera toutefois des variations `a la place accordee, par exemple en plein ete (temps
stable) ou lors devenements exceptionnels (secheresses, tempetes,...).
Troisi`eme exemple tire de la presse : le tierce. Imaginons quun turste veuille
stocker sur son ordinateur les resultats du tierce, sur les dix derni`eres annees, pour
des courses de 16 chevaux. Combien de bits seraient necessaires `a ce stockage ?
Une solution simple consiste `a coder sur 4 bits le numero de chaque cheval. Un
resultat de tierce occupe alors 34=12 bits. Si lon apprend maintenant que neuf
fois sur dix le tierce gagnant est 1,2,3, on peut imaginer un autre codage plus
economique. On enregistre le bit 1 pour coder ce resultat frequent, et pour les
jours o` u le tierce est dierent, on enregistre 0 suivi des 12 bits donnant les numeros
des chevaux gagnants. Ce petit exemple renforce les observations precedentes : la
quantite dinformation (en nombre de bits) portee par un evenement (= un resultat
de tierce) depend du degre dincertitude de cet evenement. Plus levenement est
improbable, plus il porte dinformation.
1.2.2 Sources dinformation, information moyenne
Pour formaliser un peu les choses, on voit quil y a de linformation l`a o` u il y a de
laleatoire. Cela nous conduit `a poser la
Denition 1 Une source dinformation est une variable aleatoire
3
, de loi connue.
3
La section 1.3 rappelle en detail les denitions de base des probabilites.
11
Notons X cette variable, denie sur lespace probabilise , et `a valeurs dans A
X : A
Chaque valeur x A de X a pour probabilite (ou vraisemblance) IP
X
(x), et
represente un evenement tel quon la vu plus haut : guerre, paix, temps de demain,
resultat du tierce... La source dinformation produit ainsi un evenement (donne une
valeur) chaque fois quon linterroge.
Appelons la fonction mesurant linformation portee par chaque evenement x.
On a vu que cette mesure ne depend que de la vraisemblance de levenement, pas
de sa nature. On a donc (x) = (IP
X
(x)). On sait en outre que plus levenement
est imprevisible, plus il porte dinformation. Donc la fonction est decroissante.
Sans connatre , on peut denir la quantite dinformation moyenne apportee par
une source comme
H(X) =

xX
(IP
X
(x)) IP
X
(x)
que lon appellera entropie de la source X. Reste `a trouver ...
1.2.3 Mesurer linformation
Le jeu des 20 questions va nous permettre de deviner la fonction . Prenons
comme espace probabilise lensemble des huit cartes suivantes : 1, 2, 3, 4,
3, 4, 4, 5. Cet ensemble est muni de la loi uniforme (vraisemblance 1/8 pour
chaque carte). La r`egle du jeu est alors la suivante : une carte est tiree au hasard
dans - cest une source dinformation - et il sagit de deviner la couleur de cette
carte, i.e. , , ou . Pour cela on pose des questions `a reponse oui/non. Il sagit
bien entendu de trouver la bonne couleur avec un nombre minimal de questions.
Strategie 1. On passe toutes les cartes en revue : Est-ce las de coeur ?, si
oui, la couleur est coeur, sinon Est-ce le 2 de coeur?, etc. Il est facile de verier
que cette strategie permet de conclure avec une moyenne de 4, 375 =
35
8
questions
(exercice).
Strategie 2. On interroge sur la couleur uniquement. Ici, lordre des questions
est important : on a interet `a demander tout de suite si cest du coeur, puisque
cest la couleur la plus frequente. Ainsi, 4 fois sur 8 il sut dune question pour
conclure. Si ce nest pas coeur, demander si cest du pique : on conclut alors en 2
questions, 2 fois sur 8. Pour les cas restants, une troisi`eme question est necessaire.
Le nombre de questions moyen est donc de 1,75 (exercice). On peut demontrer que
cest loptimum.
Formalisation. La source dinformation est ici la variable aleatoire X, denie
sur , `a valeurs dans , , , avec la loi P
X
= (
4
8
,
2
8
,
1
8
,
1
8
). Pour transmettre la
valeur de X, on peut imaginer un code fonde sur la strategie 2 : on envoie 1 si la
12
reponse `a la question est oui et 0 sinon. Cela donne le code
x code (x) IP
X
(x) log
2
(IP
X
(x))
1 1 4/8 = 2
1
1
01 2 2/8 = 2
2
2
001 3 1/8 = 2
3
3
000 3 1/8 = 2
3
3
Denissons linformation portee par une valeur x comme le nombre de bits necessaires
pour la transmettre, ou de fa con equivalente comme le nombre de questions `a
poser `a la source pour deviner la valeur tiree. On retrouve bien quil faut dautant
plus de questions que la vraisemblance de x est faible. Plus precisement, (x) =
(IP
X
(x)) = log
2
(IP
X
(x)) o` u log
2
represente le log en base 2 (log
2
(y) = ln(y)/ ln(2)).
Il vient
Denition 2 L entropie de la variable aleatoire X de loi IP
X
est denie par
H(X) =

xX
IP
X
(x) log
2
(IP
X
(x))
Cest le nombre moyen de bits necessaires `a la transmission de X, ou encore le
nombre moyen (minimal) de questions necessaires pour deviner X.
1.3 Rappels de probabilites
1.3.1 Variable aleatoire
Espace probabilise
Un espace probabilise est compose dun ensemble muni dune loi de probabilite IP.
Nous ne considererons que des lois de probabilite sur des ensembles discrets dans ce
cours. peut donc se voir comme
1
, . . . ,
m
, o` u
i
est un evenement atomique.
Un evenement est un sous-ensemble de . Il est souvent decrit par un predicat ; par
exemple, si une fonction couleur est denie sur ,
couleur : blanc, bleu, vert, . . .
levenement blanc representera le sous-ensemble des
i
pour lesquels couleur vaut
blanc, ce qui se note encore couleur
1
(blanc). La loi IP est une fonction de vers
[0, 1], telle que
n

i=1
IP(
i
) = 1
13
On ecrira souvent p
i
au lieu de IP(
i
). IP est etendue par additivite `a T(),
lensemble des parties de , cest `a dire lensemble des evenements. La probabilite
dun evenement A est donc
IP(A) =

i
A
IP(
i
)
Il en decoule IP(A B) = IP(A) + IP(B) lorsque A B = , et IP() = 0.
Variable aleatoire
Une variable aleatoire X est une fonction dun espace probabilise vers un autre
espace :
X : A
On appelle une valeur x A de la variable X une realisation de la variable X. La
loi de probabilite de est transportee sur A par la fonction X : on parle de loi
image
x A, IP
X
(x) IP
_
X
1
(x)
_
Il est facile de verier que cest bien une loi de probabilite :

xX
IP
X
(x) = 1
Un cas particulier consiste `a prendre la fonction sous forme dun couple de fonctions :
(X, Y ) : A
La probabilite image se construit de la meme fa con :
(x, y) A , IP
X,Y
(x, y) IP
_
(X, Y )
1
(x, y)
_
= IP : X() = x, Y () = y
IP
X,Y
est appelee loi jointe des variables X et Y . Il en decoule la notion de loi
marginale : marginaliser signie extraire dune loi jointe la loi dune variable
particuli`ere. Par exemple pour retrouver IP
X
`a partir de IP
X,Y
:
IP
X
(x) = IP : X() = x
= IP : X() = x, Y () quelconque
= IP
_

y
: X() = x, Y () = y
_
=

y
IP : X() = x, Y () = y
=

y
IP
X,Y
(x, y)
La loi de la variable X dans le couple (X, Y ) sobtient donc en integrant IP
X,Y
en Y : on somme sur la variable que lon veut eliminer. Si lon represente IP
X,Y
14
dans un tableau `a deux entrees (g. 1.3), calculer la loi de X (indice de colonne)
revient `a sommer IP dans chaque colonne. Cela donne une loi de probabilite sous
forme de ligne, que lon ecrit dans la marge de la matrice, do` u le nom de marginale.
Bien entendu, loi jointe et technique de marginalisation setendent `a des n-uplets de
variables aleatoires.
Esperance
Lorsque la variable X est `a valeurs dans R, on peut calculer sa moyenne, ou son
esperance :
IE (X) = m
X
=

x
x IP
X
(x)
De meme pour toute variable aleatoire denie `a partir de X, par exemple, si Y =
(X), on a
IE (Y ) = IE ((X)) =

x
(x)IP
X
(x) =

y
yIP
Y
(y)
Le second moment de X, cest `a dire la moyenne de X
2
, permet de denir la variance
de X, qui caracterise lexcursion de X autour de sa moyenne
V (X) =
2
X
= IE (X
2
) IE (X)
2

X
, appele ecart-type de X, est la racine carree de la variance de X. On observera
quune variable aleatoire de variance nulle est constante et egale `a sa moyenne.
Independance
Il sagit l`a dune notion tr`es importante pour la theorie de linformation. Intuitive-
ment, lindependance de deux variables aleatoires signie que leurs comportements
sont autonomes, cest `a dire quil nexiste pas de lien statistique entre elles, ou en-
core que la connaissance de lune de ces variables napporte aucune information sur
lautre. On dit que les variables X et Y sont independantes ssi leur loi jointe verie :
(x, y) A , IP
X,Y
(x, y) = IP
X
(x)IP
Y
(y) (1.1)
Lindependance se generalise au cas de n variables
4
.
Exemple. (g. 1.3) Considerons un jeu de 54 cartes, sans les jokers ; lespace est
donc lensemble des 52 cartes restantes, et est muni de la loi uniforme (chaque carte
est equiprobable de probabilite 1/52). On construit les deux variables aleatoires
X et Y qui `a chaque carte associent respectivement sa valeur (1,2,. . . ,dame,roi) et
4
Attention, X1 . . . , Xn sont independantes implique bien entendu que les Xi sont independantes
deux `a deux, mais la reciproque est fausse. Construire un contre-exemple avec trois variables
(exercice).
15
sa couleur (pique, coeur, carreau, tr`ee). On verie que X et Y sont distribuees
uniformement : IP
X
(x) = 1/13 et IP
Y
(y) = 1/4 pour tout x et tout y. Comme pour
toute paire (x, y) on a IP
X,Y
(x, y) = 1/52 = IP
X
(x)IP
Y
(y), les deux variables X et
Y sont bien independantes. Et en eet, connatre la couleur dune carte ne nous
apporte aucune connaissance sur sa valeur.
Contre-exemple. Dans un jeu de tarot (78 cartes), on construit les variables X
= valeur, Y = couleur (latout etant la cinqui`eme couleur). Veriez que X et Y ne
sont plus independantes en exhibant un couple (x, y) pour lequel legalite ne tient
pas.
pique
coeur
carreau
trfle
1 2 3 10 V D R
1/52 1/52
1/52
1/52
1/52
1/52
1/13 1/13 1/13 1/13 1/13 1/13 1/13
1/4
1/4
1/4
1/4
P
Y
P
X
X
Y
...
...
...
...
Figure 1.3: Jeu de 52 cartes. Representation de la marginalisation dune loi jointe.
On peut ainsi verier que X et Y sont independantes.
Lindependance entrane la propriete suivante, facile `a verier (exercice):
IE [(X)(Y )] = IE [(X)]IE [(Y )] (1.2)
On peut aussi demontrer facilement que si elle est vraie pour tout choix des fonctions
et , alors X et Y sont independantes (exercice). Noter en revanche que la
relation suivante, elle, est toujours vraie, avec ou sans independance :
IE [(X) +(Y )] = IE [(X)] + IE [(Y )] (1.3)
Lindependance peut se reinterpreter `a laide de la notion de loi conditionnelle.
1.3.2 Loi conditionnelle
Loi conditionnelle
La loi conditionnelle de X sachant Z est denie par
(x, z) A Z, IP
X|Z
(x[z)
IP
X,Z
(x, z)
IP
Z
(z)
(1.4)
16
Il sagit dune loi de probabilite sur A, et cette loi est parametree par Z : on a une
loi sur A pour toute valeur z. Cette loi conditionnelle nest denie que pour les z
de probabilite non nulle. Intuitivement, la loi conditionnelle de X sachant Z = z
represente laleatoire restant sur X lorsque lon a observe que la variable Z portait
la valeur z.
Consequence immediate des denitions (1.1) et (1.4), X et Y sont independantes
ssi IP
X|Y =y
IP
X
, y, ou de fa con symetrique IP
Y |X=x
IP
Y
, x. Il ne sert
donc `a rien dobserver lune des variables pour tenter de predire la seconde (voir le
paragraphe sur lestimation).
Exemple. Reprenons le jeu de 52 cartes, auquel on enl`eve valet, dame et roi de
pique. Quelle est la loi conditionnelle de X sachant Y = pique ? On a IP
X,Y
(x, pique) =
1/49 pour x 1, . . . , 10 et 0 sinon. On a encore IP
Y
(pique) = 10/49. Il vient
IP
X|Y
(x[pique) = 1/10 si x 1, . . . , 10 et 0 sinon. Cest bien une loi de proba-
bilite sur A.
Interpretation : pour construire IP
X|Y =pique
, on restreint au sous-ensemble des
veriant Y = pique, et on renormalise la loi IP de fa con `a ce que sa somme fasse 1.
On a restreint la loi uniforme `a un ensemble de 10 cartes, do` u la valeur 1/10. On
peut verier que IP
X|Y
(x[coeur) = 1/13 pour toute valeur de x.
Exercice. En general, la loi conditionnelle de X sachant Z = z change avec la valeur
z prise par Z. Montrer que si cette loi ne change pas, cest quil y a independance
de X et de Z.
Esperance conditionnelle
On peut calculer la moyenne de X sous la loi conditionnelle IP
X|Z=z
. Cette moyenne
depend donc de la valeur z prise par Z. Elle est denie par :
IE (X[Z = z) =

x
x IP
X|Z
(x[z)
Bien entendu, si X et Z sont independantes, alors IE (X[Z = z) ne depend pas de z
et vaut IE (X).
Generalement, IE (X[Z = z) depend de la valeur observee pour Z. On peut donc
voir cette esperance conditionnelle comme une variable aleatoire
5
(Z), une fonction
de Z. Rien nempeche donc de calculer sa moyenne. Il vient immediatement
IE [IE (X[Z)] =

z
IE (X[Z = z)IP
Z
(z)
=

x
xIP
X|Z
(x[z)IP
Z
(z)
=

x,z
xIP
X,Z
(x, z)
=

x
xIP
X
(x)
= IE (X)
5
Attention, parler de la variable aleatoire X|Z na pas de sens. Un tel objet nexiste pas. Le
conditionnement sachant Z sapplique `a lesperance de X, ou `a la loi de X.
17
Exemple. Dans le contexte de lexemple ci-dessus, IE (X[Y =pique) = 5.5 et
IE (X[Y = coeur) = 7 avec la convention V = 11, D = 12, R = 13. Verier que
IE [IE (X[Y )] = IE (X).
Independance conditionnelle
Les variables X et Y sont conditionnellement independantes sachant Z ssi la loi
conditionnelle du couple (X, Y ) secrit sous forme produit, comme dans le cas de
lindependance :
(x, y, z) A Z, IP
X,Y |Z
(x, y[z) = IP
X|Z
(x[z)IP
Y |Z
(y[z) (1.5)
On retrouve ainsi toutes les interpretations et proprietes de lindependance, mais
celle-ci nest valable que lorsque lon a observe une valeur de Z, cest `a dire dans
chaque sous-ensemble Z
1
(z) de . On a par exemple, en reprenant (??)
IE (XY [Z = z) = IE (X[Z = z)IE (Y [Z = z)
pour toute valeur z, etc.
Exemple. Reprenons le cas du jeu de tarot, avec X=valeur de la carte, Y =couleur,
Z atout, pas atout. On a mentionne que X et Y ne sont pas independantes.
Toutefois, elles sont independantes conditionnellement `a Z. En eet, sachant Z =
pas atout, on est ramene `a un jeu de 56 cartes (voir plus haut), pour lequel valeur
et couleur sont independantes, et sachant Z = atout, Y est ge `a la couleur atout.
On retrouve dans ce cas aussi la forme produit (exercice).
Estimation au maximum de vraisemblance
Lorsque lon ne peut observer directement la valeur prise par une variable aleatoire
X, on peut chercher `a estimer cette valeur. Un estimateur immediat consiste `a pren-
dre la valeur la plus vraisemblable : cest lestimateur au maximum de vraisemblance,
deni par

X = arg max
xX
IP
X
(x)
Cet estimateur a la propriete de minimiser la probabilite derreur, cest `a dire la
probabilite de levenement X ,=

X (exercice). Dans de nombreuses situations, X
nest pas observee directement, mais on a acc`es `a la valeur dune autre variable, Y ,
liee `a X. Cela donne un estimateur
6
de X sachant Y :

X
|Y =y
= arg max
xX
IP
X|Y
(x[Y = y)
6
appele souvent estimateur au maximum de vraisemblance a posteriori de X sachant Y
18
qui varie avec la valeur y prise par Y (

X
|Y
est donc une variable aleatoire de la
forme (Y )).
Exercice. Montrer que si X et Y sont independantes, alors les deux estimateurs
ci-dessus concident, cest `a dire que Y naide pas `a estimer X.
Exercice. Montrer au contraire que si elles sont liees, la probabilite derreur est
plus faible pour le second estimateur, i.e. IP(X ,=

X) IP(X ,=

X
|Y
). Indication :
observer que dans le terme de droite levenement erreur est une fonction du couple
(X, Y ).
1.3.3 Loi des grands nombres
On consid`ere maintenant une suite (Y
n
)
nN
de variables aleatoires `a valeurs dans
R, independantes et identiquement distribuees (i.i.d.) de loi IP
Y
. Chaque Y
n
ayant
la meme loi P
Y
a donc la meme moyenne m
Y
. Lindependance permet decrire la
probabilite de tout n-uplet :
IP(y
1
, . . . , y
n
) = IP
Y
(y
1
) IP
Y
(y
n
)
On construit la suite (Z
n
)
nN
par
Z
n
=
1
n
n

i=1
Y
i
Z
n
mesure donc la moyenne empirique des Y
i
sur les n premiers elements. La loi
faible des grands nombres arme que Z
n
converge en probabilite vers la moyenne
statistique m
Y
de la suite, cest `a dire
> 0, IP([Z
n
m
Y
[ > )
n
0
La loi forte des grands nombres arme que cette convergence est meme presque s ure.
En clair, soit
c = (y
n
) : z
n
,
n
0
lensemble des realisations de la suite (Y
n
) pour lesquelles la suite (Z
n
) ne converge
pas vers m
Y
, alors la probabilite de cet ensemble est nulle
IP(c) = 0
On na donc aucune chance de tomber sur une suite (y
n
) pour laquelle la moyenne
empirique ne converge pas vers la moyenne statistique.
On utilisera ce resultat sous une forme un peu plus specialisee. Soit une suite
i.i.d. (X
n
) `a valeurs dans A. On construit Y
i
= 1I(X
i
A), o` u A A et 1I est la
19
fonction indicatrice. Y
i
vaut donc 1 si X
i
A et 0 sinon. (Y
n
) est une suite i.i.d. `a
valeurs numeriques, et
m
Y
= IE (Y
i
) = IP(X
i
A) = IP
X
(A)
Z
n
compte donc la frequence empirique de passage dans lensemble A pour la suite
(X
n
). La loi des grands nombres (faible ou forte) nous indique donc que Z
n
con-
verge vers la probabilite de lensemble A pour la loi IP
X
. En dautres termes,
lhistogramme
7
converge vers la vraie loi de X.
7
Lhistogramme est la courbe obtenue en comptant le nombre moyen de fois o` u la suite (Xn)
passe par chaque valeur de X.
20
Chapter 2
Entropie - Information mutuelle
2.1 Entropie dune variable aleatoire
2.1.1 Denition
Soit X une variable aleatoire discr`ete, denie sur (, IP), `a valeurs dans A et donc
de loi IP
X
, loi image de IP par X. Dans la suite, sil ny a pas ambigute, on ne
mentionnera pas la variable concernee dans IP. On ecrira aussi p(x
i
) ou simplement
p
i
au lieu IP
X
(x
i
), lorsque X peut prendre les valeurs x
1
, . . . , x
n
.
Denition 3 Lentropie de X est denie par
H(X) =

xX
p(x) log
2
p(x) = IE [log
2
p(X)]
On prend comme convention 0 log
2
0 = 0, de sorte que les evenements de probabilite
nulle ne sont pas comptabilises dans la somme. H(X) se mesure en bits lorsque le
logarithme est `a base 2. Sil est `a base e, lunite est le nat (pour logarithme nat urel),
donc 1 bit = ln(2) nat.
2.1.2 Proprietes
1. H(X) ne depend que de la loi de X, pas des valeurs prises par X. Ainsi, si f
est une bijection sur A, H(f(X)) = H(X).
2. H(X) est une quantite positive, car 0 p(x) 1 et donc log
2
p(x) 0.
3. Pour la loi uniforme, H(X) = log
2
[A[, o` u [A[ est le cardinal de A.
4. H(X) = 0 ssi X est une variable deterministe, i.e. qui ne peut prendre quune
seule valeur. Autrement dit ssi IP
X
est de la forme (0, . . . , 0, 1, 0, . . . , 0) (ex-
ercice).
21
5. Lemme 1 Soit g : A , H(g(X)) H(X) avec egalite ssi g est injective
(on suppose p(x) > 0, x).
Ce resultat sera demontre plus loin.
Exercice. Verifer linegalite avec X = carte tiree au hasard dans un jeu de
32, et g la fonction couleur.
6. H(X) mesure lincertiture que lon a sur X. Pour sen convaincre, on peut
oberver le cas dune variable de Bernouilli : X peut prendre deux valeurs
avec les probabilites p et 1 p. La courbe H(X) en fonction de p est donnee
gure 2.1 Lentropie est maximale lorsquaucune des valeurs de X nest plus
0
1
0 1 0.5
p
H(X)
Figure 2.1: Entropie dune variable de Bernouilli, en fonction du param`etre p.
plausible que lautre, H(X) vaut alors log
2
(2) = 1 bit. Plus on peut deviner
la valeur qui sortira, plus H(X) decrot, pour nir `a 0 lorsque lune des deux
valeurs est certaine.
7. Lemme 2 H(X) est maximale lorsque X est muni de la loi uniforme.
En eet, notons p
i
= IP
X
(x
i
), et calculons
max
(p
1
,p
2
,...)

i
p
i
log
2
p
i
sous la contrainte

i
p
i
= 1
Par la methode du multiplicateur de Lagrange, on pose
J

(p
1
, p
2
, . . .) =

i
p
i
log
2
p
i

i
p
i
1
_
En maximisant par rapport `a chaque p
i
, il vient
J

p
i
=
1
ln 2
+ log
2
p
i
= 0 = p
i
= 2

1
ln 2
En ajustant pour satisfaire la contrainte

i
p
i
= 1, on trouve bien la loi
uniforme.
22
2.1.3 Interpretation
Au chapitre precedent, on a cherche `a denir une mesure de linformation moyenne
apportee par une source comme :
le nombre de questions quil faut poser - en moyenne - pour deviner la valeur
produite par la source, ou, de fa con equivalente, comme
le nombre moyen de bits quil faut emettre pour communiquer cette valeur.
Cela nous a permis de deviner la forme de la fonction entropie. On revient ici sur
cette interpretation.
Considerons une variable X pouvant prendre 16 valeurs. Si on ne connat pas la
loi de X, il faut utiliser 4 bits (2
4
= 16) pour transmettre chaque valeur de X, et lon
ne peut pas faire mieux. Si lon connat la loi de X, on peut essayer dameliorer le
nombre moyen de bits transmis en attribuant moins de bits aux valeurs frequentes.
Supposons dabord que X a la loi uniforme, par raison de symetrie toutes les valeurs
seront decrites par le meme nombre de bits, soit 4 (g. 2.2). On retrouve bien
H(X) = log
2
[A[ = log
2
16 = 4. Considerons maintenant Y , une variable aleatoire
0 1
0 1
0 1
0 1 0
0 1
...
1
X
...
1111
P(x) = 1/16
0000 0001 0010 0011
x
1
x
0
x
15 2
x x
3
Figure 2.2: Construction dun code de transmission, pour la variable aleatoire X
munie de la loi uniforme. On peut utiliser un arbre dyadique dont chaque feuille
pointe vers lune des valeurs x. Chaque pave gris correspond `a une probabilite de
1/16. Laire grise totale vaut donc 1.
construite par Y = f(X) o` u f nest pas injective. Elle rend donc indistingables
certaines valeurs de X. La loi de probabilite de Y , loi image de IP
X
par f, est
obtenue en sommant les vraisemblances des elements x devenus indistingables apr`es
f (g. 2.3). Toute loi de probabilite discr`ete peut se construire / se simuler sur ce
mode, `a partir dune loi uniforme sur un ensemble assez grand de valeurs
1
. Tirer
une valeur de Y equivaut `a tirer une valeur de X et `a prendre son image par f.
Pour transmettre Y , on na plus besoin dautant de bits que pour X puisque les x
donnant le meme y nont plus besoin detre distingues, comme illustre gure 2.3.
On constate alors que plus on regroupe de cases (= de valeurs x) pour decrire
1
cest dailleurs pour cela que les ordinateurs ne disposent que dun simulateur de loi uniforme
23
0 1110 1100 1101
Y=f(X)
10
0
0 1
1 0 0 1
1
y
0
y
1
y
2
y
3
y
4
y
5
0
1111
1
Figure 2.3: Construction dun code de transmission, pour la variable aleatoire Y =
f(X). On peut utiliser larbre dyadique de X tronque car certains bits decrivant X
deviennent inutiles pour reconnatre Y .
la probabilite dun y, plus on reduit le nombre de bits necessaires `a identier le
rectangle obtenu. Plus speciquement, sur lexemple de la gure, qui represente une
loi dyadique, on a clairement
nombre de bits decrivant la valeur y = log
2
p(y)
La quantite log
2
p(y) est parfois appelee quantite dinformation portee par levenement
y.
On reviendra plus loin sur ces schemas (`a bien comprendre) pour illustrer linegalite
de Kraft et la construction du code de Shannon (chapitre 3 sur le codage de source
et la compression de donnees).
2.2 Entropie jointe et entropie conditionnelle
2.2.1 Entropie jointe
Considerons le couple (X, Y ) comme une seule variable aleatoire sur , `a valeurs
dans A . Son entropie est donnee par
H(X, Y ) =

xX,yY
p(x, y) log
2
p(x, y) (2.1)
= IE [log
2
p(X, Y )]
Cette formule se generalise au cas de n variables aleatoires X
1
, . . . , X
n
. Noter que
lentropie jointe ne depend pas de lordre des variables :
H(X, Y ) = H(Y, X)
2.2.2 Entropie conditionnelle
Apr`es avoir calcule lentropie dune loi jointe, on peut calculer lentropie dune loi
conditionnelle :
24
Denition 4 Lentropie conditionnelle de X sachant la valeur y de Y est lentropie
de la loi conditionnelle p
X|Y =y
H(X[Y = y) =

x
p(x[y) log
2
p(x[y) (2.2)
= IE [log
2
p(X[Y ) [ Y = y]
Lentropie conditionnelle de X sachant Y est la moyenne (en Y ) de la quantite
precedente :
H(X[Y ) =

y
H(X[Y = y) p(y) (2.3)
=

x,y
p(x, y) log
2
p(x[y) (2.4)
= IE [log
2
p(X[Y )]
Les denitions ci-dessus demandent quelques commentaires. (2.2) mesure lincertitude
qui reste sur X lorsque lon a observe une valeur particuli`ere y de Y . Cest donc
une variable aleatoire fonction de Y . Si on en fait la moyenne, comme dans (2.3),
on obtient alors une mesure de lincertitude moyenne qui reste sur X lorsque Y est
accessible. Noter que (2.4) repose sur une somme double, comme (2.1) ; la dierence
est dans le terme moyenne : p(X[Y ) pour la premi`ere, p(X, Y ) pour la seconde. On
a utilise la r`egle de Bayes p(x, y) = p(x[y)p(y) pour obtenir (2.4).
Exemple. Soit = 7, 8, 9, 10, V , D, R, As, V , D, R, As muni
de la loi uniforme, et X et Y les variables aleatoires donnant la couleur et la valeur
de la carte. Le couple (X, Y ) permet ainsi didentier la carte. On a
H(X, Y ) = log
2
[[ = log
2
12 = 2 + log
2
3
H(X) =
2
3
log
2
2
3

1
3
log
2
1
3
=
2
3
+ log
2
3
H(Y ) = 4(
1
12
log
2
1
12
) + 4(
2
12
log
2
2
12
) =
4
3
+ log
2
3
Par ailleurs,
H(Y [X = ) = log
2
8 = 3
H(Y [X = ) = log
2
4 = 2
H(Y [X) = 3
2
3
+ 2
1
3
=
8
3
et de meme
H(X[Y = 7) = 0 idem pour 8, 9, 10
H(X[Y = As) = log
2
2 = 1 idem pour V, D, R
H(X[Y ) = (0
1
12
)4 + (1
2
12
)4 =
2
3
25
2.2.3 Proprietes
Lemme 3 H(X, Y ) = H(X) +H(Y [X) = H(Y ) +H(Y [X)
Il sut de montrer la premi`ere egalite, lautre vient par symetrie.
H(X, Y ) =

x,y
p(x, y) log
2
p(x, y)
=

x,y
p(x, y) log
2
p(x)p(y[x)
=

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

x,y
p(x, y) log
2
p(y[x)
=

x
p(x) log
2
p(x)

x,y
p(x, y) log
2
p(y[x)
= H(X) +H(Y [X)
Consequence : H(Y [X) ,= H(X[Y ) en general. On peut verier ces proprietes dans
lexemple ci-dessus.
Lemme 4 H(X[Y ) 0 et sannule ssi X = f(Y )
En eet, H(X[Y ) = 0 signie que H(X[Y = y) = 0 pour toute valeur y telle que
p(y) ,= 0. Cela signie que la loi p(X[Y = y) est singuli`ere, cest `a dire porte sur
une seule valeur x. Cette valeur x peut changer avec le y considere. On denit ainsi
la fonction f : y x. Remarque : en toute rigueur f nest pas denie pour les y
tels que p(y) = 0, on a donc X = f(Y ) presque s urement : lensemble des pour
lesquels cest faux est de probabilite nulle (exercice).
Ce lemme nous permet de demontrer le lemme 1 qui etait reste en suspens. En
eet
H(X, g(X)) = H(X) +H(g(X)[X) = H(g(X)) +H(X[g(X))
Or H(g(X)[X) = 0 et H(X[g(X)) 0, donc on a bien H(g(X)) H(X). Il y a
egalite ssi H(X[g(X)) = 0, cest `a dire (lemme 4) ssi X = f(g(X)), ce qui signie
que g est injective.
Lemme 5 H(X[X) = 0 et donc H(X, X) = H(X)
Decoule des lemmes 3 et 4. En dautres termes, repeter naugmente pas la quantite
dinformation... Meme si lon rep`ete dune autre fa con puisque H(X, f(X)) = H(X).
Lemme 6 H(X) H(X[Y ) avec egalite ssi X et Y sont independantes.
26
En dautres termes, le conditionnement reduit lentropie. Cela est logique car ob-
server une variable Y liee `a X nous apporte en general de linformation sur X, donc
diminue notre incertitude sur X. Au pire, X et Y sont independantes et donc Y ne
nous apprend rien sur X. La preuve sera donnee plus loin : on montrera en fait que
H(X) H(X[Y ) = H(Y ) H(Y [X) est une quantite positive, et nulle seulement en
cas dindependance. Noter que limplication independance H(X) = H(X[Y )
est facile `a montrer (exercice), cest la reciproque qui est dicile.
Lemme 7 H(X, Y ) H(X) +H(Y ), avec egalite ssi X et Y independantes.
Decoule du lemme 6 (utiliser le lemme 3).
2.2.4 Generalisations - Formule des conditionnements successifs
Il est important de garder `a lesprit que, dans les lemmes ci-dessus, X et Y peuvent
chacun representer plusieurs variables. Ainsi le lemme 3 se generalise en
Lemme 8 (Formule des conditionnements successifs)
H(X
1
, . . . , X
n
) = H(X
1
) +H(X
2
[X
1
) +. . . +H(X
n
[X
1
, . . . , X
n1
)
La preuve vient par recurrence. On prend X = (X
1
, . . . , X
n1
) et Y = X
n
, et
lon applique H(X, Y ) = H(X) + H(Y [X). On recommence ensuite sur H(X) =
H(X
1
, . . . , X
n1
). Noter que cette formule se lit de la fa con suivante
2
H(X
1
, . . . , X
n
) =
H(X
1
,...,X
k
)
..
H(X
1
) +. . . +H(X
k
[X
k1
1
) +
H(X
k+1
,...,Xn|X
1
,...,X
k
)
..
H(X
k+1
[X
k
1
) +. . . +H(X
n
[X
n1
1
)
Exercice. Soit un jeu de 32 cartes, sur lequel on denit les trois variables X =
couleur de la carte (, , , ), Y =gure ou carte basse, et Z = rang dans sa
categorie (, , et pour 7 ou V , 8 ou D, 9 ou R, 10 ou As). Calculer H(X, Y, Z)
de deux fa cons.
La generalisation du lemme 6 est aussi tr`es importante.
Lemme 9 H(X[Z) H(X[Y, Z) avec egalite ssi X et Y sont independantes sachant
Z.
En dautres termes, plus on conditionne, plus on reduit lentropie. L` a encore, la
preuve en est remise `a plus tard. On procedera comme pour le lemme 6, en montrant
que H(X[Z)H(X[Y, Z) = H(Y [Z)H(Y [X, Z) est une quantite positive, et nulle
ssi X et Y sont independantes sachant Z. Noter que legalite ci-dessus est immediate
(exercice).
De meme que le lemme 7 reformulait le lemme 6, le lemme 9 se reformule en
2
On adopte ici la notation X
n
1
pour X1, . . . , Xn, par souci de compacite.
27
Lemme 10 H(X, Y [Z) H(X[Z)+H(Y [Z) avec egalite ssi X et Y sont independantes
sachant Z.
Pour le montrer (exercice), considerer le developpement de H(X, Y, Z) par la for-
mule des conditionnements successifs.
2.3 Methode graphique pour le calcul entropique
Les proprietes de lentropie, avec toutes leurs variantes (conditionnelle, multivari-
ables, liens avec lindependance...) peuvent sembler compliquees `a retenir. Fort
heureusement, il existe une methode graphique intuitive qui permet de retrouver
les r`egles de decomposition dune entropie de plusieurs variables.
Y
X X
Y
H(Y|X) H(X)
H(X,Y)
Figure 2.4: Representation graphique des r`egles de decomposition de lentropie.
Lidee consiste `a representer chaque variable par un ensemble, dont laire gure
la quantite dinformation portee par cette variable. La gure 2.4 donne la r`egle de
base de cette representation : laire de lunion des ensembles X et Y represente
H(X, Y ), et le complementaire de lensemble X dans X Y represente donc
H(Y [X) puisque H(X, Y ) = H(X)+H(Y [X). On retrouve en particulier H(Y [X)
H(Y ). En generalisant (lemme 8)
H(X
1
, . . . , X
n
) aire de (X
1
. . . X
n
)
H(X
1
, . . . , X
k
[X
k+1
, . . . , X
n
) aire de [(X
1
. . . X
k
) (X
k+1
. . . X
n
)]
Par exemple, avec trois ensembles (gure 2.5) on retrouve H(X, Y, Z) = H(X) +
H(Y [X) +H(Z[X, Y ).
Lintersection des ensembles X et Y represente en quelque sorte une information
commune aux deux variables, qui a pour valeur H(X)H(X[Y ) = H(Y )H(Y [X)
et que lon etudiera plus loin (section 2.5). En vertu des lemmes 6 et 7, cette quantite
sannule ssi on a independance de X et Y , ce qui donne la gure 2.6.
Avec trois ensembles, on retrouve les versions generalisees de ce resultat : H(X[Y )
H(X[Y, Z) = H(Y [Z) H(Y [X, Z) represente une information partagee entre X
et Y lorsque Z est connue, qui ne sannule quen cas dindependance conditionnelle
(gure 2.7).
Un dernier cas merite detre mentionne (g. 2.8), correspondant `a la situation
X = f(Y ). Ce diagramme illustre les proprietes enoncees aux lemmes 1 et 4.
28
Y X
Z
H(Z|X,Y)
H(Y|X) H(X)
Figure 2.5: Decomposition de H(X, Y, Z).
X
Y
Y
X
information commune
H(X) - H(X|Y) = H(Y) - H(Y|X) indpendance
Figure 2.6: Representation de lindependance de X et Y , on a alors H(X, Y ) =
H(X) +H(Y ).
indpendance conditionnelle
de X et Y sachant Z
information commune sachant Z
H(X|Z) - H(X|Y,Z) = H(Y|Z) - H(Y|X,Z)
X
Y
X Y
Z
Z
Figure 2.7: Independance conditionnelle de X et Y sachant Z.
Y
X = f (Y)
Figure 2.8: Cas o` u X = f(Y ).
29
2.4 Entropie relative entre deux lois (distance de Kullback-
Leibler)
On a donne comme interpretation de lentropie : cest le nombre moyen de bits
necessaires pour transmettre les valeurs produites par une source dinformation.
Cette armation na pas encore ete demontree (ce sera fait au chapitre 3), on en a
seulement donne une illustration intuitive (section 2.1.3). Dans cette interpretation,
on aectait
3
log
2
p(x) bits `a une valeur x de vraisemblance p(x).
Imaginons maintenant que, par erreur, on a construit une technique de codage
pour X en supposant la loi q, alors que X est de loi p. On a donc aecte log
2
q(x)
bits `a x au lieu de log
2
p(x). La transmission va alors demander
N
q
(X) =

x
p(x) log
2
q(x)
bits en moyenne. Est-ce plus ou moins que H(X) ? On etudie alors la dierence
N
q
(X) H(X)
Denition 5 L entropie relative - ou distance de Kullback - entre les lois p et q
est donnee par
D(p|q) =

x
p(x) log
2
p(x)
q(x)
(2.5)
La somme se fait sur les x tels que p(x) ,= 0 (gr ace `a la convention 0 log
2
0 = 0).
Mais si q a un support plus petit que celui de p, i.e. x : p(x) ,= 0, q(x) = 0, alors
D(p|q) = +. Noter que D(p|q) ,= D(q|p) en general.
Lemme 11 D(p|q) 0, et sannule ssi p = q.
Donc, en se trompant de loi pour concevoir un code de transmission, on emet en
moyenne D(p|q) bits de trop. La preuve de ce lemme est une application directe de
linegalite de Jensen, pour les fonctions convexes.
Rappels sur les fonctions convexes
Une fonction f est dite convexe sur un intervalle I ssi
s, t I, 0 1, f(s + (1 )t) f(s) + (1 )f(t)
f est dite strictement convexe sur I ssi linegalite est stricte pour 0 < < 1 et
s ,= t. Exemple : f(s) = [s[ et g(s) = s
2
sont convexes, mais seule g est strictement
3
Cest la r`egle de Shannon, qui sera vue plus loin.
30
convexe. Cette caracterisation setend trivialement par recurrence (exercice) en
s
1
, . . . , s
n
I,
1
, . . . ,
n
0,
n

i=1

i
= 1, f(

i
s
i
)

i
f(s
i
)
La stricte convexite se caracterise encore par une inegalite stricte lorsque les s
i
ne
sont pas tous identiques, et les
i
> 0. Rien nempeche maintenant de voir les
i
s u
t
f(s)
f(t)
f(u)
1
1

Figure 2.9: Une fonction strictement convexe. Ici u = s + (1 )t.


comme des probabilites. Il vient immediatement
Lemme 12 Soient Y une variable aleatoire discr`ete ` a valeurs numeriques, et f une
fonction convexe (sur un intervalle de R contenant ), alors
IE [f(Y )] f[IE (Y )]
Si f est strictement convexe, linegalite est stricte, sauf lorsque Y est une variable
deterministe (cest ` a dire a une loi singuli`ere portant sur une seule valeur) auquel
cas on a egalite.
Pour montrer le lemme 11, on pose alors Y =
q(X)
p(X)
. Observer que cest bien une
variable aleatoire, `a valeurs numeriques, et fonction de X. Comme f = log
2
qui
est strictement convexe, il vient
D(p|q) = IE (log
2
Y )
log
2
IE (Y )
= log
2
_

x: p(x)>0
p(x)
q(x)
p(x)
_
log
2
_

x
q(x)
_
= log
2
1
= 0
Dapr`es le lemme precedent, legalite est obtenue ssi Y est deterministe, cest `a dire
ssi
q(x)
p(x)
= cste = 1, soit p = q.
31
2.5 Information mutuelle entre deux variables aleatoires
Nous allons maintenant denir et etudier la quantite information commune qui a
ete mise en evidence sur la gure 2.6.
2.5.1 Denition
Denition 6 L information mutuelle entre les variables X et Y est
I(X; Y ) = H(X) +H(Y ) H(X, Y )
= H(X) H(X[Y )
= H(Y ) H(Y [X)
Il est facile de verier lequivalence de ces trois formules `a laide du lemme 3. Cest
evidemment une quantite symetrique : I(X; Y ) = I(Y ; X). Noter le ; dans la
notation I(X; Y ).
Quelle est la signication de cette quantite ? Si lon veut transmettre une valeur
observee pour le couple (X, Y ), il nous faudra H(X, Y ) bits en moyenne. On peut
operer cette transmission de la fa con suivante : on envoie dabord la valeur de
X, ce qui demande H(X) bits en moyenne. Puis on communique la valeur de Y .
Comme le recepteur a dej`a re cu X, il sut de lui envoyer linformation susante
pour determiner Y lorsque X est connue, soit H(Y [X) bits en moyenne. On peut
proceder dune autre fa con. On envoie dabord X, puis Y , sans tenir compte du X
envoye. Cela demande en moyenne H(X) + H(Y ) bits. Cette technique est moins
ecace car elle ne tient pas compte du lien statistique entre X et Y . Et de fait
elle utilise I(X; Y ) = H(X) + H(Y ) H(X, Y ) bits supplementaires en moyenne.
I(X; Y ) mesure donc la quantite dinformation commune `a X et Y , ce qui donne
une idee du degre de dependance de X et Y .
Noter que X et Y peuvent representer chacun plusieurs variables, par exemple
X = (X
1
, . . . , X
n
) et Y = (Y
1
, . . . , Y
m
). On ecrit alors
I(X; Y ) = I(X
1
, . . . , X
n
; Y
1
, . . . , Y
m
)
do` u limportance du ; .
2.5.2 Proprietes
Lemme 13
I(X; Y ) =

x,y
p(x, y) log
2
p(x, y)
p(x)p(y)
= D(IP
X,Y
|IP
X
IP
Y
)
= IE
_
log
2
p(X, Y )
p(X)p(Y )
_
32
Ce lemme peut etre vu comme une denition equivalente de I(X; Y ). On lobtient
trivialement `a partir de la premi`ere expression dans la denition 6 (exercice).
Lemme 14 I(X; Y ) 0 et sannule ssi X et Y sont independantes.
En eet, I(X; Y ) est la distance de Kullback entre la loi jointe de IP
X,Y
et le produit
des marginales IP
X
IP
Y
. Cest donc une quantite positive (lemme 11) qui ne sannule
que si les deux lois sont identiques, i.e. IP
X,Y
= IP
X
IP
Y
, ce qui est la denition de
lindependance.
Consequence immediate, H(X) H(X[Y ), avec egalite ssi X et Y sont independantes.
Cela prouve ainsi le lemme 6 - et par suite le lemme 7 - qui etait reste en suspens.
Lemme 15 I(X; Y ) min(H(X), H(Y )) avec egalite ssi lune des variables est
fonction de lautre.
Preuve directe par le lemme 4. On notera en particulier que I(X; X) = H(X).
2.6 Information mutuelle conditionnelle
Comme pour lentropie, on etend ici la notion dinformation mutuelle `a des lois
conditionnelles. On va ainsi denir linformation commune `a X et Y sachant Z
de la gure 2.7.
2.6.1 Denition
Denition 7 L information mutuelle entre les variables X et Y sachant Z est
I(X; Y [Z) = H(X[Z) +H(Y [Z) H(X, Y [Z)
= H(X[Z) H(X[Y, Z)
= H(Y [Z) H(Y [X, Z)
Ces formules ne di`erent de la denition 6 que par le conditionnement en Z. On
laisse le soin au lecteur den verier lequivalence (exercice).
La signication de I(X; Y [Z) va de soi : cest linformation commune `a X et Y
lorsque Z est connue. Dans un point de vue transmission, cest le nombre de bits
communs `a X et Y lorsque emetteur et recepteur connaissent Z.
33
2.6.2 Proprietes
Lemme 16 On peut denir linformation mutuelle entre X et Y sachant la valeur
z pour Z ` a partir de la loi conditionnelle IP
X,Y |Z=z
I(X; Y [Z = z) = D
_
IP
X,Y |Z=z
|IP
X|Z=z
IP
Y |Z=z
_
=

x,y
p(x, y[z) log
2
p(x, y[z)
p(x[z)p(y[z)
= IE
_
log
2
p(X, Y [Z)
p(X[Z)p(Y [Z)

Z = z
_
Linformation mutuelle conditionnelle de X et Y sachant Z se reformule alors
comme
I(X; Y [Z) =

z
I(X; Y [Z = z) p(z)
=

x,y,z
p(x, y, z) log
2
p(x, y[z)
p(x[z)p(y[z)
= IE
_
log
2
p(X, Y [Z)
p(X[Z)p(Y [Z)
_
Ce lemme donne une denition equivalente de I(X; Y [Z). On lobtient trivialement
`a partir de la premi`ere expression dans la denition 6 (exercice). On remarquera la
similitude avec la denition de lentropie conditionnelle : on commence par denir
I(X; Y [Z = z), que lon moyenne en z pour avoir I(X; Y [Z).
Lemme 17 I(X; Y [Z) 0 et sannule ssi X et Y sont independantes sachant Z.
En eet, I(X; Y [Z = z) 0 et sannule ssi IP
X;Y |Z=z
= IP
X|Z=z
IP
Y |Z=z
pour toute
valeur de z telle que p(z) > 0. Cest la denition de lindependance conditionnelle.
Lemme 18 I(X; Y [Z) I(X; Y ) est faux en general.
En dautres termes, contrairement `a lentropie, le conditionnement ne reduit pas
linformation mutuelle. Au contraire, il peut la faire augmenter. On verra section 2.8
une condition susante pour que le conditionnement reduise linformation mutuelle.
Exercice. Soient X et Y deux variables independantes `a valeurs numeriques. On
construit Z = X +Y . Verier sur cet exemple que I(X; Y [Z) > I(X; Y ).
34
2.6.3 Formule des conditionnements successifs
Comme pour lentropie, cette formule permet de calculer une information mutuelle
par morceaux. On va la retrouver sur les diagrammes de Venn.
Lemme 19 (Formule des conditionnements successifs)
I(X
1
, . . . , X
n
; Y ) = I(X
1
; Y ) +I(X
2
; Y [X
1
) +. . . +I(X
n
; Y [X
1
, . . . , X
n1
)
La preuve repose sur la formule des conditionnements successifs etablie pour lentropie.
I(X
1
, . . . , X
n
; Y ) = H(X
1
, . . . , X
n
) H(X
1
, . . . , X
n
[Y )
=

i
H(X
i
[X
1
, . . . , X
i1
)

i
H(X
i
[X
1
, . . . , X
i1
, Y )
=

i
[H(X
i
[X
1
, . . . , X
i1
) H(X
i
[X
1
, . . . , X
i1
, Y )]
=

i
I(X
i
; Y [X
1
, . . . , X
i1
)
Comme pour lentropie, cette formule se lit
I(X
1
, . . . , X
n
; Y ) =
I(X
1
; Y ) +. . . +I(X
k
; Y [X
k1
1
)
. .
I(X
1
,...,X
k
;Y )
+I(X
k+1
; Y [X
k
1
) +. . . +I(X
n
; Y [X
n1
1
)
. .
I(X
k+1
,...,Xn;Y |X
1
,...,X
k
)
2.7 Methode graphique pour le calcul entropique (suite)
Comme on lavait indique sur les gures 2.6 et 2.7, linformation mutuelle se represente
comme lintersection de deux ensembles, et linformation mutuelle conditionnelle
comme cette intersection moins lensemble conditionnant, ce qui donne les nouvelles
r`egles
I(X
1
, . . . , X
n
; Y
1
, . . . , Y
m
) aire de (X
1
. . . X
n
) (Y
1
. . . Y
m
)
I(X
1
, . . . , X
n
; Y
1
, . . . , Y
m
[Z
1
, . . . , Z
l
) aire de [(X
1
. . . X
n
) (Y
1
. . . Y
m
)
(Z
1
. . . Z
l
)]
On trouvera en illustration la decomposition de I(X; Y, Z) sur la gure 2.10.
Les diagrammes de Venn constituent un excellent outil `a la fois mnemotechnique
et de calcul. On peut notamment les utiliser pour retrouver les formules en log
de toutes les quantites denies dans ce chapitre, `a partir de la seule denition de
lentropie. Lorsquil y a plus de 4 variables `a representer, il faut toutefois prendre
garde de faire gurer dans le diagramme toutes les intersections possibles (2
n
zones
sil y a n variables), ce qui peut demander de representer une variable par plusieurs
ensembles.
35
I (X;Z)
I (X;Y|Z)
Z
X
Y
Figure 2.10: Decomposition de I(X; Y, Z) `a laide des diagrammes de Venn.
2.8 Theor`eme sur le traitement de linformation
Denition 8 Les variables X
1
, . . . , X
n
forment une chane de Markov ssi
k, IP
X
1
,...,X
k1
,X
k+1
,...,Xn|X
k
= IP
X
1
,...,X
k1
|X
k
IP
X
k+1
,...,Xn|X
k
cest ` a dire ssi le passe (X
1
, . . . , X
k1
) et le futur (X
k+1
, . . . , X
n
) sont independants
sachant le present X
k
, ou de facon equivalente ssi
k, IP
X
k+1
|X
1
,...,X
k
= IP
X
k+1
|X
k
cest ` a dire si le futur ne depend du passe que par le present.
Ces deux formulations sont equivalentes (exercice), mais on utilise plus souvent la
seconde qui permet de decomposer la loi de (X
1
, . . . , X
n
) en
p(x
1
, . . . , x
n
) = p(x
1
)p(x
2
[x
1
)p(x
3
[x
2
) p(x
n
[x
n1
)
Une chane de Markov se caracterise ainsi par une loi initiale IP
X
1
et une suite de
probabilites de transition
4
IP
X
k+1
|X
k
. Si ces derni`eres ne dependent pas de k, la
chane est dite homog`ene. Cela justie la notation que nous adopterons dans la
suite : X
1
X
2
. . . X
n
. Remarque : la symetrie de la premi`ere denition
nous indique que lon a aussi X
n
X
n1
. . . X
1
.
Exemple. La suite des scores lors dune partie de tennis constitue une chane de
Markov.
En termes de diagramme de Venn, on peut montrer (par recurrence) quune
chane de Markov se represente comme sur la gure 2.11 (exercice).
4
Une facon habituelle, pour des variables `a valeurs numeriques, de denir IP
X
k+1
|X
k
consiste `a
poser X
k+1
= X
k
+W
k+1
o` u W
k+1
est independante de (X1, . . . , X
k
).
36
X
1
X
2
X
3
X
5
X
4
Figure 2.11: Representation de la chane de Markov X
1
X
2
X
3
X
4
X
5
en diagramme de Venn.
Theor`eme 1 (data processing theorem)
X Y Z I(X; Y ) I(X; Z)
Bien entendu, par raison de symetrie, on a aussi I(Y ; Z) I(X; Z). Pour montrer
ce resultat, on calcule I(X; Y, Z) de deux fa cons (via le lemme 19)
I(X; Y, Z) = I(X; Y ) +I(X; Z[Y )
= I(X; Z) +I(X; Y [Z)
Or I(X; Z[Y ) = 0 car X et Z sont independantes sachant Y , et I(X; Y [Z) 0,
cqfd.
Corollaire 1 Si X Y Z, alors I(X; Y [Z) I(X; Y ).
Cest un sous-produit de la preuve, qui donne une condition susante pour que le
conditionnement reduise linformation mutuelle entre deux variables. Rappelons que
linegalite est fausse en general.
Exercice. Visualiser ces deux resultats sur un diagramme de Venn.
Application
On cherche `a transmettre X 0, 1, . . . , N 1, uniformement distribuee, `a travers
un canal bruite. On recup`ere Y = X + W modulo N `a la sortie, o` u le bruit W
est independant de X. Montrer que H(X[Y ) > 0 ssi W nest pas deterministe.
Un ingenieur pretend quen mettant en oeuvre des traitements sophistiques de sa
fabrication, il est capable de reconstruire X `a partir de Y . Est-ce possible ?
Soit f lalgorithme de restauration mis en oeuvre, de sorte que Z = f(Y ) est la
version debruitee du message re cu. On a clairement X Y Z = f(Y ), et donc
I(X; Y ) I(X; Z). Si lon peut reconstruire X par f, alors I(X; Z) = I(X; X) =
H(X). Donc I(X; Y ) H(X), ce qui nest posible que si X est une fonction de Y ,
cest `a dire si H(X[Y ) = 0. Donc la fonction f ne debruite que les situations sans
bruit...
37
Plus generalement, le theor`eme enonce donc quen traitant linformation Y , on
ne peut pas retrouver de linformation perdue sur X : I(X; Y ) I(X; f(Y )). At-
tention, cela ne signie pas que f est inutile ; elle peut servir `a mettre en forme Y ,
de fa con `a separer ce qui reste dinformation utile de ce qui perturbe le message (cf
tous les algorithmes de traitement de signal).
Inegalite de Fano
Cette inegalite donne une borne inferieure `a la probabilite derreur dans une chane
de transmission.
Considerons une chane de transmission X Y , o` u X A est la valeur emise,
et la valeur re cue Y est une version bruitee de X. On construit un estimateur

X de X par

X = f(Y ), de sorte que X Y

X. On denit enn une variable
derreur E par E = 1I(X ,=

X), qui est donc une fonction de (X, Y ). La probabilite
derreur P
e
est donc IE (E) = IP(X ,=

X). On note H(E) = H(P
e
).
Lemme 20 (inegalite de Fano)
H(P
e
) +P
e
log
2
([A[ 1) H(X[Y )
Cette inegalite peut etre aaiblie en
1 +P
e
log
2
[A[ H(X[Y ) ou P
e

H(X[Y ) 1
log
2
[A[
On remarque au passage que P
e
= 0 entraine H(X[Y ) = 0, ce qui est assez intuitif.
La preuve vient en calculant H(E, X[Y ) de deux fa cons
H(E, X[Y ) = H(X[Y ) +H(E[X, Y )
. .
=0
= H(E[Y )
. .
H(Pe)
+ H(X[E, Y )
. .
Pe log
2
(|X|1)
En eet, E est fonction de X, Y , donc H(E[X, Y ) = 0, et le conditionnement reduit
lentropie donc H(E[Y ) H(E) = H(P
e
). Enn H(E[X, Y ) se borne par
H(X[E, Y ) = IP(E = 0) H(X[E = 0, Y ) + IP(E = 1) H(X[E = 1, Y )
(1 P
e
) 0 +P
e
H(X[X ,= f(Y ))
P
e
log
2
([A[ 1)
puisque si E = 0, X = f(Y ), et si E = 1, X ne peut prendre que les valeurs de
A f(Y ).
38
Chapter 3
Codage de source, compression
de donnees
3.1 Introduction
Une source dinformation a ete denie comme une variable aleatoire X. Nous nous
interessons maintenant `a la suite des valeurs que peut emettre cette source, que
nous allons modeliser comme une suite X
1
, X
2
, . . . , X
n
de variables aleatoires. Pour
simplier, nous supposerons que les X
i
sont independantes - on dit alors que la source
est sans memoire - et identiquement distribuees (i.i.d.) de loi IP
X
. Les resultats de
ce chapitre setendent neanmoins au cas de sources avec memoire, i.e. telles que les
X
i
sont liees.
Lobjectif de ce chapitre est de coder ecacement un message produit par X,
cest `a dire une suite de valeurs x
1
, . . . , x
n
, an de le transmettre sur un canal
sans bruit. Noter quun espace de stockage (disque dur, CDROM, etc.) est un cas
particulier de canal sans bruit. Pour le codage, on dispose de D symboles que lon
appellera des lettres
1
. Le plus souvent, on supposera D = 2, ce qui signie que les
suites de valeurs de X sont codees sous forme de trains de bits ; la generalisation `a
D > 2 est immediate. Par codage ecace, on entend que le train de bits resultant
du codage doit etre le plus court possible, en moyenne. Si le codage est destine `a
de la transmission sur un canal parfait, cela garantit une transmission rapide. Sil
est destine `a du stockage dinformation, cela garantit un encombrement memoire
minimal. On parle alors de compression de donnees.
Nous avons dej`a vu au chapitre 2 quelques arguments allant dans le sens dun
codage ecace. On a mentionne par exemple quil doit accorder peu de bits (ou
de lettres) aux valeurs x A frequentes, et beaucoup aux valeurs rares. Cest par
exemple une idee qui a ete utilisee dans la construction de lalphabet Morse, lequel
repose sur D = 4 lettres : trait (), point (), silence court, silence long. Ainsi trait
1
Ce vocable peut changer selon les auteurs.
39
et point correspondent `a des lettres (de lalphabet) tr`es frequentes t = et e = .
De meme i = , etc. En revanche x = , y = et z = . Si
on y regarde de plus pr`es, on constate que ce codage est adapte `a la distribution
statistique des lettres de lalphabet pour la langue anglaise.
Le chapitre est organise de la fa con suivante. On sinteresse tout dabord `a
la distribution statistique des suites x
1
, . . . , x
n
, qui rev`ele une propriete tr`es par-
ticuli`ere : les sequences se partagent en sequences normales ou typiques, et
sequences anormales ou atypiques. Les premi`eres concentrent lessentiel de la
probabilite et sont toutes equiprobables, les autres sont rares. Cela nous permettra
detablir une premi`ere technique de codage, qui traite en bloc une suite de lettres.
On sattachera ensuite `a construire des codes de type lettre ` a lettre, comme pour le
Morse, les plus ecaces possibles. On verra que cela demande de connatre la distri-
bution IP
X
. Lorsque cette distribution nest pas connue exactement, on appliquera
un algorithme dit universel de codage, tr`es frequemment utilise en compression
de donnees : lalgorithme de Lempel-Ziv, qui se cache derri`ere des utilitaires tr`es
courants comme zip, gzip, etc.
3.2 Propriete asymptotique dequirepartition (AEP)
Nous nous appuyons ici sur la loi des grands nombres etablie au chapitre 1 sec-
tion 1.3.3 pour etudier la vraisemblance de longues suites x
1
, . . . , x
n
.
3.2.1 Denition de lAEP
Theor`eme 2 Si les variables X
1
, . . . , X
n
, . . . sont i.i.d. de loi IP
X
, alors

1
n
log
2
IP(X
1
, . . . , X
n
)
IP

n
H(X)
o` u H(X) est lentropie de la loi IP
X
, et la convergence se fait en probabilite (cest
le sens de IP sur la `eche).
En eet, considerons la variable aleatoire du membre de gauche, qui est une
fonction du n-uplet (X
1
, . . . , X
n
). Elle secrit
Z
n

1
n
log
2
IP(X
1
, . . . , X
n
) =
1
n
n

i=1
log
2
IP(X
i
)
On a vu que la variable aleatoire Z
n
converge en probabilite vers une variable
deterministe qui nest autre que (voir section 1.3.3, en posant Y
i
= log
2
IP(X
i
) )
IE [log
2
IP(X
i
)] = H(X)
40
Si on exprime cette convergence en probabilite plus clairement, on a
IP
_

1
n
n

i=1
log
2
IP(X
i
) H(X)

>
_

n
0
Remarque. On a vu que cette convergence est aussi presque s ure (loi forte des grands
nombres).
On peut exprimer sous une autre forme le theor`eme 2. Il nous dit en eet
IP(X
1
, . . . , X
n
)
IP

n
2
nH(X)
(3.1)
convergence en probabilite mais aussi presque s ure. Cela signie que la vraisem-
blance IP(x
1
, . . . , x
n
) dune suite de valeurs converge vers 2
nH(X)
. Nous allons
exploiter cette propriete pour denir une partition de lensemble des sequences de
taille n.
Denition 9 Soit > 0, on denit lensemble des sequences typiques de taille n
par
A

n
=
_
(x
1
, . . . , x
n
) : 2
n(H(X)+)
p(x
1
, . . . , x
n
) 2
n(H(X))
_
=
_
(x
1
, . . . , x
n
) : H(X)
1
n
log
2
p(x
1
, . . . , x
n
) H(X) +
_
Une sequence x
1
, . . . , x
n
est donc typique si sa vraisemblance est proche de 2
nH(X)
.
Sinon elle est dite atypique
2
.
Theor`eme 3 Pour n susamment grand, on a
IP(A

n
) > 1
[A

n
[ 2
n(H(X)+)
[A

n
[ (1 ) 2
n(H(X))
En eet
1. La convergence en probabilite 3.1 se traduit par IP(A

n
) 1. Pour n assez
grand, on a donc IP(A

n
) > 1 .
2
Il ne faut pas setonner de ces denitions, qui enoncent une propriete tr`es intuitive. Considerons
une variable binaire X, valant 1 avec la probabilite p. Si lon observe une longue sequence de tirages
de X, on observera une proportion p de 1, et une proportion 1 p de 0. Une telle sequence est
dite typique de la loi de X, sinon elle est atypique. La sequence 0000 . . . 0 est par exemple dautant
plus atypique que n est grand.
41
2. La vraisemblance de chaque suite typique verie par denition
p(x
1
, . . . , x
n
) 2
n(H(X)+)
On a donc
1 IP(A

n
) =

(x
1
,...,xn)A

n
p(x
1
, . . . , x
n
)

(x
1
,...,xn)A

n
2
n(H(X)+)
= [A

n
[ 2
n(H(X)+)
do` u la seconde inegalite.
3. Pour la troisi`eme, on proc`ede de la meme mani`ere, en choisissant n de fa con
`a garantir IP(A

n
) > 1 .
Signication de ce theor`eme
Le theor`eme 3 peut se resumer schematiquement de la fa con suivante. Lorsque n
est grand, la probabilite davoir une sequence (x
1
, . . . , x
n
) typique est quasiment de
1. Il y a environ 2
nH(X)
sequences typiques de taille n, et chacune est (environ) de
probabilite 2
nH(X)
. Tout se passe donc, pour n grand, comme si lon avait une loi
uniforme sur un ensemble de taille 2
nH(X)
.
3.2.2 Application au codage
On cherche maintenant `a transmettre les valeurs produites par la source X en con-
siderant des blocs de n valeurs consecutives, qui seront transmises simultanement.
n est xe dans toute cette section. Pour cela, on construit un code de transmission
en distinguant les sequences typiques des atypiques.
|X|
n
A
n

2
n H(X)
~
squences typiques
2
- n H(X)
p(x1,...,xn)
~
squences de taille n
atypiques
{
Figure 3.1: Partition de lensemble des sequences possibles en typiques et atypiques.
La probabilite de lensemble gris est proche de 1.
Codage :
42
On ordonne les sequences de A

n
(par exemple avec un ordre lexicographique)
et on les numerote, de 1 `a 2
n(H(X)+)
. Cela demande n(H(X) +) bits
3
.
On fait de meme pour les sequences atypiques. Cela demande n log
2
[A[ bits
(en comptant large).
Enn, on ajoute le prexe 1 pour les sequences typiques, et 0 pour les
autres.
Remarques. Il faut moins de bits pour coder une sequence typique. Pour les
sequences atypiques, on a choisi un codage assez brutal.
Quelle est la longueur moyenne de ce code ? Notons x
n
1
une sequence, et L(x
n
1
)
sa longueur. On a
IE [L(X
n
1
)] =

x
n
1
L(x
n
1
)p(x
n
1
)
=

x
n
1
A

n
L(x
n
1
)p(x
n
1
) +

x
n
1
A

n
L(x
n
1
)p(x
n
1
)
= 1 +n(H(X) +) IP(A

n
) +n log
2
[A[ [1 IP(A

n
)]
1 + [1 +n(H(X) +)] 1 + (1 +nlog
2
[A[)
= n(H(X) +

)
o` u

= log
2
[A[ +2/n+/n+ peut etre rendu aussi petit que lon veut, en jouant
sur et n.
Theor`eme 4 Soient > 0 et X
1
, . . . , X
n
une sequence iid de valeurs emises par la
source X, de loi IP
X
. Si n est susamment grand, il existe un codage (binaire) des
sequences x
1
, . . . , x
n
dont la longueur moyenne verie
IE
_
1
n
L(X
n
1
)
_
H(X) +
On peut donc transmettre X en utilisant H(X) bits par variable, en moyenne,
pourvu que lon transmette des sequences assez longues.
Remarque. Si lon avait code les sequences sur D > 2 symboles au lieu de D = 2
bits, on aurait les memes resultats en rempla cant log
2
par log
D
dans toutes les
expressions. En particulier H
2
(X) devient H
D
(X), 2
nH
2
(X)
devient D
nH
D
(X)
, etc.
3
x represente n + 1 pour n x < n + 1
43
3.3 Classes de codes de source
Le probl`eme de lAEP est quelle impose de coder de longues sequences. Elle est
donc dun interet pratique limite (codes gigantesques, retard au decodage, etc.). On
va donc sattacher maintenant `a construire des codes les plus ecaces possibles pour
les valeurs elles-memes de X, non plus pour des sequences de valeurs.
3.3.1 Classes de codes
Denition 10 Un code de source pour X est une fonction C : A /
+
, o` u / est
un ensemble de D symboles, et /
+
lensemble des sequences de symboles de longueur
nie non nulle. La suite de symboles C(x) est le mot de code associe ` a la valeur x.
Exemple. A = a, b, c, . . . , p et / = 0, 1, donc D = [/[ = 2. On peut coder les
valeurs de X par la transcription binaire du rang de la lettre dans lalphabet, ce qui
donne C(a) = 0000, C(b) = 0001, etc.
Exemple. On peut aussi choisir de ne pas garder les 0 non signicatifs ` a gauche,
ce qui donne C(a) = 0, C(b) = 1, C(c) = 10, C(d) = 11, etc.
On notera L : /
+
N la fonction donnant la longueur dune suite de symboles.
L
C
(x), ou simplement L(x) voire l
x
, representera la longueur du mot de code associe
`a x, soit L(C(x)). La longueur moyenne dun code est ainsi
IE [L(X)] =

xX
L[C(x)]IP
X
(x) =

x
l
x
p
x
Denition 11 Un code (de source) C est dit non-singulier ssi C est injective.
Cest la premi`ere propriete `a lui demander : on doit pouvoir retrouver x `a partir de
C(x).
Denition 12 Lextension du code C ` a des sequences de valeurs de X est denie
par la concatenation des mots de codes:
C : A
n
/
+
(x
1
, x
2
, . . . , x
n
) C(x
1
)C(x
2
) C(x
n
)
Denition 13 Un code est dit `a decodage unique ssi son extension est non-singuli`ere,
pour toute valeur de n.
Cela signie qu`a partir de la suite de symboles resultant du codage dune sequence
x
1
, . . . , x
n
, on peut retrouver sans ambiguite cette sequence. Noter que lon peut
avoir besoin de tous les symboles pour determiner lun des x
i
.
Exercice. Montrer que le premier code de lexemple ci-dessus est `a decodage unique,
mais pas le second.
44
Denition 14 On dit que C est un code prexe (ou instantane, ou autoponctue)
ssi aucun mot de code nest prexe dun autre.
Cette propriete est tr`es importante en pratique car elle permet de decoder une
sequence transmise `a la volee. En eet, chaque fois quun mot de code est reconnu
dans la suite de lettres, on peut placer une cesure et acher la valeur x de A
`a laquelle il correspond. Cette propriete evite de conserver une lettre de / pour
marquer la separation des mots. On notera quun code prexe est necessairement `a
decodage unique, mais linverse nest pas vrai.
Exercice. On prend / = 0, 1 et A = , , . Ces valeurs sont codees respec-
tivement par 00, 01 et 010. C est clairement un code non-singulier, mais il nest pas
instantane car C() est un prexe de C(). Montrer comment decoder la sequence
0100000101000. Demontrer ensuite que ce code est `a decodage unique (indication :
raisonner sur le nombre de 0 dans les intervalles denis par les 1).
3.3.2 Inegalite de Kraft
On se pose maintenant la question suivante : la source X peut emettre N valeurs
dierentes, quil faut coder en utilisant un alphabet / = a
1
, . . . , a
D
de D symboles.
Le code obtenu doit etre prexe, et de longueur moyenne minimale
4
.
Le premier resultat enonce montre que la longueur des mots du code doit satis-
faire quelques contraintes.
Theor`eme 5 (inegalite de Kraft) Soit C un code prexe pour la source X, avec
[A[ = N, forme sur un alphabet / = a
1
, . . . , a
D
de D symboles. Soient l
1
, . . . , l
N
les longueurs des mots de codes associes aux valeurs de X, on a
N

i=1
D
l
i
1 (3.2)
Reciproquement, soient N longueurs l
1
, . . . , l
N
veriant (3.2), alors il existe un
code prexe de N mots, construits sur D lettres, satisfaisant ces longueurs.
Ce resultat a lair complique, mais il ny a pas de myst`ere. Il dit seulement
que pour coder beaucoup de valeurs de X, il faut susamment de symboles (ou de
bits)... Pour le demonter, on peut supposer D = 2 sans perte de generalite, et lon
va revenir `a un schema dej`a rencontre
5
.
4
Ce crit`ere de longueur moyenne a des implications tr`es concr`etes : chaque symbole `a emettre
demande de lenergie au syst`eme de transmission, et donc represente un co ut au nal.
5
Il nous avait dej`a permis de deviner que lentropie mesure le nombre moyen de bits necessaires
pour transmettre les valeurs produites par une source, chapitre 2, gure 2.3.
45
2
-3
2
-2
2
-4
01 0011 0010 0001 0000 110
0 1
1
1 0
0 1
0 1
1 0 1 0 1
1111
Figure 3.2: Un code (binaire) prexe place sur un arbre dyadique rev`ele en fait une
coupure de cet arbre.
CN. On commence par tracer un arbre dyadique (inni), qui represente toutes
les sequences binaires que lon peut construire (g. 3.2). Un chemin ni descen-
dant represente ainsi un mot de code possible. Dans un code prexe, aucun mot
nest prexe dun autre. Il sensuit que deux mots qui commencent par la meme
branche doivent necessairement se separer. Si on represente tous les mots du code par
leur point darrivee dans larbre, on obtient ainsi une coupure de larbre dyadique.
`
A toute feuille de profondeur i de cet arbre coupe on associe un intervalle de
longueur 2
i
. La somme des longueurs de ces intervalles ne peut alors depasser
2
0
= 1, qui revient `a couper larbre `a sa racine. Cela donne linegalite de Kraft.
CS. Si on se donne maintenant les longueurs veriant linegalite, il faut montrer
que lon peut remonter `a une coupure de larbre dyadique. Il est assez facile de
construire une methode pour cela (exercice). (Indication : classer les longueurs
par ordre decroissant.)
Corollaire 2 Le theor`eme reste valable pour N = , cest ` a dire pour un ensemble
denombrable de valeurs ` a coder.
Linegalite de Kraft simplie beaucoup la recherche de codes de longueur moyenne
optimale. En eet, il sut maintenant de rechercher le meilleur jeu de longueurs
l
x
associees aux valeurs x, sous la contrainte (3.2), et lon saura ensuite obtenir un
code correspondant. Cette question fait lobjet de la section suivante.
Theor`eme 6 Le theor`eme precedent reste valable pour un code ` a decodage unique
(non prexe).
46
Pour le montrer, nous allons majorer (

i
D
l
i
)
k
. Il vient
_

i
D
l
i
_
k
=

i
1

i
k
D
l
i
1
D
l
i
k
=

(x
1
,...,x
k
)X
k
D
L(x
1
)...L(x
k
)
=

(x
1
,...,x
k
)X
k
D
L(x
1
,...,x
k
)
o` u L(x
1
, . . . , x
k
) = L(x
1
) +. . . +L(x
k
) est la longueur du code associe `a la sequence
x
1
, . . . , x
k
dans la k
eme
extension du code C. Dans ce code etendu C
k
, on peut
regrouper les mots par longueurs. Soit l
max
la taille du plus grand mot de code dans
C, on a
_

i
D
l
i
_
k
=
klmax

l=1
a(l)D
l
o` u a(l) est le nombre de mots de taille l dans C
k
. Comme par hypoth`ese C
k
est `a
decodage unique, il contient au plus D
l
sequences de taille l, do` u
_

i
D
l
i
_
k

klmax

l=1
D
l
D
l
= k l
max
Cela donne

i
D
l
i
(k l
max
)
1/k
, vrai pour toute valeur de k. Par k , il vient

i
D
l
i
1, cest `a dire linegalite de Kraft.
Puisque un code uniquement decodable mais non-prexe verie aussi linegalite
de Kraft, en reprenant ses longueurs l
i
, on peut construire un code prexe ayant
exactement la meme longueur moyenne. Il sensuit que les codes optimaux doivent
etre recherches parmi les codes prexes : les codes uniquement decodables ne sont
pas meilleurs, tout en etant moins commodes...
3.4 Code de Shannon
On suppose que X peut prendre N valeurs, A =
1
, . . . ,
N
, de probabilites
respectives p
1
, . . . , p
N
. Ces valeurs sont codees sur un alphabet / de D lettres, et
donnent des mots de code de longueurs respectives l
1
, . . . , l
N
, i.e. l
i
= L[C(
i
)]. La
longueur moyenne du code est ainsi donnee par
L
X
IE [L C(X)] =
N

i=1
l
i
p
i
(3.3)
47
On cherche les codes donnant un L
X
minimal. Comme on la vu plus haut, il sut
de se preoccuper des longueurs l
i
; le code (prexe) peut sen deduire simplement. Il
sagit donc de minimiser (3.3) sous la contrainte que les l
i
sont enti`eres et verient
linegalite de Kraft.
3.4.1 Minoration de la longueur moyenne optimale
On va commencer par abandonner la contrainte l
i
N et supposer l
i
R. Nous reste
une contrainte dinegalite :

i
D
l
i
1. Il est facile de voir que L
X
est maximum
lorsque cette contrainte est active, on va donc supposer legalite, ce qui nous ram`ene
`a une structure classique de probl`eme doptimisation, qui peut se resoudre par une
technique simple de Lagrangien :
J

(l
1
, . . . , l
N
) =

i
l
i
p
i
+
_

i
D
l
i
1
_
J

l
i
= p
i
D
l
i
ln D = 0 D
l

i
()
=
p
i
ln D
Pour satisfaire la contrainte, on voit alors quil faut prendre =
1
lnD
, do` u
l

i
= log
D
p
i
La longueur moyenne verie alors
L

X
=

i
l

i
p
i
=

i
p
i
log
D
p
i
= H
D
(X)
Theor`eme 7 Si X est code par des mots formes sur un alphabet / de D lettres,
avec un code prexe (ou meme seulement uniquement decodable), alors la longueur
moyenne de ce code verie
L
X
H
D
(X)
La borne est atteinte ssi p
i
= D
l
i
, l
i
N, cest ` a dire si IP
X
est une loi D-adique.
Ce resultat entraine plusieurs commentaires. On avait dej`a vu section 3.2 quil
etait possible de transmettre X avec H(X) bits, ou H
D
(X) lettres, en moyenne par
valeur x, ceci en considerant de longues sequences. On navait pas montre toutefois
que cetait loptimum. Ici, on vient de montrer quil nest pas possible de faire mieux
si lon transmet valeur par valeur. Mais meme en considerant des sequences la borne
demeure. En eet, considerons la sequence X
1
, . . . , X
n
comme une seule variable.
On ne peut la transmettre avec moins de H
D
(X
1
, . . . , X
n
) lettres en moyenne. Or
comme les X
i
sont independantes, il vient H
D
(X
1
, . . . , X
n
) = nH
D
(X) ; il faut donc
bien au minimum H
D
(X) lettres par valeur x (en moyenne). Ce theor`eme donne
donc une borne absolue `a la compression sans perte dune sequence X
1
, . . . , X
n
.
Remarque : on vient en fait de demontrer la signication intuitive de lentropie
que nous avions donnee au chapitre 2, section 2.1.3. On avait en particulier illustre
cette interpretation par des lois dyadiques (g. 2.2 et 2.3).
48
3.4.2 Majoration de la longueur moyenne optimale
Que se passe-t-il si lon reintroduit les contraintes l
i
N ? Bien entendu, on fait
moins bien, mais de combien ? Une idee naturelle consiste `a prendre
6
l
i
= l

i
= log
D
p
i

Linegalite de Kraft reste satisfaite puisque lon a augmente les longueurs. Il vient
alors

i
p
i
log
D
p
i


i
p
i
l
i
< 1 +

i
p
i
log
D
p
i
H
D
(X) L
X
< 1 +H
D
(X)
Theor`eme 8 (1
er
theor`eme de Shannon) Le code optimal pour la source X, sur
un alphabet de D lettres, est de longueur moyenne L
X
veriant
H
D
(X) L
X
< 1 +H
D
(X)
En dautres termes, lobligation dutiliser des longueurs enti`eres nous fait perdre
au plus une lettre en moyenne, par rapport `a la borne absolue. On est parfois
contraint `a cette perte. Par exemple, pour transmettre une variable X de Bernouilli,
il faut un bit par valeur, quelle que soit lentropie de X.
Peut-on faire mieux ? Oui, en regroupant les valeurs `a emettre. Supposons que
lon transmet X
1
, . . . , X
n
, . . . `a partir dun code pour k valeurs consecutives, il vient :
H
D
(X
1
, . . . , X
k
) L
X
k
1
< 1 +H
D
(X
1
, . . . , X
k
)
Comme H
D
(X
1
, . . . , X
k
) = kH
D
(X), il vient
H
D
(X)
1
k
L
X
k
1
<
1
k
+H
D
(X)
Avec ce procede, on a reparti la lettre perdue sur k valeurs consecutives. On ne
perd donc plus que
1
k
lettre par valeur de X emise. On notera que cest un progr`es
par rapport `a lAEP puisque lon avait alors
1
k
L
X
k
1
H
D
(X) +
uniquement pour k . Ici on contr ole la longueur de la sequence `a utiliser pour
une perte donnee par rapport `a H
D
(X).
6
Rappel : u represente la partie enti`ere superieure de u, cest `a dire n+1 lorsque n < u n+1.
49
Commentaires
La technique l
i
= log
D
p
i
pour construire un code prexe est due `a Shan-
non. Un code ainsi construit est donc appele code de Shannon.
Le premier theor`eme de Shannon contient en fait deux resultats : L
X
H
D
(X)
(limite de la compression sans perte) et
1
k
L
X
k
1
H
D
(X)+
1
k
(on peut atteindre
cette limite).
3.5 Code de Human
Shannon a cherche les longueurs optimales des mots de code dans R, puis les a
arrondies pour construire un code prexe, dit code de Shannon. Human, lui, a
recherche directement un code prexe optimal, en prenant en compte d`es le debut
les contraintes l
i
N. Sa construction repose sur 4 idees force, que nous illustrons
dans le cas binaire (lextension est immediate).
3.5.1 Quatre idees force
Idee 1
Les valeurs de x les moins probables doivent etre associees aux mots les plus longs.
Supposons que A =
1
, . . . ,
N
est ordonne de sorte que
p
1
p
2
. . . p
N
les longueurs de mots associees doivent alors verier
l
1
l
2
. . . l
N
car on veut minimiser L
X
=

i
l
i
p
i
. Si les longueurs ne sont pas dans cet ordre, il
sura simplement de reaecter les mots de code.
Idee 2
Les deux mots (D mots en general) les moins probables sont de meme longueur :
l
N1
= l
N
. En eet, aucun mot du code nest prexe de C(
N
). Soit l =
max
N1
i=1
l
i
= l
N1
; il vient que les lettres de rang l + 1 `a l
N
dans C(
N
) sont
inutiles pour distinguer C(
N
) des autres mots du code. On peut donc les retirer,
ce qui donne un meilleur code prexe, avec l
N
= l
N1
.
50
Idee 3
On peut sarranger pour que les deux (D) derniers mots C(
N1
) et C(
N
) ne
di`erent que par le dernier bit (la derni`ere lettre). Cela decoule de la CS de linegalite
de Kraft : on peut sarranger pour que les deux (D) derni`eres longueurs soient as-
sociees `a des chemins parall`eles dans larbre dyadique (D-adique), divergeant seule-
ment au dernier bit (`a la derni`ere lettre). Cela donne, dans le cas binaire
C(
N1
) =
1

2

l
N
1
0
C(
N
) =
1

2

l
N
1
1
. .
l
N1
=l
N
Idee 4
On peut reduire les deux (D) derniers mots du code `a leur prexe commun (
1

2

l
N
1
dans lexemple ci-dessus), ce qui represente la paire (le D-uplet) (
N1
,
N
), de
probabilite p
N1
+ p
N
. On obtient ainsi un nouveau code prexe sur les valeurs

1
, . . . ,
N2
, (
N1
,
N
). Construire le meilleur code prexe sur N valeurs se
ram`ene de cette fa con `a trouver le meilleur code sur N 1 valeurs. Cela permet
dinitier une technique de construction recursive.
3.5.2 Mise en oeuvre (exemples)
Exemple 1
0,25
0,25
0,2
0,15
0,15
0,25
0,25
0,2
0,3
0,25
0,45
0,3 0,45
0,5
1

5
X
01
10
11
000
001
code
??? 0
??? 1
??? 0
??? 1
??? 0
??? 1
0
1
Px
Figure 3.3: Construction dun code de Human binaire.
La construction dun code de Human reprend exactement les idees ci-dessus.
On consid`ere les 2 valeurs les moins probables, et lon ecrit quelles di`erent par
le dernier bit. Puis on regroupe ces deux valeurs, on reclasse les N 1 elements
restants par probabilites decroissantes, et on recommence.
`
A la n, il sut de suivre
le chemin `a lenvers (i.e. de reseparer les symboles groupes) pour retrouver les bits
utilises pour les distinguer. La construction la plus commode utilise un tableau,
comme gure 3.3. Bien entendu, lors de chaque regroupement de symboles, on a le
51
choix dans lattribution de la lettre qui distinguera ces symboles dans le groupe. On
peut donc construire plusieurs codes de Human.
Exemple 2
0,25
0,25
0,2
0,15
0,15

5
X
??? 1
2 ???
1
2
00
01
02
code
??? 0 2
1
0
Px
0,25
0,25
0,5
Figure 3.4: Construction dun code de Human ternaire.
La gure 3.4 illustre la construction dun code de Human avec D = 3. On
remarque qu`a chaque etape le nombre de valeurs diminue de D 1. On regroupe
en eet D valeurs en une seule. Ainsi la procedure fonctionne correctement lorsquil
y a D +k(D 1) symboles `a coder, o` u k est le nombre detapes. Si ce nest pas le
cas, on compl`ete A avec des symboles ctifs, de probabilite nulle, avant dappliquer
la methode de construction. La technique est illutree sur lexemple 3.
Exemple 3
2
1
0
2 ???
??? 1
??? 0
??? 0
??? 1
2 ???
1
2
00
02
010
011
012

7
0,25
0,25
0,2
0,1
0,1
0,1
0
0,25
0,25
0,2
0,2
0,1
0,5
0,25
0,25
Px
code
X
Figure 3.5: Construction dun code de Human ternaire, avec ajout de symboles
ctifs.
52
3.5.3 Resultat fondamental
Theor`eme 9 Le (un) code de Human realise la meilleure longueur moyenne parmi
tous les codes prexes (ou ` a decodage unique).
En eet, soient l
1
, . . . , l
N
les longueurs de mots associees `a un code prexe C
quelconque. Si ces longueurs ne satisfont pas les idees 1 et 2, ce code est moins bon
quun code de Human C
H
. Quitte `a modier les lettres dans C, on peut sarranger
pour obtenir un nouveau code prexe C

de meme longueur moyenne, et satisfaisant


lidee 3. (Cela revient `a modier la coupure de larbre dyadique, `a longueurs de
mots xees.) En retirant la derni`ere lettre des deux mots les plus longs, on obtient
un code C

sur un ensemble restreint de N (D 1) symboles qui verie


L
C
= L
C
= L
C
+p
ND+1
+. . . +p
N
On peut proceder de meme avec le code de Human, et il vient L
C
L
C
H
= L
C

L
C

H
. Si donc C est meilleur que C
H
, alors C

est meilleur que C

H
. En poursuivant
pas recurrence, on montre que les longueurs l
i
dun code optimal sont celles dun
code de Human.
Remarques :
1. Ce resultat ne porte en fait que sur les longueurs des mots. Il ne dit pas
que tous les codes optimaux sont obtenus pas la construction de la section
precedente. En eet, letape de reaectation des chemins de larbre D-adique
ny est pas prise en compte.
2. Cas particulier de ce theor`eme : un code de Human est meilleur quun code
de Shannon. Considerons une variable X de Bernouilli, avec p
1
= 0, 9999 et
p
2
= 0, 0001. La technique de Shannon dit quil faut aecter log
2
p
i
bits
`a
i
. Cela donne 1 bit pour
1
et 14 bits pour
2
! Un code de Human se
contentera dun seul bit pour
2
...
3. Bien entendu, meme avec un code de Human, on natteint pas lentropie
comme longueur moyenne minimale. Pour y arriver, il faut grouper les sym-
boles `a transmettre par paquets, comme on la vu pour le code de Shannon.
3.6 Code de Lempel-Ziv
Dans bien des cas pratiques, on ne connat pas exactement la distribution de la source
X. D`es lors, il est impossible de construire un code de Human. Sans connatre la
distribution IP
X
, on peut neanmoins connatre son entropie H(X). On sest alors
pose la question de construire des codes de source universels, susceptibles de coder
toutes les sources dont lentropie ne depasse pas une borne xee R en utilisant R
53
bits par valeur `a transmettre
7
. Ces codes proc`edent par encodage de suites i.i.d.
de symboles, comme on la vu dans la section consacree `a lAEP, en denissant des
suites typiques et atypiques. Les resultats mis en oeuvre sont un peu plus ns que
lAEP, neanmoins, puisquon ne connat pas IP
X
.
Une autre technique de codage universel a ete developpee pour les sources sur
lesquelles on ne dispose daucune information. Cette technique, due `a Lempel et Ziv
(76), cumule de nombreux avantages :
les algorithmes de codage et de decodage sont tr`es simples,
elle ne demande aucune connaissance sur la source,
elle est asymptotiquement optimale,
elle fonctionne meme avec des sources `a memoire.
Bien entendu, elle proc`ede encore une fois par encodage de suites de valeurs produites
par la source. Avant de la decrire, nous allons presenter quelques notions concernant
les sources `a memoire.
3.6.1 Taux dentropie dune source
Pour modeliser une source X avec memoire, on abandonne lhypoth`ese que les vari-
ables X
1
, . . . , X
n
, . . . sont i.i.d. On a donc aaire `a un processus stochastique X qui
nest plus un bruit blanc, ni stationnaire a priori.
Denition 15 Le taux dentropie du processus X est deni par
H(X) = lim
n
1
n
H(X
1
, . . . , X
n
)
lorsque cette limite existe. L accroissement asymptotique dentropie est deni par
H

(X) = lim
n
H(X
n
[X
1
, . . . , X
n1
)
lorsque cette limite existe.
Intuitivement, ces deux quantites mesurent le degre dincertitude apporte au pro-
cessus par une variable supplementaire. Elles sont dierentes en general.
Exemple. Si le processus est iid, on retrouve H(X) = H

(X) = H(X). Toutefois,


si les X
n
sont seulement independantes, ces deux quantites ne sont pas forcement
identiques, et peuvent meme ne pas exister.
7
Si on code sur D lettres, les codes demandent R lettres en moyenne pour les sources telles que
HD(X) < R.
54
Lemme 21 Si X est un processus stationnaire (au sens strict), alors H(X) et
H

(X) existent et sont identiques.


La stationnarite au sens strict signie que, pour tout k, la loi du k-uplet (X
n+1
, . . . , X
n+k
)
ne depend pas de sa position n dans le processus X. Il vient que la suite u
n
=
H(X
n
[X
1
, . . . , X
n1
) converge. En eet, cest une suite positive decroissante puisque
u
n+1
= H(X
n+1
[X
1
, . . . , X
n
)
H(X
n+1
[X
2
, . . . , X
n
)
= H(X
n
[X
1
, . . . , X
n1
)
= u
n
Donc H

(X) est bien denie. Par ailleurs, en utilisant la formule des condition-
nements successifs,
v
n
=
1
n
H(X
1
, . . . , X
n
) =
1
n
n

k=1
H(X
k
[X
1
, . . . , X
k1
) =
1
n
n

k=1
u
k
v
n
est donc la moyenne de Cesaro dune suite convergente ; elle converge donc vers
la meme limite, ce qui prouve que H(X) existe et vaut H

(X).
Exemple. Dans le cas dune chane de Markov stationnaire, H(X
n
[X
1
, . . . , X
n1
) =
H(X
n
[X
n1
) = H(X
2
[X
1
). Le taux dentropie de la chane vaut donc H(X
2
[X
1
) :
lincertitude supplementaire apportee par chaque maillon de la chane est constante.
3.6.2 Algorithme de Lempel et Ziv
Par souci de simplicite, nous allons decrire lalgorithme en supposant que X est une
source binaire, eventuellement avec memoire, `a coder sur un alphabet binaire. La
methode setend directement `a une source prenant N valeurs distinctes, `a coder avec
D lettres.
Lalgorithme proc`ede en deux passes, sur une suite nie de bits x
1
, . . . , x
n
. La
premi`ere passe decompose le train de bits en segments de sorte que chaque nouveau
segment nait pas ete rencontre precedemment. Sur la suite
1011010100010 . . .
cela donne la segmentation
1[0[11[01[010[00[10[ . . .
Il vient que chaque segment est compose dun prexe, correspondant `a un segment
dej`a rencontre, plus un bit.
`
A la n de la premi`ere passe, on compte alors le nombre
de segments, note c(n).
55
La deuxi`eme passe proc`ede au codage proprement dit. Elle numerote les seg-
ments par ordre dapparition, ce qui demande log
2
(c(n)) bits par segment, et
represente chaque segment s `a laide dune paire (a, b) o` u a est le numero du prexe
de s, et b le bit qui a ete rajoute (le suxe). Sur lexemple precedent, on a 7 seg-
ments dierents, que lon va numeroter et coder sur 3 bits. La segmentation devient,
sous forme codee,
(000, 1)(000, 0)(001, 1)(010, 1)(100, 0)(010, 0)(001, 0) . . .
La longueur de la sequence codee est donc c(n)[1 +log
2
c(n)]. Le decodage se fait
par le procede inverse (il faut neanmoins connatre c(n)). Sur lexemple ci-dessus,
la sequence codee est plus longue que la sequence dentree du codeur... Mais il faut
voir que pour des suites dentree longues, les segments que lon identie sont eux-
memes de plus en plus longs, et lon y gagne beaucoup `a les decrire sous la forme
compacte (a, b).
Theor`eme 10 Soit X un processus stationnaire et ergodique
8
, de taux dentropie
H(X). Soit l(X
1
, . . . , X
n
) la longueur du mot de code de Lempel-Ziv associe ` a la
suite X
1
, . . . , X
n
(cest une variable aleatoire). Alors presque s urement
limsup
n
1
n
l(X
1
, . . . , X
n
) H(X)
Ce resultat signie que le codage de Lempel-Ziv est asymptotiquement optimal :
le nombre de bits par symbole de X `a transmettre nexc`ede pas lincertitude moyenne
introduite par chaque symbole. Cet algorithme est standard pour la compression de
chiers (compress sous Unix, arc sur PC). Il reduit typiquement les chiers ACSII
dun facteur 2. Il est aussi utilise dans les protocoles dechanges de chiers.
8
Lergodicite dun processus stationnaire entrane que les moyennes empiriques
1
n
P
n
i=1
f(Xi)
convergent vers les moyennes statistiques IE [f(X)].
56
Chapter 4
Transmission de donnees sur un
canal bruite
4.1 Introduction
Au chapitre precedent, nous nous sommes interesses `a la representation compacte
des valeurs emises par une source X `a laide dun ensemble de lettres /. Le codage
C : A /

consistait `a representer chaque valeur x par un mot de code C(x),


de sorte que la longueur moyenne du code soit minimale. On a vu quil fallait au-
moins H
D
(X) lettres par valeur de X (en moyenne), et que cette borne pouvait
etre atteinte. Ce resultat permet de comprimer la source X, cest `a dire de la
representer de la mani`ere la plus compacte, `a des ns de stockage ou de transmission
sur un canal sans bruit.
En comprimant ainsi la source, on a enleve toute la redondance quelle contenait.
On pourrait ainsi montrer que les lettres dune sequence codee sont (ou plut ot ten-
dent `a etre) independantes et uniformement distribuees. Il sensuit que chacune est
indispensable `a un decodage correct ; on est donc s ur dobtenir un message errone
apr`es decodage si lune de ces lettres est alteree ou perdue.
Nous allons maintenant nous interesser `a la transmission able dun message
sur un canal bruite, cest `a dire susceptible dalterer les lettres emises. Clairement,
transmettre une source sans redondance conduira `a des erreurs inevitables. Lutter
contre les erreurs introduites par le canal va ainsi demander de rajouter de la re-
dondance dans la suite de symboles emis, an de reperer et corriger les eventuelles
erreurs. Exemple de redondance : suppasons qui vouh recevaz la mesrage suilant,
vous naurez aucun mal `a detecter et corriger les lettres erronees en utilisant la re-
dondance interne des mots de la langue fran caise. Dun point de vue technique,
rajouter de la redondance revient `a rajouter au message des lettres supplementaires
qui sont fonction des lettres utiles. Cest, en un sens, loperation inverse de la
compression. On verra au chapitre suivant comment construire cette information
57
redondante. Nous allons tout dabord determiner la quantite dinformation redon-
dante necessaire `a une transmission able, quantite qui decoule des proprietes du
canal de transmission. Il sagit l`a de lun des resultats fondamentaux de la theorie
de linformation : le second theor`eme de Shannon.
4.2 Capacite de canal
4.2.1 Notations, denition dun canal
Un syst`eme de transmission avec codage de canal peut se lire comme
A [codage] /

[canal] B

[decodage]
o` u
A contient les M valeurs possibles pour la source X,
/ est lalphabet dentree du canal, de sorte que /

contient les mots du code


de canal,
B est lalphabet de sortie du canal, qui peut etre dierent de /, et donc B

represente les mots de code apr`es bruitage par le canal,


contient les valeurs decodees de X. On a generalement = A, et lon note
Y =

X pour indiquer que la sortie Y du syst`eme donne une estimation de
lentree X.
Dans la suite, par souci de coherence avec les chapitres precedents, nous allons
noter A
n
1
ou simplement A
n
une suite de n lettres en entree du canal, et B
n
1
ou
B
n
les lettres de sortie. Certaines references (notamment Information Theory de
Cover et Thomas) utilisent toutefois la notation A et comme alphabets dentree
et de sortie du canal.
Denition 16 Un canal discret est deni par le triplet (/, IP
B|A
, B) o` u / est lalphabet
dentree, B lalphabet de sortie, et IP
B|A
la probabilite de transition du canal. IP
B|A
est souvent note sous forme dune matrice (stochastique) de taille [/[ [B[.
Le canal est donc caracterise par la distribution des lettres de sortie pour chaque
lettre emise a. Un canal parfait correspond ainsi `a IP
B|A
= 1I
B=A
. On considerera
dans la suite des canaux discrets sans memoire, cest `a dire perturbant les lettres de
fa con independante
1
:
p(b
n
1
[a
n
1
) =
n

k=1
p(b
k
[a
k
)
1
En supposant en outre quils sont stationnaires, cest `a dire que la probabilite de transition par
lettre qui les caracterise ne varie pas dune lettre `a lautre.
58
Exemple. La gure 4.1 represente un canal binaire : / = B = 0, 1. p designe
la probabilite de recevoir 1 lorsque 0 a ete emis, et 1 p est donc la probabilite
de transmission correcte du 0. Symetriquement pour q lorsque 1 est emis. Un tel
canal binaire est dit symetrique si p = q, et p est alors appele probabilite derreur
du canal.
0
1
0
1
p
1-p
q
1-q
Figure 4.1: Canal binaire.
4.2.2 Capacite dun canal
Denition 17 La capacite C dun canal discret sans memoire est donnee par
C = max
IP
A
I(A; B)
Le max est donc pris sur toutes les distributions possibles IP
A
de lentree A. Comme
le canal est deni par IP
B|A
, on dispose bien de la loi jointe IP
A,B
qui permet de
calculer linformation mutuelle I(A; B). Nous allons voir dans ce chapitre que la
capacite C represente le nombre moyen de bits que lon peut transmettre sans erreur
par utilisation du canal (une utilisation est lenvoi dune lettre).
Proprietes
1. C 0 car I(A; B) 0
2. C log
2
[/[ car C max H(A), obtenu pour la loi uniforme,
3. C log
2
[B[, meme argument
4. C existe toujours et est unique, car I(A; B) est une fonction continue concave
de IP
A
; cela ne signie pas toutefois que C est facile `a calculer analytiquement,
mais elle est facilement accessible par optimisation numerique.
4.2.3 Exemples
Canal parfait
Le canal parfait (g. 4.2) sur / = B = 0, 1, . . . , D 1 a pour probabilite de
transition IP
B|A
= 1I
B=A
. Il vient I(A; B) = H(B) H(B[A) = H(B) = H(A) qui
est donc maximale pour la loi uniforme, do` u C = log
2
D. Le canal parfait binaire
transmet ainsi sans erreur 1 bit par utilisation. Normal.
59
0 0
1 1
D-1 D-1
...
Figure 4.2: Canal parfait D-aire.
Canal sans interference
Cest un cas (g. 4.3) o` u lalphabet de sortie di`ere de lalphabet dentree. On a
I(A; B) = H(A) H(A[B), or H(A[B) = 0 puisque la sortie permet de retrouver
exactement lentree, do` u C = max H(A) = 1.
0
1
0
3
q
1-q
p
1-p
1
2
Figure 4.3: Canal sans interference.
Machine `a ecrire bruitee
Ce canal (g. 4.4) travaille sur / = B = a, b, c, d, . . . , z. La lettre emise est soit
reproduite d`element, soit changee en la lettre suivante de lalphabet (modulo 26),
avec une probabilite 1/2. Il vient donc H(B[A) = 1. Do` u I(A; B) = H(B)
H(B[A) log
2
(26) 1 = log
2
(13). Donc C log
2
(13). Cette borne peut en fait
etre atteinte en nutilisant quune lettre sur deux `a lemission, i.e. a, c, e, . . . , y
par exemple, ce qui nous ram`ene dans le cas du canal sans interference.
b
c
b
c
a a
z z
.
.
.
.
.
.
Figure 4.4: La machine `a ecrire bruitee.
60
Canal binaire symetrique
Voir gure 4.1 avec p = q. On a
I(A; B) = H(B) H(B[A) = H(B)

a
p(a)H(B[A = a)
Or H(B[A = a) ne depend pas de a et vaut H(p), entropie dune variable de
Bernouilli de param`etre p. Donc I(A; B) = H(B) H(p) 1 H(p). Cette
borne est atteinte lorsque A a la loi uniforme : B est alors aussi de loi uniforme.
Canal binaire `a eacement
Ce canal (g. 4.5) suppose / = 0, 1 et B = 0, 1, ; il eace la lettre emise avec
une probabilite p.
I(A; B) = H(B) H(B[A), et lon a clairement H(B[A) = H(p) (voir cas
precedent). Soit E lindicateur deacement, qui vaut 1 lorsque lon a re cu et 0
sinon. Comme E se deduit de B, il vient
H(B) = H(B, E)
= H(E) +H(B[E)
= H(p) +p H(B[E = 1)
. .
0
+(1 p) H(B[E = 0)
. .
H(A)
= H(p) + (1 p)H(A)
Il vient donc I(A; B) = (1 p)H(A) 1 p. La borne est atteinte avec la loi
uniforme sur lentree A, do` u C = 1 p.
0 0
1-p
1
1
1-p
p
p

Figure 4.5: Canal binaire `a eacement.
Ce resultat est assez intuitif : pour eectivement transmettre un message sans
erreur sur ce canal, il sut dadopter un protocole simple de feedback : lorsquune
lettre a ete eacee, on demande sa retransmission. On transmet ainsi correctement
une proportion 1 p des bits, soit 1 p bit par utilisation du canal. La capacite du
canal est donc bien le nombre de bits utiles que lon peut transmettre par utilisation
du canal. On verra plus loin que lon peut atteindre les memes performances sans
utiliser de feedback (la capacite dun canal nest pas augmentee si lon ajoute une
voie de feedback).
61
On observe aussi sur cet exemple que C = 1 p est le meilleur rendement dun
code able (cest `a dire corrigeant toutes les erreurs) pour ce canal. En eet, pour
k bits utiles `a transmettre, il faudra utiliser n = k/(1 p) fois le canal en moyenne,
do` u R = 1 p. Le theor`eme de Shannon generalisera ce resultat.
Canal symetrique
Cest une generalisation du canal binaire symetrique.
Denition 18 Un canal de transmission est symetrique ssi les colonnes (comme
les lignes) de sa matrice de transition IP
B|A
sobtiennent par permutation circulaire.
Exemple. Sur des alphabets de 3 lettres
IP
B|A
=
_
_
0, 3 0, 2 0, 5
0, 5 0, 3 0, 2
0, 2 0, 5 0, 3
_
_
Exemple. Un cas typique de canal symetrique est la situation / = B = 0, 1, . . . , D
1, o` u IP
B|A
est denie par B = A + Z modulo D. La loi de Z determine alors la
premi`ere ligne de la matrice IP
B|A
. Ci-dessus, on a Z = 0, 1 ou 2 avec les vraisem-
blances (0, 3 0, 2 0, 5).
La capacite dun tel canal est donnee par C = log
2
[B[ H(Z) (exercice).
4.2.4 Classication generale des canaux
Generalement, un canal de transmission est deni globalement pour des mots de
taille n, par une probabilite de transition IP
B
n
|A
n. Il est donc caracterise par la
distribution sur les mots de sortie pour chaque mot dentree a
n
1
. Un canal parfait
correspond ainsi `a IP
B
n
|A
n = 1I
B
n
=A
n. Par la r`egle de Bayes, la loi de transformation
peut secrire
2
:
p(b
n
1
[a
n
1
) =
n

k=1
p(b
k
[a
n
1
, b
k1
1
)
On dit que le canal est causal si chaque lettre dentree a
k
provoque lemission dune
lettre b
k
en sortie. b
k
ne depend donc pas de a
n
k+1
. Do` u
p(b
k
[a
n
1
, b
k1
1
) = p(b
k
[a
k
1
, b
k1
1
)
Le canal est dit sans feedback si la lettre de sortie b
k
ne depend que des entrees, et
pas des sorties precedentes, soit
p(b
k
[a
n
1
, b
k1
1
) = p(b
k
[a
n
1
)
2
Dans les ecritures qui suivent, les minuscules (a, b, . . .) representent des valeurs (de A, B, . . .),
et lon suppose que les equations valent pour toutes les valeurs possibles.
62
Ainsi, un canal causal sans feedback verie
p(b
k
[a
n
1
, b
k1
1
) = p(b
k
[a
k
1
)
Le canal sans memoire est ainsi un cas particulier de canal causal sans feedback.
4.3 Theor`eme de Shannon
4.3.1 Denitions preliminaires
Denition 19 Un (M, n)-code pour le canal (/, IP
B|A
, B) est constitue de
1. un ensemble dindices A = 1, 2, . . . , M representant les M valeurs de la
source X ` a transmettre,
2. une fonction de codage notee f : 1, 2, . . . , M /
n
; on appelle alors
f(1), f(2), . . . , f(M) les mots du code, ou le codebook,
3. une fonction de decodage g : B
n
1, 2, . . . , M.
M est donc le nombre de symboles `a transmettre et n la longueur des mots (constante
ici, contrairement au cas du codage de source). Noter que si la fonction de codage
f doit etre injective, ce nest pas le cas de la fonction de decodage g.
Denition 20 Le taux ou rendement R dun (M, n)-code est le rapport
R
log
2
M
n
Il represente le nombre de bits transmis par utilisation du canal, ou par lettre envoyee
sur le canal
3
.
Exemple. Pour transmettre les 26 lettres de lalphabet plus lespace, soit M = 27
symboles, si on utilise un codage sur 5 bits, le rendement est R = log
2
(27)/5 =
log
2
27
32
. Si on code sur 8 bits, R = log
2
(27)/8 qui est moins ecace. Si on code
avec lalphabet / = , , , il sut de n = 3 lettres de / pour representer les
M = 27 symboles. Do` u R = log
2
(27)/3 = log
2
(3) > 1 bits par lettre de / emise
sur le canal. (Mesure en symboles ternaires, on aurait dans ce dernier cas R = 1
lettre utile par lettre emise.)
3
Avec cette denition, on peut avoir R > 1. Si on prenait comme denition R =
log
D
M
n
, avec
D = |A|, alors R serait compris entre 0 et 1 et se mesurerait en lettre utile transmise par lettre
emise.
63
Denition 21 Pour un (M, n)-code (f, g) sur (/, IP
B|A
, B), la probabilite condi-
tionnelle derreur pour le symbole i est denie par

i
= IP[g(B
n
) ,= i[A
n
= f(i)] =

b
n
IP[b
n
[A
n
= f(i)] 1I
g(b
n
)=i
La probabilite maximale derreur du code est denie par

(n)
max
= max
1iM

i
Denition 22 Pour un canal donne (/, IP
B|A
, B), le taux R est realisable ssi il
existe une suite de
_
2
nR
, n
_
-codes telle que la probabilite derreur
(n)
max

n
0.
Cela signie que, quitte `a envoyer de longues sequences de (n) lettres, alors on
peut transmettre R bits par lettre avec une erreur aussi petite que lon veut. On
retrouve des considerations assez proches de lAEP, et cest en fait loutil principal
des resultats suivants.
4.3.2 Deuxi`eme theor`eme de Shannon
Theor`eme 11 (2
eme
theor`eme de Shannon) Soit un canal discret sans memoire
de capacite C, alors
CS : tout taux de code R tel que R < C est realisable,
CN : inversement, si une suite de
_
2
nR
, n
_
-codes est asymptotiquement
sans erreur (i.e.
(n)
max

n
0), alors R C.
La capacite du canal est donc bien nommee : on ne pourra emettre sans erreur
que si on choisit un rendement inferieur `a la capacite. Cela caracterise donc la
redondance minimale que doit contenir le code pour corriger les erreurs introduites
par le canal. Si / = 0, 1, pour transmettre k bits utiles (M = 2
k
) sans erreur, il
faut etaler linformation sur au-moins n = k/C bits, avec C < 1 ici. Ce resultat
est vrai asymptotiquement bien entendu, i.e. pour k, n . La construction des
n k bits redondants est une question delicate, cest le probl`eme central des codes
correcteurs derreurs. On verra dans les chapitres suivants que la solution simple
consistant `a repeter des bits utiles est en fait assez mauvaise... On verra section 4.3.5
`a quoi doivent ressembler les bons codes correcteurs.
La condition necessaire nest pas tr`es dicile `a montrer ; elle fait lobjet de
la section suivante. En revanche, la condition susante est plus compliquee car il
sagit de construire une suite de codes dont la probabilite derreur tende vers 0.
Cette construction repose sur la notion de sequence typique ; nous nen donnerons
que les grandes lignes.
64
4.3.3 Preuve de la CN
On dispose dune suite de
_
2
nR
, n
_
-codes telle que
(n)
max

n
0 pour un canal
discret sans memoire (/, IP
B|A
, B) ; il sagit de montrer R C.
Pour n xe, considerons le canal global transmettant un paquet de n lettres. Il a
en entree une source X prenant M = 2
nR
valeurs, A = v
1
, v
2
, . . . , v
M
, et la sortie
Y apr`es decodage donne une estimee

X de lentree.
X
f
(n)
A
n
canal
B
n
g
(n)


X
f
(n)
et g
(n)
representent respectivement les fonctions de codage et de decodage du
n
eme
code. En donnant une loi IP
X
`a la source, on peut calculer la probabilite
derreur P
(n)
e
IP(

X ,= X) de ce syst`eme :

(n)
i
= IP(

X ,= v
i
[X = v
i
)
P
(n)
e
=
2
nR

i=1
IP
X
(v
i
)
(n)
i

(n)
max
Il sensuit que la probabilite derreur P
(n)
e
tend vers zero.
Lemme 22 Soit (/, IP
B|A
, B) un canal discret sans memoire de capacite C. Le
canal (/
n
, IP
B
n
|A
n, B
n
) obtenu par extension ` a des paquets de n lettres est de capacite
nC.
Il sagit de montrer
max
IP
A
n
I(A
n
; B
n
) = n max
IP
A
I(A; B)
Le canal etant sans memoire, il vient
IP
B
n
|A
n =
n

i=1
IP
B
i
|A
i
do` u H(B
n
[A
n
) =
n

i=1
H(B
i
[A
i
)
Il sensuit
I(A
n
; B
n
) = H(B
n
) H(B
n
[A
n
)
= H(B
n
)
n

i=1
H(B
i
[A
i
)

i=1
H(B
i
)
n

i=1
H(B
i
[A
i
)
=
n

i=1
I(A
i
; B
i
)
nC
65
Pour montrer que la borne peut etre atteinte, il sut de supposer les A
i
independants,
ce qui remplace la premi`ere inegalite par une egalite. Si en plus on les prend iid de
loi IP

A
avec IP

A
= arg max
IP
A
I(A; B), la seconde inegalite devient elle aussi egalite.
Remarque. Ce resultat montre en particulier quen utilisant n canaux identiques en
parall`ele on multiplie par n la capacite. Plus generalement, les capacites sajoutent
sur des canaux parall`eles (meme preuve). On nutilisera ci-dessous que la propriete
I(A
n
; B
n
) nC.
Preuve de la CN
Soit E = 1I

X=X
la variable derreur du code, qui vaut 1 lorsque le decodage est
incorrect et 0 sinon. Il vient IP(E = 1) = P
(n)
e
. On observe aussi que lon a une
chane de Markov X A
n
B
n


X. Supposons que X est muni de la loi
uniforme sur ses M = 2
nR
valeurs. Il vient
H(X)
. .
=nR
= H(X[B
n
) +I(X; B
n
) (4.1)
Nous allons majorer chacun des termes de droite dans (4.1). Pour le second, en
utilisant le theor`eme sur le traitement de linformation dans la chane X A
n
B
n
et le lemme precedent, on a
I(X; B
n
) I(A
n
; B
n
) nC (4.2)
Pour le premier terme, on a
H(X, E[B
n
) =
0
..
H(E[B
n
, X) +H(X[B
n
)
= H(X[E, B
n
) +H(E[B
n
)
. .
H(E) 1
on en deduit H(X[B
n
) H(X[E, B
n
) + 1. Reste `a majorer H(X[E, B
n
), or
H(X[E, B
n
) = IP(E = 0) H(X[E = 0, B
n
)
. .
0
+ IP(E = 1) H(X[E = 0, B
n
)
. .
H(X) =nR
le premier terme est nul car lorsquil ny a pas derreur X est une fonction de B
n
puisque X =

X = g
(n)
(B
n
) ; on en tire
H(X[B
n
) 1 +H(X[E, B
n
) 1 +P
(n)
e
nR (4.3)
En reportant les majorations (4.2) et (4.3) dans (4.1), il vient
nR 1 +P
(n)
e
nR+nC (4.4)
soit R C +RP
(n)
e
+
1
n
et il sut de faire tendre n vers pour en deduire R C.
66
4.3.4 Autre consequence de la CN
En transformant (4.4) on obtient une minoration de la probabilite derreur
P
(n)
e
1
C
R

1
nR
Lorsque R > C, 1C/R > 0 et il existe un n
0
au-del` a duquel P
(n)
e
1
C
R
> 0.
Donc, les longs codes font forcement des erreurs, i.e. on ne peut atteindre une
probabilite derreur arbitrairement petite. Cest en fait vrais pour tous les codes
car sil existait des codes courts atteignant une probabilite derreur arbitraitement
petite, il surait de les concatener pour former des codes longs ables.
Au bilan, la probabilite derreur se comporte donc comme sur la gure 4.6.
arbitrairement petite Pe
en prenant des codes longs
Pe toujours non nulle
mme avec des codes longs
1
0
0 C = capacit
Pe
R
Figure 4.6: Meilleure probabilite derreur atteignable en fonction du rendement du
code de canal.
4.3.5 Transmission sans erreur
On cherche `a savoir `a quoi doivent ressembler les codes parfaits permettant une
transmission sans erreur avec R = C. Bien entendu il est hors de question de les
caracteriser compl`etement ici, mais on peut neanmoins exhiber quelques proprietes.
Pour cela nous revenons sur la preuve du lemme 22.
Avec un code est parfait, le decodage donne

X = X ; on a donc la chane de
Markov
X
f
(n)
A
n
canal
B
n
g
(n)


X = X
f
(n)
A
n
canal
. . .
de laquelle on tire
H(X) = I(X; X) = I(X;

X) = I(A
n
; B
n
)
par applications successives du theor`eme sur le traitement de linformation (exer-
cice). Supposons que X est muni de la loi uniforme, soit H(X) = nR. On a montre
lors de la preuve du lemme 22 que I(A
n
; B
n
) nC, donc
nR = H(X) = I(A
n
; B
n
) nC
67
Mais pour un code parfait R = C, il sensuit que I(A
n
; B
n
) = nC, cest `a dire que
lon atteint la capacite du canal par blocs du lemme 22. Comme on la vu, ceci
nest possible que si les A
i
sont iid de loi IP

A
= arg max
IP
A
I(A; B).
Une bonne fonction de codage f
(n)
doit ainsi sarranger pour que les lettres
dentree du canal A
i
soient independantes ce qui garantit que les lettres de sortie
B
i
le sont aussi. Cela permet trois choses
linformation de X est etalee de fa con tr`es uniforme puisque chaque lettre est
dentropie R ; dans le cas o` u / = 0, 1, cela signie que chaque bit transmis
transporte R < 1 bit utile,
comme chaque A
i
transmis obeit `a IP

A
, il utilise au mieux le canal, cest `a dire
exploite les lettres de / les moins bruitees par le canal,
enn comme les lettres dentree sont independantes, le bruit introduit sur lune
dentre elles par le canal ne perturbe pas les autres, i.e. il sut de B
i
pour
estimer A
i
.
4.3.6 Une idee de la preuve de la CS
`
A completer...
4.4 Connexion dune source `a un canal
4.4.1 Le probl`eme
On dispose dune source X qui peut prendre M valeurs, A = v
1
, v
2
, . . . , v
M
, de loi
IP
X
et dentropie H(X). On dispose aussi dun canal de transmission (/, IP
B|A
, B) de
capacite C. On souhaite transmettre X sans erreur sur ce canal, quitte `a transmettre
de longues sequences X
1
, X
2
, . . . , X
n
de valeurs : i.e. il sagit davoir P
(n)
e
0. On
suppose que lon utilise le canal au plus une fois par valeur de X `a transmettre
4
, en
moyenne.
Question : quelle est la capacite de canal minimale necessaire pour que cette trans-
mission able soit possible ?
On dispose de deux solution pour cette transmission.
1. On peut tenter de construire directement une suite de (M
n
, n)-codes dont la
probabilite derreur tende vers 0.
X
n
f
(n)
A
n
canal

C
B
n
g
(n)


X
n
4
Ce nest pas vraiment une contrainte car on peut considerer que le canal emet des paquets de
k lettres, comme vu au lemme 22, lorsque |A| M.
68
2. On peut aussi proceder en deux etapes. Dabord comprimer la source X, sur
un alphabet intermediaire quelconque, puis coder et transmettre le resultat de
la compression.
X
n
compression
Z
k
f
(n)
A
n
canal

C
B
n
g
(n)


Z
k
decompression


X
n
Nous allons montrer que la seconde technique, qui est un cas particulier de la
premi`ere, permet datteindre les memes performances. En particulier, on va voir
que lon peut emettre X sans erreur sur le canal toujours `a raison dau-plus une
utilisation du canal par valeur transmise ssi H(X) < C. Cela est assez intuitif
puisque la source produit H(X) bits par symbole, et le canal peut transporter C
bits sans erreur par utilisation.
Ce resultat, connu sous le nom de theor`eme de separation, est tr`es important
en pratique : il signie que lon peut concevoir un syst`eme de transmission pour
X en deux etapes, en se preoccupant separement du codage de source (retrait de
linformation redondante) et du codage de canal (ajout dune redondance adaptee
au canal, pour lutter contre les erreurs).
4.4.2 Theor`eme de separation
Theor`eme 12 (d u `a Shannon) Soient X une source dinformation dentropie H(X),
` a valeurs dans A, [A[ = M, et (/, IP
B|A
, B) un canal de capacite C.
CN. Sil existe une suite de (M
n
, n)-codes pour X telle que P
(n)
e
0, alors
H(X) C.
CS. Si H(X) < C, alors on peut transmettre X (asymptotiquement) sans er-
reur sur le canal, ` a raison dune emission par valeur de X. Cette transmission
peut se faire par codage de source + codage de canal.
CN. On va supposer que lon dispose dune suite de (M
n
, n)-codes asymptotique-
ment sans erreur (de la forme 1 ou 2), et montrer que ce nest possible que si
H(X) C.
On proc`ede exactement comme pour la CN du deuxi`eme theor`eme de Shannon.
Soit la variable derreur E = 1I

X
n
=X
n
, alors
H(X
n
[

X
n
) = H(E, X
n
[

X
n
)
= H(E[

X
n
) + IP(E = 0)H(X
n
[

X
n
, E = 0)
+IP(E = 1)H(X
n
[

X
n
, E = 1)
H(E) + IP(E = 1)H(X
n
)
1 +P
(n)
e
nlog
2
[A[ (4.5)
69
qui est en fait l inegalite de Fano que nous avons dej`a vue. On a ensuite, par le
theor`eme du traitement de linformation,
I(X
n
;

X
n
) I(A
n
; B
n
) nC (4.6)
On injecte maintenant (4.5) et (4.6) dans lexpression de H(X
n
) pour obtenir
H(X
n
) = H(X
n
[

X
n
) +I(X
n
;

X
n
)
nH(X) 1 +P
(n)
e
nlog
2
[A[ +nC
H(X) C +P
(n)
e
log
2
[A[ +
1
n
et il sut de passer `a la limite pour conclure.
CS. En supposant H(X) < C, on va construire une fonction de codage de X
n
vers
A
n
et montrer quelle est asymptotiquement sans erreur. On proc`ede par la seconde
technique : codage de source + codage de canal.
Codage de source. On utilise lAEP (pas Shannon, ni Human). Pour n grand,
on separe les sequences x
1
, . . . , x
n
en typiques et atypiques. On peut sarranger pour
avoir IP[A
(n)

] > 1

. Seules les sequences typiques seront transmises, les atypiques


donneront lieu `a une erreur de transmission :
P
(n)
e
1
<

Il y a 2
n(H(X)+)
sequences (equiprobables) dans A
(n)

, il sut donc de nR bits pour


les coder, avec R = H(X) + . Tout se passe donc comme si on avait une nouvelle
source emettant 2
nR
symboles equiprobables.
Codage de canal. Quitte `a prendre n plus grand encore, on sait que lon peut
emettre 2
nR
symboles en n utilisations du canal d`es lors que R < C, avec une
probabilite derreur
P
(n)
e
2
<

Bilan. Les deux codages mis bout `a bout donnent une probabilite derreur totale
P
(n)
e
<

que lon peut rendre arbitrairement petite. Cela montre quune


technique de codage en deux etapes permet datteindre la performance optimale
dun syst`eme de codage.
Remarques.
Le theor`eme precedent est en fait valable d`es que lAEP marche. En partic-
ulier, il fonctionne pour des sources `a memoire stationnaires et ergodiques, en
rempla cant lentropie H(X) par un taux dentropie H(X).
70
On na pas toujours interet `a suivre les deux etapes codage de source + codage
de canal, puisquen pratique cela revient `a retirer de la redondance pour en
remettre... Il arrive que la source contienne naturellement une redondance qui
la rend resistante au bruit introduit par le canal. Penser par exemple `a de la
parole, qui reste comprehensible meme en presence dun tr`es fort bruit blanc
(le decodeur est bien fait...). Ainsi, meme si theoriquement on ny perd pas
avec deux codages, il peut etre plus simple de tout faire directement. On parle
alors de codage conjoint source-canal, qui est un sujet de recherche intense
aujourdhui.
4.5 Capacite dun canal avec feedback
`
A completer...
71
Chapter 5
Introduction aux codes
correcteurs
5.1 Introduction
Le chapitre precedent a montre que la transmission sans erreur sur un canal bruite
etait possible, pour autant que certaines contraintes de debit dinformation utile
en entree du canal etaient respectees. Ainsi a-t-on vu que le rendement R dun code
de canal ne doit pas depasser la capacite C du canal. De meme, peut-on transmettre
sans erreur une source X sur un canal `a raison dune utilisation du canal par valeur
`a transmettre seulement si H(X) < C, cest `a dire si le debit dinformation de la
source ne depasse pas celui que lon peut transmettre sans erreur sur le canal.
Ces resultats nous renseignent sur la quantite minimale de redondance que doit
contenir un code de canal, mais ne disent pas precisement comment construire un
tel code. Les constructions vues jusque l`a, fondees sur lAEP, donnent en fait des
codes tr`es peu structures, codables et decodables seulement par comparaison avec
un codebook. Leur complexite de mise en oeuvre les rend inapplicables en pratique :
en eet, ces codes sont asymptotiquement performants, ils supposent donc des code-
books construits pour de tr`es longues sequences dentree. Le stockage de tables de
codage/decodage aussi grandes est impossible (sans parler de la diculte de retrou-
ver un mot dans la table pour le decodage). Il sagit donc de trouver des codes tout
aussi ecaces mais orant une structure interne riche, permettant des operations
de codage/decodage par calcul plut ot que par comparaison avec une table. Cest la
question que nous examinons dans ce chapitre.
Un code de canal etait vu comme une paire (f, g) de fonctions de codage/decodage
entre un ensemble A de M symboles et un ensemble /
n
de mots de n lettres sur
lalphabet /. Sans perte de generalite, on peut voir A comme /
k
, k < n. Cette
sequence de taille k peut en particulier resulter dune compression (voir le theor`eme
72
de separation), et k est alors egal
1
`a H
D
(X), o` u D = [/[. Les k lettres dentree sont
dites lettres utiles car elles portent linformation `a transmettre. Elles se retrou-
vent diluees sur n lettres par la fonction de codage. Le rendement est ainsi
R =
k
n
log
2
D, en bits par lettre emise. Limage de f est appelee le code, ou codebook
ou ensemble des mots du code. Dans la suite, on ne distinguera pas les fonctions de
codage/decodage identiques `a une bijection pr`es : (f, g) (f ,
1
g) o` u est
bijective sur /
k
. On sinteressera donc principalement aux proprietes du code lui-
meme, dont on verra que la structure interne guide en fait les methodes de codage
et surtout de decodage.
Dans ce chapitre, / ne sera pas un alphabet quelconque mais un corps ni F
q
.
Le plus souvent, on prendra / = F
2
= 0, 1 ou les extensions de F
2
: / = (F
2
)
m
.
On supposera aussi B = /, pour simplier.
5.2 Codage et decodage : generalites
5.2.1 Code bloc
On va sinteresser tout dabord `a des codes blocs, transformant des mots de k lettres
en mots de n k lettres. On les utilise en tron connant le train de lettres entrant
dans le codeur en paquets de k lettres, chacun etant code separement.
Denition 23 Un code est un sous-ensemble de /
n
, note ( generiquement, o` u /
est lalphabet du code, et n la longueur du code (i.e. le nb de lettres de chaque mot).
[([ est la taille du code. Si [([ = D
k
avec D = [/[, on dit que ( est de param`etres
2
(n, k). On a toujours k n. Le rendement du code est deni par R =
k
n
log
2
D bits
par lettre emise.
Remarque. Le rendement mesure la proportion de lettres utiles transmises dans
un mot de code. Si on le mesure donc en lettre utile par lettre emise, il vaut
k/n. Comme chaque lettre correspond `a log
2
D bits, mesure en bits utiles par lettre
emise, on retrouve la formule de la denition.
Denition 24 Un code (n, k) est dit systematique ssi il laisse intactes les k lettres
dentree et se contente de rajouter n k lettres supplementaires, appelees lettres
redondantes ou parity checks.
Les lettres supplementaires sont fonction des lettres utiles et permettent de verier
la coherence du message.
1
Ce raisonnement schematique est un peu abusif et ne sert qu`a xer les idees ; il devient plus
rigoureux si lon consid`ere de longues sequences de valeurs de X.
2
Attention, ne pas confondre un (M, n)-code, comme deni dans le chapitre sur la capacite de
canal, et un code de param`etres (n, k). Un (M, n)-code a pour param`etres (n, log
D
M). Inversement,
un code de param`etres (n, k) constitue un (D
k
, n)-code.
73
k lettres utiles n-k lettres
redondantes
entre du codeur
sortie du codeur
Figure 5.1: Structure dun code systematique.
Exemple. Le traditionnel bit de parite : sur un octet, le huiti`eme bit est la somme
des 7 precedents. Cela donne un code (8, 7) (binaire), qui permet de detecter une
erreur, cest `a dire un bit change, mais pas de la corriger.
Exemple. Le code `a repetition, envoie n fois le meme bit. Cest donc un code
(n, 1), qui permet de detecter jusqu`a n 1 erreurs, et den corriger
n1
2
si n est
impair, par decision `a la majorite. Le code `a repetition ore un bon pouvoir de
correction, mais cest au prix dun rendement tr`es faible. On verra de bien meilleurs
codes plus loin.
0 1
(0,0,0)
(1,1,1)
Figure 5.2: Code `a repetition (3, 1). Ce code permet de corriger 1 bit errone : les
`eches indiquent quel mot doit etre decode en fonction de lelement re cu. Si deux
bits sont errones, une erreur de decodage se produit.
5.2.2 Distance de Hamming
En plongeant les mots de /
k
dans un espace plus grand, /
n
, on peut sarranger pour
espacer davantage les elements du code. On le voit bien sur le code `a repetition
(3, 1), qui represente les bits `a transmettre par les extremites de la diagonale du
cube unite. Cest en fait toute lidee des codes correcteurs derreurs : plus les mots
sont eloignes dans /
n
, moins le bruit du canal conduit `a les confondre. Le decodage
au plus proche voisin donne alors de bons resultats. Avant de detailler, commen cons
par introduire une notion de distance.
Denition 25 Le poids de Hamming dun mot de code m, note w(m), est le nombre
de lettres non nulles dans m. La distance de Hamming entre les mots de code m
1
et m
2
, notee d(m
1
, m
2
), est le nombre de lettres par lequel ils di`erent, cest ` a dire
w(m
1
m
2
).
74
On utilise ici pour la premi`ere fois le fait que / est un corps. La dierence m
1
m
2
est calculee lettre `a lettre.
Exemple. w(010011) = 3, et d(01101, 01000) = w(00101) = 2.
Denition 26 La distance minimale dun code, notee d, est
d = min
m
1
,m
2
C
d(m
1
, m
2
)
On dit ainsi que ( est un code de param`etres (n, k, d).
Exemple. Ajouter un bit de parite donne un code (n, n1, 2). Le code `a repetition
est un code (n, 1, n).
5.2.3 Borne de Gilbert-Varshamov
Comme on va le voir, la distance minimale est une propriete essentielle dun code
correcteur : plus elle est grande, plus on est capable de resister aux erreurs intro-
duites par le canal. Il est alors naturel, xant le nombre de lettres n, de chercher le
nombre maximal de mots que peut contenir un code de distance minimale d. Cest
un probl`eme dempilement de sph`eres (sphere packing problem).
Lemme 23 Soient / = 0, 1 et d n dans N. Soit ( /
n
un code de distance
minimale d, et soit V (n, d) le nombre maximum de mots que ( peut contenir. Si
d est impair, avec d = 2e + 1, alors
V (n, d)
e

k=0
C
k
n
2
n
Dautre part,
V (n, d)
d1

k=0
C
k
n
2
n
En eet, soit S(m, i) les sph`eres de centre m /
n
et de rayon i dans /
n
, i.e.
lensemble des mots m

de /
n
tels que d(m, m

) i. Les sph`eres S(m, e), pour


m (, sont disjointes puisque e <
d
2
. Chacune contient

e
k=0
C
k
n
elements. Do` u la
premi`ere inegalite. Un code pour lequel cette borne superieure est atteinte est dit
parfait (voir plus loin).
Par ailleurs, soit ( un code maximal de distance minimale d. Alors il nexiste
aucun mot m /
n
qui soit `a distance d de tous les autres mots de (, sinon on
peut rajouter m `a ( sans changer la distance minimale et avoir un code plus grand.
Donc les sph`eres S(m, d 1), m (, recouvrent enti`erement /
n
. Chacune contient

d1
k=0
C
k
n
elements, do` u la seconde inegalite.
rajouter un mot sur la borne de Hamming : lorsquon sait que le code est t correcteur
75
5.2.4 Decodage `a distance minimale
Supposons quun mot m = l
1
l
2
l
n
est emis sur un canal discret sans memoire, et
que lon re coit m

= l

1
l

2
l

n
. On a donc
IP(m

[m) =
n

i=1
IP(l

i
[l
i
)
Le decodage au maximum de vraisemblance a priori
3
choisit comme mot dentree
estime
m = arg max
mC
IP(m

[m)
Avec un canal symetrique, IP(l

i
[l
i
) = (l

i
l
i
) o` u est la loi du bruit ajoute par le
canal. On peut alors etablir une distance
4
statistique entre deux mots par
(m

, m) = lnIP(m

[m) + ln IP(m

[m

)
=
n

i=1
ln (l

i
l
i
) +nln(0)
Observer que maximiser ln IP(m

[m) en m donne bien lestimateur m. Le terme


constant ln IP(m

[m

) permet dassurer (m

, m) = 0 pour m = m

. Le decodage
revient alors `a trouver le mot du code le plus proche de m

pour cette distance.


Revenons au cas binaire, avec p <
1
2
la probabilite derreur du canal binaire
symetrique. Il vient alors (e) = p 1I
e=1
+ (1 p) 1I
e=0
, ce qui donne
(m

, m) = w(m

m) ln p [n w(m

m)] ln(1 p) +n ln(1 p)


= w(m

m) ln
1 p
p
Comme p <
1
2
, minimiser (m

, m) revient `a minimiser la distance de Hamming. En


dautres termes, dun point de vue vraisemblance, on paie un co ut xe pour chaque
erreur. Il sut donc de minimiser le nombre derreurs.
Construire un bon code correcteur revient donc `a espacer le plus possible les mots
du code dans /
n
, pour la distance en general, et d dans le cas binaire. Chaque
mot m est ainsi au centre dune cellule de decodage, constituee de lensemble des
mots de /
n
qui sont plus pr`es de m que de tout autre element de (. On appelle
cette partition un diagramme de Vorono.
3
Le maximum de vraisemblance a posteriori consisterait `a prendre en compte la loi a priori IP()
sur les mots dentree : m = arg maxC IP(m

|)IP() = arg maxC IP(|m

).
4
Attention : ce nest pas `a proprement parler une distance. Linegalite triangulaire nest pas
vraie. La positivite nest garantie que si IP(m

|m) est maximum pour m

= m. Enn ne sannule
en m

= m que si ce maximum est unique.


76
Lemme 24 Un code binaire de distance minimale d est susceptible de corriger t
erreurs et e eacements d`es lors que 2t +e < d. Sil ny a pas deacement, il peut
ainsi corriger t =
d1
2
erreurs.
m
1
m
2
m
t
> d
Figure 5.3: Cellules de decodage.
En eet, sil ny a pas deacement, chaque mot est au centre dune cellule de
diam`etre au-moins egal `a t tel que 2t < d. Un erreur alterant moins de t bits sera
ainsi corrigee par le decodage `a distance minimale. Sil y a e eacements, le meme
raisonnement sapplique avec d e au lieu de d (exercice).
Denition 27 Le code (, de param`etres (n, k, d), est dit parfait si les boules de
diam`etre
d1
2
et de centre les mots de ( forment un pavage de /
n
.
Pavage signie que lon a la partition /
n
=
mC
S(m,
d1
2
). On atteint donc la
borne dans la premi`ere inegalite de Gilbert-Varshamov, do` u
[([
d1
2

k=0
C
k
n
= 2
n
Remarque : un code parfait a necessairement une distance minimale impaire.
5.2.5 Exemple
Nous allons etudier les proprietes du code de Hamming (7, 4). Cest un code
systematique. Les 4 bits utiles etant notes u
1
, u
2
, u
3
, u
4
, les bits de redondance
r
1
, r
2
, r
3
sont construits par r = f(u) denie par
r
1
= u
2
+u
3
+u
4
r
2
= u
1
+u
3
+u
4
r
3
= u
1
+u
2
+u
4
On peut ainsi les lire comme des bits de parite sur des sous-ensembles de bits utiles,
representes gure 5.4.
On re coit le mot m

= u

= u

1
u

2
u

3
u

4
r

1
r

2
r

3
. Pour le decodage, on regarde si
le mot est dans le code, par la CNS r

= f(u

). Si ce nest pas le cas, on forme un


77
4
u
1
u 3
u
2
u
r
1
r
3
r
2
Figure 5.4: Le code de hamming, vu comme mettant des bits de parite sur des sous-
ensembles de bits utiles. La somme des bits `a linterieur de chaque cercle doit etre
nulle.
syndrome s par s = r

f(u

). Avoir un syndrome non nul atteste non seulement


de la presence dune erreur, mais permet aussi de caracteriser cette erreur (voir plus
loin). Sur cet exemple, supposons quil y a une seule erreur, on peut alors construire
le tableau suivant (utiliser la gure)
erreur sur syndrome
u
1
011
u
2
101
u
3
110
u
4
111
r
1
100
r
2
010
r
3
001
qui permet de detecter, localiser et donc corriger sans ambigute lerreur. Il sensuit
que d 3.
Exercice. Verier que d = 3, par exemple en construisant tous les mots du code.
Montrer quil existe des cas derreur double que lon ne peut pas corriger parfaite-
ment. Le code de Hamming (7, 4) est-il parfait ?
5.3 Codes lineaires
Nous allons commencer `a utiliser explicitement le fait que / est un corps ni. Les
codes lineaires couvrent la quasi totalite des codes correcteurs utilises en pratique.
Ils contiennent en particulier les codes cycliques et convolutifs etudies plus loin.
5.3.1 Denition
Denition 28 Le code (, de param`etres (n, k), est lineaire ssi ses mots forment un
sous-espace vectoriel de dimension k dans /
n
.
78
Plus speciquement, ( est un code lineaire ssi
m
1
, m
2
(, a
1
, a
2
/, a
1
m
1
+a
2
m
2
(
soit, dans le cas binaire, ssi la somme de deux mots du code est encore un mot du
code (la somme est ici `a entendre bit `a bit).
Exercice. Verier que le code de Hamming (7, 4) est lineaire.
Lemme 25 Pour un code lineaire,
d = min
mC

w(m) et d n + 1 k
o` u (

est le code ( prive du mot nul (de poids 0).


En eet, d(m
1
, m
2
) = w(m
1
m
2
) et m
1
m
2
(. Par ailleurs, soir (

le sous-espace
vectoriel de /
n
forme des mots dont les k 1 derni`eres lettres sont nulles. Comme
dim((

) = n (k 1) et dim(() = k, il vient dim(( (

) 1. Donc ( contient
au-moins un mot de (

, qui est donc de poids n (k 1).


Exercice. Verier que d = 3 pour le code de Hamming (7, 4).
Calculer d est dicile en general, sauf `a parcourir tous les mots du code. Il
nexiste des formules que pour des codes tr`es structures (cf. plus loin). En general,
toutefois, on parvient sans trop de diculte `a donner des bornes sur d.
d sert bien entendu `a apprecier les capacites correctrices dun code. Ce param`etre
nest pas pertinent `a lui seul toutefois, car il se peut que toutes les paires de mots
sauf une soient `a une distance bien plus grande que d. On utilise plut ot le spectre
des distances de Hamming, polynome de la forme

id
c
i
x
i
o` u c
i
est le nombre de mots du code de poids i. Des majorations simples de la
probabilite derreur apr`es decodage peuvent etre obtenues `a partir de ce polynome
(ou dapproximations de ce polynome).
5.3.2 Matrice generatrice
Soit (m
1
, m
2
, . . . , m
k
) une base de (, sous-espace vectoriel de /
n
. Chaque m
i
est
ainsi compose de n lettres ; on les note sous forme de vecteurs ligne. Tous les mots
de ( peuvent ainsi secrire comme combinaison lineaire des m
i
.
79
Denition 29 Soit (m
1
, m
2
, . . . , m
k
) une base de ( dans /
n
, la matrice
G =
_
_
_
_
_
m
1
m
2
.
.
.
m
k
_
_
_
_
_
de /
kn
est une matrice generatrice de (. Ainsi,
m ( u /
k
, m = u G
(Dans lequation precedente, u est aussi un vecteur ligne.) Si lon premultiplie G par
une matrice de /
kk
inversible, on obtient clairement une autre matrice generatrice
du code cest la similitude de deux codes `a une bijection pr`es sur lentree dont
nous avons parle.
Exemple. Deux matrices generatrices du code de Hamming (7, 4), la seconde etant
sous forme systematique :
G
1
=
_
_
_
_
1 0 0 0 0 1 1
1 1 0 0 1 1 0
1 1 1 0 0 0 0
1 1 1 1 1 1 1
_
_
_
_
G
2
=
_
_
_
_
1 0 0 0 0 1 1
0 1 0 0 1 0 1
0 0 1 0 1 1 0
0 0 0 1 1 1 1
_
_
_
_
Dans chacune, la sous-matrice 4 4 de gauche est de rang plein, ce qui montre que
les vecteurs ligne sont lineairement independants. Toute ligne de G
2
est combinaison
lineaire de lignes de G
1
: par exemple m
2,3
, 3
eme
ligne de G
2
, est la somme des 2
lignes centrales de G
1
, soit m
2,3
= m
1,2
+ m
1,3
= (0, 1, 1, 0)G
1
. Il sensuit que les
deux matrices engendrent bien le meme sous-espace de (F
2
)
7
, cest `a dire le meme
code (. En considerant (u
1
, u
2
, u
3
, u
4
)G
2
, on remarque que le bit de redondance r
1
verie r
1
= u
2
+u
3
+u
4
, ce qui est bien la formule donnee section 5.2.5. Il en va de
meme pour r
2
et r
3
.
Denition 30 Les codes ( et (

sont equivalents ssi ils poss`edent les memes mots,


` a une permutation pr`es des lettres, i.e. ssi pour toute matrice generatrice G de ( il
existe une permutation de taille n telle que G

= G est une matrice generatrice


de (

.
Theor`eme 13 Tout code lineaire est equivalent ` a un code lineaire systematique.
La matrice generatrice dun code systematique est de la forme
G = [I
k
P]
80
o` u I
k
est la matrice identite de taille k. Soit G une matrice generatrice de (. Comme
( est de dimension k, G est de rang k. Il existe donc un sous-ensemble de k colonnes
de G (dindices i
1
< i
2
< . . . < i
k
) formant une matrice M inversible de /
kk
. Soit
la permutation qui place ces colonnes en tete, et soit
G

= G = [M Q]
G

est la matrice generatrice dun code (

equivalent `a (. En la premultipliant par


i
1
i
2
i
4
i
5
i
3
Q

M
1 4 5 G= G = 1
2
4 3
3
2 5 G =
Figure 5.5: Ensemble dinformation.
M
1
on obtient alors une autre matrice generatrice de (

= M
1
G

= [I P]
qui en fait un code systematique. En faisant agir
1
sur G

, on retrouve une
matrice generatrice de ( qui nous montre que ( restreint aux lettres de positions
i
1
, i
2
, . . . , i
k
remplit tout /
k
. On appelle ainsi ces indices un ensemble dinformation
pour le code (.
5.3.3 Matrice de controle
Soit ( un code lineaire de matrice generatrice G = [I
k
P] (forme systematique).
m /
n
est un mot du code ( ssi il secrit m = u G o` u u est un element de /
k
et represente les k lettres utiles `a transmettre. Detaillons les lettres de m et u :
m = [l
1
, . . . , l
n
], u = [u
1
, . . . , u
k
]. Il vient
[l
1
, . . . , l
k
] = [u
1
, . . . , u
k
]
[l
k+1
, . . . , l
n
] = [u
1
, . . . , u
k
] P
En dautres termes, m est un mot de ( ssi [l
1
, . . . , l
k
] P = [l
k+1
, . . . , l
n
]. Posant
H [ P
T
I
nk
]
il vient que m ( ssi m H
T
= 0.
Denition 31 H est une matrice de contr ole pour le code ( ssi elle verie
m /
n
, [ m ( m H
T
= 0 ]
81
Lemme 26 Soit G = [I
k
P] une matrice generatrice (systematique) du code (.
Une matrice de contr ole de ( est obtenue par H = [P
T
I
nk
].
On montre en fait `a la section suivante quune matrice de contr ole est au-moins de
dimension (n k) n. Elle represente toutes les contraintes que doivent satisfaire
les lettres dun mot de code. Si ( est de dimension k dans /
n
, il peut en eet
se construire comme intersection de n k hyper-plans. Chaque ligne de H donne
lequation de lun de ces hyperplans.
Denition 32 Soient m /
n
et H une matrice de contr ole du code (, le syndr ome
de m est deni par
s = m H
T
s /
nk
Lemme 27 Soit m /
n
, m est un mot du code ( ssi son syndrome est nul.
Remarque. En construisant H `a partir dune matrice generatrice systematique de
(, il est facile de verier que tous les elements de /
nk
sont des syndromes possibles.
Exemple. Considerons la matrice generatrice systematique G
2
du code de Ham-
ming (7, 4), elle induit la matrice de contr ole H
2
:
G
2
=
_
_
_
_
1 0 0 0 0 1 1
0 1 0 0 1 0 1
0 0 1 0 1 1 0
0 0 0 1 1 1 1
_
_
_
_
H
2
=
_
_
0 1 1 1 1 0 0
1 0 1 1 0 1 0
1 1 0 1 0 0 1
_
_
Exercice. Construire un mot m du code. Verier m H
T
2
= 0. Calculer G
2
H
T
2
.
Verier que les syndromes calcules plus haut (section 5.2.5) pour le code de Hamming
(7, 4) correspondent bien `a la formule eH
T
2
.
Lemme 28 Soit H une matrice de contr ole du code (. ( est de distance mini-
male d ssi tout sous-ensemble de d 1 colonnes de H est libre (i.e. lineairement
independant) et il existe d colonnes de H liees.
La preuve decoule directement de la denition de H. Tout element m /
n
de poids
< d ne peut etre dans (, et donc ne peut verier m H
T
= 0. Donc on ne peut pas
trouver d 1 colonnes de H liees. En revanche, il existe un mot de poids d dans (
ses lettres non nulles construisent une combinaison lineaire nulle de colonnes de H.
Ces d colonnes sont donc liees.
82
5.3.4 Code dual
On peut munir /
n
, vu comme un /-espace vectoriel, dun produit scalaire :
m, m

) = m (m

)
T
=
n

i=1
l
i
l

i
o` u m = l
1
l
n
et m

= l

1
l

n
. Deux vecteurs de /
n
sont dits orthogonaux ssi leur
produit scalaire est nul. Attention : ce produit scalaire ne denit pas une norme,
car il existe des vecteurs dits isotropes dont le produit scalaire avec eux-memes est
nul.
Exemple. (1, 1) est isotrope dans (F
2
)
2
car 1
2
+ 1
2
= 0.
Denition 33 Soit ( un code de /
n
, son code dual est deni par
(

= m

/
n
: m (, m, m

) = 0
Lemme 29 Soit ( un code sur /
n
, si dim( = k alors dim(

= n k. Il sensuit
que ((

= (.
Il faut prendre garde que ( (

nest pas toujours egal `a 0, contrairement aux


espaces vectoriels sur R ou C, ` a cause des vecteurs isotropes. Pourtant la r`egle
des dimensions reste vraie. En eet, soit G = [I
k
P] generatrice de (, et soit
H = [P
T
I
nk
] matrice de contr ole, alors H gen`ere (

qui est egal `a (

. En eet,
m, m

) = uG, vH)
= (uG) (vH)
T
= uGH
T
v
T
= 0
car par construction GH
T
= 0. Donc (

, do` u dim(

n k. Si dim(

>
nk, alors m

, et on peut le choisir tel que ses nk derni`eres composantes


sont nulles (en retirant sa projection sur (

). Ce vecteur verie
[I
k
P](m

)
T
= 0 car m

(
[0 I
nk
](m

)
T
= 0 `a cause de la structure de m

Il vient que m

est dans le noyau `a droite de la matrice


_
I
k
P
0 I
nk
_
or cette matrice est de rang plein, donc m

= 0, ce qui contredit lhypoth`ese. Et


nalement dim(

= n k, soit (

= (

.
Pour montrer que ((

= (, il sut de remarquer ( ((

; on conclut par
legalite des dimensions.
83
Lemme 30 Soit ( un code de matrice generatrice G et de matrice de contr ole H.
Son code dual (

est engendre par H et admet G comme matrice de contr ole.


Cela decoule immediatement de la preuve precedente.
5.3.5 Decodage par syndrome
Partant dun mot re cu m

/
n
, le decodage consiste `a trouver le mot m de ( le
plus proche pour la distance de Hamming
5
. On peut ecrire
m

= m+e
o` u e est lerreur qui sest rajoutee au mot de code emis m. Le decodage `a distance
minimale recherche le e de poids minimal tel que m

e (. Si on a de la chance,
e = e et on a corrige lerreur de transmission, sinon on fait une erreur de decodage...
On peut caracteriser lerreur e en calculant le syndrome de m

:
m

H
T
= m H
T
+e H
T
= e H
T
Si le syndrome est nul, m

est un mot du code, et lon decide m = m

. Pour chaque
autre valeur possible du syndrome, il faut construire une estimee e de lerreur de
transmission, puis on prend m = m

e.
On commence par denir une relation dequivalence sur /
n
: deux elements
et

de /
n
sont equivalents ssi ils ont le meme syndrome :

( H
T
=

H
T
La classe dequivalence dun element est parfois appelee classe laterale de . Le
quotient de /
n
par la relation , note /
n
/

ou /
n
/
ker H
T , contient D
nk
classes
de D
k
elements, une classe par syndrome. Le chef de classe est lelement de poids
minimal dans la classe. On le note e
i
pour la classe E
i
, i = 0 . . . D
nk
1. Par
construction, on a donc E
i
= e
i
+(.
Dans cette construction, e
i
represente lerreur de poids minimal qui
provoque lapparition du sympt ome de la classe E
i
.
Ainsi, partant dun sympt ome, on obtient lerreur `a retrancher au mot m

re cu pour
retrouver le mot du code le plus proche.
Exemple. Soit (, code (5, 2, 3) sur / = F
2
engendre par G,
G =
_
1 0 0 1 1
0 1 1 1 0
_
H =
_
_
0 1 1 0 0
1 1 0 1 0
1 0 0 0 1
_
_
(Noter que + et - concident sur F
2
.) Le tableau standard, representant les classes
de /
n
= F
5
2
sur chaque horizontale, est donne par
5
Cela se generalise `a la distance statistique denie section 5.2.4.
84
classe syndrome chef
E
0
000 00000 10011 01110 11101
E
1
001 00001 10010 01111 11100
E
2
010 00010 10001 01100 11111
E
4
100 00100 10111 01010 11001
E
6
110 01000 11011 00110 10101
E
3
011 10000 00011 11110 01101
E
5
101 11000 01011 10110 00101
E
7
111 10100 00111 11010 01001
On le construit en mettant sur la premi`ere ligne les mots du code. Puis on cherche
une erreur, cest `a dire un mot de /
n
hors du code et de poids le plus faible
possible, dont on construit la classe en lui ajoutant tous les mots du code (soit la
ligne 1), puis on recherche une nouvelle erreur, etc. jusqu`a avoir place tous les
elements de /
n
.
Exemple de decodage : on a re cu m

= 11110, de syndrome 011, donc appar-


tenant `a la classe E
3
. Lerreur estimee est e
3
= 10000, le premier mot de la ligne, si
on la retranche on obtient m = 01110, qui est en fait le premier mot de la colonne.
Il peut y avoir ambiguite : cest le cas lorsquil y a plusieurs mots de poids
minimal dans une classe (par ex. E
5
et E
7
). Dans ce cas on choisit lun de ces mots
comme erreur : on est en eet incapable de les distinguer, ils correspondent `a
deux m de meme vraisemblance. Il est normal que lon ne puisse pas corriger toutes
les erreurs puisque d nk+1 ; on peut esperer corriger au plus
nk
2
erreurs. Avec
d = 3, on ne corrige quune erreur ; les erreurs doubles donnent lieu `a ambiguite.
Noter que le tableau standard nest jamais utilise en pratique ; ce nest quune
representation `a garder en tete, pour comprendre les phenom`enes. On a recours en
general `a des methodes calculatoires, utilisant la structure du code, pour localiser
directement les bits errones.
5.4 Exemples de codes lineaires classiques
5.4.1 Codes de Hamming
On construit un code de Hamming (
H
`a partir de sa matrice de contr ole H. H est
une matrice `a l lignes et `a 2
l
1 colonnes, constituees de tous les vecteurs (colonnes)
non nuls de /
l
avec / = F
2
= 0, 1. Il vient n = 2
l
1 et nk = l soit k = 2
l
1l.
Pour l = 3, on peut verier cette structure sur la matrice H
2
de la section 5.3.3.
Proposition 1 Un code de Hamming est parfait et 1-correcteur.
85
Il sut de remarquer quil est de distance minimale d = 3, ce qui est une consequence
directe du lemme 28 (exercice). Pour montrer quil est parfait, on verie quil at-
teint la borne de Gilbert-Varshamov (exercice), cest `a dire que les sph`eres S(m, 1)
recouvrent /
n
et sont dintersection vide.
Remarque. Chaque element m

de /
n
secrit m

= m+e o` u e est lun des elements


de la sph`ere S([0 . . . 0], 1), centree sur le mot nul. Le decodage `a distance minimale
revient `a trouver ce e. Une astuce : supposons que lon a classe les colonnes de H par
ordre croissant en binaire, i.e. la i
eme
colonne correspond au codage binaire de i 1.
Le calcul du syndrome m

H
T
= e H
T
selectionne alors une seule colonne de H
(car e na quun seul bit `a 1). Il sut donc de retraduire le syndrome ( /
nk
= F
l
2
)
du binaire aux entiers et dajouter 1 pour retrouver la position i du bit errone dans
m

.
5.4.2 Codes de Reed-Muller
`
A completer...
5.4.3 Code de Golay
`
A completer...
5.5 Transformations de codes
La construction algebrique de bons codes lineaires, comme on va le voir plus loin,
impose des valeurs particuli`eres aux param`etres (n, k, d). Il existe donc des tech-
niques permettant de modier un code an dajuster ses param`etres au contexte
dune application. Nous allons donner le principe de chaque transformation, et ses
proprietes generales. Garder `a lesprit que lon peut obtenir des proprietes plus
fortes, en appliquant les transformations `a tel ou tel code particulier.
5.5.1 Extension
(

est obtenu en ajoutant un bit de parite `a chaque mot de (, do` u


n

= n + 1 k

= k d d

d + 1
En fait, si d est pair, d

= d, et si d est impair, d

= d + 1 (exercice). Si H est une


matrice de contr ole de (, alors on obtient une matrice de contr ole du code etendu
par (exercice)
H

=
_
_
_
_
_
1 1 1
0
H
.
.
.
0
_
_
_
_
_
86
5.5.2 Selection dun sous-code
Cela consiste simplement `a ne garder quun sous-espace vectoriel de dimension k

=
k 1 dans (, de fa con `a augmenter d.
n

= n k

= k 1 d

d
Exercice. Si d est impair, selectionner les mots de poids pair dans ( donne un code
(

pour lequel d

> d.
5.5.3 Augmentation
Cest loperation duale : toujours `a n xe, on augmente la dimension de lespace
vectoriel. (

est lespace engendre par ( et un element /


n
(.
(

= sp(, = ( ( +()
On a interet, bien entendu, `a choisir loin de (, i.e. tel que d(, () = min
mC
d(, m)
est maximal. On appelle rayon de recouvrement cette distance maximale
(() max
A
n
min
mC
d(, m)
En choisissant tel que d(, () = ((), il vient (exercice)
n

= n k

= k + 1 d

= min(d, )
5.5.4 Perforation
Cest une technique tr`es repandue qui permet de diminuer n. Cela consiste simple-
ment `a eacer une lettre du code, par exemple la derni`ere, ce qui revient `a projeter
( sur /
n1
. Il faut prendre garde `a ne pas faire decrotre k, cest `a dire `a conserver
la dimension de (.
n

= n 1 k

= k d

d 1
En partant de bons codes, par exemple les codes cycliques de longueur n = 2
m
1,
on peut sadapter aux contraintes de lapplication en perforant i fois. Il existe des
techniques pour raner la borne d d i, fort heureusement !
5.5.5 Raccourcissement
Cest une combinaison de la selection dun sous-code et de la perforation. On
selectionne le sous-code de ( forme des mots ayant un 0 dans une position donnee,
par exemple la derni`ere ; (

est alors le prexe de ces mots (on enl`eve le zero nal).


n

= n 1 k

k 1 d

d
La technique de raccourcissement de codes cycliques donne en general de bons codes.
87
5.6 Combinaisons de codes
5.6.1 Produit cartesien
Denition 34 Le produit cartesien des codes (
1
et (
2
, de param`etres (n
1
, k
i
, d
i
) est
obtenu en concatenant les mots de code associes ` a deux entrees dierentes
(

= (
1
(
2
(m
1
[m
2
) : m
1
(
1
, m
2
(
2

Cest un code de param`etres (n

= n
1
+n
2
, k

= k
1
+k
2
, d

= min(d
1
, d
2
)).
Cette technique se rev`ele utile lorsque les deux codes sont de meme longueur, n
1
=
n
2
= n, on peut alors construire un code par
(

= (m
1
[m
1
+m
2
) : m
1
(
1
, m
2
(
2
(5.1)
Lemme 31 Le code (

deni par (5.1) est de param`etres (n

= 2n, k

= k
1
+k
2
, d

=
min(2d
1
, d
2
)).
La preuve est laissee en exercice.
5.6.2 Juxtaposition
Cela consiste `a juxtaposer les mots de code associes `a une meme entree de /
k
. On
suppose donc que (
1
et (
2
sont de meme dimension, k
1
= k
2
= k. Si G
1
et G
2
sont
des matrices generatrices de (
1
et (
2
alors (

est engendre par G

= [G
1
[G
2
] et de
param`etres
n

= n
1
+n
2
k

= k d

min(d
1
, d
2
)
Noter que si G
1
et G
2
sont sous forme systematique, alors les bits utiles apparaissent
deux fois dans les mots de (

. On sait que la repetition nest pas tr`es ecace pour


lutter contre les erreurs, il vaut donc mieux se contenter de juxtaposer les parties
redondantes, en ne gardant quune fois la partie utile.
5.6.3 Concatenation
Cest en fait la mise en serie de deux codes : la sortie du premier est lentree du
second. Il faut donc avoir k
2
= n
1
Dierence avec juxtaposition : ici on recode la partie redondante 1, en plus de
la partie utile.
`a revoir et `a completer
88
5.6.4 Produit de codes
Cest une technique tr`es utilisee en pratique. (

= (
1
(
2
, de param`etres (n

=
n
1
n
2
, k

= k
1
k
2
) proc`ede au codage de la fa con suivante : on ecrit
6
les k
1
k
2
bits `a
coder dans un tableau k
2
k
1
. On proc`ede ensuite au codage de chaque ligne par
(
1
, ce qui donne un tableau k
2
n
1
. On code ensuite chaque colonne de ce tableau
par (
2
, ce qui donne un tableau n
2
n
1
, qui est le mot de code associe aux k
1
k
2
bits
dentree. Si on proc`ede au codage dans lordre inverse, on obtient le meme resultat
(exercice).
rajouter une gure
Lemme 32 Le produit (

= (
1
(
2
est de param`etres (n

= n
1
n
2
, k

= k
1
k
2
, d

=
d
1
d
2
).
Lemme 33 ((
1
(
2
)

a pour param`etres (n
1
n
2
, n
1
n
2
k
1
k
2
, min[d((

1
), d((

2
)]).
`a revoir et `a completer ; rajouter des preuves
6
avec pour convention decriture : de droite `a gauche et de haut en bas
89
Chapter 6
Codes cycliques
Les codes cycliques forment une sous-classe des codes lineaires, et sont les plus
utilises en pratique. Ils conjuguent en eet de nombreux avantages : leur mise en
oeuvre (codage/decodage) est facile, ils orent une gamme etendue de codes, avec
de nombreux choix de param`etres (n, k, d), et enn permettent de corriger dierents
types derreurs, isolees ou par paquets.
Dans ce chapitre, on suppose que / est le corps ni `a q elements F
q
. Pour les
cas pratiques, q est de la forme 2
m
.
6.1 Denition
Denition 35 Le code lineaire ( (F
q
)
n
est cyclique ssi il est stable par permu-
tation circulaire des lettres dans chaque mot, cest ` a dire ssi (en notant m
i
la i`eme
lettre de m, m
i
/)
m = (m
0
, m
1
, . . . , m
n1
) ( m

= (m
n1
, m
0
, m
1
, . . . , m
n2
) (
Cette propriete est plus facile `a caracteriser en adoptant une notation polyn omiale
pour decrire les elements de F
n
q
.
Notation : Lelement m = (m
0
, m
1
, . . . , m
n1
) de /
n
est represente par le
polynome m(X) = m
0
+m
1
X +m
2
X
2
+. . . +m
n1
X
n1
de F
q
[X].
On rappelle que F
q
[X] est lanneau des polynomes `a coecients dans F
q
. Con-
siderons le produit de m(X) par X. Il vient
X m(X) = m
0
X +m
1
X
2
+. . . +m
n2
X
n1
+m
n1
X
n
Si on calcule le reste de X m(X) modulo X
n
1 il vient
m

(X) = X m(X)
[X
n
1]
= m
n1
+m
0
X +m
1
X
2
+. . . +m
n2
X
n1
90
car X
n
= 1
[X
n
1]
. Il vient que le code ( est cyclique ssi il est stable par multi-
plication par X modulo X
n
1, cest `a dire ssi il est stable par multiplication par
X dans lanneau quotient F
q
[X]/X
n
1. Par suite, ( reste stable par multiplica-
tion par X
2
, par X
3
, etc. Comme il est dej`a stable par addition et produit par un
scalaire b F
q
(cest un espace vectoriel), il est donc stable par multiplication par
b
0
+b
1
X +b
2
X
2
+ . En dautres termes
m(X) ( b(X) F
q
[X], b(X) m(X)
[X
n
1]
(
ce qui peut se dire de fa con savante
Lemme 34 Dans la notation polyn omiale, un code cyclique de (F
q
)
n
est un ideal
de lanneau F
q
[X]/X
n
1.
6.2 Polynome generateur
Tout ideal de F
q
[X]/X
n
1 est engendre par un seul element
1
; cela tient `a lexistence
dune division euclidienne dans cet anneau.
Denition 36 Le polynome generateur du code cyclique ( est le polyn ome nor-
malise de plus bas degre de (. On le note generiquement g(X).
Normalise signie que le coecient du mon ome de plus haut degre vaut 1. Cette
normalisation garantit lunicite de g(X). Noter que g(X) ne peut etre le polynome
nul avec cette denition.
Lemme 35 Les mots de ( sont les multiples de g(X) dans F
q
[X]/X
n
1. Plus
precisement, si d
o
g(X) = n k,
m(X) (, ! a(X) F
q
[X], d
o
a(X) < k : m(X) = a(X) g(X)
et donc d
o
g(X) + dim( = n.
En eet, soit m(X) (. Calculons sa division euclidienne par g(X)
m(X) = q(X) g(X) +r(X), d
o
r(X) < d
o
g(X)
On a vu que tout multiple de g(X) est dans (. Il vient que r(X) = m(X)q(X)g(X)
est dans (, ce qui contredit la denition de g(X) comme etant de degre minimal
dans (, sauf si r(X) est nul. Le second point du lemme vient en remarquant que
d
o
q(X) < k car d
o
m(X) < n. Pour lunicite, on suppose m(X) = a(X)g(X) =
a

(X)g(X), do` u [a(x) a

(X)]g(X) = 0. il sut alors de raisonner sur les degres.


1
Un tel anneau est dit principal.
91
Lemme 36 Soit ( un code cyclique de (F
q
)
n
, de polyn ome generateur
g(X) = g
0
+g
1
X +g
2
X
2
+. . . +g
nk
X
nk
on obtient une matrice generatrice de ( par
G =
_
_
_
_
_
_
g
0
g
1
. . . g
nk
0 . . . 0
0 g
0
g
1
. . . g
nk
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 0
0 . . . 0 g
0
g
1
. . . g
nk
_
_
_
_
_
_
(F
q
)
kn
Ce resultat nest que la traduction vectorielle du lemme precedent. Il met en evidence
la nature beaucoup plus structuree des codes cycliques. On observera que G est
bien de rang k, car la sous-matrice k k de droite est tridiagonale, avec des 1 sur
la diagonale.
Lemme 37 Soit g(X) le polyn ome generateur du code cyclique ( dans (F
q
)
n
, g(X)
est un diviseur de X
n
1, ce que lon note g(X) [ X
n
1.
Ce resultat nous permettra de construire les codes cycliques `a partir des diviseurs
de X
n
1. La preuve est identique `a celle du lemme 35 : on calcule la division
euclidienne de X
n
1 par g(X), et on conclut en passant modulo X
n
1, ce qui
donne 0 = q(X)g(X) +r(X) (, donc r(X) (, etc.
6.3 Codage systematique
On souhaite coder les k lettres utiles u
1
, . . . , u
k
avec le code cyclique ( de sorte que
le mot de code se contente de rajouter des bits de redondance. On pose pour cela
u(X) = u
1
X
n1
+u
2
X
n2
+. . . +u
k
X
nk
et lon calcule la division euclidienne de u(X) par g(X) :
u(X) = q(X) g(X) +r(X) d
o
r(X) < d
o
g(X) = n k
Il vient que m(X) = u(X) r(X) est un mot du code (, et les polynomes u(X) et
r(X) nont aucun mon ome en commun : les coecients de r(X) vont occuper les
n k premiers mon omes e m(X), et ceux de u(X) les k derniers. On a donc bien
un codage systematique, les bits de redondance etant rajoutes en tete du mot.
Exemple. Sur (F
2
)
7
, on consid`ere le code engendre par g(X) = 1+X+X
3
. Il sagit
bien dun diviseur de X
7
+ 1 car on a la decomposition en polynomes irreductibles
X
7
+ 1 = (1 +X)(1 +X +X
3
)(1 +X
2
+X
3
)
92
r
0
r
1
r
n-k-1
u
k
2
u u
1
. . . . . .
n-k lettres redondantes k lettres utiles
Figure 6.1: Forme systematique pour un mot de code cyclique.
g(X) etant de degre 3, le code ( est de dimension 4 et une de ses matrices generatrices
est
G =
_
_
_
_
1 1 0 1
1 1 0 1
1 1 0 1
1 1 0 1
_
_
_
_
o` u les points representent des 0. Soit u = (1, 1, 0, 0) lentree du codeur, on construit
alors u(X) = X
6
+X
5
et lon calcule son reste modulo g(X) :
X
6
+X
5
= (X
3
+X
2
+X)g(X) +X
ce qui donne le mot de code m = (0, 1, 0, 0, 0, 1, 1) pour u. On peut ainsi calculer
une matrice generatrice sous forme systematique pour ( en calculant les restes de
X
6
, X
5
, X
4
et X
3
par g(X). Elle a la forme (exercice)
G

=
_
_
_
_
1 0 1 0 0 0 1
1 1 1 0 0 1 0
0 1 1 0 1 0 0
1 1 0 1 0 0 0
_
_
_
_
=
_
_
_
_
1 1 0 1
1 0 1 0
0 1 0 0
1 0 0 0
_
_
_
_
G
ce qui melange un peu les bits utiles en n de mot. Une forme systematique plus
conventionnelle peut etre obtenue en observant que la sous-matrice 4 4 gauche de
G, notee M, est de rang 4. Donc les 4 premi`eres lettres du code forment un ensemble
dinformation. En premultipliant G par M
1
on a la matrice generatrice
G

=
_
_
_
_
1 0 0 0 1 1 0
0 1 0 0 0 1 1
0 0 1 0 1 1 1
0 0 0 1 1 0 1
_
_
_
_
=
_
_
_
_
1 1 1 0
0 1 1 1
0 0 1 1
0 0 0 1
_
_
_
_
G
o` u il apparat que ( est equivalent au code de Hamming (7, 4).
6.4 Matrice de controle
On a vu au lemme 37 que g(X)[X
n
1, on peut donc ecrire la factorisation g(X)h(X) =
X
n
1 dans F
q
[X], o` u h(X) est aussi un polynome normalise. h(X) joue un r ole
tr`es important pour les codes cycliques. Notamment il engendre le code dual de
(, qui est aussi cyclique (voir section suivante). Par consequent il permet aussi de
construire une matrice de contr ole de (.
93
Lemme 38 Soit ( un code cyclique de (F
q
)
n
, de polyn ome generateur g(X), et soit
h(X) tel que g(X)h(X) = X
n
1. Soit m un mot quelconque de (F
q
)
n
, alors
m ( m(X)h(X) = 0
[X
n
1]
La CN est immediate puisque tout mot de ( secrit m(X) = a(X)g(X). Pour la CS,
on ecrit m(X)h(X) = (X
n
1)f(X) dans F
q
[X], avec d
o
f(X) d
o
h(X)1 = k1.
En divisant chaque membre par g(X), il vient m(X) = f(X)g(X), qui caracterise
m (.
Observons en detail le produit p(X) = m(X)h(X)
[X
n
1]
. En notant p(X) =
p
0
+p
1
X +. . . +p
n1
X
n1
et h(X) = h
0
+h
1
X +. . . +h
k
X
k
, on a
p
n1
= h
0
m
n1
+h
1
m
n2
+. . . +h
k
m
nk1
p
n2
= h
0
m
n2
+h
1
m
n3
+. . . +h
k
m
nk2
.
.
.
p
k
= h
0
m
k
+h
1
m
k1
+. . . +h
k
m
0
Formons alors la matrice H
H =
_
_
_
_
_
_
h
k
h
k1
. . . h
0
0 . . . 0
0 h
k
h
k1
. . . h
0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 0
0 . . . 0 h
k
h
k1
. . . h
0
_
_
_
_
_
_
(F
q
)
(nk)n
H est une matrice circulante construite `a partir du polynome h(X) retourne. Lequation
p(X) = 0 se traduit en m H
T
= 0. H est donc une matrice de contr ole du code (.
Le polynome h(X) peut aussi servir au decodage du code (. Supposons que le
mot m a ete emis, et que lon re coit m

= m + e, o` u e est le vecteur derreur. On


calcule alors s(X) = m

(X)h(X)
[X
n
1]
= m(X)h(X)
[X
n
1]
+e(X)h(X)
[X
n
1]
=
e(X)h(X)
[X
n
1]
. Cette equation ressemble beaucoup `a un calcul de syndrome...
Si s(X) = 0, le mot m

(X) est accepte. Sinon, il faut estimer lerreur e, cest `a


dire choisir un e

de poids minimal tel que s(X) = e

(X)h(X). On peut tenter de


calculer la division euclidienne de s(X) par h(X) : cela donne un vecteur derreur
possible, mais pas forcement celle de poids minimal.
6.5 Code dual
Il est commode ici de changer leg`erement la denition du produit scalaire de deux
elements de (F
q
)
n
.
m, m

)
2
=
n1

i=0
l
i
l

n1i
94
o` u m = l
0
l
n1
et m

= l

0
l

n1
. Cela correspond au produit scalaire de la
section 5.3.3 `a un retournement pr`es des lettres du second terme. Le dual (

2
que
nous denissons ici est donc obtenu en retournant tous les mots de (

. Le lemme 29
sur les dimensions reste donc valable.
Remarque importante : dans la notation polynomiale, m, m

)
2
est le coecient
du mon ome X
n1
dans le produit m(X)m

(X), qui reste inchange dans m(X)m

(X)
[X
n
1]
.
Lemme 39 Soit g(X) le polyn ome generateur de ( dans (F
q
)
n
, alors (

2
est le code
cyclique engendre par h(X), avec g(X)h(X) = X
n
1.
Cela tient de la remarque ci-dessus. Soit (

engendre par h(X) et soient m(X) =


a(x)g(X) ( et m

(X) = a

(X)h(X) (

. Comme m(X)m

(X) = a(X)a

(X)g(X)h(X) =
0
[X
n
1]
, on a m, m

)
2
= 0, soit (

2
. Par ailleurs, dapr`es le lemme 29
dim(

2
= n dim( = n k et dapr`es le lemme 35 dim(

= n d
o
h(X) =
d
o
g(X) = n k, on conclut (

= (

2
. Pour avoir le dual (

au sens de la sec-
tion 5.3.3, il sut de retourner tous les mots de (

= (

2
.
Corollaire 3 Si g(X) h(X) = 1, alors ( (

2
= (F
q
)
n
.
En eet, g(X)h(X), pgcd de g(X) et h(X), est le polynome generateur de (+(

2
(en utilisant legalite de Bezout). Si g(X) h(X) = 1, alors ( + (

2
= (F
q
)
n
. En
considerant les dimensions, on voit que lintersection est reduite `a 0. Ce corollaire
eace donc pour les codes cycliques la bizarrerie introduite par les vecteurs isotropes.
La condition g(X) h(X) = 1 est veriee lorsque n q = 1, choix que lon fait
generalement pour la construction des codes cycliques (voir plus loin).
Exemple. Poursuivons lexemple de la section precedente. On a h(X) = (1 +
X)(1 +X
2
+X
3
) = 1 +X +X
2
+X
4
. La matrice
H =
_
_
1 1 1 0 1
1 1 1 0 1
1 1 1 0 1
_
_
engendre (

2
. H est une matrice de contr ole pour ( et le produit scalaire , )
2
;
autrement dit, sa retournee
2
H

est une matrice de contr ole pour ( au sens m


( m(H

)
T
= 0. Comme les colonnes de H

contiennent tous les triplets de taille


3, ( est bien equivalent au code de Hamming (7, 4).
6.6 Factorisation de X
n
1 sur F
q
[X]
Lexistence de codes cycliques repose sur la decomposition de X
n
1 en un produit
de polynomes irreductibles `a coecients dans le corps F
q
(il sut ensuite de choisir
2
On signie par l`a que H

sobtient en lisant les lignes de H de droite `a gauche.


95
un sous-ensemble de ces facteurs pour construire g(X)). Nous donnons ici un bagage
algebrique minimal permettant de construire cette factorisation. Le lecteur interesse
trouvera plus de developpements en annexe.
6.6.1 Structure du corps F
q
On designe par F
q
le corps ni `a q elements. Il admet un sous-corps elementaire F
p
,
appele son sous-corps premier, obtenu en considerant 0, 1, 1 + 1, 1 + 1 + 1, . . ., et
qui est isomorphe `a Z/pZ. Il sensuit que p est premier. Comme F
q
est un F
p
espace
vectoriel, on a q = p
m
: le cardinal dun corps ni nest donc pas quelconque. Noter
la linearite
3
de la puisance p dans F
p
: (x +y)
p
= x
p
+ y
p
, qui reste vraie dans F
q
.
En fait, F
q
est caracterise par
x F
q
x
q
= x
Lordre dun element de F
q
est la plus petite puissance r telle que x
r
= 1. Il existe
dans F
q
au-moins un element dordre q 1, que lon appelle un element primitif
de F
q
, ce qui permet de montrer que
F
q
= 0, 1, ,
2
, . . . ,
q2

Cela induit lunicite du corps F


q
`a un isomorphisme pr`es.
6.6.2 Construction du surcorps F
q
m
La construction du surcorps F
q
m est similaire `a celle de C depuis R :
C R[X]/
X
2
+1
On choisit donc un polynome f(X) de degre m dans F
q
[X] et irreductible, cest `a
dire non factorisable (en termes savants, il est generateur dun ideal maximal de
F
q
[X]). Lanneau quotient F
q
[X]/f(X), forme des restes de la division euclidienne
des polynomes par f(X), est un corps
4
contenant F
q
[X]. Cest aussi un F
q
espace
vectoriel de base (1, X, X
2
, . . . , X
m1
), il contient donc q
m
elements.
F
q
m F
q
[X]/f(X)
F
q
m est le plus petit surcorps de F
q
contenant une racine de f(X) ; en eet, X F
q
m
est racine de f(X). En fait, F
q
m contient toutes les racines
5
de f(X) :
F
q
m : f() = 0 ,
q
,
q
2
, . . . ,
q
m1
sont racines de f(X)
3
Cela vient du fait que p divise les coecients du binome C
k
p
. Il en decoule le petit theor`eme de
Fermat : x
p
x[p].
4
cest pour cela que f(X) doit etre irreductible
5
Cela se montre en utilisant la linearite de la puissance p, donc de la puissance q, sur tout corps
contenant Fp, et le fait que a
q
= a, a Fq. On tire f(x
q
) = f(x)
q
, x Fq
m.
96
On dit que ces elements sont les conjugues de dans F
q
m. On notera que pour tout
F
q
m, le polynome
g(X) =
m

k=0
(X
q
k
)
est `a coecients dans F
q
, et non F
q
m (remarquer le parall`ele avec C). En particulier,
pour element primitif de F
q
m, on a =
i
, et donc g(X) secrit
g(X) =
m

k=0
(X
iq
k
)
Soit M

(X) le polyn ome minimal de dans F


q
[X], cest `a dire le polynome irreductible,
normalise
6
et admettant comme racine, alors g(X) = M

(X)
l
. Le polynome
M

(X) est de degre d, de racines ,


q
, . . . ,
q
d1
, et ld = m.
6.6.3 Factorisation de X
n
1 dans F
q
[X]
On suppose que n et q sont premiers entre eux : n q = 1, et lon cherche `a
decomposer X
n
1 en polynomes irreductibles de F
q
[X]. La methode est similaire
`a la factorisation de X
n
1 sur R[X] : on se place dans C pour faire apparatre
toutes les racines de X
n
1, puis on regroupe les racines conjuguees, qui donnent
des polynomes de R[X]. Les racines de X
n
1 dans C sont en fait les puissances
dune racine primitive n
`eme
de lunite, par exemple e
2i/n
; cela reste vrai pour les
corps nis.
Soit m le plus petit entier tel que
n [ q
m
1
On ecrit m = O
q
(n) : m est lordre multiplicatif de q modulo n. Alors F
q
m est le plus
petit surcorps de F
q
contenant toutes les racines de X
n
1. Certaines de ces racines
sont dordre n ; ce sont des racines primitives n
`emes
de lunite. Soit une telle
racine primitive, toute puissance de est aussi racine de X
n
1, or etant dordre
n, les elements 1, ,
2
, . . . ,
n1
sont tous distincs. Ils forment donc lensemble
des racines de X
n
1 dans F
q
m. On peut les rassembler en groupes delements
conjugues ; les puissances de rassemblees forment alors une classe cyclotomique.
Les puissances i et j sont dans la meme classe ssi il existe un k tel que j = i q
k
, ce
qui signie que
i
et
j
sont conjugues.
Exemple. Supposons q = 2 et n = 7. Les classes cyclotomiques binaires modulo 7
sont alors
C
0
= 0
C
1
= 1, 2, 4
C
3
= 3, 6, 5
6
i.e. le coecient du monome de plus haut degre est 1
97
`
A chaque classe cyclotomique C
i
, o` u i est le plus petit element de la classe, corre-
spond un polynome irreductible de F
q
[X], qui nest autre que le polynome minimal
de
i
. Cela nous donne la factorisation de X
n
1 en polynomes irreductibles
X
n
1 =

classes C
i
M

i (X)
Exemple. Pour q = 2 et n = 7, on trouve m = 3 car n = 7 divise q
m
1 = 2
3
1 = 7.
Il faut donc se placer dans F
2
3 = F
8
pour factoriser X
7
1 en mon omes. Soit un
element primitif de F
8
. On a donc F
8
= 0, 1, ,
2
, . . . ,
6
. est aussi une racine
primitive 7
`eme
de lunite, puisque les elements de F
8
sont les racines de X
8
X.
Formons les polynomes correspondant aux classes cyclotomiques vues plus haut :
P
0
(X) = X
0
P
1
(X) = (X
1
)(X
2
)(X
4
)
P
3
(X) = (X
3
)(X
6
)(X
5
)
Pour remettre ces polynomes sous forme delements de F
2
[X], il faut les developper,
en utilisant les r`egles de calcul
7
dans F
8
. On obtient alors
P
0
(X) = X + 1
P
1
(X) = X
3
+X + 1
P
3
(X) = X
3
+X
2
+ 1
ce qui donne la factorisation en elements irreductibles dans F
2
[X] :
X
7
+ 1 = (X + 1)(X
3
+X + 1)(X
3
+X
2
+ 1)
6.7 Exemples de codes cycliques classiques
Un code cyclique de longueur n, forme `a partir des lettres du corps / = F
q
, sobtient
en choisissant un polynome generateur g(X) de F
q
[X] diviseur de X
n
1. Pour
choisir g(X), on commence par decomposer X
n
1 en facteurs irreductibles. Cela
suppose de se placer dans un surcorps F
q
m de F
q
qui contient toutes les racines de
X
n
1, puis de regrouper les mon omes correspondant `a des racines conjuguees. Le
m caracterisant un tel surcorps est le plus petit entier tel que
n [ q
m
1
(on suppose toujours nq = 1). Les dierents codes cycliques classiques correspon-
dent `a des choix particuliers de ces param`etres q, n et donc m.
7
Il sut en fait detablir la table daddition, sous la forme
i
+
j
=
k
. Cette table peut setablir
`a partir de la construction de F8 comme F2[X]/P(X) o` u P(X) est un polynome irreductible de
degre 3 dans F2[X], par exemple 1 +X +X
3
.
98
6.7.1 Codes BCH (Bose-Chaudhury-Hocquenghem)
Ces codes, par un choix judicieux du polynome generateur, garantissent une distance
minimale au-moins egale `a d
BCH
. Ils permettent donc de corriger au-moins (d
BCH

1)/2 erreurs. La structure BCH nimpose pas dautre contrainte sur le choix de n, q
et m que nq = 1 et n[q
m
1. Lorsque n = q
m
1, on parle toutefois de code BCH
primitif. Dans la suite, on appelle une racine primitive n
`eme
de lunite dans F
q
m.
Supposons que le polynome g(X), de degre nk, admet pour racines
1
,
2
, . . . ,
nk
dans F
q
m. Un element de (F
q
)
n
est alors un mot du code ( ssi le polynome (X)
est un multiple de g(X), cest `a dire sil admet les
i
pour racines :
( (
i
) = 0, i = 1 . . . n k
En dautres termes, la matrice H suivante est une matrice de contr ole pour ( (les
calculs se font dans F
q
m) :
H =
_
_
_
_
_
1
1

2
1

n1
1
1
2

2
2

n1
2
.
.
.
.
.
.
.
.
.
.
.
.
1
nk

2
nk

n1
nk
_
_
_
_
_
On a en eet ( ssi H
T
= 0. On a vu au lemme 28 (chapitre precedent) que le
rang minimal des colonnes de H caracterise la distance minimale du code. On peut
choisir les racines
i
de fa con `a rendre ce rang minimal eleve.
Lemme 40 Si g(X) admet
i+1
,
i+2
, . . . ,
i+1
pour racines dans F
q
m, alors il
denit un code cyclique de distance minimale d .
On va supposer i = 0 pour la preuve, et poser
1
= ,
2
=
2
, . . . ,
1
=
1
.
Il faut montrer que tout choix de 1 colonnes de H denit une matrice M de rang
plein. Prenons les colonnes correspondant aux puissances j
1
, j
2
, . . . , j
1
des
i
, et
ne conservons que les 1 premi`eres lignes, il vient
M =
_
_
_
_
_
_

j
1
1

j
2
1

j
1
1

j
1
2

j
2
2

j
1
2
.
.
.
.
.
.
.
.
.

j
1
1

j
2
1

j
1
1
_
_
_
_
_
_
=
_
_
_
_
_

j
1

j
2

j
1

2j
1

2j
2

2j
1
.
.
.
.
.
.
.
.
.

(1)j
1

(1)j
2

(1)j
1
_
_
_
_
_
Lexpression de droite indique que M est une matrice de Vandermonde, dont le
determinant vaut
det(M) =
P
1
k=1
j
k

1u<v1
_

jv

ju
_
,= 0 cqfd
99
Denition 37 Le polyn ome g(X) de F
q
[X] gen`ere un code BCH de distance con-
struite ssi g(X) est le produit des polyn omes minimaux dans F
q
[X] de ,
2
, . . . ,
1
,
ou plus generalement de
i+1
,
i+2
, . . . ,
i+1
. La distance BCH de (, notee d
BCH
((),
est la plus grande distance construite que lon peut associer ` a (.
6.7.2 Codes BCH primitifs binaires
On choisit ici q = 2 et n = q
m
1 = 2
m
1. Ces longueurs n primitives sont
les plus employees en pratique. On appelle toujours une racine primitive n
`eme
de
lunite ; correspond ici `a un element primitif de F
q
m = F
2
m.
On veut construire un code c-correcteur, donc de distance BCH d
BCH
2c + 1.
En utilisant le lemme 40 et la denition 37, on voit quil sut de choisir un polynome
generateur g(X) admettant ,
2
, . . . ,
2c
comme racines. Soit m

i (X) le polynome
minimal de
i
dans F
2
[X].
2i
, conjugue de
i
, est une autre racine de m

i (X). Il
sut donc de choisir g(X) tel que m

i (X) soit un de ses diviseurs pour i = 1, 2, . . . , c.


On peut prendre le ppcm
g(X) =
c
i=1
m

i (X)
qui comporte au plus c facteurs. Par ailleurs, le degre de chacun des m

i (X) est
inferieur
8
`a m. On a donc
d
o
g(X) c m
En se souvenant que d
o
g(X) = n k, il vient que le nombre de bits utiles verie
k n cm = 2
m
1 cm.
Lemme 41 Il existe des codes BCH primitifs binaires c-correcteurs dont le nombre
de bits utiles verie k 2
m
1 cm (construction ci-dessus).
Il faut donc au plus m bits de redondance pour corriger une erreur, dans ces codes.
La borne donnee par ce lemme est assez grossi`ere. On peut facilement lameliorer
pour des choix de c et m particuliers.
Exemple. Prenons n = 15 = 2
4
1, donc q = 2 et m = 4. On a la factorisation en
polynomes irreductibles suivante
X
15
1 = (X + 1) (X
4
+X + 1) (X
4
+X
3
+X
2
+X + 1)
(X
2
+X + 1) (X
4
+X
3
+ 1)
= g
0
(X) g
1
(X) g
3
(X) g
5
(X) g
7
(X)
8
Car F2[X]/m

i (X) denit un corps de cardinal 2

o` u = d
o
m

i (X). Ce corps contient toutes


les racines de m

i (X). Cest donc un sous-corps de F2


m, do` u necessairement m. EN fait on a
meme |m.
100
o` u les g
i
(X) correspondent aux classes cyclotomiques
C
0
= 0
C
1
= 1, 2, 4, 8
C
3
= 3, 6, 12, 9
C
5
= 5, 10
C
7
= 7, 14, 13, 11
En choisissant g(X) = g
1
(X)g
3
(X) = X
8
+X
7
+X
6
+X
4
+1 on a donc
1
,
2
, . . . ,
4
comme racines, do` u d
BCH
= 5. On a d = d
BCH
car g(X) est un mot du code et a
pour poids 5. Ce (15, 7, 5)-code est 2-correcteur.
Exercice. Poursuivre lexemple en construisant un code 3-correcteur.
6.7.3 Codes RS (Reed-Solomon)
Il sagit dune classe de codes tr`es populaire, peut-etre la plus utilisee en pratique
(parmi les codes blocs). Il sagit de codes BCH pour lesquels m = 1 ; on a donc
n = q 1. En dautres termes, tout consiste `a choisir le corps de reference F
q
. Le
plus souvent, on choisit pour q une puissance de 2 : q = 2
l
, de sorte que les elements
de F
q
se representent sous forme dun l-uplet de bits. Cela permet un codage tr`es
simple `a partir dun train binaire : n l = (2
l
1)l bits donnent un mot de n = 2
l
1
lettres de F
q
. On a en fait un isomorphisme de groupes additifs entre F
q
et (F
2
)
l
,
qui facilite grandement les calculs dans F
q
(voir annexe : calcul dans les corps nis).
Soit un element primitif de F
q
, donc F
q
= 0, 1, ,
2
, . . . ,
q2
, le polynome
generateur g(X) est tout simplement un produit de mon omes forme `a partir de nk
puissances consecutives
9
de , par exemple
g(X) =
nk

i=1
(X
i
)
de sorte que la distance construite verie d
BCH
n k + 1 par le lemme 40. On a
vu par ailleurs que dans tous les cas, la distance minimale dun code lineaire verie
d n k + 1 (borne de Singleton, lemme 25). Donc
Lemme 42 La distance minimale dun code de Reed-Solomon est egale ` a sa distance
BCH. Elle atteint par ailleurs la borne de Singleton d = nk +1 : un code de Reed
Solomon realise donc la meilleure distance minimale possible, ` a n et k xes.
9
Plus besoin de prendre des polynomes minimaux, car X
n
1 se decompose compl`etement dans
Fq[X].
101
6.7.4 Code de Golay
6.8 Methodes de decodage
102
Chapter 7
Codes convolutifs
103
Chapter 8
Applications
104

Anda mungkin juga menyukai