Vous êtes sur la page 1sur 70

cole polytechnique

Informatique

Introduction la thorie de l'information

Nicolas Sendrier
aot 2007

Promotion 2005, Majeure 1 d'informatique

Chapitre 1

Systmes de communication
1.1 Introduction
La thorie des communications s'intresse aux moyens de transmettre une information depuis
une source jusqu' un utilisateur (cf. Figure 1.1). La nature de la source peut-tre trs varie. Il
peut s'agir par exemple d'une voix, d'un signal lectromagntique ou d'une squence de symboles
binaires. Le canal peut tre une ligne tlphonique, une liaison radio ou encore un support magntique ou optique : bande magntique ou disque compact. Le canal sera gnralement perturb
par un bruit qui dpendra de l'environnement et de la nature canal : perturbations lectriques,
rayures, . . . . Le codeur reprsente l'ensemble des oprations eectues sur la sortie de la source
avant la transmission. Ces oprations peuvent tre, par exemple, la modulation, la compression ou
encore l'ajout d'une redondance pour combattre les eets du bruit. Elles ont pour but de rendre
la sortie de la source compatible avec le canal. Enn, le dcodeur devra tre capable, partir de
la sortie du canal de restituer de faon acceptable l'information fournie par la source.
Bruit
Source

- Codeur
Fig.

Canal

- Dcodeur

- Utilisateur

1.1  Schma d'un systme de communication.

Dans les annes 40, C. E. Shannon a dvelopp une thorie mathmatique appele thorie de
l'information qui dcrit les aspects les plus fondamentaux des systmes de communication. Cette
thorie s'intresse la construction et l'tude de modles mathmatiques l'aide essentiellement
de la thorie des probabilits. Depuis ce premier expos publi en 19481 , la thorie de l'information
s'est faite de plus en plus prcise et est devenue aujourd'hui incontournable dans la conception
tout systme de communication, au sens le plus large de ce terme.
Dans ce cours, nous tudierons certains de ces modles mathmatiques, qui, bien que considrablement plus simple que les sources et les canaux physiques, permettent de donner une bonne
intuition de leur comportement.
Dans le but de simplier l'tude des systmes de communication, nous tudierons sparment
les modles de sources et les modles de canaux. Ceci peut se schmatiser en sparant le codeur
et le dcodeur de la Figure 1.2 en deux parties. Le but du codeur de source est de reprsenter la
sortie de la source, ou information, en une squence binaire, et cela de la faon la plus conomique
possible. Le but du codeur de canal et de son dcodeur est de reproduire le plus dlement possible
cette squence binaire malgr le passage travers le canal bruit.
1 C. E. Shannon, A Mathematical Theory of Communication, Bell System Technical Journal, vol. 27, pages
379423 et 623656, 1948

CHAPITRE 1. SYSTMES DE COMMUNICATION

- Codeur de

Source

source

- Codeur de
canal

?
Canal

Utilisateur
Fig.

Dcodeur
de source

Bruit

Dcodeur
de canal

1.2  Systme de communication avec codeurs de source et de canal spars.

Cette sparation rendra notre tude commode, car nous pourrons traiter indpendemment la
source et le canal. De plus cette sparation n'implique aucune limitation sur les performances
du systme. Nous poursuivrons donc ce chapitre d'introduction par une brve description des
direntes classes de modles de sources et de canaux.

1.2 Sources et codage de source


1.2.1

Sources discrtes sans mmoire

Parmi les classes possibles de modles de sources, nous nous intresserons plus particulirement
aux sources discrtes sans mmoire. La sortie d'une telle source est une squence de lettres tires
dans un alphabet ni2 {a1 , . . . , aK }. Chaque lettre de la squence est statistiquement indpendante
des autre et obtenue d'aprs une loi de probabilit xe P (a1 ), . . . , P (aK ). Pour toute lettre ak ,
1 k K , de la source, P (aK ) est la probabilit pour que cette lettre soit produite, nous aurons
PK
donc k=1 P (ak ) = 1.
Il peut sembler tonnant de modliser une source d'information l'aide d'un processus alatoire.
L'exemple suivant nous montre toutefois que l'utilisation des probabilits est indispensable pour
coder une information de faon compacte.

Exemple: Soit une source d'information qui fournit comme information l'une des quatre lettres

a1 , a2 , a3 et a4 . Supposons que le codage transforme cette information en symboles binaires.


Dans la Table 1.1, nous donnons deux codages dirents de cette source. Dans la premire
Mthode 1
a1 00
a2 01
a3 10
a4 11
Tab.

Mthode 2
a1 0
a2 10
a3 110
a4 111

1.1  Deux codages d'un alphabet de quatre lettres.

mthode, deux symboles binaires sont gnrs pour chaque lettre mise, alors que dans la
seconde le nombre de symboles est variable.
Si les quatre lettres sont quiprobables, alors la premire mthode est la meilleure : 2 symboles
par lettre en moyenne au lieu de 2,25. En revanche si l'on a

P (a1 ) =

1
1
1
, P (a2 ) = , P (a3 ) = P (a4 ) = ,
2
4
8

2 Nous rserverons la dnomination de  sources discrtes  aux alphabets nis. Lorsque l'alphabet est inni et
dnombrable nous parlerons de source discrte innie.

1.3. CANAUX ET CODAGE DE CANAL

alors la mthode 1 ncessite toujours 2 symboles binaires par lettre en moyenne alors que la
mthode 2 qui n'en ncessite que 1,75. Elle est dans ce cas la plus conomique.
Il est donc important pour coder correctement une source de connatre son comportement
statistique.

1.2.2

Entropie d'une source discrte sans mmoire

Il apparat qu'il existe un lien entre l'information fournie par une source et la distribution de
probabilit de la sortie de cette source. Plus l'vnement donn par la source est probable, moins
la quantit d'information correspondante est grande. Plus prcisment, si une lettre ak a une
probabilit P (ak ) d'tre produite par la source, son information propre sera I(ak ) = log2 P (ak ).
Cette dnition parait conforme l'ide intuitive que l'on peut se faire de l'information, et en
particulier on a I(ak ) = 0 si P (ak ) = 1, c'est--dire que l'occurrence d'un vnement certain ne
peut fournir aucune information.
La valeur moyenne de l'information propre calcule sur l'ensemble de l'alphabet revt une
grande importance. Elle est appele entropie de la source et vaut
K
X

P (ak ) log2 P (ak ).

k=1

L'entropie d'une source est le nombre moyen minimal de symboles binaires par lettre ncessaires
pour reprsenter la source.
Par exemple, si un alphabet contient 2L lettres quiprobables, il est immdiat que l'entropie
de la source correspondante vaut L. Or il est bien clair que pour reprsenter 2L lettres distinctes,
L symboles binaires sont ncessaires.
L'entropie d'une source est parfois donne en bits par seconde, si l'entropie d'une source discrte
est H , et si les lettres sont mises toutes les s secondes, son entropie en bits/s sera H/s .

1.2.3

Autres modles de sources

On peut citer galement parmi les classes de modles de source, les sources discrtes stationnaires, pour lesquelles une entropie peut tre dnie de faon analogue.
Enn, les sources non discrtes, ou sources continues, ont une grande importance pour les
applications. La sortie d'une telle source sera une fonction continue du temps, par exemple une
tension, qu'il faut coder en une squence binaire. La fonction continue devra tre dcrite le plus
dlement possible par la squence binaire gnre par le codeur de source. Le problme essentiel
dans ce cas consiste minimiser le nombre de symboles transmis pour un niveau de distorsion
donn.

1.3 Canaux et codage de canal


1.3.1

Canaux discrets

Pour modliser correctement un canal de transmission il est ncessaire de spcier l'ensemble


des entres et l'ensemble des sorties possibles. Le cas le plus simple est celui du canal discret sans
mmoire : l'entre est une lettre d'un alphabet ni {a1 , . . . , aK }, et la sortie est une lettre d'un
autre alphabet ni, ventuellement identique, {b1 , . . . , bJ }. Ces lettres sont mises en squence, et
pour que le canal soit sans mmoire, il faut que chaque lettre de la squence reue ne dpende
statistiquement que de la lettre mise de mme position. Ainsi un canal discret sans mmoire est
entirement dcrit par la donne des probabilits conditionnelles P (bj | ak ), pour tout ak dans
l'alphabet d'entre et tout bj dans l'alphabet de sortie.
Par exemple le canal binaire symtrique, reprsent dans la Figure 1.3, est un canal discret
sans mmoire, dont l'alphabet d'entre et l'alphabet de sortie sont gaux tous deux {0, 1}. La

CHAPITRE 1. SYSTMES DE COMMUNICATION

probabilit pour qu'un symbole soit inchang est 1 , et la probabilit pour qu'il soit transform
en son oppos est .
Alphabet
d'entre

Alphabet
de sortie

PP

1
PP

PP

PP
PP

PP

PP

PP

P
1
Fig.

1.3  Canal binaire symtrique.

On peut galement considrer des canaux discrets mmoire dans lesquels chaque lettre de la
squence de sortie peut dpendre de plusieurs lettres de la squence d'entre.

1.3.2 Canaux continus


Il existe une classe de modles de canaux, appel canaux continus, beaucoup plus proche des
canaux physiques, dans lesquels l'entre et la sortie sont des fonctions continues du temps.
Pour les canaux de cette classe, il est possible, et commode, de sparer le codeur et le dcodeur
en deux parties, comme le montre la gure 1.4. La premire partie du codeur, que nous appellerons
codeur de canal discret, transforme une squence binaire en une squence de lettres d'un alphabet
ni {a1 , . . . , aK }, la seconde partie du codeur, le modulateur de donnes digitales (MDD) envoie
pendant un temps c sur le canal une des fonctions du temps prdnies s1 (t), . . . , sK (t). La dure
c sera l'intervalle de temps sparant l'mission de deux lettre par le codeur de canal discret.
L'ensemble de ces fonctions du temps mises bout bout sera convertie la sortie du canal par
le dmodulateur de donnes digitales (DDD) en une squence de lettres d'un alphabet de sortie
{b1 , . . . , bJ } au rythme, l encore, d'une lettre toutes les c secondes.
On voit que de cette manire l'ensemble MDD-canal-DDD peut tre considr comme un canal
discret dont l'alphabet d'entre est {a1 , . . . , aK } et l'alphabet de sortie {b1 , . . . , bJ }. Si de plus le
bruit est indpendant entre chaque intervalle de c secondes, alors ce canal sera sans mmoire.
L'tude des canaux discrets nous permettra donc de dduire des rsultats sur les canaux continus.

1.3.3 Capacit d'un canal


L'un des paramtres les plus important d'un canal est sa capacit, nous verrons que cette
capacit peut s'interprter comme une mesure de la quantit d'information, exprime en bits par
seconde par exemple, pouvant tre transmise travers ce canal. L'intrt de cette grandeur nous
vient essentiellement du thorme sur le codage des canaux bruits : grossirement, ce thorme
dit que dans un canal de capacit C bits/s, si l'on veut faire transiter une quantit d'information
un taux utile de R bits/s, tel que R < C , alors il existe une procdure de codage et une procdure
de dcodage telles que le taux d'erreur rsiduel soit arbitrairement faible.
La rciproque de ce thorme nous dit par contre que si R > C alors pour toute procdure de
codage et de dcodage, le taux d'erreur rsiduel est suprieur une constante strictement positive
qui dpend de R et C .

1.3. CANAUX ET CODAGE DE CANAL

Canal discret

Source

- Codeur de
source

Codeur de
canal
discret

Modulateur
de donnes
digitales

?
Canal
continu

Utilisateur

Dcodeur
de source

Fig.

Dcodeur
de canal
discret

Dmodulateur
de donnes
digitales

1.4  Canal continu et canal discret.

CHAPITRE 1. SYSTMES DE COMMUNICATION

Chapitre 2

Une mesure de l'information


Nous donnons dans ce chapitre une mesure de la quantit d'information adapte la description
statistique des sources et des canaux. Les noncs qui en rsultent faisant largement appel aux
probabilits discrtes, nous commencerons l'expos par le rappel de quelques lments de thorie
des probabilits.

2.1 Espace probabilis discret


Un espace probabilis discret X est une exprience alatoire dcrite par la donne d'un espace
des preuves X ni ou dnombrable (l'ensemble des rsultats possibles de l'exprience), muni d'une
mesure de probabilit PrX . Un vnement alatoire est une partie de X
La mesure de probabilit est une application valeur dans l'intervalle rel [0, 1] dnie pour
toute partie U de X et qui vrie
 PrX (X ) = 1
 Si U X et V X avec U V = alors PrX (U V) = PrX (U) + PrX (V)
Un lment x de X est appel issue, le singleton {x} est un vnement lmentaire et nous posons
pX (x) = PrX [{x}]. Pour toute partie U de X , sa probabilit dans X sera gale
X
PrX [U ] =
pX (x)
xU

Dans le cas discret, la donne d'une distribution de probabilit pX : X R telle que


X
pX (x) 0, x X et
pX (x) = 1
xX

est ncessaire et susante pour dcrire la mesure de probabilit PrX , nous parlerons de l'espace
probabilis discret X = (X , pX ).

2.1.1

Dnitions

Soit X = (X , pX ) un espace probabilis discret.


Une variable alatoire d'un espace probabilis est une application dnie sur l'espace des
preuves. Pour toute variable alatoire V , nous noterons

PrX [V = v] = PrX [{x X | V (x) = v}],


C'est--dire que l'vnement  V = v  est identi avec l'ensemble des issues telle que V (x) = v .
L'esprance (ou moyenne) d'une variable alatoire relle V : X R est dnie et note par
X
EX [V ] =
pX (x)V (x).
xX

10

CHAPITRE 2. UNE MESURE DE L'INFORMATION

Probabilit conditionnelle. Dans certains cas, nous voudrons restreindre un espace probabilis

(X , pX ) une partie V de X (telle que PrX [V] 6= 0). Dans le nouvel espace probabilis V = (V, pV ),
nous voulons que, pour x V , la valeur de pV (x) soit proportionnelle pX (x), pour conserver une
distribution de probabilit, nous devons avoir pV (x) = pX (x)/PrX [V].
Pour toute partie U de X , nous dnissons la probabilit conditionnelle de U sachant V dans
X comme la probabilit de U V dans V . Nous noterons
PrX [U | V] = PrV [U V] =

PrX [U V]
.
PrX [V]

La notation PrX [U | V] est commode mais abusive, la grandeur qu'elle dnit ne pouvant pas tre
interprte comme une probabilit dans X .
Soient deux parties U et V de X , nous noterons PrX [U, V] = PrX [U V]. Nous dirons que
U et V sont statistiquement indpendants, si l'une des trois proprits quivalentes ci-dessous est
vrie
(i) PrX [U | V] = PrX [U]
(ii) PrX [V | U] = PrX [V]
(iii) PrX [U , V] = PrX [U]PrX [V]
De mme, deux variables alatoires U et V sont dites indpendantes si pour tout u et tout v , nous
avons PrX [U = u, V = v] = PrX [U = u]PrX [U = u].

2.1.2

Espace probabilis joint

Nous parlerons d'espace probabilis joint XY lorsque l'espace des preuves est un produit
cartsien X Y . La distribution de probabilit jointe est note pXY .
Nous noterons X et Y les variables alatoires correspondant respectivement la premire et
la seconde coordonnes de l'issue. Nous dnissons les lois marginales pX et pY de pXY par

pX (x) = PrXY [X = x] =

pXY (x, y),

et

pY (y) = PrXY [Y = y] =

yY

pXY (x, y).

xX

Notons que (X , pX ) et (Y, pY ) dnissent des espaces probabiliss, par commodit, nous noterons
ces espaces X et Y , du mme nom que les variables alatoires qui leurs sont associes.
Lorsque pX (x) > 0, la probabilit conditionnelle de  Y = y  sachant  X = x  est gale

PrXY [Y = y | X = x] =

pXY (x, y)
.
pX (x)

En eet les vnements  Y = y  et  X = x  correspondent aux parties X {y} et {x}Y de X


Y dont l'intersection est l'vnement lmentaire {(x, y)}. De mme la probabilit conditionnelle
de  X = x  sachant  Y = y  est gale

PrXY [X = x | Y = y] =

pXY (x, y)
.
pY (y)

Les vnements  X = x  et  Y = y  sont dit statistiquement indpendants si

pXY (x, y) = pX (x)pY (y).


Si cette galit est vraie pour tout couple de X Y , alors X et Y sont dit statistiquement
indpendants.

2.2. PROCESSUS STOCHASTIQUES

2.1.3

11

Simplication des notations

Dans les notations que nous utilisons, l'espace probabilis est utilis en indice. Dans toutes les
utilisations que nous ferons des probabilits et des distributions de probabilit, cet indice peut-tre
omis sans crer d'ambigut.
Par exemple, considrons les espaces probabiliss X et Y sur X et Y ainsi que l'espace joint
XY sur X Y . La probabilit Pr[U] sera dnie sur X , Y ou XY selon que U est une partie de
X , Y ou X Y . Nous utiliserons Pr au lieu de PrX , PrY et PrXY , y compris pour les probabilits
conditionnelles.
De la mme manire, pour les distributions, pX , pY ou pXY il n'y a en gnral pas d'ambigut.
Pour tout (x, y) X Y nous noterons

p(x) = pX (x)
p(y) = pY (y)
p(x, y) = pXY (x, y)
p(x | y) = PrXY [X = x | Y = y]
p(y | x) = PrXY [Y = y | X = x]

2.2

Processus stochastiques

Un processus stochastique sur un ensemble discret X consiste tirer alatoirement et indniment des lments de X . L'espace des preuves correspondant est l'ensemble des suites
(x1 , . . . , xn , . . . ) d'lments de X . Pour tout entier n 1, nous noterons Xn la variable alatoire
dont la valeur est le n-me lment de la suite issue de l'exprience alatoire. L'espace probabilis
que nous considrons n'est pas discret et la mesure de probabilit qui lui est associe ne peut tre
dnie par une distribution de probabilit. Elle est dnie par la donne, pour tout n > 0 et tout
(x1 , . . . , xn ) X n , de

p(x1 , x2 , . . . , xn ) = Pr[X1 = x1 , X2 = x2 , . . . , Xn = xn ]

Processus sans mmoire. Si les variables alatoires Xn sont deux deux indpendantes et

identiquement distribues, nous dirons que le processus est sans mmoire, pour tout n > 0 et tout
(x1 , . . . , xn ) X n , nous avons
n
Y
p(x1 , . . . , xn ) =
p(xi )
i=1

Processus stationnaire. Un processus stochastique sera dit stationnaire si pour tout n > 0
Pr[X1 = x1 , X2 = x2 , . . . , Xn = xn ] = Pr[X2 = x1 , X3 = x2 , . . . , Xn+1 = xn ].

