Support
Transcription
Support
Communications numériques FIP 2e année (option informatique) 2014–2015 Syllabus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4 Modulation et démodulation Filtres de mise en forme d’impulsions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Travaux dirigés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Travaux pratiques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 6 8 Codage source Travaux dirigés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Travaux pratiques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Codage canal Travaux dirigés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Travaux pratiques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Ce document est mis à disposition selon les termes de la licence Creative Commons Attribution 4.0 International. Version du 26 mars 2015. 1 Syllabus Description du cours Ce cours a pour objectif de présenter les principes de base d’un système de communications numériques. Nous y aborderons les principaux blocs de la chaîne de communication, à savoir le codage source, le codage canal et la modulation du signal numérique. Ce cours sera centré sur les concepts mathématiques des différents blocs. Pré-requis Pour comprendre ce cours, il est nécessaire d’avoir de solides connaissances en mathématiques (calcul matriciel, algèbre de Boole, systèmes binaire et hexadécimal, code de Gray, probabilités) et en traitement du signal (transformée de Fourier, analyse fréquentielle, numérisation, théorème de l’échantillonnage, démodulation cohérente, filtrage adapté). Contenu du cours • Introduction : définition, historique et intérêt du numérique, présentation rapide de la chaîne de communication et de ses différents blocs ; • Modulation : modulation en bande de base et sur porteuse, présentation de quelques codes en ligne (NRZ, Manchester, AMI), principe des modulations sur porteuse (ASK, FSK, PSK, QAM), constellation, réception dans le cas d’un canal bruité (réception en bande de base, filtre adapté), réception dans le cas d’un canal à bande limitée (interférences entre symboles, critère de Nyquist, diagramme de l’œil) ; • Codage source : définition de l’information propre et de l’entropie d’une source, de la capacité du canal, premier et deuxième théorèmes de Shannon, propriétés des codes sources (longueur moyenne, réversibilité, etc.), codage de Huffman, illustration des compressions sans perte et avec perte ; • Codage canal : codes en blocs linéaire et codes convolutifs (avec quelques exemples), rendement de codage, code systématique, distance de Hamming, matrices génératrice et de contrôle de parité, pouvoirs de détection et de correction, représentation d’un code convolutif à l’aide des diagrammes d’état, en arbre ou en treillis, évocation de l’algorithme de Viterbi. Enseignant Vincent Mazet (bureau C219, [email protected]). N’hésitez pas à communiquer numériquement avec moi ! J’accepte également les communications analogiques. Calendrier des séances jeudi 26 février 2015 vendredi 27 février 2015 mercredi 18 mars 2015 lundi 23 mars 2015 mercredi 25 mars 2015 vendredi 27 mars 2015 vendredi 27 mars 2015 lundi 13 avril 2015 vendredi 17 avril 2015 10h30 10h30 10h30 8h30 16h00 10h30 14h00 8h30 10h30 Introduction Modulation Modulation TP 1 Codage source Codage canal TP 2 TP 3 Examen C416 C416 C413 A202 C410 C413 A402 A202 C429 2 Évaluation L’évaluation est un contrôle continu : il n’y a donc pas de rattrapage ! La note finale est calculée à partir de trois contrôles et un examen théorique : • les contrôles durent dix minutes et ont lieu au début de chaque séance de TP. Ils sont individuels. Ils contiennent des questions de cours, de TD et de TP. Aucun document ni appareil électronique n’est autorisé. La moyenne des notes de contrôle a pour coefficient 0,5 ; • L’examen théorique dure 1h45. Il est individuel. Il s’agit de questions de cours et d’exercices similaires à ceux des TD. Seules la calculatrice personnelle et une feuille A4 recto-verso sont autorisées. Il a pour coefficient 0,5. Déroulement des TP Les TP consistent principalement en des simulations sous Matlab. Les fonctions principales à utiliser sont données dans les énoncés, reportez-vous à l’aide (help ou doc) pour plus d’informations. Certaines de ces fonctions sont intégrées dans Matlab, d’autres (identifiées par un astérisque) sont à télécharger à l’adresse http://miv.u-strasbg.fr/mazet/communications/. Certains programmes sont à compléter : les emplacements correspondants sont indiqués dans le code. Par ailleurs, conservez vos programmes d’un TP au suivant car ils seront souvent réutilisés. Site internet Les documents présentés en cours et l’examen de l’année précédente sont disponibles à cette adresse : http://miv.u-strasbg.fr/mazet/communications/ 3 Bibliographie Ouvrages [1] F. Auger : Introduction à la théorie du signal et de l’information. Éditions Technip, 1999. [2] J.R. Barry, E.A. Lee et D.G. Messerschmitt : Digital Communication. Springer, 3e édition, 2004. [3] M. Joindot et A. Glavieux : Introduction aux communications numériques. Dunod, 2007. [4] U. Madhow : Fundamentals of Digital Communication. Cambridge University Press, 2008. [5] J.G. Proakis et M. Salehi : Digital Communications. McGraw-Hill, 5e édition, 2008. [6] H. Sari : Transmission des signaux numériques. Techniques de l’ingénieur, 1995. [7] B. Sklar : Digital Communications, Fundamentals and Applications. Prentice Hall PTR, 2e édition, 2001. [8] S.G. Wilson : Digital Modulation and Coding. Prentice-Hall, 1996. Culture générale [9] M. Beaugeois, D. Deltombe et D. Hennequin : Comment un téléphone portable téléphone-til ?, 2013. Unisciel/Université Lille 1. http://www.universcience.tv/video-comment-un-telephone-portable-telephone-t-il-5820.html. [10] Espace des sciences : La théorie de l’information, une science qui s’émancipe, 2008. Conférence de Claude Berrou. http://www.youtube.com/watch?v=_N55Bde6k7Q. [11] C. Douillard : la technique des constellations tournées, 2012. La minute du chercheur (Télécom Bretagne). http://vimeo.com/21291291. [12] J. Gómez : Codage et cryptographie, 2013. Images des Mathématiques, CNRS. http://images.math.cnrs.fr/Codage-et-cryptographie.html. [13] C. Laot : Les communications acoustiques sous-marines, 2014. La minute du chercheur (Télécom Bretagne). http://vimeo.com/85234793. [14] C.E. Shannon : A Mathematical Theory of Communication. The Bell System Technical Journal, 27(3):379–423, juillet 1948. Autres sources Les citations issues de Wikipédia sont publiées sous licence CC-BY-SA 3.0. [15] Wikipedia : On-off keying, 2014. (Accédé le 12 février 2015). [16] Wikipedia : List of ITU-T V-series recommendations, 2015. (Accédé le 12 février 2015). Ce cours est fondé également sur les documents suivants : [17] C. Collet : Communications numériques. Cours de Télécom Physique Strasbourg, 2013. [18] F. Salzenstein : Communications numériques. Cours de Télécom Physique Strasbourg, 2013. 4 Filtres de mise en forme d’impulsions Réponse impulsionnelle − T2 Réponse fréquentielle (module) −T T 2 T Filtre rectangulaire −T T − T2 T 2 Filtre en sinus cardinal α = 0,2 α = 0,8 −T α = 0,2 α = 0,8 T −T T Filtre en cosinus surélevé α = 0,2 α = 0,8 −T α = 0,2 α = 0,8 T −T Filtre en racine de cosinus surélevé 5 T TD 1 : Modulation et démodulation Exercice 1 L’article Wikipédia sur les recommandations de transfert de données sur le réseau téléphonique présente la norme V.32 (utilisée par les modems dans les années 1980 et 1990) ainsi : « V.32 is an ITU-T recommendation for a modem operating as full-duplex on a 4-wire circuit, or half-duplex on a two-wire circuit, allowing bidirectional data transfer at either 9.6 kbit/s or 4.8 kbit/s at a symbol rate of 2,400 baud. » [16] 1. Quelle est la rapidité de modulation ? 2. Quel est le débit binaire ? 3. Quelle est la taille en bits des symboles émis ? Exercice 2 Représentez les constellations des modulations suivantes : — OOK (on-off keying) définie dans Wikipédia par : « OOK denotes the simplest form of amplitude-shift keying (ASK) modulation that represents digital data as the presence or absence of a carrier wave. The presence of a carrier for a specific duration represents a binary one, while its absence for the same duration represents a binary zero. » [15] — 4-ASK (modulation ASK 4-aire) ; — 2-PSK (appelée aussi BPSK pour binary PSK) ; — 8-QAM. Exercice 3 1. Quelle est le type de modulation dont la constellation est représentée ci-dessous ? 2. En utilisant dans la mesure du possible un code de Gray, donnez les symboles associés à chaque point de la constellation. Exercice 4 La transmission d’un message binaire à un débit D = 600 Mbits/s est effectuée en utilisant huit signaux {±s(t), ± 3s(t), ± 5s(t), ± 7s(t)} où s(t) est un signal de durée T . 1. Quelle est la rapidité de la modulation ? 2. Est-ce une modulation en bande de base ou sur porteuse ? 6 Exercice 5 Les quatre modulations linéaires ci-dessous représentent la séquence binaire 0 1 1 0 0 1 1 1 1 1 0 0. 1. Identifiez les modulations en bande de base et les modulations sur porteuse. 2. Déterminez les valeurs des symboles et les formes d’onde de ces modulations. 0 1 1 0 0 1 1 1 1 1 0 0 RZ OOK BPSK NRZI Exercice 6 On considère les deux formes d’onde ci-dessous : ( 1 si t ∈ [0, T [ et h1 (t) = 0 sinon ( 1 si t ∈ [0, T /2[ h2 (t) = 0 sinon. 1. Représentez h1 (t) et h2 (t). 2. Quelles sont les réponses impulsionnelles des filtres de réception associés à ces formes d’onde ? 3. Calculez le signal en sortie des filtres de réception. Exercice 7 Un message binaire est transmis avec une rapidité de modulation R = 300 bits/s. 1. Y a-t-il des interférences entre symboles si le canal a une fréquence de coupure de 100 Hz ? 2. Y a-t-il des interférences entre symboles si le canal a une fréquence de coupure de 200 Hz ? Exercice 8 Déterminez, à partir des diagrammes de l’œil ci-dessous : — le nombre de symboles du message ; — le meilleur instant d’échantillonnage ; — la meilleure valeur de seuil ; — s’il y a des IES ; — s’il y a du bruit. 2 2 2 1 1 0 0 −1 −1 7 1 5 0 3 −1 1 −2 −0.5 −0.25 0 (a) 0.25 0.5 −0.5 −0.25 0 0.25 −2 −0.5 0.5 (b) −0.25 0 (c) 7 0.25 0.5 −2 −0.5 −0.25 0 (d) 0.25 0.5 TP 1 : Modulation et démodulation Exercice 9 : Étude de quelques modulations numériques L’objectif de cet exercice est d’implémenter et de comparer quelques modulations numériques : — NRZ (non-return-to-zero) binaire ; — AMI (bipolar alternate mark inversion) ; — Manchester ; — BPSK (binary phase-shift keying) ; — 16-QAM (quadrature amplitude modulation). 1. Créez une séquence binaire aléatoire x2 de N bits (randmary*) et convertissez-la en séquence hexadécimale x16 (bin2mary*) : vous disposez donc du même message disponible sous deux représentations différentes. Affichez-les (disp). 2. Représentez les signaux analogiques associés au message pour les modulations étudiées. Utilisez pour cela les fonctions modnrz*, modami*, modmanchester*, modbpsk* et modqam16*. Pour coder une fonction porte, vous pouvez utiliser la syntaxe : h = V * (t>t1) .* (t<t2); 3. L’analyse spectrale des modulations peut être effectuée à l’aide de la densité spectrale de puissance, qui est le carré du module de la transformée de Fourier. En choisissant un message suffisamment long (N grand), représentez la densité spectrale de puissance de chaque modulation en échelle décimale (periodogram 1 ). 4. Identifiez les modulations en bande de base et les modulations sur porteuse. 5. Comparez les codes en termes de simplicité de mise en œuvre, de largeur de bande, de téléalimentation possible, de robustesse au bruit et de détection d’interruption de la transmission. 6. D’après vos conclusions, quel type de modulation est le plus adapté aux communications suivantes ? (a) périphérique USB et ordinateur ; (b) téléphone mobile et antenne relais ; (c) sonde spatiale et Terre ; (d) communication par laser à l’air libre entre deux bâtiments ; (e) bus informatique ou de terrain (I2 C, SATA, ASI, Modbus, . . .) ; (f) liaison Wi-Fi. Exercice 10 : Transmission en bande de base sur un canal idéal Le principe d’une transmission en bande de base est représenté figure 5.1 (page 9). Un canal est dit idéal si sa largeur de bande est infinie (Inf) : sa réponse impulsionnelle est alors g(t) = A δ(t − τ ) où A et τ sont l’atténuation et le retard du signal reçu (sans perdre en généralité, on pourra prendre A = 1 et τ = 0). La détection des formes d’onde h(t) dans le signal bruité y(t), est effectuée à l’aide d’un filtre adapté de réponse impulsionnelle r(t) = h(−t). 1. Donnez l’expression du signal reçu y(t) en fonction du signal émis x(t) et des caractéristiques du canal. 2. Simulez l’émission d’un message codé en NRZ binaire (randmary*, modnrz*, channel*). Observez le signal en entrée du détecteur pour différents niveaux de bruit. 1. Les deuxième et troisième arguments de la fonction peuvent être laissé libres ([]), le quatrième sera égal à 100/T où T étant la durée d’un bit. 8 Message à émettre Canal b(t) Émetteur mapper α h(t) forme d’onde x(t) g(t) y(t) + filtre passe-bas r(t) Récepteur z(t) filtre de réception Tb échantillonnage S seuillage Message reçu Figure 5.1 – Principe d’une transmission en bande de base. 3. Dans un premier temps, on ne tient pas compte du filtre de réception : r(t) = δ(t). Appliquez un seuil (sampling*) sur le signal z(t) = y(t) pour retrouver, tous les T , les symboles αk émis. 4. Dans un deuxième temps, appliquez le filtre de détection (convolution avec conv 2 ), puis effectuez le seuillage et l’échantillonnage comme dans la question précédente. 5. Calculez les taux d’erreurs obtenus avec et sans filtre de détection (la fonction hamdist* permet de compter le nombre de bits différents entre deux séquences binaires). Comment varie la qualité de la détection en fonction du niveau de bruit ? Exercice 11 : Transmission en bande de base sur un canal à bande limitée Cette fois, on suppose le canal sans bruit mais à bande limitée. On peut alors être en présence d’IES (interférences entre symboles) si les valeurs du signal z(t) aux instants T dépendent de plusieurs symboles αk . La détection est alors perturbée même s’il n’y a pas de bruit. 1. Simulez l’émission d’un message codé en NRZ binaire. Observez le signal en entrée du détecteur pour différentes fréquences de coupure du canal. 2. Le diagramme de l’œil correspond aux différentes traces d’un signal affichées sur une période. Tracez le diagramme de l’œil (eyediag*) de y(t) : que se passe-t-il lorsque la bande passante du canal varie ? 3. Quelle est la condition sur le signal temporel y(t) pour éviter les IES ? Comment se traduit-elle sur la transformée de Fourier de y(t) ? 4. En déduire pourquoi une forme d’onde rectangulaire n’est pas adaptée lorsque la bande passante du canal est trop faible. 5. Simulez la transmission du message avec une forme d’onde en racine de cosinus surélevé (modnrzrrc*). 6. Concluez sur cette forme d’onde en observant le diagramme de l’œil pour plusieurs valeurs de α. 7. Simulez l’opération de détection en comparant les deux formes d’onde. 2. Précisez le troisième argument ’same’ pour conserver des signaux de même taille. 9 TD 2 : Codage source Exercice 1 On considère l’alphabet défini ci-dessous : Symbole Probabilité 1. 2. 3. 4. 5. A B C D E F G 0,35 0,30 0,20 0,10 0,04 0,005 0,005 Calculez l’auto-information pour chaque symbole. Calculez l’entropie de la source Déterminez le code de Huffman associé à la source. Donnez la longueur moyenne du code obtenu. Calculez l’efficacité du code. Exercice 2 Mêmes questions que l’exercice 1 avec l’alphabet défini ci-dessous : Symbole Probabilité A B C D E F G H 0,36 0,14 0,13 0,12 0,10 0,09 0,04 0,02 Exercice 3 1. Le code binaire { 0 0 , 1 1 , 0 1 0 1 , 1 1 1 , 1 0 1 0 , 1 0 0 1 0 0 , 0 1 1 0 } est-il à décodage unique ? 2. Le code ternaire { 0 0 , 0 1 2 , 0 1 1 0 , 0 1 1 2 , 1 0 0 , 2 0 1 , 2 1 2 , 2 2 } est-il à décodage unique ? Exercice 4 Une source utilise un alphabet de trois symboles {A,B,C} dont les probabilités respectives sont égales à 0,5, 0,3 et 0,2. 1. Calculez l’entropie de la source. 2. Combien de bits sont nécessaires pour réaliser un code de longueur fixe à décodage unique ? On décide alors de transmettre ces symboles en les regroupant par groupe de deux : cela revient à considérer une nouvelle source Y . 3. Combien y a-t-il de symboles dans l’alphabet de la source Y ? 4. Calculez l’entropie de la source Y . 5. Combien de bits sont nécessaires pour réaliser un code de longueur fixe à décodage unique ? 6. Cette manière de procéder est-elle plus intéressante pour la transmission de la source X ? Exercice 5 Une source émet 100 symboles par seconde parmi un alphabet de trois symboles {A,B,C} dont les probabilités respectives sont égales à 0,8, 0,15 et 0,05. On souhaite savoir si les messages de cette source peuvent être transmis sur un canal binaire pouvant transmettre sans erreur 100 bits par seconde. 1. Calculez l’entropie de la source. 2. Quel est le débit de la source ? 3. Quel est le débit du canal ? 4. Calculez le taux d’émission de la source. 5. Quelle est la capacité du canal ? 6. La transmission est-elle possible sans erreur ? Si oui, proposez un code de Huffman pour réaliser la transmission. 10 TP 2 : Codage source Exercice 6 : Application de la théorie de l’information à la transmission d’un texte Un texte en français est transmis sur un canal binaire. Le texte contient K = 1000 caractères parmi les vingt-six lettres de l’alphabet (majuscules non accentuées) et quatre signes de ponctuation (point, virgule, espace, apostrophe). 1. Quelle est la taille de l’alphabet de la source ? 2. Quelle est la taille de l’alphabet du canal ? 3. Les symboles de la source peuvent-ils être considérés comme équiprobables ? 4. Calculez l’entropie de la source. Le fichier french.mat contient un vecteur codant les probabilités d’occurrence des caractères, la fonction load permet de le charger et le logarithme à base 2 se calcule avec la fonction log2. Est-il possible de compresser les données avant transmission ? 5. La transmission du texte se fait à une vitesse maximale de 10 bits/s avec un taux d’erreur nul. À quel débit canal cela correspond-il ? En déduire la capacité du canal. 6. D’après le second théorème de Shannon (théorème du codage canal), quel est le taux d’émission maximal pour pouvoir transmettre les données sans erreur ? 7. En déduire le débit de la source puis le temps minimal théorique nécessaire pour transmettre le texte sans erreur (aucun codage source sans perte ne permet donc de diminuer cette durée). 8. Que devient ce temps dans le cas d’un canal 8-aire (transmission 8-QAM par exemple), dans le cas d’un canal émettant 10 symboles par seconde ? Pour réaliser la transmission, on propose de tester trois codes : — le code ASCII classique qui code chaque symbole sur 8 bits ; — un code de Huffman binaire de première extention ; — un code de Huffman binaire de deuxième extention. 9. Calculez la longueur moyenne et l’efficacité de chaque code. La fonction huffman* permet de créer le dictionnaire dict associé au codage de Huffman. Ce dictionnaire est stocké par Matlab dans une variable de type cell array : la syntaxe dict{i} permet d’accéder à l’élément i du dictionnaire dict. Pour calculer le dictionnaire associé au codage de Huffman de deuxième extention, il faut calculer les probabilités des nouveaux symboles avec kron. 10. Déterminez alors la durée de transmission nécessaire pour chaque code. Exercice 7 : Compression d’une image numérique Nous allons étudier deux codages source sur des images à niveaux de gris (sur 8 bits), non compressées et de taille 128 × 128 : smiley.pgm, schtroumpf.pgm, lena.pgm, boat.pgm. 1. Quelle est l’entropie de la source ? 2. En déduire la longueur moyenne minimale d’un code dans le cas d’une compression sans perte, puis la taille d’une image en bits. 3. Chargez (imread) l’une des images précédentes puis convertissez-la en double (double) avant de l’afficher (imshow 1 ). 1. N’oubliez pas le deuxième argument qui permet de régler l’échelle des intensités ! 11 Codage sans perte Le codage par plage (RLE : run length encoding, utilisé par exemple pour le format BMP) est une technique de compression sans perte. Le principe est de remplacer toute séquence consécutive d’un même symbole par la taille de cette séquence suivi du symbole. Par exemple, le message VVVVVMVV sera codé 5V1M2V. 4. Appliquez la compression RLE à l’image (rleenc*). 5. On définit le taux de compression par : Taux de compression = 1 − taille de l’image compressée . taille de l’image non compressée Quel taux de compression obtenez-vous ? Codage avec perte On peut autoriser la compression d’une image avec perte tout en conservant une qualité visuelle correcte. Ainsi, le principe fondamental de la compression JPEG est de calculer la transformée en cosinus discrète (DCT : discrete cosine transform) de l’image pour obtenir des coefficients qui seront quantifiés afin de réduire la taille de l’image. Ce sont ces coefficients qui sont stockés ou transmis. La transformation en cosinus discrète inverse permet de décoder l’image compressée. 6. Appliquez la transformée en cosinus discrète (dct2) sur l’image. La transformée obtenue est une image de même taille que l’originale, les basses fréquences se situent dans le coin en haut à gauche. 7. Visuellement, ce sont les basses fréquences qui sont les plus importantes dans l’image : les hautes fréquences peuvent donc être fortement quantifiés voire carrément annulées. Pour annuler ces hautes fréquences, on peut procéder de la sorte : C = length(I); T = 0.5; [X,Y] = meshgrid(1:C,1:C); M = ( (X+Y) <= 2*C*T ); imshow(M,[]); J = I.*M; % % % % % % Taille de l’image DCT I Taux de compression (entre 0 et 1) Matrices des coordonnées Définit un masque triangulaire Affichage du masque Masquage de l’image Ces valeurs nulles n’étant pas transmises, quel taux de compression obtenez-vous ? 8. Appliquez la transformée inverse (idct2) sur l’image masquée des coefficient puis affichez l’image compressée. 9. Discutez la qualité de l’image compressée. On distingue la qualité visuelle de l’image (critère qualitatif et subjectif) et la qualité quantitative qui est généralement mesurée à l’aide du rapport signal-à-bruit en crête (PSNR : peak signal-to-noise ratio). Le PSNR quantifie l’erreur pixel par pixel entre l’image originale I et l’image compressée J (de taille M × N ) : D2 PSNR = 10 log10 EQM où D est la dynamique du signal (sur 8 bits, D = 28 − 1) et EQM = M N 1 XX [I(m,n) − J(m,n)]2 . MN m=1 n=1 10. Concluez sur les deux méthodes de compression d’image étudiées. 12 TD 3 : Codage canal Exercice 1 Calculez les distances de Hamming entre les mots suivants : a = 0 0 0 0, b = 1 1 1 1, c = 1 1 0 1. Exercice 2 Le principe du code à parité (3, 2) est de rajouter à chaque bloc du message un « bit de parité » de sorte que le nombre de bit à 1 dans les mots du code soient pair. 1. Donnez le rendement de ce code. 2. Donnez l’ensemble des mots du code. Est-ce un code systématique ? 3. Donnez les matrices génératrice et de contrôle de parité. 4. Représentez géométriquement dans F32 les mots du code. 5. Calculez la distance minimale. En déduire les pouvoirs de détection et de correction du code. Exercice 3 Les codes de Hamming sont définis dans [5, p. 420] ainsi : « Hamming codes are one of the earliest codes studied in coding theory. Hamming codes are linear block codes with parameters n = 2m − 1 and k = 2m − m − 1, for m ≥ 3. Hamming codes are best described in terms of their parity check matrix H which is an (n − k) × n = m × (2m − 1) matrix. The 2m − 1 columns of H consist of all possible binary vectors of length m excluding the all-zero vector. » Dans cet exercice, on considère le code de Hamming (7, 4). 1. Donnez le rendement de ce code. 2. Donnez les matrices génératrice et de contrôle de parité. 3. Donnez l’ensemble des mots du code. 4. Calculez la distance minimale. En déduire les pouvoirs de détection et de correction du code. Exercice 4 On reçoit la séquence binaire 1 0 0 0 1 1 1 1 1 1 0 0 1 0 0 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 1 1 1 1 1. Trouvez le message émis sachant qu’un code de Hamming (7,4) a été utilisé. Exercice 5 On suppose un canal binaire où les erreurs de transmissions se traduisent par une suppression de certains bits (et non une modification de leur état). Le récepteur sait quels sont les bits manquants mais ne connaît pas leurs valeurs. Expliquez comment un code de Hamming (7,4) peut trouver les bits manquants lorsque un ou deux bits consécutifs ont été supprimés. Exercice 6 Les mots du message à coder sont de longueur k = 3 bits. On utilise un code à parité qui assure que le nombre de bits à 1 dans chaque mot du code est pair. 1. Donnez la taille n d’un mot du code. 2. Donnez la matrice génératrice. 3. Calculez la distance minimale du code. 13 On remplace maintenant le code par un code à parité croisée, c’est-à-dire qu’en arrangeant les mots du message sous forme d’un tableau k × k, des bits de parité sont calculés sur chaque ligne et sur chaque colonne. L’exemple ci-dessous donne les bits de parité pour le message 1 1 1 0 1 0 0 1 1 : message 1 1 1 1 0 1 0 1 0 1 1 0 1 1 0 parité ligne parité colonne Répondez aux questions précédentes en considérant le code à parité croisée. Concluez sur l’intérêt d’un code de parité croisé par rapport à un code de parité simple. Exercice 7 On considère le code convolutif ci-dessous : u1 m + u2 1. Déterminez k, n, K. En déduire le rendement R. 2. Est-ce un code systématique ? 3. Donnez les polynômes générateurs. 4. Calculez la sortie du codeur lorsque l’entrée est 0 1 1 1 0 1 1 0. 5. Représentez les diagrammes d’état, en arbre et en treillis. Exercice 8 Même questions que dans l’exercice 7 pour le code convolutif ci-dessous : + u1 m + u2 + u3 Exercice 9 Le meilleur code en treillis de rendement 1/2 et de longueur de contrainte 4 a comme polynômes générateurs 158 et 178 . Représentez son schéma bloc. Exercice 10 À partir du treillis du codeur de l’exercice 7, décodez la séquence reçue 1 1 0 0 1 0 1 0 à l’aide de l’algorithme de Viterbi. 14 TP 3 : Codage canal Exercice 11 : codes à parité On considère dans cet exercice le code à parité (4, 5). 1. Déterminez k, n, K. En déduire le rendement R. 2. Déterminez la matrice génératrice G et la matrice de contrôle de parité H. En Matlab, une matrice identité se crée avec l’instruction eye. 3. Quelle est la distance minimale du code à parité ? Pour cela, il peut être utile d’écrire tous les mots du code. La fonction dec2binary* permet d’obtenir la valeur binaire d’un nombre décimal. 4. Complétez les fonctions encparity* et decparity* qui effectuent respectivement le codage et le décodage. Utilisez le modulo 2 pour effectuer une multiplication dans le corps de Galois F2 (mod). Testez le bon fonctionnement de vos fonctions sur un exemple à partir d’une séquence binaire aléatoire (randmary*). Exercice 12 : code de Hamming (7, 4) Le code de Hamming (7,4) a été défini exercice 3. 1. Répondez aux questions de l’exercice 3. 2. Complétez les fonctions enchamming* et dechamming* qui effectuent respectivement le codage et le décodage. Testez le bon fonctionnement de vos fonctions sur un exemple. Exercice 13 : codes convolutif On considère le code convolutif dont le schéma-bloc est représenté ci-dessous : u1 + m + u2 1. Déterminez k, n, K. En déduire le rendement R. 2. Complétez la fonction encconv* qui effectue le codage. Le décodage sera effectué avec l’algorithme de Viterbi (decconv*). Testez le bon fonctionnement de votre code sur un exemple. Exercice 14 : performances des codes Les performances de trois codes précédents seront mesurées en considérant un canal binaire symétrique de probabilité d’erreur α. La transmission est dite « simplex » c’est-à-dire qu’elle s’effectue dans un seul sens (il n’est pas possible pour le récepteur de demander à l’émetteur de transmettre une nouvelle fois le message si une erreur a été détectée sans avoir pu être corrigée). 1. Complétez la fonction bsc* qui simule un canal binaire symétrique. 2. Simulez la transmission via ce canal d’une séquence binaire aléatoire sans codage canal et avec les codes des exercices 11, 12 et 13. 3. Tracez la probabilité d’erreur par élément du message en fonction de la probabilité d’erreur sur le canal de transmission (faites plusieurs simulations avec des messages suffisamment longs). 15