59
Présenté par : Mr : CHABANE . M Mlle: ALLALI . N Option : Réseaux & Télécommunication Université TAHRI Mohammed Béchar MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE

Turbo code

Embed Size (px)

Citation preview

Présenté par :

Mr : CHABANE . M

Mlle: ALLALI . N

Option : Réseaux & Télécommunication

Université TAHRI Mohammed

Béchar

MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE

SCIENTIFIQUE

La transmission est perturbée par un bruit et un système de

codage est utilisé pour détecter, ou même corriger les erreurs

provoquées par le bruit. C'est ce qu'on appelle un code correcteur

d'erreurs. Ce mécanisme est utilisé sur tous les moyens de

transmission de données informatiques.

Origine des codes correcteurs d’erreurs : C’est la théorie de l’information initiée par C. Shannon dans les années 50.

[Shannon] Fin des années 40 :

Limites du codage pour les canaux discrets sans mémoire.

Codes aléatoires atteignent cette limite !.

Problèmes :

- constructions explicites ?

- codage efficace ?

- décodage efficace ?

Codage efficace :

codes linéaires

Constructions explicites :

- codes de Hamming.

- codes de Golay, (décodage possible car n = 23).

- codes BCH, (décodage algébrique).

- codes de Reed-Muller, (décodage performant seulement pour les

codes de rendement proches de 0 ou 1).

- codes de Reed-Solomon, (décodage algébrique)..

[Elias,Hamming,Golay,Muller,Reed,Solomon,...] fin des années 40-50

[Elias,Fano, Viterbi, Wozencraft,...] années 50-60

Codage Convolutif :

- constructions explicites,

- codage très efficace.

- quand la mémoire µ du codeur est petite (0 ≤−µ ≤−15) décodage

au maximum de vraisemblance réalisable en temps réel pour tous les

canaux sans mémoire (décodage de Viterbi) !

- quand µ est plus grand, décodage séquentiel avec des

performances proches du décodage au maximum de vraisemblance

en dessous d’un niveau critique du bruit.

La concaténation de codes (Forney, 1966)

Applications : Le décodage est simple à mettre

en œuvre, mais n’exploite pas l’intégralité de

l’information disponible.

Les Turbocodes Convolutifs (Berrou & Glavieux, 1990)

Obtenus par la combinaison de 2 ingrédients clés

Chaque décodeur profite ici d’une information, délivrée par l’autre

décodeur, pour améliorer ses propres décisions (consensus).

La problématique des Codes Correcteurs d’Erreur est la suivante : un

expéditeur A envoie un message M à B, durant la transmission de ce

message des erreurs se produisent éventuellement, et B reçoit un message

M’ qui comporte peut-être des erreurs. Il s’agit de trouver comment faire

pour que B,

1- d’une part détecte l’existence d’erreurs,

2- d’autre part, si elles ne sont pas trop nombreuses, sache les corriger.

les codes de correction d'erreur :

1. Code en Bloc

2. Code Convolution

3. Code Turbo

Techniquement un code de bloc

Fonctionne comme deux codes bloc et Convolutional

1. Codes en blocs (TCB):

Le codage en blocs consiste à associer à un bloc de données d de

k symboles issus de la source d’information un bloc c, appelé

mot de code, de n symboles avec n ≥ k. La différence (n−k)

représente la quantité de redondance introduite par le code. La

connaissance de la règle de codage en réception permet de

détecter et de corriger, sous certaines conditions, des erreurs. Le

rapport k/n est appelé rendement ou taux de codage du code.

2. Les Codes Convolutifs :

ils forment une classe extrêmement souple et efficace de CCE.

Ce sont les codes les plus utilisés dans les systèmes de

télécommunications fixes et mobiles. Contrairement aux codes

en blocs chaque mot du code dépend du message à l’instant t

mais aussi des messages précédents longueur de contrainte .

Le codeur qui génère un code convolutif

comporte un effet mémoire:

Le mot de code ne dépends pas que du bloc

de k symboles entrants, mais aussi des m

codes qui l'on précédé, stocké dans des

registres.Il spécifié par 3parametres (n,k,m)

2.1 Exemple Codeur Convolutif :

2.1 Exemple Codeur Convolutif :

2.1 Exemple Codeur Convolutif :

2.1 Exemple Codeur Convolutif :

Les codeurs convolutifs génèrent un mot de code de

longueur n à partir de plusieurs messages de longueurs k.

- Le rendement du code est :

- La longueur de contrainte du code est : (m+1)

La valeur du mot de code dépend des mots de code calculés

précédemment.

n

kR

2.2 Représentations graphiques de l’encodeur convolutif :

2.2.1 Le graphe d’état :

La distance minimale est le poids du

chemin partant de ‘00’ et y revenant le

plus vite possible : poids=4, dmin=4

2.2 Représentations graphiques de l’encodeur convolutif :

2.2.2 Le treillis:

Le treillis de codage est obtenu en étendant le diagramme d’état dans le temps. Il possède les

propriétés suivantes :

- Chaque sommet correspond à un état du codeur.

- Chaque arc correspond à une transition et a pour étiquette la sortie correspondante du codeur.

- Tout chemin correspond à une séquence codée, obtenue en concaténant les étiquettes.

2.3 Décodeur Veterbi (Hard Décision)

Message Reçu

2.3 Décodeur Veterbi (Hard Décision)

Message Reçu

2.3 Décodeur Veterbi (Hard Décision)

Message Reçu

