Intro Codage Source Et Codage de Canal

Embed Size (px)

Citation preview

Premire partieIntroduction au codage de source etau codage de canalc 2010 HEIG-VD.1Table des matiresI Introduction au codage de source et au codage de canal 11 Introduction au cours de Tlcommunications Numriques 11.1 Elments dun systme de communication numrique. . . . . . . 11.2 Fonction du codage de source . . . . . . . . . . . . . . . . . . . . 21.3 Le canal de communication . . . . . . . . . . . . . . . . . . . . . 41.4 Les imperfections du canal de communication. . . . . . . . . . . 61.5 Fonction du codage de canal . . . . . . . . . . . . . . . . . . . . 161.6 Fonction du modulateur numrique . . . . . . . . . . . . . . . . . 161.7 Fonction du dmodulateur . . . . . . . . . . . . . . . . . . . . . 171.8 Fonction du dcodage de canal . . . . . . . . . . . . . . . . . . . 171.9 Fonction du dcodage de source . . . . . . . . . . . . . . . . . . 181.10 Plan du cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 Notions de la thorie de linformation 192.1 Information=Surprise . . . . . . . . . . . . . . . . . . . . . . . . 192.2 Comment mesurer linformation ? . . . . . . . . . . . . . . . . . 202.2.1 Exemple 1 . . . . . . . . . . . . . . . . . . . . . . . . . 212.2.2 Exemple 2 . . . . . . . . . . . . . . . . . . . . . . . . . 212.3 Entropie=Moyenne de linformation . . . . . . . . . . . . . . . . 222.3.1 Exemple 3 . . . . . . . . . . . . . . . . . . . . . . . . . 232.3.2 Remarque historique :-) . . . . . . . . . . . . . . . . . . 243 Codage de Source 253.1 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.1.1 Codes longueur constante . . . . . . . . . . . . . . . . 263.1.2 Codes longueur variable . . . . . . . . . . . . . . . . . 263.1.3 Dcodage unique et dcodage instantan . . . . . . . . . 273.1.4 Longueur moyenne des mots. . . . . . . . . . . . . . . . 283.1.5 Ingalit de Kraft-McMillan . . . . . . . . . . . . . . . . 283.1.6 Capacit, efcacit et redondance du code. . . . . . . . . 283.2 Codage de Shannon-Fanno . . . . . . . . . . . . . . . . . . . . . 303.3 Codage binaire de Huffman . . . . . . . . . . . . . . . . . . . . . 323.4 Algorithme de Lempel-Ziv . . . . . . . . . . . . . . . . . . . . . 34c 2010 HEIG-VD.3TABLE DES MATIRES TABLE DES MATIRES3.4.1 Codage de type Lempel-Ziv . . . . . . . . . . . . . . . . 343.4.2 Dcodage avec lalgorithme Lempel-Ziv . . . . . . . . . . 363.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 Codes dtecteurs et correcteurs derreur 434.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444.2 Prliminaires pour les codes linaires par blocs . . . . . . . . . . 444.2.1 Champ de Galois CG(2) . . . . . . . . . . . . . . . . . . 444.2.2 Distance de Hamming . . . . . . . . . . . . . . . . . . . 454.2.3 Matrice dlments binaires . . . . . . . . . . . . . . . . 464.3 Principe gnral des codes dtecteurs-correcteurs . . . . . . . . . 484.3.1 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . 484.3.2 Capacit de dtection dun code . . . . . . . . . . . . . . 494.3.3 Capacit de correction dun code . . . . . . . . . . . . . . 504.3.4 Rendement dun code . . . . . . . . . . . . . . . . . . . 514.4 Codes linaires par blocs (n, k) . . . . . . . . . . . . . . . . . . 514.4.1 Principe et proprits. . . . . . . . . . . . . . . . . . . . 514.4.2 Codes blocs gnrs par des matrices systmatiques . . . 534.5 Dtection derreur avec un code linaire par bloc . . . . . . . . . 544.6 Correction derreurs avec les codes blocs linaires. . . . . . . . . 564.7 Code de Hamming . . . . . . . . . . . . . . . . . . . . . . . . . 574.8 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585 Dtection et correction derreur par codes polynmiaux cycliques 615.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625.2 Proprits fondamentales des codes cycliques . . . . . . . . . . . 625.3 Encodage dun code cyclique (n, k) sous forme systmatique . . 645.4 Dcodage dun code cyclique (n, k) . . . . . . . . . . . . . . . . 665.5 Ralisation dun encodage de code cyclique . . . . . . . . . . . . 675.5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 675.5.2 Prliminaires . . . . . . . . . . . . . . . . . . . . . . . . 675.5.3 Circuit de division . . . . . . . . . . . . . . . . . . . . . 685.5.4 Codeur dun code cyclique. . . . . . . . . . . . . . . . . 705.5.5 Ralisation matrielle du dcodage dun code cyclique sys-tmatique . . . . . . . . . . . . . . . . . . . . . . . . . . 715.6 Proprits des codes polynmiaux (cycliques ou non) . . . . . . . 725.7 Quelques polynmes gnrateurs normaliss . . . . . . . . . . . . 735.7.1 Le code CCITT V.41 . . . . . . . . . . . . . . . . . . . . 735.7.2 Le code CRC-16 . . . . . . . . . . . . . . . . . . . . . . 745.7.3 Le code CRC-12 . . . . . . . . . . . . . . . . . . . . . . 745.7.4 Le code ARPA . . . . . . . . . . . . . . . . . . . . . . . 745.7.5 Le code ETHERNET. . . . . . . . . . . . . . . . . . . . 744 TBA1TABLE DES MATIRES TABLE DES MATIRES5.8 Codes cycliques BCH. . . . . . . . . . . . . . . . . . . . . . . . 755.8.1 Description des codes BCH . . . . . . . . . . . . . . . . 755.9 Elments thoriques ncessaires au dveloppement des codes BCH 765.9.1 Construction des champs de Galois CG(2m) . . . . . . . 765.9.2 Proprits des champs de Galois CG(2m) . . . . . . . . . 805.9.3 Construction des codes BCH. . . . . . . . . . . . . . . . 825.9.4 Exemple de construction de code BCH . . . . . . . . . . 835.9.5 Calcul du syndrome dun code BCH. . . . . . . . . . . . 845.9.6 Dcodage dun code BCH . . . . . . . . . . . . . . . . . 875.10 Codes de Reed-Solomon . . . . . . . . . . . . . . . . . . . . . . 875.11 Quelques codes cycliques remarquables . . . . . . . . . . . . . . 885.11.1 Le code de Golay. . . . . . . . . . . . . . . . . . . . . . 885.11.2 Les codes de Fire. . . . . . . . . . . . . . . . . . . . . . 895.12 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 916 Codes convolutionnels 976.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976.2 Encodage de codes convolutionnels . . . . . . . . . . . . . . . . 976.3 Longueur de contrainte dun code convolutionnel . . . . . . . . . 996.4 Graphe de transition dun code convolutif . . . . . . . . . . . . . 996.4.1 Remarque fondamentale concernant le codage . . . . . . . 1006.4.2 Diagramme en treillis associ un code convolutionnel . . 1026.5 Dcodage dun code convolutionnel . . . . . . . . . . . . . . . . 1056.5.1 Introduction au dcodage selon lalgorithme de Viterbi . . 1056.5.2 Algorithme de Viterbi pour un codeur (n, 1, m) . . . . . 1126.5.3 Dcodage selon le principe du maximum de vraisemblance 1126.5.4 AlgorithmedeViterbipourlamthodedumaximumdevraisemblance . . . . . . . . . . . . . . . . . . . . . . . 1146.6 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1157 Modulations numriques 1177.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1187.2 Technique par saut de phase . . . . . . . . . . . . . . . . . . . . 1187.2.1 Technique par saut de phase binaire (BPSK) . . . . . . . . 1187.2.2 Dmodulation optimale (BPSK) . . . . . . . . . . . . . . 1197.2.3 Probabilit derreur avec un systme BPSK en prsence debruit blanc Gaussien additif . . . . . . . . . . . . . . . . 1217.2.4 Gnration dune modulation BPSK. . . . . . . . . . . . 1257.2.5 Occupation spectrale dune modulation BPSK . . . . . . . 1257.2.6 Technique par saut de phase quadriphase (QPSK) . . . . . 1287.2.7 Exemple de construction de signaux QPSK . . . . . . . . 1307.2.8 Gnration de signaux QPSK . . . . . . . . . . . . . . . 132TBA1 5TABLE DES MATIRES TABLE DES MATIRES7.2.9 Dtection optimale de signaux QPSK . . . . . . . . . . . 1337.2.10 Probabilit derreur des systmes QPSK. . . . . . . . . . 1357.2.11 Occupation spectrale dune modulation QPSK . . . . . . 1367.2.12 Exercice 1 (PSK) . . . . . . . . . . . . . . . . . . . . . . 1387.2.13 Exercice 2 (PSK) . . . . . . . . . . . . . . . . . . . . . . 1387.2.14 Exercice 3 (PSK) . . . . . . . . . . . . . . . . . . . . . . 1387.2.15 Exercice 4 (ASK) . . . . . . . . . . . . . . . . . . . . . . 1397.2.16 Exercice 5 (PSK) . . . . . . . . . . . . . . . . . . . . . . 1396 TBA11Introduction au cours deTlcommunications NumriquesCONTENU1.1 Elments dun systme de communication numrique. . 11.2 Fonction du codage de source . . . . . . . . . . . . . . . 21.3 Le canal de communication . . . . . . . . . . . . . . . . 41.4 Les imperfections du canal de communication. . . . . . 61.5 Fonction du codage de canal . . . . . . . . . . . . . . . 161.6 Fonction du modulateur numrique . . . . . . . . . . . . 161.7 Fonction du dmodulateur . . . . . . . . . . . . . . . . 171.8 Fonction du dcodage de canal . . . . . . . . . . . . . . 171.9 Fonction du dcodage de source . . . . . . . . . . . . . 181.10 Plan du cours . . . . . . . . . . . . . . . . . . . . . . . 18Rsum Ce chapitre motive les suivants en prsentant de manire trs gnraleles concepts de codage, de thorie de linformation, de modulation et dmodula-tion tels quils sont utiliss dans les systmes de communication numriques ac-tuels. On part donc de larchitecture gnral dun systme de communication andecomprendreleprincipedefonctionnementdesdiversblocsdetraitementdelinformation.1.1 Elments dun systme de communication numriqueLa gure 1.1 illustre le fonctionnement dun systme de communication num-c 2010 HEIG-VD.1Introduction H. Dedieurique. Dans ce schma, une source met un message qui le plus souvent appartientau monde analogique. Ce message est trait de faon numrique, cest dire rem-plac par une squence de nombres binaires. On introduit ainsi, par rapport unetransmission purement analogique de la robustesse car la dtection dun bit 0 ou 1sera quivalente la rception une dtection de niveau damplitude ou de phase.Un systme numrique est donc par nature, beaucoup plus immune au bruit quunsystme purement analogique. Le prix payer est un accroissement en besoin debande passante, on peut en effet considrer que lorsquon convertit un signal ana-logique sur 12 bits, on doit en fait traiter 12 signaux lmentaires, certes binaires,mais 12 signaux au lieu dun seul. Le premier bloc de traitement que lon dcouvresur notre metteur est le bloc de conversion qui chantillonne et quantie le mes-sage analogique transmettre. A la sortie de ce bloc on dispose de train de bits quisont squencs des fractions de la priode dchantillonnage Te. Par exemple ondisposera dun bloc de 12 bits toutes les Tes si la conversion se fait sur 12 bits envirgule xe. Cette information numrique est ensuite encode dans un alphabet ditalphabet de source par le bloc de codage de source.FIGURE 1.1 Architecture gnrale dun systme de communication numrique1.2 Fonction du codage de sourceLa fonction lmentaire de ce bloc de codage est de rduire le dbit binaire,cest un principe dconomie qui guide la conception de ce bloc. Imaginons parexemple que nous ayons transmettre des textes contenant les 26 lettres de lalpha-bet franais plus les 6 symboles de ponctuations appartenant lensemble { " , : ; .-}. Ces 32 symboles peuvent tre cods sur 5 bits. Si les symboles sont envoys une frquence de 8 kHz on en enverra donc 8 ksymboles/s1qui correspondront1. Les spcialistes de tlcommunications parleraient de 8 kBauds, un Baud correspondant 2 TBA1H. Dedieu Introductionen fait 5 8 kbits/s = 40 kbits/s. Si lon ralise toutefois que toutes les lettreset tous les signes de ponctuations ne sont pas quiprobables, il apparat comme fai-sant sens de coder les lettres et signes les plus probables avec moins de 5 bits et leslettres et signes les plus improbables avec 5 bits ou plus, mais de faon ce quenmoyenne, les 32 symboles de notre alphabet soient reprsents par moins de 5 bits2Supposons que cette moyenne soit 3.5, on obtiendrait alors aprs codage de sourceun dbit de transmission de 3.5 8 kbits/s=28 kbits/s au lieu des 40 kbits/stout en maintenant la mme vitesse de 8 ksymboles/s de codage/dcodage. Cettefaon de coder de manire conomique a t perue ds lavnement des premierssystmes de transmissions numriques, ainsi lalphabet Morse, utilis depuis 1835codait la lettre "E" avec seulement un seul son bref, alors que le point de ponctua-tion tait cod par un alternat de 6 sons bref-long-bref-long-bref-long.Les algorithmes de codage de source appartiennent deux grandes catgories,les codages avec ou sans perte :1. Soit ils sappuient sur un dissymtrie statistique des messages mettre etilsproposentuncodageefcientdesmessagesdefaonconomiserdelabandepassante.Ainsilessymboleslesplusprobablesdelalphabetdetransmission se trouvent cods avec le moins de bits, les plus improbablesen consommant plus. On ne peut pas dire que ces algorithmes supprimentde la redondance car ils proposent un codage sans perte. Une image simpledun tel type de code est le code Morse. De bout en bout on reproduit avecexactitude le message cod. Les algorithmes les plus utiliss dans ce domainesont lalgorithme dHuffman et lalgorithme de Lempel-Ziv2. Une autre faon denvisager ce codage de source lorsquil sagit de coder delaudio ou de la vido est de considrer quun certain nombre dinformationssont redondantes pour notre appareil auditif ou visuel. On trouve alors unefaon dextraire linformation pertinente pour notre systme sensoriel et dene transmettre que cette information. Les algorithmes utiliss ici sont doncdes algorithmes de codage avec perte. Certains de ces algorithmes sont som-maires comme les algorithmes qui sinspirent des lois de compression nonlinaire de notre systme auditif (loi A, loi ), ils sont dits sans mmoire carils nutilisent pas lhistoire du signal transmettre. Dans leur rafnement r-cents, les algorithmes de codage sont en gnral dune certaine complexitcar issus dun trs grand effort de recherche par une vaste communaut. Latrs grande difcult ayant rsid dans la dcouverte de principe de codagesinvariants pour notre systme perceptif. Dans leurs versions volues, ces al-gorithmes prennent en compte la mmoire dun modle de production quiles a engendr. Ils sont dits algorithme de codage avec mmoire. Une faonun symbole par seconde.2. Quand les messages de lalphabet nont pas la mme longueur leur dcryptage prsupposeque des indicateurs de dbut et/ou n de mot soient positionns, on suppose donc ici que le codageest effectu an que le dcodage soit unique.TBA1 3Introduction H. Dedieude les comprendre est dimaginer que tout systme physiologique de pro-duction et dcoute du son obit des contraintes mcaniques, vibratoires,bio-chimiques et lectriques. Il y a ordonnancement dans la dynamique dessignaux et des contraintes dterministes existent si bien que lorsque certainsvnements phonatoires se sont produits dans un pass rcent, dautres ve-nir sont plus probables. Lappareil phonatoire a ainsi une mmoire, do unintrtvidentessayerdutiliserlhistoiredusignal.Certainsdecesal-gorithmessontcommunmentutilissdanslessystmesdetransmissionsparce que directement adapts au traitement temps-rel de linformation. Unfoisonnement de mthodes existent ici suivant que lon considre du signalaudio ou vido. Les mthodes utilisent largement la transformation de signaldans lespace des frquences ; des algorithmes de prdiction des symbolessont implments dans cet espace transform. Au lieu de transmettre le si-gnal, on transmet les paramtres du prdicteur de signal. Ce prdicteur designal est en quelque sorte un modle simpli de lappareil phonatoire, dontles contraintes mcaniques font quil varie moins vite que le signal. Il estdoncplusconomiquedetransmettrelesparamtresduprdicteuretuneversion trs quantie dun signal dexcitation du prdicteur permettant derecomposerlesignallarception. Commeonseretrouvegnralementconfront transmettre des vecteurs dans un espace multi-dimensionnel, onutilise une technique dite de quantication vectorielle que lon surajoute latechnique de prddiction. La quantication vectorielle permet de ne consid-rer quun nombre ni de points de cet espace multi-dimensionnel, les cen-trodes, elle consiste trouver le centrode de lespace le plus proche du vec-teur prdicteur calcul un instant donn, on transmet alors le numro ducentrode sous forme dune squence binaire.1.3 Le canal de communicationAvant de parler du bloc de codage de canal et du bloc de modulation, il nousfaut donner quelques ides relatives laction du canal de communication. Le canalde communication est le support physique qui sert la transmission. On trouve troistypes principaux de canaux de communications : le canal laire, le sans l, la breoptique.Le canal laire (wireline)On trouve plusieurs types de support comme :la paire torsade (tlphone, ADSL, VDSL, Ethernet) permettant une bandepassante jusqu 10 MHz,le cble coaxial (Ethernet) permettant dchanger des signaux jusqu 1 GHz4 TBA1H. Dedieu Introductionle cuivre non torsad comme pour les rseaux courants porteurs dit PLC(PowerLineCommunication), permettantdchangerdessignauxjusqu20 MHz de bande,les guides dondes permettant dassurer des communications via des ondeslectromagntiques guides entre 1 GHz et 100 GHz.On donne la gure 1.2, une vue synthtique des diffrentes bandes occupe parces canaux.FIGURE 1.2 Les principaux canaux guids : laire, guid, optique.Le sans l (wireless)Les canaux Hertziens ont t segments en un certains nombres de canaux (MF,HF, VHF, UHF, SHF, EHF) utilisant des longueurs dondes varies ( = c/f),lesondesmoyennes(ditesMFentre100met 1kmdelongueurdondepour des frquences de lordre duMHz) sont employes par les systmesTBA1 5Introduction H. Dedieu modulation damplitude dits AM (systmes de plus en plus dsuets maisencore utiliss en radio, dans le domaine maritime en particulier),les hautes frquences (dites HF entre100met 10mde longueur dondepour des frquences de lordre de10MHz), ces bandes sont rserves auradio-amateurs et la CB (citizen band),les trs hautes frquences (dites VHF entre 10 m et 1 m de longueur dondepour des frquences de lordre de100MHz), rserves la TV VHF, laradio par modulation de frquence (FM),les ultra hautes frquences (dites UHF entre 1 met 10 cmde longueur dondepour des frquences de lordre du GHz), on trouve ici la TV UHF et la tl-phonie mobile (dit GSM pour Global System for Mobile Communications)avec les bandes GSM 900 (entre 872 960 MHz), GSM 1800 (entre 1.710 1.875 GHz et GSM 1900 (entre 1.930 et 1.990 GHz)au del on trouve les ondes SHF (super high frequencies entre10cm et1cm) et EHF (en dea du cm). Ces deux types de bande tant occupes par lestransmissions par satellite.On donne la gure 1.3, une vue synthtique des diffrentes bandes occupe parces canaux.La bre optiqueLes canaux par bre optiques offrent des bandes passantes suprieures de plu-sieurs ordres de grandeur par rapport celles des cables co-axiaux. Linformationest ici transmise en modulant lintensit dune source de lumire qui se propagele long dune bre. Des rpteurs peuvent se trouver sur la bre des longueursqui-espaces an de compenser lattnuation due la distance. Au rcepteur, unephotodiode dtecte la lumire et met un signal lectrique proportionnel linten-sit de la lumire reue.1.4 Les imperfections du canal de communicationIlexistedeuxtypesdimperfection,lapremireestlielabandepassantelimite du canal, la seconde tous les bruits inhrents au canal.Effet lis la bande passante limiteLorsquon envoie un train de bits sur un canal, ce dernier agit comme un ltrequi dans le meilleur des cas est linaire. Si lon admet quun message donn est d-compos en srie de Fourier, lenvoi de ce message sur le canal correspondra uneattnuation des composantes spectrales harmoniques de la frquence fondamentale6 TBA1H. Dedieu Introductiondanalyse du message initial. La recomposition du message au rcepteur sera tron-que et dforme parce quun certain nombre de composantes spectrales auront tlimines par le canal. La reconstruction sera dautant meilleure que la bande pas-sante du canal sera large. On peut admettre que si la troncation est trop svre, on nepuisse plus reconstruire le message mis et que la dtection des bits soit impossibleau rcepteur. Ceci est montr la gure 1.4 ou un train de bits de dure Te s est en-voy sur un canal qui est un ltre passe-bas dordre 4 de frquence de coupure 2/Teltre le train de bits. On a superpos sur la gure le train de bits ainsi ainsi que sarponse ltre par le canal. On conoit aisment en vriant lallure du train de bitsquil soit possible moyennant un dtecteur seuil au rcepteur de reconstruire sanserreur le signal mis. Les ingnieurs en tlcommunications on coutume dutiliserune reprsentation dite du diagramme en oeil o ils superposent sur un oscilloscopeles traces successives de dure Te s. Ainsi les diffrents bits reus en superpositionpermettent destimer quel instant on doit dtecter le signal reu (synchronisationne lintrieur dun bit) de manire commettre le moins derreurs de recons-truction avec les dtecteurs seuil. Ceci est montr la gure 1.6 o il est patentque "loeil" est ouvert et que le dtecteur seuil peut tre plac de faon optimaledans lintervalle [0.4Te, 0.9Te]. Si lon diminue la bande passante du canal et quecelle-ci prenne par exemple la valeur0.35/Te, on saperoit sur la gure 1.5 quele message reu rendra la reconstruction difcile ou quasi-impossible. Ceci devientvident sur le diagramme en oeil correspondant (gure 1.7) o loeil apparat ferm.On a ce quon appelle de linterfrence inter-symbole, la mmoire du canal fait quela rponse au bit prcdent sajoute celle du bit courant. On saperoit que la vi-tesse de raction du canal le rendra impropre toute communication au del duncertain dbit. La bande passante, est donc un facteur limitatif au dbit accessible decommunication avec des taux derreur acceptables. Ce nest pas le seul paramtrelimitatif. Le bruit de communication, principalement d au canal, inue aussi demanire dterminante.Effets lis au bruit du canalLe canal introduit toutes sortes de bruit et de distortions. Dans le meilleur descas, et cest souvent une approximation que lon fait, le canal est considr commeun ltre linaire avec bruit additif. Il fait donc correspondre un message x(t) quilui est est envoy un signal y(t) tel quey(t) = x(t) h(t) + n(t) =_0h() x(t )d+ n(t) (1.1)o h(t) est la rponse impulsionnelle du canal, n(t) est le bruit additif introduit parle canal, et est loprateur de convolution. Dans le domaine frquenciel, lqua-tion prcdente se ramne Y (f) = X(f)H(f) + N(f) (1.2)TBA1 7Introduction H. DedieuDanslapratique,leschosessontunpeumoinssimples.Certes,lesbruitslec-troniques de type bruit thermique, sont prsents dans toutes les rsistances et cir-cuits actifs intgrs de la chane de transmission ; on peut gnralement prendreen compte ces bruits comme un bruit Gaussien additif, mais de nombreux autresbruits existent, ils dpendent des canaux utiliss, des interfrences entre canaux.Par exemple, les systmes sans l sont souvent affects de phnomnes de multi-trajets, un message arrivant via un trajet dune certaine longueur est pollu par unerplique de ce message arrivant retard car ayant suivi un autre chemin. Parfoisles bruits sont impulsifs, cest le cas dans le PLC et le DSL o les dcharges detubes nons peuvent perturber de faon instantane les communications. Parfoisles canaux ne sont pas linaires, en ADSL, au moment ou des signaux de sonneriede lordre de 300V crte crte sont appliqus sur la ligne torsade, des ltres deprotection contenant des inductances peuvent se mettre saturer, les harmoniquesdes signaux gnrs peuvent rayonner et induire des salves derreur sur les commu-nications ADSL. Dans les systmes DSL, tout est fait pour minimiser linuencedes canaux adjacents (on veille lquilibrage des deux brins et ce que les deuxbrins soient torsads), mais en pratique, il existe de la diaphonie (crosstalk) entreles lignes adjacentes induites par un couplage capacitif prsent sur une grande por-tion de ligne, cette diaphonie se manifeste par un couplage plus complexe quunsimple bruit additif en bout de ligne. De manire gnrale, les canaux mme silssontlinairesnesontpasphaselinaire,ilenrsulteunedistortiondephase(temps de propagation de groupe non constant). Comment avoir un aperu de lin-uence du bruit dans le domaine de la transmission. On peut reprendre lexempledes gures 1.4 et 1.5 qui montrait un canal de communication trs bon avec unoeil compltement ouvert. Si nous rajoutons un bruit de communication tel que lerapport signal bruit soit de 10 dB on voit que loeil a tendance se fermer. Ceciest montr au gures 1.8 et 1.9. Au del dun certain niveau de bruit il est clair quela reconstruction du signal deviendrait impossible.Prise en compte globale de leffet bande-passante limite et bruitde communication : la formule de ShannonOn voit donc intuitivement que les deux paramtres que sont la largeur de bandeW dun canal et le niveau de rapport bruit SNRinterfrent pour donner ce que lesspcialistes en tlcommunications appellent la capacit C dun canal. Par capaciton entend un dbit limite de communication tel quil soit thoriquement possibledeffectuer une communication sans erreur avec un dbit D tant que D=0 pour toutvnement E appartenant lespace des vnements.3. Si lvnement est certain, sa ralisation napporte aucune information, i.e.I(E) = 0 si P(E) = 1 .4. Si lon considre la ralisation de 2 vnements indpendants ( la ralisa-tion delunnapasdinuencesurlaralisationdelautre)alorslinfor-mation lie la ralisation des 2 vnements devrait tre gale la sommedes informations des vnements. Autrement dit soitE=E1

E2 tel queP(E) = P(E1

E2) = P(E1).P(E2) alors I(E) = I(E1) + I(E2)Un des candidats possibles pour une telle mesure est une fonction logarithmique,i.e.I(E) = K loga(P(E))ou K et a sont des constantes positives. Lusage a consacr le logarithme a base 2.Si bien que linformation lie la ralisation de lvnement E est dcrite parI(E) = log2(P(E)) (2.1)Lunit dinformation est le bit.2.2.1 Exemple 1Soient deux machines changeant des messages avec des mots qui ont un al-phabet de 4 symboles, i.e. A, B, C, D. (Remarquons que 2 bits sont ncessairespour coder ces 4 symboles). Supposons que ces 4 symboles soient quiprobableset calculons linformation associe lapparition des quatre symboles. La proba-bilit de chaque symbole tant14, linformation associe leur apparition est doncI(A) = I(B) = I(C) = I(D) = log2(14) = 2Evnement E A B C Dp(E)14141414I(E) 2 bits 2 bits 2 bits 2 bitsTABLE 2.1 Calcul de linformation quand les symboles sont quiprobables2.2.2 Exemple 2Supposons maintenant que les symboles ne soient plus quiprobables mais queleurs probabilits dapparition se rpartissent suivant la loi p(A)=12, p(B)=14,TBA1 21Thorie de linformation H. DedieuEvnement E A B C Dp(E)12141818I(E) 1 bits 2 bits 3 bits 3 bitsTABLE2.2 Calcul de linformation quand les symboles ne sont plus quipro-bablesp(C) =18, p(D) =18. Les quantits dinformation relatives aux diffrents symbolescalcules selon lquation (2.1) sont donnes par la table 2.2.A la lumire de ces deux exemples, on voit que si les symboles transmis sontquiprobables, alors linformation apporte par chaque symbole est log2(Nombre de symboles)(en loccurrence 2 bits pour lexemple 1). Pour lexemple 2, on voit que lvne-ment A apparatra une fois sur deux ; en anticipant sur les notions de codage quenous introduirons ultrieurement, on coderait A sur 1 bit (on a besoin dun seul bitune fois sur deux). Lvnement B apparatra une fois sur quatre et ncessitera 2bits, C une fois sur 8 et ncessitera 3 bits, idem pour D.2.3 Entropie=Moyenne de linformationLes deux exemples prcdents font apparatre un nombre moyen de bits din-formation diffrent. Dans lexemple 1, le nombre moyen de bits dinformation est2, quel est le nombre moyen de bits dinformation dans lexemple 2, est-il infrieurou suprieur 2. Pour calculer la moyenne on doit tenir compte des pondrationsqui expriment la frquence dapparition des symboles. Le nombre de bits moyendinformation pour lexemple 2 est donc121 +142 +183 +183 =148= 1.75 bitsCe nombre moyen de bits dinformation a t appel conventionnellement entropie.Formellement on peut la dnir de la manire suivante. Soit une variable alatoireX qui se ralise par n vnements possibles e1, e2, . . . en. Chaque vnement ei aune probabilit dapparition P(ei) et une quantit dinformation associe I(ei). Lavaleur moyenne de linformation H(X) est doncH(X) =n

i=1P(ei)I(ei) = n

i=1P(ei) log2(P(ei)) (2.2)Lentropie, mesure moyenne de linformation, se mesure donc aussi en bits.22 TBA1H. Dedieu Thorie de linformation0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 100.10.20.30.40.50.60.70.80.91Entropie en fonction de pp=Probabilit d'apparition du symbole AEntropieFIGURE 2.1 Entropie en fonction de p (Exemple 3)2.3.1 Exemple 3Soit un ordinateur 1 envoyant des symboles vers un ordinateur 2. Les symbolesseront dsigns par A et B. Les messages sont tels que p(A)=p et donc p(B)=1 p. Calculer lentropie en fonction de p.Dans ce cas particulier lapplication de la formule (2.2) donneH= p log2(p) (1 p) log2(1 p)La gure 2.1 montre que lentropie est maximum quand les symboles sont qui-probables. Lentropie mesure lincertitude. Si p est proche de 0 (respectivement 1)cela veut dire que le symbole B (respectivement A) apparat avec une frquence trsgrande, on est pratiquement sr de voir B (respectivement A) se raliser. En cons-quence lincertitude sur lapparition du symbole est faible et lentropie est prochede 0. Par contre lorsque p=0.5, on a un maximum dincertitude sur lapparitiondun symbole, lentropie prend sa valeur maximale, i.e. 1 bit.De faon gnrale on peut montrer que pour une variable alatoire discrte Xprenant n valeurs possibles, lentropie H(X) vrie les proprits suivantes1. H(X) 02. H(X) = 0 si et seulement si X prend une de ses valeurs de faon certaine3. H(X) log2(n)4. H(X) = log2(n) si et seulement si X est uniformment distribu.TBA1 23Thorie de linformation H. Dedieu2.3.2 Remarque historique :-)Lusage de la terminologie entropie qui trouve son origine en thermodynamiqueet en physique statistique appelle quelques commentaires. Lusage du vocable en-tropie a t propos par Shannon quand il ralisa limportance de lexpression (2.2).La petite histoire nous apprend quil consulta le grand mathmaticien John VonNewman au sujet du meilleur nom possible. La rponse de Von Newman fut la sui-vante. "Vous devriez lappeler entropie, premirement parce que la mme fonctionest utilise en thermodynamique, deuximement et de faon plus importante, parceque la plupart des gens ne savent pas ce quest lentropie rellement, donc si vousutilisez le mot entropie dans une discussion, vous gagnerez chaque coup".24 TBA13Codage de SourceCONTENU3.1 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . 253.1.1 Codes longueur constante . . . . . . . . . . . . . . . 263.1.2 Codes longueur variable . . . . . . . . . . . . . . . . 263.1.3 Dcodage unique et dcodage instantan . . . . . . . . 273.1.4 Longueur moyenne des mots. . . . . . . . . . . . . . . 283.1.5 Ingalit de Kraft-McMillan . . . . . . . . . . . . . . . 283.1.6 Capacit, efcacit et redondance du code. . . . . . . . 283.2 Codage de Shannon-Fanno . . . . . . . . . . . . . . . . 303.3 Codage binaire de Huffman . . . . . . . . . . . . . . . . 323.4 Algorithme de Lempel-Ziv . . . . . . . . . . . . . . . . 343.4.1 Codage de type Lempel-Ziv . . . . . . . . . . . . . . . 343.4.2 Dcodage avec lalgorithme Lempel-Ziv . . . . . . . . . 363.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . 36Rsum Ce chapitre introduit les notions de codage de source.3.1 GnralitsComme nous lavons vu dans le chapitre introductif, diffrentes sortes de co-dage sont utilises. On distingue :1. le codage de source visant transformer la source dinformation (appelesource primaire) en une source dinformation secondaire qui est entropiemaximale. Lobjectif est donc de rduire au maximum la redondance et lac 2010 HEIG-VD.25Codage de source H. Dedieulongueur des messages.2. le codage de canal qui sappuie sur des codes dtecteurs et correcteurs der-reur. Le codage de canal, au contraire du codage de source augmente la lon-gueur et la redondance des messages an de permettre la dtection et ven-tuellement la correction des erreurs occasionnes par laction des perturba-tions dues au canal.3. le codage dmission ralise ladaptation des signaux aux canal par modula-tion, ltrage, distorsion linaire, etcLventail des techniques utilises est trs grand, on sattachera aux familles prin-cipales de codage de source et de canal. On considrera dans la suite un alphabetde source n symboles[S] = [s1, s2, . . . sn]tandis que lalphabet du code aura m symboles[X] = [x1, x2, . . . xm]Un mot du code est une suite nie de lalphabetX, xi1, xi2, . . . , xin. Le codedsignera un suite nie de n mots.[C] = [c1, c2, . . . cn]ExempleSoit [S] = [A, E, I, O] coder partir dun alphabet binaire [X] = [0, 1]. Uncode possible sera 00 pour A, 01 pour E, 10 pour I, 11 pour O. Le code correspon-dant sera donc [C] = [00, 01, 10, 11]3.1.1 Codes longueur constanteLe codage le plus simple consiste donner la mme longueur tous les mots.Un exemple de ce type de code est le code ASCII qui utilise des mots de 7 bits.3.1.2 Codes longueur variableSi lon dispose des probabilits dmission des diffrents symboles de lalpha-bet de source [S], il est plus conome dutiliser des codes longueur variable : lemot-code dun symbole de source aura une longueur variable, qui dcrot avec laprobabilit dmission. Un exemple dun tel code est le code Morse, o la lettre E,frquemment utilise, est code par un seul symbole (.), tandis que la lettre Q plusrare est code par quatre symboles (.)26 TBA1H. Dedieu Codage de source3.1.3 Dcodage unique et dcodage instantanSi les mots du code sont convenablement choisis, on peut faire en sorte quechaque succession de mots du code corresponde une seule succession de lalphabetde source. Dans ce cas, on dit quon a un code dcodage unique . La propritde dcodage unique est la proprit que doit possder tout code. Soit coder [S] =[A, E, I, O], on pourra utiliser les diffrents codes donns dans la table 3.1 LeMessage skCode 1 Code 2 Code 3 Code 4A 00 0 0 0E 01 10 01 10I 10 110 011 110O 11 1110 0111 111TABLE 3.1 Exemples de codes dcodage uniquecode dcodage unique le plus simple est le code 1, car ses mots sont de mmelongueur. Le code 2 est dcodage unique parce que le symbole 0 sert dindicateurde n de mot. Le code 3 est aussi dcodage unique car le 0 sert dindicateur dedbut de mot. Parmi les codes dcodage unique, il existe les codes dcodageinstantan et les codes dcodage non instantan. Soit par exemple coder le motAIE avec le code 2, ceci donne le message 011010 ; au dcodage, la rception dupremier 0 on sait instantanment quil sagit de A qui a t cod, puis la rceptionde110 on peut immdiatement dcoderI, et la rception de10 on dcoderaE.Le code 3 par contre nest pas instantan. Si lon code AIE, on obtient cette fois00110. Observons que la rception du premier0 ne nous permet pas de dcoderA instantanment, il faut attendre la rception du prochain bit en loccurrence0pour se rendre compte quun nouveau symbole dbute et que lon peut dcoder leprcdent symbole comme tantA. Le code3 nest pas un code instantan. Soirci=xi1, xi2, xi3, . . . xinun mot du vocabulaire du codeC, on dnit commeprxestouslesmotspluscourtsquecidelaformexi1, xi2, xi3, . . . ximavecmpi2(3.12)Or lquation (3.12) est lingalit de Kraft (3.2) quandm=2 (cas du code alphabet binaire), ce qui prouve quil est toujours possible de construire un code deShannon-Fanno dcodage instantan.3.2.0.2 ExempleSoit [S] un alphabet 6 symboles [S] = [s1, s2, s3, s4, s5, s6] tel que les pro-babilits dapparition des symboles soient [P] = [0.30, 0.25, 0.15, 0.15, 0.10, 0.05].En prenant le logarithme base 2 du vecteur Pon trouveP= [1.7370, 2.000, 2.7370, 2.7370, 3.3219, 4.3219]qui prouve que les longueurs de code utiliser sont (en tenant compte de lingalit(3.10) [2, 2, 3, 3, 4, 5]. On remarquera quun tel code est de longueur moyennel = 2.65Un code instantan possible ests1 00s2 01s3 100s4 101s5 1100s6 11100(3.13)TBA1 31Codage de source H. Dedieu3.3 Codage binaire de HuffmanLe problme qui se pose ici est de trouver une mthode de codage (instantan)optimal. An que le codage soit optimal, il faut que le mot-code le plus court soitattribu au symbole ayant la probabilit la plus grande dtre transmis. A cette n,on ordonne les messages dans lordre dcroissant des probabilits, i.e.p(s1) p(s2) p(s3) . . . p(sn1) p(sn) (3.14)avec, si les li, i = 1 . . . n reprsentent les longueurs associes aux symboles si ;l1 l2 l3. . . ln1 ln(3.15)Remarquons, que si lordre ntait pas respect (par ex. l1est attribu s3etl3est attribu s1) alorsl) ne peut quaugmenter (dans le cas particulier prsentp(s1)l3 + p(s3)l1 p(s1)l1 + p(s3)l3).Dautre part pour arriver au codage optimal, il faut que les deux dernires lon-gueurs soient gales, i.e.ln1= ln(3.16)En effet si lon suppose que ln=ln1 + 1, alors il existe un seul mot de longueurln. Si on limine le dernier bit, le mot ln1 bits obtenu est prxe desn et parconsquent, il ne peut tre attribu qusnet passn1( pour la raison que londsire construire un code dcodage instantan). Il sensuit que le ln ime bit estsuperu et ne fait quaccrotre l. Un code optimal est donc tel que ln= ln1.Le codage dHuffman est bas sur lide suivante. On range les symboles sui-vant lordre dcroissant des probabilits. Puis on rassemble les symboles sn et sn1(de probabilits les plus faibles) en un seul symbole de probabilitpn+ pn1 ensorte que lon ait maintenant un alphabet den 1 symboles. On ordonne nou-veau les symboles de ce nouvel alphabet et on runit les deux symboles ayant lesplus faibles probabilits en un seul symbole dont la probabilit est la somme desprobabilits dapparition des deux symboles. On procde ainsi rcursivement jus-qu ce quil ne reste que deux symboles. On code lun 0 et lautre 1, puis on revienten arrire et on code chaque paire de symboles avant rassemblement en 0 et 1. Ande comprendre le codage dHuffman, le mieux est dutiliser un exemple. Repre-nons lexemple qui avait t utilis pour le codage de Shannon-Fanno. Soit [S] unalphabet 6 symboles [S] =[s1, s2, s3, s4, s5, s6] tel que les probabilits dap-parition des symboles soient [P] = [0.30, 0.25, 0.15, 0.15, 0.10, 0.05]. Trouvonsle codage dHuffman dun tel alphabet. Pour ce faire construisons larbre de la -gure 3.1. Aprs construction de larbre et en procdant de la droite vers la gaucheon trouve les codages des symboles selon les loiss1 00,s2 10,s3 11,32 TBA1H. Dedieu Codage de source(1)s1 00, s2 10, s3 11, s4 010, s5 0110, s6 01110.400.600.150.250.300.300.150.300.250.150.150.100.05(1)(1)(1)(0)(0)(0)(0)(1)(0)

s6s5s4s3s2s1FIGURE 3.1 Codage dHuffmans4 010, s5 0110, s6 0111. Un calcul de la longueur moyenne des mots-code donne l = 2.45.TBA1 33Codage de source H. Dedieu3.4 Algorithme de Lempel-ZivLe codage de type Huffman est optimal lorsque lon peut considrer que lessymboles de source sont statistiquement indpendants. Or ceci est loin dtre le casdans la pratique. Soit coder un texte en franais, il est vident que des corrlationsexistent entre certaines lettres, un q aura une probabilit importante dtre suivipar un u et une probabilit nulle dtre suivi par un w. On saperoit donc trsvite que le codage de type Huffman est un codage optimal lorsque les symboles desources sont "sans mmoire". Ds que des corrlations existent entre des symbolesconscutifs, il faudrait, de faon optimale, an dtendre le codage de type Huff-man, connatre les probabilits jointes pour des blocs de symboles de longueur su-prieure ou gale 2. Ceci pose des problmes pratiques, car on ne connat pas cesprobabilits a priori. On peut, bien sr, par estimation dune trs longue squencede texte, calculer ces probabilits. Le calcul de lestimation des probabilits jointesest toutefois extrmement onreux en termes de puissance de calcul. En pratique,on ne les calcule donc pas.Une mthode de compression trs lgante due Jacob Ziv et Abraham Lempelne ncessitant pas de calculs probabilistes a t dcouverte en 1977. Cette mthode,ou des variantes de cette mthode sont utilises par des programmes de compres-sion trs populaires tels PKZip et WinZip. Les utilitaires sous Unix "compress" et"uncompress" sont aussi bass sur le mme algorithme. La mthode a t amliorenotamment par Terry Welch sous le nom LZW.Lide de base quont suivie Lempel et Ziv est de faire une analyse de la sourcede donnes en constituant un dictionnaire des squences les plus courtes non encorerencontres. Ces squences sont alors temporairement stockes et forment une basede mots ayant une position dans un dictionnaire qui se constitue au fur et mesureque les squences sont dcouvertes. La squence de source (mot du dictionnaire)est alors code sous forme dun pointeur vers les mots du dictionnaire. Une desproprits remarquables de lalgorithme de Lempel-Ziv est quil nest nullementncessaire de transmettre le dictionnaire au rcepteur, le dictionnaire est lui-mmedcod "on-y" lorsque le dcodeur analyse les donnes compresses.3.4.1 Codage de type Lempel-ZivPrenons un exemple an de comprendre le principe de lalgorithme de codage.Soit coder la squence :000101110010100101On suppose que les symboles binaires 0 et 1 sont dj stocks dans le dictionnaire.Le symbole 0 sera le premier mot du dictionnaire et le symbole 1 en constituera lesecond.34 TBA1H. Dedieu Codage de sourceIl nous faut faire maintenant lanalyse de la squence, le premier mot diffrentde0 et1 est00. Le troisime mot du dictionnaire sera donc00. Puis viendra01,etc ... Sur la base de lanalyse effectue sur la squence, le dictionnaire suivant seradonc constitu1:Position du mot dans le dictionnaire 1 2 3 4 5 6 7 8 9Mot du dictionnaire 0 1 00 01 011 10 010 100 101TABLE3.4Constitutiondumot dudictionnaireparanalyseitrativedess-quences les plus courtes non encore rencontresIl nous faut maintenant trouver un mcanisme dindexation intelligent tel quonnait pastransmettreaudcodeurlesmotsdudictionnairemaisqueceux-cipuissent tre aussi itrativement recomposs au cours du dcodage. Chaque motdu dictionnaire va tre spar entre un prxe et son dernier bit, au lieu de trans-mettre le prxe, on va transmettre son numro dapparition dans le dictionnaire(sous forme binaire) plus le dernier bit qui sera appel bit dinnovation. Le numrodindexation du prxe permettra de le retrouver ultrieurement au sein des pr-xes dj connus. Pour plus de clart continuons lexemple. La squence que lonPos. du mot dans dict. 1 2 3 4 5 6 7 8 9Mot du dictionnaire 0 1 00 01 011 10 010 100 101Num. prxe - bit dinnov. 1-0 1-1 4-1 2-0 4-0 6-0 6-1Mots cods 001-0 001-1 100-1 010-0 100-0 110-0 110-1TABLE 3.5 Constitution de la squence codeenverra au dcodeur est donc constitue par la dernire ligne de la table 3.5, i.e.0010001110010100100011001101Pour constituer la squence observons que lon code 00, le premier lment trans-mettre, en remarquant que le prxe est 0 et le bit dinnovation 0. Par consquent00 est constitu du mot dictionnaire numro 1 suivi du bit dinnovation 0. Cest ceque nous avons cod 1 0. Comme on a 6 numros de prxes transmettre (lesprxes 7, 8 et 9 ne sont pas utiliss), il faut au moins 3 bits pour coder le prxe,on codera 1 0 sous la forme 001 0. Remarquons par exemple que le neuvimemot coder 101 a pour prxe 10 (mot numro 6 dans le dictionnaire) et bit dinno-vation 1. On le code sous la forme 6 1 qui lorsque lon code le prxe en binairese traduit par 110 1 soit 1101.1. Ce dictionnaire est unique pour la squence considre.TBA1 35Codage de source H. DedieuSi lon considre la longueur de la squence code (7 4=28) par rapport la longueur de la squence initiale qui tait de18, on constate que lalgorithmea produit une expansion plutt quune compression. Ce nest videmment pas vraipour des squences longues o de nombreuses rptitions et corrlations existent.Ainsi un algorithme de type Lempel-Ziv compresse des textes anglais avec un rap-port de compaction de 55% l o un algorithme de type Huffman namne qu desrapports de compaction de lordre de 43%.3.4.2 Dcodage avec lalgorithme Lempel-ZivObservons maintenant le mcanisme du dcodage an de comprendre la natureitrative du processus de recomposition des mots du dictionnaire qui se fait paral-llement au dcodage. Le dcodeur avant de recevoir la squence sait seulementquil dispose de deux mots du dictionnaires 0 et 1. Comme pour le codeur, 0 est lemot numro 1 du dictionnaire et 1 est le numro 2. Le dcodeur connat en outre lalongueur des blocs dcoder, en loccurrence, 4 bits dans notre exemple prcdent.Le premier bloc que reoit le dcodeur est0010, il comprend donc que le bitdinnovation est 0 et quil a affaire un prxe numro001 (en binaire). Le pr-xe ainsi index est0 alors que le bit dinnovation tait0, il dcode donc00. Etil dispose ds maintenant du 3ime mot code du dictionnaire qui ds prsent estidenti 00. Il traite alors le second bloc de donnes 0011, il reconnat le bit din-novation 1 et lindex du prxe 001 lui permet didentier que le premier mot codeest prxe, il dcode donc 01 et constitue 01 comme tant son 4ime mot code. Puisil reoit 1001 et reconstitue un index pour le 4ime mot code et un bit dinnovation1 qui lui permet cette fois de dcoder 011, etc ....3.5 ExercicesExercice 3.5.1Soit p la probabilit dun vnement, tracer la valeur de la quantit dinforma-tion relative lvnement en fonction de p pour 0 p 1.Exercice 3.5.2Une source met alatoirement un symbole parmi quatre symboles possibles.Ces quatre symboles ont des probabilits doccurrence telles quep0=0.4,p1=0.3, p2= 0.2 et p3= 0.1 et sont statistiquement indpendants.1. Calculer linformation associe lmission de chacun de ces 4 symboles.36 TBA1H. Dedieu Codage de source2. Calculer lentropie de la source.Exercice 3.5.3Considrons une source sans mmoire (les symboles mis sont statistiquementindpendants) dont lalphabet est constitu par K symboles quiprobables.1. Quelle est le meilleur codage possible pour une telle source, longueur xeou variable ? Pourquoi ?2. Quelle condition doit satisfaire K pour que lefcacit du codage soit maxi-male ?Exercice 3.5.4Considrez les 4 codes lists dans la table suivante :Symbole Code I Code II Code III Code IVs00 0 0 00s110 01 01 01s2110 001 011 10s31110 0010 110 110s41111 0011 111 1111. Lesquels de ces codes sont dcodage instantans ?2. Calculer lingalit de Kraft-McMillan pour chacun de ces codes. Discutezles rsultats en fonctions de ceux obtenus en 1).Exercice 3.5.5Considrez des lettres dun alphabet ayant les probabilits dapparition tellesque :Lettre a i l m n o p yProbabilit 0.1 0.1 0.2 0.1 0.1 0.2 0.1 0.1TABLE 3.6 Table associe lexercice 3.5.5CalculezdeuxcodesdiffrentsdeHuffmanpourcetalphabet. Dansuncas,reportez un symbole combin dans larbre la position la plus haute, dans lautredans la position la plus basse. Pour chacun des codes obtenus, calculez la longueurmoyenne des mots code ainsi que la variance de la longueur moyenne des motscode. Lequel de ces deux codages possibles choisirez-vous en pratique ?TBA1 37Codage de source H. DedieuExercice 3.5.6Une source discrte sans mmoire a un alphabet de 7 symboles dont les proba-bilits dapparition sont dcrites dans la table suivante :Symbole s0s1s2s3s4s5s6Probabilit 1/4 1/4 1/8 1/8 1/8 1/16 1/16Calculer le code de Huffman associ ainsi que son rendement.Exercice 3.5.7Considrezunesourcediscrtesansmmoireavecunalphabet {s0, s1, s2}dont les probabilits dapparition sont respectivement {0.7, 0.15,0.15} . Appliquezle codage dHuffman cette source et montrez que la longueur moyenne du codeest 1.3 bits/symbole.Exercice 3.5.8En considrant la gure 3.2, donnez les codes associs aux symboles A, B, C,D, E, F, G.FIGURE 3.2 Figure lie lexercice 3.5.838 TBA1H. Dedieu Codage de sourceExercice 3.5.9Un calculateur excute 4 instructions qui sont reprsentes par les mots code(00, 01, 10, 11). En supposant que ces instructions sont utilises de manire ind-pendante avec des probabilits (1/2, 1/8, 1/8, 1/4), calculez le pourcentage dco-nomie de bits qui pourrait tre ralis avec un codage de source optimal. Trouverun code de Huffman qui ralise ce codage optimal.Exercice 3.5.10Considrez la squence binaire suivante011100011100011100011100Utilisez lalgorithme de Lempel-Ziv pour encoder cette squence.Exercice 3.5.11Une source sans mmoire a un alphabet A tel queA = {5, 3, 1, 0, 1, 3, 5}Les probabilits correspondantes sont{0.05, 0.1, 0.1, 0.15, 0.05, 0.25, 0.3}1. Trouver lentropie de la source.2. En supposant que la source est quantie selon la rgle suivante :Q(5) = Q(3) = 4Q(1) = Q(0) = Q(1) = 0Q(3) = Q(5) = 4trouver lentropie de la source quantie.3. Proposer un codage optimal de cette source quantie.Exercice 3.5.12Une source sans mmoire met des symboles a1, a2, a3, a4 avec des probabi-lits correspondantes p1= p2= 0.3365 et p3= p4= 0.1635.1. Trouver lentropie de la source.2. Trouver un code de Huffman pour cette source.3. Calculer la longueur moyenne du code obtenu.4. Calculer le rendement du code obtenu.TBA1 39Codage de source H. DedieuExercice 3.5.13Une source sans mmoire a un alphabet de5 symbolesS1, S2, S3, S4etS5.Ces cinq symboles sont quiprobables. Evaluez le rendement dun code binaire delongueur constante dans les trois cas suivants :1. On code chaque symbole.2. On code des paires de symboles.3. On code des successions de trois symboles.Exercice 3.5.14Une source sans mmoire met des symboles S1, S2, S3, S4 avec des probabili-ts p1= 0.5, p2= 0.25, p3= 0.125 et p4= 0.125.1. Coder chaque symbole avec un code de longueur xe et calculer le rendementdu code.2. Trouver un code dcodage instantan de rendement 100%.Exercice 3.5.15Le schma de la Figure 1 montre un schma dautomate de Markov. Cet auto-mate produit un symbole toutes lesTs., ce symbole peut tres0 ous1. On lit leschma de la Figure 3.3 de la manire suivante ; si s0 a t produit linstant k.T,la probabilit dobtenir un nouveaus0 linstant(k+ 1).Test1/4, alors que laprobabilit dobtenir s1 (k + 1).Test alors 3/4. (De tels automates sont utilisspour modliser la production de parole.). On observera quune tel automate produitdes donnes qui sont dpendantes dans le temps. En supposant que lon code dessquences de deux symboles conscutifs :1. Calculer lentropie de la source constitue par lautomate.2. Proposer un codage de Huffman des squences de deux symboles.3. Calculer lefcacit du code ainsi cr.Exercice 3.5.16On considre une source S1 sans mmoire dlivrant des symboles {s0,s1,s2,s3}avec des probabilits respectives 1/4, 1/2, 1/16, 3/16. Dautre part on considreune source S2 sans mmoire dlivrant des symboles {t0, t1, t2, t3} avec des pro-babilits respectives 1/8, 1/32, 1/64, 53/64. On considre ensuite une source S3qui dlivre alatoirement soit un symbole deS1, soit un symbole deS2 chaquecoup dhorloge ; la probabilit que S1 soit choisie est de 3/4.40 TBA1H. Dedieu Codage de sources0s11|4 3|4 3|43|41|41|4FIGURE 3.3 Automate de Markov1. Calculer lentropie de chacune des trois sources S1, S2 et S3.2. Proposer un codage de Huffman des squences de symboles pour chacunedes trois sources.3. Calculer lefcacit des trois codes ainsi crs.Exercice 3.5.17Soit une source S1 sans mmoire dlivrant des symboles {s0, s1, s2, s3, s4}avec des probabilits respectives1/16, 1/16, 1/8, 1/4, 1/2. Sans faire appel un graphe de type Huffman, proposer un code dcodage instantan qui ait uneefcacit de 100%. Justier vos choix et expliquez bien pourquoi lefcacit est de100%.Exercice 3.5.18On considre la squence suivante que lon veut encoder par lalgorithme deLempel-Ziv.010110111011110111110111111On considre que0 est le premier mot code et que1 est le second mot code. Onconsidre dautre part que les mots code sont numrots partir de 1.1. Calculer la squence code par lalgorithme de Lempel-Ziv.2. Calculer le taux de compression obtenu.3. Vriez que la squence obtenue est bien juste en procdant au dcodage dela squence.TBA1 41Codage de source H. Dedieu42 TBA14Codes dtecteurs et correcteursderreurCONTENU4.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . 444.2 Prliminaires pour les codes linaires par blocs . . . . . 444.2.1 Champ de Galois CG(2). . . . . . . . . . . . . . . . . 444.2.2 Distance de Hamming . . . . . . . . . . . . . . . . . . 454.2.3 Matrice dlments binaires . . . . . . . . . . . . . . . 464.3 Principe gnral des codes dtecteurs-correcteurs . . . . 484.3.1 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . 484.3.2 Capacit de dtection dun code . . . . . . . . . . . . . 494.3.3 Capacit de correction dun code . . . . . . . . . . . . . 504.3.4 Rendement dun code . . . . . . . . . . . . . . . . . . 514.4 Codes linaires par blocs (n, k) . . . . . . . . . . . . . 514.4.1 Principe et proprits. . . . . . . . . . . . . . . . . . . 514.4.2 Codes blocs gnrs par des matrices systmatiques . . 534.5 Dtection derreur avec un code linaire par bloc . . . . 544.6 Correction derreurs avec les codes blocs linaires. . . . 564.7 Code de Hamming . . . . . . . . . . . . . . . . . . . . 574.8 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . 58Rsum Cechapitreintroduitleprincipedescodesdtecteursetcorrecteursderreurs.c 2010 HEIG-VD.43Codes dtecteurs et correcteurs H. Dedieu4.1 IntroductionLa probabilit derreur dun systme de transmission est une fonction du rapportSignal Bruit de la liaison. Pour augmenter ce rapport on est amen augmenterla puissance du signal mis. Malheureusement ceci nest pas toujours possible caron se heurte trs vite une limitation dordre technologique ou conomique.Pouramliorerlaqualitdetransmissiononfaitusageducodagedecanalqui consisteajouterdelaredondanceausignal desource. Cetteredondanceest ajoute de manire intelligente de faon pouvoir dtecter et ventuellementcorriger des erreurs. Le codage dtecteur et correcteur derreur est lappellationplus commune du codage de canal. La redondance que lon ajoute peut tre vuecomme une signature que lon impose sur linformation, cette signature est dyna-mique dans le sens o elle dpend de linformation. A la rception on vrie lasignature du messsage, si elle est correcte, on dcide quil ny a pas derreur detransmission. Si la signature est incorrecte, on dtecte une erreur que lon peut cor-riger dans certains cas. Il existe deux grandes familles de codes : lescodes parblocs et les codes convolutionnels. Lorsquon utilise des codes par blocs, les bitsderedondancesontcalculspartirdesbitsdinformationprovenantdummebloc. Lorsquon utilise des codes convolutionnels, les bits de redondance sont cal-culs partir des bits dinformation de plusieurs blocs prcdant le bloc courant.4.2 Prliminaires pour les codes linaires par blocs4.2.1 Champ de Galois CG(2)On considrera un espace vectoriel form par des vecteurs v= (v1, v2, . . . vn)o les vi sont gaux 0 o 1. Ces vecteurs seront dsigns dans la suite commedes n uples. Lespace vectoriel considr est un espace vectoriel de dimension npuisquil existe une base orthonorme de n vecteurs (1, 0, . . . 0), (0, 1, 0, . . . 0),. . ., (0, 0, . . . , 0, 1). Le produit scalaire de deux vecteurs u et v se dnit commeu.v= u1v1

