Introduction

 

 

Aujourd'hui les turbo codes sont considérés comme la meilleure méthode d'arrangement pour la correction d'erreur dans la transmission d'informations. Cette technologie extrêmement récente a été introduite pour la première fois à la conférence ICC'93 de Genève par C.Berrou de l'ENST de Bretagne. Depuis, une importante activité c'est développée autour de cette méthode, et deux grandes classes de codes ont vu le jour : les CTC (Convolutional Turbo Codes) et les BTC (Block Turbo Codes).

 

Vue d'ensemble sur les Tubo Codes

Un turbo encodeur est une combinaison de deux encodeurs simples. L'entrée est un bloque d'information sur K bits et ces derniers génèrent des symboles de parité provenant de deux codes de convolution récursifs, chacun ayant un nombre réduit d'état. Les bits de l'information sont aussi envoyés sans avoir été codé.

Le point innovant des turbo codes est l'utilisation d'une variable temporaire interne P, qui permute l'information original K avant d'entrer dans le second encodeur. La permutation P permet que les séquences d'entrée pour chacun des encodeurs produisant des mots de poids faible, induira la production de mots de poids élevés par les autres encodeurs. Ainsi , même si les codes constituant sont individuellement faibles, la combinaison est étonnamment puissante. Le code résultant a des spécificités qui se rapprochent d'un bloque d'information aléatoire contenant K bits.

Les codages en bloque aléatoire réalisent les conditions limites de Shannon, lorsque K devient large. Cependant cela ce paye avec un algorithme de décodage démesurément complexe. En opposition à ces codes les turbo codes atteignent les performances des codages en bloque aléatoire avec un large K, mais utilisent un décodage itératif reposant sur un décodeur individuellement apparié aux simples codes constituant. Chaque décodeur constituant envoi des probabilités estimées des bits décodés aux autres décodeurs, et utilise leurs probabilités à priori. Les bits d'information non codés altérés par le canal bruité, sont disponibles à chacun des décodeurs pour initialiser ses probabilités à priori. Les décodeurs utilisent le " MAP " (Maximum a Posteriori) algorithme de décodage au niveau du bit, utilisant le même nombre d'états que le célèbre algorithme de Viterbi. Le turbo décodeur réitère entre les sorties des deux décodeurs constituant, jusqu'à ce qu'il atteigne une convergence satisfaisante. La sortie finale est une version fortement quantifiée des probabilités estimées de l'un des décodeurs .

Les turbo codes surpassent les codes par concaténation utilisés par le DSN (NASA Deep Space Network ) depuis la mission Voyager sur Neptune. Par exemple, des turbo codes construits à partir de deux codes à 16 états réalisent à un taux d'erreur de l'ordre de 10-5 des rapports signal bruits de bit présenté si dessous aux cadences ½ ¼ et 1/6.

En plus de fournir des performances améliorées, les turbo décodeurs proposent une complexité optimisée en comparaison des décodeurs de Galileo et de Cassini. Le temps de décodage est proportionnel au nombre d'états et au nombre d'itérations, à moins qu'on utilise du matériel spécifique pour calculer en parallèle les états (dans ce cas les performances s'envolent). Le tableau listé plus bas montre que l'ordre de grandeur du nombre d'états pour les turbos décodeurs est inférieur au décodeur de Galileo et de Cassini, et ce avec un nombre modeste d'itérations. La taille de P a des répercutions sur les besoins de buffer et sur le retard, mais pas sur le temps du décodage. Ceci est le point le plus important des performances des turbo codes car les résultats obtenus pour le moment utilisent la même taille de P que pour les décodeurs traditionnels. On peut donc imaginer que les performances de ce type de codage ne pourra qu'augmenter avec l'utilisation de matériel optimisé permettant d'augmenter la taille de P.

nombre d'états nombre d'iterations taille de P (bits)
TURBO CODES 16 + 16 10 16384
Voyager 64 1 8160
Galileo 8192 4 16320
Cassini 16384 1 10200

 

 

 

compléxité des turbo décodeurs

Source : = http://www331.jpl.nasa.gov/public/JPLtcodes.html

 

Liens

http://personal.ie.cuhk.edu.hk/~chankm6/TurboCode/link.html

http://www.ee.virginia.edu/CSL/turbo_codes/

 

http://www.rhrk.uni-kl.de/~lachmund/turbocode.html

Gilémon Villemin

Françis Chuberre

Eric Pouliquen R