Beruflich Dokumente
Kultur Dokumente
Turbo codes
Turbo codes
Sujet propos par Nicolas Sendrier
mailto:Nicolas.Sendrier@inria.fr, Difficult
: difficile (***).
2 Dtail du sujet
2.1 Interface
Il est demand d'crire
1. un turbo codeur
2. un simulateur de canal binaire symtrique
3. un turbo dcodeur
Le codeur va transformer un fichier de donnes quelconques en un fichier cod (de taille triple environ). Le
simulateur de canal va transformer un fichier cod en un fichier contenant des erreurs binaires (chaque bit du
fichier a une probabilit p d'tre chang, la taille ne change pas). Le dcodeur va transformer un fichier cod
erron en un fichier de donnes (la taille est rduite au tiers). Par exemple:
% coder fichier > fichier.code
% canal fichier.code 0.1 > fichier.err
% decoder fichier.err 0.1 > fichier.dec
% distance fichier fichier.dec
Les deux fichiers diffrent de 23 bits
%
http://www.enseignement.polytechnique.fr/informatique/INF431/ARCHIVES/X04-2006/projets/sendrier/sujet.html
1/9
6/12/2015
Turbo codes
L'tat de la machine au temps t sera un entier, not e(t), compris entre 0 et 2m1. Pour dcrire cette machine
il faut deux fonctions, l'une pour mettre jour l'tat et l'autre pour calculer le symbole de redondance
e(t+1) = E(e(t),u0(t))
u1(t) = S(e(t),u0(t))
avec e(t),e(t+1)[0,2m[ et u0(t),u1(t){0,1}. chaque unit de temps la machine prend en argument un
symbole binaire et en produit un second, le taux de transmission (rapport entre la taille de l'entre et celle de
la sortie) vaut donc 1/2.
Les u0(t) seront appels symboles d'information et les u1(t) symboles de redondance.
http://www.enseignement.polytechnique.fr/informatique/INF431/ARCHIVES/X04-2006/projets/sendrier/sujet.html
2/9
6/12/2015
Turbo codes
Au total ce codeur a un taux de transmission 1/3. Le bloc (u0, u1, u2) de taille 3T constitue le mot de code
qui sera transmis travers le canal de communication.
Si x est le symbole d'entre et y le symbole de sortie, alors le canal est dfini par
Pr(y=0 x=0) = Pr(y=1 x=1) = 1p
Pr(y=0 x=1) = Pr(y=1 x=0) = p
http://www.enseignement.polytechnique.fr/informatique/INF431/ARCHIVES/X04-2006/projets/sendrier/sujet.html
3/9
6/12/2015
Turbo codes
Nous noterons (a,b)=Pr(y=a x=b) la probabilit pour que a soit reu sachant que b a t mis.
2.2.4 Dcodage du code convolutif
Un mot de code (de taille 2T) produit par le codeur convolutif (cf. figure 1)
u0=(u0(0),,u0(T1)), u1=(u1(0),,u1(T1))
est transmis symbole par symbole travers un canal bruit. Nous obtenons
v0=(v 0(0),,v 0(T1)), v1=(v 1(0),,v 1(T1))
Le dcodage consiste calculer la valeur de la probabilit, dite a posteriori, pour que chaque symbole
d'information soit gal 0:
Pr(u0(t)=0 v0, v1), t=0,,T1.
0(t) =
(1)
Le dcodeur prend en arguments les probabilits a priori (de valoir 0) des symboles d'information
p0(t)=Pr(u0(t)=0), t=0,,T1,
ainsi que le mot reu (v0,v1). Il possde en outre une information sur le canal, sous la forme de la fonction
(dcrite la fin de 2.2.3).
Le codeur ne retournera pas les probabilits posteriori (1), mais une quantit appele information
extrinsque
q0(t) = Pr(u0(t)=0 v0,t, v1), t=0,,T1,
(2)
o v0,t = (v l(0), , v l(t1), v l(t+1), , v l(T1)) est le vecteur v0 priv de sa t-me coordonne. Nous
noterons le dcodeur et donc
http://www.enseignement.polytechnique.fr/informatique/INF431/ARCHIVES/X04-2006/projets/sendrier/sujet.html
4/9
6/12/2015
Turbo codes
(v0) q0
o (v0)=((v 0(t),0))0 t<T et l'oprateur s'applique composante par composante des vecteurs. En
pratique, la conditionest simplement un nombre d'itrations (quelques units). Si nous notons q le vecteur
de probabilits retourn, celles-ci vrifient
q(t) Pr(u0(t)=0 v0, v1, v2),
5/9
6/12/2015
Turbo codes
Nous noterons <x,y> le produit scalaire modulo 2 de deux vecteurs binaires x et y de mme longueur. L'tat
du codeur est un vecteur binaire de longueur m
e=(e1,,em).
(3)
u1 = <(e0,e1,,em),h>
(4)
Nous utiliserons les entiers de 0 2m1 pour dsigner les tats. Par exemple, pour dsigner e=(e1,,em)
nous utiliserons l'entier i=l=1m el2l1 dont il est l'criture en base 2. Soient i et u0 un tat initial et une entre,
et j et u1 l'tat final et la sortie correspondante, nous noterons
j = E(i, u0)
i=
(j, u0)
(5)
u1 = S(i, u0)
L'tat initial du codeur est e(0)=0. On calcule, squentiellement, les sorties u1(t) pour t=0,T1. la fin de
cette tape (au temps T) l'tat du codeur est e(T). Pour que le dcodeur fonctionne, il faut revenir l'tat 0.
On ajoute donc une squence de m entres
u0(T),,u0(T+m1)
dtermines de faon unique l'aide de (3) pour que e(T+m)=0. On calcule les sorties u1(t), t=T,,T
m+1, correspondantes.
http://www.enseignement.polytechnique.fr/informatique/INF431/ARCHIVES/X04-2006/projets/sendrier/sujet.html
6/9
6/12/2015
Turbo codes
Finalement, le bloc cod sera de taille 2(T+m) au lieu de 2T. En pratique, l'impact est faible car T est de
l'ordre de quelques milliers alors que m est de l'ordre de quelques units, typiquement m=3.
Pour tout t=1,,T et tout tat 0 i<2m, nous dfinissons i(t) par rcurrence
0(0) = 1 et i(0)=0 pour i0
i(t) =
(i,b)(t1)
(i,b),b(t1)
b=0,1
et
i(T)=0
pour i0
E(i,b)(t+1) i,b(t)
b=0,1
(t,b) =
i(t)
E(i,0)(t+1) (v 1(t),
S(i, b))
0 i<2m
7/9
6/12/2015
Turbo codes
8/9
6/12/2015
Turbo codes
On peu tudier, l'aide de simulations sur un grand nombre de blocs, l'volutions des performances du
dcodeur lorsque les diffrents paramtres voluent. Les paramtres faire voluer sont la probabilit
d'erreur du canal, la taille de bloc, le nombre d'itrations du dcodage. Pour chaque essai, les performances
du dcodeur seront mesure par le taux d'erreur rsiduel binaire, c'est--dire la proportion de symboles faux
aprs le dcodage.
Plus difficile, partir de l'observation de simulations, on peut essayer de dfinir des critres pour de bonnes
permutations.
1
C. BERROU, A. GLAVIEUX, P. THIT IMAJSHIMA. Near Shannon limit error-correcting coding and
decoding : turbo-codes, in Proceedings of ICC'93, Genve, pp. 1064-1070, mai 1993
Ce document a t traduit de LATEX par HEVEA
http://www.enseignement.polytechnique.fr/informatique/INF431/ARCHIVES/X04-2006/projets/sendrier/sujet.html
9/9