u2v2

u3v3

. . . unvn(4.1)o le symbole est laddition modulo 2 , i.e.0

0 = 00

1 = 11

0 = 11

1 = 04.2.1.1 ExempleSoit u = (1, 0, 1, 0, 1) et v= (1, 1, 1, 1, 0) on a u.v= 1

0

1

0

0 =0, dautre part ||u|| = 3 et ||v|| = 4.44 TBA1H. Dedieu Codes dtecteurs et correcteurs4.2.2 Distance de HammingLa distance de Hammingentre deux vecteurs u et v se dnit comme le nombrede positions o les bits de u et de v diffrent.4.2.2.1 ExempleSoit u = (1, 0, 1, 0, 1) et v= (1, 1, 1, 1, 0) on a d(u, v) = 3.TBA1 45Codes dtecteurs et correcteurs H. Dedieu4.2.3 Matrice dlments binairesOn dnira parG(n, k) une matrice dlments binaires klignes etn co-lonnes avec k < n dont les lments appartiennent CG(2).4.2.3.1 ExempleG(4, 2) =_0 1 0 11 1 0 1_La matrice G(n, k) est une matrice de dimension k n qui fera correspondre unk uple un n uple, i.e(u1, u2, . . . uk) G(n, k) = (v1, v2, . . . , vk, vk+1, . . . vn)1 k k n 1 nLa matrice G(n, k) sera appele dans la suite matrice gnratrice dun code (n, k).4.2.3.2 Exemple(1, 0)_0 1 0 11 1 0 1_ = (0, 1, 0, 1)Proprit 1La matrice G(n, k) engendre un sous-espace vectoriel de dimensionkNous pouvons aisment vrier cette proprit sur lexemple prcdent o lon faitcorrespondre des2 uples des4 uples. Les2 uples forment un espacevectoriel de dimension 2 puisquils peuvent tous sexprimer en fonction de la base 2 lments (0, 1) et (1, 0) car(0, 0) = 0(0, 1) = 0(1, 0)(0, 1) = 1(0, 1)(1, 0) = 1(1, 0)(1, 1) = 1(0, 1) + 1(1, 0)Les 4 uples engendrs par G(4, 2) ne forment pas un espace vectoriel de dimen-sion 4 mais un espace vectoriel de dimension 2. Vrions-le(0, 0)_0 1 0 11 1 0 1_ = (0, 0, 0, 0)(0, 1)_0 1 0 11 1 0 1_ = (1, 1, 0, 1)46 TBA1H. Dedieu Codes dtecteurs et correcteurs(1, 0)_0 1 0 11 1 0 1_ = (0, 1, 0, 1)(1, 1)_0 1 0 11 1 0 1_ = (1, 0, 0, 0)On vrie aisment que les 4uples gnrs ne sont pas linairement indpendantspuisque 2 dentre-eux peuvent servir de base ; (1, 1, 0, 1) et (0, 1, 0, 1) formentune base puisque(0, 0, 0, 0) = 0 (1, 1, 0, 1) = 0 (0, 1, 0, 1)(1, 1, 0, 1) = 1 (1, 1, 0, 1)(0, 1, 0, 1) = 1 (0, 1, 0, 1)(1, 0, 0, 0) = 1 (1, 1, 0, 1) + 1 (0, 1, 0, 1)Proprit 2Soit G

