Redondance et fiabilitรฉ
ย ย ย ย ย ย ย ย ย ย Tous les codes correcteurs subissent une contrainte du mรชme ordre. Si le message contient une information modifiรฉe, une information supplรฉmentaire est nรฉcessaire pour, soit dรฉtecter l’erreur, soit la corriger. Le message transmis, appelรฉ code est plongรฉ dans un espace plus vaste, le cas d’un code sans redondance est illustrรฉ ร gauche. Si un message en vert subit, lors de sa transmission, une altรฉration, alors un nouveau message en rouge est transmis. Aucune information ne laisse supposer qu’une erreur a รฉtรฉ commise. Pour pallier cet รฉtat, l’objectif est d’entourer les messages licites ou les vrais messages, correspondant aux intersections des quadrillages sur les figures, par des messages connus pour contenir des erreurs, et de rรฉaliser la transmission aprรจs. Ces redondances sont illustrรฉes sur la figure de droite par les intersections du quadrillage orange. Si une unique erreur se produit, alors le message transmis correspond ร un point rouge. Si la redondance a รฉtรฉ habilement construite, alors il n’existe qu’un point licite en vert proche du point rouge reรงu. Un code correcteur propose une gรฉomรฉtrie oรน les messages licites sont le plus possible รฉloignรฉs les uns des autres. Les boules centrรฉes sur les bons codes, si elles ne s’intersectรฉes pas alors elles permettent de retrouver le bon message, correspondant ร son centre. Une perturbation, tant qu’elle reste suffisamment petite pour ne pas faire sortir le code de sa boule est corrigible. Les points noirs ne sont d’aucune utilitรฉ. Il est nรฉcessaire de parcourir deux segments du quadrillage pour relier un point noir d’un point licite. Le code correcteur illustrรฉ engendre alors une ambiguรฏtรฉ. En effet, tous les points rouges sont ร une distance de deux segments de deux points verts, une double erreur n’est donc gรฉnรฉralement pas corrigible. Les points noirs prรฉsentent une redondance inutile.
La longueur des mots de code n
ย ย ย ย ย ย ย ย ย ย Dans les codes, le message est codรฉ en mots de longueur ยซ n ยป. Le but est dโenvoyer des blocs de messages relativement grands car dans ce cas, le nombre d’erreurs se rapproche de son espรฉrance, ce qui implique que la probabilitรฉ d’erreurs est meilleure. Cependant, au niveau du dรฉcodeur, si la complexitรฉ de l’algorithme de dรฉcodage est en On, il faut que ยซ n ยป soit petit afin que le dรฉcodage ne soit pas trop long.
Choix des codes
ย ย ย ย ย ย ย ย ย ย ย Pour former un systรจme concatรฉnรฉ, il faut bien choisir le code externe et le code interne aprรจs avoir pensรฉ le type de dรฉmodulation et la stratรฉgie de protection ร utiliser. Le choix dโun code est en fonction de certains paramรจtres comme :
โข La distance minimale d = 2t+1, oรน 2t permet de savoir le nombre maximum t dโerreurs corrigibles par mot.
โข Le polynรดme de poids qui permet de connaรฎtre lโefficacitรฉ du code.
โข Le taux de redondance qui est gรฉnรฉralement limitรฉ dans les applications.
โข Le type de codage utilisรฉ qui est systรฉmatique ou non.
โข Temps dโattente pour avoir le premier mot dรฉcodรฉ.
โข Dรฉbit, coรปt et volume รฉlectronique, architecture, longueur des blocs dโinformation, gain ร 10-5.
โข Comptabilitรฉ ou non avec la cryptographie.
โข Complexitรฉ de lโรฉlectronique du codeur et du dรฉcodeur.
Gรฉnรฉralitรฉ sur Matlab [10][11][12][13]
ย ย ย ย ย ย ย ย MATLAB ou Matrix laboratoire est un langage de calcul scientifique trรจs performant intรฉgrant le calcul, la programmation et la visualisation dans un environnement simple ร utiliser. Cโest un systรจme interactif qui permet de manipuler directement des donnรฉes structurรฉes (matrices et vecteurs).
Environnement MATLAB est ร la fois un langage et un logiciel. Il possรจde une fenรชtre de commande et un รฉditeur de programme (M-files). Dans lโรฉditeur de programme, plusieurs fenรชtres peuvent รชtre ouvertes ร la fois. Un รฉditeur de figure est aussi disponible pour les graphiques.
Principe du help/dรฉmo Le help de MATLAB est trรจs bien adapte ร l’auto-apprentissage autant thรฉorique (documents pdf)que pratique (help topic ) sur le langage, les fonctions disponibles et les techniques qu’il comporte(notamment grรขce ร ses toolboxes).Taper la commande help permet dโafficher tout le contenu de MATLAB, c’est-ร -dire les familles de fonctions quโ il comporte. Taper help famille affiche toutes les fonctions qui appartiennent ร la famille en question et help fonction donne la dรฉfinition de la fonction, ses options et sa syntaxe.Une documentation pdf plus รฉlaborรฉe est aussi disponible et accessible par la commande HelpDesk. Cette documentation comporte des supports thรฉoriques pour la plupart des techniques offertes par MATLAB notamment via les toolboxes. On pourrait y trouver par exemple des coursthรฉoriques et pratiques sur le traitement du signal, la logique floue, les rรฉseaux de neurones, les ondelettes, ectโฆ
Les fonctions prรฉprogrammรฉes de Matlab MATLAB est dotรฉ dโune collection de fonctions (m-files) prรฉprogrammรฉes spรฉcifiques ร des domaines aussi variรฉs que les statistiques, le traitement du signal et dโimage, la logique floue, les rรฉseaux de neurones, les ondelettes, โฆ et qui permettent de rรฉsoudre un bon nombre de problรจmes relatifs ร ces domaines. Pour visualiser ces fonctions, il suffit de taper help suivi du non de la famille ร laquelle appartient la fonction. Pour connaรฎtre le nom de ces familles taper sur help.
Programmation Toutes les instructions permises par MATLAB peuvent รชtre lancรฉes ร partir de la fenรชtre de commande, il suffit dโรฉcrire ces instructions en respectant leur syntaxe et de taper la touche ยซ enter ยป pour valider. Si nous avons un nombre trรจs rรฉduit dโinstructions ร exรฉcuter, il est en effet possible de les รฉcrire directement dans cette fenรชtre de commande. Toutefois, le plus souvent nous avons besoin dโรฉcrire des programmes assez longs et surtout de sauvegarder ces programmes. Lโรฉditeur de programmes ou de fichiers dโextension .m est fait pour cela. Pour lโactiver, aller dans le menu file et cliquer sur open pour ouvrir un fichier existant ou bien sur new puis M-file si on veut crรฉer un nouveau fichier .m. Pour lancer un programme, on peut soit ร partir de la fenรชtre de programme faire ยซ debug ยป suivi de ยซ run ยป ou bien รฉcrire carrรฉment le nom du programme dans la fenรชtre de commande suivi de ยซ enter ยป.
CONCLUSION GENERALE
ย ย ย ย ย ย ย ย ย ย ย Les codes correcteurs dโerreurs permettent de rรฉduire la puissance moyenne du signal reรงu pour garantir un taux dโerreur binaire donnรฉ. Ceci entraรฎne soit une rรฉduction de la puissance moyenne du signal รฉmis, soit une augmentation de la distance de lโรฉmetteur ou du rรฉcepteur. La performance du turbo-code sโapproche de celle de la thรฉorie avec lโaugmentation de la taille de lโentrelaceur, du nombre dโitรฉrations et aussi du nombre dโรฉtats du codeur. Ceci entraรฎne par consรฉquent une augmentation considรฉrable de la complexitรฉ. Nรฉanmoins le dรฉcodage itรฉratif permet de dรฉcoder un turbo-code de faรงon optimale avec une complexitรฉ moyenne. Dans la simulation dโun turbo-code de rendement ยฝ et avec une taille de lโentrelaceur N=65535, on sโapproche de la limite imposรฉ par Shannon de 0.5 dB. Cโest ร dire quโon a besoin de 0.5dB supplรฉmentaire pour atteindre un taux dโerreur binaire รฉgal ร 10-5 par rapport ร la valeur du rapport signal ร bruit thรฉoriquement nรฉcessaire. On peut amรฉliorer la performance du turbo-code en optimisant soit le design de lโentrelaceur, soit le code constituant en choisissant par exemple un code ร 64 รฉtats ou ร 256 รฉtats. Mais ceci accroรฎt considรฉrablement la complexitรฉ du dรฉcodeur ainsi que le temps de dรฉcodage, qui sont proportionnels au nombre dโรฉtats, dโitรฉrations et de la taille de lโentrelaceur utilisรฉ .Par consรฉquent ce format est inadรฉquat aux communications audio en temps rรฉel. Cโest dans ce sens que nous avons choisi un turbo-code avec un taux de codage moins รฉlevรฉ (de lโordre de 33% ou R=1/3 , mais qui sโadapte trรจs bien aux communications radio mobiles (UMTS ,GSM) .Lโavantage de ce type de turbo-code : il nโest pas nรฉcessaire dโeffectuer un grand nombre dโitรฉrations, et puis la taille de lโentrelaceur utilisรฉe est beaucoup moins grande.Ce qui amรจne ร une possibilitรฉ de simplifier lโalgorithme de dรฉcodage et ainsi de rรฉduire la complexitรฉ du dรฉcodeur. La concatรฉnation parallรจle des codes convolutifs, combinรฉe au dรฉcodage itรฉratif ร entrรฉe et sorties souples est un trรจs bon moyen pour protรฉger lโinformation avec une complexitรฉ raisonnable.Cโest un excellent moyen pour sโapprocher de la capacitรฉ ร trรจs faible rapport signal ร bruit.Les turbo-codes sont maintenant devenus incontournables dans les transmissions numรฉriques et leur utilisation est prรฉconisรฉe dans de plus en plus de normes (CDMA, UMTS,โฆ).
|
Table des matiรจres
REMERCIEMENTS
AVANT-PROPOS
NOTATIONS
INTRODUCTION GENERALE
CHAPITRE I: GENERALITES SUR LA THEORIE DE LโINFORMATION ET DE CODAGE
Introduction [3] [5]
1.1- Thรฉorรจme de Shannon [3
1.1.2- Premier thรฉorรจme de Shannon
1.1.3- Deuxiรจme thรฉorรจme de Shannon
1.2- Thรฉorie de lโinformation et de codage [3] [5]
1.2.1- Dรฉfinition de la thรฉorie de lโinformation [5]
1.2.2- Dรฉfinition de la thรฉorie de code [3]
1.2.3- Buts
1.2.4- Mesure quantitative de lโinformation [5]
1.2.5- Dรฉfinition de lโentropie
1.2.6- Dรฉfinition de lโinformation mutuelle [5]
1.2.7- Dรฉbit de symbole
1.3- Canal de transmission [3][5]
1.3.1- Dรฉfinition dโun canal discret sans mรฉmoire [3][5]
1.3.2- Caractรฉristiques dโun canal de communication [5]
1.3.2.1- Bande passante
1.3.2.2- Capacitรฉ dโun canal ou dรฉbit maximale
1.3.2.3- Signal sur bruit ยซ SNR ยป ou ยซ Eb/No ยป
1.3.2.4- Taux dโerreur binaire ou ยซ TEB ยป
1.3.2.5- Temps de propagation et temps de transmission
1.3.2.6- Les bruits
1.3.3- Canal de transmission classique [4][5]
1.3.3.2- Codage source
1.3.3.4- Codage canal
1.3.3.4- Modulateur
1.3.3.5- Canal de transmission
1.3.3.6- Dรฉmodulation
1.3.3.7- Dรฉcodage canal
1.3.3.8- Dรฉcodage source
CHAPITRE II: LES CODES CORRECTEURS DโERREURS
2.6- Introduction [4][5][6][7][8][9]
2.1- Dรฉfinition dโun code correcteur
2.2- Redondance et fiabilitรฉ
2.3- Caractรฉristiques dโun codeย
2.3.1- La longueur des mots de code n
2.3.2- Le rendement ou taux de codage ou ยซ rate ยป
2.3.3- La probabilitรฉ dโerreurs du code
2.3.4- La complexitรฉ de lโalgorithme dโencodage et de dรฉcodage
2.4- Classification des codes correcteurs [6]
2.5- Les codes convolutifs [4][5][6][8][9
2.5.1- Dรฉfinitions [9]
2.5.2- Reprรฉsentation en Treillis [9]
2.5.3- Diagramme dโรฉtats [8]
2.5.4- Catรฉgories du code convolutif [8]
2.5.5- Algorithme de Viterbi [9]
2.5.6- Distance libre [9]
2.6- Les codes concatรฉnรฉs [4][5][6]
2.6.1- Types de concatรฉnations
2.6.2- Principe de la concatรฉnation
2.6.3- Choix des codes
2.7- Code en bloc [4][5][7]
2.7.1- Notion dโalgรจbre [7]
2.7.2- Dรฉfinition dโun code en bloc [7]
2.7.3- Code en bloc linรฉaire
2.7.4- Les codes cycliques [4][5][6][7]
2.7.5- Les codes BCH ou ยซ Bose, Chaudhuri, Hocquenghem ยป [6][7]
2.7.6- Les codes Reed-Solomon (R-S) [6][7]
2.7.6.1- Dรฉfinition
2.7.6.2- Construction du code
2.7.6.3- Utilisations
CHAPITRE III: LES TURBO-CODE
3.1- Dรฉfinition [2][5]
3.2- Structure [2][5]
3.2.1- Les turbo-codeurs sรฉries [2][5]
3.3.1- Les turbo-codeurs parallรจles [2][5]
3.3- Entrelacement [5]
3.3.1- Entrelaceur ligne โ colonne
3.3.3- Entrelaceur pair/ impair
3.4- Propriรฉtรฉs des Turbo codes
3.4.1- Propriรฉtรฉs de la concatรฉnation sรฉrie [2][5]
3.4.2- Propriรฉtรฉs de la concatรฉnation parallรจle [5]
3.5- Le dรฉcodage itรฉratif des turbos-codes [2] [5]
3.6.1- Dรฉcodage SISO [2][5]
3.6.2- Application du dรฉcodage SISO aux turbo-codes [2][5]
CHAPITRE IV :SIMULATION DU TURBO-CODE PARALLELE SOUS MATLAB
4.1- Gรฉneralitรฉ sur Matlab [10][11][12][13]
4.2- Prรฉsentation du logiciel de lancement
CONCLUSION GENERALE
ANNEXE
BIBLIOGRAPHIE
RENSEIGNEMENTS
RรSUMร
ABSTRACT
Tรฉlรฉcharger le rapport complet