Processus markovien. Un processus stochastique sera dit markovien (d'ordre 1) si pour tout

n > 0,

Pr[Xn+1 = xn+1 | X1 = x1 , X2 = x2 , . . . , Xn = xn ] = Pr[Xn+1 = xn+1 | Xn = xn ]


Un processus markovien est invariant dans le temps si Pr[Xn+1 = xn+1 | Xn = xn ] est indpendant
de n, nous noterons p(xn+1 | xn ). Nous pouvons alors crire

p(x1 , x2 , . . . , xn ) = p(x1 )p(x2 | x1 ) . . . p(xn | xn1 )


Dans ce cas le processus est entirement dcrit par sa distribution initiale (p(x))xX et sa matrice de
transition = (p(x2 | x1 ))(x1 ,x2 )X 2 . Ce processus sera dit irreductible si sa matrice de transition
admet un unique point xe ((x))xX ) appel distribution stationnaire.

12

CHAPITRE 2. UNE MESURE DE L'INFORMATION

Si le processus considr est stationnaire, alors il est invariant dans le temps et sa distribution
initiale est gale la distribution stationnaire.
Un processus markovien d'ordre ` est dni par

Pr[Xn+1 = xn+1 | X1 = x1 , X2 = x2 , . . . , Xn = xn ]
= Pr[Xn+1 = xn+1 | Xn`+1 = xn`+1 , . . . , Xn = xn ]
p(x1 , x2 , . . . , xn ) = p(x1 , . . . , x` )p(x`+1 | x1 , . . . , x` ) . . . p(xn | xn1 , . . . , xn` )
En pratique, en considrant le processus (Yi )i>0 dni sur Y = X ` avec Yi = (Xi , Xi+1 , . . . , Xi+` ),
on peut toujours se ramener l'ordre 1.

2.3 Une dnition de l'information


2.3.1
a-

Incertitude et information
Description qualitative de l'information

Avant de trouver un moyen de mesurer quantitativement l'information, nous allons essayer de


prciser le concept d'information.
Nous l'avons vu, la faon la plus approprie de dcrire un systme de communication est d'en
donner un modle probabiliste. Qualitativement, fournir une information consiste lever une partie
de l'incertitude sur l'issue d'une exprience alatoire. Par exemple, l'observation d'un '0' la sortie
d'un canal binaire bruit augmente la probabilit qu'un '0' ait t mis et diminue la probabilit
qu'un '1' ait t mis.
D'une faon gnrale, considrons un espace probabilis joint XY et les deux vnements
X = x et Y = y . La probabilit conditionnelle p(x | y) peut tre interprte comme la modication
apporte la probabilit p(x) de l'vnement x lorsque l'on reoit l'information que l'vnement
y est ralis. L'information  y est ralis  modie la probabilit de x, c'est--dire l'incertitude
sur la ralisation de x, de p(x) p(x | y). Plus prcisment,
 si p(x | y) p(x), l'incertitude sur x augmente,
 si p(x | y) p(x), l'incertitude sur x diminue.
Une diminution de l'incertitude sur x doit tre comprise comme un gain d'information sur x
et inversement, une augmentation de l'incertitude sur x doit tre comprise comme une perte
d'information sur x. Cette quantit sear appele information mutuelle de x et y , et peut tre
positive ou ngative. Nous verrons par la suite que sa moyenne est toujours positive.
Le gain d'information maximal sur x sera obtenu lorsque p(x | y) = 1, c'est--dire essentiellement lorsque x = y . Cette quantit, fonction de la probabilit, sera appele information propre
de x note I(x) = f (p(x)). Pour quantier l'information, il nous faudra spcier et dnir cette
fonction f ().

b-

Description quantitative de l'information

L'information propre de x doit tre une fonction de sa probabilit : I(x) = f (p(x)). Pour dnir
f () nous admettrons :
 L'information propre de x est une fonction dcroissante de p(x) : en eet un vnement certain n'apporte aucune information, alors qu'un vnement improbable en apportera beaucoup.
 L'information propre est une grandeur additive : si les vnements x et y sont statistiquement
indpendants alors l'information totale qu'ils peuvent fournir est la somme des informations
propres f (p(x, y)) = f (p(x)p(y)) = f (p(x)) + f (p(y)).
Nous devrons donc choisir une fonction de la forme I(x) = log p(x), avec < 0 pour assurer
la dcroissance par rapport p(x). Le choix de va dpendre de l'unit d'information que nous
choisirons. Dans ce cours nous utiliserons le bit :

2.3. UNE DFINITION DE L'INFORMATION

13

Un bit est gal la quantit d'information fournie par le choix d'une alternative parmi
deux quiprobables.
En clair, cela signie que si X est un espace probabilis dans l'espace des preuves {0, 1} muni
d'une loi uniforme (i.e. p(0) = p(1) = 1/2), alors la quantit d'information fournie par la ralisation
de l'vnement X = 0 (ou X = 1) est de 1 bit. On a
I(0) = log p(0) = log 2 = 1,
donc = 1/ log 2 ce qui revient choisir le logarithme en base 2 pour la dnition de I(x) :

I(x) = log2 p(x).


Le terme  bit  est une abrviation de  binary digit  mais ne doit pas tre compris comme
 symbole binaire  mais comme une unit de mesure de l'information. Il se trouve que pour
reprsenter n bits d'information, il faudra utiliser (au moins) n symboles binaires en moyenne.

Exemple:

Soit une source dont l'alphabet de sortie {a0 , . . . , a15 } comprend 16 lettres quiprobables, c'est--dire que pour tout k , 0 k < 16, P (ak ) = 1/16. L'information propre de
l'une de ces sorties ak sera gale I(ak ) = log2 (1/16) = 4 bits.
Dans ce cas particulier, l'information va consister choisir un entier k dans {0,1,. . . ,15}, et
pour reprsenter cette information il faut disposer de 4 symboles binaires.
Il faut prendre garde que ce rsultat n'est vrai que parce que les lettres de la source
sont quiprobables, en eet, si ce n'est pas le cas, l'information propre de l'vnement ak ,
I(ak ) = log2 p(ak ), sera gnralement dirente de 4, et nous verrons mme plus loin que
l'information propre moyenne peut tre infrieure strictement 4 bits.

2.3.2

Information mutuelle  Information propre

Nous considrons un espace probabilis joint XY . Nous dsirons ici donner une mesure quantitative de ce que nous apporte la ralisation d'un vnement y Y sur la possibilit de ralisation
d'un autre vnement x X ; l'occurrence de l'vnement y transforme la probabilit a priori p(x)
de l'vnement x en la probabilit a posteriori p(x | y).

Dnition 2.1 (Information mutuelle) L'information mutuelle entre les vnements x X


et y Y est dnie par1

I(x; y) = log2

p(x | y)
.
p(x)

Remarquons que cette dnition est symtrique, en eet, on a par dnition de la probabilit
conditionnelle, p(x, y) = p(x | y)p(y) = p(y | x)p(x), et donc

I(x; y) = I(y; x) = log2

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

Discussion sur le signe de I(x; y)

 I(x; y) > 0 signie que si l'un des deux vnements se ralise, alors la probabilit d'occurrence
de l'autre augmente.
 I(x; y) < 0 signie que si l'un des deux vnements se ralise, alors la probabilit d'occurrence
de l'autre diminue.
 I(x; y) = 0 signie que les deux vnements sont statistiquement indpendants.

Exemple: Considrons le canal binaire symtrique de probabilit de transition , avec des entres

a1 et a2 quiprobables (cf. Figure 2.1). An d'viter une possible confusion, nous utiliserons
les lettres a1 et a2 pour les entres, et les lettres b1 et b2 pour les sorties au lieu des symboles
binaires 0 et 1. Le canal binaire symtrique est dni par les probabilits conditionnelles

1 La notation I(x, y) serait ambigu car elle pourrait dsigner l'information propre de l'vnement (x, y).

14

CHAPITRE 2. UNE MESURE DE L'INFORMATION

P (y | x)

1
PP

PP

PP
P

PP
PP

PP

PP

P
1

b1

x
a1

a2

PP

Fig.

b2

2.1  Canal binaire symtrique

p(b1 | a1 ) = p(b2 | a2 ) = 1 , p(b1 | a2 ) = p(b2 | a1 ) = . Puisque p(a1 )


en dduit
1
et p(a1 , b2 ) = p(a2 , b1 ) =
p(a1 , b1 ) = p(a2 , b2 ) =
2

= p(a2 ) = 1/2, on

,
2

et p(b1 ) = p(b2 ) = 1/2. Cela nous permet de calculer l'information mutuelle de chaque couple
(ak , bj )

I(a1 ; b1 ) = I(a2 ; b2 ) = log2 2(1 ) et

I(a1 ; b2 ) = I(a2 ; b1 ) = log2 2.

On constate que pour < 1/2, I(a1 ; b1 ) est positif et I(a1 ; b2 ) est ngatif. Cela signie que
lorsqu'on observe la sortie du canal la lettre b1 , la probabilit pour que a1 ait t mise
augmente. Et que au contraire si b2 est observe, la probabilit pour que la lettre mise ait
t a1 diminue.
Enn lorsque = 1/2, toutes les informations mutuelles sont nulles, et donc les alphabets
d'entre et de sortie sont statistiquement indpendants, ce qui n'est videmment pas souhaitable.
Considrons prsent une autre grandeur intressante ; la valeur maximale de I(x; y) pour
x x et y quelconque. Cette valeur est atteinte lorsque p(x | y) = 1 (en fait tout se passe comme
si y = x). On a alors
p(x | y)
1
I(x; y) = log2
= log2
.
p(x)
p(x)
Il s'agit de la quantit maximale d'information que peut fournir l'vnement x.

Dnition 2.2 (Information propre) L'information propre de l'vnement x X est dnie


par

I(x) = log2 p(x).


L'information propre s'interprte comme la  quantit d'information fournie par la ralisation d'un
vnement .
Notons que l'information propre est toujours positive ou nulle, et que plus un vnement est
improbable, plus son information propre est grande. l'inverse, lorsque p(x) = 1, on a I(x) = 0,
c'est--dire que la ralisation d'un vnement certain n'apporte aucune information, ce qui semble
conforme l'intuition.
On peut galement dnir dans l'espace probabilis joint XY l'information propre conditionnelle qui est gale la quantit d'information fournie par un vnement x sachant que l'vnement
y s'est ralis.

Dnition 2.3 L'information propre conditionnelle de l'vnement x X , sachant y Y est


dnie par

I(x | y) = log2 p(x | y).

2.4. INFORMATION MUTUELLE MOYENNE  ENTROPIE

15

Cette dernire dnition nous permet de donner une nouvelle interprtation de l'information mutuelle entre deux vnements. En eet d'aprs la relation
(2.1)

I(x; y) = I(x) I(x | y),

l'information mutuelle entre x et y est gale la quantit d'information fournie par x moins la
quantit d'information que fournirait x si y se ralisait.

2.4

Information mutuelle moyenne  Entropie

2.4.1 Dnitions
Dans l'espace probabilis joint XY , l'information mutuelle peut tre considre comme une
variable alatoire relle. Sa moyenne peut donc tre dnie.

Dnition 2.4 (Information mutuelle moyenne) L'information mutuelle moyenne de X et

Y dans l'espace probabilis joint XY est dnie par


I(X; Y ) =

XX

XX

p(x, y)I(x; y) =

xX yY

p(x, y) log2

xX yY

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

On peut galement dnir la moyenne de l'information propre de l'espace probabilis X , cette


moyenne porte le nom d'entropie.

Dnition 2.5 (Entropie) L'entropie d'un espace probabilis X est dni par
H(X) =

p(x)I(x) =

xX

p(x) log2 p(x).

xX

Enn, l'information propre conditionnelle est galement une v.a. relle, sa moyenne porte le
nom d'entropie conditionnelle.

Dnition 2.6 L'entropie conditionnelle de X sachant Y dans l'espace probabilis joint XY est

dnie par

H(X | Y ) =

XX

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

xX yY

L'quation (2.1) peut se rcrire en moyenne

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


Cette relation nous sera utile pour interprter la capacit d'un canal.

2.4.2 Proprits de l'entropie


Thorme 2.7 Soit X un espace probabilis discret de cardinal K . Alors son entropie H(X)

vrie

H(X) log2 K

avec galit si et seulement si la loi de probabilit de X est uniforme.

preuve: La fonction log2 vrie


log2 z < (z 1) log2 e
log2 z = (z 1) log2 e

si z > 0, z 6= 1
si z = 1

(2.2)

16

CHAPITRE 2. UNE MESURE DE L'INFORMATION


Nous allons montrer que H(X) log2 K 0. On a
X
X
1
H(X) log2 K =
p(x) log2

p(x) log2 K
p(x)
x
x
X
1
=
p(x) log2
.
Kp(x)
x

En appliquant (2.2) z = 1/(Kp(x)), on obtient

H(X) log2 K

1
1
Kp(x)
x

!
X 1
X
log2 e
p(x) = 0,

K
x
x

log2 e

p(x)

avec galit si et seulement si 1/(Kp(x)) = 1 pour tout x.


L'ingalit est donc vrie, et il y a galit si et seulement si p(x) = 1/K pour tout x, c'est
dire si la loi de probabilit de X est uniforme.

Cette proposition est fondamentale, en eet c'est elle qui nous dit que l'entropie d'un espace
probabilis de taille 2L muni d'une loi uniforme est gale L bits.
Nous verrons dans le chapitre sur le codage de source que cela nous donne une borne infrieure
sur le nombre de symboles binaires ncessaires pour coder une source discrte l'aide d'un code
de taille xe. Cette borne sera gale au plus petit entier suprieur ou gal log2 K .

Thorme 2.8 Soit un espace probabilis joint discret XY . L'information mutuelle moyenne
I(X; Y ) de X et de Y vrie

I(X; Y ) 0,

avec galit si et seulement si X et Y sont statistiquement indpendants.

preuve: Montrons que I(X; Y ) 0. On a, en utilisant (2.2)


I(X; Y ) =

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

X
p(x)p(y)
log2 e
1
p(x, y)
p(x, y)
x,y

!
X
X
log2 e
p(x)p(y)
p(x, y)
p(x, y) log2

x,y

log2 e

X
x

x,y

p(x)

p(y) 1

!
= 0,

et il y a galit si et seulement si p(x)p(y)/p(x, y) = 1 pour tout couple (x, y).


L'ingalit est donc prouve et puisque x et y sont indpendants si et seulement si p(x, y) =
p(x)p(y), l'galit I(X; Y ) = 0 est vraie si et seulement si X et Y sont statistiquement indpendants.

Ce rsultat signie essentiellement que en moyenne le fait de connatre la valeur de y dans Y diminue toujours l'incertitude sur X , sauf si X et Y sont indpendants, auquel cas aucune information
n'est apporte.
Une autre version de cet rsultat relie l'entropie et l'entropie conditionnelle.

Proposition 2.9 Soit un espace probabilis joint discret XY .


H(X | Y ) H(X).
Interprt intuitivement ce rsultat nous indique que  le conditionnement rduit l'entropie .

Chapitre 3

Codage des sources discrtes


