03.07.2013 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!