une matrice engendre par combinaison linaire des lignes deG, le sous-espace vectoriel engendr par G

est le mme que celui engendr par G.Pour sen convaincre soient les matrices G et G

suivantesG =_0 1 0 11 1 0 1_G

=_0 1 0 11 0 0 0_La premire ligne de G

est identique la premiere ligne de Gtandis que la deuximeligne de G

rsulte de laddition des 2 lignes de G. On saperoit maintenant quenappliquant G

tous les 2 uples on obtient les mmes 4 uples darrive quepar G, i.e(0, 0)_0 1 0 11 0 0 0_ = (0, 0, 0, 0)(0, 1)_0 1 0 11 0 0 0_ = (1, 0, 0, 0)(1, 0)_0 1 0 11 0 0 0_ = (0, 1, 0, 1)(1, 1)_0 1 0 11 0 0 0_ = (1, 1, 0, 1)TBA1 47Codes dtecteurs et correcteurs H. DedieuProprit 3Par combinaison des lignes (et ventuellement des colonnes) de G, onpeut toujours convertir G sous la forme canonique systmatiqueGS= ( Ik.., P..)k k k n k(4.2)avec Ik matrice identit k k, et o Pest une matrice k n k.G =_0 1 0 11 1 0 1_G

=_1 1 0 10 1 0 1_GS=_1 0 0 00 1 0 1_La transformation a eu lieu en des tapes, G

