Canaux bruités et lutte contre le bruit 1. Introduction 2 ... - Montefiore
Canaux bruités et lutte contre le bruit 1. Introduction 2 ... - Montefiore
Canaux bruités et lutte contre le bruit 1. Introduction 2 ... - Montefiore
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Canaux</strong> <strong><strong>bruit</strong>és</strong> <strong>et</strong> <strong>lutte</strong> <strong>contre</strong> <strong>le</strong> <strong>bruit</strong><br />
<strong>1.</strong> <strong>Introduction</strong><br />
2. Chapitre 5. <strong>Canaux</strong> discr<strong>et</strong>s<br />
Communications à travers un canal<br />
Codage de canal (2d théorème de Shannon)<br />
Interprétations, généralisations<br />
3. Chapitre 6. Canal (continu) à <strong>bruit</strong> additif Gaussien<br />
Processus aléatoires en temps continu, entropies diff., AEP<br />
<strong>Canaux</strong> continus<br />
Espaces de signaux<br />
4. Lutte <strong>contre</strong> <strong>le</strong> <strong>bruit</strong><br />
Décodage optimal<br />
Codes linéaires<br />
Concaténation de codes<br />
1
Comment assurer une communication fiab<strong>le</strong> au moyen de canaux <strong><strong>bruit</strong>és</strong><br />
?<br />
Exemp<strong>le</strong>s de canaux <strong><strong>bruit</strong>és</strong> :<br />
<strong>1.</strong> Ligne téléphonique (<strong>bruit</strong> thermique, distorsions, diaphonie )<br />
2. Une liaison par satellite (rayonnement cosmique )<br />
3. Un disque dur (erreurs d’écriture ou de <strong>le</strong>cture)<br />
Modè<strong>le</strong> simp<strong>le</strong> : canal binaire symétrique ( = probabilité d’erreur)<br />
0<br />
1<br />
1<br />
1<br />
2<br />
0<br />
1
Supposons que : 0 1 (une erreur sur 10 bits, en moyenne)<br />
Pour que <strong>le</strong> disque (p.ex.) soit uti<strong>le</strong> : nous ne voulons pas d’erreurs sur la<br />
durée de vie du disque (avec un garantie de 1/100 disques)<br />
P.ex. : durée de vie = 10 ans. Et, supposons que <strong>le</strong> disque serve à transférer<br />
1GB par jour.<br />
10 15 . (souhaité)<br />
Deux approches :<br />
<strong>1.</strong> Solution physique : meil<strong>le</strong>urs circuits, densité plus faib<strong>le</strong>, meil<strong>le</strong>ur refroidissement<br />
2. Solution système : compenser <strong>le</strong>s mauvaises caractéristiques du disque en<br />
l’utilisant “intelligemment”<br />
Message<br />
ENCODEUR<br />
CANAL<br />
3<br />
DECODEUR<br />
ˆ<br />
Estimée<br />
du message
Théorie de l’information <strong>et</strong> du codage : solution système<br />
Ajouter de la redondance à l’entrée <strong>et</strong> exploiter c<strong>et</strong>te redondance (connue) lors<br />
du décodage<br />
Théorie de l’information :<br />
Quel<strong>le</strong>s sont <strong>le</strong>s possibilités (limites) théoriquement atteignab<strong>le</strong>s ?<br />
problème d’analyse<br />
Théorie du codage :<br />
Comment réaliser des systèmes pratiques de compensation ?<br />
problème de synthèse<br />
(Cf. analogie avec <strong>le</strong>s deux cours de théorie des systèmes)<br />
4
Codes correcteurs d’erreurs pour <strong>le</strong> canal symétrique binaire<br />
<strong>1.</strong> Codes de répétition :<br />
Source Code<br />
0 000<br />
1 111<br />
Exemp<strong>le</strong> de transmission : 0010110.<br />
Décodage : on utilise <strong>le</strong> vote majoritaire.<br />
s 0 0 1 0 1 1 0<br />
x 000 000 111 000 111 111 000<br />
b 000 001 000 000 101 000 000<br />
y 000 001 111 000 010 111 000<br />
Décodage : ˆ 0010010<br />
( : vecteur de <strong>bruit</strong>)<br />
(par bit source) : 3 3 2 1 0 028 <strong>et</strong> débit du code : 1 3<br />
NB: pour atteindre 10 15 il faut 1 60<br />
Autre propriété : correction erreurs simp<strong>le</strong>s, détection erreurs doub<strong>le</strong>s.<br />
5
2. Codes en blocs (Hamming 7 4 )<br />
On aimerait bien optimiser <strong>le</strong> débit de transmission sous la contrainte<br />
10 15<br />
Codes en blocs : on associe à des mots source de longueur un mot canal de<br />
longueur .<br />
Exemp<strong>le</strong> : Hamming 7 4<br />
s x<br />
0000 0000000<br />
0001 0001011<br />
0010 0010111<br />
0011 0011100<br />
s x<br />
0100 0100110<br />
0101 0101101<br />
0110 0110001<br />
0111 0111010<br />
s x<br />
1000 1000101<br />
1001 1001110<br />
1010 1010010<br />
1011 1011001<br />
s x<br />
1100 1100011<br />
1101 1101000<br />
1110 1110100<br />
1111 1111111<br />
Code peut être écrit de façon compacte sous la forme ( <strong>et</strong> vecteurs ligne)<br />
avec<br />
1 0 0 0 1 0 1<br />
0<br />
0<br />
1<br />
0<br />
0<br />
1<br />
0<br />
0<br />
1<br />
1<br />
1<br />
1<br />
0<br />
1<br />
[ 4 ]<br />
0 0 0 1 0 1 1<br />
6
Code linéaire : combinaisons linéaires (arithm. mod. 2) de mots de code sont<br />
encore des mots de code.<br />
Les 4 premiers bits = mot source, <strong>le</strong>s trois derniers = contrô<strong>le</strong> de parité.<br />
P.ex. : 5ème bit = parité (somme mod. 2) des 3 premiers.<br />
Décodage : soit <strong>le</strong> mot reçu<br />
Maximum de vraisemblance : trouver <strong>le</strong> mot de code ˆ qui maximise la<br />
probabilité ˆ .<br />
Distance de Hamming : nb bits différents entre deux mots.<br />
Si ˆ alors ˆ 1 (ici 7)<br />
Donc : ˆ maxima<strong>le</strong> ˆ minima<strong>le</strong> (en supposant que 0 5).<br />
Distance minima<strong>le</strong> du code 7 4 : = 3<br />
Poids de Hamming : nombre de bits à <strong>1.</strong><br />
Si poids de Hamming de 1 : décodage correct.<br />
7
Si poids de Hamming de 2 : détection correcte.<br />
Sinon, erreurs possib<strong>le</strong>s.<br />
Si une seu<strong>le</strong> erreur :<br />
Si erreur sur un des quatre premiers bits violation de deux ou trois parités.<br />
P.ex. si <strong>le</strong> premier bit est inversé : erreur de parité au niveau du 1 <strong>et</strong> du 3ème<br />
bit de parité (<strong>et</strong> réciproquement).<br />
Si erreur sur un bit de parité : erreur seu<strong>le</strong>ment sur un seul contrô<strong>le</strong> de parité.<br />
Dans <strong>le</strong>s deux cas on identifie directement l’erreur.<br />
Utilisation du syndrôme<br />
Syndrôme : différence entre <strong>le</strong>s trois bits de contrô<strong>le</strong> reçus <strong>et</strong> ceux qui seraient<br />
obtenus en calculant <strong>le</strong> mot de code à partir des quatre premiers bits reçus.<br />
Le syndrôme contient toute l’information pour <strong>le</strong> décodage optimal :<br />
Huit va<strong>le</strong>urs possib<strong>le</strong>s huit patterns d’erreurs <strong>le</strong>s plus probab<strong>le</strong>s (précalculés).<br />
8
P.ex. : supposons que 0101111 :<br />
- bits de signal 0101 mot de code 0101101 (parité 101)<br />
- syndrôme : 101 111 010 (bit par bit)<br />
- pattern d’erreur <strong>le</strong> plus probab<strong>le</strong> : 0000010<br />
- mot décodé : 0101101<br />
P.ex. : supposons que 0101110 :<br />
- bits de signal 0101 mot de code 0101101 (parité 101)<br />
- syndrôme : 101 110 011 (bit par bit)<br />
- pattern d’erreur <strong>le</strong> plus probab<strong>le</strong> : 0001000<br />
- mot décodé : 0100 (code 0100110).<br />
Par exemp<strong>le</strong> :<br />
Si 0 erreur : poids du syndrôme nul<br />
Si 1 erreur : poids du syndrôme = 1, 2 ou 3. (7 possibilités/7)<br />
Si 2 erreurs : poids du syndrôme = 1, 2 ou 3.<br />
Si 3 erreurs : poids du syndrôme = 0, 1, 2 ou 3.<br />
Se trompe à coup sûr si 2 erreurs ou plus.<br />
9
Résumé<br />
Code 7 4 détecte aussi <strong>le</strong>s erreurs simp<strong>le</strong>s, mais sur des mots plus longs (7<br />
au lieu de 3).<br />
Si 0 1 : probabilité d’erreur par mot : 0.14<br />
probabilité d’erreur par bit : 0.07<br />
Moins bon du point de vue mais meil<strong>le</strong>ur du point de vue débit : 4 7.<br />
Il semb<strong>le</strong> qu’il y ait un compromis entre <strong>le</strong> débit <strong>et</strong> <strong>le</strong> taux d’erreurs.<br />
Intuitivement : lim 0 0<br />
(ce que tout <strong>le</strong> monde croyait il n’y a pas si longtemps...)<br />
Et alors ?<br />
...Shannon est arrivé...<br />
10
Second théorème de Shannon<br />
Dit que ssi 1 2 alors 0 possib<strong>le</strong> (par mots <strong>et</strong> par bits).<br />
Troisième théorème de Shannon (distorsion tolérée)<br />
Compression irréversib<strong>le</strong>, alors 1 2<br />
( désigne ici <strong>le</strong> nombre minimum de symbo<strong>le</strong>s de code par symbo<strong>le</strong><br />
source nécessaires)<br />
Au total : on peut fonctionner si 1 2<br />
log<br />
0.1 Atteignab<strong>le</strong><br />
0.01<br />
1e-11<br />
0 0.53<br />
Non atteignab<strong>le</strong><br />
1<br />
11<br />
Conclusion : il suffit de deux disques<br />
pour atteindre 10 15 .
Chapitre 5 : canaux discr<strong>et</strong>s, 2nd théorème de Shannon<br />
Qu’est-ce qu’un canal ?<br />
Modè<strong>le</strong> abstrait :<br />
.....<br />
1 2<br />
Canal Albert<br />
1 2 1 2<br />
Plus tard <strong>et</strong>/ou ail<strong>le</strong>urs<br />
Version <strong>bruit</strong>ée<br />
c’est-à-dire la donnée des lois de probabilités conditionnel<strong>le</strong>s<br />
définies 1 2<br />
(on néglige <strong>le</strong> temps qui s’écou<strong>le</strong>)<br />
1 1<br />
12<br />
1 2<br />
....
Simplifications<br />
Canal causal : si<br />
1 1 1 1 1<br />
Canal causal sans mémoire : si 2<br />
1 1 1 2<br />
Canal causal sans mémoire <strong>et</strong> stationnaire : si 1 on a<br />
cela va être notre modè<strong>le</strong> de travail...<br />
1 symbo<strong>le</strong> entre en -ième position 1 autre symbo<strong>le</strong> sort en -ième position.<br />
Si processus stationnaire à l’entrée stationnaire à la sortie<br />
Si processus ergodique à l’entrée ergodique à la sortie<br />
(NB: se généralise si canal stationnaire de mémoire finie...)<br />
13<br />
3
Capacité en information d’un canal sans mémoire<br />
Par définition :<br />
Remarques<br />
Grandeur calculée pour une utilisation du canal.<br />
max ; 4<br />
; dépend à la fois de propriétés de la source <strong>et</strong> du canal.<br />
ne dépend que des propriétés du canal.<br />
A ce stade c<strong>et</strong>te grandeur ne veut rien dire de plus...<br />
Plus loin on verra qu’el<strong>le</strong> coïncide avec la notion de capacité opérationnel<strong>le</strong>.<br />
NB: comment généraliser la définition de pour un canal avec mémoire ?<br />
14
Exemp<strong>le</strong>s de canaux <strong>et</strong> calculs de <strong>le</strong>ur capacité<br />
Matrice de transition :<br />
<strong>1.</strong> Canal binaire sans <strong>bruit</strong><br />
Entrées <strong>et</strong> sorties binaires :<br />
1<br />
1 1 1<br />
.<br />
. ..<br />
1 0<br />
0 1<br />
; , maxima<strong>le</strong> quand est maxima<strong>le</strong> (=1 Shannon).<br />
Débit atteignab<strong>le</strong> (sans erreurs) : 1 symbo<strong>le</strong> source/utilisation du canal.<br />
Peut-on faire mieux ?<br />
Non, sauf si on sacrifie .<br />
15<br />
.
2. Canal <strong>bruit</strong>é sans recouvrement des sorties<br />
P.ex. : matrice de transition<br />
1 0 0<br />
0 0 1<br />
Atteignab<strong>le</strong>...<br />
0 ; <strong>1.</strong><br />
3. Machine à écrire <strong>bruit</strong>ée<br />
Entrées : a, b, c, , z Sorties : a, b, c, ,z<br />
0 5 0 5, 0 5 0 5, 0 5 0 5<br />
; avec 1 max si sorties équiprobab<strong>le</strong>s<br />
P.ex. si entrées équiprobab<strong>le</strong>s : log 2 26 log 2 13<br />
Atteignab<strong>le</strong> en utilisant un sous-ensemb<strong>le</strong> de l’alphab<strong>et</strong> d’entrée...<br />
(NB: c<strong>et</strong>te idée sera exploitée plus loin)<br />
16
4. Canal symétrique binaire<br />
0<br />
1<br />
1<br />
1<br />
Capacité en information de ce canal :<br />
;<br />
0<br />
1<br />
2 2 1 2<br />
Vaut 0, si 0 5 <strong>et</strong> 1 si 0 0. Symétrique : 1 .<br />
Atteignabilité : moins évidente.<br />
17<br />
1<br />
1
5. Canal binaire avec effacement<br />
0<br />
1<br />
1<br />
1<br />
0<br />
1<br />
1 0<br />
0 1<br />
max ; max max 2<br />
Impossib<strong>le</strong> de réaliser log 3 par un choix judicieux de (sauf si<br />
1 3)<br />
Soit 1 ; on trouve 2 1 2 qui est maxima<strong>le</strong><br />
lorsque 0 5.<br />
On trouve fina<strong>le</strong>ment 1 symbo<strong>le</strong>s perdus n’apportent pas d’information.<br />
<strong>Canaux</strong> symétriques : indépendant de . réalisée si unif.<br />
18
Propriétés de la capacité en information<br />
<strong>1.</strong> 0.<br />
2. min log log .<br />
De plus on montre que ; est une fonction continue <strong>et</strong> concave de .<br />
Comme el<strong>le</strong> est concave tout maximum local est un maximum global sur<br />
l’ensemb<strong>le</strong> convexe des distributions de probabilités de .<br />
Comme el<strong>le</strong> est bornée <strong>le</strong> maximum l’est aussi.<br />
On peut donc utiliser des méthodes d’optimisation loca<strong>le</strong> (“descente” de<br />
gradient, ) pour trouver son maximum.<br />
En général, la solution n’est pas obtenue de façon analytique.<br />
19
Système de communication<br />
Message<br />
ENCODEUR<br />
CANAL<br />
DECODEUR<br />
ˆ<br />
Estimée<br />
du message<br />
Un message (ensemb<strong>le</strong> fini de messages possib<strong>le</strong>s 1 2 ) est<br />
encodé par l’encodeur sous la forme d’une suite de symbo<strong>le</strong>s d’entrée du<br />
canal, désignée par .<br />
C<strong>et</strong>te séquence est reçue de l’autre côté sous la forme d’une séquence aléatoire<br />
de symbo<strong>le</strong>s (distribuée selon la loi de probabilité .<br />
C<strong>et</strong>te séquence est ensuite décodée par <strong>le</strong> décodeur, qui choisit un élément<br />
ˆ <strong>le</strong> récepteur comm<strong>et</strong> une erreur si ˆ .<br />
Dans ce qui suit, nous supposons que l’encodeur <strong>et</strong> <strong>le</strong> décodeur opèrent de<br />
manière déterministe :<br />
- est la règ<strong>le</strong> (ou fonction) d’encodage;<br />
- ˆ est la règ<strong>le</strong> (ou fonction) de décodage.<br />
20
Données canal sans mémoire<br />
Nous supposons données <strong>le</strong>s probabilités de transition<br />
(éventuel<strong>le</strong>ment non-stationnaires).<br />
Nous supposons que <strong>le</strong> canal est utilisé sans bouc<strong>le</strong> de r<strong>et</strong>our (voir notes) :<br />
Dans ce cas : 1 .<br />
Définitions qui vont suivre :<br />
Code de canal<br />
Probabilités d’erreur...<br />
Taux ou débit de communication.<br />
Débit réalisab<strong>le</strong>.<br />
Capacité opérationnel<strong>le</strong>.<br />
21
Code<br />
Un code pour un canal est défini par<br />
<strong>1.</strong> Un ensemb<strong>le</strong> d’indices 1 ;<br />
2. Une fonction d’encodage : 1 , qui donne <strong>le</strong>s<br />
mots de code 1 que nous appel<strong>le</strong>rons la tab<strong>le</strong> du code<br />
(codebook).<br />
3. Une fonction de décodage<br />
: 1 5<br />
qui est une règ<strong>le</strong> déterministe qui associe à chaque sortie possib<strong>le</strong> du canal<br />
une entrée .<br />
mots codés sur symbo<strong>le</strong>s d’entrée du canal.<br />
22
Probabilités d’erreur de décodage<br />
<strong>1.</strong> Probabilité d’erreur de décodage du mot<br />
2. Probabilité d’erreur maxima<strong>le</strong> d’un code sur un canal :<br />
max<br />
1<br />
3. Probabilité d’erreur moyenne (algébrique) :<br />
1<br />
probabilité d’erreur de décodage si est distribué uniformément à l’entrée.<br />
23<br />
1<br />
1
Règ<strong>le</strong> optima<strong>le</strong> de décodage<br />
Par définition : cel<strong>le</strong> qui minimise la probabilité d’erreur de décodage.<br />
Pour un reçu choisir tel que est maxima<strong>le</strong>.<br />
maximiser la probabilité a posteriori (MAP)<br />
minimise pour chacun des la probabilité d’erreur<br />
minimise la probabilité d’erreur de décodage en moyenne (probabiliste).<br />
principe général en théorie de décision : Règ<strong>le</strong> de Bayes<br />
On dispose d’une information (variab<strong>le</strong> aléatoire qui peut être observée).<br />
On veut prendre une décision optima<strong>le</strong> (choisir parmi possibilités).<br />
Décision correcte : une v.a. connu.<br />
Coût de décision : 0 si correcte, 1 si incorrecte.<br />
Décision optima<strong>le</strong> sur base de l’info : ˆ arg max<br />
24
Pour notre canal :<br />
1<br />
Comme 1 ne dépend pas du choix opéré, cela<br />
revient à maximiser .<br />
Discussion<br />
: données canal.<br />
: données source.<br />
Si source uniforme : indépendant de maximiser .<br />
règ<strong>le</strong> du maximum de vraisemblance : minimise<br />
Quasi optima<strong>le</strong>, si source quasi uniforme.<br />
P.ex. si source non redondante ou si on code des messages longs (cf. AEP)<br />
25
Débit de communication : noté<br />
Le débit de communication<br />
non/symbo<strong>le</strong> transmis.<br />
d’un code est défini par<br />
entropie par symbo<strong>le</strong> de canal si entrées uniformes.<br />
Débit réalisab<strong>le</strong> (plus subtil)<br />
log<br />
Shan-<br />
réalisab<strong>le</strong> (atteignab<strong>le</strong>) si une suite de codes 1 2 avec<br />
<strong>1.</strong> 2 <strong>et</strong> 2. lim 0<br />
codes de débit , finissent par devenir aussi bons que souhaité <strong>et</strong> <strong>le</strong> restent<br />
Remarque<br />
Définition indépendante de la distribution de la source (cf. prob. erreur max).<br />
Capacité opérationnel<strong>le</strong> : borne sup de tous <strong>le</strong>s débits réalisab<strong>le</strong>s.<br />
0 est réalisab<strong>le</strong>, mais est-ce que 0 <strong>et</strong> fini ?<br />
26
Second théorème de Shannon<br />
Objectif : démontrer que la capacité en information est éga<strong>le</strong> à la capacité<br />
opérationnel<strong>le</strong> .<br />
Hypothèses : <strong>le</strong> coup<strong>le</strong> obéit au théorème AEP (stationnaire <strong>et</strong><br />
ergodique)<br />
Si canal stationnaire, de mémoire finie <strong>et</strong> entrée stationnaire ergodique<br />
Capacité en information (par utilisation du canal) :<br />
max lim 1<br />
(avec stationnaire <strong>et</strong> ergodique)<br />
Nous allons cependant nous restreindre au canal sans mémoire.<br />
Dans ce cas, <strong>le</strong> maximum est réalisé par des symbo<strong>le</strong>s de source indépendants<br />
<strong>et</strong> on revient à notre définition : max ;<br />
27<br />
;
Démarche<br />
On se donne , <strong>et</strong> ; on construit une tab<strong>le</strong> de code aléatoire selon<br />
( tirages) mots de codes sont typiques (si suff. grand).<br />
1<br />
2<br />
3<br />
transition typique transition atypique<br />
28
Bilan (à la louche...)<br />
A l’entrée : 2 séquences typiques possib<strong>le</strong>s (on en tire ).<br />
A la sortie : pour chaque typique 2 séquences de sortie typiques<br />
Mais <strong>le</strong>s sorties sont typiques : au total il y en a 2<br />
Si on souhaite qu’il n’y ait pas de recouvrement : il faut que<br />
2<br />
2 2<br />
En choisissant qui maximise ; on en déduit qu’il est plausib<strong>le</strong><br />
de pouvoir transm<strong>et</strong>tre 2 messages distinguab<strong>le</strong>s à la sortie.<br />
Mora<strong>le</strong><br />
En travaillant dans un espace de grande dimension ( ) on peut exploiter<br />
la redondance (corrélation) entre entrées <strong>et</strong> sorties pour transm<strong>et</strong>tre de<br />
l’information de manière fiab<strong>le</strong>.<br />
29<br />
;
Démonstration du second théorème de Shannon<br />
Deux parties : (1) atteignabilité de (2) impossibilité de la dépasser.<br />
Etapes<br />
<strong>1.</strong> Théorème AEP conjoint<br />
2. Atteignabilité (codes aléatoires + AEP) (symbo<strong>le</strong>s source indépendants)<br />
3. Inégalité de Fano : majoration de en fonction de<br />
4. Majoration de la capacité du canal étendu<br />
5. Réciproque du second théorème<br />
6. Discussion de<br />
30
Typicalité conjointe<br />
L’ensemb<strong>le</strong> de séquences conjointement typiques par rapport<br />
à une distribution , est l’ensemb<strong>le</strong> de tel<strong>le</strong>s séquences dont <strong>le</strong>s<br />
entropies conjointes <strong>et</strong> margina<strong>le</strong>s empiriques sont proches des entropies<br />
conjointes <strong>et</strong> margina<strong>le</strong>s, c’est-à-dire<br />
où<br />
1 log<br />
1 log<br />
:<br />
1 log (6)<br />
31<br />
1<br />
7
Théorème : équipartition asymptotique (AEP) conjointe<br />
Soit une suite de variab<strong>le</strong>s aléatoires correspondant à des séquences<br />
entrée/sortie de longueur tirées aléatoirement, de façon indépendante <strong>et</strong> distribuées<br />
selon une même loi (i.e. 1 ).<br />
Alors<br />
<strong>1.</strong> lim <strong>1.</strong><br />
2. 1 2 2 .<br />
3. si ˜ ˜ , i.e. si ˜ <strong>et</strong> ˜ sont indépendantes <strong>et</strong><br />
distribuées selon <strong>le</strong>s lois margina<strong>le</strong>s de , alors<br />
1 2<br />
; 3 ˜ ˜ 2<br />
NB. Ensemb<strong>le</strong> simp<strong>le</strong>ment typique : ensemb<strong>le</strong> des coup<strong>le</strong>s tels que<br />
1 log .<br />
conjointement typique aussi probab<strong>le</strong> que simp<strong>le</strong>ment typique.<br />
32<br />
3<br />
8
2<br />
séquences<br />
d’entrée<br />
typiques<br />
2 séquences de sortie typiques<br />
2<br />
séquences conj. typiques<br />
2<br />
séquences<br />
d’entrée<br />
typiques<br />
2<br />
séquences<br />
d’entrée<br />
typiques<br />
2 séquences de sortie typiques<br />
(c) Cas tota<strong>le</strong>ment aléatoire : ; 0<br />
2 séquences de sortie typiques<br />
(a) Cas usuel : 0 ; (b) Cas déterministe : ;<br />
33
2ème théorème de Shannon<br />
Deux parties :<br />
Al<strong>le</strong>r : réalisab<strong>le</strong> ( 0).<br />
R<strong>et</strong>our : non réalisab<strong>le</strong>.<br />
De manière plus fine :<br />
Al<strong>le</strong>r : implique qu’il existe un moyen (suite de codes) d’utiliser <strong>le</strong><br />
canal de tel<strong>le</strong> manière que <strong>et</strong> décroissent de façon exponentiel<strong>le</strong> (en<br />
fonction de ) vers zéro.<br />
R<strong>et</strong>our : implique que quel<strong>le</strong> que soit la façon d’utiliser <strong>le</strong> canal,<br />
va croître vers 1, de façon exponentiel<strong>le</strong>.<br />
Nous allons esquisser <strong>le</strong>s deux démonstrations sous l’hypothèse du canal sans<br />
mémoire.<br />
34
Esquisse de la démonstration (Al<strong>le</strong>r)<br />
On se donne , , ; <strong>et</strong> 2 <strong>et</strong> un .<br />
<strong>1.</strong> Construction de codes aléatoires : on considère tous <strong>le</strong>s codes<br />
possib<strong>le</strong>s avec une loi de probabilités pur chacun définie par<br />
1 1<br />
2. Règ<strong>le</strong> de décodage : on associe à une suite reçue l’indice tel que<br />
(erreur si pas unique ou si inexistant).<br />
3. On calcu<strong>le</strong> la probabilité d’erreur moyenne de tous ces codes, i.e.<br />
<strong>et</strong> on montre que<br />
avec lim 0. (C’est ici qu’on fait appel aux propriétés de ).<br />
35<br />
2
4. Comme ce qui précède est vrai quelque soit on peut choisir comme<br />
cas particulier qui réalise la capacité( ; ). On en déduit un<br />
moyen pour obtenir de bons comportements en moyenne si .<br />
5. Comme , cela implique qu’il existe au moins un code tel que<br />
2 (en fait il en existe même un très grand nombre).<br />
6. Soient <strong>le</strong>s ( 1 ) <strong>le</strong>s probabilités d’erreur des mots de ce code.<br />
Construisons un nouveau code comprenant <strong>le</strong>s<br />
<strong>et</strong> soit <strong>le</strong>ur probabilité d’erreur maxima<strong>le</strong>.<br />
2 mots de <strong>le</strong>s meil<strong>le</strong>urs,<br />
Montrons que 4 (Si 0 ok). Sinon<br />
Conclusion.<br />
1 1 1<br />
2<br />
Nous avons su construire un code de longueur 2 2 1 tel que 4 .<br />
Autrement dit, pour suffisamment grand, <strong>et</strong> pour un débit 1 on a<br />
4 . c.q.f.d.<br />
36
Esquisse de la démonstration (R<strong>et</strong>our)<br />
Repose sur l’inégalité de Fano.<br />
Si on devine à partir de alors<br />
log<br />
Dans <strong>le</strong> cas de notre canal, on l’applique à (<strong>le</strong> message d’entrée) <strong>et</strong><br />
<strong>le</strong>s suites reçues à la sortie.<br />
On en déduit que<br />
D’autre part, (fonction) <strong>et</strong> donc<br />
Enfin, on note que ; (canal sans mémoire).<br />
1<br />
37<br />
1<br />
1
Réciproque Si est réalisab<strong>le</strong>, alors .<br />
Si est réalisab<strong>le</strong>, il existe une suite de codes 2 avec 0.<br />
Cela implique donc aussi que 0.<br />
La suite nous de codes nous donne la fonction d’encodage<br />
<strong>et</strong> en supposant que est uniforme .<br />
On en déduit que<br />
<strong>et</strong> en divisant par<br />
log 2 ; (9)<br />
; (10)<br />
1 (11)<br />
ce qui implique (en faisant tendre ) que .<br />
38<br />
1
A lire dans <strong>le</strong>s notes...<br />
Détails démonstrations.<br />
Sous quel<strong>le</strong>s conditions est possib<strong>le</strong>.<br />
Feedback.<br />
Interprétation géométrique du codage de canal<br />
1 5 10 n t<br />
Figure 1 Représentation de messages par des signaux temporels discr<strong>et</strong>s<br />
39
1<br />
1<br />
1<br />
2 2<br />
(a) Trop peu de messages 1 (b) Trop de messages 1<br />
(c) Bruit plus é<strong>le</strong>vé: 2 1<br />
2<br />
1<br />
(d) Bruit corrélé dans <strong>le</strong> temps : 3 1<br />
40<br />
2
Chapitre 9<br />
Construction de bons codes de canal.<br />
<strong>1.</strong> Pourquoi pas <strong>le</strong> codage aléatoire ?<br />
(NB. on peut utiliser <strong>le</strong> décodage au maximum de vraisemblance.)<br />
Problème principal : il faut très grand pour que soit p<strong>et</strong>it.<br />
Comme croît exponentiel<strong>le</strong>ment avec , cela veut dire que la tab<strong>le</strong> de code<br />
devient de tail<strong>le</strong> astronomique, <strong>et</strong> <strong>le</strong> décodage (dont la comp<strong>le</strong>xité est au moins<br />
linéaire en fonction de ), devient impraticab<strong>le</strong>.<br />
un bon code de canal serait un code à la fois efficace du point de vue<br />
correcton d’erreurs <strong>et</strong> faci<strong>le</strong> àdécoder.<br />
La théorie des codes vise à construire de tels codes, depuis 1950.<br />
beaucoup de théorie (parfois assez compliquée) avec des résultats assez<br />
décevants (ça se sent dans beaucoup de livres sur la question).<br />
41
Progrès significatifs récents :<br />
- en 1993, Berrou <strong>et</strong> al. découvrent <strong>le</strong>s turbo-codes.<br />
- codes en blocs de faib<strong>le</strong> densité<br />
Note<br />
Codes pour <strong>le</strong> canal binaire symétrique.<br />
Codes pour <strong>le</strong> canal Gaussien (voir chapitre 6).<br />
Codes pour d’autres types de canaux (évanouissements, <strong>bruit</strong> impulsionnel...)<br />
Importance pratique ( il y a encore du pain sur la planche)<br />
Réduire <strong>le</strong>s puissances d’émission : réduire poids, augmenter autonomie (p.ex.<br />
GSM, satellites )<br />
Travail<strong>le</strong>r dans des conditions très <strong>bruit</strong>ées (p.ex. orages magnétiques )<br />
42
Menu : pour notre survol du codage de canal...<br />
Codes linéaires en blocs (cf. introduction)<br />
Code convolutifs <strong>et</strong> treillis<br />
Algorithme de Viterbi<br />
Combinaison de codes (produit, concaténation)<br />
Artic<strong>le</strong> de la recherche de ce mois sur <strong>le</strong>s turbo-codes<br />
43
Codes linéaires en blocs<br />
Reposent sur la structure d’espace vectoriel induit à partir d’un corps fini.<br />
Corps fini ( symbo<strong>le</strong>s) : structure algébrique définie sur l’alphab<strong>et</strong> du code.<br />
Exemp<strong>le</strong>s :<br />
mots de code possib<strong>le</strong>s.<br />
- arithmétique modulo (avec nombre premier) : 2 3 5 7 11 13<br />
- corps de Gallois (alphab<strong>et</strong>s de tail<strong>le</strong> ): 4 8 9 16 25 27<br />
Pour nous alphab<strong>et</strong> binaire avec arithmétique modulo 2.<br />
Pourquoi élargir l’alphab<strong>et</strong> ?<br />
pour se rapprocher du signal continu (voir chapitre 6).<br />
n’a d’intérêt que si <strong>le</strong> rapport signal <strong>bruit</strong> est suffisamment faib<strong>le</strong>.<br />
44
Code linéaires<br />
Ayant choisi <strong>et</strong> , <strong>le</strong> code définit un sous-espace linéaire de dimension<br />
de .( )<br />
Deux approches pour l’expliciter :<br />
<strong>1.</strong> Choix d’un ensemb<strong>le</strong> de vecteurs de base (matrice génératrice , )<br />
on peut écrire un mot de code sous la forme .<br />
2. Choix d’une base du complément orthogonal (matrice de contrô<strong>le</strong> ,<br />
)<br />
on doit avoir 0.<br />
Métrique de Hamming<br />
... cf début de ce cours pour <strong>le</strong>s définitions (qui s’étendent au cas 2).<br />
Notion de distance minima<strong>le</strong> entre mots de codes <strong>et</strong> .<br />
45
Décodage de codes linéaire en bloc (ex. (7,4))<br />
Trouver <strong>le</strong> mot de code qui minimise la distance de Hamming.<br />
Trois idées :<br />
<strong>1.</strong> Construire une tab<strong>le</strong> qui contient pour chaque mot possib<strong>le</strong> ( ) <strong>le</strong> mot de<br />
code <strong>le</strong> plus proche (grosse tab<strong>le</strong>) (2 7 128)<br />
2. Utiliser la tab<strong>le</strong> de code (qui contient mots) <strong>et</strong> la parcourir systématiquement<br />
(tab<strong>le</strong> plus p<strong>et</strong>ite, mais plus de calculs) (2 4 16)<br />
3. Utiliser <strong>le</strong> syndrôme : à chaque syndrôme correspond un pattern d’erreur <strong>le</strong><br />
plus probab<strong>le</strong> (à cause de la linéarité). On construit une tab<strong>le</strong> qui associe <strong>le</strong>s<br />
syndrômes pattern d’erreurs (syndrôme = adresse) : tail<strong>le</strong> . Ici 2 3 8.<br />
Nombreuses famil<strong>le</strong>s de codes en bloc linéaires<br />
46
Hamming : 2 1, (p.ex. 3 code 7 4 .<br />
Colonnes de : tous <strong>le</strong>s mots non-nuls de longueur .<br />
P.ex. pour <strong>le</strong> code 7 4 on a<br />
1 1 1 0 1 0 0<br />
0 1 1 1 0 1 0<br />
1 0 1 1 0 0 1<br />
(ordre des colonnes en réalité quelconque). Ici organisation systématique...<br />
Les codes de Hamming sont des codes parfaits qui corrigent une erreur simp<strong>le</strong><br />
(maximaux).<br />
Codes cycliques <strong>et</strong> BCH (cf corps de Gallois, perm<strong>et</strong>tent de choisir <strong>le</strong> nombre<br />
d’erreurs corrigeab<strong>le</strong>s)<br />
Codes de Hadamard (cf matrice de Hadamard)<br />
Codes de Reed-Mul<strong>le</strong>r (construction récursive, facilité de décodage)<br />
47<br />
3
Codes convolutionnels<br />
Codes linéaires mais pas en blocs.<br />
Idée : la séquence d’entrée alimente un système (avec mémoire) qui<br />
engendre une séquence de sortie.<br />
Système = codeur : initia<strong>le</strong>ment au repos.<br />
Séquence de sortie redondante<br />
1<br />
1<br />
48<br />
Entrelaceur
Décodage<br />
Exemp<strong>le</strong> (simp<strong>le</strong>) :<br />
0 1<br />
1 2<br />
Mémoire : état des deux registres 1 2 :2 2 4 états.<br />
L’état initial (p.ex.) : 00<br />
+<br />
+<br />
1<br />
2<br />
2<br />
1 2<br />
En l’absence de <strong>bruit</strong>, on peut récupérer de la manière suivante : 0<br />
1<br />
1<br />
1 ,<br />
1<br />
2<br />
49<br />
1<br />
0 , <strong>et</strong>
Diagramme en treillis<br />
Simulation du fonctionnement à l’aide d’un graphe : représente toutes <strong>le</strong>s<br />
suites d’états possib<strong>le</strong>s, avec <strong>le</strong>s entrées <strong>et</strong> <strong>le</strong>s sorties qui correspondent.<br />
00<br />
10<br />
01<br />
11<br />
Etats<br />
0 1 2 3 4 5 6 7 8<br />
1<br />
0<br />
Etat : 1 2<br />
temps ( )<br />
sorties<br />
Etat de l’encodeur : nb. d’états possib<strong>le</strong>s où est la mémoire<br />
De chaque état partent exactement deux transitions.<br />
A partir de 3, deux transitions aboutissent à chaque état.<br />
50<br />
00<br />
11<br />
01<br />
10<br />
1 2<br />
11<br />
00<br />
10<br />
01
Décodage<br />
<strong>1.</strong> Il est clair qu’à chaque suite d’entrée correspond un chemin dans <strong>le</strong> treillis.<br />
2. Code déchiffrab<strong>le</strong> : deux messages d’entrée chemins .<br />
3. Message envoyé: (alphab<strong>et</strong> 4); message reçu : (alphab<strong>et</strong> 4).<br />
4. Trouver ˆ tel que ˆ soit minima<strong>le</strong>.<br />
5. choisir ˆ tel que ˆ , .<br />
6. Considérons que <strong>le</strong>s sont équiprobab<strong>le</strong>s : maximiser .<br />
7. Canal sans mémoire : 1<br />
8. Minimiser : log 1 log<br />
9. log mesurent <strong>le</strong>s “coûts” des arcs du treillis<br />
10. trouver <strong>le</strong> chemin de longueur <strong>le</strong> moins “cher” dans <strong>le</strong> treillis.<br />
NB. Solution par énumération : 2 chemins possib<strong>le</strong>s... (suites possib<strong>le</strong>s)<br />
51
Algorithme de Viterbi<br />
Basé sur la propriété suivante (chemin = suite d’états = suite d’arcs (symbo<strong>le</strong>s))<br />
:<br />
Si 1 est un chemin optimal menant vers l’état 1,<br />
alors est un chemin optimal menant vers l’état<br />
car sinon<br />
Donc : si nous connaissons <strong>le</strong>s chemins optimaux de longueur menant<br />
vers chacun des états (noeuds en position ) <strong>et</strong> <strong>le</strong>s coûts des transitions, on<br />
peut en déduire directement <strong>le</strong>s chemins optimaux de longueur 1 menant<br />
vers chacun des états (noeuds en position 1).<br />
Principe :<br />
- on construit tous <strong>le</strong>s chemins optimaux de longueur 0 1<br />
- à la fin, on garde <strong>le</strong> chemin <strong>le</strong> moins cher parmi <strong>le</strong>s qui sont de longueur<br />
52
- si plusieurs choix possib<strong>le</strong>s : on tranche arbitrairement<br />
1 opérations (OK si <strong>et</strong> pas trop grands).<br />
53
Discussion<br />
Algorithme de Viterbi applicab<strong>le</strong> de façon plus généra<strong>le</strong> :<br />
- alphab<strong>et</strong> de sortie continu<br />
- source sans mémoire non-uniforme<br />
- marche aussi pour <strong>le</strong>s codes linéaires en blocs<br />
Viterbi pas nécessairement très efficace (dépend de l’allure du treillis)<br />
Versions simplifiées :<br />
-méthode de hill-climbing (maintient seu<strong>le</strong>ment un seul chemin)<br />
- beam-search<br />
Inconvénient de principe : il faut attendre la fin du message pour trancher<br />
En pratique : on peut trancher avec un r<strong>et</strong>ard de l’ordre de 5 .<br />
54
Treillis associé à un code linéaire en bloc<br />
On définit <strong>le</strong>s états à partir de la matrice de contrô<strong>le</strong>.<br />
P.ex. pour <strong>le</strong> code 7 4 on a<br />
On sait que<br />
En d’autres mots<br />
1 1 1 0 1 0 0<br />
0 1 1 1 0 1 0<br />
1 0 1 1 0 0 1<br />
7<br />
1<br />
1<br />
2<br />
3<br />
55<br />
0<br />
0<br />
0<br />
0<br />
0<br />
0<br />
3
Etat vecteur de contrô<strong>le</strong> de parité partiel :<br />
<strong>et</strong><br />
000<br />
001<br />
010<br />
011<br />
100<br />
101<br />
110<br />
111<br />
0 1 2 3 4 5 6 7 8<br />
1<br />
0 7<br />
9<br />
56<br />
0<br />
0<br />
0<br />
1<br />
2<br />
3
Combinaisons de codes<br />
Code produit<br />
On écrit <strong>le</strong>s mots du code selon <strong>le</strong>s lignes d’un tab<strong>le</strong>au, puis on établit un code<br />
pour <strong>le</strong>s colonnes.<br />
On peut aussi faire autrement : on prend des blocs de longueur 1 2 : on <strong>le</strong>s<br />
organise dans un tab<strong>le</strong>au 1 2 <strong>et</strong> on code d’abord <strong>le</strong>s lignes de ce tab<strong>le</strong>au,<br />
ensuite <strong>le</strong>s colonnes : ce qui donne un tab<strong>le</strong>au 1 2 qui est transmis.<br />
Code concaténé : on code deux fois de suite <strong>le</strong>s messages.<br />
Autres approches<br />
Coder deux fois avec des logiques (simp<strong>le</strong>s) différentes (turbo-codes) <strong>et</strong> décodage<br />
itératif (pour concilier <strong>le</strong>s deux informations).<br />
Codes pseudo-aléatoires : p.ex. codeurs convolutifs avec réponse impulsionnel<strong>le</strong><br />
de durée illimitée (bouc<strong>le</strong>s) (p.ex. l’état du codeur est un nombre<br />
pseudo-aléatoire qui est ajouté au mot source...).<br />
57
Chapitre 6. <strong>Canaux</strong> <strong>et</strong> signaux continus<br />
<strong>1.</strong> Processus aléatoires en temps continu<br />
2. Théorème d’échantillonnage<br />
3. Entropies différentiel<strong>le</strong>s <strong>et</strong> théorème AEP<br />
4. <strong>Canaux</strong> continus<br />
(a) Canal Gaussien (modè<strong>le</strong> abstrait, en temps discr<strong>et</strong>)<br />
(b) <strong>Canaux</strong> à bande passante limitée (en temps continu)<br />
(c) <strong>Canaux</strong> parallè<strong>le</strong>s <strong>et</strong> <strong>bruit</strong> coloré<br />
(d) Espaces de signaux (introduction au traitement du signal)<br />
58
Ce que nous n’avons pas pu voire:<br />
Codes sur un espace euclidien<br />
(Signaux <strong>et</strong> canaux continus)<br />
Cryptographie<br />
(Rendre <strong>le</strong> décodage diffici<strong>le</strong>)<br />
Théorie de la distorsion<br />
(Compression irréversib<strong>le</strong>)<br />
Théorie de l’information de réseaux de communication<br />
Relation entre théorie de l’information <strong>et</strong> physique statistique<br />
(Thermodynamique)<br />
Applications de la théorie de l’information<br />
(statistiques <strong>et</strong> apprentissage automatique)<br />
Comp<strong>le</strong>xité de Kolmogorov<br />
(relations avec l’informatique théorique : décidabilité, comp<strong>le</strong>xité )<br />
59