Académique Documents
Professionnel Documents
Culture Documents
Informatique
Nicolas Sendrier
aot 2007
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
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
- Codeur de
Source
source
- Codeur de
canal
?
Canal
Utilisateur
Fig.
Dcodeur
de source
Bruit
Dcodeur
de canal
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.
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
Mthode 2
a1 0
a2 10
a3 110
a4 111
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.
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
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
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
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.
Canaux discrets
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.
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.
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
Chapitre 2
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
10
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
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] =
et
pY (y) = PrXY [Y = y] =
yY
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)
PrXY [X = x | Y = y] =
pXY (x, y)
.
pY (y)
2.1.3
11
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,
12
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.
Incertitude et information
Description qualitative de l'information
b-
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 :
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) :
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
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).
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
p(x, y)
.
p(x)p(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
P (y | x)
1
PP
PP
PP
P
PP
PP
PP
PP
P
1
b1
x
a1
a2
PP
Fig.
b2
= 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 )
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.
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)
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
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.
XX
XX
p(x, y)I(x; y) =
xX yY
p(x, y) log2
xX yY
p(x, y)
.
p(x)p(y)
Dnition 2.5 (Entropie) L'entropie d'un espace probabilis X est dni par
H(X) =
p(x)I(x) =
xX
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
xX yY
vrie
H(X) log2 K
si z > 0, z 6= 1
si z = 1
(2.2)
16
p(x) log2 K
p(x)
x
x
X
1
=
p(x) log2
.
Kp(x)
x
H(X) log2 K
1
1
Kp(x)
x
!
X 1
X
log2 e
p(x) = 0,
K
x
x
log2 e
p(x)
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,
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,
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.
Chapitre 3
Dnition 3.1 Un codage d'un alphabet discret est une procdure qui associe chaque squence
nie de lettres une squence binaire nie.
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)
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
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
H
.
||
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.
n telle que
(3.2)
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 :
19
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.
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
20
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-
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:
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:
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
21
r m 1
0
r
X
XXX
XXXr
0
1
m2
rH
HH
H
r
0 m3
HH
H
r
X
XXX
XXXr
1
m4
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
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-
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
22
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
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
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
2nk + 2nK1 =
K2
X
k=1
2nk + 21nK1 1
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 .
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
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
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
H || = (log2 e)
2|(x)|
p(x)
|(x)|
xX
!
p(x)
xX
(3.5)
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
1
+ 1.
p(x)
|| =
p(x)|(x)| <
p(x) log2
1
+ 1 = H + 1.
p(x)
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.
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.
L
,
l
L(l ) = lim
m|l | + |r |
1
H+ .
L
l
(3.6)
E(l )
H
1
=1
.
H + 1/l
lH + 1
3.3
(ak ) =
(aK1 ) =
(aK ) =
(bk )
(bK1 ) k 0
(bK1 )) k 1
si k K 2
q(bk ) = p(ak )
si k K 2
q(bK1 ) = p(aK1 ) + p(aK )
26
3.3.2
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
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.
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.
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
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
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
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
p(y) p(x)
,
2
2
28
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).
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:
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 . . .
(x)
00
011
101
1101
11101
11110
Human
0
10
110
1110
11110
11111
29
30
Chapitre 4
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
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
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
p(x1 , . . . , xL ) =
p(x1 , . . . , xL1 ) =
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
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.
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.
lim Pr[A(n)
] = 1.
(i) lim
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.
n(H+)
|A(n)
|2
Pr[X1 = x1 , . . . , Xn = xn ] = Pr[A(n)
] 1,
(n)
(x1 ,...,xn )A
(n)
(x1 ,...,xn )A
(n)
(n)
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
34
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
E() =
H
.
L()
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
(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 |
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.
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 5
5.1.1
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
Codage
Dcodage
sinon
ecrire_mot_de_code(, T )
ecrire_lettre(x)
T ajoute_feuille(x, T )
A A {x}
Tab.
sinon
x lire_lettre(F )
ecrire_lettre(x)
T ajoute_feuille(x, T )
A A {x}
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.
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
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 )
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
40
d-
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
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.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.
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
repter
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
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
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
6.1 Gnralits
6.1.1
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 :
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, ).
44
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
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.
Exemple:
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
1 p p
p
6.1.2
p
p
p
1 p p
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
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
I(X; Y ) =
XX
x
P (y | x)
P (y)
P (y) =
P (y | x)P (x).
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.
46
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
XX
X
k
pk
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
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 :
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
Exemple:
1p
p
=
p
1p
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.
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
6.3.2
48
Dnition 6.12 Le taux d'un code binaire de longueur n et de cardinal M est gal
R=
log2 M
.
n
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
~
x,~
y
X P (~y | ~x)
Pr((~y ) 6= ~x).
M
~
x,~
y
Exemple:
6.3.3
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
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 7
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
Dnition 7.2 Un code C sur A est une partie non vide de l'espace de Hamming An , n est appel
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
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
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 .
alors
H=
Ik
Ink
7.1.3
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).
n
Y
i=1
dH (~
y ,~
x)
P (yi | xi ) = p
ndH (~
y ,~
x)
(1 p)
= (1 p)
p
1p
dH (~y,~x)
.
7.2
53
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
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
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).
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
b-
Codes BCH
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
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,
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-
Code de Reed-Solomon
7.2.3
55
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.
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
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
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-
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.
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-
= 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.
, 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.
57
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
a-
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 :
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)
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
Exemple:
H3 = 1 2 3 4 5 6
1
H3 = 0
0
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-
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 :
X1 + X2
X1 X2
=
=
13 +3
1
c-
2
...
n1
1
2
4
...
2(n1)
H= .
.
.
..
.
..
..
..
..
.
2(1)
. . . (n1)(1)
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
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-
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 :
w
Y
(1 Xi z) =
i=1
w
X
i z i Fqm [z].
i=0
1 = (X1 + . . . + Xw ),
2 = X1 X2 + X1 X3 + . . . + Xw1 Xw ,
..
w = (1)w X1 . . . Xw .
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
60
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
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-
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 :
deg (z) t
(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) =
deg r1
deg r2
deg r3
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 :
Algorithme de dcodage
On veut rsoudre (7.1) :
deg (z) t
(7.2)
62
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).
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
On peut considrer G(D) comme un polynme sur l'anneau des matrices k n sur F2 :
G(D) = G0 + G1 D + . . . + Gm Dm
Dnition 8.2 Un code convolutif est l'ensemble des squences produites par un codeur convolu-
tif.
1 + D2 + D3
1 + D + D2 + D3
q-
q-
- +m `
*
AK
6 A
A` qq
?
XX
H
XXX
HH ?
X
XX
j m `
H
z
+
Fig.
63
64
G(D) =
1+D
D
D
1
1+D
1
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
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.
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
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 :
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
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
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
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
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
000
011
68
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 . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2.2
2.3
2.4
3.2
3.3
3.4
. . . . . .
. . . . . .
. . . . . .
mmoire
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
.
.
.
.
.
.
.
.
.
.
.
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
.
.
.
.
.
.
.
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.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