est dabord fabrique par change deslignes de G. GS est constitu en gardant la deuxime ligne de G

puis en addition-nant les deux lignes de G

pour former la premire lignes de GS.Proprit 4Soit GS= (Ik P), il existe une matriceHS=_PT, Ink_(4.3)HS= ( PT.., Ink. .)n k k n k n k(4.4)telle queGSHTS= 0 (4.5)Dmonstration :GSHTS= (Ik, P)_PInk_ = P

P= 04.3 Principe gnral des codes dtecteurs-correcteurs4.3.1 GnralitsSupposons une source qui fournit de k symboles binaires (k uples)X= (x1, x2, . . . xk) avec xi= 0 ou1 pour i = 1 . . . nIl y a donc 2kmessages X possibles. Pour rduire les erreurs de transmissions onajoute de la redondance au message en remplaant les 2kmots k bits par 2kmots n bits, i.eX= (x1, x2, . . . xk) Y= (y1, y2, . . . yk, yk+1, . . . , yn)48 TBA1H. Dedieu Codes dtecteurs et correcteursavec n>k. BIEN QUIL Y AIT 2nmots possibles pour YON NUTILISE AUCODAGE QUE 2kMOTS PARMI les 2nmots possibles. On parle de code (n, k)o k est le nombre de bits dinformation et n k est le nombre de bits de contrle.Le code Yfait apparatre des codes possibles et des codes impossibles (Cf. Figure4.1). Ds lors, si au cours dune transmission, le nombre derreur gnres larception dun mot Yfait glisser le code Ydun code possible un code impossible,on sait que le mot reu nest pas correct, il y a dtection derreur. On pourra aussidanscertainscascorrigerlefauxY enleremplaantparleY possibleleplusproche. Toute lintelligence des codes dtecteurs correcteurs sera contenue dans lamanire daffecter les bits de contrle en fonction des bits dinformation.2n2k_

