Notions sur les transmissions numériques J. Le Roux www.essi.fr/~leroux • • • • • • • • • • Contraintes liées a la transmission a distance Modulation codage Défauts de transmissions Correction des erreurs de transmission Notions de cryptographie (RSA) Compression de données Codage des sons et de la parole Codage des images Exemple de la téléphonie mobile GSM Autres systèmes : UMTS, 802.11, BLUETOOTH, ADSL,OFDM... Version provisoire ; merci aux auteurs dont j’ai récupéré les présentations graphiques sur le web Analyse des éléments principaux d’une transmission Déformations apportées au signal transmis Modulation - transmission - démodulation Bandes de fréquences Mise en forme des données par l’émetteur Opérations effectuées par le récepteur ; analyse de la qualité des données reçues Importance de l’analyse en fréquence : Transformée de Fourier Travaux dirigés sous la forme d’une simulation numérique d’une chaîne de transmission Codage Codage de source (Huffman) pour réduire le débit Récupération des erreurs de transmission (codage de canal) en introduisant de la redondance Codes cycliques, code de Hamming Codes convolutionnels (Viterbi) Turbocodes Bases théoriques : théorie des probabilités et théorie de l’information (cf. P. Solé) Cryptographie Protection contre les intrusions sur le réseau Cryptographie à clef publique (code RSA) «Pretty good privacy» Zimmerman Bases théoriques : théorie de la complexité (cf. B. Martin) Codage du son et de la parole Théorème d’échantillonnage Stockage de son numérique Techniques de réduction de débit (mp3, codage GSM) Codage d’images fixes et animées Normes JPEG et MPEG (DIVX) Transformée en cosinus Détection de mouvements dans une séquence Bases théoriques : théorie du signal (Transformée de Fourier, probabilités, statistiques) Transmission GSM «Global System Mobile» France Télécom (Itinéris), Cégétel (SFR), Bouygues Télécom Principe de la téléphonie cellulaire Fréquences utilisées Codage et modulation des données Codage de la parole Correction des erreurs de transmission Cryptage Transmissions numériques : comment transmettre à distance un message numérique (une séquence binaire) Emetteur Canal de transmission Déformation : filtrage écho, évanouissement... Récepteur Bruits, parasites... Transmissions numériques L’information binaire doit être portée par des signaux physiques : courants électriques ondes électromagnétiques photons ... Il faut coder les données binaires sous une forme analogique avant de les transmettre Un signal a une durée non nulle : limitation en débit Le signal peut être déformé par le canal de transmission Le récepteur peut être perturbé par d’autres signaux Erreurs de transmission Bases théoriques : signal (transformée de Fourier) et probabilités gg Signal émis ggb distorsion Distorsion et bruit Illustration des défauts apportés par un canal de transmission : réception d’une image de qualité médiocre du fait des défauts (échos) du canal de transmission x(t ) 1 . 0 0 . 5 0 . 0 Signal émis 0 . 5 1 . 0 t Exemple de déformation par un canal de transmission et d’addition de bruit 3 0 8 0 1 3 0 h(t ) 5 0 Réponse impulsionnelle du canal de transmission y (t ) 0 Signal déformé 3 0 8 0 1 3 0 (convolution par la réponse 5 0 impulsionnelle du canal) t x( )h(t )d v(t ) Signal reçu déformé et bruité y (t ) 2 0 3 0 9 0 t 3 0 8 0 1 3 0 0 4 0 8 0 1 2 0 Représentation dans le domaine des fréquences la transformée de Fourier outil fondamental pour de nombreux traitements et interprétations temps Temps continu Temps discret Filtrage, convolution fréquences 1 jt f (t ) F ( ) e dt 2 F ( ) kt 2j 1 T 1 f (t ) F (k )e T T t 0 y (t ) x( h(t )d F (k ) f (t )e jt dt T 1 f (t )e 2j kt T t 0 Y ( ) H ( ) X ( ) x( h(t ) Y (k ) H (k ) X (k ) y(t ) exp( j0t ) x(t ) Y ( ) X ( 0 ) y (t ) Modulation Transformée de Fourier discrète des signaux échantillonnés représentation complexe dans le domaine des fréquences F (k ) T 1 f (t )e 2j kt T t 0 Transformée inverse (retour dans le domaine temporel) f (t ) T 1 1 F ( k )e T t 0 2j kt T Attention à la graduation en fréquences aux unités Attention : C ’est l ’utilisateur de la transformée de Fourier discrète qui gère les unités . Elles ne sont en général pas intégrées dans les données elles-mêmes Il connaît la fréquence d’échantillonnage fe du signal traité ; Le nombre de fréquences de la transformée est égal au nombre d’échantillons (T) du signal ; Il en déduit la résolution en fréquence, c’est à dire le pas d’échantillonnage dans le domaine des fréquences soit fe / T Conseil pour l ’apprentissage : calculer et visualiser la transformée de Fourier de sinusoïdes à différentes fréquences, en particulier pour faire apparaître le repliement spectral Signal temporel : 32 données 32x16 échantillons (simulation du temps continu) 1.5 x k 0 1.5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 time k Transformée de Fourier discrète (module) fech/2 4 X k 2 0 256 128 0 fech k Après recentrage 4 Fréquences négatives Fréquences positives XX k 2 0 0 -fech/2 128 0k fech/2256 Les fréquences comprises entre la moitié de la fréquence d’échantillonnage et la fréquence d’échantillonnage sont translatées vers les fréquences négatives Représentation en temps et en fréquence d ’un signal simple de transmission numérique : la fréquence maximale du signal est la moitié de la fréquence d ’échantillonnage ; la résolution en fréquence est donnée par le nombre d ’échantillons dans le domaine temporel 1 . 0 0 . 5 0 . 0 0 . 5 1 . 0 temps 0 4 0 8 0 1 2 0 7 3 L’information contenue dans le message peut être récupérée malgré une limitation en fréquence ou une déformation apportée par le canal de transmission .128 5 005 0 fréquence Modèle de filtre (déformation par le canal de transmission exprimée sous la forme d ’une convolution discrète) filtre récursif Résonance, écho filtre non récursif Atténuation sélective dans le domaine temporel yt a1 yt 1 a2 yt 2 xt yt xt b1 xt 1 b2 xt 2 dans le domaine fréquentiel Y 1 1 a1e j a2e 2j X Y 1 b1e j b2 e2j X 6 TF de l’entrée X k 4 2 0 0 50 100 150 200 250 k Réponse en fréquence 1 Filtre du filtre k 3 2 1 0 0 50 100 150 200 250 k 10 TF de 1 la sortie . X k Filtre k (produit) 5 0 0 50 100 150 200 250 k 4 Retour 2 z au domaine k 0 temporel x . 1.6 k (TF inverse) 2 4 0 50 100 150 200 250 k Effet d ’un filtre calculé comme un produit dans le domaine des fréquences Modulation et démodulation réelles d’un signal réel x(t ) 0 . 1 5 2 1 0 . 1 0 0 0 . 0 5 1 0 . 0 0 1 0 0 0 5 0 0 0 5 0 0 1 0 0 0 X ( ) 2 1 0 0 0 5 0 0 0 5 0 0 1 0 0 0 1 0 0 0 5 0 0 0 5 0 0 1 0 0 0 1 0 0 0 5 0 0 0 5 0 0 1 0 0 0 x(t ) cos(0t ) 0 . 1 0 2 0 . 0 8 1 0 . 0 6 0 0 . 0 4 1 0 . 0 2 1 [ X ( ) X ( )] 0 0 2 0 . 0 0 1 0 0 0 5 0 0 0 5 0 0 2 1 0 0 0 x(t ) cos2 (0t ) 0 . 1 0 2 0 . 0 8 1 0 . 0 6 0 0 . 0 4 1 0 . 0 2 0 . 0 0 1 0 0 0 5 0 0 0 5 0 0 1 0 0 0 0 . 1 0 1 [ X ( 2 ) X ( ) X ( 2 )] 0 0 2 Filtrage passe bas 2 0 . 0 2 0 . 0 8 0 . 0 1 0 . 0 6 0 . 0 0 0 . 0 4 0 . 0 1 0 . 0 2 0 . 0 0 0 . 0 2 1 0 0 0 5 0 0 0 5 0 0 1 0 0 0 0 . 0 3 1 0 0 0 5 0 0 0 5 0 0 1 0 0 0 Modulation et démodulation d ’un signal complexe Modulation Démodulation y(t ) exp( j0t ) x(t ) Y ( ) X ( 0 ) x' (t ) exp( j0t j ) y(t ) x' (t ) x(t ) si X ' ( ) X ( ) exp( j ) 0 Nécessité d ’une synchronisation du récepteur (ramener à zéro) : il y a un retard de transmission et des générateurs de fréquences qui ne sont pas parfaitement stables : il faut un asservissement (boucle à verrouillage de phase) Fréquence porteuse du signal reçu comparaison Oscillateur local Modification de la phase (ou de la fréquence) Transmission des signaux complexes Sélection de la partie réelle 0 . 3 0 . 1 0 0 . 1 0 . 0 4 Transformée de Hilbert 1 . 2 Modulation complexe 0 . 8 0 . 4 fréquentiel 0 . 0 0 . 3 0 . 1 5 0 3 0 1 0 1 0 3 0 5 0 3 . 0 2 . 5 2 . 0 1 . 5 1 . 0 0 . 5 0 . 0 0 . 5 1 . 0 1 . 5 2 . 0 2 . 5 Temporel 3 0 2 0 1 0 0 1 0 2 0 3 0 Suppression des fréquences négatives régénération de la composante imaginaire du signal nécessite une synchronisation du récepteur Multiplexage en fréquence - Transmettre en parallèle plusieurs communications - Chaque émission se fait dans une bande de fréquence d’une largeur donnée autour d’une fréquence porteuse connue du récepteur - La réduction de la largeur de la bande de fréquence se traduit par une réduction du débit de transmission (le signal dans une bande de fréquence étroite ne peut pas varier rapidement) Temps Deux signaux en bande de base Fréquences 1 . 0 1 . 0 0 . 5 0 . 5 0 . 0 0 . 0 0 . 5 0 . 5 1 . 0 1 . 0 7 7 3 3 0 1 0 2 0 3 0 0 1 0 2 0 3 0 4 0 2 0 8 0 4 0 2 0 8 0 Modulation par deux porteuses 1 . 0 1 . 0 0 . 5 0 . 5 0 . 0 0 . 0 0 . 5 0 . 5 1 . 0 1 . 0 7 7 3 3 4 0 2 0 8 0 0 1 0 2 0 3 0 4 0 2 0 8 0 0 1 0 2 0 3 0 9 1 . 0 Multiplexage en fréquence 0 . 5 0 . 0 4 0 . 5 1 . 0 4 0 2 0 8 0 0 1 0 2 0 3 0 1 . 0 Démodulation par les deux porteuses 1 . 0 9 9 4 4 0 . 5 0 . 5 0 . 0 0 . 0 0 . 5 1 . 0 0 . 5 1 . 0 0 1 0 2 0 3 0 0 1 0 2 0 3 0 4 0 2 0 8 0 4 0 2 0 8 0 1 . 0 9 1 . 0 0 . 5 Filtrage passe bas 7 0 . 5 0 . 0 0 . 0 0 . 5 3 4 0 . 5 1 . 0 1 . 0 0 1 0 2 0 3 0 0 1 0 2 0 3 0 4 0 2 0 8 0 4 0 2 0 8 0 Modulation, multiplexage en fréquence et démodulation Fréquences et débits typiques Paire torsadée Dizaines de kilobits/s Le câble coaxial 200 Mbits/s Ondes herziennes 1 à 40 gigaherz Plusieurs centaines de Mégabits/s Liaisons satellites 3 à 14 Gigahertz Centaines de Mégabits/s Stockage des informations CD 5 gigabits Longueurs d’ondes en transmissions hertziennes Longueur d'onde Fréqu. domaine application myriamétriques 10 4 très basses VLF Fréqu. vocales, fils élec. kilométriques 105 basses LF hectométriques 10 6 moyennes MF décamétriques 10 7 hautes HF radio grandes ondes câbles sous-marins radio ondes moyennes câbles coaxiaux radio ondes courtes, radio maritime métriques 108 très hautes VHF coms. mobiles, radio FM décimétriques 10 9 ultra hautes UHF télévision centimétriques 1010 super hautes SHF communications microondes satellites, guides d'ondes millimétriques 1011 extra hautes EHF Antennes Taille proportionnelle à la longueur d’onde Concentrer la puissance du signal émis ou du signal reçu (pb du bruit à la réception) par exemple antenne parabolique 120 Modification de la forme pour améliorer la directivité (diagramme de rayonnement) foyer . 90 6 4 150 6 60 30 2 n 180 0 0 210 0 330 240 300 270 n Décroissance de l’amplitude du signal comme l’inverse du carré de la distance Propagation des ondes électromagnétiques (équations de Maxwell) http://www.gesi.asso.fr/cours/rollet/ANTENNES/sld001.html http://www.eisi.ch/dem/Mediatheque/Telecom%20et%20traitement%20du%20signal/Cours/Antennes.pdf Transmission sur fibre optique Domaine de fréquence Longueur > à 800 nm 10 gigabits/s 100 gigabits/s (multiplexage en longueur d’onde) 400 µm-800 nm < 400 nm fréquence (Hertz) domaine <7,5.1011 à 3,75. 1014 Infrarouge 14 3,75. 10 14 à 7,5. 10 > 7,5. 1014 Visible Ultra-violet 0,3.nm 1018 Rayons X 0,1 pm 10 21 R. gamma Étalement du paquet de photons en fonction de la distance . Mise en forme des signaux à l’émission - créneau = simple mais mauvaise utilisation de la bande de fréquences (perte en débit) forme optimale de l’onde porteuse d’un bit compromis sin( t / t ) t / t 0 . 9 0 . 9 0 . 7 0 . 4 0 . 4 0 . 1 fréquence 0 . 1 0 . 1 5 0 0 3 8 0 2 6 0 1 4 0 2 0 1 0 0 2 2 0 3 4 0 4 6 0 5 0 0 3 8 0 2 6 0 1 4 0 2 0 1 0 0 2 2 0 3 4 0 4 6 0 5 0 0 3 8 0 2 6 0 1 4 0 2 0 1 0 0 2 2 0 3 4 0 4 6 0 2 . 0 1 . 2 1 . 4 0 . 1 0 . 2 0 . 5 5 0 3 0 1 0 1 0 3 0 5 0 5 0 3 0 1 0 1 0 3 0 5 0 5 0 3 0 1 0 1 0 3 0 5 0 x(t ) k sin (t kt ) t m( k ) (t kt ) t Aux instants d’échantillonnage toutes les composantes sont nulles sauf une 4 2 0 1 0 6 9 6 9 8 2 3 8 8 6 7 4 0 7 0 4 6 6 7 5 2 1 5 8 4 4 4 8 3 0 2 3 6 5 2 2 9 1 8 2 1 4 6 0 Schéma d ’un système de transmisison Données à transmettre Emetteur Données reçues Récepteur Mise en forme, codage préalable Récupération des erreurs Compensation des défauts Modulation Émission Réception Démodulation Canal de transmission : déformations, bruit, écoute Schéma des fonctions principales du récepteur Capteur (antenne) Démodulation en phase Retrouver la phase de la porteuse ou le retard grâce à une boucle à verrouillage de phase avec l’émission exp[ 2jf0 (t t0 )] Analyse de l ’interférence intersymboles compensation partielle (analogique) des défauts Filtrage passe bas Visualisation par le diagramme de l ’œil Échantillonnage Traitements numériques Retrouver la phase de l ’horloge de l ’émetteur grâce à une boucle à verrouillage de phase Compensation plus fine des défauts du canal Correction des erreurs de transmission Égalisation : Compensations de défauts du canal de transmission Le canal agit comme un filtre linéaire x(t ) m(k )h(t k ) k Trouver, à partir du signal reçu les caractéristiques du filtre inverse Données émises Données reçues H (z ) b(t ) x(t ) Canal de transmission (filtre inconnu) C ( z) 1 / H ( z) Données modifiées y (t ) b(t ) Recherche des caractéristiques du canal Compensation d ’un écho 1 . 0 Filtre compensateur Fonction de transfert du canal 1 0 0 0 5 0 0 0 . 5 0 0 . 0 5 0 0 2 5 0 2 6 2 2 7 4 2 8 6 2 9 8 3 1 0 3 2 2 3 3 4 3 4 6 2 5 6 2 5 2 2 4 8 2 4 4 2 4 0 2 3 6 2 3 2 2 2 8 2 2 4 1 5 0 1 0 0 0 . 0 4 fréquence Re 0 . 0 2 5 0 0 5 0 5 0 0 0 5 0 0 6 0 0 4 0 0 2 0 0 0 2 0 0 4 0 0 6 0 0 0 . 0 2 3 0 Im 0 . 0 0 1 0 0 . 0 2 6 0 04 0 02 0 0 0 2 0 04 0 06 0 0 5 0 0 0 5 0 0 Scrambling Éviter que le signal présente des caractéristiques fréquentielles remarquables qui pourraient être confondues avec les défauts du canal de transmission (aspect périodique par exemple) Registre à décalage bouclé initialisé (séquence pseudo aléatoire) c(t) XOR codage décodage y(t)=x(t).XOR.c(t) x’(t)=y(t).XOR.c(t)=x(t) XOR Superposition de tronçons du signal pour construire le diagramme de l ’œil 2 1 0 6 0 1 2 0 1 8 0 2 4 0 3 0 0 3 6 0 4 2 0 4 8 0 1 1 0 4 8 1 2 1 6 2 0 2 4 2 8 Construction du diagramme de l’oeil 0 0 50 100 150 200 250 k 4 z k 2 0 x . 1.6 k 2 4 0 50 100 150 200 k 15 10 5 0 ZM 0 5 10 15 250 Diagramme de l’œil : il permet de repérer l ’instant d ’échantillonnage des données et de visualiser l ’importance des déformations dues au canal de transmission et au bruit 2 1 0 -1 -2 Instant d ’échantillonnage 0 5 10 15 20 25 30 35 Diagramme de l’œil du signal de communication précédent après perturbation par un bruit : en choisissant correctement l ’instant d ’échantillonnage on peut malgré tout retrouver les données émises 2 1 0 1 2 Instant d ’échantillonnage 0 5 1 01 52 02 53 03 5 Différentes constellations PAM Pulse amplitude modulation AM-PM Amplitude-Phase modulation (2k 1) m k exp 2j M QAM Quadrature amplitude modulation PSK Phase shift keying BPSK Binary phase shift keying 1 QPSK Quadrature phase shift keying 1 j (2k 1) j (2 1) exp 2j m M Quelques types de constellations PSK QAM QPSK AMP BPSK PAM 1 . 5 1 . 5 1 . 0 1 . 0 0 . 5 0 . 5 0 . 0 0 . 0 0 . 5 0 . 5 1 . 0 1 . 0 1 . 0 0 . 5 0 . 0 0 . 5 1 . 0 1 . 5 1 . 0 0 . 5 0 . 0 0 . 5 1 . 0 1 . 5 Constellation à l ’émission et à la réception après modification par le canal de transmission (déformation, bruit, …) Probabilité d’erreur de transmission Données émises (+1 ou -1) Densités de probabilité des données rcçues (variables aléatoires gaussiennes) 0.6 0.5 0.4 0.3 0.2 Probabilité d’erreur 0.1 -1 0 1 0 1 2 3 4 proba. d’erreur= 10-3 5 6 7 8 1 r 1 r 9 log 10 10 20 exp 10 10 ( x 1) 2 dx 2 2 1 0 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 r=10 1 8 r =0.1 1 9 10 10 2 0 0 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 r Log (décimal) de la probabilité d’erreur en fonction du rapport signal à bruit dans le cas d’un bruit gaussien additif Codes correcteurs d ’erreurs Quelques notions de théorie de l ’information Cyclic redundancy codes (CRC) Code de Hamming Codes en blocs, Reed Solomon (cd audio) Codes convolutionnels, algorithme de Viterbi (téléphonie mobile GSM) turbocodes (UMTS) Notions de théorie de l ’information Canal binaire symétrique Probabilité d ’erreur p (1 p) 1 1 p p 0 (1 p) 0 Messages de longueur L Il y a 2 LH ( p ) configurations possibles des erreurs (Shannon) H ( p ) [ p log 2 p (1 p) log 2 (1 p)] Entropie 1 hm 0.5 0 . 0 0.25 0.5 pm 0.75 1 Les 2 L messages reçus possibles peuvent être décomposés en 2 L 2 L[1 H ( p)] 2 LH ( p) Messages informatifs Configurations des erreurs 0 1 h m 0.5 1 . 0 0.25 0.5 0.75 1 pm Capacité du canal 1 H ( p) H ( p) 1 p 1 / 2 Capacité nulle (que du bruit à la réception) H ( p) 0 p 0 (pas d ’erreurs) Capacité maximum Rajout d ’une redondance pour corriger les erreurs M Longueur du message informatif S Longueur de la redondance (syndrome) LM S 40 35 30 1 1 h m 25 1 20 1 h m 15 10 5 0. 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.05 0.1 0.15 0.2 0.25 pm pm Shannon (1948) : si 10 9 8 7 6 5 4 3 2 1 0. 0 L M 1 H ( p ) Turbocodes (C. Berrou, 1993) il existe un moyen de coder les données pour corriger presque sûrement les erreurs de transmisson 0.3 CRC : cyclic redundancy codes Détection d’erreur sans correction A un message binaire est associé un polynôme, (coefs. 0 ou 1) On transmet M(z)=1.z16 +0.z15+...+1.z0 et quatre bits de parité Y(z)=M(z).z4=D(z).Q(z)+R(z) (Y(z) divisible par D(z)=1.z3+0.z2+0.z1+1.z0) A la réception de Y’(z), division : Y’(z)=D(z).Q’(z)+R’(z) Transmission correcte si R'(z)=0. Exemple simple de correction : le code de Hamming Transmettre un mot de quatre bits (a,b,c,d) complété par trois bits (x,y,z) pour corriger une erreur (au plus) x=b+c+d y=a+c+d z=a+b+d Données reçues : a',b',c',d',x',y',z'. Pour trouver l'erreur on calcule u=a'+c'+x'+z' v=b'+c'+y'+z' w=d'+x'+y'+z' w 0 0 0 0 1 1 1 1 v 0 0 1 1 0 0 1 1 u 0 1 0 1 0 1 0 1 pas d'erreur a’ faux b’ faux c’ faux d’ faux x’ faux y’ faux z’ faux Justification Codage M=(a,b,c,d,x,y,z)T T= 1000 0100 0010 0001 0111 1011 1101 M=T.F Données à coder F=(a,b,c,d)T Justification Décodage G vecteur d'erreur (zéro ou une composante non nulle) M'=M+G=T.F+G 1 0 1 0 1 0 1 T’= 0 1 1 0 0 1 1 0 0 0 1 1 1 1 T’.T=0 mod 2 T'.M'=T'.T.F+T'.G= T'.G les trois composantes de T'.M' donnent l'adresse de l'erreur Une forme un peu plus générale des codes de Hamming On suppose qu'on veut corriger une erreur au maximum sur un paquet de 2n bits. On prendra pour exemple le cas où n=4. On réserve pour cela cinq bits notés a,b,g,d,e 1 1 1 1 1 1 1 d 1 1 1 g 1 b a e 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 d 0 0 0 0 1 1 1 0 1 1 0 0 1 0 1 0 g 0 0 0 0 1 1 0 0 b 0 0 0 0 a 0 0 0 0 a pour que la somme des bits de numéro pair soit nulle (modulo 2). b pour que la somme des bits pris deux par deux soit nulle g la somme sur les bits dont le deuxième bit d'adresse est nul d somme sur les huit bits dont l'adresse commence par zéro. b, g et d ne sont pas utilisés pour calculer a. e pour que le message soit pair ( tient compte de a, b, g et d (le calcul de e n'est pas nécessaire). Pour détecter et éventuellement corriger l'erreur on teste la parité du message complet (calcul de e) : Si cette parité est nulle il n'y a pas d'erreur. Sinon, il y a exactement une erreur dont il s'agit de trouver la position : le récepteur calcule les quatre parités correspondant à a, b, g, et d. Si la parité des huit bits d'adresse paire est nulle l'erreur est nécessairement sur un bit d'adresse impaire; si cette parité vaut un l'erreur est sur un bit d'adresse paire. De cette manière on voit que l'adresse de l'erreur est donnée par d g b a. Codes de Reed Solomon Calculs sur les corps finis (corps de Galois) Entiers modulo un nb premier par exemple 5 (1+4=0) X 1 2 3 4 1 1 2 3 4 2 2 4 1 3 3 3 1 4 2 4 4 3 2 1 Un peu plus compliqué : un entier = un polynôme N(z) à coefficients binaires opérations modulo un polynôme C(z) correctement choisi N ( z ) b0 b1z b2 z 2 bq z q C ( z) 1 z 2 z 3 z 4 z8 Permet d ’engendrer un corps 256 éléments (octets) Codes de Reed Solomon On veut corriger t erreurs : il faut 2t informations supplémentaires (syndrome) t positions d’erreurs t amplitudes d’erreurs RS(204,188) permet de corriger jusqu’à 8 erreurs sur un message contenant au total 204 données dont 204-2x8 données utiles et 2x8 données supplémentaires (CD) Codes de Reed Solomon x0 x x 1 Données utiles x2t Redondantes (2t) mises à zéro On émet le message m 0,, 2t : a ( 2t ) ym xka km k 0 Générateur du corps fini (tout nombre du corps peut se mettre sous la forme a p ) Equivalence avec la Transformée de Fourier a e2j / T On associe à chaque mot du message une ``sinusoïde’’ de fréquence k et d ’amplitude xk Codes de Reed Solomon Une erreur dans le message: un des y est faux On a rajouté une impulsion au signal y Cette impulsion se traduit dans le domaine des « x » (par transformée de Fourier inverse) par des composantes non nulles ce qui permet de retrouver la position et l ’amplitude de erreur Si il y a 2t données réservées pour la redondance, on peut rajouter jusqu ’à t impulsions au signal y et retrouver la position et l ’amplitude de ces t erreurs Codes de Reed Solomon 1 1 0 0 1 0 1 2 3 4 5 6 7 8 9 10 11 Message à transmettre X 12 13 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Erreur de transmission Eq. Lin (Berlekamp Massey) 1 1 0 0 1 0 1 2 3 4 5 6 7 8 9 10 11 Message émis (TF de X) 12 13 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 TF inv. du message reçu (syndrome) 1 1 0 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 0 Message reçu : Y+erreur 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Après soustraction on retrouve le message à transmettre Reed Solomon : correction des erreurs xk ym transmission y'm ym em TF TF -1 x'k x'1 ,, x'2t (syndrome) ‘‘signature de l’erreur’’ e'1 ,, e'2t x'1 ,, x'2t e' t 1 e' t 2 e' e't 1 t e' 3 e' 2 e' 2t g 1 e't e' 2t 1 g 2 e't 1 e't g t e'1 pour n , 1,,0 t e 'n e 'n m g m pour k 0,, m 1 xk x'k e'k ALGORITHME DE BERLEKAMP MASSEY Codes convolutionnels, Décodage par l’algorithme de Viterbi Automate d ’émission et différentes représentations : transitions, treillis Principe et mise en application du décodage par le récepteur Émission des donnees dans un codeur convolutionnel avec un registre a decalage et des ou exclusifs s 1 (t) xor e(t) e(t-1) e(t- 2) xor s2 (t) Représentation de l ’émetteur sous la forme d ’un automate e s s2 1 0 0 0 e s s2 1 11 1 00 e s s2 1 0 1 1 10 e s s2 1 1 0 0 e s s2 1 0 1 0 e s s2 1 0 0 1 01 e s s2 1 1 0 1 11 e s 1s2 1 1 0 e vaut 0 e vaut 1 treillis de l algorithme de decodage de viterbi s 1s2 0 0 00 00 00 10 10 00 00 10 10 01 01 11 11 00 10 11 10 01 01 01 00 01 11 11 01 11 10 temps Correction des codes convolutionnels Erreurs de transmission Message à coder Codeur de l’émetteur Message reconstitué Message reçu Codeur du récepteur Algorithme de génération de message Comparaison Critère : réduction de l ’écart entre le message reçu et le message reconstitué e : 1, 0, 1, 1, 0, 1, 0, 0, 0, 0 Choix de la séquence d ’entrée États : 00 01 10 01 11 10 01 10 00 00 00 de l ’automate du récepteur s1s2 Émis :11,10,00,01,01,01,10,11,00,00 (algorithme de Viterbi) Reçus :00,10,00,01,01,01,10,11,00,00 00 0 2 1 1 1 10 2 3 4 4 5 2 4 3 3 3 3 2 3 2 3 4 4 3 4 2 00 3 10 2 4 3 2 3 4 2 4 4 5 2 4 2 01 3 01 5 2 2 2 5 4 2 2 2 3 4 4 4 4 11 5 4 4 4 3 4 11 Turbocodes (C. Berrou 1993) Code convolutionnel récursif x P Permutation par ex. aléatoire y1 y2 Décodage des turbocodes y’1 x’ Décodeur (type viterbi) Données reçues P Deux décodeurs identiques (algo de Viterbi + probabilités conditionnelles) Décodage itératif (turbo) y’2 P -1 Décodeur (type viterbi) Performances proches de la borne de Shannon (mais pas de preuve…) Utilisation par la NASA et UMTS Low Density Parity Check Données transmises avec une probabilité d’erreur p et devant être corrigées t V(t) C(k) k Valeurs des tests (non transmises) : doivent être égales à zéro s’il n’y a pas d’erreur (les connexions sont connues du récepteur) LDPC Comme les valeurs tests doivent être nulles, il y a une redondance dans les données transmises : un des v(t) est calculé de telle sorte que le XOR de tous les v(t) reliés à un c(k) soit nul. Un c(k) est calculé à partir de quelques v(t) Parity Check Low Density Actualisation itérative (en boucle) des probabilités que les v(t) soit égaux à 0 ou 1 LDPC Belief Propagation Nvc=Nv+Sc’≠c Mc’v C’ (relié à V ) initialisation C V V’ (relié à C ) Nvc =Nv= log [(1-p)/p] Mcv=log log de la vraisemblance Pv’≠v tanh(Nv’c/2) 1-Pv’≠v tanh(Nv’c/2) 1+ ex-e-x tanh(x)= ex+e-x LDPC Belief Propagation (suite) V V’ intervenant dans la mise à jour de Mcv C’ intervenant dans la mise à jour de V C