Nous nous intresserons dans ce chapitre au codage de la sortie d'une source discrte en une
squence binaire. Ce codage devra permettre de retrouver la squence de lettre de la source
partir du codage binaire. Nous verrons que le nombre minimal moyen de symboles binaires par
lettre est gal l'entropie de la source.
Dans de nombreux exemples pratique de codage de source, comme le code Morse, les lettres
les plus frquentes se voient attribuer les mots de code les plus courts. En Morse, la lettre 'e' est
reprsente par le mot '', alors que la lettre 'q', beaucoup moins frquente, est code par le mot
' '. De tels code sont dits de longueur variable. Notons que le code Morse n'est pas binaire,
il existe un troisime symbole ' ' en plus de '' et '' permettant de sparer les lettres (cet espace
est mme un peu plus long lorsqu'il spare des mots).

3.1 Codage d'un alphabet discret


Nous considrerons un alphabet X discret (ni ou inni
S dnombrable). Nous dsignerons par
X l l'ensemble des l-uplets de lettres de X et par X = l1 X l l'ensemble des squences nies
non vides de lettres de X . Nous dsignerons par {0, 1} l'ensemble des squences binaires nies.
Pour tout m X , nous noterons |m| sa longueur.

Dnition 3.1 Un codage d'un alphabet discret est une procdure qui associe chaque squence
nie de lettres une squence binaire nie.

Un codage est donc une application de X dans {0, 1} .

Dnition 3.2 Un code d'un alphabet discret est une procdure qui associe chaque lettre une
squence binaire appele mot de code.

Un code est donc une application de X dans {0, 1} , qui toute lettre x de X associe un mot
de code. un code donn, on peut associer le codage

{0, 1}
(x1 , . . . , x` ) 7 (x1 ) k k (x` )

(3.1)

o le symbole k reprsente la concatnation. En revanche, un codage n'est pas toujours associ


un code.

Dnition 3.3 (Code rgulier) Un code sera dit rgulier s'il est injectif (deux lettres distinctes
sont codes l'aide de deux mots de code distincts).
Dans toute la suite nous ne considrerons que des codes rguliers. De plus pour un code rgulier
le terme de code sera galement utilis pour dsigner l'ensemble des mots de code.
17

18

3.1.1

CHAPITRE 3. CODAGE DES SOURCES DISCRTES

Codage d'une source discrte sans mmoire

Dans le cas gnral, une source discrte sera un processus stochastique sur un alphabet X .
Lorsque ce processus est sans mmoire une source discrte X = (X , pX ) sera un espace probabilis
discret, c'est--dire un espace des preuves discret X , nous parlerons ici d'alphabet, muni d'une
distribution de probabilit pX . Nous parlerons de code ou de codage d'une source pour dsigner
un code ou un codage de son alphabet.

Dnition 3.4 Soit X = (X , pX ) une source discrte sans mmoire d'entropie H et soit un
code de X . La longueur moyenne de , note ||, est le nombre de symboles binaires utiliss en
moyenne pour coder une lettre de la source :
X
|| =
|(x)|pX (x),
xX

L'ecacit de est dnie par


E() =

H
.
||

Nous verrons que l'ecacit d'un code rgulier ne peut excder 1.

Ecacit d'un codage. Pour une source X sans mmoire et pour tout entier L > 0, nous
noterons X L la source d'alphabet X L munie de la loi produit. Nous noterons galement pX cette
loi. Soit un codage de X . Si la limite suivante
1
L L

L = lim

pX (x1 , . . . , xL ) |(x1 , . . . , xL )| ,

(x1 ,...,xL )X L

existe, elle sera gale au nombre moyen de symboles binaires par lettre pour coder une suite
de lettre de X . Cette grandeur, qui mesure la performance du codage sera appele longueur
moyenne par lettre. L'ecacit du codage sera dnie comme pour un code par

E() =

H(X)
.
L()

Dnie ainsi, l'ecacit d'un codage associ un code par (3.1) est gale l'ecacit de ce code.

3.1.2 Codes de longueur xe


Dnition 3.5 (Code de longueur xe) Un code de longueur xe est un code dont tous les
mots de code ont la mme longueur. On parlera de longueur du code.

Proposition 3.6 Soit un alphabet X de cardinal K . Il existe un code rgulier de X de longueur

n telle que

log2 K n < 1 + log2 K.

(3.2)

De plus, il n'existe aucun code rgulier de longueur n < log2 K .

preuve: Soit X = {x1 , . . . , xK }, si nous choisissons de coder xk par l'criture de k 1 en base 2,


cela ncessitera n symboles binaires, o n sera le plus petit entier tel que 2n K . On en dduit
facilement (3.2) en prenant le logarithme.
Rciproquement, soit n < log2 K , l'ensemble des squences binaires de longueur n a pour
cardinal 2n < K , il est donc exclus de faire correspondre chaque lment de X une squence
dirente.

L'ecacit d'un code de longueur n d'une source X d'alphabet X est gale H(X)/n. D'aprs
le Thorme 2.7, on a H(X) log2 K , donc d'aprs (3.2), on a E 1. De plus E = 1 n'est
possible qu' deux conditions :

3.1. CODAGE D'UN ALPHABET DISCRET

19

1. H(X) = log2 K , c'est--dire que les lettres de la source sont quiprobables.


2. n = log2 K , c'est--dire que le cardinal de l'alphabet est une puissance de 2.

Exemple: Soit une source dont l'alphabet est l'ensemble des chires dcimaux X = {0, 1, . . . , 9}
muni de la loi de probabilit uniforme. Le code de longueur xe d'une telle source a une
longueur au moins 4. Par exemple
lettre
0
1
2
3
4

mot de code
0000
0001
0010
0011
0100

lettre
5
6
7
8
9

mot de code
0101
0110
0111
1000
1001

L'ecacit de ce code est gale H(X)/4 = (log2 10)/4 0, 83. Il est clair que ce code n'est
pas optimal, puisque six mots binaires de longueur 4 sont inutiliss, donc ce code pourrait
tre utilis pour une source ayant un cardinal 16.
Il est cependant possible d'amliorer l'ecacit du codage en considrant non plus des chires
isols mais des paires de chires. Ainsi la source peut tre vue comme ayant pour alphabet
l'ensemble X 2 = {00, 01, . . . , 99} de cardinal 100. Si X est sans mmoire, la nouvelle source,
note X 2 reste munie d'une loi de probabilit uniforme, et son entropie vaut H(X 2 ) =
log2 100 = 2H(X).
La puissance de 2 immdiatement suprieure 100 est 27 = 128. Il existe donc un code
rgulier de X 2 de longueur 7. L'ecacit de ce code est cette fois gale H(X 2 )/7 =
(2 log2 10)/7 0, 95 ce qui est meilleur.
En considrant la source X 3 de 1000 lettres, codes en 10 symboles binaires, on obtient une
ecacit de 0, 996.
D'une faon gnrale, on peut considrer un code L de longueur xe de X L . D'aprs la Proposition 3.6 ce code permet d'obtenir une longueur moyenne par lettre

|L |
1
< + log2 K.
L
L
C'est--dire que pour une source sans mmoire, on peut atteindre une ecacit arbitrairement
proche de H(X)/ log2 K . Si la source est uniforme (H(X) = log2 K ), l'ecacit peut s'approcher
de 1. Dans les autres cas ce n'est pas possible avec des codes de longueur xe.

3.1.3 Codes de longueur variable


a-

Codes dcodage unique - Codes prxes

Il existe deux mthodes simples pour obtenir un code permettant de sparer deux mots de code
conscutifs :
1. Utiliser un code de longueur xe n, auquel cas la squence binaire reue est dcoupe en
blocs de n symboles binaires qui seront dcods sparment.
2. Utiliser, comme pour le Morse, un symbole supplmentaire entre deux mots. Dans un tel cas,
tout se passe comme si l'alphabet de sortie du codeur tait augment d'une unit. Ainsi le
code Morse peut tre considr comme un code ternaire et non binaire. Le troisime symbole
servant de sparateur.
Le cas des codes de longueur variable est plus problmatique en ce qui concerne le dcoupage
des mots. Puisque deux mots conscutifs ont priori des longueurs direntes, il faut concevoir
des codes permettant la sparation sans ambigut des mots de code.

Dnition 3.7 (Code dchirable) Un code est dit dchirable ou dcodage unique si son

codage associ est injectif.

20

CHAPITRE 3. CODAGE DES SOURCES DISCRTES

Cette dnition signie qu'il existe au plus une squence de lettres de l'alphabet ayant permis
d'obtenir une squence binaire donne.
Il existe une condition susante, dite du prxe, pour qu'un code soit dchirable.

Condition du prxe. Un code vrie la condition du prxe si aucun mot de code n'est le
dbut d'un autre mot de code.

Dnition 3.8 (Code prxe) Un code est dit prxe s'il vrie la condition du prxe.
Proposition 3.9 Tout code prxe est dchirable.
Comme le montre l'exemple suivant, la condition du prxe est une condition susante mais non
ncessaire pour qu'un code soit dchirable.

Exemple: L ;alphabet {a1 , a2 , a3 } est code par a1 1, a2 10, a3 100. Les mots de codes
peuvent tre dcoups en introduisant une sparation avant chaque '1' dans la squence
binaire, ce code est donc dchirable. Il n'est pourtant pas prxe.

b-

Reprsentation des codes prxes par des arbres

Il est commode de reprsenter un code l'aide d'un arbre binaire. Nous ne dnirons pas ici
les termes branche, nud, feuille, racine, ls, pre, qui auront leur signication usuelle. Les arbres
que nous considrons ont les proprits suivantes :
 chaque branche a pour attribut un des symboles binaires 0 ou 1,
 deux branches partant du mme nud ont des attributs dirents,
 chaque nud a pour attribut la concatnation des attributs des branches reliant la racine
ce nud.
De plus, nous appellerons ordre d'un nud ou d'une feuille le nombre de branches le sparant de
la racine.

Exemple:

Pour reprsenter l'ensemble des squences binaire de longueur infrieure ou gale


3 nous utilisons l'arbre :
0 ((r000
((
(h
r(
h

hhh
0 00
hr001

rP

0 PP
(r010
0
0
1 PP
((((
P(
r h
h

hhh

hr011
01
1

r
Q
(r100
0 (
Q
(((
(
r
h
Q

hhh
hr101
1Q
1
0 10
Q
rP
Q
1 PP
(r110
(0 ((
1 PP
P(
r (
h
hhhh
hr111
11
1

Pour reprsenter un code rgulier, nous utiliserons le plus petit arbre contenant tous les mots
de code, appel arbre du code.

Exemple:

Considrons l'alphabet {a1 , a2 , a3 , a4 }, et les trois codes suivants

a1
a2
a3
a4

code 1
m1 = 00
m2 = 01
m3 = 10
m4 = 11

code 2
m1 = 00
m2 = 01
m3 = 001
m4 = 011

code 3
m1 = 0
m2 = 10
m3 = 110
m4 = 111

3.1. CODAGE D'UN ALPHABET DISCRET

21

r m 1
0

r
X
XXX
XXXr
0
1
m2

rH

HH
H

L'arbre du code 1 est donn par

r
0 m3
HH

H
r
X
XXX
XXXr
1
m4

L'arbre du code 2 est donn par

r h
h

hhh
0
m1
hr m 3

rP

0 PP
1 PP
Ph
r hh

hh
m2
r

hr m 4
1
rm
1

Et pour le code 3 l'arbre est

r
Q

r m2

Q
Q
rP
PP
(r m3
0 (
1 PP
(((
P(
rhh
hhh
hr m4
1

1Q

Nous constatons que pour les codes 1 et 3, qui sont prxes, les mots de code sont exactement
les feuilles de l'arbre, alors que pour le code 2 qui n'est pas prxe, les mots de code m1 et
m2 sont  l'intrieur  de l'arbre.
Il existe une caractrisation simple des arbres des codes prxes :

Proposition 3.10 Un code est prxe si et seulement si les feuilles de son arbre sont exactement
ses mots de code.

preuve: Dire qu'un mot de code est une feuille est quivalent dire qu'il n'est pas le prxe d'un
autre mot de code.

Dnition 3.11 Un code prxe est dit irrductible si les nuds de son arbre ont 0 ou 2 ls.
Proposition 3.12 Soit un code prxe de X . Il existe un code prxe irrductible f tel que
|f (x)| |(x)| pour tout x X .
Peuve en exercice.

c-

Thormes de Kraft et McMillan

Il existe des conditions ncessaires et susantes pour l'existence de codes prxes et dchiffrables. Pour les codes prxes, il s'agit d'une proprit classique des arbres (ingalit de Kraft).
Le rsultat reste vrai pour un code dchirable (Thorme de Mac Millan).

Lemme 3.13 Soit un arbre binaire dont les K feuilles ont pour ordre n1 , . . . , nK . Alors
K
X

2nk 1.

k=1

preuve: Nous dnissons le poids de chaque nud de l'arbre de la faon suivante :

22

CHAPITRE 3. CODAGE DES SOURCES DISCRTES


 le poids d'une feuille d'ordre i est gal 2i ,
 le poids d'un nud qui n'est pas une feuille est la somme des poids de ses ls.
1. Le poids d'un nud d'ordre i est infrieur ou gal 2i .
Sinon, l'un de ses ls (d'ordre i + 1) aurait un poids > 2(i+1) , et par rcurrence, il existerait
au moins une feuille de poids > 2h , o h est l'ordre de cette feuille. Ceci serait contradictoire
avec la dnition du poids.
2. Le poids de la racine de l'arbre est gal la somme des poids de ses feuilles.

La racine de l'arbre est un nud d'ordre 0 et a donc un poids 1, ce qui nous donne l'ingalit
recherche.

Lemme 3.14 Soit un arbre binaire dont les K feuilles ont pour ordre n1 , . . . , nK avec m =
max(n1 , . . . , nK ). Alors

K
X

!
nk

>0

k=1

K
X

!
nk

k=1

preuve: En reprenant les notations de l'nonc

K
X

nk

>0

k=1

K
X

!
mnk

>0

k=1

Puisque pour tout k , m nk , le terme de gauche de l'ingalit de droite est entier, donc

!
!

K
K
K
X
X
X
nk
m
mnk
nk
m
1
2
>0 2
2
1 1
2
2
.
k=1

k=1

k=1

Thorme 3.15 (ingalit de Kraft) Il existe un code prxe de K mots de longueurs n1 , . . . , nK


si et seulement si l'ingalit

K
X

2nk 1,

(3.3)

k=1

est satisfaite.

preuve:
1. Soit un code prxe de K mots de longueurs n1 , . . . , nK , les mots de ce code sont exactement
les feuilles de son arbre. D'autre part la longueur d'un mot est exactement gale l'ordre
du nud le reprsentant dans l'arbre. Donc l'aide du Lemme 3.13, on a (3.3).
2. Soient des entiers 1 n1 . . . nK1 nK vriant (3.3), montrons par rcurrence sur
K qu'il existe un arbre binaire dont les K feuilles ont pour ordre n1 , . . . , nK .
(a) Si K = 1, l'arbre dgnr suivant de profondeur n1 convient :
1

n1 1

r
r
r
...
(b) En enlevant la dernire longueur nK , nous avons
K1
X

n1

2nk < 1

k=1

donc, d'aprs le Lemme 3.14,


K1
X
k=1

2nk + 2nK1 =

K2
X
k=1

2nk + 21nK1 1

3.2. LE PREMIER THORME DE SHANNON

23

On en dduit, par hypothse de rcurrence, qu'il existe un arbre dont les feuilles ont pour
profondeurs n1 , . . . , nK2 , nK1 1. Nous dotons la feuille profondeur nK1 1 de
deux ls pour obtenir un arbre K feuilles de profondeurs n1 , . . . , nK2 , nK1 , nK1 .
Si nK > nK1 il sut de rallonger l'un des ls.
nK1

r
X
XXX
XXr

nK1 1

nK

...

D'aprs la Proposition 3.10 cela sut montrer qu'il existe un code prxe de K mots
de longueur n1 , . . . , nK .

Il existe un rsultat similaire plus fort du Mac Millan.

Thorme 3.16 (de Mac Millan) Il existe un code dchirable de K mots de longueurs n1 , . . . , nK
si et seulement si l'ingalit

K
X

2nk 1,

(3.4)

k=1

est satisfaite.

preuve: Si l'ingalit est satisfaite, alors il existe un code prxe donc un code dchirable avec
les bonnes longueurs.
Rciproquement, soit X un alphabet de cardinal K , soit un code dchirable de X et soit
son codage associ. Pour tout L-uplet (x1 , . . . , xL ) X L , nous avons (x1 , . . . , xL ) = (x1 ) k
. . . k (xL ) et donc |(x1 , . . . , xL )| = |(x1 )| + . . . + |(xL )|. Donc

!L
2|(x)|

X
x1

2|(x1 )| . . . 2|(xL )|

xL

2|(x1 ,...,xL )|

(x1 ,...,xL )

mL
X

aL (i)2i

i=1

o m = maxxX `(x) et aL (i) est le nombre de L-uplet de X L dont le codage est de longueur i
exactement. Le code est dchirable, donc pour tout i, nous avons aL (i) 2i (sinon il existerait
au moins 2 L-uplets ayant la mme image par ). Nous en dduisons que pour tout L
X
2|(x)| (mL)1/L .
x

D'o l'ingalit recherche en faisant tendre L vers l'inni.

Il est essentiel de noter que le Thorme 3.15 comme le Thorme 3.16 sont non constructifs.
Ils nous donnent un rsultat sur l'existence de codes dont les longueurs des mots de codes vrient
(3.4), mais ne prtendent pas que tout code dont les longueurs vrient l'ingalit (3.4) est prxe
(ou dchirable).

3.2 Le premier thorme de Shannon pour une source discrte sans mmoire
Thorme 3.17 Soit X une source discrte sans mmoire d'entropie H .

24

CHAPITRE 3. CODAGE DES SOURCES DISCRTES

1. Tout code dchirable de X vrie || H .


2. Il existe un code prxe de X tel que || < H + 1.

preuve: Soit X = (X , p) une source discrte sans mmoire d'entropie H .


1. Soit un code dchirable de X . Montrons que H || 0.

H ||

X
1

p(x)|(x)|
p(x)
xX
xX

X
1
+ log2 2|(x)|
=
p(x) log2
p(x)
=

p(x) log2

xX

p(x) log2

xX

D'aprs (2.2) page 15, nous en dduisons

H || = (log2 e)

2|(x)|
p(x)

|(x)|

xX

!
p(x)

xX

en appliquant le Thorme 3.16 de Mac Millan.


2. Pour tout x X , nous notons `(x) l'unique entier vriant

2`(x) p(x) < 2`(x)+1 .

(3.5)

En sommant l'ingalit de gauche nous obtenons


X
2`(x) 1,
xX

ce qui nous assure d'aprs le Thorme 3.15 de Kraft qu'il existe un code prxe dont les mots
ont pour longueurs `(x), x X . Soit un tel code, nous pouvons, sans perte de gnralit,
supposer que |(x)| = `(x) pour tout x.
En prenant le logarithme de l'ingalit de droite de (3.5), nous obtenons

log2 p(x) < `(x) + 1,


soit encore

|(x)| = `(x) < log2

1
+ 1.
p(x)

En passant la moyenne, nous obtenons

|| =

p(x)|(x)| <

p(x) log2

1
+ 1 = H + 1.
p(x)

L'ecacit E du code prxe produit par ce thorme vriera

1
< E 1.
H +1

Cela nous montre que l'ecacit ne peut pas excder 1. Cela ne sut pourtant prouver l'existence
de codages dont l'ecacit s'approche arbitrairement de 1.
Pour obtenir de tels codages, il sera ncessaire, comme pour les codes de longueur xe, d'effectuer le codage par blocs de lettres.

3.3. UNE PROCDURE OPTIMALE DE CODAGE

25

Thorme 3.18 (Premier thorme de Shannon) Pour toute source discrte sans mmoire,
il existe un codage dchirable dont l'ecacit est arbitrairement proche de 1.

preuve: En terme mathmatiques le thorme s'nonce :


Pour toute source discrte sans mmoire, pour tout rel > 0, il existe un codage
dchirable dont l'ecacit est strictement suprieure 1 .
Soit X une source discrte sans mmoire. Soit l > 0, pour tout entier i tel que l i > 0, nous
appliquons le Thorme 3.17 la source X i pour obtenir un code prxe i de la source produit
X i tel que iH |i | < iH + 1.
Pour coder un mot x de L = ml + r lettres, o 0 < r l, nous allons le dcouper en m blocs
de l lettres de X , nots x1 , . . . , xm+1 et un bloc de rlettres de X , not xm . Le codage du L-uplet
sera

l (x) = l (x1 ) k k l (xm ) k r (xm+1 ).


Ce codage est injectif (preuve laisse en exercice) et va ncessiter |l (x1 )| + + |l (xm )| +
|r (xm+1 )| symboles binaires pour les L lettres. En passant la moyenne, le nombre de symboles
binaires pour coder un L-uplet sera

m|l | + |r | (lm + r)H + m + 1 = LH + 1 +

L
,
l

et la longueur moyenne par lettre du codage l sera

L(l ) = lim

m|l | + |r |
1
H+ .
L
l

(3.6)

Et donc l'ecacit de ce codage vrie

E(l )

H
1
=1
.
H + 1/l
lH + 1

Pour > 0 x, ds que l 1/(H) nous aurons E(l ) > 1 .

3.3

Une procdure optimale de codage

3.3.1 Dnition du code de Human


Un code de Human d'une source X = (X , p) est un code prxe dni rcursivement sur la
taille K de son alphabet.
1. K = 2. Le code sera l'ensemble {0, 1}.
2. K > 2. Soit X = {a1 , . . . , aK1 , aK }
Human de X sera dni par

(ak ) =

(aK1 ) =

(aK ) =

avec p(a1 ) . . . p(aK1 ) p(aK ). Un code de

(bk )
(bK1 ) k 0
(bK1 )) k 1

si k K 2

o est un code Human de la source Y = (Y, q), avec Y = {b1 , . . . , bK1 } et

q(bk ) = p(ak )
si k K 2
q(bK1 ) = p(aK1 ) + p(aK )

26

CHAPITRE 3. CODAGE DES SOURCES DISCRTES

3.3.2

Le code de Human est optimal

Dnition 3.19 Un code dchirable d'une source est dit optimal s'il n'existe aucun code dchiffrable de cette source dont la longueur moyenne soit strictement infrieure.
Lemme 3.20 Soit f un code d'une source X = (X , p). Soient u et v deux lettres de X , non
ncessairement distinctes, telles que p(u) p(v) et |f (u)| |f (v)|, alors le code g dni par
g(u) = f (v), g(v) = f (u) et g(x) = f (x), x 6 {u, v}, vrie |g| |f |.
preuve: Nous avons

|f | |g| = (p(v) p(u))(|f (v)| |f (u)|) 0.

Lemme 3.21 Soit une source X = (X , p) telle que X = {a1 , . . . , aK1 , aK } avec p(a1 ) . . .
p(aK1 ) p(aK ). Il existe un code prxe optimal f tel que f (aK1 ) = m k 0 et f (aK ) = m k 1.

preuve: Soit g un code prxe optimal de X . D'aprs la Proposition 3.12, on peut supposer qu'il

est irrductible.
Soit m un prexe d'un mot de code de longueur maximale, le code est irrductible, donc m k 0
et m k 1 sont des mots de code (de longueur maximale).
Soit u dans X tel que g(u) = m k 0. Le code h est obtenu partir de g en changeant les
images de u et aK1 . Soit v dans X tel que h(v) = m k 1. Le code f est obtenu partir de h en
changeant les images de v et aK . D'aprs le Lemme 3.20, nous avons |f | |h| |g| donc f est
optimal et nous avons bien f (aK1 ) = m k 0 et f (aK ) = m k 1.

Proposition 3.22 Le code de Human d'une source est optimal.


preuve: Nous reprenons les notations de la description des codes de Human. Soit f un code
prxe optimal de X vriant le Lemme 3.21. Soit g le code de Y dni par

g(bk ) = f (ak ) si k K 2
g(bK1 ) = m

Nous avons |f | |g| = || || = q(bK1 ). Si n'est pas optimal, alors |f | < ||, donc |g| < ||,
et donc n'est pas optimal. Donc par contrapose, si est optimal alors est optimal. Pour
K = 2, le code de Human est optimal, donc, par rcurrence, tout code de Human est optimal.

3.4 Autres algorithmes de codage de source  Code arithmtique


Avant que Humann ne propose une mthode optimale, d'autres techniques avaient t proposes. Si elle ne sont pas aussi ecaces pour une source nie de petite taille, leur gnse est
nanmoins intressante. En particulier, elles contiennent les ides qui ont conduit au codage arithmtique.

3.4.1 Prliminaires : dveloppements 2-adiques


Tout nombre rel x de l'intervalle [0, 1[ peut s'crire

x=

X
i=1

di 2i , o di {0, 1}.

P
Cette criture n'est pas unique car 2 = i>j 2i . Si on impose que la suite des di contient une
innit de 0 (c'est--dire ne vaut pas 1 au del d'un certain rang), alors l'criture devient unique,
on appellera dveloppement 2-adique la suite correspondante. Nous noterons D` (x) = (d1 , . . . , d` )
les ` premiers bits du dveloppement 2-adique de x.
j

3.4. AUTRES ALGORITHMES DE CODAGE DE SOURCE  CODE ARITHMTIQUE

27

Lemme 3.23 Soient u et v deux rels dans [0, 1[, soit un entier ` > 0. Si D` (u) = D` (v) alors
|u v| < 2` .

preuve: Soient
u=

ui 2i et v =

i>0

vi 2i .

i>0

Si les dveloppements sont gaux l'ordre `, alors

X
X
X

i
|ui vi | 2i
2i = 2` .
|u v| = (ui vi )2

i>`

i>`

i>`

L'galit |u v| = 2` implique que tous les ui vi ont la mme valeur (1 ou -1) et donc que l'une
des suites terminerait par des 1, ce qui est interdit. Donc |u v| < 2` .

3.4.2

Code de Shannon-Fano-Elias

Soit une source discrte sans mmoire X = (X , p). Nous supposerons que p(x) > 0 pour tout
x. Soit un code dchirable de X .
Si la longueur |(x)| du mot de codant x est proche de l'information propre I(x) = log2 p(x)
de x, alors la longueur moyenne || du code sera proche de la moyenne de l'information propre,
c'est--dire l'entropie.
L'ide est de construire un code prexe (donc dchirable) dans lequel le mot codant x aura
une longueur  pas trop suprieure  log2 p(x).
Nous munissons l'alphabet X d'une relation d'ordre total note <. Pour tout x dans X nous
noterons
X
p(x)

S(x) =
p(x0 ), S(x)
=
+ S(x) et `(x) = d log2 p(x)e .
2
0
x <x

Proposition 3.24 (code de Shannon-Fano-Elias) Soit le code dni pour tout x X par

(x) = D`(x)+1 (S(x))


.
1. Le code est prxe.
2. || < H(X) + 2.

preuve:
1. Soient x et y distincts dans X . Montrons que (x) n'est pas un prxe de (y).
Nous pouvons supposer que `(x) `(y) (sinon (x) est plus long que (y) et ne peut pas
tre son prxe).
Si y > x, nous avons

S(y)
S(x)

X
X
p(y)
p(x)
+
p(x0 )

p(x0 )
2
2
0
0

X
p(y) p(x)

+
p(x0 )
2
2
0

x <y

x <x

xx <y

=
>

X
p(y) p(x)
+
+
p(x0 ) > max
2
2
x<x0 <y

max 2`(y)1 , 2`(x)1

p(y) p(x)
,
2
2

Si x > y , nous montrons de la mme manire que S(x)


S(y)
> max 2`(y)1 , 2`(x)1 .
Et donc, puisque `(x) `(y)

> max 2`(x)1 , 2`(y)1 = 2`(x)1 .


S(x)
S(y)

28

CHAPITRE 3. CODAGE DES SOURCES DISCRTES


Le Lemme 3.23 nous permet de conclure que (x) et (y) ne coincident pas sur leurs `(x) + 1
premiers bits. Donc (x), qui est de longueur `(x) + 1, n'est pas prxe de (y).
2. Pour tout x, nous avons |(x)| = `(x) + 1 < log2 p(x) + 2. En passant la moyenne,
|| < H(X) + 2.

Exemple:
x
a
b
c
d
e
f

p(x)
0.43
0.17
0.04
0.22
0.09
0.05

`(x)
2
3
5
3
4
5

0.215
0.515
0.620
0.750
0.905
0.975

S(x)
0.0011011 . . .
0.1000001 . . .
0.1001111 . . .
0.1100000 . . .
0.1110011 . . .
0.1111100 . . .

r
1
rX

1
X

Xr

0X
rX
XX
1
0 XrXX

rH
Xr
0X

1
HH

r
0 HrX
1 r
HH
XX

XrX
0
XX
0H
HrH
0 Xr
HH
1
r
0 Hr

(x)
001
1000
100111
1100
11100
111110
1
0
1

r
r
r

Human
0
110
11111
10
1110
11110

On constate que ce code n'est pas optimal. Il est bien prxe, mais son arbre possde de
nombreux nuds avec un seul ls.
On notera galement qu'en retirant le dernier symbole, le code n'est plus prxe.
Il n'existe pas de transformation simple permettant de rendre ce code optimal. Toutefois, il
existe une variante (probablement due Shannon) qui amliore la longueur moyenne.

Proposition 3.25 L'ordre sur X est celui des probabilits dcroissantes. Soit le code dni pour
tout x X par (x) = D`(x) (S(x)).
1. Le code est prxe.
2. || < H(X) + 1.

preuve:
1. Soient x < y dans X , nous avons |(x)| = `(x) `(y) = |(y)| car p(x) p(y). Montrons
que (x) n'est pas un prxe de (y).

S(y) S(x) = p(x) +

p(x0 ) p(x) 2`(x)

x<x0 <y

Le Lemme 3.23 nous permet de conclure que (x) et (y) ne coincident pas sur leurs `(x)
premiers bits. Donc (x), qui est de longueur `(x), n'est pas prxe de (y).
2. Pour tout x, nous avons |(x)| = `(x) < log2 p(x) + 1. En passant la moyenne, || <
H(X) + 1.

Exemple:

avec la mme source, nous obtenons

3.4. AUTRES ALGORITHMES DE CODAGE DE SOURCE  CODE ARITHMTIQUE

x
a
b
c
d
e
f

p(x)
0.43
0.22
0.17
0.09
0.05
0.04

`(x)
2
3
3
4
5
5

0.00
0.43
0.65
0.82
0.91
0.96

S(x)
0.0000000 . . .
0.0110111 . . .
0.1010011 . . .
0.1101001 . . .
0.1110100 . . .
0.1111011 . . .

Ce code est meilleur, mais toujours pas optimal.

(x)
00
011
101
1101
11101
11110

Human
0
10
110
1110
11110
11111

29

30

CHAPITRE 3. CODAGE DES SOURCES DISCRTES

Chapitre 4

Les squences typiques et l'AEP


4.1 Sources discrtes stationnaires
Dans le cas gnral, une source discrte produit des lettres d'un alphabet selon une loi de
probabilit qui peut voluer au cours du temps. Pour modliser une source nous utiliserons un
processus stochastique, c'est--dire une suite X1 , X2 , . . . , Xn , . . . de variables alatoires valeur
dans X (cf. 2.2).
Pour tout L > 0, nous pouvons dnir l'entropie des L premires lettres par
X
H(X1 , . . . , XL ) =
Pr[X1 = x1 , . . . , XL = xL ] log2 Pr[X1 = x1 , . . . , XL = xL ]
x1 ,...,xL

En divisant cette quantit par L, nous obtenons la quantit d'information moyenne fournie par
chacune des L premires lettre de la source. Ce qui nous conduit la dnition suivante, valable
pour tout processus stochastique.

Dnition 4.1 Soit un processus stochastique (X1 , . . . , Xn , . . . ). Son entropie par lettre est d-

nie par

H(X ) = lim

1
H(X1 , . . . , XL ),
L

si cette limite existe.


En pratique nous nous intresserons plus particulirement aux sources stationnaires, c'est--dire
que les probabilits du processus associ sont inchanges si on dcale l'observation dans le temps :

Pr[X1 = x1 , X2 = x2 , . . . , XL = xL ] = Pr[X1+ = x1 , X2+ = x2 , . . . , XL+ = xL ].


Pour un processus stochastique nous pourrons noter p la distribution de probabilit et utiliser sans
ambigut la notation
p(x1 , . . . , xL ) = Pr[X1 = x1 , . . . , XL = xL ].
L'entropie conditionnelle sera dnie par :
X
p(x1 , . . . , xL ) log2 p(xL | x1 , . . . , xL1 )
H(XL | X1 , . . . , XL1 ) =
x1 ,...,xL

Cette grandeur reprsente la quantit moyenne d'information supplmentaire apporte par l'occurence de la L-ime lettre. Nous allons voir que cette quantit converge pour une source stationnaire
et qu'elle est gale l'entropie par lettre.

Proposition 4.2 L'entropie par lettre de tout processus stochastique stationnaire ((Xi )i>0 , p) est
dnie, de plus elle est gale
H(X ) = lim H(XL | X1 , . . . , XL1 ).
L

31

32

CHAPITRE 4. LES SQUENCES TYPIQUES ET L'AEP

preuve:
1. Montrons d'abord que limL H(XL | X1 , . . . , XL1 ) existe pour un processus stationnaire.
D'aprs la Proposition 2.9, le conditionnement rduit l'entropie, donc pour tout L

H(XL | X1 , . . . , XL1 ) H(XL | X2 , . . . , XL1 ) = H(XL1 | X1 , . . . , XL2 )


Ainsi, la suite (H(Xi | X1 , . . . , Xi1 ))i>0 est dcroissante. Comme elle est positive, elle est
convergente.
2. Pour tout L > 0, nous avons

p(x1 , . . . , xL ) =
p(x1 , . . . , xL1 ) =

p(xL | x1 , . . . , xL1 )p(x1 , . . . , xL1 ),


X
p(x1 , . . . , xL ).
xL

Nous en dduisons que

H(X1 , . . . , XL ) = H(XL | X1 , . . . , XL1 ) + H(X1 , . . . , XL1 ),


et donc

H(X1 , . . . , XL ) =

L
X

H(Xi | X1 , . . . , Xi1 ).

i=1

Un rsultat classique d'analyse (lemme de Csaro) nous permet de conclure que comme
(H(Xi | X1 , . . . , Xi1 ))i>0 converge, c'est le cas aussi de ( 1i H(X1 , . . . , Xi ))i>0 , de plus ces
limites sont identiques.

Entropie d'un processus markovien irreductible invariant dans le temps. Soit ((Xi )i>0 , p)
un processus markovien irreductible invariant dans le temps d'ordre 1. Soit (x), x X sa distribution stationnaire. Son entropie par lettre est gale
X
H(X ) = lim H(XL | XL1 ) =
(x)p(x0 | x) log2 p(x0 | x).
L

x,x0

Si le processus est stationnaire la situation est plus simple car alors sa distribution initiale est gale
la distribution stationnaire et donc H(X ) = H(X2 | X1 ). Autrement dit, il sut de remplacer
(x) par p(x) dans la formule.

4.2

Les squences typiques

Dans cette section, nous considrons un processus stochastique sur un alphabet X .

Dnition 4.3 (squences typiques) Soit un processus stochastique sur un alphabet X pour
lequel l'entropie par lettre H est dnie. Pour tout entier n > 0 et tout rel > 0 nous dnissons

1
(n)
n 1

H .
A = (x1 , . . . , xn ) X , log2
n
Pr[X1 = x1 , . . . , Xn = xn ]
(n)

Lorsque est petit et que n est grand, les lments de A sont les n-uplets que l'on s'attend
voir produire par la source. Il faut noter que les squences les plus probables ne sont pas forcment
typiques.
Exemple: Si on considre une source binaire produisant des 0 avec une probabilit 2/3 et des 1
avec une probabilit 1/3, la squence ne comportant que des 1 est peu probable et n'est pas
typique, en revanche la squence ne comportant que des 0, bien qu'tant la plus probable,
n'est pas typique.
Les squences typiques seront celles qui comportent environ 1/3 de 1.

4.2. LES SQUENCES TYPIQUES

33

Les squences typiques sont un outil technique permettant de dmontrer facilement des rsultats diciles de thorie de l'information. En pratique, pour une source ayant un comportement
raisonnable (stationnaire, markovien, . . . ), la probabilit d'observer une squence typiques (pour
n susamment grand) tend vers 1. Cette proprit sur la mesure des ensembles de squences
typiques est appele AEP (Asymptotic Equipartition Property). Il s'agit de la proprit minimale
pour noncer le premier thorme de Shannon.

Dnition 4.4 (Asymptotic Equipartition Property) Un processus stochastique (une source)

vrie l'AEP si pour tout > 0

lim Pr[A(n)
] = 1.

Proposition 4.5 Pour toute source vriant l'AEP


1
1
log2
= H avec une probabilit 1.
n
Pr[X1 = x1 , . . . , Xn = xn ]
1
(ii) lim lim log2 |A(n)
|=H
0 n n

(i) lim

Autrement dit, pour n assez grand et > 0 assez petit

 Il existe 2nH squences typiques de longueur n qui sont quiprobables de probabilit 2nH 

preuve: (informelle)
(i) Soit > 0, pour tout n nous avons par dnition

1
log2
H
n
Pr[X1 = x1 , . . . , Xn = xn ]
(n)

avec une probabilit Pr[A ]. Si la source vrie l'AEP, nous en dduisons que

H lim inf
n

1
1
log2

n
Pr[X1 = x1 , . . . , Xn = xn ]
1
1
lim sup log2
H+
Pr[X1 = x1 , . . . , Xn = xn ]
n n

avec une probabilit 1. En faisant tendre vers 0, nous obtenons la proprit souhaite.

(ii) Soient > 0 et n un entier. Nous avons


X

n(H+)

|A(n)
|2

Pr[X1 = x1 , . . . , Xn = xn ] = Pr[A(n)
] 1,
(n)

(x1 ,...,xn )A
(n)

et donc |A | 2n(H+) . Inversement


X
n(H)
Pr[A(n)
Pr[X1 = x1 , . . . , Xn = xn ] |A(n)
,
]=
|2
(n)

(x1 ,...,xn )A
(n)

(n)

et donc |A | Pr[A ]2n(H+) . En prenant le logarithme

H+
H lim inf
n

1
1
log2 Pr[A(n)
log2 |A(n)
]
|H+
n
n
1
1
log2 |A(n)
log2 |A(n)
| lim sup
| H + .
n
n n

De nouveau, le rsultat est obtenu en faisant tendre vers 0.

34

CHAPITRE 4. LES SQUENCES TYPIQUES ET L'AEP

4.3

Thorme de Shannon

Soit un codage d'une source sur X vriant l'AEP d'entropie par lettre H. La longueur
moyenne par lettre de est dnie comme prcdemment comme la limite

1
n n

L() = lim

Pr[X1 = x1 , . . . , Xn = xn ] |(x1 , . . . , xn )| ,

(x1 ,...,xn )X n

si celle-ci existe. Dans ce cas l'ecacit du codage est gal

E() =

H
.
L()

Thorme 4.6 Soit une source vriant l'AEP.


1. Tout codage rgulier de cette source un ecacit 1
2. Il existe un codage dchirable de cette source d'ecacit arbitrairement proche de 1.

preuve: Soit une source vriant l'AEP, nous notons X son alphabet et p sa distribution de
probabilit.
1. Pour n x, d'aprs les rsultats sur les sources sans mmoire, la restriction de tout codage
rgulier de X X n doit vrier

1 X
1
Pr[X1 = x1 , . . . , Xn = xn ]|(x1 , . . . , xn )| H(X1 , . . . , Xn ),
n x ,...,x
n
1

en passant la limite n nous obtenons L() H.


2. Soit > 0. Pour tout entier n, soient
(a) Fn un code de longueur xe minimale de X n
(n)

(b) Gn, un code de longueur xe minimale de A .


(c) n, un code de X n dni par

(n)
0 k Gn, (x1 , . . . , xn ) si (x1 , . . . , xn ) A
n, (x1 , . . . , xn ) =
1 k Fn (x1 , . . . , xn )
sinon
Les longueurs moyenne de ces codes sont (de la partie entire par excs)

|Fn |
|Gn, |

= dn log2 |X |e
= dlog2 |A(n)
|e

|n, |

(n)
= 1 + Pr[A(n)
]|Gn, | + |(1 Pr[A ])|Fn |

Soit L = qn + r avec 0 r < n. Tout mot (x1 , . . . , xL ) de X L est dcoup en q mots de


X n not x1 , . . . , xq et un mot de X r not xq+1 . L'image de (x1 , . . . , xL ) par n, de X est
dnie par
n, (x1 , . . . , xL ) = n, (x1 ) k k n, (xq ) k Gr (xq+1 )
En faisant tendre L vers l'inni, nous obtenons L(n, ) = |n, |/n. Nous en dduisons que
pour tout > 0
lim L(n, ) H + .
n

Par un choix appropri de puis de n, cela nous permet de dnir un codage de longueur
moyenne arbitrairement proche de H c'est--dire d'ecacit arbitrairement proche de 1.

Toute source sans mmoire vrie l'AEP et donc vrie le thorme de Shannon (nous l'avons
montr directement). Ce sera le cas galement des processus markoviens.

4.3. THORME DE SHANNON

35

Proposition 4.7 Toute source markovienne irreductible invariante dans le temps vrie l'AEP.
Le cas le plus gnral dans lequel le thorme de Shannon sera vri, est celui des sources ergodiques. Nous n'en donnerons pas de dnition formelle, mais intuitivement un processus stochastique sur X est ergodique si l'on peut compltement dterminer la loi de probabilit par
l'observation d'une instance du processus (i.e. une suite innie de lettre de X ). Un processus
ergodique vrie la loi des grand nombres, c'est--dire qu'en attendant susamment longtemps
on observera un  comportement moyen  conforme se que l'on pouvait prvoir (i.e. toutes les
squences  observables  susamment longues sont typiques).

36

CHAPITRE 4. LES SQUENCES TYPIQUES ET L'AEP

Chapitre 5

Codage de source universel


Le codage de source universel fait rfrence aux techniques de codage de source n'utilisant
aucune connaissance a priori des statistiques de la source. Il peut s'agir de mthodes adaptatives
(Humann, codage arithmtique), dans lesquelles le codage un instant donn se fait en fonction des probabilits connues ce stade, ou bien de mthodes dites  par dictionnaire  (toutes
les variantes de Lempel-Ziv), dans lesquelles chaque mot est remplac par son indice dans un
dictionnaire (mis jour en permanence).
Le chapitre ci-aprs n'est pas exhaustif. Sont dcrits l'algorithme de Human adaptatif ansi
que deux variantes de l'algorithme de Lempel-Ziv. Il existe de nombreux autres algorithmes :
codage arithmtique adaptatif, transforme de Burrows-Wheeler (bzip), ou le LZMA ( LempelZiv-Markov chain-Algorithm , 7-zip) qui ne seront pas dcrits ici.

5.1 Algorithme de Humann adaptatif


Une premire approche consisterait imaginer un algorithme en deux passes, la premire pour
obtenir les statistiques sur les frquences d'apparition des lettres dans le texte compresser, et
la seconde pour coder le texte partir de l'arbre ainsi construit. Au del des deux passes qui
poseront souvent des problmes, il sera ncessaire de transmettre en plus du chier cod l'arbre
ayant permis de coder le chier, ce qui sera souvent inecace. En pratique, on prfrera coder la
n + 1-me lettre d'un texte l'aide d'un code de Human obtenu partir des statistiques mesures
pour les n premires lettres.
Par exemple, supposons que nous ayons dj lu n caractres dans le texte, correspondant
K 1 lettres distinctes.
 nous fabriquons Xn une source de K lettres forme des K 1 lettres dj apparues auxquelles
on attribue une probabilit proportionnelle au nombre d'occurences, et d'une K -me lettre
 fourre-tout  (vide) laquelle on attribue la probabilit 0,
 on construit un code de Human Tn de cette source,
 la n + 1-me lettre est lue et est code
 par son mot de code s'il existe,
 par le K -me mot de code suivi du code ascii (par exemple) sinon.
Comme les statistiques utilises ne dpendent que du pass, le dcodeur pourra les connatre et
ainsi avoir connaissance tout moment du code utilis pour chaque lettre.

5.1.1

Une description sommaire de l'algorithme

Les procdures de codage et de dcodage lisent un ux d'entre qui peut contenir des lettres,
typiquement des octets (c'est d'ailleurs le seul type de donne pour le codage), ou des mots de
code (binaires en gnral). Pour simplier la description la fonction lire_mot_de_code lit un mot
de code dans le ux mais retourne la lettre qui lui est associe dans le code.
37

38

CHAPITRE 5. CODAGE DE SOURCE UNIVERSEL

Codage

Dcodage

entre : un ux de donnes F

T () // l'arbre une feuille vide


A
tantque F non vide
x lire_lettre(F )
si x A
ecrire_mot_de_code(x, T )
T mise__jour(x, T )

sinon

ecrire_mot_de_code(, T )
ecrire_lettre(x)
T ajoute_feuille(x, T )
A A {x}
Tab.

entre : un ux de donnes F

T () // l'arbre une feuille vide


A
tantque F non vide
x lire_mot_de_code(T, F )
si x A
ecrire_lettre(x)
T mise__jour(x, T )

sinon

x lire_lettre(F )
ecrire_lettre(x)
T ajoute_feuille(x, T )
A A {x}

5.1  Algorithme de Human adaptatif

Comme il est videmment exclus de recalculer l'arbre de Human chaque lettre, il faut
trouver une mthode ecace de mise jour l'arbre (fonctions mise__jour et ajoute_feuille).
La mthode qui suit est due D. Knuth.

5.1.2 Mise en uvre de l'algorithme de Human adaptatif


a-

Prliminaires

Nous identions un code prxe d'une source discrte X un arbre binaire |X| feuilles
tiquetes par les lettres de X . Le code est dit complet si chaque nud possde 0 ou 2 ls.

Dnition 5.1 Soit T un code prexe d'une source discrte X , le poids relativement (T, X) est
dni de la faon suivante
 le poids d'une feuille est la probabilit de sa lettre
 le poids d'un nud est la somme du poids de ses ls

Dnition 5.2 Un arbre de Human de X est un code prxe de X qui peut tre obtenu par
l'algorithme de Human.
Dnition 5.3 Soit T un code prexe complet d'une source discrte X de cardinal K . Un ordre
de Gallager sur T relativement X est un ordre u1 , . . . , u2K1 sur les nuds de T vriant
1. les poids des ui relativement (T, X) sont dcroissants,
2. u2i et u2i+1 sont frres dans T pour tout i, 1 i < K .

Thorme 5.4 (Gallager) Un code prxe T (i.e. un arbre) d'une source X est un arbre de
Human de X si et seulement si il existe un ordre de Gallager sur T relativement X .

Ce thorme sera admis. En particulier si un arbre associ un code prxe possde un ordre de
Gallager sur ses nuds, alors il est optimal.

b-

Notations

Nous considrons un texte (x1 , x2 . . . , xn , . . . ) et une instance de l'algorithme de Human


adaptatif sur ce texte. Nous notons Xn la source obtenue aprs lecture de la n-me lettre et Tn
un arbre de Human de cette source.

5.1. ALGORITHME DE HUFFMANN ADAPTATIF

39

La probabilit d'une lettre de la source Xn est proportionnelle son nombre d'occurence dans
les n premires lettres du texte. Ainsi sans rien changer aux dnitions (en particulier pour un
ordre de Gallager), nous pourrons utiliser pour le poids le nombre d'occurence de chaque lettre (la
lettre vide a une nombre d'occurences gal 0). Notons que dans ce cas, le poids est entier et que
le poids de la racine de Tn est n.
Soit x la (n + 1)-me lettre du texte. Soit u1 , . . . , u2K1 un ordre de Gallager pour Tn relativement Xn . Notons que u1 est ncessairement la racine de Tn et u2K1 est la feuille vide.

c-

Mise jour

Proposition 5.5 Si x Xn et si tous les nuds ui1 , ui2 , . . . , ui` du chemin entre x et la racine
de Tn sont les premiers de leur poids dans l'ordre de Gallager sur Tn relativement Xn , alors Tn
est un arbre de Human de Xn+1 , et u1 , . . . , u2K1 est un ordre de Gallager relativement Xn+1 .
preuve: Si l'on pose Tn+1 = Tn , le poids des nuds reste inchang, sauf pour les sommets
ui1 , ui2 , . . . , ui` du chemin de x la racine. Chacun de ces nuds tant le premier de son poids
dans un ordre de Gallager sur Tn relativement Xn , l'ordre reste dcroissant aprs incrmentation
des poids. La condition sur les frres est toujours vrie, car ni l'arbre ni l'ordre n'ont chang, et
nous obtenons bien un ordre de Gallager sur Tn+1 relativement Xn+1 .

Le cas ci-dessus est idal et n'est pas vri en gnral. Toutefois, quite faire quelques changes
de nuds dans l'arbre, on peut toujours s'y ramener.
Pour dcrire les algorithmes nous allons munir les nuds de trois champs :
 pere un nud,
 poids et ordre des entiers.
Initialement, pour tout nud u de Tn
 le champ pere contient le pre de u dans Tn (nil s'il s'agit de la racine),
 le champ poids contient le poids de u relativement (Tn , Xn ),
 le champ ordre contient l'indice de u dans un ordre de Gallager sur Tn relativement Xn .

procdure mise__jour(x, T )

u noeud(x, T ) // la feuille de T dont la lettre associe est x

tantque u 6= nil

u
min(v | v.poids = u.poids) // le nud de plus petit ordre ayant le poids de u
echanger(u.pere, u.pere)
echanger(u.ordre, u.ordre)
u.poids u.poids + 1
u u.pere

Proposition 5.6 Si x Xn , alors l'issue de la procdure mise__jour(x, Tn ), l'arbre Tn+1


dni par les champs pere est un code prxe de Xn+1 . Les poids sont relatifs (Tn+1 , Xn+1 )
( un coecient multiplicatif prs), et les champs ordre induisent un ordre de Gallager sur Tn+1
relativement Xn+1 .
preuve: (bauche) Les proprits suivantes sont des invariants de la boucle

 deux nuds partageant le mme pere ont des ordre conscutifs,


 l'ordre des nuds est celui des poids dcroissants.
De plus, puisque nous n'avons procd qu' des changes de nuds, la n de l'excution, les
champs pere dnissent un arbre binaire complet (que nous notons Tn+1 ) possdant autant de
feuilles que le cardinal de Xn (gal celui de Xn+1 ). Il s'agit donc d'un code prxe de Xn+1 .
La valeur des poids est relative (Tn+1 , Xn+1 ), car une seule feuille a vu son poids augmenter,
celle correpondant x, les autres nuds dont le poids t incrment l'ont t conformment
la dnition du poids (le chemin de x la racine).

40

CHAPITRE 5. CODAGE DE SOURCE UNIVERSEL

d-

Ajouter une feuille

Si x 6 Xn , l'arbre doit augmenter de taille et aura 2K + 2 nuds au lieu de 2K . La nouvelle


lettre va occuper la place de la lettre vide, puis nous ajouterons une feuille qui deviendra la nouvelle
feuille vide.

procdure ajoute_feuille(x, T )

mise__jour(, T )
z noeud(, T ) // la feuille vide de T
// z devient un nud interne, ses deux ls u et v sont crs ci-aprs
u new feuille(x, T ) // nouvelle feuille associe x dans T
u.pere z ; u.poids 1 ; u.ordre 2K
v new feuille(, T ) // nouvelle feuille vide de T
v.pere z ; v.poids 0 ; v.ordre 2K + 1

Proposition 5.7 Si x 6 Xn , alors l'issue de la procdure ajoute_feuille(x, Tn ), l'arbre Tn+1


dni par les champs pere est un code prxe de Xn+1 . Les poids sont relatifs (Tn+1 , Xn+1 )
( un coecient multiplicatif prs), et les champs ordre induisent un ordre de Gallager sur Tn+1
relativement Xn+1 .
preuve: (bauche) Juste aprs l'appel mise__jour(, T ), d'aprs les rsultats prcdents, les

proprits sur l'ordre et sur les frres dans l'arbre sont vries. L'ajout des feuilles u et v ne
change pas ces proprits, et les poids sont bien les poids relatifs (Tn+1 , Xn+1 ).

e-

Optimalit de l'algorithme

L'algorithme de Human adaptatif ne pourra tre optimal que si la source est sans mmoire.
Dans ce cas, conformment au but vis, les propositions 5.6, 5.7 et le thorme 5.4 nous permettent
de montrer que  localement , le code utilis est un code de Human  classique , et donc est
optimal par rapport ce qui est connu de la source ce moment l.

5.2 Algorithme de Lempel-Ziv


Nous allons considrer plusieurs variantes de cet algorithme. Le principe est similaire dans tous
les cas : on conserve un dictionnaire de tous les mots dj apparus dans le texte, puis chaque
fois que l'on rencontre l'un de ces mots on le remplace par son indice dans le dictionnaire. Si le
texte est redondant le dictionnaire sera (relativement) petit, et l'indice d'un mot aura une taille
infrieure au mot lui-mme. La dicult est algorithmique, comment mettre en uvre ce principe
un cot raisonnable.

5.2.1 Lempel-Ziv 78
Le texte compresser est consitu de lettres d'un alphabet A et est dcoup en une concatnation de mots
m0 , m1 , m2 , . . . , mi , . . . , mL
avec les proprits suivantes :
 les mi , 0 i < L, sont tous distincts,
 m0 est le mot vide,
 pour tout i, 0 < i < L, il existe un indice j < i et une lettre a A tels que mi = mj k a,
 mL = mj avec 0 j < L.

Proposition 5.8 Pour tout texte constitu de lettre de A, le dcoupage ci-dessus est unique.

5.2. ALGORITHME DE LEMPEL-ZIV

41

preuve: Remarquons d'abord que dans tout dcoupage et pour tout mi , tous les prxes (stricts)
de mi sont des mj avec j < i.
Soient deux dcoupages (mi )0iL et (m0i )0iL0 distincts d'un mme texte. Soit i > 0, le plus
petit indice tel que m0i 6= mi . Les mots m0i et mi doivent avoir des longueurs distinctes. Supposons,
sans perte de gnralit, que mi soit le plus long. Puisqu'il s'agit de deux dcoupages du mme
texte, alors m0i est un prexe strict de mi . D'aprs la remarque du dbut de la preuve il existe un
indice j < i tel que m0i = mj = m0j . Donc m0i devrait tre le dernier mot de son dcoupage, ce qui
n'est pas possible (mi est plus long, donc le texte n'est pas termin aprs m0i ).

Le dictionnaire sera compos des mots mi du dcoupage. Une fois ce dernier eectu, on pourra
remplacer chaque mi dans le texte par le couple (j, a) avec j un indice < i et a une lettre de A.

procdure coder_LZ78
entre : un ux de donnes F

D0 nil // le mot vide


n 1 // taille du dictionnaire

repter

// recherche du premier mot dans le ux n'appartenant pas D, de la forme Di k a


// avec a = nil s'il s'agit du dernier mot du texte
(i, a) lire_mot(F, D)
crire_indice(i, n) ; crire_lettre(a)
Dn Di k a
nn+1
tantque a 6= nil

Dans le pseudo-code ci-dessus, l'appel crire_indice(i, n) va crire sur la sortie standard l'indice
i sachant que celui-ci est compris entre 0 inclus et n exclus, en pratique on devra utiliser log2 (n)
(arrondi suprieurement) bits pour crire cet indice en base 2. Inversement, le dcodeur lira un
indice entre 0 inclus et n exclus l'aide de l'appel lire_indice(F, n).

procdure dcoder_LZ78
entre : un ux de donnes F

D0 nil // le mot vide


n 1 // taille du dictionnaire

repter

i lire_indice(F, n)
a lire_lettre(F )
Dn Di k a
crire_mot(Dn )
nn+1
tantque a 6= nil

5.2.2

Lempel-Ziv 77

Il s'agit de la variante mise en uvre dans beaucoup de logiciels de compression (zip, gzip,
. . . ). Elle est apparue en 1977 avant celle prsente prcdemment (qui date de 1978). Elle est plus
ecace, mais plus dicile mettre en uvre.
On suppose que n lettres ont t lues. On lit partir de la n + 1-me lettre le plus long mot
(de longueur `) qui soit un sous-mot commenant la i-me lettre avec i n. Ce mot est cod
par la paire (i, `).
En pratique, on l'implmente l'aide d'une fentre glissante de taille xe W : le dictionnaire
est l'ensemble des sous-mots de cette fentre. Chaque mot sera ainsi cod par un couple (i, `)
d'entiers compris entre 0 et W 1. Notons que i sera uniformement distribu dans cet intervalle
alors que la valeur moyenne de ` est beaucoup plus faible en moyenne (logarithmique en W ).

42

CHAPITRE 5. CODAGE DE SOURCE UNIVERSEL


curseur

i
?

m
`

a
W

b 6= a
-

5.1  Lempel-Ziv 77. Le mot m est le plus long partir du curseur qui soit aussi un mot de
la fentre, il est entirement dcrit par la paire (i, `).
Fig.

5.2.3

Optimalit de Lempel-Ziv

Les deux algorithmes exposs dans cette section sont optimaux, c'est--dire que pour toute
source stationnaire ergodique d'entropie par lettre H, la longueur moyenne pour coder un texte
de n lettres tend vers nH bits lorsque n tend vers l'inni.
La preuve formelle, que nous prsenterons pas ici, utilise les squences typiques. L'intuition de
la preuve est relativement simple, par exemple, pour l'algorithme de Lempel-Ziv 77, on montre,
l'aide des squences typiques et de l'AEP, que la longueur moyenne ` du plus long mot reconnu
est lie la taille W de la fentre (lorsque celle-ci tend vers l'inni) par la relation W = 2`H . Ainsi
chaque couple indice/longueur (i, `) codera ` lettres de texte l'aide d'environ `H + log2 ` bits (
une constante > 1 dpendant de la faon dont la longueur du mot est code). Asymptotiquement
nous arrivons la valeur optimale de H bits par lettre.

Chapitre 6

Canaux discrets sans mmoire


Dans le chapitre prcdent sur le codage de source, aucun lment extrieur ne venait modier
l'information. Au contraire lorsque l'information va transit dans le canal, elle sera perturbe par
un bruit.
Le rsultat principal de ce chapitre nous assure qu'il est possible de coder l'information de faon
ce que la dtrioration soit ngligeable. Cela se fera bien entendu au prix d'une redondance de
l'information.
En fait pour tout canal de transmission, nous dnirons une grandeur caractristique appele
capacit et qui s'interprte comme la quantit maximale d'information pouvant transiter travers
le canal.

6.1 Gnralits
6.1.1

Dnition du canal discret

Pour dnir un canal de transmission, il est ncessaire de dcrire l'ensemble des entres et des
sorties possibles du canal, ainsi que le bruit qui perturbera la transmission.
Le canal discret est le modle le plus simple de canal de transmission. L'ensemble des entres
comme celui des sorties seront des ensembles nis X et Y et le bruit se modlisera par la donne
d'une loi de probabilit conditionnelle de Y sachant X .

Dnition 6.1 (Canal discret sans mmoire) Un canal discret sans mmoire est dni par

la donne de :

1. Un alphabet d'entre X = {a1 , . . . , aK }.


2. Un alphabet de sortie Y = {b1 , . . . , bJ }.
3. Une loi de transition dnies par les probabilit conditionnelles P (bj | ak ).
La matrice K J suivante

P (b1 | a1 )

..
=
.
P (b1 | aK )

...
..
.
...

P (bJ | a1 )

..

.
P (bJ | aK )

est appele matrice stochastique du canal. Nous parlerons d'un canal (X, Y, ).

Exemple: Le canal binaire symtrique de probabilit de transition p reprsent par le diagramme


43

44

CHAPITRE 6. CANAUX DISCRETS SANS MMOIRE

1p

s X
0 X
XX

s
0

XXX

p XXXX
X

XXX
p
XXX

XXX

1p
XX
Xs 1
s
1
a pour matrice stochastique

1p
p
p
1p

La probabilit de transition p du canal sera souvent appele probabilit d'erreur du canal.

Dnition 6.2 (Canal symtrique) Un canal discret est dit symtrique si les lignes de sa matrice stochastique sont formes des mmes lments l'ordre prs.

Un canal symtrique n'a pas forcment le mme nombre d'entres et de sorties.

Exemple:

Le canal binaire symtrique eacement est dni par le diagramme


1 p p
s X
0 X
H
s 0

X
H XX

HH X X
XXX

p
X

HH
XXX

X
X
p HH
X
XXX

H
XX
HH
X
Xs

HH

H
HH

HH

H
Hs 1

s
1
1 p p

et a pour matrice stochastique

1 p p
p

6.1.2

p
p

p
1 p p

Canal continu et canal discret

Nous avons vu dans le chapitre d'introduction que nous pouvions ramener l'tude des canaux
continus celle des canaux discrets.
En eet l'ensemble constitu du modulateur de donnes digitales, du canal continu et du
dmodulateur de donnes digitales dans la Figure 6.1 peut tre considr comme un canal discret.
La principale dicult dans un tel modle consiste  traduire  le bruit du canal continu en
un bruit pour le canal discret correspondant. Cette traduction dpendra videmment du type de
modulation choisi.

6.2

Capacit d'un canal

6.2.1 Capacit d'un canal


Soit un canal dont l'ensemble des entres est X et l'ensemble des sorties Y . La donne du
canal nous fourni galement la loi de transition, c'est dire la loi de probabilit conditionnelle
de Y sachant X . Cette loi sera note P , pour tout x dans X et tout y dans Y , nous connaissons
P (y | x).

6.2. CAPACIT D'UN CANAL

45
Canal discret

Source

- Codeur de

source

Codeur de
canal
discret

Modulateur
de donnes
digitales

?
Canal
continu

Utilisateur

Dcodeur
de canal
discret

Dcodeur
de source

Fig.

Dmodulateur
de donnes
digitales

6.1  Canal continu et canal discret.

Si nous connaissons galement la loi d'mission, c'est--dire la loi de probabilit de X , alors


nous sommes en mesure de calculer l'information mutuelle I(X; Y ) entre X et Y . En eet

I(X; Y ) =

XX
x

P (y | x)P (x) log2

P (y | x)
P (y)

et P (x, y) et P (y) peuvent tre calculs et valent

P (x, y) = P (y | x)P (x),

P (y) =

P (y | x)P (x).

L'information mutuelle entre X et Y s'interprte comme l'information transmise travers le


canal. La relation
I(X; Y ) = H(X) H(X | Y )
exprime alors que l'information transmise travers le canal est gale l'entropie de X , H(X)
diminue de la quantit H(X | Y ) que l'on peut interprter alors comme la perte d'information
due au bruit.
Pour un canal donn, seule la loi de transition est connue. La loi d'mission ne dpend que de
la source et du codeur de canal. La capacit du canal sera la plus grande valeur que peut atteindre
l'information mutuelle de X et Y .

Dnition 6.3 (Capacit d'un canal) Soit un canal d'entre X et de sortie Y . La capacit
de ce canal est gal au maximum de l'information mutuelle entre X et Y pour toutes les lois
d'mission possible.

Cette dnition ne ncessite pas un canal discret, et reste parfaitement applicable un canal
continu. Nous ne nous intresserons cependant qu' la capacit des canaux discret sans mmoire.

6.2.2 Capacit d'un canal discret sans mmoire


Si la dnition de la capacit d'un canal peut sembler simple, son calcul pratique est d'une
grande complexit en gnral. En eet si l'alphabet d'entre est X = {a1 , . . . , aK }, et que la loi
d'mission est p1 , . . . , pK , o pk = P (ak ) pour tout k , il faut calculer le maximum
Pde I(X; Y ) sur
l'ensemble des K -uplets (p1 , . . . , pK ) avec les contraintes pk 0 pour tout k , et
pk = 1.
Ce calcul est cependant possible dans certains cas particuliers.

46

CHAPITRE 6. CANAUX DISCRETS SANS MMOIRE

Capacit d'un canal symtrique.


Dnition 6.4 (Canal fortement symtrique) Un canal discret est dit fortement symtrique
si les lignes et les colonnes de sa matrice stochastique sont gales une permutation prs.
Dnition 6.5 (Dcomposition d'un canal) Nous dirons que le canal T = (X, Y, ) se dcompose en une combinaison des canaux Ti = (X, Yi , i )1iL
et s'il existe
, si les Yi sont disjoints

des nombres rels positifs q1 +q2 +. . . +qL = 1 tels que = q1 1 qL L . Nous noterons
formellement
L
X
T =
qi Ti
i=1

Proposition 6.6 Un canal discret est symtrique si et seulement si il se dcompose en une combinaison de canaux fortement symtriques.

La preuve est laisse en exercice. L'nonc ci-dessus est parfois utilis comme dnition.
Pour un canal symtrique, la matrice stochastique

P (b1 | a1 ) . . . P (bJ | a1 )

..
..
..
=

.
.
.

P (b1 | aK ) . . . P (bJ | aK )

est telle que ses lignes sont toutes gales l'ordre prs. On pose pour tout couple (k, j), k,j =
P (bj | ak ).
L'information mutuelle moyenne s'crit

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


o H(Y | X) l'entropie conditionnelle de Y sachant X est gale
XX
H(Y | X) =
P (ak , bj ) log2 P (bj | ak )

XX
X
k

pk

k,j pk log2 k,j

k,j log2 k,j .

P
Par dnition d'un canal symtrique, le terme j k,j log2 k,j est indpendant de k . Notons
le H(). Nous avons alors
X
X
H(Y | X) =
pk H() = H()
pk = H().
k

Donc pour maximiser I(X; Y ) = H(Y ) H() il sura de maximiser H(Y ).

Proposition 6.7 (Capacit d'un canal fortement symtrique) La capacit d'un canal fortement symtrique (X, Y, ) (avec |Y | = J ) est gale

C = log2 J H().

preuve: Puisque H(Y ) est born suprieurement par log2 J , la capacit d'un canal symtrique est

borne suprieurement par log2 J H(), avec galit si et seulement si la loi de Y est uniforme.
Dans un canal fortement symtrique, on vrie aisment que si la loi de X est uniforme, alors
celle de Y l'est galement. Donc la borne suprieure est atteinte.

Cette borne suprieure ne sera pas toujours atteinte dans un canal symtrique. Toutefois, la
capacit du canal est atteinte lorsque la loi d'mission est uniforme. En pratique le calcul de
capacit d'un canal symtrique se fait l'aide de la proposition suivante :

6.3. THORME FONDAMENTAL

47

Proposition 6.8 Soit T un canal symtrique dont la dcomposition en canaux fortement sym-

trique s'crit q1 T1 + . . . + qL TL . Sa capacit est atteinte lorsque la loi d'mission est uniforme et
vaut
L
X
C=
qi Ci
i=1

o les Ci sont les capacits des canaux fortement symtriques Ti .

Exemple:

Considrons le canal binaire symtrique. Sa matrice stochastique vaut

1p
p
=
p
1p

et donc H() = p log2 p (1 p) log2 (1 p).


La capacit du canal binaire symtrique de probabilit d'erreur p est donc gale

C = 1 + p log2 p + (1 p) log2 (1 p).

6.3

Thorme fondamental

Avant d'noncer le second thorme de Shannon sur le codage des canaux bruit, nous allons
dcrire les faons par lesquelles nous pouvons oprer ce codage.

6.3.1 Codage de canal


D'aprs le hypothses que nous avons admises jusqu' prsent, l'entre du codeur de canal est
gale la sortie du codeur de source, c'est--dire qu'il s'agit d'une squence binaire.

Dnition 6.9 Un codage d'un canal discret (X, Y, ) est une procdure qui associe chaque
squence binaire nie une squence nie de lettres de X .
Bien videmment, il est hautement dsirable qu'aprs passage dans le canal la squence de lettres
de Y reue puisse tre dcode pour retrouver la squence binaire, et ce avec une probabilit la
plus leve possible.

Dnition 6.10 Un code en bloc d'un canal discret (X, Y, ) est une procdure qui associe
chaque squence binaire de longueur donne l une squence nie de n lettres de X appele mot de
code. L'entier n est appel longueur du code, 2l est le cardinal du code.
Nous dsignerons galement par code l'ensemble des mots de codes pour tous les l-uplets binaires
possibles.
tout codage, il faudra videmment associer une procdure de dcodage. Cette procdure va
pendre en entre une squence de lettres la sortie du canal, et donner en sortie une squence
binaire. Ce dcodage devra se faire de faon maximiser la vraisemblance.

Dnition 6.11 Un algorithme de dcodage d'un codage d'un canal (X, Y, ) sera une procdure

qui toute squence de lettres de Y associe une squence binaire.


Un algorithme de dcodage d'un code en bloc d'un canal (X, Y, ) de longueur n et de cardinal
2l sera une procdure qui tout n-uplet de Y associe un l-uplet binaire.

6.3.2

Canal binaire symtrique

Nous nous contenterons d'exposer le thorme fondamental de Shannon pour le codage de


canal dans le cas d'un canal binaire symtrique. Il est ais partir de gnraliser au cas q -aire,
c'est--dire lorsque les alphabet d'entre et de sortie du canal sont gaux et de cardinal q .
Comme nous l'avons dj vu le canal binaire symtrique de probabilit de transition p pour
capacit C = 1 + p log2 p + (1 p) log2 (1 p).
Pour un tel canal, nous utiliserons des codes binaires, c'est--dire des sous ensemble de {0, 1}n
pour un certain entier n.

48

CHAPITRE 6. CANAUX DISCRETS SANS MMOIRE

Dnition 6.12 Le taux d'un code binaire de longueur n et de cardinal M est gal
R=

log2 M
.
n

Un code aura un taux de 1 lorsque M = 2n , c'est--dire qu'aucune redondance n'aura t ajoute.


Un code de taux ne 1/2 signiera que M = 2n/2 , c'est--dire, si n est pair que le code double la
longueur des squences binaires.
Soit C un code en bloc de longueur n et de cardinal M . Soient ~x un mot code et ~y un n-uplet
de lettres de Y .
Soit un algorithme de dcodage nous noterons Pr((~y ) = ~x) la probabilit pour que le mot
~y de Y n soit dcod par le mot de code ~x. Nous noterons Pr((~y ) 6= ~x) = 1 Pr((~y ) = ~x) la
probabilit de l'vnement complmentaire.
La grandeur Pr((~y ) 6= ~x) peut tre considre comme une v.a. relle, donc il est possible de
calculer sa moyenne.

Dnition 6.13 (taux d'erreur rsiduel) Le d'erreur rsiduel d'un algorithme de dcodage est
gale la moyenne de la variable alatoire Pr((~y ) 6= ~x) lorsque la loi d'mission est uniforme.
Si nous notons ce taux d'erreur rsiduel Pe , nous avons
X
Pe =
P (~x, ~y )Pr((~y ) 6= ~x),
~
x,~
y

P (~y | ~x)P (~x)Pr((~y ) 6= ~x),

~
x,~
y

X P (~y | ~x)
Pr((~y ) 6= ~x).
M
~
x,~
y

La sommation s'eectue pour tout ~x dans C et tout ~y dans Y n .


La taux d'erreur Pe est bien un taux d'chec moyen dans le cas ou la loi d'mission est uniforme.
Ce n'est pas le cas en gnral.

Exemple:

Considrons le code rptition de longueur impaire n = 2t + 1 utilis pour lutter


contre le bruit dans un canal binaire symtrique sans mmoire de probabilit d'erreur p.
Un code rptition est un code constitu de deux mots : 0 . . . 0 et 1 . . . 1 de longueur n qui
codent respectivement les symboles '0' et '1'.
Un algorithme de dcodage possible pour ce code est le dcodage dit majoritaire : une
squence de n symboles binaires sera dcode par '0' si elle comporte une majorit de '0'
dans son criture, et par '1' sinon.
La probabilit pour que le mot 0 . . . 0 transmis sur le canal soit dcod par le symbole 1 est
gale
n
X
n i
Pe =
p (1 p)ni ,
i
i=t+1
c'est--dire la probabilit pour que le nombre de symboles ayant t transform soit suprieur
ou gal t+1.
Il est possible de montrer que pour une probabilit d'erreur p < 1/2 xe, la grandeur Pe
peut tre rendu arbitrairement petite.

6.3.3

Le second thorme de Shannon pour un canal binaire symtrique

Thorme 6.14 (Second thorme de Shannon) Soit un canal binaire symtrique de capacit C . Pour tout R < C il existe une suite Cn de codes de longueur n de taux Rn d'algorithme de
dcodage de taux d'erreur rsiduel Pe n telle que

6.3. THORME FONDAMENTAL

49

1. lim Rn = R
n

2. lim Pe n = 0
n

Ce thorme signie donc qu'il existe des codes en bloc permettant de raliser un code dont le
taux est aussi proche qu'on le dsire de la capacit du canal.
Il existe un autre rsultat qui est la rciproque de ce thorme.

Thorme 6.15 Soit un canal binaire symtrique de capacit C . Soit un code de taux R > C alors

tout algorithme de dcodage de ce code est tel que son taux d'erreur rsiduel Pe > K(R, C) > 0,
o K(R, C) est une constante strictement positive ne dpendant que de R et de C .

Ce rsultat nous indique qu'il est inutile de chercher des codes de taux suprieur la capacit du
canal. La capacit C est donc bien le taux de codage maximal que l'on puisse atteindre pour faire
transiter une information dans un canal donn.

50

CHAPITRE 6. CANAUX DISCRETS SANS MMOIRE

Chapitre 7

Codes correcteurs d'erreurs


7.1 Dnitions gnrales
7.1.1

Distance de Hamming

Dnition 7.1 Soient An l'ensemble des mots de longueur n sur A, x = (x0 , x1 , . . . , xn1 ) An

et y = (y0 , y1 , . . . , yn1 ) An .
 La distance de Hamming entre x et y est

dH (x, y) = |{i | 0 i n 1, xi 6= yi }| .

on vrie que dH est bien une mtrique et on appelle alors espace de Hamming sur A
l'ensemble An muni de la mtrique dH .
 Si A est un groupe, le poids de Hamming wH (x) d'un mot x An est le nombre de ses
coordonnes non nulles
wH (x) = dH (x, 0),
o 0 est le mot de An ayant toutes ses coordonnes gales l'lment neutre de A.

7.1.2

Codes en bloc  Codes linaires

Dnition 7.2 Un code C sur A est une partie non vide de l'espace de Hamming An , n est appel

longueur du code, les lments de C sont appels mots de code.


Lorsque A = {0, 1} on parlera de code binaire.

Dnition 7.3 On appelle distance minimale d'un code C sur A, l'entier


d = min{dH (x, y) | x, y C, x 6= y},

si A est un groupe, on appelle poids minimal d'un code C , l'entier


min{wH (x) | x C, x 6= 0}.
Lorsque l'alphabet A peut tre muni d'une structure de corps, l'espace An est un espace
vectoriel. On a alors la dnition suivante.

Dnition 7.4 Un code C est dit linaire sur A, si A est un corps et C un sous-espace vectoriel
de An . La dimension de C sur A est appele la dimension du code C .
Pour un code linaire le poids minimal est gal la distance minimale.
Les paramtres d'un code sont :
 son alphabet A de cardinal q ,
51

52

CHAPITRE 7. CODES CORRECTEURS D'ERREURS




Nous

sa longueur n,
son cardinal M (ou sa dimension k s'il est linaire),
sa distance minimale d.
noterons C(q; n, k, d) un code linaire et C[A; n, M, d] un code quelconque.

Dnition 7.5 Une matrice gnratrice G d'un code linaire C est une matrice k n dont les
lignes forment une base de C .
Pour un mme code il existe de nombreuses matrice gnratrices. Parmi celles-ci certaines ont
une forme pratique.

Proposition 7.6 Tout code linaire possde une matrice gnratrice systmatique, c'est--dire de

la forme

G=

Ik

une permutation des coordonnes prs.

Dnition 7.7 Soit C un code linaire de matrice gnratrice G. Une matrice de parit H de C
est une matrice (n k) n telle que H t G = 0, o t G est la transpose de G.
La matrice de parit H est telle que pour tout x dans C , H t x = 0. C'est--dire que C est le noyau
de l'endomorphisme de Fqn dans Fqnk reprsent par la matrice H .

Proposition 7.8 Si G est une matrice gnratrice systmatique de C


G=

alors
H=

Ik

Ink

est une matrice de parit de C .

7.1.3

Dcodage vraisemblance maximale

Soit un canal de transmission (A, B, ).

Dnition 7.9 Soit C un code de longueur n sur A. Un algorithme de dcodage de C vraisemblance maximale est une procdure de dcodage B n C An qui tout lment de ~y B n
associe l'lment de ~x C ralisant le maximum de P (~y | ~x).

Proposition 7.10 Dans un canal binaire symtrique de probabilit de transition p < 1/2, P (~y | ~x)
est une fonction croissante de dH (~y , ~x).

preuve: Soient ~x = (x1 , . . . , xn ) et ~y = (y1 , . . . , yn ), on a


P (~y | ~x) =

n
Y
i=1

dH (~
y ,~
x)

P (yi | xi ) = p

ndH (~
y ,~
x)

(1 p)

= (1 p)

p
1p

dH (~y,~x)
.

Proposition 7.11 Soit un algorithme de dcodage vraisemblance maximale de C dans un


canal binaire symtrique. Si (~y ) = ~x alors pour tout ~x0 dans C on a dH (~y , ~x) dH (~y , ~x0 ).

Proposition 7.12 Un code de distance minimale d peut corriger (d 1)/2 erreurs.

7.2. QUELQUES CLASSES DE CODES

7.2

53

Quelques classes de codes

7.2.1 Codes parfaits


Dnition 7.13 On appelle code parfait un code tel que l'ensemble des boules de rayon b d1
2 c
centres en tous les lments du code forment une partition de l'espace de Hamming An .
Tous les codes parfaits sont connus.

Exemple:
1. Code rptition de longueur impaire n = 2t + 1. Ce code contient deux mots : 0 . . . 0
et 1 . . . 1. Sa matrice gnratrice est

G = 1 ... 1
et sa matrice de parit est

H=

0
..

1
..
.
1

Ce code a pour distance minimale d = n = 2t + 1, et tout mot de l'espace {0, 1}n


contient soit plus de t + 1 '0', soit plus de t + 1 '1', et se trouve donc distance au plus
t = (d 1)/2 d'un des deux mots de code.
2. Code de Hamming Hm est un code binaire linaire de paramtres (n = 2m 1, k =
2m m 1, d = 3). La matrice de parit Hm de ce code est constitue de l'ensemble
des 2m 1 vecteurs colonne non nuls de F2m . Par exemple :

1 0 0 1 0 1 1
H3 = 0 1 0 1 1 1 0
0 0 1 0 1 1 1
Le nombre
de
points d'une boule de rayon (d 1)/2 = 1 centre en un mot du code Hm
est n0 + n1 = 2m . La runion de toutes ces boules a donc un cardinal 2k 2m = 2k+m =
2n , c'est--dire le cardinal de l'espace tout entier. Le code Hm est donc parfait.

7.2.2
a-

Codes cycliques
Corps nis

Thorme 7.14 Soit F un corps ni de cardinal q > 1. Alors


1. q = pm , o p est un nombre premier et m un entier positif.
2. F est unique isomorphisme prs.
 Lorsque p est premier le corps Fp est gal Z/pZ.
 Lorsque q = pm , avec m > 1, on dira que Fq est une extension de degr m de Fp .

Proposition 7.15 Soit Fq un corps ni. Soit pm (x) un polynme irrductible de Fq [x] de degr

m. Soit (pm (x)) l'idal engendr par le polynme pm (x), c'est dire l'ensemble des polynmes
multiple de pm (x).

1. Le quotient Fq [x]/(pm (x)) est un corps ni de cardinal q m .


2. Il existe toujours un lment de Fqm tel que pm () = 0.

Dnition 7.16 Un polynme pm (x) irrductible de degr m est primitif si l'ensemble des restes
de la division de xi par pm (x) sont tous distincts pour 0 i < q m 1.
Un lement de Fqm tel que pm () = 0 est dit primitif.

54

CHAPITRE 7. CODES CORRECTEURS D'ERREURS


Soit un lement primitif de Fqm , on notera Fqm = Fq []/(pm ()).
m
 Le corps ni q m lements est gal l'ensemble {0, 1, , 2 , . . . , q 2 }.
 Le corps ni q m lments est gal l'ensemble des polynmes en de degr < m.
 L'addition deux lements du corps sera l'addition de deux polynmes de Fq [].
 La multiplication de deux lements du corps sera le reste de la division par pm () de la
multiplication de deux polynmes de Fq [].

b-

Codes BCH

L'alphabet est gal Fq , le corps q lments. Soit m un entier et n = q m 1. On note


Rn = Fq [X]/(X n 1) l'anneau des polynmes coecients dans Fq modulo l'idal engendr par
X n 1. Soit un lment primitif de Fqm .

Dnition 7.17 (codes cycliques) Un code cyclique binaire de longueur n est un idal de Rn .
Remarque :
1. Un code cyclique est linaire.
2. Un code cyclique est invariant par permutation circulaire de ses coordonnes dans la base
(1, X, X 2 , . . . , X n1 )de Rn . La permutation circulaire d'une position droite correspond
la multiplication par X modulo X n 1

X (a0 + a1 X + . . . + an2 X n2 + an1 X n1 )


= a0 X + a1 X 2 + . . . + an2 X n1 + an1 X n
= an1 + a0 X + a1 X 2 + . . . + an2 X n1 mod X n 1.

Thorme 7.18 Soit C un code cyclique binaire de longueur n, on a


i. Il existe un unique polynme unitaire g(X) de degr minimal dans C .
ii. C est l'idal engendr par g(X), g(X) est appel polynme gnrateur de C .
iii. g(X) est un facteur de X n 1.
iv. Tout c(X) C s'crit de faon unique c(X) = f (X)g(X) dans Fq [X]. La dimension de C
est n r o r = deg g(X).

Dnition 7.19 (codes BCH) Soit C un code cyclique binaire de longueur n = q m 1 et soit

g(X) son polynme gnrateur. C est un code BCH de distance construite si est le plus grand
entier vriant
b Z, g(b ) = g(b+1 ) = . . . = g(b+2 ) = 0,

o est un lement primitif de Fqm .

Dnition 7.20 Un code est dit BCH au sens strict si b = 1. On notera B(n, ) le code BCH
binaire au sens strict de longueur n et de distance construite .

Thorme 7.21 (borne BCH) Soit un code BCH de distance construite , sa distance minimale
d vrie

d .

Exemple:
c-

Le code de Hamming est un code BCH binaire de distance construite 3.

Code de Reed-Solomon

Dnition 7.22 Un code de Reed-Solomon est un code BCH de longueur q 1 sur Fq .

7.3. DCODAGE DES CODES LINAIRES

7.2.3

55

Codes dtecteurs d'erreur

Un code peut tre utilis pour detecter les erreurs au lieu de les corriger. Le problme que
l'on souhaite rsoudre est le suivant : un mot de code est transmis travers un canal bruit et
l'utilisateur souhaite savoir si ce mot a t modi.
Pour qu'une erreur non detecte ait lieu, il faut qu'un mot de code soit modi en un mot de
code dirent.

Proposition 7.23 Un code de distance minimale d peut detecter d 1 erreurs.


Exemple:
1. Le code de parit de longueur n est l'ensemble des squences binaires de poids pair. Sa
matrice gnratrice est gale

1
0 1

..
..
G=
.
.
0
1 1
Le code est obtenu en ajoutant une squence de longueur n 1 un n-ime symbole
gal la somme des autres. Par exemple les 128 caractres ASCII sont cods par des
mots de longueur 8.
Ce code permet de dtecter une erreur.
2. code CRC (Cyclic Redundancy Check).
Une squence de k symboles binaires d'information est reprsente par le polynme
i(x). Soit g(x) un polynme de degr s. Le mot de code correspondant i(x) est gal
c(x) = xs i(x) + r(x) o r(x) est le reste de la division de xs i(x) par g(x).
Ce code permet de detecter toute rafale (erreurs conscutives) d'erreurs de longueur
infrieure ou gale s.

7.3

Dcodage des codes linaires

7.3.1 Thorie algbrique du dcodage


Dans toute cette section on considre un code linaire C(n, k, d) sur F2 .

a-

Position du problme

Etant donn
 que x C est le  message transmis ,
 que x est perturb dans un canal bruit par l'erreur e F2n ,
 que y = x + e, le  message reu , est le seul mot auquel le dcodeur a accs,
le problme du dcodage est de retrouver x partir de y.
Un algorithme de dcodage de C devra donc prendre comme argument un lment de F2n , et
s'il se termine, rendre un lment du code C . Il devra galement tre dterministe, c'est--dire
qu'un mot de l'espace F2n sera toujours dcod de la mme manire. Nous proposons la dnition
suivante.

Dnition 7.24 Soit un code linaire C(n, k, d) sur F2 , un algorithme de dcodage d'erreur de C
est une application
: F2n C {}
y 7 (y)
telle que x C , (x) = x. Le fait que (y) = signiant que y n'a pas t dcod.

56

CHAPITRE 7. CODES CORRECTEURS D'ERREURS

Soit e un entier positif, on dira que est born par e, si


y Fqn , x C, dH (x, y) <

e
(y) = x
2

o dH est la mtrique de Hamming sur Fq , on dira que est born strictement par e si on a de
plus
e
(y) = x 6= dH (x, y) <
2

b-

Matrice de parit  Syndrome

Dnition 7.25 On appelle matrice de parit du code C(n, k, d) une matrice H n k lignes et
n colonnes sur F2 , telle que C = ker H = {x | Hxt = 0}.
La matrice H dtermine le code C . Remarquons que par un thorme fondamental d'algbre
linaire, les lignes de H forment une base de l'orthogonal de C dans F2n pour le produit scalaire
usuel.

Dnition 7.26 Soit y F2n . Le syndrome de y est le vecteur de F2nk


S(y) = Hyt .

l'application S : F2n F2nk ainsi dnie est F2 -linaire.


H induit une relation d'quivalence sur F2n
x R y Hxt = Hyt H(x y)t = 0 x y C.
Chacune des classes de cette relation d'quivalence est appele  classe latrale  ou  translat 
de C .
Le code C est la classe de l'lment nul de F2n . Plus gnralement, deux lments sont dans un
mme translat si et seulement si ils ont le mme syndrome.

Proposition 7.27 Il existe au plus un mot de poids < d/2 dans un translat donn.
preuve: Soient x, y F2n tels que x R y, wH (x) < d/2 et wH (y) < d/2. Alors x y C et

wH (x y) = d(x, y) d(x, 0) + d(0, y) < d/2 + d/2 = d, en vertu de l'ingalit triangulaire. Donc
x = y.

c-

Dcodage des codes linaires

A partir de la matrice de parit et des syndromes on peut dnir l'algorithme de dcodage


suivant :
1. Dans tout translat y + C , on choisit un lment de plus petit poids, e(y) que l'on met dans
une table indexe par le syndrome de y. Remarquons que e(y + x) = e(y) pour tout x C
2. Si y est le mot reu, on calcule son syndrome S(y), et on lit e(y) dans la table.

= y e(y).
3. l'algorithme retourne (y) = x

Proposition 7.28 est un algorithme vraisemblance maximale, donc il est born par sa dis-

tance minimale.

preuve: Soit y Fqn , e un lment de plus petit poids de la classe de y

, donc (y) = y e
R 0.
 (y) C , en eet y R e
, donc dH (x, y) = wH (y x) wH (
 x C, y x R e
e) = dH ((y), y), donc (y) est un
lment du code ralisant le minimum de la distance y.

7.3. DCODAGE DES CODES LINAIRES

57

 L'algorithme est linaire. En eet, pour tout x C , y Fqn

(y + x) = y + x e(y + x) = y + x e(y) = (y) + x,


puisque e(y + x) = e(y).

Le dcodage des codes linaires se ramne donc la recherche d'un mot de plus petit poids d'un
translat donn par son syndrome. Cette recherche est gnralement dicile, mais dans certains
cas, comme celui des codes BCH, on possde un algorithme qui fonctionne pour certains translats.

7.3.2

Dcodage des codes cycliques

Dans cette section les vecteurs de Fqn sont nots en gras.

a-

Code de Hamming binaire d = 3

Le code de Hamming binaire Hm est un code linaire de paramtres (n = 2m 1, 2m m1, 3),


les colonnes de sa matrice de parit sont les 2m 1 vecteurs distincts non nuls de F2m (c'est bien
une matrice m n) :

0 0 0 0 ... 1
.. .. .. ..
..
. . . .
.

Hm = 0 0 0 1 . . . 1

0 1 1 0 ... 1
1 0 1 0 ... 1
le code Hm est l'ensemble des combinaisons linaires nulles des colonnes de Hm .

Exemple:

parit :

m = 3, le code de Hamming H3 a pour paramtres (7, 4, 3), et pour matrice de

1
H3 = 0
0

0
1
0

1
1
0

0 1
0 0
1 1

0
1
1

1
1
1

Proposition 7.29 Chaque coset du code de Hamming Hm possde un et un seul mot de poids 1.
preuve: Nous savons qu'il existe au plus un mot de poids 1 dans chaque coset, de plus il y a
exactement 2m 1 mots de poids 1, et 2m 1 cosets dirents de Hm .

Nous pouvons en dduire que l'algorithme de dcodage suivant est vraisemblance maximale.
Soit y = (y0 , . . . , yn1 ) F2n .
1. On calcule s = Hm yt F2m
2. si s = 0 alors y C et y
3. sinon s est la j -me colonne de Hm et x = (y0 , . . . , yj1 , 1 + yj , yj+1 , . . . , yn1 ) C
(Notons que l'ordre dans lequel les colonnes de Hm sont crites n'est pas important)

Le code de Hamming cyclique


On peut dcider d'crire la matrice Hm d'une faon lgrement dirente, considrons la matrice :

Hm = 1 2 . . . n1
o est un lment gnrateur de F2m . Hm est l'ensemble des vecteurs de F2n orthogonaux Hm
(les calculs sont eectus dans F2m ). Ce code est cyclique.

58

CHAPITRE 7. CODES CORRECTEURS D'ERREURS

Proposition 7.30 Hm est l'ensemble des polynmes de F2 [x]/(xn 1) s'annulant en . C'est


aussi l'idal engendr par le polynme minimal de dans F2 .

Exemple:

m = 3, on considre le code de Hamming de matrice de parit :

H3 = 1 2 3 4 5 6

o est un lment gnrateur de F8 tel


dans la base 1, , 2 , on obtient :

1
H3 = 0
0

que 3 + + 1 = 0 (par exemple). En crivant H3

0
1
0

0
0
1

1
1
0

0
1
1

1
1
1

1
0
1

qui est la mme que celle dcrite au dbut une permutation des colonnes prs.

b-

Codes 2-correcteur binaires, d = 5

Nous considerons prsent le code C suivant : l'ensemble des polynmes de F2 [x]/(xn 1)


s'annulant en et en 3 . Il s'agit d'un code linaire binaire de longueur n = 2m 1. Sa matrice
de parit peut s'crire :

1 2 . . .
n1
H=
1 3 6 . . . 3(n1)
Ce code a une distance minimale d 5 et peut donc corriger 2 erreurs.

Dcodage
Nous faisons les hypothses suivantes :
 a(x) F2 [x]/(xn 1), tel que a() = a(3 ) = 0
 e(x) = xi1 + xi2 , avec 0 ij n 1, pour j = 1, 2 et i1 6= i2
 on connat le polynme b(x) = a(x) + e(x)
comment dterminer les valeurs de i1 et i2 ?
On pose X1 = i1 et X2 = i2 , qui seront les inconnues, et on connat les valeurs de 1 =
b() = e() et de 3 = b(3 ) = e(3 ). On veut donc rsoudre dans F2m le systme :

X1 + X2 = 1
X13 + X23 = 3
on a :

13 = X13 + X23 + X1 X2 (X1 + X2 ) = 3 + X1 X2 1

on peut donc rcrire le systme :

X1 + X2
X1 X2

=
=

13 +3
1

on se ramne donc la rsolution d'une quation du second degr dans F2m .

c-

Codes BCH de distance construite

Soit un lment primitif de Fqm , n = q m 1.


On dni le code BCH primitif au sens strict sur Fq de distance construite comme l'ensemble
des polynmes de Fq [z]/(z n 1) s'annulant en , 2 , . . . , 1 . Ce code a pour matrice de parit :

2
...
n1
1
2
4
...
2(n1)

H= .

.
.
..
.
..
..
..

..
.

2(1)

. . . (n1)(1)

7.3. DCODAGE DES CODES LINAIRES

59

Le thorme de la borne BCH nous assure que ce code a une distance minimale suprieure ou
gale , ce code est donc au moins t-correcteur o :

t=b

1
c
2

pour t > 2, il est dicile d'eectuer un calcul direct de l'erreur.


Par exemple dans le cas binaire pour t = 3, il faudrait rsoudre le systme :

X1 + X2 + X3 = 1
X 3 + X23 + X33 = 3
15
X1 + X25 + X35 = 5
o 1 , 3 et 5 seraient connus, et X1 , X2 et X3 inconnus. Ce systme semble premire vue peu
pratique.
En fait on sait dcoder les codes BCH l'aide de l'algorithme d'Euclide tendu. Dans la section
suivante nous prsenterons les dnitions utiles l'expos de l'algorithme proprement dit.

d-

polynmes localisateur et valuateur

Soit une racine n-me de l'unit, Fqm la plus petite extension de Fq contenant .
Soit a = (a0 , a1 , . . . , an1 ) Fqn , de poids w, les composantes non nulles de ce vecteur sont
exactement :
ai1 , ai2 , . . . , aiw
on associe a les lments suivants de Fqm :

X1 = i1 , X2 = i2 , . . . , Xw = iw
appels les localisateurs de a, ainsi que les lments suivants de Fq :

Y1 = ai1 , Y2 = ai2 , . . . , Yw = aiw


qui sont les valeurs des coordonnes non nulles de a.

Dnition 7.31 Le polynme localisateur de a est le polynme :


(z) =

w
Y

(1 Xi z) =

i=1

w
X

i z i Fqm [z].

i=0

Les racines de (z) sont les inverses des localisateurs de a.


Les coecients i de (z) sont les fonctions symtriques lmentaires des Xi :

1 = (X1 + . . . + Xw ),

2 = X1 X2 + X1 X3 + . . . + Xw1 Xw ,
..

w = (1)w X1 . . . Xw .

Dnition 7.32 Le polynme valuateur de a est le polynme :


(z) =

w
X
i=1

on a pour tout i, 1 i w :

Xi Yi

w
Y
(1 Xj z)
j=1

j6=i

Xi1 (Xi1 )
1 .
j6=i (1 Xj Xi )

Yi = Q

La connaissance de (z) et (z) permet de dterminer entirement le vecteur a.

60

CHAPITRE 7. CODES CORRECTEURS D'ERREURS


On a deg (z) < deg (z) = w, et (z) et (z) sont premiers entre eux.

Dnition 7.33 Le polynme de Mattson-Solomon associ a est le polynme suivant de Fqm [z] :
A(z) =

n
X

Aj z nj , o Aj =

j=1

n1
X

ai ij .

i=0

Aj est la valeur en j du polynme a(x) = a0 + a1 x + . . . + an1 xn1 , notons que Aj est dni
pour tout entier j .
on a donc :

A0
A1
A2
..
.

An1

1
1
1
..
.

2
..
.

1
2
4
..
.

n1

2(n1)

...
1
...
n1
. . . 2(n1)
..
..
.
.
2
. . . (n1)

a0
a1
a2
..
.

an1

Thorme 7.34 Soit a = (a0 , . . . , an1 ) Fqn , (z) le polynme localisateur de a, (z) son

polynme valuateur. Pour tout j = 1, . . . , , Aj = a(j ) o a(x) = a0 + a1 x + . . . + an1 xn1 .


On a :
(z) = S(z)(z)
o
S(z) =

Aj z j1 .

j=1

preuve:
(z)
(z)

=
=
=

w
X
Xi Yi
,
1
zXi
i=1
w
X

i=1

j=1

w
X

z j1

j=1

i=1

n1
X

j=1

Yi Xi

z j1

(zXi )j1 ,
Yi Xij ,
ai ij ,

i=0

Aj z j1 = S(z).

j=1

e-

l'algorithme d'Euclide tendu

Quel problme doit on rsoudre ? Soit a C b = a + e Fqn , connaissant b on veut


dterminer e, en supposant que le poids de e est susamment petit.
Le dcodeur a accs Hbt = Het , ce qui revient, pour un code BCH primitif au sens strict,
connatre les valeurs en , 2 , . . . , 1 du polynme e(x) = e0 + e1 x + . . . + en1 xn1 associ au
vecteur e. Si l'on se rfre la section prcdente, il sut de calculer les valeurs des polynmes
localisateur et valuateur de e.

7.3. DCODAGE DES CODES LINAIRES

61

n1
Proposition 7.35 Soient
Fq [x]/(xn 1) de poids wH (e)
P e(x) = e0 + e1 x + . . . + en1 x

i i1
t = b 1
. Les polynmes localisateur et valuateur de e(x) sont les
i=1 e( )z
2 c, et S(z) =
seuls polynmes (z) et (z) vriant :

(z) (z)S(z) mod z 1

(z) et (z) premiers entre eux


(0) = 1
(7.1)

deg (z) < t

deg (z) t

preuve: D'aprs la section prcdente, les polynmes localisateur et valuateur de e vrient


(7.1). Rciproquement soient
(z) et
(z) vriant (7.1), on a :

(z)(z)
(z)S(z)(z)
(z)(z) mod z 1 ,

(z)(z)
(z)(z) 0 mod z 1 ,
or
(z)(z)
(z)(z) est de degr < 1, donc
(z)(z) =
(z)(z), ce qui sut montrer le
rsultat.

Description de l'algorithme
Thorme 7.36 (Algorithme d'Euclide) Soient r1 (z) et r0 (z), tels que deg r0 deg r1 , on
construit deux suites (ri (z))i1 et (qi (z))i1 telles que :
r1 (z) =
r0 (z) =
r1 (z) =
..
.

rj2 (z) =
rj1 (z) =

q1 (z)r0 (z) + r1 (z),


q2 (z)r1 (z) + r2 (z),
q3 (z)r2 (z) + r3 (z),

deg r1
deg r2
deg r3

qj (z)rj1 (z) + rj (z),


qj+1 (z)rj (z).

deg rj

<
<
<
..
.

<

deg r0
deg r1
deg r2
deg rj1

alors rj (z), le dernier reste non nul de ces divisions est le pgcd de r1 (z) et r0 (z).
Soient les polynmes Ui (z) et Vi (z) dnis par :

U1 (z) = 0, U0 (z) = 1,
V1 (z) = 1, V0 (z) = 0,
Ui (z) = Ui2 (z) qi (z)Ui1 (z),
Vi (z) = Vi2 (z) qi (z)Vi1 (z).
alors pour tout i 1 on a :

ri (z) = Vi (z)r1 (z) + Ui (z)r0 (z)


deg Ui = deg r1 deg ri1

Ui (z) et Vi (z) premiers entre eux

c'est cette relation que nous utiliserons pour l'algorithme de dcodage.

Algorithme de dcodage
On veut rsoudre (7.1) :

(z) (z)S(z) mod z 1

(z) et (z) premiers entre eux


(0) = 1

deg (z) < t

deg (z) t

(7.2)

62

CHAPITRE 7. CODES CORRECTEURS D'ERREURS

S(z) mod z 1 tant connu.


Si on applique l'algorithme d'Euclide r1 (z) = z 1 et r0 (z) = (S(z) mod z 1 ), on peut
alors construire l'aide de (7.2), des polynmes ri (z) et des Ui (z) vriant :
ri (z) Ui (z)r0 (z) mod z 1 ,
il existe un rang k pour lequel deg rk1 t et deg rk < t, on aura alors :

deg rk < t,
deg Uk = deg r1 deg rk1 t
un coecient multiplicatif prs, on a donc rsolu le problme. Soit tel que Uk (0) = 1, alors :

(z) = Uk (z)
(z) = rk (z).
est la solution du systme (7.1).

interprtation pour le dcodage Soit a(x) F2 [x]/(xn 1), tel que


a() = a(2 ) = . . . = a(1 ) = 0,
on considre le polynme b(x) = a(x) + e(x), o e(x) est de poids w < /2.
Connaissant b(x), nous voulons dterminer a(x) et e(x). Puisque pour i = 1, . . . , 1, on a
a(i ) = 0, pour ces mme valeurs de i, e(i ) = b(i ) est connu. Le syndrome de e(x), S(z) =
P1
i i1
, nous permet l'aide de l'algorithme d'Euclide tendu de dterminer la valeur de
i=1 e( )z
e(x) par l'intermdiaire de ses polynmes localisateur et valuateur.

Chapitre 8

Codes convolutifs
8.1 Dnition
Dnition 8.1 Un codeur convolutif binaire (k, n, m) est un circuit linaire sans feedback, d'ordre
m, k entres et n sorties sur F2 , et invariant dans le temps.
~
 X(D)
= (X1 (D), . . . , Xk (D)) le vecteur d'entre,

X
Xi (D) =
xij Dj la transforme de Human de la i-me entre,
j=t0

~ (D) = (Y1 (D), . . . , Yn (D)) le vecteur de sortie


Y
 On a la relation
~ (D) = X(D)
~
Y
G(D)
o G(D) est la matrice de transfert, G(D) = (gij (D))1ik,1jn avec gij (D) F2 [D].
 Par dnition l'ordre du codeur est gal m =
max
deg gij (D)
1ik,1jn

 On peut considrer G(D) comme un polynme sur l'anneau des matrices k n sur F2 :

G(D) = G0 + G1 D + . . . + Gm Dm

avec Gl = [Dl ]gij (D) 1ik,1jn pour tout l, 0 l m.

Dnition 8.2 Un code convolutif est l'ensemble des squences produites par un codeur convolu-

tif.

Exemple: Le codeur binaire (2, 1, 3) de matrice de transfert


G(D) =

1 + D2 + D3

1 + D + D2 + D3

peut tre reprsent par le circuit donn en gure 8.1.

q-

q-

- +m `
*

AK
6 A

A` qq
?

XX

H
XXX
HH ?
X
XX
j m `
H
z
+

Fig.

8.1  Codeur convolutif (2, 1, 3)

63

64

CHAPITRE 8. CODES CONVOLUTIFS

Exemple: Le codeur binaire (3, 2, 1) de matrice de transfert

G(D) =

1+D
D

D
1

1+D
1

peut tre reprsent par le circuit donn en gure 8.2.

a
- +
AK

7
A

A
a
r r

A
CS
A

CS

w
C S
Aa a ?
a
?
J
+

:
C

J C
J C
Jr C
a
r J C
J C
CW
J
^
a
- +

Fig.

8.2

8.2  Codeur convolutif (3, 2, 1)

Diagramme d'tat  Treillis de codage

Dnition 8.3 La mmoire d'un codeur convolutif, note K , est dnie comme le nombre minimal de registres ncessaire la ralisation du codeur.
Pour le codeur de l'exemple 8.1 on a K = 3, et pour le codeur de l'exemple 8.1 on a K = 2.
L'tat d'un codeur convolutif est dni comme la valeur de ses registres. Le nombre d'tats
possible pour un codeur binaire est donc 2K .

8.2.1

Diagramme d'tat

Le diagramme d'tat d'un codeur est un graphe orient ayant comme nuds les tats du codeur
et comme branches les transitions d'un tat vers un autre. Une squence code correspond un
chemin dans ce graphe.
Dans la gure 8.3 nous reprsentons le diagramme d'tat du code de l'exemple 8.1. Ce codeur
admet huit tats, et partir de chaque tat deux transitions sont possibles.
Sur chacune des branches du graphe nous donnons galement la valeur de l'entre et la valeur
de la sortie, ici l'entre consiste en un seul bit, et la sortie en 2 bits.

8.2.2 Treillis de codage


Le treillis de codage d'un codeur convolutif est son diagramme d'tat tendu dans le temps,
c'est--dire que chaque unit de temps possde son propre diagramme d'tat.

Exemple: Prenons un codeur (3, 1, 2) de matrice de transfert


G(D) =

1+D

1 + D2

1 + D + D2

Pour un tel code le treillis de codage est donn par la gure 8.4. La valeur inscrite sur chaque
branche est la valeur de sortie au temps considr.
Dans la gure 8.4, nous partons de l'tat 00, et chaque tape nous ajoutons les branches
correspondant aux transitions possibles.

8.3. DCODAGE

65

1/10

1/01
- 111
011

6@

@ 0/10
1/01
0/01

@
1/10
@

@R
?

1/11 @

101
110
1/00

0/01

- 010
0/10
001

I
6@
@

0/00
@ 1/00

1/11
0/11
@

000
100
0/11

0/00
Fig.

8.3

8.3  Diagramme d'tat d'un code (2, 1, 3)

Dcodage

Le dcodage d'un code convolutif va consister trouver parmi les dirents chemins du treillis
de codage le chemin le plus probable pour aller d'un tat donn au temps t0 un autre tat donn
au temps t.

8.3.1

Algorithme de Viterbi

L'algorithme de Viterbi suppose que le nombre d'tats du codeur est faible.


On se place dans le cas d'un canal binaire symtrique, la mtrique de Hamming permet alors
de choisir la squence la plus probable.
On considre la squence Xt correspondant un chemin quelconque s'arrtant au temps t dans
le treillis de codage, on pose Xt = (xt0 , . . . , xt ), avec xi F2n .
Si Yt = (yt0 , . . . , yt ), avec yi F2n , est la squence reue jusqu'au temps t, on peut calculer
facilement dH (Xt , Yt ) partir de dH (Xt1 , Yt1 ) :

dH (Xt , Yt ) = dH (Xt1 , Yt1 ) + dH (xt , yt ).


(Xt1 et Yt1 sont les squences Xt et Yt tronques au temps t 1)

L'algorithme de Viterbi :
On suppose que pour chaque tat du codeur au temps t, le meilleur chemin est connu ainsi que la
distance de Hamming entre la squence code correspondant ce chemin et la squence reue.
1. On calcule pour chaque tat au temps t, tous ses successeur (il y en a 2k ).

66

CHAPITRE 8. CODES CONVOLUTIFS

i001
11
C 110
C

001
11i
C 110

i001
11
C 110

001
11i
C 110

i001
11
C 110

11i. . .

C
C
C
C

C
C
C
C
C
C
C
C
C
C

010
010C
010C
010C
010C
010C
C
i C
C
i C
C

01i
01i
01
01i
01
01i
01i. . .
A
A C A C A C A C A C
101A 101A C 101A C 101A C 101A C 101A C
A C
AC
AC
AC
AC
A

A
AC
AC
AC
A C
AC

A 100 AC 100 AC 100 AC 100 AC 100 AC

A 10i AC 10i AC 10i AC 10i AC 10i AC 10i. . .


A
A
A
A
A

011A
011A
011A
011A
011A

A
A
A
A
A

A
A
A
A
111 A
111
111
111 A
111 A
111 A
111 A
A
A
A 00i. . .
A
A

i
i

00
00
00
00
00
00
00

000

t0

000

t0 + 1
Fig.

000

t0 + 2

000

t0 + 3

000

t0 + 4

000

t0 + 5

000

t0 + 6

t0 + 7

8.4  Treillis de codage d'un code (3, 1, 2)

2. Chaque tat l'instant t + 1 peut tre atteint de 2k faons, on conserve le chemin tel que la
distance de Hamming la squence reue soit minimale.

Exemple: Nous reprenons le codeur de l'exemple 8.2.2. Supposons que la squence d'information
soit (1, 1, 1, 0, 1, 0, 0), avec une valeur des registres initialement nulle, la squence mise est
alors :
111 010 001 110 100 101 011 .

On convient gnralement qu'une squence code doit ramener les registres des valeurs
nulles, donc la n de la squence d'information est constitue de 0. Aprs passage dans le
canal nous recevons
111 110 001 110 111 101 011 .
La gure 8.5 nous donne l'ensemble des chemins possibles, il sut alors de dterminer de
proche en proche le plus probable.

8.3. DCODAGE

67

001
i001
i001
11
11i
11
11i
C 110 C 110 C 110 C 110
C
C
C
C

C
C
C
C

C
C
C
C

010
010C
010C
010C
C
C
C
i C

01i
01i
01
01i
01i C
A
A C A C A C A C
101A
101A C 101A C 101A C 101A C
A
A C
AC
AC
AC

A
AC
AC
AC
AC

AC

A 100 AC 100 AC 100 AC


AC 10i

A 10i AC 10i AC 10i AC 10i


A
A
A
A
A

011A
011A
011A
011A
011A

A
A

A
A
A
A
A

A
A
A
A
A
111
111
111 A
111 A
111 A
A 00i
A 00i
A 00i
A 00i
A 00i

00i
00i
00i
000

111

000

110

000

000

001
Fig.

110

000

111

000

101

8.5  Exemple de dcodage

000

011

68

CHAPITRE 8. CODES CONVOLUTIFS

Table des matires


1 Systmes de communication
1.1
1.2

1.3

Introduction . . . . . . . . . . . . . . . . .
Sources et codage de source . . . . . . . .
1.2.1 Sources discrtes sans mmoire . .
1.2.2 Entropie d'une source discrte sans
1.2.3 Autres modles de sources . . . . .
Canaux et codage de canal . . . . . . . .
1.3.1 Canaux discrets . . . . . . . . . . .
1.3.2 Canaux continus . . . . . . . . . .
1.3.3 Capacit d'un canal . . . . . . . .

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

Codage d'un alphabet discret . . . . . . . . . . . . . . . . . .


3.1.1 Codage d'une source discrte sans mmoire . . . . . .
3.1.2 Codes de longueur xe . . . . . . . . . . . . . . . . . .
3.1.3 Codes de longueur variable . . . . . . . . . . . . . . .
Le premier thorme de Shannon . . . . . . . . . . . . . . . .
Une procdure optimale de codage . . . . . . . . . . . . . . .
3.3.1 Dnition du code de Human . . . . . . . . . . . . .
3.3.2 Le code de Human est optimal . . . . . . . . . . . .
Autres algorithmes de codage de source  Code arithmtique
3.4.1 Prliminaires : dveloppements 2-adiques . . . . . . .
3.4.2 Code de Shannon-Fano-Elias . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

2 Une mesure de l'information


2.1

2.2
2.3
2.4

Espace probabilis discret . . . . . . . . . . . . . .


2.1.1 Dnitions . . . . . . . . . . . . . . . . . .
2.1.2 Espace probabilis joint . . . . . . . . . . .
2.1.3 Simplication des notations . . . . . . . . .
Processus stochastiques . . . . . . . . . . . . . . .
Une dnition de l'information . . . . . . . . . . .
2.3.1 Incertitude et information . . . . . . . . . .
2.3.2 Information mutuelle  Information propre
Information mutuelle moyenne  Entropie . . . . .
2.4.1 Dnitions . . . . . . . . . . . . . . . . . .
2.4.2 Proprits de l'entropie . . . . . . . . . . .

3 Codage des sources discrtes


3.1

3.2
3.3
3.4

4 Les squences typiques et l'AEP


4.1
4.2
4.3

. . . . . .
. . . . . .
. . . . . .
mmoire
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
.
.
.
.
.
.
.
.
.
.
.

Sources discrtes stationnaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


Les squences typiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Thorme de Shannon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69

3
4
4
5
5
5
5
6
6

9
9
10
11
11
12
12
13
15
15
15

17

17
18
18
19
23
25
25
26
26
26
27

31

31
32
34

70

TABLE DES MATIRES

5 Codage de source universel


5.1
5.2

Algorithme de Humann adaptatif . . . . . . . . . . . . . .


5.1.1 Une description sommaire de l'algorithme . . . . . .
5.1.2 Mise en uvre de l'algorithme de Human adaptatif
Algorithme de Lempel-Ziv . . . . . . . . . . . . . . . . . . .
5.2.1 Lempel-Ziv 78 . . . . . . . . . . . . . . . . . . . . .
5.2.2 Lempel-Ziv 77 . . . . . . . . . . . . . . . . . . . . .
5.2.3 Optimalit de Lempel-Ziv . . . . . . . . . . . . . . .

.
.
.
.
.
.
.

6 Canaux discrets sans mmoire


6.1
6.2
6.3

Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1.1 Dnition du canal discret . . . . . . . . . . . . . . . .
6.1.2 Canal continu et canal discret . . . . . . . . . . . . . .
Capacit d'un canal . . . . . . . . . . . . . . . . . . . . . . .
6.2.1 Capacit d'un canal . . . . . . . . . . . . . . . . . . .
6.2.2 Capacit d'un canal discret sans mmoire . . . . . . .
Thorme fondamental . . . . . . . . . . . . . . . . . . . . . .
6.3.1 Codage de canal . . . . . . . . . . . . . . . . . . . . .
6.3.2 Canal binaire symtrique . . . . . . . . . . . . . . . .
6.3.3 Le second thorme de Shannon pour un canal binaire

7 Codes correcteurs d'erreurs


7.1

7.2

7.3

Dnitions gnrales . . . . . . . . . . . . .
7.1.1 Distance de Hamming . . . . . . . .
7.1.2 Codes en bloc  Codes linaires . . .
7.1.3 Dcodage vraisemblance maximale
Quelques classes de codes . . . . . . . . . .
7.2.1 Codes parfaits . . . . . . . . . . . .
7.2.2 Codes cycliques . . . . . . . . . . . .
7.2.3 Codes dtecteurs d'erreur . . . . . .
Dcodage des codes linaires . . . . . . . . .
7.3.1 Thorie algbrique du dcodage . . .
7.3.2 Dcodage des codes cycliques . . . .

8 Codes convolutifs
8.1
8.2
8.3

Dnition . . . . . . . . . . . . . . . .
Diagramme d'tat  Treillis de codage
8.2.1 Diagramme d'tat . . . . . . .
8.2.2 Treillis de codage . . . . . . . .
Dcodage . . . . . . . . . . . . . . . .
8.3.1 Algorithme de Viterbi . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
symtrique

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

37

37
37
38
40
40
41
42

43
43
43
44
44
44
45
47
47
47
48

51

51
51
51
52
53
53
53
55
55
55
57

63

63
64
64
64
65
65

Vous aimerez peut-être aussi