xxxxxxxx-----------------------

xxxxxxxxxxxxxxxxxxx_

{X} {Y }FIGURE 4.1 Correspondance entre les X et les Y4.3.2 Capacit de dtection dun codeSi le mot transmis est entach dune erreur et sil est tel que le mot reu nappar-tienne pas au code alors la dtection derreur est immdiate. La question qui vientimmdiatement lesprit est de savoir combien derreurs binaires on peut dtecterau plus. Soit dmin la plus petite distance qui existe entre deux mots du code Yetsoit q le nombre derreurs que lon peut faire tel que le code possible devienne uncode impossible. De faon claireq= dmin1car ds que q atteint dmin il y a possibilit de passer dun code possible un autrecode possible tout en ayant fait dmin erreurs. Dautre part tant que q est infrieur dmin il est certain que le code reu est un code impossible. La quantit q= dmin1est appele capacit de dtection dun code.TBA1 49Codes dtecteurs et correcteurs H. DedieuCodes possibles

(1, 0)(0, 1)(0, 0)(1, 1)

FIGURE 4.2 Exemple de code (2, 1)4.3.2.1 ExempleSoit le code (2, 1) tel que 0 (0, 0) et 1 (1, 1). Un tel code est schmatis la gure 4.2 Un seul bit derreur fait passer dun code possible un code impos-sible. Deux bits derreurs font passer dun code possible un autre code possibleet donc on ne peut videmment dtecter deux bits derreurs. La distance minimumentre deux mots du code est dmin=2 et on vrie bien que q=dmin 1=1 estbien le nombre derreurs dtectables.4.3.2.2 ExempleSoit le code (3, 1) tel que0 (0, 0, 0) et1 (1, 1, 1). Un tel code estschmatis la gure 4.3. Clairement la capacit de dtection dun tel code estq= 2.4.3.3 Capacit de correction dun codeOn aborde la question de savoir si lorsquon a dtect une erreur, il est possiblede la corriger. Et dabord, sur quel principe devrait-on la corriger ? Sur la base dumot possible le plus proche du mot impossible que lon a reu. (Le plus procheau sens de la distance de Hamming). Voyons dabord sur les exemples que nousvenons de considrer. Dans le code (2, 1) de la gure 4.2 on voit que lorsque lonest en erreur, on ne peut dcider du mot possible le plus proche puisque les deuxmots possibles sont tous deux une distance de 1. Ds lors il est clair que la capacitde correction du code considr est 0. Avec le code(3, 1), on voit quune erreursimplepeuttrecorrigeparlefaitquelonresteplusprochedumotpossiblejuste que du mot possible faux. Si lon fait deux erreurs simples alors le mot reuest plus proche du mot possible faux que de celui qui tait juste, si lon corrige,50 TBA1H. Dedieu Codes dtecteurs et correcteurs(1, 1, 1)(0, 0, 0)