2.3 Décodeur Veterbi (Hard Décision)

Message Reçu

2.3 Décodeur Veterbi (Hard Décision)

Message Reçu

2.3 Décodeur Veterbi (Hard Décision)

Message Reçu

2.3 Décodeur Veterbi (Hard Décision)

Message Reçu

2.3 Décodeur Veterbi (Hard Décision)

Message Reçu

2.3 Décodeur Veterbi (Hard Décision)

Message Reçu

2.3 Décodeur Veterbi (Hard Décision)

Message Reçu

2.3 Décodeur Veterbi (Hard Décision)

Message Reçu

2.3 Décodeur Veterbi (Hard Décision)

Séquence Reçu : 10 11 01 00 11 10

Séquence Décodé : 00 11 01 00 10 10

Message : 0 1 0 1 1 0

Nature aléatoire des codes convolutifs récursifs .

Potentiellement optimaux pour le codage de canal !!!

Décodage ? : Algorithme de Viterbi, mais décoder 2v états

Solution : Turbo Codage

Créer un codeur équivalent à un codeur convolutif recursif

de v très grand

3.1. Entrelaceurs (Interleavers) :

Existe plusieurs types:

- Entrelaceur ligne colonne.

- Entrelaceur aléatoire.

- Entrelaceur « Pair / Impair ».

ETC ..

3. Turbo Code :

Un Turbo codeur est constitué d’au moins deux codeurs

élémentaires de codes convolutifs systématiques (RSC) codes

séparés par un entrelaceur

3.1.1 Entrelaceur « ligne - colonne » :

3.1.2 Entrelaceur aléatoire

3.2 Exemple de turbo codeur

(Utilisation de 2 codeur systématique et récursive)

3.2.1 Génération de treillis

3.2.2 Exemple pratique 1er codeur

Input Bits: 1010100

3.2.2 Exemple pratique 1er codeur

Input Bits: 1010100

3.2.2 Exemple pratique 1er codeur

Input Bits: 1010100

3.2.2 Exemple pratique 1er codeur

Input Bits: 1010100

3.2.2 Exemple pratique 1er codeur

Input Bits: 1010100

3.2.2 Exemple pratique 1er codeur

Input Bits: 1010100

3.2.2 Exemple pratique 1er codeur

Input Bits: 1010100

3.2.2 Exemple pratique 1er codeur

Input Bits: 1010100

3.1.3 Entrelaceur (Pseudo Aléatoire) :

Input Bits: 1110000

3.2.3 Exemple pratique 2eme codeur

Input Bits: 1110000

3.2.3 Exemple pratique 2eme codeur

Input Bits: 1110000

3.2.3 Exemple pratique 2eme codeur

Input Bits: 1110000

3.2.3 Exemple pratique 2eme codeur

Input Bits: 1110000

3.2.3 Exemple pratique 2eme codeur

Input Bits: 1110000

3.2.3 Exemple pratique 2eme codeur

Input Bits: 1110000

3.2.3 Exemple pratique 2eme codeur

Input Bits: 1110000

3.2.3 Exemple pratique 2eme codeur

3.2.3 Exemple pratique Turbo Décodeur

EL

Coder1

Coder2

/X°

Y2

Y1

Dec2

Dec1

/X

X

Y1

Y2

X

X°EL

R EL

Turbo Codeur

Turbo Décodeur

Quels nouveaux défis pour les Turbo-Codes ?

Optimisation des performances :

Seuil de convergence.

Distance minimale.

Importance de la permutation

Combinaison avec les modulations à haute efficacité spectrale

(modulations turbo-codées) ƒ:

Choix des codes.

Stratégie de mapping, d’entrelacement

Réduction de la latence :

Le décodage analogique semble particulièrement prometteur

à ce niveau !

En résumé

Les Turbocodes ont bouleversé les communications numériques

Réalité des limites théoriques

Principe Turbo = nouvel outil de l’ingénieur

Nouveaux paradigmes de conception des systèmes

Le principe Turbo connaît régulièrement de nouvelles extensions

Turbo-Synchronisation.

Turbo-MIMO (Turbo Space-Time Processing & Coding).

L’accès multiple ! (Interleave Division Multiple Access)

Néanmoins, le principe Turbo n’apporte pas aujourd’hui toutes les réponses. Il doit

donc être utilisé avec circonspection !

Quelques références

« Turbo-codes : some simple ideas for efficient communications » Claude

Berrou, 7th Int. Workshop on DSP Techniques for Deep Space Communications,

October 2001 (http://www.estec.esa.nl/conferences) ƒ

« The ten-year-old turbo-codes are entering into service » Claude Berrou, IEEE

Commun. Mag., August 2003.

ƒ « Closing in on the perfect code » Erico Guizzo, IEEE Spectrum, March 2004.

ƒ « The turbo principle : tutorial and state of the art » Joachim Hagenauer, 1st

Int. Symp. on Turbo-Codes, Brest, September 1997.

ƒ « Turbo equalization » Ralf Kötter, Andrew C. Singer and M. Tüchler, IEEE

Signal Proc. Mag., January 2004.

ƒ « Iterative multiuser detection » Harold V. Poor, IEEE Signal Proc. Mag.,

January 2004.

Illustration du Turbo-Décodage

image reçue

[ Simulations réalisées par Joseph Boutros, ENST, Dépt. COMELEC ]

Après la 1ére itération

de Turbo-Décodage

Après 8 itérations

de Turbo-Décodage