Académique Documents
Professionnel Documents
Culture Documents
Notes de cours
Laurent Oudre
laurent.oudre@ens-paris-saclay.fr
Introduction générale 5
1 Organisation du cours 5
2 Contenu du cours 5
2.1 Théorie du signal : conversion analogique-numérique . . . . . . . . . . . . . . . . . . 6
2.2 Théorie de l’information : information et entropie . . . . . . . . . . . . . . . . . . . 9
2.3 Codage source : compression de l’information . . . . . . . . . . . . . . . . . . . . 10
2.4 Codage canal : transmission de l’information . . . . . . . . . . . . . . . . . . . . . 11
2.5 Théorie du signal [le retour] : vers les communications numériques . . . . . . . . . . . . . 12
3 Plan du cours 13
4 Références 13
I Théorie de l’information 14
1 Variables aléatoires sur un espace probabilisé discret 15
1.1 Espace probabilisé discret . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2 Variable aléatoire discrète . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3 Couple de variables aléatoires discrètes . . . . . . . . . . . . . . . . . . . . . . . 18
1.4 Loi des grands nombres . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2 Schéma de Shannon 21
2.1 Système de communication . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2 Source discrète . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3 Canal discret . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3 Information et entropie 27
3.1 Information élémentaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2 Entropie d’une source. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.2 Interprétation de l’entropie . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2.3 Divergence de Kullback-Leibler . . . . . . . . . . . . . . . . . . . . . . . 31
3.2.4 Propriétés de l’entropie . . . . . . . . . . . . . . . . . . . . . . . . . . 33
II Codage source 58
1 Classes de codes source 60
1.1 Quelques définitions importantes . . . . . . . . . . . . . . . . . . . . . . . . . 60
1.2 Code non singulier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
1.3 Code déchiffrable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
1.4 Code instantané . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4 Code de Huffman 75
4.1 Algorithme de codage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.2 Optimalité du codage de Huffman . . . . . . . . . . . . . . . . . . . . . . . . 78
2 Inégalité de Fano 85
2.1 Théorème du traitement de l’information . . . . . . . . . . . . . . . . . . . . . . 86
2.2 Inégalité de Fano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Références 156
Introduction générale
Plan de la partie
1 Organisation du cours 5
2 Contenu du cours 5
2.1 Théorie du signal : conversion analogique-numérique . . . . . . . . . . . . . . . . 6
2.2 Théorie de l’information : information et entropie . . . . . . . . . . . . . . . . . 9
2.3 Codage source : compression de l’information . . . . . . . . . . . . . . . . . . 10
2.4 Codage canal : transmission de l’information . . . . . . . . . . . . . . . . . . . 11
2.5 Théorie du signal [le retour] : vers les communications numériques . . . . . . . . . . . 12
3 Plan du cours 13
4 Références 13
1 Organisation du cours
Quelques informations pratiques
— 10 séances de CM/TD
— Contrôle continu : devoirs maison + participation active en TD
— Examen :
— Questions de cours : 1h sans documents
— Exercices : 2h avec documents
E1 + 2E2 + CC
— Note finale :
4
2 Contenu du cours
Révolution numérique
Passage du monde analogique au monde numérique : traitement et transport d’une information numérique (séries
de 0 et 1)
Un peu d’histoire
Contributions de Shannon
— Théorie du signal : chaque signal à envoyer peut être représenté comme une série de symboles discrets...
— Théorie de l’information : ...chaque symbole émis est associé à une quantité d’information...
— Codage source : ...grâce à cette notion d’information, on peut compresser au mieux le message que l’on veut
transmettre...
— Codage canal : ... pour ensuite le transmettre à un destinataire, en limitant le plus possible les erreurs de
transmission
Canal
Système de communication
Canal
De l’analogique au numérique
— Systèmes analogiques :
— Transmission d’un signal continu x(t) : continuum de temps et de valeurs possibles
— Dispositifs difficiles à réaliser et sensibles aux perturbations
— Systèmes numériques :
— Transmission d’un signal discret x[n] : discrétisation du temps et des valeurs possibles
— Permet l’utilisation d’un alphabet fini (exemple : 0 ou 1)
Conversion analogique-numérique
1.2 1.2
1 1
0.8 0.8
0.6 0.6
0.4 0.4
0.2 0.2
0 0
-0.2 -0.2
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
t (secondes) t (secondes)
Conversion analogique-numérique
1.2 1.2
1 1
0.8 0.8
0.6 0.6
0.4 0.4
0.2 0.2
0 0
-0.2 -0.2
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
t (secondes) t (secondes)
Conversion analogique-numérique
O
1.2 1.2
N
M
1 1
L
K
0.8 0.8
J
I
0.6 0.6
H
G
0.4 0.4
F
E
0.2 0.2
D
C
0 0
B
A
-0.2 -0.2
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
t (secondes) t (secondes)
Conversion analogique-numérique
1.2
0.8
0.6
0.4
HHFJJKFKFKDHGHCCJDFF
0.2
-0.2
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
t (secondes)
Théorie du signal
Théorème de Shannon-Nyquist
Modélisation de la source
— Le signal numérique devient une série de symboles, plus ou moins probables
— Modélisation de la source comme une variable aléatoire discrète X dans un alphabet fini X
— Chaque symbole envoyé transmet une information, dont la quantité peut être mesurée
— Exemple : journal télévisé avec trois annonces possibles X = {A, B, C} A - La Terre va exploser demain B - Il va
pleuvoir en Bretagne demain C - Demain nous allons tous devenir bleus
Théorie de l’information
Codage source
La définition de la fonction de codage c a une influence forte sur la transmission des données et notamment sur :
— La capacité à décoder ou pas le message
— Exemple : c(A) = 0, c(B) = 10, c(C) = 10 : impossible à décoder car c n’est pas injective
— On cherchera des codes faciles à coder/décoder et si possible dont le décodage peut se faire à la volée
— La longueur des messages à transmettre
— Exemple : c1 (A) = 0, c1 (B) = 10, c1 (C) = 110 c2 (A) = 0010, c2 (B) = 1001, c2 (C) = 1010
— L’émetteur est caractérisé par un débit binaire nominal (bits/sec) : plus les messages sont courts, plus on
peut transmettre rapidement l’information
Codage source
Considérons une source X ayant comme alphabet X = {A, B, C, D} et deux fonction de codage c1 et c2
Codage source
Comment construire un code facilement décodable avec la longueur moyenne la plus petite possible ?
Quelle est la limite théorique pour la longueur moyenne ?
Est-il possible d’atteindre cette limite théorique et si oui, comment ?
Premier théorème de Shannon
Probabilité d’erreur
Loi binomiale - n=128 - p=0.01 Loi binomiale - n=128 - p=0.1
0.4 0.12
0.35
0.1
0.3
0.08
0.25
P(E=k)
P(E=k)
0.2 0.06
0.15
0.04
0.1
0.02
0.05
0 0
0 5 10 15 20 25 30 0 5 10 15 20 25 30
k k
Code à répétition
Exemple du code à répétition :
— Répétition de chaque bit 2m + 1 fois
Code à répétition
0.1
0.09
0.08
0.07
0.06
pbit
0.05
0.04
0.03
0.02
0.01
0
0 2 4 6 8 10 12 14 16 18 20
m
— On peut faire diminuer pbit autant qu’on veut, à condition de répéter suffisamment chaque bit
— Notion de rendement d’un code
nombre de bits utiles
R=
nombre de bits envoyés
1
— Pour le code à répétition R = 2m+1
— Pe → 0 est-il conditionné à R → 0 ?
Codage canal
3 Plan du cours
Plan du cours
1. Théorie de l’information : information et entropie
2. Codage source : compression de l’information
3. Codage canal : transmission de l’information
4. Théorie du signal : conversion analogique-numérique + communications numériques
4 Références
Références
— Cover, T. M. (1999). Elements of information theory. John Wiley & Sons. http://staff.ustc.edu.cn/~cgong821/Wiley.Interscience.Elements.
of.Information.Theory.Jul.2006.eBook-DDU.pdf
— Andersson, K. G. (2015). Finite Fields and Error-Correcting Codes. Lund University. http://www.matematik.lu.se/matematiklu/personal/sigma/
Andersson.pdf
— Shannon, C. E. (1948). A mathematical theory of communication. The Bell system technical journal, 27(3), 379-423. https://culturemath.ens.
fr/sites/default/files/p3-shannon.pdf
— MacKay, D. J., & Mac Kay, D. J. (2003). Information theory, inference and learning algorithms. Cambridge University Press. https://www.inference.
org.uk/itprnn/book.pdf
— Yeung, R. W. (2008). Information theory and network coding. Springer Science & Business Media.
— Dai, W. (2019). Coding theory. Imperial College London.
— De Marçay, F. Analyse de Fourier. Université Paris Saclay. https://www.imo.universite-paris-saclay.fr/~merker/Enseignement/Analyse-de-Fourier/
fourier-pdflatex.pdf
— Ling, C. (2019). Information Theory. Imperial College London. http://www.commsp.ee.ic.ac.uk/~cling/IT/InformationTheory.htm
— Polyanskiy, Y. & Wu, Y. (2015). Lecture Notes on Information Theory. MIT. http://people.lids.mit.edu/yp/homepage/data/itlectures_v5.pdf
— Fabre, E. (2000). Théorie de l’information & Codes correcteurs d’erreurs. ENS Cachan. http://people.rennes.inria.fr/Eric.Fabre/Papiers/
polynew.pdf
Première partie
Théorie de l’information
Plan de la partie
1 Variables aléatoires sur un espace probabilisé discret 15
1.1 Espace probabilisé discret . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2 Variable aléatoire discrète . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3 Couple de variables aléatoires discrètes . . . . . . . . . . . . . . . . . . . . . 18
1.4 Loi des grands nombres . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2 Schéma de Shannon 21
2.1 Système de communication . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2 Source discrète . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3 Canal discret . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3 Information et entropie 27
3.1 Information élémentaire . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2 Entropie d’une source. . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.2 Interprétation de l’entropie . . . . . . . . . . . . . . . . . . . . . . . 30
3.2.3 Divergence de Kullback-Leibler . . . . . . . . . . . . . . . . . . . . . 31
3.2.4 Propriétés de l’entropie . . . . . . . . . . . . . . . . . . . . . . . . 33
Signal numérique
— Comme nous le verrons dans la dernière partie (petit spoiler !), sous de bonnes hypothèses, tout signal x(t) du
monde réel peut se représenter de façon numérique sous la forme d’une série de valeurs prises dans un ensemble
fini (souvent 2b valeurs lorsque l’on quantifie chaque échantillon sur b bits)
— En plus de ces données numérisées (son, image, etc...), on peut également considérer les données nativement
numériques comme le texte (caractères alpha-numériques)
— Chaque échantillon du signal x[n] est donc pris dans un alphabet fini, noté X
— Un signal de durée finie correspond à une série de symboles de cet alphabet et forme ainsi un message à
transmettre
320212110103230332113003222113
101210300101002000012001003030
— Idée (géniale !) de Shannon : la quantité d’information d’un message ne doit pas dépendre du sens ou de la
sémantique de ce message, mais uniquement de la probabilité d’apparition du message.
P : P(Ω) → [0, 1]
Calcul de probabilités
Soit (Ω, P(Ω), P) un espace probabilisé discret. Comme Ω est fini,
— Tout événement A de P(Ω) peut s’écrire comme l’union de zéro, un ou plusieurs événements élémentaires
{ωi }1≤i≤N
[
A= {ωi } avec I ⊂ {1, 2, . . . , N }
i∈I
— On a donc d’après la définition de la mesure de probabilité (et parce que les ωi sont incompatibles deux à
deux) : !
[ X
P(A) = P {ωi } = P({ωi })
i∈I i∈I
— Dans ce cas, il suffit de connaître P({ω1 }), . . . , P({ωN }) pour déterminer intégralement la fonction P de P(Ω)
dans [0, 1]
Étant donné un espace probabilisé discret (Ω, P(Ω), P), une variable aléatoire discrète X est une application
X : Ω → R, telle que :
— L’image de Ω par X (que l’on appellera X dans la suite du cours), est dénombrable (et même finie dans
notre cas car Ω est supposé fini). On notera card(X ) le nombre d’éléments de X
— Chaque événement élémentaire ω de Ω est associé à une valeur (et une seule) de la variable aléatoire,
qu’on notera X(ω)
— A l’inverse, pour tout intervalle J de R, X −1 (J) est un événement de P(Ω)
Distribution de probabilité
Étant donnés un espace probabilisé discret (Ω, P(Ω), P) et une variable aléatoire discrète X à valeurs dans X ,
on définit une mesure de probabilité PX sur R qui est l’image de la mesure de probabilité P par l’application
X :
∀x ∈ X , PX (X = x) , P({ω ∈ Ω tel que X(ω) = x}) , P X −1 (x)
La famille {PX (X = x)}x∈X est appelée la distribution de probabilité (ou loi de probabilité) de la variable
aléatoire X
X
— On a PX (X = x) = 1
x∈X
Espérance
Soit X une variable aléatoire discrète à valeurs dans X . On appelle espérance et on note E[X] la quantité :
X
E[X] = x PX (X = x)
x∈X
— Cette quantité correspond à la valeur moyenne espérée par un observateur lors d’une réalisation de la variable
aléatoire X
— Si Y est la variable aléatoire définie par Y = ϕ(X), alors
X X
E[Y ] = ϕ(x) PX (X = x) = y PY (Y = y)
x∈X y∈Y
Propriétés de l’espérance
ϕ (E[X]) ≤ E [ϕ(X)]
(1) Trivial
(2) Notons X = {x1 , . . . , xM } et pi = PX (X = xi ).
PM
— En remarquant que pi > 0 et i=1 pi = 1 et en appliquant l’inégalité de Jensen classique, on
obtient !
XM X
M
ϕ pi x i ≤ pi ϕ(xi )
i=1 i=1
— Si ϕ est strictement convexe, il y a égalité si et seulement si tous les xi sont égaux, donc ssi X est
un singleton.
Variance
Inégalités utiles
E[X]
∀α > 0, P(X ≥ α) ≤
α
Soit α > 0 et X une variable aléatoire positive. Soit A lévénement défini par :
A = {X ≥ α}
— Appliquer l’inégalité de Markov avec la variable Y = (X − E[X])2 (qui est bien positive) et α2
— Remarquer que P (X − E[X])2 ≥ α2 = P (|X − E[X]| ≥ α)
Étant données deux variables aléatoires discrètes X et Y respectivement à valeurs dans X et Y, on appelle
loi jointe (ou conjointe) et on note PXY la loi :
∀x ∈ X , ∀y ∈ Y PXY (X = x, Y = y) , P X −1 (x) ∩ Y −1 (y)
— On note parfois pXY (x, y) , PXY (X = x, Y = y) ou p(x, y) lorsque le contexte est évident
Loi jointe
[
— Comme tous les événements Y −1 (y) y∈Y
sont incompatibles deux à deux et que Ω = Y −1 (y), on peut
y∈Y
écrire grâce à la loi des probabilités totales :
X X
PXY (X = x, Y = y) = P X −1 (x) ∩ Y −1 (y)
y∈Y y∈Y
= P X −1 (x)
= PX (X = x)
— De la même façon, on a : X
PXY (X = x, Y = y) = PY (Y = y)
x∈X
Indépendance
X, Y Y =0 Y =1 Y =2
X=0 0 0 0.25
X=1 0 0.5 0
X=2 0.25 0 0
Lois conditionnelles
PXY (X = x, Y = y)
∀x ∈ X PX|Y =y (X = x|Y = y) =
PY (Y = y)
∀x ∈ X , ∀y ∈ Y PX|Y =y (X = x|Y = y) = PX (X = x)
Considérons une suite de variables aléatoires (Xn )n∈N∗ évoluant toutes dans un même espace probabilisé
discret. On dit que cette suite converge en probabilité vers X si
et on note
p
Xn −
→X
Considérons une suite de variables aléatoires (Xn )n∈N∗ indépendantes et identiquement distribuées de loi PX
et la suite (Yn )n∈N∗ définie par
1X
n
Yn = Xi
n i=1
Alors
∀ϵ > 0, lim P(|Yn − E[X]| ≥ ϵ) = 0
n→∞
ou
p
Yn −
→E[X]
Autrement dit, la loi faible des grands nombres (Khintchine) affirme que (Yn ) converge en probabilité vers
l’espérance E[X]
— Calcul de l’espérance de Yn
1X
n
E[Yn ] = E[Xi ]
n i=1
= E[X]
— Calcul de la variance de Yn
1 X
n
var[Yn ] = var[Xi ]
n2 i=1
1
= var[X]
n
— D’après Bienaymé-Tchebychev on a donc
var[X]
P(|Yn − E[X]| ≥ ϵ) ≤
nϵ2
Il suffit ensuite de faire tendre n → +∞
2 Schéma de Shannon
2.1 Système de communication
Systèmes de communication
— Une des contributions de Shannon dans son article de 1948 fut un schéma qui modélisait de façon formelle la
communication entre deux machines.
— Ce schéma est désormais très largement utilisé en télécommunications, mais également parfois pour modéliser
la communication humaine.
— Il met en évidence 3 acteurs indispensables à la transmission de l’information : la source (celui qui envoie
l’information), le canal (qui transmet l’information) et le destinataire (qui reçoit l’information).
Schéma général
Bruit
Source
Bruit
La source envoie un message, souvent constitué d’une série de symboles pris dans un alphabet donné. On parle dans
ce cas de message numérique.
— Données discrètes : texte, numéros...
— Données analogiques numérisées : image, voix, vidéo...
Emetteur
Bruit
Canal
Bruit
Récepteur
Bruit
Destinataire
Bruit
x1:n = x1 x2 x3 x4 . . . xn
appartenant à X n
— L’émission d’un message de longueur n fait donc intervenir n variables aléatoires qu’on pourra noter X1:n =
X1 , X 2 , X 3 , X 4 , . . . X n .
— Xi est la variable aléatoire correspondant au symbole émis par la source à l’instant i
Illustration
A ... C ... C
X = {A, B, C}
Source
X1 X2 X3
Processus stochastique
On appelle processus stochastique une séquence indexée (Xn )n∈N∗ de variables aléatoires. Le processus est
caractérisé par la loi jointe
— L’envoi d’un message de n symboles peut ainsi être modélisé sous la forme d’un processus stochastique
— On notera dans la suite X1:n = X1 X2 X3 X4 . . . Xn le processus et x1:n = x1 x2 x3 x4 . . . xn ∈ X n le message
Modélisation de la source
— Il existe un très grand nombre de processus stochastiques qui peuvent être utilisés pour modéliser le compor-
tement d’une source
— On verra dans le cours trois principaux modèles :
— Processus stationnaire
— Processus de Markov
— Source sans mémoire
— Les deux premiers permettent de gérer une dépendance entre les symboles envoyés successivement, alors que
le troisième suppose un envoi indépendant
Processus stationnaire
— Par extension, une source est dite stationnaire si ses propriétés statistiques n’évoluent pas au cours du temps
— Il s’agit d’un modèle générique qui inclut un grand nombre de modélisations de source
— Cette hypothèse de stationnarité peut n’être valide que sur une plage de temps donnée . Nous reviendrons sur
cette notion de stationnarité dans la partie dédiée à la théorie du signal.
Processus de Markov
— Attention : un processus de Markov invariant temporellement n’est pas nécessairement stationnaire (voir Pro-
blème 1)
— Pour une source sans mémoire, l’étude de l’émission d’un message est ramenée à celle d’une seule variable
aléatoire X correspondant à l’émission d’un seul symbole.
— Les symboles émis à chaque instant ne dépendent pas de ceux qui ont été envoyés précédemment, d’où le terme
sans mémoire. C’est comme si à chaque instant, la source oubliait le symbole qu’elle avait envoyé avant.
— Une source sans mémoire est toujours stationnaire
Illustration
A ... C ... C
X = {A, B, C}
Source
X1 X2 X3
— Sans mémoire : les variables aléatoires X1 , X2 et X3 sont toutes indépendantes et identiquement distribuées : X1 ∼ X,
X2 ∼ X et X3 ∼ X
Par exemple, PX1 (X1 = A) = PX2 (X2 = A) = PX3 (X3 = A) = PX (X = A)
— Si l’on suppose en plus que la source est également sans mémoire, il suffit d’étudier l’émission, la transmission
et la réception d’un symbole unique.
Matrice de transfert
— Dans le cas d’un canal sans mémoire, la loi pY |X (y|x) caractérise complètement les perturbations du canal :
elle donne la loi régissant la transformation des symboles de X en symboles de Y
— On peut donc représenter le canal par un schéma fléché ou une matrice PY |X=x (Y = y|X = x) x∈X ,y∈Y
qu’on appelle matrice de transfert.
Illustration
X = {A, B, C} Y = {A, B, C}
Canal
AABACBABC ACBACBAAC
— Matrice de transfert :
Y |X Y =A Y =B Y =C
3 1
X=A 4
0 4
1 2
X=B 3 3
0
X=C 0 0 1
— Plus les perturbations sont importantes, plus les symboles de la sortie ont tendance à être différents de ceux de l’entrée.
Supposons qu’on envoie un bit (0 ou 1) à travers un canal sans bruit et sans mémoire. On suppose que la source est également
sans mémoire. Dans ce cas, on a :
— Pour modéliser le canal, il suffit de considérer l’émission, la transmission et la réception d’un seul bit.
— X ∈ {0, 1} et Y ∈ {0, 1}
— Comme il n’y a aucune perturbation, on sait que si un 0 a été émis, c’est un 0 qui a été reçu (et idem pour le 1). La loi
conditionnelle pY |X (y|x) modélisant l’action du canal peut donc s’écrire :
Y |X Y =0 Y =1
X=0 1 0
X=1 0 1
1−ϵ
0 0
ϵ
ϵ
1 1
1−ϵ
Canal en Z
1−ϵ
0 0
ϵ
1 1
1
Canal à effacement
1−ϵ
0 0
ϵ
e
ϵ
1 1
1−ϵ
3 Information et entropie
3.1 Information élémentaire
Information élémentaire
— Comme nous l’avons vu dans l’introduction, l’un des buts de Shannon était d’associer une valeur calculable à
la quantité d’information contenue dans un événement ou dans un message.
— Nous allons considérer un événement élémentaire A, ayant une probabilité d’apparition p, et construire une
fonction I(.) qui associe à A une quantité d’information élémentaire I(A)
— La vision de Shannon de l’information est une vision probabiliste : le sens et la sémantique n’interviennent pas.
La quantité d’information contenue dans un événement (ou un message) ne dépendra que de sa probabilité
d’apparition.
Information élémentaire
— Postulat 1 : La quantité d’information d’un événement élémentaire ne dépend que de sa probabilité d’apparition
(cf introduction). I(A) est donc une fonction de p. On appellera dans la suite cette fonction Ψ
I(A) = Ψ(p)
Ψ(1) = 0
Information élémentaire
Il reste encore beaucoup de fonctions possibles... Et que se passe-t-il si on nous transmet non pas une, mais deux
informations ?
A : Il va pleuvoir demain
B : Il y a un examen demain
— Les deux informations n’ont aucun rapport entre elles, on reçoit donc la somme des deux informations.
— A et B sont indépendants, il n’y a pas de relations entre eux
— Postulat 5 : L’information I(A ∩ B) apportée par deux événements indépendants correspond à la somme des
informations apportées par l’un et l’autre
I(A ∩ B) = I(A) + I(B)
— Quelle conséquence sur la fonction Ψ ?
Information élémentaire
— Notons q la probabilité de l’événement B :
I(A ∩ B) = Ψ (P(A ∩ B))
= Ψ (P(A) × P(B)) car A et B indépendants
= Ψ (pq)
— Or, on a également par le postulat 5 :
I(A ∩ B) = I(A) + I(B)
= Ψ (p) + Ψ (q)
— On a donc :
Ψ (pq) = Ψ (p) + Ψ (q)
Information élémentaire
— Etant donnés les postulats...
Ψ (pq) = Ψ (p) + Ψ (q)
Ψ(1) = 0, Ψ(0) = +∞ et Ψ décroissante
— ... il ne reste qu’une possibilité !
Ψ(p) = −λ ln(p) avec λ > 0
1
— La valeur couramment choisie pour λ est , ce qui nous ramène à un logarithme en base 2, pratique pour
ln(2)
traiter les communications binaires
Information élémentaire
Étant donné un événement A ayant une probabilité P(A), on définit son information élémentaire I(A)
comme la quantité :
Source binaire
Étant donnée une source modélisée par une variable aléatoire X à valeurs dans X , on définit l’entropie de
la source et on note H(X) la quantité :
X
H(X) = − pX (x) log2 (pX (x))
x∈X
c’est à dire que l’entropie correspond à l’espérance (moyenne statistique) de l’information élémentaire, d’où
l’interprétation en terme d’information moyenne.
— On prend la convention 0 log2 (0) = 0 : un événement impossible n’intervient pas dans la somme
On considère deux sources X et X ′ à valeurs dans X = {1, 2, 3} dont les lois de probabilités sont données par le tableau suivant :
pX (x) pX ′ (x)
1 1
1 2 3
1 1
2 4 3
1 1
3 4 3
— H(X) = − 12 log2 1
2
− 14 log2 14 − 14 log2 14 = 1.5 bits
1
— H(X ′ ) = − 3 log2 3 − 3 log2 13 − 13 log2 13 = 1.6 bits
1 1
Entropie et incertitude
Source binaire
Entropie et incertitude
0.9
0.8
0.7
0.6
H(X)
0.5
0.4
0.3
0.2
0.1
0
0 0.2 0.4 0.6 0.8 1
p
Nombre de questions
ACJK
ZSnh
Nombre de questions oui/non pour trouver la couleur ♡, ♢, ♣, ♠ d’une carte tirée au hasard ?
Nombre de questions
— On a intérêt à demander dans l’ordre ♢, ♡, ♣, ♠
— ♢ : 1 chance sur 2 de ne poser qu’une question
— ♡ : 1 chance sur 4 de ne poser que deux questions
— ♣ : 1 chance sur 8 de ne poser que trois questions
— ♠ : 1 chance sur 8 de poser également trois questions
Nombre moyen de question : 1.75 = H(X)
Définition
Etant données deux variables aléatoires discrètes X et X ′ à valeurs dans X , dont on notera respectivement
pX (x) = PX (X = x) et qX ′ (x) = PX ′ (X ′ = x) leurs lois de probabilité. On appelle divergence de
Kullback-Leibler (ou entropie relative) la quantité :
X
pX (x)
DKL (p||q) = pX (x) log2
qX ′ (x)
x∈X
Inégalité de Gibbs
Etant données deux variables aléatoires discrètes X et X ′ à valeurs dans X , dont on notera respectivement
pX (x) = PX (X = x) et qX ′ (x) = PX ′ (X ′ = x) leurs lois de probabilité. On a
DKL (p||q) ≥ 0
d2 log2 (x) 1 d x1
− = −
dx2 ln(2) dx
1
= 2
>0
x ln(2)
∀x ∈ X , qX ′ (x) = λ × pX (x)
Comme les {pX (x)}x∈X et les {qX ′ (x)}x∈X sont des distributions de probabilités, elles somment à 1
et on a forcément λ = 1
Donc l’égalité a lieu si et seulement si ∀x, pX (x) = qX ′ (x)
Interprétation
— La divergence de Kullback Leibler peut être interprétée comme une mesure de dissimilarité entre deux lois de
probabilité discrètes.
— Mathématiquement en revanche, il ne s’agit pas d’une distance car elle ne vérifie ni la propriété de symétrie,
ni l’inégalité triangulaire. En revanche on a bien la propriété de séparation :
— La quantité DKL (p||q) est toujours positive, et plus elle est proche de 0, plus cela signifie que les distributions
de probabilité pX (x) et qX ′ (x) sont proches
— L’inégalité de Gibbs est fondamentale en théorie de l’information et servira à la démonstration de nombreux
théorèmes
Or d’après l’inégalité de Gibbs, on sait que cette quantité est toujours positive, avec égalité ssi les
distributions sont égales.
(3) Voir plus loin : nous n’avons pas encore tous les outils...
— On a vu que l’entropie mesurait l’information moyenne apportée par une source (ou de façon équivalente par
une variable aléatoire)
— Nous allons dans ce cours estimer l’information moyenne apportée par un système de deux variables aléatoires
— Cela va nous servir à étudier deux sources, mais surtout à étudier les liens entre l’entrée et la sortie d’un canal
de communication.
Entropie conjointe
Étant données deux variables aléatoires X et Y à valeurs respectivement dans X et Y, on définit l’entropie
conjointe des variables aléatoires X et Y et on note H(X, Y ) la quantité :
XX
H(X, Y ) = − pXY (x, y) log2 (pXY (x, y))
x∈X y∈Y
4.1.2 Propriétés
Propriétés de l’entropie conjointe
(1) Trivial
(2) Même démonstration que pour H(X)
(3) En remarquant que pXY (x, y) = PXY (X = x, Y = y) et qXY (x, y) = PX (X = x)PY (Y = y) sont des
lois de probabilité on calcule
XX
pXY (x, y)
DKL (p||q) = pXY (x, y) log2
pX (x)pY (y)
x∈X y∈Y
XX
= pXY (x, y) log2 (PXY (X = x, Y = y))
x∈X y∈Y
XX
− pXY (x, y) log2 (pX (x)pY (y))
x∈X y∈Y
X X
= −H(X, Y ) − log2 (pX (x)) pXY (x, y)
x∈X y∈Y
X X
− log2 (pY (y)) pXY (x, y)
y∈Y x∈X
= −H(X, Y ) + H(X) + H(Y )
(4)
XX
H(X, Y ) = − pXY (x, y) log2 (pXY (x, y))
x∈X y∈Y
XX
= − pY |X (y|x)pX (x) log2 pY |X (y|x)pX (x)
x∈X y∈Y
XX
= − pY |X (y|x)pX (x) log2 pY |X (y|x)
x∈X y∈Y
XX
− pY |X (y|x)pX (x) log2 (pX (x))
x∈X y∈Y
Cette propriété nous dit que, si l’on considère deux sources X et Y ensemble, elles ne peuvent pas apporter plus
d’information que la somme des apports d’information de chacune
Prévisions météo
X, Y Y = chaud Y = froid
X = soleil 0.3 0.2
X = pluie 0.1 0.4
— On a vu que ce n’était pas parce qu’on considérait deux sources qu’on obtenait beaucoup plus d’information
— On a en effet :
max (H(X), H(Y )) ≤ H(X, Y ) ≤ H(X) + H(Y )
— Qu’est-ce qui explique les variations de H(X, Y ) entre ces deux bornes ?
— Les liens éventuels entre les variables : il arrive parfois que connaissant Y , la source X donne moins d’informa-
tion, tout simplement parce que Y nous a déjà transmis une partie de l’information contenue dans X
— Pour étudier ceci, on va introduire la notion d’entropie conditionnelle
Entropie conditionnelle
Étant données deux variables aléatoires X et Y à valeurs respectivement dans X et Y, on définit l’entropie
conditionnelle de X sachant Y et on note H(X|Y ) la quantité :
XX
H(X|Y ) = − pXY (x, y) log2 pX|Y (x|y)
x∈X y∈Y
4.2.2 Propriétés
Propriétés de l’entropie conditionnelle
(1) H(X|Y ) est une somme de termes positifs, elle donc nulle ssi tous les termes sont nuls donc ssi la loi
PX|Y =y (X = x|Y = y) est singulière (c’est à dire nulle partout sauf pour une valeur de X = x où elle
vaut 1). X est donc une fonction déterministe de Y .
(2)
XX
H(X, Y ) = − pXY (x, y) log2 (pXY (x, y))
x∈X y∈Y
XX
= − pXY (x, y) log2 pY |X (y|x)pX (x)
x∈X y∈Y
XX
= − pXY (x, y) log2 pY |X (y|x)
x∈X y∈Y
XX
− pXY (x, y) log2 (pX (x))
x∈X y∈Y
X X
= H(Y |X) − log2 (pX (x)) pXY (x, y)
x∈X y∈Y
= H(Y |X) + H(X)
(3) On a démontré précédemment que que H(X, Y ) ≤ H(X) + H(Y ) avec égalité ssi X et Y sont indépen-
dantes. Or on a également H(X, Y ) = H(X|Y ) + H(Y ) donc a bien
H(X|Y ) ≤ H(X)
Considérons deux sources X et Y : cette propriété nous dit que l’information fournie par les deux sources est la
somme de l’information fournie par l’une des sources et de l’incertitude restante sur l’autre source
Prévisions météo
H(X, Y ) = 1.8464 bits, X(X) = 1 bit, H(Y |X) = 0.8464 bits et H(Y ) = 0.9710 bits
H(X, Y ) = H(X) + H(Y |X)
| {z } | {z } | {z }
inf ormation f ournie par les deux sources inf ormation f ournie par X incertitude restante sur Y
On vérifie ici que si l’on connaît déjà X, Y donne moins d’information que si on avait aucune information a priori
(3) Soit ϕ : X → Y, on a
— Egalité ssi H(X|ϕ(X)) = 0 donc ssi ∃ψ telle que X = ψ(ϕ(X)), donc ssi ϕ est injective
Propriété utile
P
où H(X|Y = y) = − x∈X PX|Y (X = x|Y = y) log2 PX|Y (X = x|Y = y)
H(X) : Entropie de X
— Information moyenne fournie par X
— Incertitude sur la variable aléatoire X
Diagramme de Venn
H(Y ) : Entropie de Y
— Information moyenne fournie par Y
— Incertitude sur la variable aléatoire Y
Diagramme de Venn
Diagramme de Venn
Diagramme de Venn
Diagramme de Venn
Étant données deux variables aléatoires X et Y à valeurs respectivement dans X et Y, on définit l’information
mutuelle de X et Y (ou la transinformation) et on note I(X; Y ) la quantité :
XX
pXY (x, y)
I(X; Y ) = pXY (x, y) log2
pX (x)pY (y)
x∈X y∈Y
Interprétation
— On peut remarquer que : I(X; Y ) = DKL (pXY (x, y)||pX (x)pY (y))
— I(X; Y ) est donc un indicateur d’indépendance de variables aléatoires.
— Plus pXY (x, y) ressemble à pX (x)pY (y), plus I(X, Y ) sera faible et moins les variables seront corrélées.
4.4.2 Propriétés
Propriétés de l’information mutuelle
(1) Trivial
(2) Même principe que la (2) du théorème 1.9
(3) Idem
(4) Vient du fait que I(X; Y ) = DKL (pXY (x, y)||pX (x)pY (y)) et de l’inégalité de Gibbs
(5) H(X|Y ) et H(Y |X) sont positives d’où l’inégalité. Elles sont nulles ssi l’une est fonction de l’autre (voir
(1) du théorème 1.9)
Information mutuelle
Prévisions météo
X, Y Y = chaud Y = froid
X = soleil 0.3 0.2
X = pluie 0.1 0.4
H(X, Y ) = 1.8464 bits, X(X) = 1 bit, H(Y ) = 0.9710 bits donc I(X; Y ) = 0.1246 bits
Exprime le fait qu’il y a une dépendance entre X et Y et mesure l’information commune aux deux sources.
1−ϵ
0 0
1 1
1−ϵ
0.9
0.8
0.7
0.6
I(X;Y)
0.5
0.4
0.3
0.2
0.1
0
0 0.2 0.4 0.6 0.8 1
ε
Jeu du Qui-est-ce ?
Jeu du Qui-est-ce ?
On considère ici des questions ouvertes, par exemple Quelle est sa couleur de cheveux ? :
— Cheveux ∈ {blond, brun, roux, chauve}
— Lunettes ∈ {oui, non}
— Yeux ∈ {bleus, verts, marron}
— Pilosité ∈ {rien, moustache, barbe}
— Peau ∈ {claire, foncée}
Jeu du Qui-est-ce ?
— Entropie totale du jeu : 3.5069 bits
— Question 1 : question avec l’entropie maximale → cheveux (1.7232 bits)
— Question 2 : question avec l’entropie conditionnelle maximale sachant les cheveux → yeux (1.1170 bits supplé-
mentaires soit 2.8402 bits)
— Question 3 : question avec l’entropie conditionnelle maximale sachant les cheveux et les yeux → lunettes ou
pilosité équivalents (0.2667 bits supplémentaires soit 3.1069 bits)
— Question 4 : question avec l’entropie conditionnelle maximale sachant les cheveux, les yeux et les lunettes →
pilosité (0.2667 bits supplémentaires soit 3.3736 bits)
— Question 5 : dernière question restante → peau (0.1333 bits supplémentaires soit 3.5069 bits)
Propriétés
(1) I(X; Y |Z) ≥ 0 avec égalité ssi X → Z → Y forment une chaîne de Markov
(2) De nombreuses équivalences peuvent être démontrées grâce à un diagramme de Venn :
(3) Corollaire
H(X|Z) ≥ H(X|Y, Z)
Plus on conditionne, plus on réduit l’entropie
et que les deux termes sont bien des distributions de probabilité. La nullité a lieu si p(x, y|z) = p(x|z)p(y|z)
donc si X et Y sont indépendantes conditionnement à Z.
(2) Toujours le même raisonnement...
(3) Direct à partir de (1) et (2)
Diagramme de Venn
H(X) H(Y)
H(Z)
Diagramme de Venn
Diagramme de Venn
H(X,Y|Z)
I(X;Y|Z)
H(X) H(Y)
H(X|Z) H(Y|Z)
H(Z)
Diagramme de Venn
H(X|Y,Z)
I(X;Y|Z)
H(X) H(Y)
H(X|Z)
H(Z)
Diagramme de Venn
H(Y|X,Z)
I(X;Y|Z)
H(X) H(Y)
H(Y|Z)
H(Z)
H (X1:n ) = H (X1:n−1 , Xn )
= H (X1:n−1 ) + H (Xn |X1:n−1 )
Egalité lorsque ∀i, H(Xi |X1:i−1 ) = H(Xi ) donc lorsque tous les Xi sont indépendants deux à deux
(2) D’après (1) et en notant X0 = Y
— Information mutuelle
Cadre
X1:n ∈ X n Y1:n ∈ Y n
Y
n
∀n, x1:n , y1:n , p (y1:n |x1:n ) = pY |X (yi |xi )
i=1
5.1 Définition
Conséquence de la loi des grands nombres
— D’après la loi faible des grands nombres, la variable Zn converge en probabilité vers une variable déter-
ministe égale à
E [− log2 (p(Xi ))] = H(X)
— Elle nous indique que pour une source sans mémoire, lorsque n → ∞ toutes les séquences concentrant l’essentiel
de la probabilité deviennent équiprobables et qu’on peut grossièrement estimer leur probabilité à
p(x1:n ) ≈ 2−nH(X)
— Comme nous allons le voir dans la suite, on va pouvoir diviser l’ensemble des séquences de X n en séquences
1
typiques pour lesquelles − log2 (p(x1:n )) est proche de H(X) et les autres appelées séquences atypiques
n
— Cette propriété va avoir des conséquences très importantes notamment pour le codage et la compression des
données au niveau de la source
Soit ϵ > 0. On appelle ensemble des séquences typiques de longueur n (ou typical set en anglais) et on note
(n)
Tϵ l’ensemble défini par
n o
Tϵ(n) = x1:n ∈ X n , t.q 2−n(H(X)+ϵ) ≤ p (x1:n ) ≤ 2−n(H(X)−ϵ)
1
= x1:n ∈ X n , t.q H(X) − ϵ ≤ − log2 (p(x1:n )) ≤ H(X) + ϵ
n
= 2−n(H(X)+ϵ) |Tϵ(n) |
= 2−n(H(X)−ϵ) |Tϵ(n) |
Interprétation
— Lorsque n → ∞ la probabilité d’avoir une séquence typique est quasiment de 1
— Il y a approximativement 2nH(X) séquences typiques qui ont toutes approximativement une probabilité d’ap-
parition 2−nH(X) : comme si l’on considérait un sous ensemble de taille 2nH(X) muni d’une loi uniforme
— Intuitivement vu qu’il est peu probable qu’une séquence soit atypique, en terme de compression et de trans-
mission, il suffit donc de s’intéresser aux séquences typiques, ce qui va considérablement simplifier les choses !
— La proportion de séquences typiques dépend de l’entropie de la source
2nH(X)
= 2n(H(X)−log2 (|X |))
2n log2 (|X |)
Interprétation
Expérimentation
— Source sans mémoire suivant une loi de Bernouilli de probabilité p = 0.2
— Parmi ces probabilités, certaines ne représentent que très peu de séquences (par exemple k = 0 ou k = n où il
n’y a qu’une séquence de concernée), et contribuent donc très peu à la probabilité globale
— La contribution à la probabilité globale des séquences ayant k fois le bit 1 est
Cnk pk (1 − p)n−k
Expérimentation
0.09
0.08
0.07
0.06
P(E=k)
0.05
0.04
0.03
0.02
0.01
0
0 10 20 30 40 50 60 70 80 90 100
k
Si je tire au hasard une séquence générée selon ce modèle, il y a presque 80% de chances qu’elle contienne entre 15
et 25 bits égaux à 1, donc que sa probabilité individuelle d’apparition soit comprise entre p25 (1 − p)75 et p15 (1 − p)85
Expérimentation
— On va tracer, pour chaque valeur de k entre 0 et n, la quantité − n1 log2 (p(x1:n )) (probabilité individuelle
d’apparition) en fonction de Cnk pk (1 − p)n−k (contribution à la probabilité globale)
(n)
— On va mettre en rouge les séquences appartenant au typical set Tϵ avec ϵ = 0.1, donc celles pour lesquelle
on a − n1 log2 (p(x1:n )) compris entre 0.62 et 0.82
— En sommant leurs contributions à la probabilité globale, on pourra estimer la probabilité pour une séquence
tirée aléatoirement selon ce modèle d’appartenir au typical set
Expérimentation
0.7
0.25
0.6
0.2
0.5
Ck pk (1-p)n-k
n-k
Cn p (1-p)
0.4 0.15
k
n
k
0.3
0.1
0.2
0.05
0.1
0 0
0 0.5 1 1.5 2 2.5 0 0.5 1 1.5 2 2.5
k n-k
-log (p(x ))/n avec p (1:n)=p (1-p) -log (p(x ))/n avec p (1:n)=pk (1-p)n-k
2 1:n x 2 1:n x
Expérimentation
N = 20 - p = 0.2 - Probabilité Typical Set = 0.39 N = 50 - p = 0.2 - Probabilité Typical Set = 0.62
0.14
0.2
0.12
0.18
0.16 0.1
0.14
Ckn pk (1-p)n-k
n-k
0.08
Cn p (1-p)
0.12
k
0.1
0.06
k
0.08
0.06 0.04
0.04
0.02
0.02
0 0
0 0.5 1 1.5 2 2.5 0 0.5 1 1.5 2 2.5
k n-k
-log (p(x ))/n avec p (1:n)=p (1-p) -log (p(x ))/n avec p (1:n)=pk (1-p)n-k
2 1:n x 2 1:n x
Expérimentation
N = 100 - p = 0.2 - Probabilité Typical Set = 0.78 N = 200 - p = 0.2 - Probabilité Typical Set = 0.92
0.1 0.08
0.09
0.07
0.08
0.06
0.07
0.05
Ckn pk (1-p)n-k
n-k
0.06
Cn p (1-p)
0.05 0.04
k
k
0.04
0.03
0.03
0.02
0.02
0.01
0.01
0 0
0 0.5 1 1.5 2 2.5 0 0.5 1 1.5 2 2.5
k n-k
-log2(p(x1:n))/n avec px(1:n)=p (1-p) -log2(p(x1:n))/n avec px(1:n)=pk (1-p)n-k
— Les propriétés statistiques de la source tendent à favoriser l’apparition de séquences typiques, pour lesquelles
on va pouvoir concevoir un traitement spécifique
— Nous allons maintenant nous intéresser au codage source, c’est à dire à la représentation de chaque séquence
de X n sous la forme d’une série de 0 ou 1
— Si l’on utilise une approche naïve, sachant qu’il y a en tout |X |n séquences possibles, il faudra dn log2 (|X |)e
bits pour coder chaque séquence
— Nous allons voir qu’en traitant séparément les séquences typiques et atypiques, on peut arriver à réduire
considérablement le nombre de bits moyen utilisé pour envoyer une séquence
Codage différencié
On va donc mettre en place la stratégie de codage suivante :
— Séquences typiques. On sait qu’il y a au plus 2n(H(X)+ϵ) séquences typiques. Si on décide de les coder
indépendamment des séquences atypiques il faudra donc utiliser dn (H(X) + ϵ)e bits
— Séquences atypiques. Pour les séquences atypiques on va utiliser l’approche naïve (sous-optimale) et donc
utiliser dn log2 (|X |)e
— Pour éviter qu’un code puisse être utilisé deux fois, on va utiliser le bit 0 en préfixe si la séquence est typique
et 1 si elle est atypique
Stratégie de codage
— Une séquence typique est donc codée au maximum sur n (H(X) + ϵ) + 2 bits tandis qu’une séquence atypique
est codée au maximum sur n log2 (|X |) + 2
— En notant l(x1:n ) le nombre de bits pour coder la séquence x1:n , on a donc une longueur moyenne
X
L̄ = p(x1:n )l(x1:n )
x1:n ∈X n
X X
≤ p(x1:n ) [n (H(X) + ϵ) + 2] + p(x1:n ) [n log2 (|X |) + 2]
(n) (n)
x1:n ∈Tϵ x1:n ∈T
/ ϵ
= P x1:n ∈ Tϵ(n) [n (H(X) + ϵ) + 2] + P x1:n ∈
/ Tϵ(n) [n log2 (|X |) + 2]
≤ n (H(X) + ϵ) + ϵn log2 (|X |) + 2
= n (H(X) + ϵ′ )
Interprétation
— Grâce un choix judicieux de ϵ et de n on peut rendre ϵ′ = ϵ + ϵ log2 (|X |) + n2 aussi petit que l’on veut
— Il nous faudra donc en moyenne nH(X) bits pour coder une séquence de n symboles, soit H(X) bits pour un
symbole
— Nouvelle interprétation de l’entropie : nombre moyen de bits qu’il faut pour coder la source
— Comme on sait que H(X) ≤ log2 (|X |), on peut donc parler de compression
— En revanche la stratégie de codage proposée est sous optimale et uniquement intéressante d’un point de vue
asymptotique
— Nous verrons dans la troisième partie du cours qu’il existe des codages plus performants : c’est l’objet de ce
que l’on appelle le codage source
Soit ϵ > 0, ϵ′ > 0 et des Qn séquences x̃1:n ∈ X et ỹ1:n ∈ Y générées selon le modèle source/canal sans
n n
(n)
(2) |Tϵ (X, Y )| ≤ 2n(H(X,Y )+ϵ)
(n)
(3) |Tϵ (X, Y )| ≥ (1 − ϵ)2n(H(X,Y )−ϵ) lorsque n → ∞
Interprétation
— Les démonstrations sont exactement les mêmes que pour l’ensemble des séquences typiques
— Il y a environ 2nH(X,Y ) séquences conjointement typiques, qui ont toutes une probabilité d’apparition conjointe
d’environ 2−nH(X,Y )
— Bien qu’il y ait environ 2nH(X) séquences d’entrée typiques et 2nH(Y ) séquences de sortie typiques, il n’y a
que 2nH(X,Y ) séquences conjointement typiques : toutes les paires de séquences typiques ne sont donc pas
conjointement typiques
— Le fait que l’on quasiment sûr que les deux séquences soient conjointement typiques vient du fait que l’une
est générée à partir de l’autre : il existe donc un lien fort entre elles. On verra par la suite que si les deux
séquences n’étaient pas générées selon un modèle source/canal sans mémoire, il y aurait beaucoup moins de
liens entre elles.
Interprétation
Exemple
1−p
0 0
p pY (y) = [0.65, 0.35]
0.6 0.15
pXY (x, y) =
0.05 0.2
p Séquences conjointement typiques
1 1
1−p x1:20 = 11111000000000000000
y1:20 = 11110111000000000000
p = 0.2
pX (x) = [0.75, 0.25]
Théorème 1.18 : Appartenance à l’ensemble des séquences conjointement typiques pour des sé-
quences générées individuellement
Soit ϵ > 0 et des séquences x̃1:n ∈ X n et ỹ1:n ∈ Y n générées individuellement selon (x̃1:n , ỹ1:n ) ∼
Q n
i=1 pX (xi )pY (yi ), on a :
(1) P (x̃1:n , ỹ1:n ) ∈ Tϵ (X, Y ) ≤ 2−n(I(X;Y )−3ϵ)
(n)
(2) Pour n suffisamment grand, P (x̃1:n , ỹ1:n ) ∈ Tϵ (X, Y ) ≥ (1 − ϵ)2−n(I(X;Y )+3ϵ)
(n)
Démonstration en exercice
Interprétation
— Etant données deux séquences x1:n et y1:n de grande taille et typiques chacune dans leur ensemble d’ori-
(n)
gine, alors leur probabilité d’appartenir à l’ensemble des séquences conjointement typiques Tϵ (X, Y ) dépend
fortement de leur mode de génération.
Qn
— Si elles sont créées conjointement selon la loi i=1 pXY (xi , yi ), alors leur probabilité d’y appartenir est environ
égale à 1
Qn
— Alors que d’après le théorème précédent, si elles sont générées séparément selon la loi i=1 pX (xi )pY (yi ),
cette probabilité est de l’ordre de 2−nI(X;Y )
— Nous verrons dans le Problème 4 que cette propriété est fondamentale et l’une des bases de la démonstration
du deuxième théorème de Shannon
Question : Etant donnée une séquence typique x̃1:n , combien y-a-t-il de séquences y1:n conjointement typiques avec
(n)
elle ? (on notera Tϵ (Y |x1:n ) cet ensemble)
X
1 = p (y1:n |x̃1:n )
y1:n ∈Y n
X
≥ p (y1:n |x̃1:n )
(n)
y1:n ∈Tϵ (Y |x1:n )
X p (x̃1:n , y1:n )
=
(n)
p(x̃1:n )
y1:n ∈Tϵ (Y |x̃1:n )
X
≥ 2−n(H(X,Y )+ϵ) 2+n(H(X)−ϵ)
(n)
y1:n ∈Tϵ (Y |x̃1:n )
Question : Etant donnée une séquence typique x̃1:n , combien y-a-t-il de séquences y1:n conjointement typiques avec
(n)
elle ? (on notera Tϵ (Y |x̃1:n ) cet ensemble)
Interprétation
Interprétation
Interprétation
— L’information mutuelle I(X; Y ) donne une limite théorique au nombre de couples de séquences conjointement
typiques (x1:n , y1:n ) que l’on peut définir pour une transmission sans erreur
— Il faut dans ce cas choisir judicieusement les séquences d’entrée x1:n , afin de faire en sorte que les ensembles
des séquences de sortie conjointement typiques avec chacune aient une intersection nulle
— La conception et l’implémentation de telles stratégies est appelée codage canal et il s’agit d’une thématique
de recherche actuellement très active, qui sera l’objet de la troisième partie du cours
— Attention, encore une fois toutes ces propriétés sont uniquement asymptotiques et donc pas nécessairement
implémentables en pratique
Deuxième partie
Codage source
Plan de la partie
1 Classes de codes source 60
1.1 Quelques définitions importantes . . . . . . . . . . . . . . . . . . . . . . . 60
1.2 Code non singulier . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
1.3 Code déchiffrable . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
1.4 Code instantané . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4 Code de Huffman 75
4.1 Algorithme de codage. . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.2 Optimalité du codage de Huffman . . . . . . . . . . . . . . . . . . . . . . 78
Emetteur
Bruit
Travaux de Shannon
La théorie de l’information et les travaux de Shannon ont permis de répondre à deux questions fondamentales sur
les systèmes de communication :
— Codage source : étant donnée une source, à quel point peut-on compresser les données lors du codage, tout en
faisant en sorte que le destinataire puisse toujours déchiffrer les messages que l’on envoie ? Premier théorème
de Shannon
— Codage canal : étant donné un canal de communication bruité, jusqu’à quel débit d’information peut-on
envoyer les données en conservant une probabilité d’erreur à la sortie qui soit limitée ? Deuxième théorème
de Shannon
Codage source
Considérons une source discrète sans mémoire, modélisée par une variable aléatoire discrète X à valeurs dans un
alphabet X .
— X est appelé l’alphabet source
— On va définir un deuxième alphabet S appelé alphabet code, qui va nous servir à coder les messages envoyés
par la source. Dans la majorité des cas (et dans la suite de ce cours), on va choisir S = {0, 1}
— Chaque symbole de l’alphabet source X va être associé à un symbole ou une suite de symboles de l’alphabet
de code S, que l’on appelle mot-code
— Le but du codage source est, qu’une fois codés dans S, les mots aient la longueur la plus petite possible. Il
s’agit donc d’introduire la notion de compression.
Codage source
Considérons une source ayant comme alphabet X = {A, B, C} et un message à envoyer AAAABAAAAC. On considère deux
codes différents ayant le même alphabet code S = {0, 1} :
Code n1 Code n2
A −→ 0 A −→ 11
B −→ 10 B −→ 1
C −→ 11 C −→ 00
Etant donnés un alphabet source X et un alphabet code S, on appelle fonction de codage source (ou
simplement code source) une fonction
c : X → S+
x 7→ c(x)
où S + est l’ensemble des séquences de S de longueur finie non nulle
c(n) : Xn → S+
(x1 , x2 , . . . , xn ) 7 → c(x1 )c(x2 ) . . . c(xn )
où c(x1 )c(x2 ) . . . c(xn ) est la concaténation des mots c(x1 ), c(x2 ), etc...
Etant donnée une fonction de codage source c, la longueur du code lc est la fonction
lc : X → N∗
x 7→ |c(x)|
Etant donnée une fonction de codage source c, la longueur moyenne du code c, notée Lc est la quantité
Lc = EX [lc (X)]
Si l’alphabet code S = {0, 1}, cette quantité s’exprime en bits par symbole.
Exemple
— L̄code1 = 1
4
×2+ 1
8
×3+ 1
8
×3+ 1
2
× 1 = 1.75 bits
— L̄code2 = 1
4
×2+ 1
8
×2+ 1
8
×2+ 1
2
× 2 = 2 bits
— Même s’il y a des mots plus longs dans le code 1, la longueur est moyenne est plus petite car on a affecté un mot très
court (0) au symbole le plus probable.
Soit une source X d’alphabet source X . Un code c : X → S + est dit optimal si et seulement si
∀c′ , L c ≤ L c′
— Un code optimal permet d’avoir la longueur moyenne la plus petite possible étant données les propriétés
statistiques de la source
— Un code est non singulier si les mots utilisés pour coder les symboles sont tous différents.
— Si la taille de l’alphabet source est M , et que l’on utilise un code en bloc de taille k, il faut donc définir M k
mots différents.
Les codes n1 et n2 présentés précédemment sont tous deux des codes non singuliers : les messages associés à tous les symboles
sont bien différents.
— Un code non singulier est déchiffrable si toute suite de mots ne correspond qu’un seul message.
— Cela signifie qu’un message codé sous forme de 0 et 1 ne peut se déchiffrer que d’une seule façon.
— n1 est bien déchiffrable car quelque soit le mot, il n’y a qu’une seule façon de le déchiffrer
— A l’inverse n2 n’est pas déchiffrable. Si l’on reçoit 11, on ne peut pas savoir si cela correspond à A ou à BB...
— On peut donc le déchiffrer de façon instantanée, sans utiliser de renseignements fournis par la suite du texte.
Code n1 Code n3
A −→ 0 A −→ 0
B −→ 10 B −→ 01
C −→ 11 C −→ 011
— n1 est instantané
— n3 n’est pas instantané (par exemple ici le mot associé à A est le début du mot associé à B), mais il est en revanche tout
de même déchiffrable car le bit 0 sert d’indicateur de début de mot.
x1 → 0 x2 , x 3 , x 4 , x 5 → 1 . . .
— Je ne peux pas choisir le mot 1 pour x2 car sinon je n’ai plus aucune possibilité pour les autres
— Je peux par exemple choisir le mot 10 pour x2 , mais dans ces cas là tous les autres mots doivent commencer
par 11
x2 → 10 x3 , x4 , x5 → 11 . . . etc...
0 0 1 1
00 0 1 01 10 0 1 11
0 1 0 1 0 1 0 1
000 001 010 011 100 101 110 111
0 0 1 1
00 0 1 01 10 0 1 11
0 1 0 1 0 1 0 1
000 001 010 011 100 101 110 111
— Si je choisis le mot 0, tous les mots des niveaux inférieurs sont interdits pour la suite.
0 0 1 1
10 0 1 11
0 1 0 1
100 101 110 111
— Si je choisis le mot 0, tous les mots des niveaux inférieurs sont interdits pour la suite.
0 0 1 1
10 0 1 11
0 1
110 111
— Si pour le deuxième mot, je choisis 10, je dois enlever les branches correspondantes, etc...
— Dans ce cours, nous allons nous focaliser sur les codes instantanés, qui permettent de pouvoir déchiffrer de
façon unique le message, mais également de pouvoir le faire à la volée en temps réel.
— On verra dans la suite comment créer un code instantané permettant de compresser au mieux les données.
— Trouver un bon code instantané revient à supprimer les bonnes branches dans l’arbre binaire
Soit X une source définie sur un alphabet source X = {x1 , . . . , xM }. On note pi = pX (xi ) et on suppose
p1 ≥ p2 ≥ . . . ≥ pM . Tout code binaire instantané c optimal vérifie :
(1) lc (x1 ) ≤ lc (x2 ) ≤ . . . ≤ lc (xM )
(2) lc (xM −1 ) = lc (xM )
L c′ − L c = p j l k + pk l j − pj l j − pk l k
= (pj − pk )(lk − lj )
Cette quantité est négative ce qui signifie que Lc′ < Lc , ce qui contredit l’optimalité de c.
(2) Supposons que lc (xM −1 ) 6= lc (xM ), alors comme aucun mot code n’est prefixe de c(xM ), ceci signifie
que le dernier bit de c(xM ) est inutile : ceci contredit donc l’optimalité de c.
Inégalité de Kraft
X
M
2−li ≤ 1
i=1
Inégalité de Kraft
— Attention, ce n’est pas parce qu’un code vérifie cette inégalité qu’il est instantané !
— En revanche, un code instantané doit vérifier cette propriété
— Toute la suite de ce chapitre consiste en la démonstration de ces deux propriétés
— Nous allons, en reprenant une construction par arbre binaire, conjecturer du nombre maximal de mots de
longueur j que l’on peut définir.
0 1
0 1
0 1 0 1
0 1
0 1
— En revanche si N1 = 1, une moitié de l’arbre n’est plus accessible, et on ne peut donc définir que 2 mots de
taille 2
— Dans l’exemple ci-contre, on a supposé que le mot 0 avait été choisi : dans ce cas on a uniquement deux mots
de taille 2 possibles : 10 et 11
0 1
N2 ≤ 4 − 2N1
N2 ≤ 22 − 21 N1
0 1
0 1 0 1
0 1 0 1 0 1 0 1
On suppose que N1 = 0
— Si N2 = 0, on a 8 mots de longueur 3 possibles : 000, 001, 010, 011, 100, 101, 110 et 111
0 1
0 1 0 1
0 1 0 1 0 1
On suppose que N1 = 0
— Si N2 = 1, on a 2 mots en moins de longueur 3 possibles
— Dans l’exemple ci-contre, on a supposé que le mot 01 avait été choisi : dans ce cas les mots 010 et 011 ne sont
plus possibles
— Dans le cas général, si N2 est non nul, on enlève donc 2N2 mots de longueur 3
0 1
0 1
0 1 0 1
N3 ≤ 23 − 22 N1 − 2N2
— Parmi les longueurs {l1 , . . . , lM }, il y en a N1 égales à 1, N2 égales à 2, etc..., ce qui fait qu’on retrouve
immédiatement la relation :
XM
2−li ≤ 1
i=1
X
M
2l M ≥ 2lM −li
i=1
Inégalité de McMillan
— L’inégalité de Kraft fournit une contrainte sur les longueurs que l’on peut utiliser pour construire un code
instantané
— Une question légitime est : si l’on décide de relâcher la contrainte d’instantanéité et de construire un code
déchiffrable, peut-on faire mieux ?
— Réponse : NON ! La même inégalité est valable pour les codes déchiffrables : il s’agit de l’inégalité de McMillan
(démonstration en exercice)
— En réalité si on peut construire un code déchiffrable avec certaines longueurs, alors on peut toujours construire
un code instantané avec les mêmes longueurs
Etant donnée une source modélisée par une variable aléatoire discrète X sur un alphabet source X et un code
+
binaire instantané c : X → {0, 1} , alors on a
Lc ≥ H(X)
Avec égalité si et seulement si ∀x, p(x) = 2−lc (x) (on dit dans ce cas que le code est absolument optimal)
— La plus petite longueur moyenne possible pour un code instantané est l’entropie : attention ce minimum peut
ne pas être atteignable
— La même contrainte est valable pour les codes déchiffrables (McMillan vs. Kraft)
X
M
— Lc = pi l i
i=1
— Q ≤ 1 d’après Kraft
X
M
pi
DKL (p||q) = pi log2
i=1
qi
X
M X
M
1
= pi log2 (pi ) + pi log2
i=1 i=1
qi
X
M
1
= −H(X) + pi log2
i=1
qi
X
M
Q
= −H(X) + pi log2
i=1
2−li
= −H(X) + Lc + log2 (Q)
On considère une source X à valeurs dans X = {1, 2, 3} dont les lois de probabilités sont données par le tableau suivant :
pX (x) Code
1
1 2
1
1
2 4
01
1
3 4
00
— On a H(X) = − 12 log2 1
2
− 1
4
log2 1
4
− 1
4
log2 1
4
= 1.5 bits
— On a L̄ = 1
2
×1+ 1
4
×2+ 1
4
× 2 = 1.5 bits
— Toutes les probabilités d’apparition sont des puissances de 2, on peut donc trouver un code absolument optimal et l’on
atteint la borne inférieure pour la longueur moyenne.
H(X)
ν=
Lc
Pour un code instantané (ou déchiffrable) on a ν ∈ [0, 1]
ρ=1−ν
Etant donnée une source modélisée par une variable aléatoire discrète X sur un alphabet source X , alors il
+
existe un code binaire instantané c : X → {0, 1} , tel que
— D’après Kraft, il existe donc un code instantané avec les longueurs li = d− log2 (pi )e
li = d− log2 (pi )e
— On a :
− log2 (pi ) ≤ li < − log2 (pi ) + 1
— Donc :
− log2 (pi ) pi ≤ li pi < − log2 (pi ) pi + pi
— En sommant :
X
M X
M X
M X
M
− log2 (pi ) pi ≤ l i pi < − log2 (pi ) pi + pi
i=1 i=1 i=1 i=1
— Et finalement :
H(X) ≤ Lc < H(X) + 1
Conséquences du théorème
— La démonstration du théorème nous a permis non seulement de prouver le résultat, mais également de construire
un code vérifiant cette double inégalité.
— En effet, étant donnée une source à M symboles ayant comme probabilités d’apparition p1 , . . . , pM , on sait
qu’en considérant les longueurs
li = d− log2 (pi )e
on sera capable de construire un code instantané dont la longueur moyenne sera proche de l’entropie de la
source.
— Un code binaire déchiffrable (ou instantané) dont la longueur moyenne L̄ vérifie
On considère une source X à valeurs dans X = {1, 2, 3} dont les lois de probabilités sont données par le tableau suivant :
pX (x)
1
1 3
1
2 3
1
3 3
— Grâce à la démonstration précédente, on sait qu’en prenant l1 = l2 = l3 = ⌈− log2 1
3
⌉ = 2 bits, on va pouvoir construire
un code instantané qui sera compact.
— En prenant par exemple 1 → 00, 1 → 01 et 2 → 10, on a bien un code déchiffrable de longueur moyenne L̄ = 2 bits
— Or H(X) = log2 (3) = 1.6 bits, donc on a bien : H(X) ≤ L̄ < H(X) + 1
— En réalité, on peut s’approcher aussi proche que l’on veut de l’entropie... à condition de ne pas coder directement
la source, mais de coder des blocs de longueur n
— Soit on peut transmettre le message en faisant des paquets de 2 symboles. Dans ces cas là, on aura 32 = 9 mots, un pour
chaque groupe de symboles.
AB AC CA BC
— C’est virtuellement comme si l’on considérait une source ayant non pas un alphabet à 3 symboles, mais à 9 symboles.
— Dans le deuxième cas, on dit que l’on travaille non pas sur la source X, mais sur son extension d’ordre 2, que l’on note
X [2]
Etant donnée une source sans mémoire modélisée par une variable aléatoire X sur un alphabet source X , et
X [n] son extension de degré n, on a
H X [n] = n H(X)
— Comme les Xi sont tous indépendants et identiquement distribués (car la source est sans mémoire) on
a bien
X n
H X [n] = H(Xi ) = nH(X)
i=1
— Sauf que si l’on code une extension d’ordre n, la longueur moyenne L̄c correspond à la longueur moyenne pour
coder un bloc de n symboles. Donc en réalité, la longueur moyenne du code Lsymc pour coder un seul symbole
est
L̄c
Lsym
c =
n
— On a donc finalement
1
H(X) ≤ Lsym
c < H(X) +
n
Etant donnée une source modélisée par une variable aléatoire discrète X sur un alphabet source X , alors pour
tout n ∈ N∗ il existe un code binaire instantané c de longueur moyenne pour coder un seul symbole Lsymc tel
que
1
H(X) ≤ Lsymc < H(X) +
n
Interprétation
1
H(X) ≤ Lsym
c < H(X) +
n
— Quand n → +∞ on a Lsym c = H(X) : on retrouve ici la propriété asymptotique déjà vue dans le chapitre
AEP. L’entropie est le nombre asymptotique moyen de bits qu’il faut envoyer un symbole.
— Le premier théorème de Shannon nous indique donc qu’on peut construire un code binaire instantané de
longueur moyenne par symbole L̄sym aussi près que l’on veut de l’entropie H(X), à condition de coder des
blocs de taille n suffisamment grande.
4 Code de Huffman
Conception d’un code instantané optimal
— Nous avons vu que l’entropie constituait une borne inférieure pour la longueur moyenne d’un code instantané
— La question qui suit est : comment construire un code instantané optimal, c’est à dire un code instantané de
longueur moyenne minimale, ayant un rendement maximal et une redondance minimale ?
— Le problème a été résolu en 1952 par David Albert Huffman qui a conçu un code instantané optimal aujourd’hui
utilisé dans de nombreux standard (MP3, JPEG, ZIP, PNG...) souvent en deuxième couche après un codage
propre au type de données
— Il existe bien entendu d’autres codes optimaux car il n’y a pas unicité dans le cas général, mais il s’agit
indéniablement du plus populaire
Soit X une source sans mémoire dont les propriétés statistiques sont connues.
1. On classe les probabilités d’apparition des symboles par ordre décroissant
2. On regroupe les deux symboles de probabilités les plus faibles pour en faire un nouveau symbole dont
la probabilité est la somme des probabilités de ces deux symboles. On classe ce nouveau symbole parmi
les autres, toujours par ordre décroissant de probabilité
3. On représente cette fusion sous forme d’un arbre où chacun des fils est l’un des deux symboles fusionnés
et où la racine est le nouveau symbole formé.
4. On réitère cette opération et à chaque étape le nombre de symboles diminue et l’arbre se construit.
5. On affecte le bit 0 à toutes les branches de gauche et 1 à toutes les branches de droite (ou l’inverse).
On lit les mots associés en partant de la racine et allant jusqu’à la feuille considérée.
On considère une source X à valeurs dans {x1 , x2 , x3 , x4 , x5 }, avec les probabilités d’apparition
{0.1, 0.3, 0.2, 0.1, 0.3}
x2 x5 x3 x1 x4
0.3 0.3 0.2 0.1 0.1
x1 x4 : 0.2
x1 : 0.1 x4 : 0.1
x2 x5 x3 x1 x4 x2 x5 x1 x4 x3
→
0.3 0.3 0.2 0.1 0.1 0.3 0.3 0.2 0.2
x1 x4 x3 : 0.4
x3 : 0.2 x1 x4 : 0.2
x1 : 0.1 x4 : 0.1
x2 x5 x1 x4 x3 x1 x4 x3 x2 x5
→
0.3 0.3 0.2 0.2 0.4 0.3 0.3
x1 x4 x3 : 0.4
x1 x4 x3 x2 x5 x2 x5 x1 x4 x3
→
0.4 0.3 0.3 0.6 0.4
x2 x5 x1 x4 x3 : 1
x2 x5 : 0.6 x1 x4 x3 : 0.4
x1 : 0.1 x4 : 0.1
x2 x5 x1 x4 x3 x2 x5 x1 x4 x3
→
0.6 0.4 1
x2 x5 x1 x4 x3 : 1
0 1
x2 x5 : 0.6 x1 x4 x3 : 0.4
0 1 0 1
0 1
x1 : 0.1 x4 : 0.1
x1 x2 x3 x4 x5
110 00 10 111 01
Forme canonique
Soit X une source définie sur un alphabet source X = {x1 , . . . , xM }. On note pi = pX (xi ) et on suppose
p1 ≥ p2 ≥ . . . ≥ pM . Il existe un code binaire instantané optimal c tel que :
(1) lc (x1 ) ≤ lc (x2 ) ≤ . . . ≤ lc (xM )
(2) lc (xM −1 ) = lc (xM )
(3) c(xM −1 ) et c(xM ) ne diffèrent que par le dernier bit
Un code binaire instantané optimal vérifiant ces propriétés est dit canonique (ou sous forme canonique)
Les deux premières assertions sont forcément vraies, car elles sont vraies pour tout code binaire instantané
optimal.
(3) On peut faire en sorte que cette propriété soit vérifiée en inversant des mots codes. En réarrangeant
l’arbre de codage on peut faire en sorte que les deux symboles les moins probables (qui d’après (1) et
(2) sont associés à deux mots de même taille) soit associés à deux mots codes qui ont la même racine.
Cette modification n’influence pas la longueur moyenne du code (car on échange un mot-code avec un
mot-code de même longueur)
Le code de Huffman est un code binaire instantané optimal, c’est à dire que pour tout code binaire instantané
c on a
Lc ≥ LHuf f man
Soit X une source définie sur un alphabet source X = {x1 , . . . , xM }. On note pi = pX (xi ) et on suppose
p1 ≥ p2 ≥ . . . ≥ pM . Le résultat va être démontré par récurrence sur M
— Pour M = 2, trivial
— On note X ′ la source définie sur l’alphabet X ′ = {x1 , . . . , xM −1 xM } (les deux symboles les moins
probables sont fusionnés). Notons c′ un code binaire instantané optimal sur X ′ et l1′ , . . . , lM
′
−1 les
longueurs des mots codes associés.
— Construisons un code c sur la source X où
c(xM −1 ) = c′ (xM −1 xM ) 0 ′
donc lM −1 = lM −1 + 1
c(xM ) = c′ (xM −1 xM ) 1 ′
donc lM = lM −1 + 1
— Alors on a
Lc = Lc′ + pM −1 + pM
— Partons maintenant de l’autre sens. On note c∗ un code optimal sous forme canonique de la source X.
Nous allons construire à partir de ce code un code c′′ de la source X ′ , en utilisant pour le symbole
xM +1 xM le préfixe des mots codes c∗ (xM −1 ) et c∗ (xM ) (qui ne différent que par leur dernier bit)
— Alors on a
Lc′′ = Lc∗ − pM −1 − pM
— Finalement on a
(Lc′′ − Lc′ ) + (Lc − Lc∗ ) = 0
— Comme c′ et c∗ sont optimaux respectivement pour X ′ et X, il s’agit de la somme de deux termes
positifs ou nuls, ce qui implique que les deux termes sont nuls et donc que c′′ et c sont également
optimaux respectivement pour X ′ et X
— La procédure d’extension du code de c′ à c permet donc de passer d’un code optimal à M −1 mots-codes
à un code optimal à M mots codes grâce à l’extension de Huffman
Troisième partie
Codage canal
Plan de la partie
1 Principe du codage canal 80
1.1 Exemple introductif . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
1.2 (M, n)-code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
2 Inégalité de Fano 85
2.1 Théorème du traitement de l’information . . . . . . . . . . . . . . . . . . . . 86
2.2 Inégalité de Fano . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Émetteur
Bruit
Travaux de Shannon
La théorie de l’information et les travaux de Shannon ont permis de répondre à deux questions fondamentales sur
les systèmes de communication :
— Codage source : étant donnée une source, à quel point peut-on compresser les données lors du codage, tout en
faisant en sorte que le destinataire puisse toujours déchiffrer les messages que l’on envoie ? Premier théorème
de Shannon
— Codage canal : étant donné un canal de communication bruité, jusqu’à quel débit d’information peut-on
envoyer les données en conservant une probabilité d’erreur à la sortie qui soit limitée ? Deuxième théorème
de Shannon
Code à répétition
— Considérons une source, qui après l’étape de codage source, peut être vue comme une variable aléatoire X à
valeurs dans {0, 1} où les deux symboles sont équiprobables.
— On considère le canal de transmission suivant :
0.9
0 0
0.1
0.1
1 1
0.9
Le bruit est modélisé par une probabilité d’erreur de 0.1
On appellera Y la sortie (ce que recevra le destinataire) à valeurs dans {0, 1}
Code à répétition
— On suppose que la source répète deux fois chaque bit
— Lorsque le destinataire reçoit 00, il peut supposer que c’est 0 qui a été envoyé
— Idem pour 11
— Mais si le destinataire reçoit 01 ou 10, c’est impossible à trancher
— Une meilleure solution est que la source répète trois fois chaque bit
— Il suffit dans ce cas de compter le nombre de 0 et de 1 reçus
— S’il y a plus de 0 que de 1, on suppose que c’est 0 qui a été envoyé
— Idem pour 1
Code à répétition
Quelle est la probabilité de faire une erreur sur le bit envoyé ?
— Ce sera la même pour 0 et 1 car le canal est symétrique
— Si on a une erreur, c’est par exemple que l’on a plus de 1 que de 0 dans le message reçu, alors qu’on avait
envoyé un 0
— Si on suppose que tous les bits envoyés successivement sont indépendants et identiquement distribués, le nombre
d’erreur dans un groupe de 3 bits suit une loi binomiale avec n = 3 et p = 0.1.
— Faire une erreur revient à avoir soit 2, soit 3 bits erronés dans le groupe.
Code à répétition
— En multipliant par 3 le nombre de bits envoyés, on a divisé par 3.6 la probabilité d’erreur (0.1 → 0.028)
— On peut faire la même chose en considérant 5 répétitions au lieu de 3, et dans ce cas, on a une probabilité
d’erreur de 0.0086, ce qui revient à diviser par 11.7 la probabilité d’erreur (0.1 → 0.0086)
— Le codage canal utilise ce principe : il s’agit d’introduire de la redondance, qui va augmenter la longueur des
messages envoyés, mais permettre de diminuer (ou annuler) la probabilité d’erreur.
Nouvelles notations
a = f (w) ∈ An b ∈ Bn Fonction de ŵ = g(b) ∈ W
w∈W Fonction de
Canal décodage
codage canal f
canal g
— Source W ∈ W avec |W| = M : on supposera pour simplifier que W = {1, 2, . . . , M }. Attention cette source n’est
plus nécessairement sans mémoire.
— Encodage canal f injective qui transforme un symbole w en une série de n symboles tirés dans A, notée a. Contrairement
au codage source, la longueur n du mot-code est la même pour tous les symboles. On prendra classiquement A = {0, 1}
— Canal sans mémoire qui transforme a en b où b est une série de n symboles tirés dans B donc
∏
n
P (b|a) = pB|A (bi |ai )
i=1
— Décodage canal g qui estime le message envoyé w à partir de la série de n symboles b reçue
Cas classique
— Fonction de codage source qui transforme des symboles en des mots-code binaires de longueur variable
— Lors de l’envoi d’un message constitué de plusieurs symboles, on concatène ces mots-code, ce qui forme un
nouveau message, cette fois-ci binaire
— On tronçonne ce message en blocs de k bits, formant ainsi M = 2k nouveaux symboles
— On détermine une fonction de codage canal qui va transformer chaque bloc de k bits en un bloc de n
— A la réception certains de ces bits vont être transmis correctement et certains non. La fonction de décodage
canal g a pour but de deviner quel message avait été envoyé
Etant donné un canal sans mémoire caractérisé par A, pB|A (b|a) et B, on appelle (M, n)-code un triplet
caractérisé par :
— Un alphabet W = {1, 2, . . . , M } de messages à envoyer
— Une fonction de codage canal injective
f: W 7→ An
w → a
— Une fonction de décodage canal
g: Bn 7→ W
b → ŵ
Le taux (ou rendement) d’un (M, n)-code est noté R et est défini par :
log2 (M )
R=
n
— Dans le cas classique où l’étape de codage canal a lieu après un codage source en formant des blocs de k bits, on a
M = 2k et donc
log2 (M ) k
R= =
n n
— R peut donc être interprété comme un débit d’information. Sur les n bits envoyés sur le canal, il n’y en a symboliquement
que k qui contiennent de l’information : les n − k autres sont juste de la redondance.
Code à répétition
Probabilités d’erreur
Soit un message w ∈ W = {1, 2, . . . , M }, un schéma de codage canal (f, g) et un canal sans mémoire
caractérisé par A, pB|A (b|a) et B, on appelle probabilité d’erreur sur le message w et on note λw la probabilité
Probabilités d’erreur
X
M
Pe(n) = λw pW (w)
w=1
λ(n)
max = max λw
w∈{1,2,...,M }
(n) (n)
On montre facilement que Pe ≤ λmax
Code à répétition
Code à répétition
Taux réalisable
lim λ(n)
max = 0
n→+∞
Taux réalisable
— La possibilité d’une transmission sans erreur va donc dépendre de la valeur du taux. Si le taux est réalisable,
on sait qu’on pourra (au moins de façon asymptotique) rendre la probabilité d’erreur aussi petite que l’on veut
— Attention en revanche, si le taux R = 13 est réalisable pour un canal, ce n’est pas pour autant que ceci aura une
implication concrète. Pour avoir une probabilité d’erreur faible il faudra peut etre prendre des blocs de taille
1010 et les coder sur des blocs de taille 3 × 1010 !
— Le deuxième théorème de Shannon que nous allons voir dans ce cours permet de déterminer les taux réalisables
et de les relier à des notions de théorie de l’information
2 Inégalité de Fano
Taux réalisable ?
— Afin de comprendre quelles sont les contraintes qui font qu’un taux est réalisable ou pas, il nous faut ré-
interpréter toute la chaîne de codage canal grâce à des notions issues de la théorie de l’information : entropies,
entropies conditionnelles, information mutuelle...
— Afin d’avoir une probabilité d’erreur très faible, il faut intuitivement que W et Ŵ (les variables aléatoires
associées à l’entrée et à la sortie de la chaîne) aient beaucoup d’information en commun : est-il possible grâce
à des traitements astucieux, d’augmenter I(W, Ŵ ) ?
(n)
— Autre piste : tenter de trouver une inégalité impliquant la probabilité d’erreur Pe et des quantités liées à la
théorie de l’information, afin de comprendre où se situent les barrières
I(X; Z) ≤ I(X; Y )
— Si les variables forment une chaîne de Markov, quel que soit le traitement que l’on fait sur Y , on ne pourra
pas retrouver de l’information supplémentaire sur X
— Toute information perdue est définitivement perdue...
Conséquences
a = f (w) ∈ An b ∈ Bn Fonction de ŵ = g(b) ∈ W
w∈W Fonction de
Canal décodage
codage canal f
canal g
— Les différentes variables présentes ici forment une chaîne de Markov, dans le sens où chacune de dépend que
de la précédente
— Malheureusement, d’après le théorème précédent, l’information mutuelle avec W ne va faire que décroître tout
au long de la chaîne...
Conséquences
W → A → B → Ŵ
Inégalité de Fano
Soient X, Y et X̂ trois variables aléatoires formant une chaîne de Markov X → Y → X̂, et telles que X et
X̂ ont le même alphabet X .
(1) Alors, en notant Pe = P(X̂ 6= X), on a :
Or :
— H(E|X, X̂) = 0 : aucune incertitude sur E si X et X̂ connues
— H(E|X̂) ≤ H(E) = h(Pe ) : conditionner réduit l’entropie
—
On a donc
H(X|X̂) ≤ h(Pe ) + Pe log2 (|X |)
H(X|X̂) ≥ H(X|Y )
Conséquences
H(W |Ŵ ) − 1
Pe(n) ≥
log2 (M )
— Cette probabilité d’erreur est donc limitée par le terme H(W |Ŵ ) qui caractérise l’incertitude restante sur W
lorsque l’on connaît Ŵ et qui doit être la plus petite possible
— Comme H(W |Ŵ ) = H(W )−I(W ; Ŵ ), on retrouve le fait que plus I(W ; Ŵ ) va être grande, plus la probabilité
d’erreur va être faible
A Canal B
Bruit
Information mutuelle
— Dans un canal non bruité, on a exactement B = A, et les variables A et B contiennent exactement la même
information
— Dans le cas général, on a vu que l’information mutuelle I(A; B) représentait la quantité d’information commune
à A et B.
— I(A; B) nous permet donc de quantifier le lien entre l’entrée et la sortie du canal
— Si I(A; B) est très élevée, cela signifie que B a beaucoup d’information en commun avec A : il sera donc facile
d’estimer A à partir de B
— En revanche si I(A; B) est très faible, il n’y a pas ou peu de liens entre A et B, et on aura du mal à retrouver
l’entrée A à partie de la sortie B
Information mutuelle
— Intuitivement, la quantité I(A; B) dépend du niveau du bruit, donc des propriétés du canal
— On peut donc se demander : étant donné un canal, quelle est la valeur maximale de I(A; B), c’est à dire celle
permettant d’avoir le lien maximal entre l’entrée et la sortie ?
— On va donc définir une quantité, dépendant uniquement du canal (et pas de l’entrée), représentant l’information
mutuelle maximale, c’est à dire le meilleur cas de figure possible.
Étant donné un canal discret sans mémoire, ayant pour entrée A ∈ A, et pour sortie B ∈ B, on appelle
capacité du canal et on note C la quantité :
C = max I(A; B)
pA (a)
Interprétation
— La capacité d’un canal quantifie le lien maximal possible entre l’entrée et la sortie du canal
— Le terme de capacité fait donc sens, car le canal ne peut pas créer plus de lien entre A et B, il n’en est pas
capable
— Nous verrons dans la deuxième partie du cours que grâce au théorème de Shannon, on peut donner une autre
interprétation à cette quantité
ϵ
1 1
1−ϵ
ϵ
1 1
1−ϵ
— pB (0) = pB|A (0|0)pA (0) + pB|A (0|1)pA (1) = (1 − ϵ)p + ϵ(1 − p) = p + ϵ − 2pϵ
— pB (1) = 1 − p − ϵ + 2pϵ
1−ϵ
0 0
ϵ
ϵ
1 1
1−ϵ
H(B|A) = −(1 − p)ϵ log2 (ϵ) − pϵ log2 (ϵ) − p(1 − ϵ) log2 (1 − ϵ) − (1 − p)(1 − ϵ) log2 (1 − ϵ)
= −ϵ log2 (ϵ) − (1 − ϵ) log2 (1 − ϵ)
— On a :
I(A; B) = H(B) − H(B|A)
— Donc :
I(A; B) = −(p + ϵ − 2pϵ) log2 (p + ϵ − 2pϵ) − (1 − p − ϵ + 2pϵ) log2 (1 − p − ϵ + 2pϵ)
+ϵ log2 (ϵ) + (1 − ϵ) log2 (1 − ϵ)
dI(A; B)
=0 ⇐⇒ −(1 − 2ϵ) log2 (p + ϵ − 2pϵ) + (1 − 2ϵ) log2 (1 − p − ϵ + 2pϵ) = 0
dp
⇐⇒ log2 (p + ϵ − 2pϵ) = log2 (1 − p − ϵ + 2pϵ)
⇐⇒ p + ϵ − 2pϵ = 1 − p − ϵ + 2pϵ
⇐⇒ 2p(1 − 2ϵ) = 1 − 2ϵ
1
⇐⇒ p=
2
1
La valeur de p = 2 est ici logique, car le canal est symétrique
ou
C = 1 − h(ϵ)
où h(z) = −(1 − z) log2 (1 − z) − z log2 (z)
— La capacité d’un canal caractérise le lien maximal qu’il peut y avoir entre A et B (émission/réception d’un seul
symbole)
— Dans notre étude nous avions vu que I(W ; Ŵ ) ≤ I(A, B), nous touchons donc au but... mais nous ne
connaissons pas la capacité du canal lors de n usages successifs
Soit un canal sans mémoire caractérisé par A, pB|A (b|a) et B et de capacité C. Alors la capacité du canal
sans mémoire caractérisé par An , pB|A (b|a) et B n correspondant à n usages successifs du canal est nC
— Corollaire : ce résultat montre en particulier qu’en utilisant n canaux identiques en parallèle, on multiplie par
n la capacité. C’est une propriété très utilisée dans les chaînes de communication
donc
X X
H(B|A) = − pAB (a, b) log2 pb|A (b|a)
a∈An b∈Bn
!
X X Y
n
= − pAB (a, b) log2 pB|A (bi |ai ) canal sans mémoire
a∈An b∈Bn i=1
X
n X X
= − pAB (a, b) log2 pB|A (bi |ai )
i=1 a∈An b∈Bn
X
n X X
= − pAB (ai , bi ) log2 pB|A (bi |ai )
i=1 ai ∈A bi ∈B
X
n
= H(Bi |Ai )
i=1
— Pour H(B) on a
H(B) = H(B1 , . . . , Bn )
Xn
≤ H(Bi )
i=1
L’égalité est atteinte si les Ai sont i.i.d de distribution p∗A (a) = argmaxpA (a) I(A; B)
Conclusion
— On a finalement
I(W ; Ŵ ) ≤ I(A; B) ≤ nC
— Le lien entre le message envoyé W et le message décodé Ŵ est donc contraint par la capacité du canal
— Comme nous allons le voir, c’est effectivement cette capacité qui va former la limite théorique pour les taux
réalisables
(1) Cette assertion sera démontrée dans le Problème 4 : il s’agit d’une démonstration fleuve basée sur la
notion de séquences conjointement typiques. Le principe est le suivant
— On construit une fonction de codage f totalement aléatoire où chaque mot-code est tiré aléatoirement
— Pour décoder on utilise le principe des séquences conjointement typiques en recherchant un mot-code conjointement
typique avec la séquence reçue. D’après la propriété de l’AEP, il est très probable que le mot-code envoyé et la séquence
reçue soit conjointement typique : on montre ainsi qu’en moyenne on peut faire baisser la probabilité d’erreur aussi
bas que l’on veut
— Il s’agit ensuite de faire des tris parmi tous les codes aléatoirement crées pour sélectionner les meilleurs
(2) Pour simplifier on supposera que 2nR est entier, on a donc M = 2nR , et que W est muni de la loi
uniforme, soit H(W ) = nR
(n) (n) (n)
— Comme on a 0 ≤ Pe ≤ λmax on a bien limn→+∞ Pe =0
— D’après l’inégalité de Fano décrite dans la section précédente, on a
Conséquences
— La capacité porte bien son nom : on ne pourra émettre sans erreur que si l’on choisit un taux inférieur à la
capacité : il s’agit de la redondance minimale nécessaire pour corriger les erreurs dues au canal
— Attention, ceci reste une propriétés asymptotique : pour un R < C donné il n’est pas forcément possible en
pratique d’implémenter un code canal permettant d’annuler la probabilité d’erreur !
— Dans la démonstration du (2) on retrouve également l’expression
C 1
Pe(n) ≥ 1 − −
R nR
(n)
Lorsque R > C, on voit donc bien qu’il est impossible d’avoir Pe = 0, même de façon asymptotique.
Conséquences
Séparation source-canal
Etant donné un message de longueur n, on peut envisager deux solutions :
— Construire directement un bon ré-encodage du message pour l’envoyer sur le canal
— Utiliser deux étapes successives : compresser le message grâce à un codage source, puis le ré-encoder avec un
codage canal
Ces deux stratégies sont-elles équivalentes ?
Hypothèses
Nous allons considérer :
— Une source sans mémoire X dans un alphabet X , d’entropie H(X)
— Un canal sans mémoire avec un alphabet d’entrée A et un alphabet de sortie B, et de capacité C
— Une fonction de codage f , déterministe ou aléatoire qui associe à un message x1:n de longueur n un mot-code
de longueur n, noté a
f : X n 7→ An
x1:n → a
— Une fonction de décodage g, déterministe ou aléatoire qui associe à un message reçu b de longueur n une
estimation du mot-code envoyé x̂1:n
g : B n 7→ X n
b → x̂1:n
— On s’intéressera à la probabilité d’erreur P(x1:n 6= x̂1:n )
Etant donnés une source sans mémoire X et un canal sans mémoire de capacité C, alors
(1) Si H(X) < C, il existe une stratégie de codage (f, g) telle que P(x1:n 6= x̂1:n ) → 0 quand n → +∞
(2) Si H(X) > C, cette probabilité d’erreur reste forcément éloignée de 0 et il n’est pas possible d’envoyer
le message avec une probabilité d’erreur aussi petite que l’on veut
(1) Pour créer cette stratégie, nous allons nous servir successivement du premier et deuxième théorèmes de
Shannon
— Comme la source est sans mémoire, nous savons que l’AEP est valide. On peut donc définirl’ensemble des séquences
(n) (n)
typiques Tϵ qui concentre la majorité de la probabilité. On a en effet que P x1:n ∈ Tϵ > 1 − ϵ lorsque n → ∞.
Nous allons donc coder uniquement ces séquences là, et l’erreur qui sera commise ne sera que de l’ordre de ϵ (donc
aussi petite que l’on souhaite).
(n)
— On sait également que |Tϵ | ≤ 2n(H(X)+ϵ) , donc on a au maximum M = 2n(H(X)+ϵ) séquences à envoyer. Si on
les ré-encode ensuite chacune sur n bits, on aura créé un code avec un rendement
log2 (M )
R= = H(X) + ϵ
n
— D’après le deuxième théorème de Shannon, on sait que si R < C, on pourra faire tendre la probabilité d’erreur sur la
séquence envoyée vers 0. Si H(X) < C, on a donc bien R < C et ceci termine la démonstration.
(2) Pour la deuxième assertion, on va utiliser une démonstration très proche de celle du deuxième théorème
de Shannon.
— En remarquant que X1:n → A → B → X̂1:n est une chaîne de Markov, on a d’après le théorème du traitement de
l’information
I(X1:n ; X̂1:n ) ≤ I(X1:n ; B) ≤ I(A; B) ≤ nC
et d’après l’inégalité de Fano
H(X1:n |X̂1:n ) ≤ 1 + Pe log2 (|X |n )
— Or, comme la source est sans mémoire
H(X1:n |X̂1:n ) = nH(X) − I(X1:n ; X̂1:n ) ≥ nH(X) − nC
— On a donc finalement
1
H(X) ≤
+ Pe log2 (|X |) + C
n
et le résultat est obtenu en faisant tendre n vers +∞
Bilan
— D’après ce théorème, on voit que l’on peut concevoir indépendamment la partie codage source et la partie
codage canal
— A partir du moment où H(X) < C, on pourra construire une stratégie de codage optimale qui permettra
d’avoir une probabilité d’erreur aussi petite que l’on veut
— Ce théorème nous permet de lier les deux grands principes de la théorie de l’information : la compression de
données et la transmission de données
Quelques exemples
Quelques exemples
011 111
010 110
001 101
000 100
Les mots codes 000 et 111 sont les plus éloignés possible : toutes les autres séquences permettent de détecter une
ou deux erreurs. Ce code permet de corriger 1 erreur et de détecter jusqu’à 2 erreurs.
Contexte du cours
— Afin de simplifier, nous allons nous placer en sortie de codage source : chaque élément de l’alphabet source X
+
est associé à un mot-code dans S + = {0, 1, . . . , q − 1} (avec q = 2 dans le cas binaire).
— Lors de l’envoi d’un message, on fait ensuite des paquets de k symboles, et chaque paquet est codé sur n
symboles avec n > k (ajout de redondance)
— On a donc S = A = B = {0, 1, . . . , q − 1} et M = q k
— On réutilisera la notation a pour désigner un message composé de plusieurs bits
— Dans la plupart des exercices on considèrera uniquement le cas binaire où q = 2
Anneau Z/qZ
Zq = {0, . . . , q − 1}
— A vérifier en exercice
— Dans la suite on omettra la notation .̄ afin de simplifier les écritures et on confondra l’entier 0 ≤ m < q et sa
classe m
Corps fini Fq
L’anneau Zq est un corps (fini) si et seulement si q est un nombre premier. On notera ce corps fini Fq .
La seule propriété à démontrer est l’existence d’un inverse m−1 pour tous les éléments de Zq . On s’intéressera
ici aux entiers naturels 0 ≤ m < q (en tant que représentants de leurs classes respectives).
1. Supposons q premier. m et q sont donc premiers entre eux, et d’après le théorème de Bézout, il existe
deux entiers relatifs x et y tels que xm + yq = 1, donc on a xm ≡ 1(mod q) et x est un inverse de m
2. Supposons que tous les éléments de Zq admettent un inverse. Soit m un entier naturel tel que 0 ≤ m < q.
Comme m × m−1 ≡ 1(mod q), il existe un entier relatif x tel que mm−1 + xq = 1. Le PGCD de m
et q divise m et q, donc 1, on a donc forcément PGCD(m, q) = 1. Supposons maintenant que q n’est
pas premier, il existe donc 1 < a, b < q tels que ab = q. Comme a > 1 est un diviseur de a et q on a
contradiction.
Corps fini F2
L’ensemble {0, 1} muni de l’addition + (modulo 2) et de la multiplication × (modulo 2) forme un corps fini,
noté F2
+ 0 1 × 0 1
0 0 1 0 0 0
1 1 0 1 0 1
X
n
d(a, b) = δai ̸=bi
i=1
Exemples
Code à répétition
Pour un code binaire à répétition de longueur 3, on a deux mots-code {000, 111}. La distance de Hamming entre deux mots-code
est 3.
Code de parité
Pour un code binaire de parité de longueur 3, on a quatre mots-code {000, 110, 011, 101}. La distance de Hamming entre deux
mots-code est 2.
Intuitivement, afin d’éviter les erreurs, il va falloir concevoir des codes où les mots-code soient les plus éloignés les
uns des autres.
f : Fkq 7→ Fnq
avec n > k où
— k est le nombre de bits par blocs
— n est la longueur des mots-code
— Fq = {0, . . . , q − 1}
— La notation diffère un peu de celle utilisée précédemment car on avait un ensemble d’entrée {1, . . . , M }. Comme
ici M = q k , on sous entend une bijection de {1, . . . , M } dans Fkq qui correspond à la représentation binaire du
message envoyé.
On appelle code q−aire de paramètres [n, k, d] un code canal C où f : Fkq 7→ Fnq et d(C) = d
Exemples
Code à répétition
Code de parité
Le pouvoir détecteur/correcteur d’un code va dépendre grandement de la distance minimale du code, donc de la
distance qui existe entre les mots-code.
(1) D’après la définition de d(C) , deux mots-code de C ont au moins d(C) symboles de différence. Lors de
l’envoi d’un mot-code avec m ≤ d(C) − 1 erreurs, on est sûr de ne pas retomber sur un mot-code donc
on pourra détecter qu’il y a une erreur de transmission
(2) Supposons que l’on envoie un mot-code a ∈ C et qu’on reçoit b qui contient m erreurs. Si on utilise le
décodage par distance minimale alors il n’y a pas d’autre mots-code plus près de b. Supposons qu’il existe
a′ ∈ C, plus proche de b alors
d(a′ , b) ≤ d(a, b) = m
Or par l’inégalité triangulaire on a
Exemples
Code à répétition
Pour un code à répétition de longueur 3, on a d = 3, on peut donc détecter 2 erreurs et corriger 1 erreur.
Code de parité
Codes linéaires
Pour un code binaire, il suffit de montrer que la somme de deux mots-code est encore un mot-code
Exemple
Code de parité
Etant donné un code linéaire C de paramètres [n, k, d], on appelle matrice génératrice la matrice G ∈ Fk×n
q
telle que ses lignes forment une base du code C.
∀a ∈ C, ∃x ∈ Fkq , a = xG
Exemple
Exemple
— On vérifie aisément qu’il s’agit d’un code binaire linéaire de paramètres [5, 3, 2]
— On peut définir plusieurs matrices génératrices pour ce code
0 0 1 0 1 1 0 0 1 1
0 1 0 1 0 0 1 0 1 0
1 1 1 0 0 0 0 1 0 1
Code systématique
Lorsque la matrice génératrice G d’un code C de paramètres [n, k, d] s’écrit sous la forme
G = Ik | B
où
— Ik est la matrice identité de taille k × k
— B est une matrice de taille k × (n − k)
on dit que le code est systématique. Dans ce cas :
— Les k premiers symboles sont appelés symboles d’information
— Les n − k derniers symboles sont appelés symboles de contrôle
Exemple
Exemple
X
n
ha, bi = a i × bi
i=1
Matrice de contrôle
Soit C un code q−aire linéaire de paramètres [n, k, d] et G et H respectivement des matrices génératrice et
de contrôle
(1) On a GHt = 0
(2) aHt = 0 ⇐⇒ a ∈ C
(3) De plus, si le code est systématique et G = Ik | B , alors
H = Bt | In−k
(1) Définition de G et H
(2) Idem
(3) En posant
B
Ik | B _ = Ik B + BIn−k = 0
In−k
Exemple
Exemple
Notion de syndrome
Soit un code q−aire linéaire C de paramètres [n, k, d] et soit b une séquence reçue
— Si b ∈ C alors
bHt = 0
— Si b ∈
/ C, alors notons a ∈ C le mot-code qui avait été envoyé et e la séquence d’erreurs commises On peut
donc écrire
bHt = (a + e)Ht = eHt
— La quantité bHt , appelée syndrome, est donc caractéristique du type d’erreur qui a été commise : si elle nulle,
cela signifie qu’il n’y a eu (a priori) aucune erreur, et dans le cas contraire en étudiant sa valeur on peut deviner
le type d’erreur
Soit C un code q−aire linéaire de matrice de contrôle H. Alors les propositions suivantes sont équivalentes
(1) d(C) = d
(2) Il existe d colonnes de H qui sont linéairement dépendantes et d − 1 colonnes différentes de H sont
toujours linéairement indépendantes
X
n X
aHt = ai h i = ai h i = 0
i=1 i∈I
— (1) ⇒ (2). Il existe un mot code de poids d = |I| (par définition de la distance minimale) : on a le résultat en appliquant
l’équation précédente à ce mot-code
— (1) ⇒ (2′ ). Supposons qu’il existe d − 1 colonnes qui soient linéairement dépendantes, alors on peut trouver un mot-code
a de poids d − 1 ce qui contredit la distance minimale
— (2)&(2′ ) ⇒ (1). Si d − 1 colonnes toujours indépendantes on ne peut pas créer un mot-code de poids d − 1, et si d
colonnes dépendantes on peut créer un mot-code de poids d, donc distance minimale égale à d
e∗ Ht = s
Exemple
Exemple
Syndrome e∗
00 00000
01 00100
10 01000
11 10000
qn
M ≤ P d−1
⌊ 2 ⌋
i=0 Cni (q − 1)i
Un code pour lequel cette inégalité est une égalité est appelé un code parfait.
Commençons par introduire la notion de sphère de Hamming. Pour tout entier r, on appelle sphère de centre
x ∈ Fnq et de rayon r
S(x, r) = y ∈ Fnq , d(x, y) ≤ r
donc
d(x, b) ≥ d − d(a, x)
≥ d−t>t
— Etape 2 : Comme chaque mot code interdit tous les messages à n symboles dans un rayon de t autour
de lui, le nombre maximal de mots code que l’on peut définir correspond au nombre de sphères de rayon
t que l’on peut caser dans q n
Pt
— Chaque sphère S(a, t) a un cardinal i=0 Cni (q − 1)i , on a donc forcément
X
t
M Cni ≤ q n
i=0
Borne de Gilbert-Varshamov
Contrairement à la borne de Hamming, il s’agit ici d’une borne garantissant l’existence d’un code, et non une borne
valide pour tous les codes !
— D’ou le résultat !
Borne de Singleton
Soient n et d (avec d < n). On note Mq (n, d) le nombre maximal de mots-code d’un code q−aire linéaire C
de longueur n et distance minimale d. On a
Mq (n, d) ≤ q n−d+1
Un code qui atteint cette borne est appelé un code à distance séparable maximale (MDS en anglais).
— Soit C un code q−aire linéaire C de longueur n et distance minimale d ayant le nombre maximal de
symboles Mq (n, d)
— Tous les mots-code sont espacés d’une distance d : si on considère a et a′ distincts dans C on a
— Or on a forcément d(a1:d−1 , a′1:d−1 ) ≤ d − 1, donc d(ad:n , a′d:n ) ≥ 1, ce qui signifie qu’aucune paire de
mots-code n’a les mêmes n − d + 1 derniers symboles
— On a donc
Mq (n, d) ≤ q n−d+1
On appelle code de Hamming un code linéaire binaire dont les colonnes de la matrice de contrôle contiennent
tous les messages binaires de poids non nul et de longueur r ∈ N∗
Un code de Hamming a pour paramètres [2r − 1, 2r − 1 − r, 3] avec r ∈ N∗ . Un code de Hamming est parfait.
1 0 0 0 1 1 0
0 1 0 0 1 0 1
G=
0 0 1 0 0 1 1
0 0 0 1 1 1 1
— Comme il n’existe pas de message de poids plus faible non nul, on en déduit que le décodage par syndrome va
permettre de localiser directement la place de l’erreur
— Le syndrome obtenu donne directement la représentation binaire de la position de l’erreur
Exemple
— Supposons que l’on reçoive b = 1110111 alors
bHt = 100
1111111
Quatrième partie
Théorie du signal
Plan de la partie
1 Théorie des signaux déterministes 112
1.1 Energie et puissance . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
1.2 Signaux à énergie finie . . . . . . . . . . . . . . . . . . . . . . . . . . 114
1.2.1 Produit de convolution . . . . . . . . . . . . . . . . . . . . . . . . 115
1.2.2 Transformée de Fourier . . . . . . . . . . . . . . . . . . . . . . . . 116
1.2.3 Spectre et largeur de bande. . . . . . . . . . . . . . . . . . . . . . . 120
1.2.4 Fonction porte . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
1.2.5 Filtrage linéaire . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
1.3 Distributions tempérées . . . . . . . . . . . . . . . . . . . . . . . . . . 125
1.3.1 Notion de distribution tempérée . . . . . . . . . . . . . . . . . . . . . 125
1.3.2 Distribution de Dirac . . . . . . . . . . . . . . . . . . . . . . . . . 127
1.3.3 Peigne de Dirac . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Théorie du signal
— Dans tous le cours, nous avons considéré des sources et des canaux discrets
— Pourtant certaines informations que l’on veut transmettre sont continues (ex : son) et la majorité des canaux
de communication sont également continus (ex : ondes hertiziennes, câbles électriques)
— Le but de cette dernière partie est de répondre à deux questions :
— Comment transformer un signal continu du monde réel en une série de symboles discrets à transmettre ?
A quelle condition est-on capable de le faire avec une erreur minimale ?
— Etant donné un message numérique, comment former un signal continu capable de transporter l’informa-
tion sur un canal continu ? Quelles sont les propriétés spectrales des signaux ainsi formés ?
x(t) avec t ∈ R
x[n] avec n ∈ Z
n : échantillon (sans unité) Ex : taux de précipitations enregistré chaque jour, cours de la bourse enregistré
chaque heure, ...
Exemples
1 1
0.9 0.9
0.8 0.8
0.7 0.7
0.6 0.6
x[n]
x(t)
0.5 0.5
0.4 0.4
0.3 0.3
0.2 0.2
0.1 0.1
0 0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 1 2 3 4 5 6 7 8 9 10
t (secondes) n (echantillons)
Dans le cours, les signaux numériques seront représentés par des segments terminés par des cercles (cf figure
ci-dessus)
1 1
0.9 0.9
0.8 0.8
0.7 0.7
0.6 0.6
2
|xn|2
|x(t)|
0.5 0.5
0.4 0.4
0.3 0.3
0.2 0.2
0.1 0.1
0 0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 1 2 3 4 5 6 7 8 9 10
t (secondes) n (echantillons)
Energie totale
L’énergie totale Ex (lorsqu’elle existe) correspond à la somme de la puissance instantanée sur R (pour les
signaux analogiques) ou sur Z (pour les signaux numériques)
— Cas analogique : Z +∞
Ex = |x(t)|2 dt
−∞
— Cas numérique :
X
+∞
Ex = |x[n]|2
n=−∞
— Cas numérique.
1 Xm
Px = lim |x[n]|2
m→+∞ 2m + 1
n=−m
Si le signal est à support temporel borné ou fini, sa puissance moyenne totale est donc nulle (sauf cas exceptionnels)
But du cours
— Comprendre comment transformer un signal x(t) analogique du monde réel en un signal numérique x[n]
stockable sur ordinateur
— Permet le passage du monde réel physique au monde informatique binaire : première révolution numérique de
Shannon
— On ne considérera dans le cours que le cas des signaux à énergie finie : dans la pratique, on traite les signaux
sous forme de trames temporelles de durée finie, d’où cette supposition
— Inégalité de Cauchy-Schwartz
|hx, yiL2 | 6 kxkL2 kykL2
Grâce à Fubini-Tonelli, toute fonction tranche (τ ) 7→ x(t − τ ) y(τ ) est donc sommable (pour presque tout
R +∞
t), et la fonction définie par (x ∗ y)(t) = −∞ x(t − τ ) y(τ )dτ est elle-même sommable. On a également
Z +∞
kx ∗ ykL1 = |(x ∗ y)(t)|dt
−∞
Z +∞ Z +∞
≤ |x(t − τ )| |y(τ )|dτ dt
−∞ −∞
= kxkL1 kykL1
En réalité comme x et y sont dans L1 (R) ∩ L2 (R), on pourrait même montrer que x ∗ y est également
dans L1 (R) ∩ L2 (R)
Remarques
— La transformation de Fourier F est une bijection linéaire isométrique de L2 (R) dans L2 (R) (voir théorèmes
suivants)
— En revanche elle est uniquement une application linéaire continue de L1 (R) dans L∞ (R). L’hypothèse x̂ ∈ L1 (R)
n’est donc pas triviale (mais sera supposée dans le cours pour simplifier les considérations)
(1) Si l’on suppose toutes les fonctions et leurs TF dans L1 (R) ∩ L2 (R), (t, f ) 7→ x(t)ŷ ∗ (f )e−j2πf t est
sommable et par Fubini et on a
Z +∞ Z +∞ Z +∞
∗ ∗ −j2πf t
x(t)y (t)dt = x(t) ŷ (f )e df dt
−∞ −∞ −∞
Z +∞ Z+∞
= ŷ ∗ (f ) x(t)e−j2πf t dt df
−∞ −∞
Z +∞
= x̂(f )ŷ ∗ (f )df
−∞
(1) Comme (t, τ ) 7→ x(t − τ )y(τ ) est sommable (Fubini-Tonelli) on vérifie que x ∗ y est bien sommable et
admet donc une TF (déjà démontré). Puis par Fubini on a
Z +∞ Z +∞
F {x ∗ y} (f ) = x(t − τ )y(τ )dτ e−j2πf t dt
−∞ −∞
Z +∞ Z +∞
= y(τ )e−j2πf τ x(t − τ )e−j2πf (t−τ ) dt dτ
−∞ −∞
Z +∞
= y(τ )e−j2πf τ F {x} (f )dτ
−∞
= F {x} (f ) × F {y} (f )
Interprétation
— Dans la suite du cours, on utilisera la notion X(f ) pour désigner la transformée de Fourier x̂(f ) = F {x} (f )
— Le module |X(f )| est lié à l’amplitude de la sinusoïde de fréquence fondamentale f dans la décomposition de
x(t) comme une somme infinie de sinusoïdes. Si cette quantité est élevée, c’est que la sinusoïde de fréquence
fondamentale f a une place importante dans la décomposition de x(t).
— L’argument arg {X(f )} est lié au déphasage de la sinusoïde de fréquence fondamentale f dans la décomposition
de x(t) comme une somme infinie de sinusoïdes.
— Pour un signal réel, seules les fréquences positives ont un vrai sens physique
Propriétés de la TF (suite)
x(t) = x∗ (t)
Z +∞ ∗
j2πf t
= X(f )e df
−∞
Z +∞
= X ∗ (f )e−j2πf t df
−∞
Z +∞
′
= X ∗ (−f ′ )ej2πf t df ′
−∞
x(t) = x(−t)
Z +∞
= X(f )e−j2πf t df
−∞
Z +∞
= X(−f )ej2πf t df
−∞
0.4
7
0.3
6
0.2
0.1 5
0 4
−0.1
3
−0.2
2
−0.3
1
−0.4
−0.5 0
−0.2 0 0.2 0.4 0.6 0.8 1 1.2 −30 −20 −10 0 10 20 30
t (secondes) f (Hz)
0.4
7
0.3
6
0.2
0.1 5
0 4
−0.1
3
−0.2
2
−0.3
1
−0.4
−0.5 0
−0.2 0 0.2 0.4 0.6 0.8 1 1.2 −30 −20 −10 0 10 20 30
t (secondes) f (Hz)
— Signal lent : le module au carré |X(f )|2 est élevé dans les basses fréquences
— Les sinusoïdes de basses fréquences fondamentales contribuent plus que les autres
0.4
7
0.3
6
0.2
0.1 5
0 4
−0.1
3
−0.2
2
−0.3
1
−0.4
−0.5 0
−0.2 0 0.2 0.4 0.6 0.8 1 1.2 −30 −20 −10 0 10 20 30
t (secondes) f (Hz)
— Signal plus rapide : le module au carré |X(f )|2 est élevé aussi dans les fréquences plus élevées
— Les sinusoïdes de plus hautes fréquences fondamentales contribuent aussi
7 7
6 6
5 5
4 4
3 3
2 2
1 1
0 0
−30 −20 −10 0 10 20 30 −30 −20 −10 0 10 20 30
f (Hz) f (Hz)
— Si on compare ces deux spectres, on voit que les valeurs élevées sont comprises entre −10 Hz et 10 Hz pour le
premier, et entre −20 Hz et 20 Hz pour le second
On appelle largeur de bande d’un signal et on note B = [fmin , fmax ] avec fmin ≥ 0 et fmax ≥ 0 la plage
de fréquences qu’un signal occupe.
0
La définition aux points t ± L
2 peut varier
−L/2 0 L/2
t (en secondes)
Fonction porte
— Si on prend un signal quelconque
x(t) et qu’on le multiplie par un signal porte, cela revient à étudier le signal
x(t) uniquement sur la plage − L2 , L2
1 1 1
0 0 0
−0.5 −0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4 0.5 −0.5 −0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4 0.5 −0.5 −0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4 0.5
t (secondes) t (en secondes) t (en secondes)
— De façon équivalente, un signal quelconque de support temporel borné égal à L peut être vu comme le produit
d’un signal à support temporel non borné et d’une fonction porte
1
L
Z +∞
F {ΠL (t)} = ΠL (t)e−j2πf t dt
−∞
Z +L
2
= e−j2πf t dt
−L
2
+ L2
e−j2πf t
=
−j2πf − L
2
1 −jπf L
= e − ejπf L
−j2πf
1 ejπf L − e−jπf L
= ×
πf 2j
1
= × sin (πf L)
πf
sin (πf L)
= L×
πf L
= L sinc (Lf )
L^2
— La largeur de bande de la fonction porte est en théorie infinie, mais si l’on trace le module au carré de la
transformée de Fourier, on voit que la majorité des intensités se situe dans l’intervalle − L1 , + L1
— En première approximation on peut donc utiliser B ≈ 1
L (on utilise ici la notation de la bande de base)
— Plus ce signal a un support temporel important (L grand), plus sa largeur de bande est petite (et inversement).
x(t) Ψ y(t)
y(t) = Ψ (x(t))
— En traitement du signal on se focalise en général sur des traitements homogènes, linéaires et invariants tem-
porellement : c’est ce que l’on appelle le filtrage linéaire
Filtrage linéaire
Etant donné un signal d’entrée x dans L1 (R) ∩ L2 (R), l’opération de filtrage linéaire consiste à convoluer le
signal x avec une fonction h ∈ L1 (R) ∩ L2 (R) appelée réponse impulsionnelle. Le signal de sortie y a pour
expression
y(t) = h(t) ∗ x(t)
où ∗ est le produit de convolution
Filtrage linéaire
— On a y(t) = h(t) ∗ x(t) donc grâce au théorème de convolution, on a
Y (f ) = H(f ) × X(f )
On appelle bande passante d’un filtre et on note W = [fmin , fmax ] avec fmin ≥ 0 et fmax ≥ 0 la plage de
fréquences qu’un filtre laisse passer.
Filtres idéaux
|H(f)|² |H(f)|² |H(f)|² |H(f)|²
— On peut définir 4 types de filtres idéaux (passe-bas, passe-haut, passe bande et coupe bande)
— Pour un filtre idéal on suppose que {
1 si |f | ∈ W
H(f ) =
0 sinon
— Une distribution tempérée est une forme linéaire continue de S(R) dans R (ou C).
— L’ensemble des distributions tempérées est noté S ′ (R)
— Etant donnée une distribution tempérée T on note
hT, φi = T (φ)
Notion de distribution
— On peut voir l’espace de Schwartz comme un ensemble de fonctions test, permettant de définir des fonctions
généralisées : les distributions tempérées
— Les distributions n’auront pas nécessairement de valeurs ponctuelles, mais seront définies au travers de leurs
valeurs contre les fonctions test hT, φi
— Il existe plusieurs espaces possibles de fonctions test, définissant d’autres types de distributions (cf D utilisé en
L3 : fonctions C ∞ à support compact). On peut d’ailleurs remarquer que D ⊂ S(R).
Définition 4.16 : Produit de convolution d’une distribution avec une fonction test
On peut étendre la définition du produit de convolution au sens des distributions
où φ̃t : τ 7→ φ(t − τ )
∀T ∈ S ′ (R) ∀φ ∈ S(R) F −1 T, φ = T, F −1 φ .
— Multiplication par un élément de S(R) (en réalité valide également avec une fonction à croissance lente)
— Transformée de Fourier
— Transformée de Fourier inverse
∀φ ∈ S(R), φ∗δ =φ
hF δ, φi = hδ, Fφi
= F {φ} (0)
Z +∞
= φ(t)dt
−∞
= hT1 , φi
Vision fonctionnelle
Par abus de notation, on a coutume en traitement du signal d’assi-
miler cette distribution à une fonction qui serait définie par :
1
(
+∞ si t = 0
δ(t) =
0 sinon
— On le représente par une flèche entre 0 et 1 (attention à ne
pas confondre avec un signal discret). La valeur 1 représente
la masse (ou amplitude) du Dirac.
— Il s’agit d’un signal infiniment bref, d’intégrale égale à 1 et
0
d’énergie infinie. Il vérifie la propriété suivante (totalement
abusive) :
0
t (en secondes)
Z +∞
δ(t)dt = 1
−∞
Toujours par abus de notation et en assimilant cette distribution à une fonction, il s’agit d’une translation de t0
de la fonction Dirac :
δt0 (t) = δ(t − t0 )
Démonstration en exercice
F −1 δf0 , φ = δf0 , F −1 φ
Z +∞
= δ f0 , φ(f )ej2πf t df
−∞
Z +∞
= φ(f )ej2πf f0 df
−∞
Z +∞
= φ(t)ej2πtf0 dt
−∞
j2πf0 t
= e ,φ
X
+∞
XT = δnT
n=−∞
Peigne de Dirac
X
+∞
XT (t) = δ(t − nT )
... ... n=−∞
−3T −2T −T 0 T 2T 3T
t (en secondes)
Peigne de Dirac
Le peigne de Dirac, en tant que distribution périodique de période T admet une décomposition en série de
Fourier (résultat admis) et l’on a
1 X j2πn t
+∞
XT (t) = e T
T n=−∞
X
+∞
t
XT (t) = cn (XT )ej2πn T
n=−∞
1
=
T
Peigne de Dirac
1 X
+∞
F {XT } = δk
T T
k=−∞
1 X j2πn t
+∞
XT (t) = e T
T n=−∞
1 X
+∞
F {XT } = δk
T T
k=−∞
n t
o
car F ej2πn T =δ f− n
T
Une démonstration alternative avec la formule sommatoire de Poisson est proposée en exercice.
Peigne de Dirac
X
+∞
x(t) × XT (t) = x(nT ) × δ(t − nT )
n=−∞
— Le peigne de Dirac est très utile pour modéliser de façon théorique le processus d’échantillonnage : on voit ici
que l’on ne garde que les valeurs de x(t) que pour les temps t multiples de la période T
— Il permet également de définir de façon naturelle la transformée de Fourier au sens des distributions des signaux
périodiques (voir corollaire suivant)
Corollaire important
x(t)
1
0.9
0.8
0.7
0.6
0.5
... ...
0.4
0.3
0.2
0.1
0
-2T -T 0 T 2T 3T
t (en secondes)
X
+∞
= xT (t) ∗ δ(t − nT )
n=−∞
Corollaire important
En prenant la transformée de Fourier au sens des distributions on a :
X
+∞
F {x(t)} = F xT (t) ∗ δ(t − nT )
n=−∞
+∞
X
= F {xT (t)} × F δ(t − nT )
n=−∞
X
+∞
1 k
= XT (f ) × δ f−
T k=−∞
T
X
+∞
1 k
= XT (f )δ f −
T k=−∞
T
X
+∞
1 k k
= XT δ f−
T k=−∞
T T
Corollaire important
x(t) |X(f)|
1 0.07
0.9
0.06
0.8
0.7 0.05
0.6
0.04
0.5
... ... 0.03
0.4
0.3 0.02
0.2
0.01
0.1
0 0
-2T -T 0 T 2T 3T -5/T -4/T -3/T -2/T -1/T 0 1/T 2/T 3/T 4/T 5/T
t (en secondes) f (en Hz)
1 X
+∞
k k
F {x(t)} = XT δ f−
T T T
k=−∞
— Le spectre d’un signal périodique est donc composé de raies fréquentielles situées en des fréquences multiples
de T1
— On pourrait au passage trouver un lien également avec les coefficients de Fourier issus de la décomposition en
série de Fourier ck (x) = T1 XT Tk
2 Echantillonnage et quantification
2.1 Signaux analogiques et numériques
Signal numérique
— Pour qu’un signal puisse être stocké sur un ordinateur il faut :
— Que le nombre d’échantillons qu’il contient soit fini : le signal doit être discret et à support temporel fini
— Que le nombre de possibilités pour les valeurs du signal soit fini : chaque valeur du signal doit pouvoir
être codée sur un nombre fini de bits
— Il faut donc un nombre fini de valeurs à stocker et un nombre fini de valeurs possibles. On appelle un tel signal
un signal numérique
Conversion analogique/numérique
Pour pouvoir convertir un signal analogique en un signal numérique, il faut :
— Échantillonnage. Choisir un ensemble fini de N temps t[n] où l’on va stocker les valeurs (conversion continu
vers discret).
x[n] = x(t[n]) où t[n] représentent les temps où le signal va être enregistré
n ∈ J0, N − 1K
— Quantification. Choisir un ensemble fini de valeurs possibles et stocker en mémoire la valeur la plus proche
de la valeur observée.
Exemple
Supposons qu’on veuille stocker en mémoire le signal analogique suivant :
x(t) = sin (2πf0 t) t ∈ [0, 5[ avec f0 = 440 Hz
1. On va uniquement observer le signal à des instants t[n]. On prend une valeur toutes les 10−3 secondes.
t[n] = 10−3 n n ∈ J0, 4999K → 5000 échantillons
2. On va coder chaque valeur x[n] = x(t[n]) sur 4 bits. Comme on sait que les valeurs sont comprises entre -1 et
15
1, on définit 24 = 16 valeurs possibles de la façon suivante :− 16 , − 13
16 , . . . , − 16 , 16 , . . . 16 . Chaque valeur est
1 1 15
Conversion analogique/numérique
Bilan :
— En entrée, un signal analogique physique du monde réel
— En sortie, après échantillonnage et quantification, un vecteur binaire composé de 0 et 1 stockable et analysable
par ordinateur
Exemples :
— Enregistrement d’un son
— Enregistrement d’une photo numérique
Conversion analogique/numérique
1.5
0.5
x(t)
-0.5
-1
-1.5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
t (secondes)
Conversion analogique/numérique
1.5
0.5
x(t)
-0.5
-1
-1.5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
t (secondes)
Conversion analogique/numérique
1.5
0.5
x(t)
-0.5
-1
-1.5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
t (secondes)
Conversion analogique/numérique
1.5
0.5
x(t)
-0.5
-1
-1.5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
t (secondes)
Echantillonnage uniforme
— Si on souhaite échantillonner un signal avec une fréquence d’échantillonnage Fe , on stocke ceci :
Echantillon Temps Valeur stockée
n t[n] x[n]
0 0 x(0)
1 Te x(Te )
2 2Te x(2Te )
3 3Te x(3Te )
.. .. ..
. . .
— Moyen mnémotechnique : une seconde de signal correspond à Fe échantillons
— Si on considère un signal d’une durée de d secondes, il faut donc prévoir de stocker d × Fe échantillons (plus
éventuellement les temps correspondant dans un vecteur temps).
Exemple
1.2
0.8
0.6
0.4
— Signal analogique x(t) défini sur t ∈ [0, 1[
0.2
-0.2
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
t (secondes)
Exemple
1.2
0
t0 = 0, t1 = 0.05, t2 = 0.1, · · ·
-0.2
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
t (secondes)
Exemple
1.2
0.8
— On range chaque valeur
0.6 n
x(t[n]) = x(nTe ) = x
Fe
0.4
dans un vecteur (ou un tableau)
— x[n] = x(t[n]) avec n ∈ J0, 19K
0.2
— Le signal est stocké sur N = 20 échantillons
0
-0.2
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
t (secondes)
0.9
x(t)
0.8
— On considère un signal x(t) analogique, en
0.7
bande de base et de largeur de bande B, c’est
à dire que
0.6
0.3
— Echantillonner ce signal de façon uniforme,
avec une période d’échantillonnage Te revient
0.2
à multiplier ce signal par un peigne de Dirac
0.1 de période Te .
0
-0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5
t (secondes)
Domaine temporel
0.15
X
+∞
Te δ(t − kTe )
k=−∞
X
+∞
Te XTe (t) = Te δ(t − nTe )
0.05 n=−∞
-0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5
Ici Te = 0.1s
Domaine temporel
0.1
0.09
xe (t) — Le signal après échantillonnage peut s’écrire
0.08 xe (t) = x(t) × Te XTe (t)
0.07 X
+∞
= x(t) × Te δ(t − nTe )
0.06
n=−∞
0.05
X
+∞
Ici Te = 0.1s
Domaine fréquentiel
— On a donc
xe (t) = x(t) × Te XTe (t)
— En prenant la transformée de Fourier on a
( )
X
+∞
Xe (f ) = X(f ) ∗ F Te δ(t − nTe )
n=−∞
X
+∞
k
= X(f ) ∗ δ f−
Te
k=−∞
X
+∞
k
= X f−
Te
k=−∞
Représentation visuelle
X
+∞
Xe (f ) = X (f − kFe ) avec Fe > 2B
k=−∞
Représentation visuelle
X
+∞
Xe (f ) = X (f − kFe ) avec Fe < 2B
k=−∞
Représentation visuelle
X
+∞
Xe (f ) = X (f − kFe ) avec Fe < 2B
k=−∞
— Sur les zones de chevauchement, l’information est détruite de façon irréversible. On appelle ce phénomène
recouvrement ou repliement de spectre (en anglais aliasing)
— Il n’est plus possible de retrouver X(f ) à partir de Xe (f )
X(f ) = 0 pour f ∈
/ [−B, +B]
et un réel Te > 0.
On peut reconstruire de façon exacte x(t) à partir de ses échantillons x[n] = x(nTe ) si et seulement si la
fréquence d’échantillonnage Fe = T1e vérifie
Fe > 2B
— Ce signal est uniquement défini par la période d’échantillonnage Te et les échantillons du signal numérique
x[n] = x(nTe )
— Comment faire pour reconstruire le signal x(t) à partir des échantillons x[n] ?
0.9
x(t)
0.8
0.7
0.6
0.5
0.4
0
xe (t) = x(t) × Te δ(t − kTe )
-5Te -4Te -3Te -2Te -Te 0 +Te +2Te +3Te +4Te +5Te
t k=−∞
0.15
xe (t)
∑
+∞
0.05
0
-5Te -4Te -3Te -2Te -Te 0 +Te +2Te +3Te +4Te +5Te
t
0.8
0.6
|X(f)|2
0.4
Echantillonneur idéal
0.2
∑
+∞
Xe (f ) = X (f − kFe )
0
-Fe/2 0 +Fe/2 k=−∞
f
0.6
0.4
0.2
0
-2Fe -Fe 0 +Fe +2Fe
f
X
+∞
Xe (f ) = X (f − kFe ) avec F e > 2B
k=−∞
— Il suffit de remarquer qu’entre − F2e et + F2e , on a exactement le spectre du signal original x(t)
Fe
— En filtrant avec un filtre passe-bas idéal de fréquence de coupure fc = 2 , on retrouve donc exactement le
spectre du signal X(f )
H(f ) = ΠF e (f )
X̃(f ) = Xe (f ) × ΠF e (f )
donc x̃(t) = xe (t) ∗ [Fe sinc (Fe t)]
X
+∞
t
= x(nTe ) δ(t − nTe ) ∗ sinc
n=−∞
T e
X
+∞
t − nTe
= x(nTe ) sinc
n=−∞
Te
— Si la condition de Nyquist est vérifiée, on peut donc totalement reconstruire le signal x(t) uniquement à partir
des échantillons x(nTe )
X
+∞
t − nTe
x̃(t) = x(nTe ) sinc
n=−∞
Te
Cette formule est appelée formule d’interpolation de Shannon-Nyquist
X(f ) = 0 pour f ∈
/ [−B, +B]
1
et un réel Te < 2B .
On peut reconstruire de façon exacte x(t) à partir de ses échantillons x[n] = x(nTe ) grâce à la formule dite
d’interpolation de Shannon-Nyquist
X
+∞
t − nTe
x̃(t) = x[n] sinc
n=−∞
Te
Exemple
1
0.9
x(t)
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
t (secondes)
Signal x(t) à largeur de bande finie B = 4 Hz, échantillonné à Fe = 10 Hz Condition de Nyquist vérifiée
Exemple
1 1
0.5 0.5
0 0
-0.5 -0.5
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
1 1
0.5 0.5
0 0
-0.5 -0.5
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
1 1
0.5 0.5
0 0
-0.5 -0.5
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
1 1
0.5 0.5
0 0
-0.5 -0.5
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
1 1
0.5 0.5
0 0
-0.5 -0.5
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
X
+∞
t − nTe
x̃(t) = x(nTe ) sinc
n=−∞
Te
Sinus cardinaux décalés et pondérés par les valeurs des échantillons, que l’on va sommer
Exemple
1
0.9
x̂(t)
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
t (secondes)
x̃(t) = x(t)
1 1
0.5 0.5
x(t)
x(t)
0 0
-0.5 -0.5
-1 -1
-1.5 -1.5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
t (secondes) t (secondes)
Echantillonnage Quantification
xmax
x(t)
x(t)
0
xmin
tmin tmax 0
t (secondes) t (secondes)
Quantification uniforme
— Il existe de nombreuses façons de choisir les intervalles pour quantifier un signal, qui dépendent fortement du
type du signal
— Pour définir au mieux les intervalles, il faut savoir l’ordre de grandeur des valeurs prises par le signal
— Nous n’allons voir ici que la quantification uniforme : chaque intervalle de valeurs a la même taille.
— Largeur d’un intervalle constante q appelée pas de quantification
Quantification uniforme
— Supposons que notre signal prend des valeurs comprises entre xmin et xmax et que l’on souhaite coder ces valeurs sur
b bits.
— Si on veut coder sur b bits, on va définir 2b intervalles.
— Afin de couvrir toutes les valeurs possibles du signal, la taille de chaque intervalle sera :
xmax − xmin
q=
2b
— Les intervalles seront donc définis comme
— Les valeurs une fois quantifiées seront choisies sur une grille
q 3q q
xmin + , xmin + , · · · , xmax −
2 2 2
Quantification uniforme
4
3.5
2.5
xq[n]
1.5
0.5
0
0 0.5 1 1.5 2 2.5 3 3.5 4
x[n]
Exemple
Supposons ici que les valeurs à quantifier sont comprises entre 0 et 1, et que l’on souhaite coder chaque valeur
sur 2 bits.
1−0
— 22 = 4 intervalles chacun de longueur q = = 0.25
22
— 4 valeurs quantifiées possibles : 0.125, 0.375, 0.625, 0.875 (milieux des intervalles)
q = 0.25
Erreur de quantification
— Plus on quantifie sur peu de bits, plus on perd de l’information
— Erreur de quantification : différence entre la valeur originelle et la valeur quantifiée
— Dans le cas d’une quantification uniforme, l’erreur de quantification maximale pour une valeur est
q
erreur maximale =
2
Exemple
1.5 +1
+q/2
1
0.5
xq[n] - x[n]
x(t)
0 0
-0.5
-1
-q/2
-1.5 -1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 1 2 3 4 5 6 7 8 9 10
t (secondes) n (echantillon)
Exemple
1.5 +1
+q/2
0.5
xq[n] - x[n]
x(t)
0 0
-0.5
-q/2
-1
-1.5 -1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 1 2 3 4 5 6 7 8 9 10
t (secondes) n (echantillon)
Exemple
1.5 +1
0.5
+q/2
xq[n] - x[n]
x(t)
0 0
-q/2
-0.5
-1
-1.5 -1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 1 2 3 4 5 6 7 8 9 10
t (secondes) n (echantillon)
Exemple
1.5 +1
0.5
xq[n] - x[n]
+q/2
x(t)
0 0
-q/2
-0.5
-1
-1.5 -1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 1 2 3 4 5 6 7 8 9 10
t (secondes) n (echantillon)
Bruit
— Jusqu’à présent nous avons supposé que le canal et l’émetteur étaient discrets... que se passe-t-il s’ils sont
continus ?
Chaîne de transmission
Considérons l’exemple d’un signal sonore (téléphone)
— Le son est d’abord échantillonné et quantifié pour être transformé en séquence de symboles discrets
— A partir des propriétés statistiques de la source, on va compresser l’information (codage source)
— Afin de limiter les erreurs de transmission, on va réencoder le signal afin d’y rajouter de la redondance (codage
canal)
— Problème : Le canal sur lequel on souhaite transmettre le message est réel et non discret (onde, câble, etc...).
Il va donc falloir former un nouveau signal physique x(t) à partir des symboles, que l’on puisse transmettre.
— Au lieu d’envoyer directement les symboles ak , on va d’abord former un signal physique x(t) qui sera transmis
sur le canal
— Et le canal sera donc un canal réel et non discret...
— Principe : associer un signal physique x(t) à cette suite de symboles en convoluant a(t) par la réponse impul-
sionnelle he (t) d’un filtre de mise en forme (aussi appelé filtre d’émission).
— Codes à formant : même filtre de mise en forme pour tous les symboles
X
x(t) = a(t) ∗ he (t) = ak he (t − kT )
k∈Z
B(t)
Un signal aléatoire X(t) est un ensemble de variables aléatoires paramétrées par le temps t continu.
0.8
0.6
0.4
0.2
x(t)
-0.2
-0.4
-0.6
-0.8
-1
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
t
X
9
X(t) = ak δ(t − kTe ) avec ak tiré aléatoirement de façon uniforme dans {−1, +1}
k=0
1 1
0 0
-1 -1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
1 1
0 0
-1 -1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
1 1
0 0
-1 -1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
1 1
0 0
-1 -1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
1 1
0 0
-1 -1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
X(t) où chaque valeur X(t) est tirée aléatoirement selon une loi gaussienne de moyenne 0 et de variance 1
5 5
0 0
-5 -5
0 20 40 60 80 100 0 20 40 60 80 100
5 5
0 0
-5 -5
0 20 40 60 80 100 0 20 40 60 80 100
5 5
0 0
-5 -5
0 20 40 60 80 100 0 20 40 60 80 100
5 5
0 0
-5 -5
0 20 40 60 80 100 0 20 40 60 80 100
5 5
0 0
-5 -5
0 20 40 60 80 100 0 20 40 60 80 100
E [X(t)] = µ(t)
— Intuitivement on se rend bien compte que si les propriétés statistiques des v.a. X(t) sont toutes différentes, il
sera impossible de travailler. Nous allons donc devoir faire quelques hypothèses supplémentaires.
Stationnarité d’ordre 1
∀t, E [X(t)] = µ
— On suppose donc que toutes les v.a. X(t) ont la même moyenne statistique
Fonction d’autocorrélation
On peut également étudier les liens statistiques qui existent entre les variables aléatoires X(t1 ) et X(t2 )
3 8
2.5 6
2
4
1.5
2
1
0
0.5
-2
0
-4
-0.5
-1 -6
-1.5 -8
0 2 4 6 8 10 0 2 4 6 8 10
Time (s) Time (s)
Ergodisme
— Etant donné un signal aléatoire X(t) stationnaire au sens large, on souhaiterait donc pouvoir estimer sa valeur
moyenne et sa fonction d’autocorrélation
— Si l’on ne ne connaît pas les lois de probabilité des X(t), il nous faudrait donc moyenner sur un très grand
nombre de réalisations, ce qui n’est pas possible. On n’a en effet souvent accès qu’à une seule trajectoire...
— On va donc devoir faire une hypothèse supplémentaire, appelée ergodisme, qui nous assure que l’on peut estimer
ces moyennes statistiques grâce à des moyennes temporelles
Ergodisme d’ordre 1
Soit X(t) un signal aléatoire stationnaire d’ordre 1 et de moyenne statistique µ. Soit x(t) une trajectoire du
signal X(t) de moyenne temporelle finie. X(t) est ergodique d’ordre 1 si
Z +T
1
lim x(t)dt = µ
T →+∞ 2T −T
— Intuitivement il s’agit de remplacer l’estimation statistique de E [X(t)] par une estimation temporelle sur une
trajectoire.
Ergodisme d’ordre 2
Soit X(t) un signal aléatoire stationnaire au sens large et de moyenne statistique µ et de fonction d’autocor-
rélation γX (τ ). Soit x(t) une trajectoire du signal X(t) de moyenne temporelle finie et telle que la fonction
d’autocorrélation temporelle est bien définie. X(t) est ergodique d’ordre 2 si il est ergodique d’ordre 1 et
que
Z +T
1
lim x(t)x(t − τ )dt = γX (τ )
T →+∞ 2T −T
— Cette propriété est très difficile à vérifier dans la pratique... mais sera toujours admise
— En supposant que le signal X(t) est stationnaire au sens large et ergodique d’ordre 2, on s’aperçoit
que toutes
ses réalisations ont la même puissance moyenne Px , et quelle est égale à γX (0) = E |X(t)|2
La puissance moyenne d’un signal aléatoire X(t) stationnaire au sens large et erdogique d’ordre 2 est la
quantité
Px = E |X(t)|2
Transformée de Fourier ?
— Nous avons vu que pour les signaux déterministes, il était important de les étudier dans le domaine fréquentiel
pour mieux comprendre leurs propriétés
— Comment faire pour un signal aléatoire ? Par définition, à chaque nouveau signal que l’on génère, on aura un
signal différent et on aura une transformée de Fourier différente !
— Pour un signal déterministe à énergie finie, on a vu que le spectre |X(f )|2 jouait le rôle d’une densité spectrale
R +∞
d’énergie (on avait Ex = −∞ |X(f )|2 df par Parseval)
— On va définir par analogie un outil similaire, également appelé densité spectrale de puissance (DSP),
permettant d’observer le contenu fréquentiel d’un signal aléatoire en moyenne
— Dans la suite on considèrera un signal aléatoire X(t) stationnaire au sens large, ergodique d’ordre 2 et de
moyenne nulle.
E[|ST (f )|2 ]
— En notant ΓX (f ) = limT →+∞ 2T (en supposant qu’elle existe et qu’elle est intégrable sur R) et en
faisant tendre T vers +∞, on a Z +∞
Px = ΓX (f )df
−∞
La densité spectrale de puissance d’un signal aléatoire X(t) stationnaire au sens large, ergodique d’ordre
2 et de moyenne nulle est, lorsqu’elle existe, la quantité
E |ST (f )|2
ΓX (f ) = lim
T →+∞ 2T
— Dans la pratique, cette définition ne sera jamais utilisée car il existe une caractérisation beaucoup plus évidence
de la densité spectrale de puissance grâce à la fonction d’autocorrélation
Théorème de Wiener-Kintchine
ΓX (f ) = F {γX (τ )}
— En divisant les deux membres par 2T et en faisant tendre T → +∞, on obtient bien le résultat
X(f ) H(f ) Y (f )
Théorème de Wiener-Lee
ΓY (f ) = |H(f )|2 ΓX (f )
— En prenant l’espérance on a
∫ +∞ ∫ +∞
E [Y (t)Y (t + τ )] = h(t1 )h(t2 )γX (τ + t1 − t2 )dt1 dt2
−∞ −∞
— On vérifie au passage que cette quantité ne dépend pas de t et que Y (t) est bien stationnaire au sens large. En
prenant la transformée de Fourier on a
∫ +∞ ∫ +∞ ∫ +∞
ΓY (f ) = h(t1 )h(t2 )γX (τ + t1 − t2 )e−j2πf τ dt1 dt2 dτ
−∞ −∞ −∞
— En posant t3 = τ + t1 − t2 on obtient
∫ +∞ ∫ +∞ ∫ +∞
ΓY (f ) = h(t1 )h(t2 )γX (t3 )e−j2πf (t3 +t2 −t1 ) dt1 dt2 dτ
−∞ −∞ −∞
1. La fonction d’autocorrélation d’un bruit blanc est γB (τ ) = σ 2 δ(τ ) où σ 2 est la variance du bruit
2. La densité spectrale de puissance d’un bruit blanc est une constante ΓB (f ) = σ 2
On appelle canal gaussien réel à temps discret un canal qui transforme les valeurs d’entrées X[n] réelles en
valeurs de sorties Y [n] réelles telles que
où les B[n] sont des variables i.i.d. suivant une loi normale de moyenne nulle et de variance σ 2 , décorrélées
des X[n]
Définition 4.33 : Canal gaussien réel à temps continu et à bande passante limitée
On appelle canal gaussien réel à temps continu et à bande passante limitée un canal qui transforme un signal
aléatoire X(t) réel en un signal aléatoire Y (t) réel tel que
où
— B(t) est un bruit blanc additif gaussien décorrélé du signal X(t)
— h(t) est un filtre passe-bas idéal de bande passante [−W, +W ]
H(f ) = Π2W (f )
ΓX (f ) = 0 pour |f | > W
alors on sait que le signal (continu) à transmettre peut être parfaitement reconstruit en échantillonnant à
Fe = 2W
— L’envoi d’un signal à largeur de bande finie W de durée T est donc équivalent à l’envoi de 2W T échantillons
discrets réels
— Ainsi, l’utilisation d’un canal gaussien à temps continu et à bande passante limitée est équivalent à 2W usages
par seconde d’un canal gaussien à temps discret !
Théorème 4.21 : Capacité d’un canal gaussien réel à temps continu et à bande passante limitée
La capacité C d’un canal gaussien réel à temps continu et à bande passante limitée W pour un signal de
puissance moyenne Px et un bruit blanc additif gaussien de densité spectrale de puissance N20 est égale à
Px
C = W log2 1 + bits par seconde
N0 W
Références
Références
[1] Cover, T. M. (1999). Elements of information theory. John Wiley & Sons. http://staff.ustc.edu.cn/
~cgong821/Wiley.Interscience.Elements.of.Information.Theory.Jul.2006.eBook-DDU.pdf
[2] Andersson, K. G. (2015). Finite Fields and Error-Correcting Codes. Lund University. http://www.matematik.
lu.se/matematiklu/personal/sigma/Andersson.pdf
[3] Shannon, C. E. (1948). A mathematical theory of communication. The Bell system technical journal, 27(3),
379-423. https://culturemath.ens.fr/sites/default/files/p3-shannon.pdf
[4] MacKay, D. J., & Mac Kay, D. J. (2003). Information theory, inference and learning algorithms. Cambridge
University Press. https://www.inference.org.uk/itprnn/book.pdf
[5] Yeung, R. W. (2008). Information theory and network coding. Springer Science & Business Media.
[6] Dai, W. (2019). Coding theory. Imperial College London.
[7] De Marçay, F. Analyse de Fourier. Université Paris Saclay. https://www.imo.universite-paris-saclay.fr/
~merker/Enseignement/Analyse-de-Fourier/fourier-pdflatex.pdf
[8] Ling, C. (2019). Information Theory. Imperial College London. http://www.commsp.ee.ic.ac.uk/~cling/IT/
InformationTheory.htm
[9] Polyanskiy, Y. & Wu, Y. (2015). Lecture Notes on Information Theory. MIT. http://people.lids.mit.edu/
yp/homepage/data/itlectures_v5.pdf
[10] Fabre, E. (2000). Théorie de l’information & Codes correcteurs d’erreurs. ENS Cachan. http://people.
rennes.inria.fr/Eric.Fabre/Papiers/polynew.pdf