Codes possibles

FIGURE 4.3 Exemple de code (3, 1)on corrigera faussement. La capacit de correction du code considr est donc 1.Raisonnons maintenant de faon gnrale. Posons commet le nombre derreursqui sont telles que lon reste toujours plus proche du mot possible originel que detout autre mot possible. Il faut donc que t soit plus petit que la moiti de la distanceminimale entre deux points du code. Ds lors2t dmin1 (4.6)t est appel capacit de correction du code .4.3.4 Rendement dun codeOn appelle rendement dun code le rapport entre le nombre de bits dinforma-tion et le nombre de bits par bloc.=kn(4.7)4.4 Codes linaires par blocs (n, k)4.4.1 Principe et propritsOn engendre ces codes laide de matrices gnratrices (n, k). Comme nouslavons vu ces matrices gnratrices sont des matrices k lignes de n uples li-nairement indpendants (n > k). Ces matrices vont nous permettre de transformerdes blocs de k bits en blocs de n bits.TBA1 51Codes dtecteurs et correcteurs H. Dedieu4.4.1.1 ExempleSoit une matrice gnratrice (7, 3), i.e.G =___1 1 1 0 1 0 00 1 1 1 0 1 10 0 1 1 1 0 0___Cette matrice transforme donc des blocs de 3 bits en blocs de 7 bits. Comme il y a23= 8 messages possibles, le code sera form des 8 blocs de 7 bits suivants(0 0 0) G = (0 0 0 0 0 0 0)(0 0 1) G = (0 0 1 1 1 0 0)(0 1 0) G = (0 1 1 1 0 1 1)(0 1 1) G = (0 1 0 0 1 1 1)(1 0 0) G = (1 1 1 0 1 0 0)(1 0 1) G = (1 1 0 1 0 0 0)(1 1 0) G = (1 0 0 1 1 1 1)(1 1 1) G = (1 0 1 0 0 1 1)Proprit 1Toute combinaison linaire des mots du code est encore un mot ducode.La dmonstration de cette proprit est quasi-vidente. Soit u et v deux mots codes(2 n uples). Une combinaison linaire de ces 2 mots codes scrits = u + vOr u et v tant des mots codes, ils sont issus de k uples et scrivent u = udG etv= vdG o ud et vd sont deux des 2kk uples possibles. Ds lorss = udG + vdG =_ud + vd_GOr dans lespace des k uples, la somme de 2 k uples est encore un k uplepuisque laddition est modulo-2. De mme la combinaison linaire de 2 k uplesest encoreunk uple. (Enfait unchampdeGaloisest tel quemuni decesoprationsdadditionet demultiplicationonnesortejamaisduchamp). Donc_ud +vd_ est encore un k uple, appelons-le wd, dos = wdGDo lon tire que s est bien un mot code.Proprit 2La distance minimale entre deux mots du code est gale au poids duvecteur le plus faible du code (en exceptant le vecteur nul).52 TBA1H. Dedieu Codes dtecteurs et correcteursCette proprit se dmontre partir de la prcdente. Comme toute combinaisonlinaire des mots du code est encore un mot du code, la diffrence de 2 mots ducode (qui est donc aussi une combinaison linaire) est encore un mot du code. Parconsquent les diffrences entre mots du code sont des mots de code. Il sensuitque la distance dmin entre 2 mots du code est le vecteur de moindre poids dans tousles mots codes (except le vecteur nul qui est la diffrence entre deux mmes motsdu code).4.4.1.2 ExempleSoient les 8 mots codes dnis dans lexemple prcdent. Trouver la distanceminimale entre les mots du code. En dduire la capacit de dtection et de correc-tion du code. On voit donc quedmin=3. Par suite la capacit de dtection estu1 = (0 0 0 0 0 0 0 ) ||u1|| = 0u2 = (0 0 1 1 1 0 0 ) ||u2|| = 3u3 = (0 1 1 1 0 1 1 ) ||u3|| = 5u4 = (0 1 0 0 1 1 1 ) ||u4|| = 4u5 = (1 1 1 0 1 0 0 ) ||u5|| = 4u6 = (1 1 0 1 0 0 0 ) ||u6|| = 3u7 = (1 0 0 1 1 1 1 ) ||u7|| = 5u8 = (1 0 1 0 0 1 1 ) ||u8|| = 4dmin 1=2. La capacit de correction est telle que2t =dmin 1, do londduit que lon peut corriger une seule erreur simple.4.4.2 Codes blocs gnrs par des matrices systmatiquesOn crit en gnral les matrices gnratrices sous forme systmatique, ceci dansle but que les k bits den-tte du bloc de codage soient exactement les k bits din-formation. En effet, la matrice systmatique scrivant sous la forme (Ik, P) o Ikest la matrice identit k k, les k premiers bits ne sont pas affects par GS4.4.2.1 ExempleG =___1 1 1 0 1 0 00 1 1 1 0 1 10 0 1 1 1 0 0___ GS=___1 0 0 1 1 1 10 1 0 0 1 1 10 0 1 1 1 0 0___Dans cet exemple, la premire ligne de GS est la somme des 2 premires lignesdeG. La deuxime ligne deGSest la somme de la deuxime et de la troisimeligne de G. La troisime ligne de GS est la troisime ligne de G.TBA1 53Codes dtecteurs et correcteurs H. DedieuSoit la correspondance(x1, x2, x3) (y1, y2, y3, y4, y5, y6, y7) = (x1, x2, x3)GSOn voit quey1= x1y2= x2y3= x3___bits d

