LE SYSTEME DE COMMUNICATION NUMERIQUE

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 Cn, k, dminest un CGq [cf.
Annexe 2] sous espace vectoriel de dimension k de CGq n [2], [6]. x C et y C ⇒ x y C .

Les caractéristiques d’un code linéaireCn, 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 td min1 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 cc1, c2,KKcn et ii1, 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 Cn, 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)

Le codeur convolutif
Un codeur convolutif binaire est défini à l’aide de trois paramètres, v le nombre de sorties, k le nombre d’entrées et m la taille de la mémoire. A chaque unité de temps,le codeur lit k bits d’information et produit v bits codés (nous avonsv f k ). La sortie au temps t dépend des entrées aux temps t ,t-1 ,t-2 ,……., t-m .
La longueur de contrainte du codeur est égale à k ×m + 1 qui représente le nombre maximum de bits associé à une sortie provenant d’un bit quelconque de l’entrée.
Soit L le nombre de bits d’informations, le rendement R (taux de codage) est [3] : R = k × L (2.15)
vL +m-1- k
Pour L ff m , on peut écrire : R = k (2.16)
Les k signaux binaires entrent dans v registres à décalage de m étages. Côté sortie, v opérateurs Ou Exclusif élaborent v combinaisons linéaires à partir des bascules des registres.
Le registre à décalage
Un registre à décalage est un outil électronique ouinformatique de taille fixe dans lequel les bits sont décalés à chaque coup d’horloget du système. Chaque registre est formé de bascule qui permettent de stocker un bit0;1 et qui à chaque temps d’horloge fait sortir l’information qu’elle contient [11].
Le fonctionnement du circuit
On commence par remettre à zéro les bascules des registres. Puis on fait entrer k bits d’information, un dans le premier étage de chaque registre, en suivant, toujours le même ordre. Les combinaisons linéaires s’élaborent immédiatement, et on fera sortir les v bits correspondant, toujours dans le même ordre.
Afin d’exploiter, au moment du décodage, toute redondance contenue dans le mot codé, on fait suivre le message (mot d’information) de k ×m-1 zéros que l’on nomme queue du message. Par ailleurs, le dispositif sera alors initialisé pourle codage d’un nouveau bloc de message [2].
Les codes les plus utilisés sont des codes 1 v , et ne font intervenir qu’un seul registre.
Le décodage des codes convolutionnels
La difficulté au niveau du décodage des codes convolutionnels réside sur le fait que le mot de code et le mot reçu sont généralement très longs.
Voici deux méthodes de décodage les plus souvent utilisées pour les codes convolutionnels.
Le décodage par l’algorithme de Viterbi
L’idée au départ est de calculer la distance entrele mot reçu et chacun des mots codés possibles et décider de quel mot codé le mot reçu se trouve le plus près (c’est donc un décodage par maximum de vraisemblance [cf. Le décodage par maximum de vraisemblance page 16]).
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.
Le décodage séquentiel
Les codes convolutionnels s’améliorent lorsque m augmente. Alors qu’on savait que pour l’algorithme de Viterbi, le calcul se stabilise à 2m , ce qui devient complexe pour une longueur de contrainte élevée, par contre, les algorithmes de écodage séquentiel, n’explorent pas systématiquement tous les chemins, donc ils sont mieux adaptés pour les codes dont la longueur de contrainte est importante.
Voici deux algorithmes de décodage séquentiel pourles codes convolutionnels.
L’algorithme de Fano
L’algorithme suit la structure d’arbre. A chaque nœ ud (cf. [Structure d’arbre page 23]), on calcule les distances correspondant aux deux successeurs, et l’on poursuit dans la direction dont la distance est faible [2].
Quand on suit un faux chemin, la seule solution c’est de faire retours dans l’arbre, alors que l’on ne peut jamais savoir jusqu’où l’on doit retourner pour retrouver le bon chemin.
L’algorithme à piles ou algorithme ZJ
Zigangrov en URSS et Jelinek aux Etats-Unis ont trouvé, pratiquement une amélioration de l’algorithme de Fano au moment même où celui-ci apparut.
Son principe se base sur l’utilisation du système de piles (comme la structure de donnée en informatique), pour la gestion des retours en arrière dans l’arbre [2].
Voici un exemple : Soit xt0 1 1 Soit et01 00
0 LL, on aura à la sortie du codeur  y t00  11  01  01  LL
01 00  LL l’erreur de transmission.
Le mot reçu est donc  y t Å01  11  00   01  LL. ti  = dy tr , y t Å- × n(2.20)
AvecpB  p 1 2 , et  pB  est la probabilité d’erreurs bits, est une constante.
Si tiaugmente, alors on considère que le chemin est incorrect.
Prenons 1 2 et n 2 , ce qui donne × n = 1
Les codes convolutionnels poinçonnés
Nous savons que plus le rendement est faible et plus la longueur de contrainte est grande, plus le code est performant. Mais, plus le rendement est faible, plus la largeur de bande nécessaire à la transmission doit être importante.
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.
La distance libre
C’est la borne inférieure des distances de Hamming que l’on peut trouver entre toutes les séquences qui peuvent sortir du codeur [2].
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.
Conclusion
Les codes correcteurs d’erreurs assurent la suppression de tous les bruits qui viennent s’ajouter au message envoyé pour que le destinataire puisse récupérer l’original. Leurs performances en capacités de corrections et de détections d’erreursaugmentent avec la distance minimale du code. La différence entre les codes correcteurs en bloc linéaires et les codes correcteurs convolutifs qui se présente sur la façon dont chacun traite les informations donne un avantage pour les codes convolutionnels qui traitent les informations en flux de données par rapport aux codes en blocs linéaires qui eux dépendent de la longueur du message à transmettre.
LES TURBO CODES
Introduction
Depuis longtemps, les chercheurs ont étudié sur lafaçon dont on pourrait enfin atteindre la limite de Shannon.
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].
Le turbo codeur
En général, un turbo codeur est constitué de deuxodeursc concaténés parallèlement, qui grâce à cette concaténation rend sa performance plus haute.
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

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é.

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela chatpfe.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

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

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *