Télécharger le fichier pdf d’un mémoire de fin d’études
Les stratégies FEC
Les stratégies FEC se basent sur l’utilisation de codes permettant la détection, la localisation et la correction des erreurs sans retransmission. Technique largement utilisée dans les canaux unidirectionnels, sa capacité de correction en ligne en fait la plus adaptée aux transmissions orientées hauts débits.
Cependant, le point critique des systèmes FEC réside dans la complexité des circuits de décodage qui pour la plupart se basent sur le principe du maximum de vraisemblance [cf. Théorème de Hamming page 16] et visent à minimiser la probabili té d’erreur de décodage par mot. Plusieurs type de codes, structures de codeur et stratégies de décodage ont étés adoptés selon le type d’application envisagée [2].
Les stratégies Hybride
Les stratégies hybrides ARQ/FEC sont des systèmes ntermédiaires. En effet, leur capacité de correction est supérieure aux stratégies FEC pureset leur débit de traitement supérieur aux stratégies ARQ [2].
Dans le cas de systèmes ARQ en présence d’un canal très bruité, la retransmission des blocs erronés dégrade considérablement le débit. Une solution consiste à intégrer un code correcteur d’erreur dans le système permettant d’améliorer le débit tout en gardant la même capacité de correction.
D’un autre point de vue, si le débit n’est pas un paramètre critique l’association de la retransmission à un système FEC permet d’améliorer les performances de décodage et même de réduire la complexité du décodeur.
LES CODES CORRECTEURS D’ERREURS
Les codes linéaires
Définition
Ce sont des codes où les bits du mot de code dépendent linéairement (selon le OU EXCLUSIF et ET) des bits d’information.
Un code linéaire C de longueur n et de dimension k qu’on note Cn, k, dminest un CGq [cf.
Annexe 2] sous espace vectoriel de dimension k de CGq n [2], [6]. x C et y C ⇒ x y C .
Les caractéristiques d’un code linéaireCn, k, dmin
· La redondance : n-k
· Le rendement de code ou taux de transmission noté R , avec R k n
· Le taux de correction noté T , avec T d min n
· La distance minimale notée dmin qui est égale au poids minimale du code [2].
· La capacité de correction notéet, avec td min1 2 ([ ] la partie entière).
La matrice génératriceG
K mots indépendants forment une base pour sous-espace vectoriel. On appelle matrice génératrice G du code une matrice k ´ n dont k lignes sont les k mots de sa base [1]. c = i × G (2.01)
Avec cc1, c2,KKcn et ii1, i2,KKik
c : le mot de code.
i : le mot d’information.
G : la matrice génératrice du code.
La base d’un espace vectoriel n’est pas unique, alo rs un code Cn, k pourrait avoir plusieurs matrices génératrices [2].
La forme canonique réduite :
Elle résulte de la combinaison linéaire sur les lignes de la matrice génératriceC .
Elle est composée d’une matrice unitaire de dimension k , et d’une matrice A de dimension k , r du type : G’ = Ik M Ak,r (2.02)
Voici deux méthodes de décodage les plus souvent utilisées pour les codes convolutionnels.
Avec l’algorithme de Viterbi, on préfère suivre lastructure de treillis, car avec, la complexité des calculs se stabilise à 2m .
Dans l’exemple suivant on suppose que le démodulateur fournit des 0 et des 1 (décision dure). A chaque fois qu’un groupe de deux éléments binaires arrive, on examine toutes les branches possibles du treillis, on calcule la distance entre les éléments binaires affectés aux branches et les éléments binaires reçus et on ne garde que les branches donnant lieu à une distance minimale (ces branches forment le chemin survivant), et on affecte l’extrémité du chemin survivant d’une métrique égale à la somme de la métrique précédenteet de la distance de la branche retenue.
· Les données reçues : 11 00 11 11.
· Les données avant codage : 1001.
· Les données après codage : 11 10 11 11.
⇒ Il y a eu une erreur de transmission
Le mot reçu est erroné lors du passage dans le canal. Voici une proposition de processus de décodage et correction en utilisant l’algorithme de Viterbi.
Les rendements des codes les plus souvent utilisés ont la forme de 1 n , donc très faibles, d’ailleurs, on voit rarement des codes convolutionnels de rendement inférieur à 1 2 .
Ainsi, pour fabriquer des codes convolutionnels de rendement supérieur on utilise des codes poinçonnés obtenus par une suppression d’un bit de sortie périodiquement.
C’est aussi le poids de la séquence de sortie la plus légère (au sens de Hamming) pour une séquence d’entrée non nulle.
Après des nombreuses années d’étude approfondie surles codes concaténés, les turbo codes ont été inventés en 1991, et présentés à la communautéscientifique en 1993, par une équipe de l’Ecole Nationale Supérieure des Télécommunications de Brest (Bretagne) dirigée par Claude Berrou et Alain Glavieux [14].
Bien que dans le concept général, qui tient comptedu libre choix sur les codeurs utilisés et ceux des entrelaceurs, la plupart des conceptions suivent les mêmes idées que [15] :
· Les deux codeurs utilisés sont identiques.
· Le code doit être systématique c’est-à-dire que lesbits d’informations doivent figurer à l’une des sorties.
· L’entrelaceur lit les bits dans un ordre pseudo-aléatoire.
Le logiciel MATLAB (MATrix LABoratory) est un produit de Math Work. Les bibliothèques spécialisées ou Communications Toolbox renferment des fonctions matlab et des librairies de bloc simulink qui mettent à disposition touts les outils nécessaires pour la réalisation des analyses numériques, des traitements de signal,… et aussi pour des modélisations des systèmes.
Présentation de la simulation
Cette simulation illustre comment un code convolutif et un code turbo réduisent les taux d’erreurs binaires pour des différentes valeurs de l’Eb/No (ou RSB).
Ces valeurs caractérisent la puissance du code utilisé. Plus ces valeurs diminuent pour tendre vers 0 , et en même temps les taux d’erreurs binaires tend vers 0 , veut dire que notre code est plus performant.
La manipulation se procède comme ceci : la fenêtre d’accueil ci-dessous apparaît après l’exécution du programme. Elle nous propose deux menus dont le menu « fichier » nous mène vers les évaluations et le menu « aide » offre l’aide de MATLAB.
Dans le menu fichier, le sous menu « évaluer » propose deux choix dont le premier évalue la performance des codes turbo et le deuxième celui des codes convolutionnels.
L’évaluation pour les codes convolutionnels
Pour le choix d’évaluer les codes convolutionnels, la fenêtre ci-dessous s’ouvre.
Cette fenêtre renferme trois menus dont le menu « fichier » est utilisé pour la réinitialisation de tous les paramètres, et le retour au menu principal, le second menu « simulation » a pour rôle de commencer la simulation quand touts les paramètres au niveau codeur, du canal, et du décodeur sont bien remplis et valables, et le troisième menu « aide » qui propose des valeurs typiques c’est- à-dire des valeurs exactes pour ceux des polynômes générateurs utilisées correspondant à la longueur de contrainte utilisée.
Faut bien reconnaître que si les valeurs entrées sont inexactes, la simulation le signal par des boîtes de dialogues messag
Prenons pour une longueur de contrainte 2 et 5 de rendement 2/1 à 8/7 la décroissance des taux d’erreurs binaires pour des Eb/No de 1dB jusqu’à 3dB . Sur les ordonnées se trouvent les TEB et ceux des abscisses les Eb/No.
On voit bien la décroissance des TEB pour une augmentation du rendement de code et celle des longueurs de contraintes.
On constate aussi que les codes convolutionnels sont faibles en terme de pouvoir de correction des erreurs pour des Eb/No inférieure à 1dB , et qu’à une valeur de l’Eb/No de 3dB et plus que le taux d’erreur binaire est tolérable.
L’évaluation pour les turbo codes
Pour l’évaluation des codes turbo, on a recours à la création d’un modèle sous MATLAB, qui modélise un système de communication numérique. Tous les éléments sur ce modèle ont été créés par inspiration des méthodes de codage et de décodage des codes turbo développés dans les études théoriques.
Les résultats engendrés sont des résultats numériques mais non pas graphiques. Ces résultats qui sont les taux d’erreur binaire seront affichés via des blocs nommés « Display ». Le premier bloc (sur la figure ci-dessous) c’est-à-dire celui en haut n’affiche pas les résultats qu’à la fin du nombre d’itération que le manipulateur a spécifié, par contre celui en bas affiche pour chaque itération le taux d’erreur binaire calculé.
|
Table des matières
INTRODUCTION
CHAPITRE 1 LE SYSTEME DE COMMUNICATION NUMERIQUE
1.1 Introduction
1.2 Le codage de canal
1.2.1 Types de codage de canal
1.2.2 Le second théorème de Shannon
1.2.3 Les caractéristiques d’un code utilisé par un codeur canal
1.2.4 Les paramètres d’un code utilisé par un codeur canal
1.2.5 Les mesures de qualité d’un code utilisé par un codeur canal
1.2.6 La configuration des erreurs
1.3 Le décodage de canal
1.3.1 Les stratégies ARQ
1.3.1.1 Les systèmes ARQ avec arrêt et attente
1.3.1.2 Les systèmes ARQ continue
1.3.2 Les stratégies FEC
1.3.3 Les stratégies Hybride
1.3.4 Comparaison des stratégies de codage canal
1.4 Conclusion
CHAPITRE 2 LES CODES CORRECTEURS D’ERREURS
2.1 Les codes linéaires
2.1.1 Définition
2.1.2 Les caractéristiques d’un code linéaire C(n,k,dmin )
2.1.3 La matrice génératrice G
2.1.4 Le contrôle de parité
2.1.4.1 Le code dual C ⊥ de C
2.1.4.2 La matrice de contrôle ou de parité H
2.1.5 La distance minimale dmin
2.1.6 Les différents types de code linéaire
2.1.6.1 Les codes étendus et codes tronqués
2.1.6.2 Les codes M.D.S ou Maximum distance Séparable
2.1.6.3 Les codes simplexes
2.1.6.4 Les codes de HAMMING
2.1.7 Le décodage des codes linéaires
2.1.7.1 La notion de syndrome
2.1.7.2 Le décodage par le tableau standard
2.1.7.3 Le décodage par maximum de vraisemblance : Le théorème de Hamming
2.2 Les codes convolutionnels
2.3.1 Introduction
2.3.2 Le codeur convolutif
2.3.2.1 Le registre à décalage
2.3.2.2 Le fonctionnement du circuit
2.3.3 Les représentations des codes convolutionnels
2.3.3.1 Le diagramme d’état
2.3.3.2 La structure d’arbre
2.3.3.3 La représentation en treillis
2.3.4 Le décodage des codes convolutionnels
2.3.4.1 Le décodage par l’algorithme de Viterbi
2.3.4.2 Le décodage séquentiel
2.3.5 Les codes convolutionnels poinçonnés
2.3.6 La distance libre
2.3 Conclusion
CHAPITRE 3 LES TURBO CODES
3.1 Introduction
3.2 Le turbo codeur
3.2.1 La construction de l’entrelaceur
3.2.1.1 L’entrelaceur en bloc
3.2.1.2 L’entrelaceur pseudo-random
3.2.1.3 L’entrelaceur Circular-Shifting
3.2.1.4 L’entrelaceur Odd-even
3.2.1.5 L’entrelaceur S-random
3.2.2 Un schéma complet d’un turbo codeur
3.3 Le turbo décodeur
3.3.1 Généralités
3.3.2 Le sens du MAP
3.3.3 La description de l’algorithme BCJR
3.3.4 L’information extrinsèque
3.4 La performance d’un turbo code
3.5 Conclusion
CHAPITRE 4 LA SIMULATION
4.1 Le logiciel Matlab
4.2 Présentation de la simulation
4.2.1 L’évaluation pour les codes convolutionnels
4.2.2 L’évaluation pour les turbo codes
4.2.2.1 Le rôle de chaque bloc
4.2.2.2 Les résultats
4.3 Conclusion
CONCLUSION
ANNEXE 1 LA THEORIE DE L’INFORMATION
ANNEXE 2 LES CORPS FINIS
ANNEXE 3 APPLICATION DES TURBO CODES
BIBLIOGRAPHIE
Télécharger le rapport complet