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