informationy4= x1 + x3y5= x1 + x2 +x3y6= x1 + x2y7= x1 + x2_____bits de contr oleLide sous-jacente la dtection derreur, est donc de vrier la rception queles relations de contrle sont bien remplies. Si elles le sont, on conclut la nonprsence derreurs. On notera toutefois que pour un nombre derreurs suprieur la capacit de dtection du code on peut conclure faussement la non prsencederreurs.4.5 Dtection derreur avec un code linaire par blocLe principe de dtection derreur est simple. On a des bits dinformation et desbits de contrle. Les bits de contrle sont calculs partir des bits dinformationselon une loi dencodage (matrice gnratrice) a priori connue par le rcepteur. Ala rception, on fait la vrication que les bits de contrle et les bits dinformationsont bien en correspondance au travers de la loi dencodage. Voyons comment celase traduit dune manire algbrique. Le message transmis partir de linformationx esty= xGS(4.8)Or on sait quil existe une matrice dite de contrle HS, dduite de GS selon lqua-tion (4.5) telle queGSHTS= 0 (4.9)Par consquent, si lon multiplie le message y par HS on obtientyHTS= xGSHTS= 0 (4.10)Latechniquededtectionestdoncsimple,lemessagereuestmultipliparlamatriceHTS, si le rsultat est nul, on dcide que le mot transmis ne contient pasderreur. Il est toutefois vident que si le nombre derreurs est suprieur la ca-pacit de dtection du code, on pourra se retrouver dans un cas ou cest un code54 TBA1H. Dedieu Codes dtecteurs et correcteurspossible diffrent du code possible mis qui est reu, la dtection derreur est dansce cas inoprante.Admettons quex soit le mot coder, et quey =xGSsoit son code. Si deserreurs se produisent pendant la transmission cest un mot derreur e qui se rajoute y si bien que lon reoit effectivement y= y + e (4.11)Lorsquon reoit y, on multiplie donc par HS, i.e.s = yHTS= yHTS. .+ eHTS= eHTS0(4.12)s est appel syndrome pour la raison quil dtecte une anomalie de transmission.En effet, sil ny a pas derreur de transmission e = 0 et daprs (4.12) s = 0.4.5.0.2 ExempleSoit GS la matrice systmatiqueGS=___1 0 0 1 1 1 10 1 0 0 1 1 10 0 1 1 1 0 0___calculer le syndrome associ GS. Construisons HS selon lquation ( 4.4), il vientHS=_____1 0 1 1 0 0 01 1 1 0 1 0 01 1 0 0 0 1 01 1 0 0 0 0 1_____Le syndrome s scrit doncs = yHTS= ( y1, y2, y3, y4, y5, y6, y7)_____________1 1 1 10 1 1 11 1 0 01 0 0 00 1 0 00 0 1 00 0 0 1_____________=_____ y1+ y3+ y4 y1+ y2+ y3+ y5 y1+ y2+ y6 y1+ y2+ y7_____T(4.13)TBA1 55Codes dtecteurs et correcteurs H. Dedieu4.5.0.3 Remarque :Le mme exemple avait t trait prcdemment et on avait vu que les bits decontrle scrivaient au codagey4= x1 + x3= y1 + y3y5= x1 +x2 + x3= y1 +y2 +y3y6= x1 + x2= y1 + y2y7= x1 + x2= y1 + y2(4.14)Onvrieraquilnyaaucunecontradictionentre(4.13)et(4.14). Eneffetenaddition modulo 2 on a forcment y4 + y4=0, y5 + y5=0, etc. en somme quelquation (4.14) est quivalente y1 + y3 + y4= 0y1 +y2 + y3 + y5= 0y1 + y2 + y6= 0y1 + y2 + y7= 0(4.15)donc la relation de dcodage des erreurs (4.13) est bien quivalente (4.15) quands = 0.4.6 Correction derreurs avec les codes blocs linairesSoit e le vecteur derreur lors de la transmission, i.ee = (e1, e2, . . . , en) (4.16)Lorsque lon calcule le syndrome par lquation (4.12), il vients = e1h1 + e2h2 + . . . + enhn(4.17)o les hi sont les vecteurs colonnes de HS. On remarque que le syndrome est unecombinaisonlinairedesncolonnesdelamatriceHS. Cetterelationpeuttreutilise pour corriger le mot reu sil est possible de retrouver de manire univoqueles coefcients ei qui vrient (4.17). On remarque ainsi que si les n colonnes deHSsont toutes distinctes et non nulles, un code linaire peut corriger toutes leserreurs simples. En effet une seule erreur la kime position produit un syndromes=hk. Par consquent si toutes les colonnes de HSsont distinctes, lerreur peuttre localise.56 TBA1H. Dedieu Codes dtecteurs et correcteurs4.6.0.4 ExempleSupposons dans lexemple prcdent ques=(0, 1, 0, 0). On constate alorsquesest lacinquimecolonnedeHS, dolondduit quee5=1et donce =(0, 0, 0, 0, 1, 0, 0). Le mot reu peut tre corrig en retranchant lerreur,i.e. y= y +e (On rappelle quen addition modulo 2, laddition est quivalente lasoustraction.)4.7 Code de HammingOn ne sintresse ici quaux codes linaires corrigeant toutes les erreurs simples(dmin= 3). En vue de maximiser le rendement =kn, on peut se demander quelleestlavaleurmaximalendesmotsdecodecorrigeanttouteerreursimplesilenombredebitsdecontrlen kestx. Commelesvecteurscolonnesdelamatrice HS sont des nkuples, on peut en former 2nk1 au plus qui soient tousnon nuls et distincts. On a vu prcdemment quun code bloc peut corriger touteerreur simple si les n colonnes sont non nulles et distinctes. Il faut donc quen 2nk1 (4.18)et la longueur maximale des mots est atteinte lorsque les deux membres de cette in-galit sont gaux. Le code est alors un code de Hamming. Le tableau suivant donnequelques-uns des codes de Hamming et leurs rendements : Un code de Hammingn k 2 3 4 5 6 7n 3 7 15 31 63 127k 1 4 11 26 57 120 0.333 0.571 0.733 0.839 0.905 0.945TABLE 4.1 Codes de Hamming et rendements associsprsente une matrice de contrle H (non systmatique) o la colonne hi est la re-prsentation binaire du nombrei. Dautre part les bits de contrle sont xs auxpositions 2i. Par exemple pour le code (7, 4) on aH=___0 0 0 1 1 1 10 1 1 0 0 1 11 0 1 0 1 0 1___Ladtectionderreursimpledevientalorsaismentimplmentablepuisqueuneerreur la positioni va tre signale par la valeur du syndrome. Par exemple siTBA1 57Codes dtecteurs et correcteurs H. Dedieus=(1, 0, 1) on sait que lerreur sest produite la position 5. A partir de Honcalcule la matrice gnratrice. Pour la matrice H(7, 4) on trouveraitG =_____1 1 1 0 0 0 01 0 0 1 1 0 00 1 0 1 0 1 01 1 0 1 0 0 1_____4.8 ExercicesProblme 4.8.1Soit une code linaire dont les mots code sont engendrs par la matrice gnra-trice G suivanteG =_1 1 0 10 1 1 0_1. Donner le nombre de bits dinformation et le nombre de bits par bloc (parmot-code) pour un tel code.2. Donner lensemble des mots code gnrs par G.3. Quelle est la distance minimale entre deux mots du code ?4. Quelle est la capacit de dtection du code ?5. Quelle est la capacit de correction du code ?6. On dcide de mettre G sous sa forme systmatique GS, trouver GS.7. Quel est, de faon gnrale, lintrt de mettre un code sous sa forme syst-matique ?8. Donner lensemble des mots-code gnrs par GS. Cet ensemble est-il diff-rent de lensemble gnr par G? Si oui ou non, dites pourquoi.Problme 4.8.2En observant les mots transitant au travers dun canal de communication, vousobservez que lon retrouve toujours les 4 mots suivants0 0 0 0 0 00 1 1 1 0 11 0 0 1 1 01 1 1 0 1 158 TBA1H. Dedieu Codes dtecteurs et correcteurs1. Votre sagacit vous incite penser quun code bloc (6, 2) a t utilis. Pour-quoi ? Pourquoi le code utilis est-il linaire ?2. Donner la matrice systmatique GS dun tel code.3. Quelle est la capacit de dtection du code ?4. Quelle est la capacit de correction du code ?5. En crivant[y1, y2, y3, y4, y5, y6] = [x1, x2] GSdonner toutes les lois de calcul des yi pour i = 1 . . . 6. Prenez soin de calculerexactement les bits de contrle, y3, y4, y5 et y6.6. Calculez partir de la matrice gnratrice GS la matrice de contrle HS duntel code.7. En crivant la relation habituelle de contrle[y1, y2, y3, y4, y5, y6] HTS= 0montrez que vous arrivez aux 4 relations de contrle que vous aviez dcouverten 5).8. Vous recevez le mot 111111 que vaut le syndrome ?9. En tudiant le syndrome (obtenu prcdemment) et en supposant quune er-reursimplesesoitproduite, quellepositiondumot-codesestproduitelerreur ? Corrigez le mot code. En observant les mots-code possibles, ditessi votre bon sens vous indiquerait le mme rsultat que lalgbre des codesblocs linaires.Problme 4.8.3On dcide de construire un code bloc linaire, non pas partir de sa matricegnratriceG mais partir de sa matrice de contrleH. Par exemple on dcidequun code (7, 4) sera form dune matrice H sous la formeH=___0 0 0 1 1 1 10 1 1 0 0 1 11 0 1 0 1 0 1___Lide sous-jacente est que chaque colonne de la matrice est "code" par des nombrescroissants 1, 2, 3, . . . 71. Quel pourrait tre votre avis lutilit pratique dune telle matrice en casdune erreur simple lorsquon calcule le syndrome ? On voudrait calculer lamatrice gnratrice correspondant H. On dcide pour ce faire de ne pas tra-vailler avec une matrice G systmatique et de mettre tous les bits de contrleTBA1 59Codes dtecteurs et correcteurs H. Dedieu des positions qui soient des puissances de 2. En somme que si lon doitcoderx = [x1, x2, x3, x4]on transmettey= [y1, y2, x1, y3, x2, x3, x4](Les bits de contrle sont aux positions 20= 1, 2, 4)2. A partir de la relation de contrle standardyHT= 0dduire les 3 relations de contrle qui grent les yi pour i = 1 . . . 33. Dduire de la question prcdente la matrice gnratrice G.4. On reoit 1101000 que vaut le syndrome ?5. Dduire la position de lerreur daprs le syndrome si lon suppose une erreursimple.60 TBA15Dtection et correction derreur parcodes polynmiaux cycliquesCONTENU5.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . 625.2 Proprits fondamentales des codes cycliques . . . . . . 625.3 Encodage dun code cyclique(n, k) sous forme syst-matique . . . . . . . . . . . . . . . . . . . . . . . . . . 645.4 Dcodage dun code cyclique (n, k) . . . . . . . . . . . 665.5 Ralisation dun encodage de code cyclique . . . . . . . 675.5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 675.5.2 Prliminaires . . . . . . . . . . . . . . . . . . . . . . . 675.5.3 Circuit de division . . . . . . . . . . . . . . . . . . . . 685.5.4 Codeur dun code cyclique. . . . . . . . . . . . . . . . 705.5.5 Ralisation matrielle du dcodage dun code cycliquesystmatique . . . . . . . . . . . . . . . . . . . . . . . 715.6 Proprits des codes polynmiaux (cycliques ou non) . . 725.7 Quelques polynmes gnrateurs normaliss . . . . . . . 735.7.1 Le code CCITT V.41 . . . . . . . . . . . . . . . . . . . 735.7.2 Le code CRC-16 . . . . . . . . . . . . . . . . . . . . . 745.7.3 Le code CRC-12 . . . . . . . . . . . . . . . . . . . . . 745.7.4 Le code ARPA . . . . . . . . . . . . . . . . . . . . . . 745.7.5 Le code ETHERNET. . . . . . . . . . . . . . . . . . . 745.8 Codes cycliques BCH. . . . . . . . . . . . . . . . . . . 755.8.1 Description des codes BCH . . . . . . . . . . . . . . . 755.9 Elmentsthoriquesncessairesaudveloppementdescodes BCH . . . . . . . . . . . . . . . . . . . . . . . . 765.9.1 Construction des champs de Galois CG(2m) . . . . . . 76c 2010 HEIG-VD.61Codes polynmiaux cycliques H. Dedieu5.9.2 Proprits des champs de Galois CG(2m). . . . . . . . 805.9.3 Construction des codes BCH. . . . . . . . . . . . . . . 825.9.4 Exemple de construction de code BCH . . . . . . . . . 835.9.5 Calcul du syndrome dun code BCH. . . . . . . . . . . 845.9.6 Dcodage dun code BCH . . . . . . . . . . . . . . . . 875.10 Codes de Reed-Solomon . . . . . . . . . . . . . . . . . 875.11 Quelques codes cycliques remarquables . . . . . . . . . 885.11.1 Le code de Golay. . . . . . . . . . . . . . . . . . . . . 885.11.2 Les codes de Fire. . . . . . . . . . . . . . . . . . . . . 895.12 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . 915.1 IntroductionLes codes polynmiaux sont des codes linaires par blocs qui ont une impor-tance particulire en tlinformatique o ils sont utiliss pour la dtection derreur.Ils prsentent lavantage de saccommoder dune longueur variable des mots din-formation et ont une bonne capacit de dtection des salves derreur. Les codescycliques forment une importante sous-classe des codes polynmiaux. Un fait re-marquable est que la plupart des codes blocs importants connus peuvent tre re-formulsentantquecodesblocscycliquesouapparents.Cescodespossdentdes proprits algbriques qui simplient les oprations de codage et de dcodage.Nous aborderons les principales proprits des codes cycliques et donnerons unaperu des codes cycliques les plus remarquables, les codes BCH.Dnition 1Par dnition un code linaire(n, k) est dit code cyclique si toutdcalage cyclique dun mot code est encore un mot code.5.1.0.5 ExempleOn montrera dans la suite quun code cyclique (4, 2) est de la forme telle quednie par la table 5.1. On constate bien que tout dcalage cyclique de0000 en-gendre 0000, tout dcalage cyclique de 1111 engendre 1111, tout dcalage cycliquede 0101 engendre soit 1010, soit 0101.5.2 Proprits fondamentales des codes cycliquesAn de dvelopper les proprits algbriques des codes cycliques, on les traitedans la suite comme des polynmes, ainsi un n-uple (vn1, vn2, vn3, . . . , v0)62 TBA1H. Dedieu Codes polynmiaux cycliquesMessage Mot Code00 000001 010110 101011 1111TABLE 5.1 Code cyclique (4, 2)on fera correspondre le polynme(vn1, vn2, vn3, . . . , v0) v0 + v1X + v2X2+ . . . + vn1Xn1Proprit 1Lecodepolynomial nonnul dedegrminimal duncodecyclique(n, k) est de degr n k et il scrit sous la formeg(X) = 1 + g1X +g2X2+ . . . + gnk1Xnk1+ Xnk(5.1)5.2.0.6 ExemplePour le code cyclique (4, 2) dni la table 5.1, le code polynomial non nul dedegr minimal correspond au code 0101 et scrit donc 0X3+ 1X2+ 0X+ 1=1 + X2qui est bien de degr 4 2 = 2Proprit 2Lecodepolynomial nonnul dedegrminimal duncodecyclique(n, k) divise le polynme 1 +Xn5.2.0.7 ExemplePour le code cyclique (4, 2) dni la table 5.1, le code polynomial non nul dedegr minimal 1 +X2divise bien 1 + X4. En effet(1 + X2)(1 + X2) = 1 + 2X2+X4= 1 + X4+ (1 + 1)X2= 1 + X4(On rappelle que les additions se font modulo 2)Proprit 3Si g(X)estunpolynmededegrn ketdivise1+Xn, alorsg(X) engendre un code cyclique(n, k),g(X) est appel polynme gnrateur .An dengendrer le code on multiplie les polynmes correspondant aux messagesdinformation par le polynme gnrateur.Cette proprit est trs importante puisquelle indique comment gnrer un codecyclique.TBA1 63Codes polynmiaux cycliques H. Dedieu5.2.0.8 ExempleSoit gnrer le code cyclique(4, 2). Ce code cyclique existera si lon peuttrouver un polynme de degr 4 2=2 qui divise 1 + X4. Or un tel polynmeexiste, il sagit de 1 +X2. Pour gnrer le code, on opre suivant le principe donnpar la proprit prcdente ; ce principe est illustr la table 5.2.Message Poly. message Poly. gnrateur Poly. message Rsultat Mot Code00 0 (1 +X2)0 0 000001 1 (1 +X2)1 X2+ 1 010110 X (1 + X2)X X3+X 101011 X + 1 (1 + X2)(X + 1) X3+ X2+ X + 1 1111TABLE 5.2 Code cyclique (4, 2)Proprit 4Lesk dcalages cycliques du mot code correspondant au polynmenon nul de degr minimal forment une base du code.5.2.0.9 ExemplePour le code cyclique (4, 2) dni la table 5.1, le code polynomial non nul dedegr minimal est (1 + X2) auquel correspond le mot code 0101. Les 2 dcalagescycliquesducodesont 1010et 0101quiengendrentbienunebaseducode,eneffet 0000 =0 1010 =0 0101, 1010 =1 1010, 0101 =1 0101et1111 = 1 0101 + 1 1010.5.3 Encodage dun code cyclique(n, k) sous forme systma-tiqueLorsquon doit encoder un message dinformation, i.e. un k-uple (ik1, . . . , i0)on a vu que cela consistait multiplier le polynme i0 +i1X +. . . +ik1Xk1parlepolynmegnrateurg(X), puisretrouverlesbitsdumotcodeassociaupolynme produit. En effectuant un tel produit, les bits dinformation sont affectspar le codage et dans la plupart des cas, le code obtenu nest pas systmatique. Andobtenir un code systmatique on opre de la faon suivante.On multiplie le polynme i(X) du message dinformation par Xnk, i.e.i(X) Xnki(X) (5.2)64 TBA1H. Dedieu Codes polynmiaux cycliquesRemarquons que le polynme Xnki(X) a ses monmes qui stendent de XnkXnpuisquei(X) est au plus de degrk. Divisons le rsultat par le polynmegnrateur g(X) et lon obtientXnki(X) = a(X)g(X) + r(X) (5.3)o r(X) est le reste de la division de Xnki(X) par g(X). On voit donc que r(X)est de degr infrieur n k. Additionnons maintenant r(X) aux 2 membres de(5.3), il vient compte tenu des proprits de laddition modulo 2.Xnki(X) + r(X) = a(X)g(X) (5.4)On a donc les deux rsultats fondamentaux suivants. Dune part daprs ( 5.4), laquantitXnki(X) + r(X) est bien un multiple deg(X) (ce qui est la propritdsire du code cyclique). Dautre part les deux polynmes Xnki(X) et r(X) ontdes monmes qui ne peuvent sadditionner puisque ceux de r(X) stendent de 0 n k 1 au plus alors que ceux de Xnki(X) stendent de n k n au plus.Les bits dinformation se trouvent en tte du message alors que les bits der(X)qui seront les bits de contrle du code occuperont les nk premires positions. Lemot code sera en effet de la formeik1Xn+ ik2Xn1+. . . i0Xnk+ rnk1Xnk1+ . . . + r1X + r0ce qui correspondra au n-uple(ik1, ik2, . . . , i0, rnk1, rnk2, . . . , r1, r0)5.3.0.10 ExempleTrouver pour un code cyclique (7, 4) lencodage systmatique ainsi quun en-codage non systmatique de 1010.5.3.0.11 SolutionIl faut dabord trouver le polynme gnrateur du code. Le degr de ce po-lynme gnrateur est daprs la proprit 1, n k=7 4=3. Dautre partdaprs la proprit 2, le polynme gnrateur doit diviser 1 + X7. Si lon essaiede factoriser 1 +X7on trouve1 +X7= (1 + X)(1 + X + X3)(1 + X2+ X3)On saperoit quil y a deux candidats comme polynme gnrateur de degr 3.Lequel choisir ? La rponse nest pas vidente demble. A priori on ne peut savoirlequel des deux codes est le meilleur. Prenons comme polynme gnrateurg(X) = 1 + X +X3TBA1 65Codes polynmiaux cycliques H. DedieuLencodage non systmatique de linformation donneraitg(X)i(X) = (1 + X + X3)(X + X3) = X + X2+ X3+ X6soit(1010) (1001110)Lencodage systmatique de linformation donneraitXnki(X) = X3(X + X3) = X4+ X6X4+ X6= (X3+ X + 1)(X3+ 1) + X + 1Soit r(X) = X + 1. Lencodage systmatique est donc X6+ X4+ r(X) = X6+X4+ X + 1 soit(1010) (1010011)5.4 Dcodage dun code cyclique (n, k)Quand il ny a pas derreur, le rcepteur reoit un mot de la formec(X) = Xnki(X) + r(X) = a(X)g(X)Lorsque des erreurs de transmissions se produisent on reoit c(X) = Xnki(X) + r(X) + e(X) = a(X)g(X) + e(X)Pour dtecter une erreur, on voit donc quil suft de vrier si le mot reu est divi-sible par g(X). Le syndrome que nous calculerons est donc le reste de la divisionpar g(X). Si le syndrome est nul cela veut dire que e(X) = 0. (Cela pourrait vouloirdire que e(X) est un des codes cycliques auquel cas on ne pourrait dtecter lerreurcar lerreur serait telle que lon soit pass dun mot code possible un autre motcode possible.)Il existe deux mthodes quivalentes pour le calcul du correcteur.1. On calcule le reste de la division de c(X) par g(X), (s(X) = e(X)).2. On calcule les bits de contrle correspondants aux bits dinformation reuset on les additionne aux bits de contrle rellement reus. Soit c(X) = Xnki(X) + r(X)le mot reu. On calculer

(X) = reste_Xnki(X)g(X)_Le syndrome scrit alorss(X) = r

(X) + r(X)66 TBA1H. Dedieu Codes polynmiaux cycliques5.4.0.12 Fonctionnement en dtecteur derreur seulEn pratique on prfre souvent la deuxime mthode parce quelle permet duti-liser la mme structure au codeur et au dcodeur. Si on utilise le code en dtecteurderreur seul, le dcodeur prend la dcision mot erron-mot correct et demande oune demande pas la retransmission.5.4.0.13 Fonctionnement en correcteur derreurIl y a plusieurs possibilits de fonctionnement. Soit on dispose dun tableau decorrespondance archiv dans une ROM entre toutes les erreurs possibles et toutesleurs corrections. Soit on calcule en temps rel la correction grce un algorithmeadquat.5.5 Ralisation dun encodage de code cyclique5.5.1 IntroductionNous avons vu prcdemment que lencodage dun code cyclique (n, k) consis-tait en trois tapes1. multiplication du message i(X) par Xnk2. division de X(nk)i(X) par g(X) an dobtenir le reste r(X)3. formation du code par addition de r(X) et X(nk)i(X)Il se trouve que ces trois tapes peuvent tre ralises de manire simple sous uneforme matrielle. Nous allons essayer dexpliquer pourquoi dans la suite.5.5.2 PrliminairesOn doit raliser sous forme matrielle des multiplications et des divisions poly-nomiales. Or les bits que nous mettons ou recevons apparaissent de faon srielleet le formalisme polynomial introduit par pure commodit algbrique tient comptede la squencialit dans le temps. Que se passe-t-il lorsque lon multiplie un poly-nme par X ? Soit par exemple le message 100111 auquel correspond un polynme1 + X + X2+ X5. Implicitement cela veut dire quau temps 0 apparat le 1, alorsqu linstant davant -1 avait apparu 1, et quau temps -2 avait apparu le bit 1, autemps -4 le bit 0, etc, au temps -5 le bit 1. Multiplier le polynme parX, cestdcaler vers la gauche le message qui devient1001110. Le bit qui tait au tempsi apparat maintenant au tempsi 1. Autrement dit une multiplication parXsetraduit par un dcalage temporel dune unit de temps. Ce dcalage correspond TBA1 67Codes polynmiaux cycliques H. DedieuDm1D1D0y(X)u(X)gm= 1 gm1g2 g1 g0= 1 ` ` `

``_`_`_`_FIGURE 5.1 Circuit de divisionu(X)g(X)m-1 1 0X1X1X1y(X)u(X)gm= 1 gm1 g2g1g0= 1 ` ` `

``_`_`_`_FIGURE 5.2 Schma quivalent au circuit de divisionu(X)g(X)une anticipation dun coup dhorloge. Inversement on pourrait monter quune di-vision par X se traduit par une retard dun coup dhorloge. Un retard de m coupsdhorloge correspond donc une division par Xm5.5.3 Circuit de divisionOn donne ci-dessous le schma dun diviseur par g(X) de degr m = n k.Dans ce schma les bascules D sont des lments retard dune unit de temps.Du fait que chaque retard correspond une multiplication par X1, on peut simpli-er le schma de la gure 5.1 pour lui trouver le schma quivalent de la gure 5.2.Montrons tout dabord que le circuit divise u(X) par g(X). En partant du schma5.2 on obtienty(X) = (u(X)+y(X))Xm+g1y(X)X(m1)+g2y(X)X(m2)+. . . +gm1X1En tenant compte du fait que laddition modulo 2 est quivalente la soustractionmodulo 2,y(X)(1 + gm1X1+ gm2X2+ . . . + g1X(m1)+ Xm) = u(X)Xm68 TBA1H. Dedieu Codes polynmiaux cycliquesg1= 12g3= 1 g2= 01 0X1X1X1y(X) u(X)g0= 1 ` ``_`_FIGURE 5.3 Circuit de divisionu(X)X3+X+1)Do en multipliant numrateur et dnominateur par Xm,y(X) =u(X)1 + g1X + g2X2+. . . +gm1X(m1)+ XmLe circuit propos divise bien u(X) par g(X). Soitu(X) = q(X)g(X) + r(X)Alors si u(X) est de degr n aprs n coups dhorloge on a calcul les coefcientsdeq(X). On peut montrer par ailleurs que le reste de la divisionr(X) se trouvestock dans les bascules aprsn + 1 coups dhorloge. Lexercice suivant illustrecette proprit.5.5.3.1 ExerciceSoient les polynmes u(X) = X5+ X + 1 et g(X) = X3+X + 11. Calculer le quotient et le reste de la division de u(X) par g(X).2. Donner le schma du circuit de division.3. Analyser le fonctionnement du circuit de division.5.5.3.2 SolutionLa division ne pose aucun problme, on trouveX5+ X + 1 = (X2+ 1)g(X) + X2Onadoncq(X) =X2+1et r(X) =X2Lecircuitralisantladivisionestreprsent la gure 5.3 Lanalyse du comportement temporel du circuit est donnau tableau 5.5.3.2TBA1 69Codes polynmiaux cycliques H. DedieuCoup dhorloge uiD0D1D2qi0 u5= 1 0 0 01 u4= 0 1 0 02 u3= 0 0 1 03 u2= 0 0 0 1 q2= 14 u1= 1 1 1 0 q1= 05 u0= 1 1 1 1 q0= 16 0 0 = r00 = r11 = r2`_`_`_`

` ` ` g0= 1g1g2 gm1D0D1Dm1c(X)i(X)mk

`_gm= 1FIGURE 5.4 Encodage dun code cyclique systmatique5.5.4 Codeur dun code cycliqueLe schma de codage dun code cyclique se fait en respectant la relationc(X) = i(X)Xnk+ r(X)o r(X) est le reste de la division de i(X)Xnkpar g(X). Le codeur doit effectuerles trois oprations suivantes : multiplication dei(x) parXnk, puis division parg(X), puis addition du produit au reste. Le schma du circuit ralisant ces troisoprations est donn la gure 5.4 Tant que le commutateur se trouve en positionk donc pendantk coups dhorloge, lesk bits dinformation sont en mme tempsenvoy vers le circuit et vers le rcepteur. On bascule ensuite en positionm opendant m = n k coups dhorloge on va envoyer les bits de contrle (reste) versle rcepteur. Montrons quen position k le circuit effectue la