Vous êtes sur la page 1sur 408

Codes et turbocodes

Springer
Paris
Berlin
Heidelberg
New York
Hong Kong
Londres
Milan
Tokyo
Ouvrage crit sous la direction de
Claude Berrou

Codes et turbocodes
Claude Berrou
cole Nationale Suprieure des Tlcommunications de Bretagne
CS 83818
29238 Brest Cedex 3

ISBN 13 : 978-2-287-32739-1 Springer Paris Berlin Heidelberg New York

Springer-Verlag France 2007


Printed in France
Springer-Verlag France est membre du groupe Springer Science + Business Media

Cet ouvrage est soumis au copyright. Tous droits rservs, notamment la reproduction et la reprsentation, la traduc-
tion, la rimpression, lexpos, la reproduction des illustrations et des tableaux, la transmission par voie denregistre-
ment sonore ou visuel, la reproduction par microfilm ou tout autre moyen ainsi que la conservation des banques
donnes. La loi franaise sur le copyright du 9 septembre 1965 dans la version en vigueur nautorise une reproduction
intgrale ou partielle que dans certains cas, et en principe moyennant les paiements des droits. Toute reprsentation,
reproduction, contrefaon ou conservation dans une banque de donnes par quelque procd que ce soit est sanctionne
par la loi pnale sur le copyright.
Lutilisation dans cet ouvrage de dsignations, dnominations commerciales, marques de fabrique, etc., mme sans
spcification ne signifie pas que ces termes soient libres de la lgislation sur les marques de fabrique et la protection
des marques et quils puissent tre utiliss par chacun.
La maison ddition dcline toute responsabilit quant lexactitude des indications de dosage et des modes demplois.
Dans chaque cas il incombe lusager de vrifier les informations donnes par comparaison la littrature existante.

SPIN: 11682165

Maquette de couverture : Jean-Franois MONTMARCH


Illustration de couverture : Jean-Nol JAFFRY
Liste des contributeurs

Cet ouvrage a t rdig sous la direction de Claude Berrou avec la contribution


de :

Karine Amis,
Matthieu Arzel,
Catherine Douillard,
Alain Glavieux ,
Frdric Guilloud,
Michel Jzquel,
Sylvie Keroudan,
Charlotte Langlais,
Christophe Laot,
Raphal Le Bidan,
meric Maury,
Samir Saoudi,
Yannick Saouter,
tous de lcole nationale suprieure des tlcommunications de Bretagne,

Grard Battail,
de lcole nationale suprieure des tlcommunications,

Emmanuel Boutillon,
de lUniversit de Bretagne Sud,

et avec le concours prcieux de Mohamed Kouba et de Nicolas Puech.


Les deux mots les plus brefs et les plus anciens, oui et non, sont ceux qui
exigent le plus de rexion

Pythagore, Ve sicle av. J.C.

nos regretts collgues et amis Alain Glavieux et Grard Graton.


Avant-propos

Cest un double big bang qui a ouvert ce que lon appelle communment au-
jourdhui lre de linformation. Nous sommes en 1948 et les tats-Unis dAm-
rique continuent dinvestir massivement dans la recherche de haute technologie,
dont ils ont tir les premiers bnces durant le conit mondial. Dans les Bell
Telephone Laboratories, installs dans le New Jersey, au sud de New York,
plusieurs quipes se sont constitues autour de brillants chercheurs, pour beau-
coup forms au MIT (Massachusetts Institute of Technology). Cette anne-l se
produisent deux dcouvertes exceptionnelles, lune technologique, lautre tho-
rique, qui vont profondment marquer le 20me sicle. Cest en eet quelques
mois dintervalle et dans le mme tablissement que John Bardeen, Walter
Brattain et William Shockley inventent le transistor et que Claude Elwood
Shannon tablit la thorie de linformation et des communications numriques.
Prodigieuse concidence qui fait natre comme presque jumeaux le composant
semi-conducteur qui, suivant son tat de conduction (ouvert ou ferm), est
capable de reprsenter matriellement une information binaire (0 ou 1) et le
shannon ou bit (contraction de binary unit), unit de mesure de linformation.
On mesure bien aujourdhui toute limportance de ces deux inventions qui
ont permis le formidable essor de linformatique et des tlcommunications,
entre autres. Depuis 1948, les fulgurants progrs de llectronique, puis de la
micro-lectronique, ont oert aux ingnieurs et chercheurs du monde des t-
lcommunications le support de leurs innovations, pour accrotre, toujours et
toujours, les performances de leurs systmes. Qui aurait pu imaginer, il y a
peu, quun programme de tlvision pourrait tre transmis par une paire de ls
tlphoniques ? En somme, Shockley et ses collgues, travers la loi de Gordon
Moore (doublement, tous les 18 mois, du nombre de transistors dans une mme
surface de silicium), ont apport petit petit les moyens de rpondre aux ds
lancs par Shannon, grce des algorithmes qui ne pouvaient tre que de plus
en plus complexes. Un exemple typique en est linvention, plutt tardive, des
turbocodes et des traitement itratifs dans les rcepteurs, qui ne purent tre
imagins que parce que les dizaines ou centaines de milliers de transistors requis
taient disponibles.
x Codes et turbocodes

Les experts de la micro-lectronique prvoient comme bute nale de la


technologie CMOS, vers 2015, autour de trois milliards de transistors par cen-
timtre carr. Cest lordre de grandeur du nombre de neurones dans le cerveau
humain (qui restera cependant incomparablement plus puissant, du fait de son
extraordinaire rseau de connexions - plusieurs milliers de synapses par neu-
rone). Des milliards de transistors dans une mme puce, cela veut dire que les
algorithmes les plus exigeants en ressources calculatoires, au moins parmi ceux
qui sont connus aujourdhui, y trouveront leur place sans jouer des coudes. Pour
reprendre le slogan dun fabricant de circuits intgrs : la limitation nest pas
dans le silicium, elle est dans votre imagination . Pour tre honnte, prcisons
quand mme que la conception et le test de ces fonctions complexes seront loin
dtre aiss.
Cependant nous sommes dj bien loin de lpoque o Andrew Viterbi, pour
conclure la prsentation de son fameux algorithme, en 1967, achait un scep-
ticisme la mesure de sa modestie : Bien que cet algorithme soit irraliste
du fait des contraintes excessives de mmorisation, il contribue une compr-
hension gnrale des codes convolutifs, travers sa simplicit opratoire et son
analyse [1]. Un dcodeur de Viterbi, cest aujourdhui seulement un dixime
de millimtre carr de silicium dans un tlphone portable.
Parmi les rsultats prsents par Shannon dans la publication fondatrice
[2], celui-ci est particulirement tonnant : dans une transmission numrique
en prsence de perturbation, si le niveau moyen de celle-ci ne dpasse pas un
certain seuil de puissance et en utilisant un codage appropri, le rcepteur peut
identier le message dorigine sans aucune erreur. Par codage, on entend ici,
comme dans la totalit du livre, codage correcteur derreurs, cest--dire cri-
ture redondante de linformation binaire. Le codage de source (compression
numrique), le codage cryptographique, ou tout ce que le mot codage peut
avoir comme autre signication, ne sont pas traits dans Codes et turbocodes.
Le rsultat thorique tabli par Shannon a constitu pour des milliers de
chercheurs et dingnieurs un d scientique majeur car lenjeu conomique
est considrable. Amliorer le pouvoir de correction dun code, cest mme
qualit dinformation reue (par exemple, pas plus dune information binaire
fausse sur 10.000 reues en tlphonie numrique), permettre au systme de
transmission de fonctionner dans des conditions plus svres. Il est alors pos-
sible de rduire la taille des antennes, le poids des batteries dalimentation ou
lencombrement des panneaux solaires. Dans les systmes spatiaux (satellites,
sondes, ...), lconomie peut se chirer en dizaines de millions de dollars, car
le poids des quipements et la puissance du lanceur sen trouvent notablement
rduits. Dans les systmes cellulaires de tlphonie mobile, amliorer le code,
cest aussi permettre loprateur daugmenter le nombre dutilisateurs poten-
tiels dans la cellule. Aujourdhui, rares sont les systmes de tlcommunications
qui nintgrent pas dans leur spcication un code correcteur derreurs.
Avant-propos xi

Un autre domaine dapplications des codes correcteurs est celui des m-


moires de masse : disques durs dordinateurs, CD-ROM, DVD, ... Les progrs
raliss ces dernires annes sur la miniaturisation des motifs lmentaires de
mmorisation, magntiques ou optiques, se sont accompagns dune dgrada-
tion invitable des nergies disponibles lors de la lecture des donnes et donc
dune plus grande vulnrabilit aux perturbations. A cela sajoutent des eets
accrus dinterfrences entre voisins. Lutilisation de techniques dj prouves
dans les systmes de tlcommunications, codage et galisation notamment,
savre aujourdhui indispensable pour contrer les eets induits par la miniatu-
risation de ces dispositifs de stockage. Bien que Codes et turbocodes naborde
pas explicitement ces applications, les concepts quon y trouve dvelopps, les
algorithmes qui y sont prsents sont aussi dune grande actualit dans lindus-
trie des mmoires de masse.
Cet ouvrage est donc principalement consacr au codage correcteur der-
reurs, encore appel codage de canal, et ses applications aux communications
numriques, en association avec les modulations. Les principes gnraux de
lcriture redondante de linformation et la plupart des techniques imagines
jusquen 1990 pour protger les transmissions numriques, sont prsents dans
la premire moiti du livre (chapitres 1 6). Dans cette premire partie, un
chapitre est galement ddi aux direntes techniques de modulation, sans
lesquelles les signaux cods ne pourraient tre vhiculs dans les milieux rels
de transmission. La deuxime partie (chapitres 7 11) est consacre aux tur-
bocodes, invents plus rcemment (1990-93), et dont le pouvoir de correction,
qui avoisine les limites thoriques prdites par Shannon, en fait un standard
de codage dans des applications de plus en plus nombreuses. Direntes ver-
sions de turbocodes, ainsi que la famille des codes LDPC, sont prsentes.
Enn, certaines techniques utilisant les principes du turbo-dcodage, telles que
la turbo-galisation et la turbo-dtection multi-utilisateurs, sont introduites en
n douvrage.
Une caractristique particulire de ce livre, par comparaison avec la manire
dont peut tre ailleurs abord le problme du codage, est le souci de lapplica-
tion. Les aspects mathmatiques ny sont traits que par ncessit et certains
rsultats, qui reposent sur des dveloppements complexes, devront tre admis.
En revanche, les considrations pratiques, en particulier sur les algorithmes et
les circuits de traitement, y sont largement dtailles et commentes. De nom-
breux exemples de performance sont fournis, pour dirents schmas de codage
et de modulations codes.
Les auteurs du livre sont des enseignants-chercheurs reconnus pour leur
expertise dans le domaine des algorithmes et des circuits associs pour les com-
munications. Ils sont notamment lorigine des turbocodes et de la gnralisa-
tion de leet turbo aux direntes fonctions de traitement de linformation
dans les rcepteurs. Un soin particulier a t apport dans la rdaction de cet
ouvrage collectif, vis--vis de lunit de vue et de la cohrence des notations.
Certains concepts, identiques ou similaires, peuvent toutefois y tre introduits
xii Codes et turbocodes

plusieurs reprises et de direntes manires, ce qui esprons-le nenlve


rien la pdagogie de louvrage car celle-ci est lart de la rptition. Codes et
turbocodes a t pens pour tre la fois un livre de dcouverte du codage et
du dcodage correcteur derreurs, une source prcieuse dinformations sur les
nombreuses techniques imagines depuis le milieu du vingtime sicle, et une
ouverture vers des problmes non encore compltement rsolus.

Brest, Octobre 2006


Claude Berrou

[1] A. J. Viterbi, "Error Bounds for Convolutional Codes and an Asymptoti-


cally Optimum Decoding algorithm", IEEE Trans. Inform. Theory, vol. IT-13,
pp. 260-269, Apr. 1967.
[2] C. E. Shannon, "A Mathematical Theory of Communication, Bell Sys-
tem Technical Journal, Vol. 27, July and October 1948.

Nota Bene : tout commentaire sur le contenu de cet ouvrage peut tre envoy
ladresse lectronique suivante : turbocode@mlistes.enst-bretagne.fr
Sommaire

Liste des contributeurs v

Avant-propos ix

1 Introduction 1
1.1 Messages numriques . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Un premier code . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Dcodage entre ferme et dcodage entre souple . . . . . . 8
1.4 Dcodage sortie ferme et dcodage sortie souple . . . . . . 11
1.5 La mesure de performance . . . . . . . . . . . . . . . . . . . . 12
1.6 Quest-ce quun bon code ? . . . . . . . . . . . . . . . . . . . . 15
1.7 Les familles de codes . . . . . . . . . . . . . . . . . . . . . . . 17

2 Communications numriques 19
2.1 Modulations Numriques . . . . . . . . . . . . . . . . . . . . . 19
2.1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.2 Modulations Linaires Sans Mmoire . . . . . . . . . . . 22
2.1.3 Modulations de frquence sans mmoire M tats : MDF-
M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.1.4 Modulations avec mmoire par dplacement de frquence
phase continue : MDF-M PC . . . . . . . . . . . . . . 31
2.2 Structure et performances du rcepteur optimal sur canal gaussien 37
2.2.1 Structure du rcepteur cohrent . . . . . . . . . . . . . . 38
2.2.2 Performances du rcepteur cohrent . . . . . . . . . . . 42
2.3 Transmission sur canal bande limite . . . . . . . . . . . . . 59
2.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 59
2.3.2 Linterfrence entre symboles . . . . . . . . . . . . . . . 60
2.3.3 Condition dabsence dIES : critre de Nyquist . . . . . 63
2.3.4 Expression de la probabilit derreur en prsence de l-
trage de Nyquist . . . . . . . . . . . . . . . . . . . . . . 68
2.4 Transmission sur canal vanouissements . . . . . . . . . . . . 70
2.4.1 Caractrisation dun canal vanouissements . . . . . . 70
xiv Codes et turbocodes

2.4.2 Transmission sur canal non slectif en frquences et


vanouissements lents . . . . . . . . . . . . . . . . . . . 73

3 Limites thoriques 83
3.1 La thorie de linformation . . . . . . . . . . . . . . . . . . . . 83
3.1.1 Canal de transmission . . . . . . . . . . . . . . . . . . . 83
3.1.2 Un exemple : le canal binaire symtrique . . . . . . . . 84
3.1.3 Aperu sur le thorme fondamental du codage . . . . . 86
3.1.4 Interprtation gomtrique . . . . . . . . . . . . . . . . 88
3.1.5 Codage alatoire . . . . . . . . . . . . . . . . . . . . . . 88
3.2 Limites thoriques de performance . . . . . . . . . . . . . . . . 91
3.2.1 Canal entre binaire et sortie relle . . . . . . . . . . . 91
3.2.2 Capacit dun canal de transmission . . . . . . . . . . . 92
3.3 Limites pratiques de performance . . . . . . . . . . . . . . . . 96
3.3.1 Canal gaussien entre binaire . . . . . . . . . . . . . . 97
3.3.2 Canal gaussien entre continue . . . . . . . . . . . . . 98
3.3.3 Quelques exemples de limites . . . . . . . . . . . . . . . 100
3.4 Distances minimales requises . . . . . . . . . . . . . . . . . . . 101
3.4.1 DMH requise avec la modulation MDP-4 . . . . . . . . 101
3.4.2 DMH requise avec la modulation MDP-8 . . . . . . . . 103
3.4.3 DMH requise avec la modulation MAQ-16 . . . . . . . . 105
3.5 Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

4 Codes en bloc 109


4.1 Les codes en blocs symboles binaires . . . . . . . . . . . . . . 110
4.1.1 Matrice gnratrice dun code en blocs binaire . . . . . 110
4.1.2 Code dual et matrice de contrle de parit . . . . . . . . 113
4.1.3 Distance minimale . . . . . . . . . . . . . . . . . . . . . 113
4.1.4 Codes tendus et codes raccourcis . . . . . . . . . . . . 115
4.1.5 Codes produits . . . . . . . . . . . . . . . . . . . . . . . 115
4.1.6 Exemples de codes en blocs binaires . . . . . . . . . . . 116
4.1.7 Les codes cycliques . . . . . . . . . . . . . . . . . . . . . 120
4.2 Les codes en blocs symboles non binaires . . . . . . . . . . . 130
4.2.1 Les codes de Reed-Solomon . . . . . . . . . . . . . . . . 130
4.2.2 Mise en oeuvre du codeur . . . . . . . . . . . . . . . . . 131
4.3 Dcodage et performances des codes symboles binaires . . . 132
4.3.1 Dtection derreur . . . . . . . . . . . . . . . . . . . . . 132
4.3.2 Correction des erreurs . . . . . . . . . . . . . . . . . . . 134
4.4 Dcodage et performances des codes symboles non binaires . 143
4.4.1 Dcodage entre ferme des codes de Reed-Solomon . . 143
4.4.2 Mthode directe de Peterson . . . . . . . . . . . . . . . 144
4.4.3 Mthode itrative . . . . . . . . . . . . . . . . . . . . . 150
4.4.4 Performances du dcodage entre ferme des codes de
Reed-Solomon . . . . . . . . . . . . . . . . . . . . . . . 158
4.5 Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Sommaire xv

Annexe : Notions sur les corps de Galois et sur les polynmes minimaux159

5 Les codes convolutifs et leur dcodage 165


5.1 Historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
5.2 Reprsentations des codes convolutifs . . . . . . . . . . . . . . 167
5.2.1 Reprsentation gnrique dun codeur convolutif . . . . 167
5.2.2 Reprsentation polynomiale . . . . . . . . . . . . . . . . 170
5.2.3 Arbre dun code . . . . . . . . . . . . . . . . . . . . . . 171
5.2.4 Treillis dun code . . . . . . . . . . . . . . . . . . . . . . 172
5.2.5 Machine tats dun code . . . . . . . . . . . . . . . . . 174
5.3 Distances et performances des codes . . . . . . . . . . . . . . . 175
5.3.1 Du choix dun bon code . . . . . . . . . . . . . . . . . . 175
5.3.2 Squences RTZ . . . . . . . . . . . . . . . . . . . . . . . 176
5.3.3 Fonction de transfert et spectre de distances . . . . . . . 177
5.3.4 Performances . . . . . . . . . . . . . . . . . . . . . . . . 181
5.4 Le dcodage des codes convolutifs . . . . . . . . . . . . . . . . 184
5.4.1 Modle de la chane de transmission et notations . . . . 184
5.4.2 Lalgorithme de Viterbi . . . . . . . . . . . . . . . . . . 185
5.4.3 Lalgorithme Maximum A Posteriori ou MAP . . . . . 189
5.5 Codes convolutifs en bloc . . . . . . . . . . . . . . . . . . . . . 190
5.5.1 Fermeture de treillis . . . . . . . . . . . . . . . . . . . . 190
5.5.2 Poinonnage . . . . . . . . . . . . . . . . . . . . . . . . 193
5.6 Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

6 Concatnation de codes 197


6.1 Concatnation parallle et concatnation srie . . . . . . . . . 199
6.2 Concatnation parallle et codage LDPC . . . . . . . . . . . . 202
6.3 Les permutations . . . . . . . . . . . . . . . . . . . . . . . . . 203
6.4 Turbo mots croiss . . . . . . . . . . . . . . . . . . . . . . . . . 204
6.5 Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206

7 Turbocodes convolutifs 207


7.1 Lhistoire des turbocodes . . . . . . . . . . . . . . . . . . . . . 207
7.2 Concatnation multiple de codes CSR . . . . . . . . . . . . . . 209
7.3 Les turbocodes . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
7.3.1 La terminaison des codes constituants . . . . . . . . . . 215
7.3.2 La fonction de permutation . . . . . . . . . . . . . . . . 216
7.4 Le dcodage des turbocodes . . . . . . . . . . . . . . . . . . . 225
7.4.1 Le turbodcodage . . . . . . . . . . . . . . . . . . . . . 225
7.4.2 Le dcodage SISO et linformation extrinsque . . . . . 229
7.4.3 Considrations pratiques . . . . . . . . . . . . . . . . . . 234
7.5 Les turbocodes m-binaires . . . . . . . . . . . . . . . . . . . . 239
7.5.1 Codeurs CSR mbinaires . . . . . . . . . . . . . . . . . 239
7.5.2 Turbocodes m-binaires . . . . . . . . . . . . . . . . . . . 240
7.6 Outils danalyse . . . . . . . . . . . . . . . . . . . . . . . . . . 245
xvi Codes et turbocodes

7.6.1 Performances thoriques . . . . . . . . . . . . . . . . . . 245


7.6.2 Comportement asymptotique . . . . . . . . . . . . . . . 245
7.6.3 Convergence . . . . . . . . . . . . . . . . . . . . . . . . 249
7.7 Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255

8 Turbocodes produits 259


8.1 Historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
8.2 Les codes produits . . . . . . . . . . . . . . . . . . . . . . . . . 259
8.3 Le dcodage entre ferme des codes produits . . . . . . . . . 261
8.3.1 Le dcodage ligne-colonne . . . . . . . . . . . . . . . . . 261
8.3.2 Lalgorithme de Reddy-Robinson . . . . . . . . . . . . . 262
8.4 Le dcodage entre souple des codes produits . . . . . . . . . 265
8.4.1 Lalgorithme de Chase sortie pondre . . . . . . . . . 265
8.4.2 Performances de lalgorithme de Chase-Pyndiah . . . . 268
8.4.3 Lalgorithme de Fang et Battail . . . . . . . . . . . . . . 269
8.4.4 Lalgorithme de Hartmann-Nazarov . . . . . . . . . . . 272
8.4.5 Autres algorithmes entre souple . . . . . . . . . . . . 276
8.5 Implantation de lalgorithme de Chase-Pyndiah . . . . . . . . 278
8.6 Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280

9 Codes LDPC 283


9.1 Principe des codes LDPC . . . . . . . . . . . . . . . . . . . . . 283
9.1.1 Code de parit . . . . . . . . . . . . . . . . . . . . . . . 284
9.1.2 Dnition dun code LDPC . . . . . . . . . . . . . . . . 287
9.1.3 Encodage . . . . . . . . . . . . . . . . . . . . . . . . . . 290
9.1.4 Dcodage des codes LDPC . . . . . . . . . . . . . . . . 294
9.1.5 Construction dun code LDPC . . . . . . . . . . . . . . 297
9.2 Architecture de dcodage de codes LDPC pour le canal Gaussien300
9.2.1 Analyse de la complexit . . . . . . . . . . . . . . . . . 301
9.2.2 Architecture dun Processeur de Nud Gnrique (PNG) 302
9.2.3 Architecture gnrique de propagation des messages . . 306
9.2.4 Combinaisons des paramtres de larchitecture . . . . . 307
9.2.5 Exemple de synthse darchitecture de dcodeurs LDPC 310
9.2.6 Algorithme de dcodage sous optimaux . . . . . . . . . 312
9.2.7 Inuence de la quantication . . . . . . . . . . . . . . . 316
9.2.8 tat de lart des architectures de dcodeurs LDPC publies317
9.3 Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319

10 Turbocodes et transmissions grande ecacit spectrale 325


10.1 Les turbo-modulations codes en treillis
(TMCT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
10.2 Les modulations turbocodes pragmatiques . . . . . . . . . . . 331
10.3 Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Sommaire xvii

11 Le principe turbo appliqu lgalisation et la dtection 341


11.1 La turbo-galisation . . . . . . . . . . . . . . . . . . . . . . . . 342
11.1.1 Canaux multi-trajets et interfrence entre symboles . . . 342
11.1.2 La fonction dgalisation . . . . . . . . . . . . . . . . . . 345
11.1.3 Combiner galisation et dcodage . . . . . . . . . . . . . 349
11.1.4 Principe de la turbo-galisation . . . . . . . . . . . . . . 351
11.1.5 La turbo-galisation MAP . . . . . . . . . . . . . . . . . 354
11.1.6 La turbo-galisation MEQM . . . . . . . . . . . . . . . 363
11.2 La turbo-dtection multi-utilisateurs et son application aux sys-
tmes CDMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
11.2.1 Introduction et quelques notations . . . . . . . . . . . . 378
11.2.2 Dtection multi-utilisateurs . . . . . . . . . . . . . . . . 379
11.2.3 Turbo-CDMA . . . . . . . . . . . . . . . . . . . . . . . . 384
11.3 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
11.4 Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389

Index 394
Chapitre 1

Introduction

Redondance, diversit et parcimonie sont les mots cls du codage correcteur


derreurs. Du ct du dcodage, il sy ajoute lecacit, cest--dire le souci de
tirer le meilleur parti de toutes les informations disponibles. Pour illustrer ces
concepts, considrons une situation simple de la vie courante.
Deux personnes se parlent prs dune route o la circulation est assez in-
tense. Le bruit des moteurs gne plus ou moins la conversation, avec des pics de
perturbation sonore correspondant au passage des vhicules. Supposons dans
un premier temps que lune des personnes mette rgulirement une lettre tire
au hasard : a , b ... ou lune quelconque des 26 lettres de lalphabet,
avec une mme probabilit (soit 1/26). Le message ne contient aucune infor-
mation rajoute et il nexiste aucun lien entre les sons mis. Lauditeur, sil ne
lit pas sur les lvres du locuteur, sera certainement souvent embarrass pour
reconnatre certaines lettres. Il y aura donc des erreurs de transmission.
Maintenant, dans un autre cas de gure, lune des deux personnes nonce
des phrases compltes, portant sur un sujet bien prcis, le temps quil fait par
exemple. Malgr le bruit, lauditeur comprend mieux ce que dit son interlo-
cuteur que dans le cas des lettres isoles, parce que le message comporte de
la redondance. Les mots ne sont pas indpendants et les syllabes elles-mmes
ne sont pas concatnes alatoirement. On sait par exemple quaprs un sujet
apparat gnralement un verbe, on devine quaprs nua , il y aura ge
mme si on lentend mal, etc. Cette redondance dans la construction du mes-
sage permet lauditeur de mieux le comprendre malgr les conditions diciles
de sa transmission.
Supposons que lon veuille encore amliorer la qualit de la transmission,
dans cette conversation qui va prendre une tournure particulire. Pour tre
plus sr dtre compris, le locuteur rpte certains de ses mots, par exemple
matin matin . Toutefois, aprs la double transmission, le rcepteur a compris
matin satin . Il y a de toute vidence une erreur quelque part mais est-ce
matin ou satin que le rcepteur doit retenir ? Aucune correction derreur
nest possible en utilisant cette technique de rptition, sauf ventuellement
2 Codes et turbocodes

mettre le mot plus de deux fois. matin satin matin pourra, sans grand
risque derreur, tre traduit en matin .
Un codage plus labor consiste transmettre le message original accompa-
gn, non plus du mme mot mais dun synonyme ou dun quivalent : matin
aube par exemple. Si lon reoit matin auge ou latin aube , la cor-
rection est possible, en se rfrant un dictionnaire dquivalence. La rgle de
dcodage serait alors la suivante : en cas derreur (si les deux mots reus ne
sont pas directement quivalents) et si lon trouve deux quivalents en modi-
ant une lettre, au plus, dans le message reu, alors la correction est adopte
( auge devient aube ) et le premier des deux mots ( matin ) est ac-
cept comme message original. Il en serait de mme avec la rception de latin
aube , o la correction porterait cette fois sur le premier mot. Bien sr, si de
nombreuses erreurs altrent la transmission et si lon reoit latin auge , on
ny comprendra probablement plus rien. Il existe ainsi une limite au pouvoir
de correction. Cest la fameuse limite de Shannon, quaucun code correcteur ne
peut en thorie dpasser.
Par rapport la simple rptition, le codage par quivalence, plus ecace,
utilise un eet de diversit. Dans cette analogie de la conversation, cette diver-
sit est porte par une proprit lexicographique : deux mots distincts, lorsquils
sont voisins dans leur orthographe (matin et satin), ont peu de chance davoir
deux quivalents ( aube et tissu par exemple) galement proches dans
leur orthographe. La diversit, telle quelle vient dtre introduite, consiste donc
construire un message redondant sous une forme qui minimise, en cas der-
reurs, les ambiguts en rception. On lappelle aussi diversit temporelle car
les mots quivalents dans le message sont transmis des instants dirents
et subissent des perturbations dintensits ingales. Par exemple, matin et
aube peuvent tre mis lors du passage dune moto et dune bicyclette,
respectivement.
Dans les systmes de tlcommunications, des eets de diversit compl-
mentaires peuvent tre recherchs. La diversit frquentielle consiste dcou-
per et envoyer le message dans des bandes de frquences qui ne sont pas, un
mme instant, perturbes de la mme manire. Lutilisation de plusieurs an-
tennes dmission et/ou de rception ore, quant elle, de la diversit spatiale
car les trajets entre antennes nont pas le mme comportement. Lexploita-
tion conjointe des trois types de diversit : temporelle, frquentielle et spatiale,
conduit des systmes de communications trs performants.
Enn, le souci de parcimonie, ou dconomie, est impos par la limitation des
ressources, temporelles ou frquentielles, de la transmission. Le choix de ma-
tin aube est ainsi certainement plus judicieux, du point de vue de la concision,
que matin potron-minet . En contre-partie, on pressent que le dernier mes-
sage pourrait tre plus rsistant aux erreurs multiples car plus redondant (la
rception et la rsolution de mutin potion-minet nest pas problmatique si
lon utilise la loi de dcodage nonce plus haut et en tendant le pouvoir de
correction deux erreurs). La recherche de performance, travers le taux de
redondance et la contrainte de parcimonie sopposent donc compltement.
1. Introduction 3

Le codage redondant est en gnral simple mettre en uvre et le logiciel ou


le matriel correspondant est de faible complexit. Le dcodage, en revanche,
fait appel des techniques calculatoires qui peuvent tre lourdes. mme si,
en dnitive, le nombre dinstructions du programme (typiquement quelques
centaines, en langage informatique de haut niveau) ou la surface occupe sur
silicium (typiquement quelques millimtres carrs) reste modeste.

1.1 Messages numriques


Un message numrique est une suite de caractres ou symboles prlevs dans
un alphabet de taille nie. Linformation gntique porte par lADN, pour
emprunter un exemple la nature, utilise un alphabet de quatre caractres,
nots A, T, G et C, daprs les initiales de leurs bases azotes (adnine, thymine,
guanine, cytosine). La premire technique numrique de transmission fut le
Morse (1832), avec son alphabet sonore deux caractres : le TIT ou point,
son court de quatre centimes de seconde et le TAT ou tiret, son long de douze
centimes de seconde. Samuel F. B. Morse aurait tout aussi bien pu appeler ces
caractres 0 et 1, qui sont aujourdhui les dnominations universelles de tout
alphabet deux lments ou alphabet binaire. Les lments binaires, 0 et 1,
ont t baptiss bits par J. W. Tukey (1943), en tant que contraction de binary
digit et aprs avoir renonc bigit et binit. Shannon a repris le nologisme
son compte lorsquil lui fallut introduire le concept de mesure de linformation.
Aujourdhui, lunit de mesure de linformation est prfrablement appele le
shannon, pour la distinguer du bit, qui a pris une signication plus lectronique.
Un alphabet possdant M symboles est dit alphabet M -aire. Il peut tre
transcrit en un alphabet binaire en reprsentant chacun des M symboles par
un mot de m bits, avec :
 
m = log2 (M ) + 1 si M nest pas une puissance de 2
ou : (1.1)
m = log2 (M ) si M est une puissance de 2
o x dsigne la partie entire de x. Les messages multimdia (voix, musique,
images xes et animes, texte etc.) transitant par les systmes de communi-
cation ou stocks dans les mmoires de masse, sont exclusivement binaires.
Cependant, nous aurons parfois considrer dans cet ouvrage des alphabets
plus de deux lments. Ce sera le cas au chapitre 4, pour introduire certains
codes algbriques. Dans les chapitres 2 et 10, qui traitent des modulations, les
alphabets, quon appelle alors plus concrtement constellations, contiennent un
nombre de symboles qui est une puissance de 2, cest--dire que lon a prcis-
ment : m = log2 (M ).
Les techniques de codage correcteur ne sont mises en uvre que sur des
messages numriques. Rien ninterdit cependant de construire un message ana-
logique redondant. Par exemple, un signal analogique, dans sa dimension tem-
porelle, accompagn ou suivi de sa reprsentation frquentielle obtenue grce
4 Codes et turbocodes

la transformation de Fourier, ralise un codage judicieusement redondant.


Cependant cette technique nest pas simple et le dcodeur reste imaginer...
Par ailleurs, les messages numriques que lon considrera dans la suite,
avant que soit eectue lopration de codage, seront supposs tre constitus
dlments binaires mutuellement indpendants et prenant les valeurs 0 et 1
avec la mme probabilit, soit 1/2. Les signaux dlivrs par un capteur tel
quun microphone ou une camra et qui sont ensuite numriss pour devenir
des squences binaires, ne satisfont gnralement pas ces proprits dindpen-
dance et dquiprobabilit. Il en est de mme avec le texte (par exemple, la
rcurrence du e dans un texte franais est en moyenne 15 fois suprieure
celle du f ). Les eets de dpendance ou de disparit dans le message origi-
nal, quils soient dorigine physique, orthographique, smantique ou autre, ne
sont pas exploitables par le systme de communication numrique, qui transmet
des 0 et des 1 indpendamment de leur contexte. Pour transformer le message
original en un message remplissant les conditions dindpendance et dquipro-
babilit, une opration dite de codage de source, ou compression numrique,
peut tre eectue. Les normes de compression comme JPEG, MPEG, ZIP,
MUSICAM... sont aujourdhui bien intgres dans le monde des tlcommuni-
cations, internet en particulier. la sortie du codeur de source, les proprits
statistiques dindpendance et dquiprobabilit sont gnralement respectes
et le message comprimer peut alors tre trait par le codeur de canal, qui
ajoutera de la redondance mathmatiquement exploitable par le rcepteur.

1.2 Un premier code


La gure 1.1 reprsente un circuit lectronique qui ralise un codage correc-
teur dexpression mathmatique trs simple et aisment dcodable. Le code mis
en uvre est un code de Hamming tendu (en anglais extended ), qui a t uti-
lis dans le tltexte (lun des premiers systmes de communication numrique)
et dont il est aussi question dans le chapitre 4.

Figure 1.1 Codeur de Hamming tendu : un code simple et aisment dcodable.


1. Introduction 5

Le codeur contient quatre oprateurs identiques ralisant la fonction ou-


exclusif, cest--dire laddition modulo 2. Le ou-exclusif (XOR) de k valeurs
binaires b0 , b1 , ..., bk1 est calcul comme :


k1
XOR(b0 , b1 , ..., bk1 ) = b0 b1 ... bk1 = bp modulo 2 (1.2)
p=0

Cest donc tout simplement 0 si le nombre des uns logiques apparaissant dans
la squence considre est pair et 1 dans le cas contraire. Dans la suite, lorsque
des additions modulo 2 porteront sur des valeurs binaires et sil ny a pas
dambigut dans la notation, le terme modulo 2 pourra tre lud. Le mot
somme devra tre lui-mme tre compris dans le sens dune addition modulo
2.
Le codeur transforme le message contenant quatre bits de donnes : d =(d0 ,
d1 , d2 , d3 ) en un mot de huit bits : c = (d0 , d1 , d2 , d3 , r0 , r1 , r2 , r3 ), appel mot
de code. Le mot de code est donc sparable en une partie qui est linformation
provenant de la source, dite partie systmatique 1 et une partie ajoute par le
codeur, dite partie redondante. Tout code produisant des mots de code sous
cette forme est dit code systmatique. La plupart des codes, en pratique, sont
systmatiques mais il existe une exception importante dans la famille des codes
convolutifs (chapitre 5).
La loi de construction de la partie redondante, par le codeur particulier de
la gure1.1, peut tre crite simplement sous la forme :


3
rj = dj dp (j = 0, ..., 3) (1.3)
p=0

Laddition modulo 2 de dj a pour eet de lliminer de sorte que rj est la


somme de les bits de donnes, dj except. La table 1.1 fournit les seize valeurs
possibles de c, cest--dire lensemble {c} des mots de code.
Observons en premier lieu que la loi de codage est linaire : la somme de
deux mots de code est aussi un mot de code. Cest la linarit de la relation (1.3)
qui assure la linarit du codage. Tous les codes que nous considrerons dans
la suite sont linaires car tous fonds sur deux oprations linaires : laddition
et la permutation (incluant le dcalage). Puisque le code est linaire et que
la transmission dun mot de code est ventuellement aecte par un processus
galement linaire (laddition dune perturbation : bruit, interfrence, . . . ), le
choix dun mot de code, pour expliquer ou justier les proprits du code, est
compltement indirent. Cest le mot de code tout 0 qui tiendra ce rle
de reprsentant ou de rfrence pour tous les mots de code, vis--vis des
proprit gnrales du couple codeur/dcodeur. En rception, la prsence des
uns sera donc reprsentative derreurs de transmission.
1 On dira aussi partie dinformation car constitue des bits dinformation provenant de la
source.
6 Codes et turbocodes

d0 d1 d2 d3 r0 r1 r2 r3 d0 d1 d2 d3 r0 r1 r2 r3
0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1
0 0 0 1 1 1 1 0 1 0 0 1 1 0 0 1
0 0 1 0 1 1 0 1 1 0 1 0 1 0 1 0
0 0 1 1 0 0 1 1 1 0 1 1 0 1 0 0
0 1 0 0 1 0 1 1 1 1 0 0 1 1 0 0
0 1 0 1 0 1 0 1 1 1 0 1 0 0 1 0
0 1 1 0 0 1 1 0 1 1 1 0 0 0 0 1
0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1

Table 1.1 Les seize mots de code que peut produire le codeur de la gure 1.1.

Le nombre de 1 contenus dans un mot de code qui nest pas tout 0


est appel poids de Hamming et est not wH . On pourra distinguer le poids
relatif la partie systmatique (wH,s ) et le poids relatif la partie redondante
(wH,r ). On remarque, dans la table 1.1, que wH est au moins gal 4. Du fait
de la linarit, ceci signie aussi que le nombre de bits qui dirent dans deux
mots de code est aussi au moins gal 4. Le nombre de bits qui sont dirents,
quand on compare deux mots binaires, est appele distance de Hamming. La
plus petite de toutes les distances entre tous les mots de code, considrs deux
deux, est appele distance minimale de Hamming (DMH) et note dmin . La
linarit impose que cest aussi le plus faible des poids de Hamming, dans la
liste des mots de code en dehors du tout 0 . La distance minimale dmin est
un paramtre essentiel pour caractriser un code particulier car le pouvoir de
correction du dcodeur correspondant lui est directement li.
dictons maintenant une loi de dcodage pour le code de la gure 1.1 :
aprs rception du mot c = (d0 , d1 , d2 , d3 , r0 , r1 , r2 , r3 ) mis par le
codeur et ventuellement altr durant la transmission, le dcodeur choisit le
mot de code c qui lui est le plus proche, au sens de la distance de Hamming .
La tche du dcodeur est donc de parcourir la table 1.1 et, pour chacun des seize
mots de code possibles, de compter le nombre de bits qui dirent de c. Le mot
de code retenu c est celui qui dire le moins de c. Lorsque plusieurs solutions
sont possibles, le dcodeur en retient une au hasard. Mathmatiquement, cela
scrit :

3
 
3

c = c {c} tel que dj dj + rj rj est minimum (1.4)
j=0 j=0

Un dcodeur capable de mettre en uvre un tel procd est dit dcodeur


maximum de vraisemblance (MV) car tous les cas de gure, ici les seize mots
de code possibles, sont passs en revue dans la recherche dune solution et il
nexiste pas de procd de dcodage plus ecace. Avec des codes autres que le
trs simple code de Hamming, le message coder contient bien plus que quatre
bits (en pratique, cela va de quelques dizaines quelques dizaines de milliers
1. Introduction 7

de bits) et le dcodage MV est impossible excuter car le nombre de mots


de code est trop important.
Supposons que le codeur de Hamming mette le mot tout 0 que nous
avons choisi comme rfrence et que certains des 0 aient t inverss avant r-
ception, sur le canal de transmission. Combien derreurs le dcodeur sappuyant
sur la loi (1.4) peut-il corriger ? Si c contient un seul 1 (une seule erreur), le
mot tout 0 est plus proche de c que tout autre mot de code qui possde
au moins quatre 1. La correction est donc possible. Si c contient deux 1, par
exemple aux deux premires places (d0 = d1 = 1), le dcodeur fait face une
indtermination : quatre mots de code sont la distance 2 du mot reu. Il doit
donc tirer c au hasard, parmi les quatre solutions possibles, avec le risque de se
tromper trois fois sur quatre. Dans cette situation, on peut galement faire en
sorte que le dcodeur ne dlivre pas de solution mais indique simplement quil
est confront une indtermination : il joue alors le rle de dtecteur derreurs
non corrigibles. Enn, si c contient trois 1, le dcodeur trouvera un seul mot
de code la distance 1 et il proposera ce mot de code comme solution la plus
probable mais il sera faux.
Le pouvoir de correction du code de Hamming tendu est donc de t = 1
erreur. Plus gnralement, le pouvoir de correction dun code ayant une distance
minimale dmin est :  
dmin 1
t= (1.5)
2
Notons que le pouvoir de correction du code pris en exemple dans cette intro-
duction nest pas diminu si lon supprime lun (nimporte lequel) des symboles
de redondance. La DMH passe de 4 3 mais le pouvoir de correction est toujours
dune erreur. Cette version tronque est en fait le code de Hamming original,
le premier code correcteur dans lhistoire de la thorie de linformation (1948).
Dans une famille de codes donne, on en dcrit une version particulire par
le raccourci (n, k, dmin ) o n et k sont, respectivement, les longueurs des mots
de code et des messages de source. Nous venons donc de dnir deux codes de
Hamming nots (8, 4, 4) et (7, 4, 3). Le second semble plus intressant car il
ore le mme pouvoir de correction (t = 1) avec un taux de redondance =
nk
k de 0,75, au lieu de 1 pour le premier. En revanche, le code (7, 4, 3) ne
peut tenir le rle de dtecteur derreurs : si le mot reu contient deux erreurs,
le dcodeur dcidera en faveur du seul mot de code, erron, qui se trouve une
distance de Hamming de 1.
Plutt que de taux de redondance, on prfrera le plus souvent utiliser la
notion de rendement de codage, not R, et dni par :

k 1
R= = (1.6)
n 1+
Le produit Rdmin apparatra dans la suite comme un facteur de mrite essen-
tiel vis--vis dune perturbation apporte par un bruit additif distribution
gaussienne.
8 Codes et turbocodes

1.3 Dcodage entre ferme et dcodage en-


tre souple
Poursuivons cette prsentation des premiers principes du codage et du d-
codage en continuant de nous appuyer sur lexemple du code de Hamming
tendu.
Le principe de dcodage dni par (1.4) suppose que le mot de code reu
c est compos de valeurs binaires, cest--dire que la transmission des donnes
sest eectue selon la loi de perturbation donne par le diagramme de la -
gure 1.2. Un 0 devient un 1 et vice-versa, avec une probabilit p et les valeurs
binaires sont correctement reues avec la probabilit complmentaire 1 - p. Un
tel milieu de transmission est dit canal binaire symtrique et le dcodeur ralise
ce que lon appelle un dcodage entre ferme (hard input decoding en anglais).
Dans certains systmes de communications (bres optiques, rseaux commu-
ts...) et dans la plupart des matriels de stockage, les dcodeurs ne peuvent
eectivement exploiter que des informations binaires.

Figure 1.2 Le canal binaire symtrique avec probabilit derreur p.

Lorsque le signal reu par le dcodeur provient dun dispositif capable de


dlivrer des estimations de la abilit avec laquelle les donnes reues repr-
sentent les donnes mises, le pouvoir de correction du dcodeur peut sen trou-
ver nettement amlior. Pour le dmontrer sur lexemple du code de Hamming
tendu, il nous faut pralablement changer lalphabet et adopter une criture
binaire antipodale (ou symtrique). Aux donnes binaires systmatiques d = 0
et d = 1, nous ferons correspondre respectivement les valeurs mises x = 1
et x = +1. De mme, aux donnes binaires redondantes r = 0 et r = 1, nous
ferons correspondre respectivement les valeurs mises y = 1 et y = +1. On
aura donc :
x = 2d 1 = (1)d
(1.7)
y = 2r 1 = (1)r
La gure 1.3 donne un exemple de transmission durant laquelle les valeurs
mises 1 et +1 sont altres par un bruit additif de nature analogique. Les
valeurs en sortie du canal de transmission sont alors des variables relles, qui
doivent tre en pratique crtes puis quanties2 lorsque le dcodeur est un
processeur numrique. Le nombre de bits de quantication, not Nq , na pas
2 Cette opration seectue laide dun chantillonneur et dun convertisseur analogique-
numrique.
1. Introduction 9

besoin dtre lev : 3, 4 ou 5 bits susent pour reprsenter nement les chan-
tillons analogiques. Une fois sur deux en moyenne, le bruit est favorable car il
est de mme signe que la valeur mise. Dans lautre cas, lamplitude du signal
est attnue et, lorsque ce bruit dfavorable est important, le signe peut sin-
verser. Une prise de dcision immdiate par seuil (cest--dire est-ce plus grand
ou plus petit que le zro analogique ?) conduirait alors dlivrer une valeur
binaire errone.

Figure 1.3 Canal de transmission avec bruit additif de nature analogique.

Puisque le dcodeur dispose dune information sur le degr de abilit des


valeurs reues, appeles dans la suite valeurs souples ou pondres, le dco-
dage du code de Hamming tendu selon la loi (1.4) nest plus optimal. La loi
de dcodage maximum de vraisemblance mettre en uvre pour exploiter
ces valeurs pondres dpend du type de bruit. Un cas de gure important
en pratique est le bruit additif blanc gaussien (BABG) reprsentatif du bruit
thermique dans les composants lectroniques du rcepteur.
U est une variable alatoire gaussienne de moyenne et de variance 2
lorsque sa densit de probabilit p(u) sexprime sous la forme :

1 (u )2
p(u) = exp( ) (1.8)
2 2 2

Le BABG est une perturbation qui produit, aprs ltrage adapt et chantillon-
nage priodique (voir chapitre 2), des chantillons indpendants dont lampli-
tude suit la loi de densit de probabilit (1.8)de moyenne nulle et de variance :

N0
2 = (1.9)
2

o N0 est la densit spectrale de puissance du bruit.


Un canal de transmission sur lequel la seule altration du signal provient
dun BABG est appel canal gaussien. la sortie dun tel canal, le dcodage
MV sappuie sur la recherche exhaustive du mot de code qui est la plus petite
distance euclidienne du mot reu. En prsence de BABG, il peut tre montr
que ce critre minimise la probabilit de retenir un mot de code erron.
En notant X et Y les valeurs reues correspondant aux symboles mis x et y
respectivement, le dcodeur entres pondres du code de Hamming tendu
10 Codes et turbocodes

slectionne donc :

3
2

3
2
c = c {c} tel que (xj Xj ) + (yj Yj ) est minimum (1.10)
j=0 j=0

Puisque les valeurs mises sont toutes telles que x2j = 1 ou yj2 = 1 et que
toutes les distances euclidiennes contiennent Xj2 et Yj2 , la loi prcdente peut
se simplier sous la forme :

3 
3
c = c {c} tel que 2xj Xj 2yj Yj est minimum
j=0 j=0

soit encore :

3 
3
c = c {c} tel que xj Xj + yj Yj est maximum (1.11)
j=0 j=0

Minimiser la distance euclidienne entre deux mots de code c et c revient donc



3 
3
maximiser le produit scalaire x, X + y, Y = xj Xj + yj Yj o x, X,
j=0 j=0
y et Y reprsentent les squences mises et reues des parties systmatique et
redondante.
Dans les processeurs de traitement de signal (DSP : Digital Signal Proces-
sor ) ou dans les circuits intgrs spciques (ASIC : Application Specic Inte-
grated Circuit), il peut tre commode de navoir manipuler que des nombres
positifs. La loi (1.11) pourra alors tre mise en uvre sous la forme :

3
c = c {c} tel que (Vmax +xj Xj ) + (Vmax +yj Yj ) est maximum (1.12)
j=0

o [Vmax , Vmax ] est lintervalle des valeurs que peuvent prendre les chantillons
dentre Xj et Yj du dcodeur aprs lopration dcrtage.
En gure 1.4, le mot de code tout 0 a t mis et reu avec trois altra-
tions aux trois premires positions. Ces trois altrations ont invers les signes
des symboles mais leurs amplitudes sont plutt de faible niveau : 0, 2, 0, 4 et
0, 1. Le dcodage entre ferme produit un rsultat erron car le mot de code
le plus proche en terme de distance de Hamming est (1, 1, 1, 0, 0, 0, 0, 1). En
revanche, le dcodage entre souple selon (1.11) dlivre bien le mot tout
0 , auquel correspond le produit scalaire maximum :
(1)(0, 2) + (1)(0, 4) + (1)(0, 1) + (1)(1)
+ (1)(1) + (1)(1) + (1)(1) + (1)(1) = 4, 3
comparer avec :
(+1)(0, 2) + (+1)(0, 4) + (+1)(0, 1) + (1)(1)
+ (1)(1) + (1)(1) + (1)(1) + (+1)(1) = 3, 7
1. Introduction 11

pour le mot concurrent (1, 1, 1, 0, 0, 0, 0, 1). Cet exemple simple illustre lintrt
de conserver, lorsque cela est possible, les informations de abilits dans les
prises de dcision.

Figure 1.4 Le mot tout 0 (mission de symboles la valeur -1) a t altr


pendant la transmission sur les trois premires positions. Le dcodage entre ferme
est erron mais pas le dcodage entre souple.

Les rgles de dcodage MV que nous venons de poser sur un exemple


particulier sont aisment gnralisables. Cependant, on conoit bien quau-del
dune certaine longueur de message, un tel principe de dcodage est irraliste.
Appliquer le dcodage MV sur des mots de code contenant 240 bits de partie
systmatique, par exemple, reviendrait considrer autant de mots de code que
datomes dans lunivers visible (2240 ). Malgr cela, pour la plupart des codes
connus, des mthodes de dcodage non exhaustives ont t mises au point, qui
permettent dapprocher de trs prs du rsultat optimal de la mthode MV.

1.4 Dcodage sortie ferme et dcodage sortie


souple
Lorsque la sortie du dcodeur nest pas directement transmise un desti-
nataire mais doit tre utilise par un autre processeur dont la performance est
amliore grce des entres pondres, il peut tre demand ce dcodeur en
amont dlaborer de telles valeurs pondres. On distinguera donc sortie ferme
(en anglais hard output) quand le dcodeur dlivre des 0 et 1 logiques et sortie
pondre ou souple (en anglais soft output). Dans ce dernier cas, le dcodeur
accompagne ses dcisions binaires de mesures de abilit ou poids. Lchelle
de sortie des valeurs pondres est en gnral la mme que lchelle dentre
[Vmax , Vmax ].
Pour le dcodeur du code de Hamming tendu, il est relativement facile de
construire des dcisions pondres. Lorsque celui-ci a calcul les seize produits
scalaires, il les classe par valeur dcroissante. En premire position, on trouve le
produit scalaire du mot de code le plus vraisemblable, cest--dire celui qui d-
cide des signes des dcisions pondres en sortie. Puis, pour chacun des quatre
bits de la partie systmatique, le dcodeur recherche le produit scalaire le plus
12 Codes et turbocodes

lev qui corresponde un mot de code concurrent dans lequel le bit dinfor-
mation en question est oppos celui de la dcision binaire. Le poids associ
cette dcision binaire est alors la dirence du produit scalaire maximum et du
produit scalaire correspondant au mot concurrent. Une division par 2 suppl-
mentaire met la sortie pondre lchelle de lentre. Ce procd est optimal
pour une perturbation BABG. En reprenant lexemple de la gure 1.4 (qui
nest pas typique dun BABG), les poids associs aux dcisions sur les trois
premiers bits seraient identiques et gaux (4,3 3,7)/2 = 0,3.
Dun point de vue historique, les premires mthodes de dcodage ont t
du type entre et sortie fermes. Cest lalgorithme de Viterbi, dtaill dans le
chapitre 5, qui a popularis lide de dcodage entre souple. Puis les turbo-
codes, qui sont dcods par traitements rpts et qui requirent des valeurs
pondres tout niveau de ce traitement, ont mis la mode les dcodeurs
entre et sortie souples. Le sigle gnrique pour qualier de tels dcodeurs est
de langue anglaise : SISO pour Soft-Input/Soft-Output.

1.5 La mesure de performance


La performance dun couple codeur/dcodeur se juge en premier lieu en
termes derreurs rsiduelles la sortie du dcodeur, lorsquon sest x un
cadre bien prcis dvaluation : type de perturbation, longueur de message,
taux de redondance ou rendement de codage etc. Dautres aspects, comme la
complexit du dcodage, les latences introduites par le codeur et le dcodeur,
le degr de exibilit du code (en particulier son aptitude se conformer
direntes longueurs de message et/ou dirents rendements de codage) sont
galement considrer de plus ou moins prs suivant les contraintes propres
au systme de communication.
Les erreurs rsiduelles que le dcodeur nest pas parvenu corriger se me-
surent laide de deux paramtres. Le taux derreurs binaires (TEB) est le
rapport entre le nombre derreurs binaires rsiduelles et le nombre total de
bits dinformation transmis. Le taux derreurs de mots, de blocs ou de pa-
quets (TEP) est le nombre de mots de code mal dcods (au moins un des
bits dinformation est faux) ramen au nombre total de mots de code mis. Le
rapport entre TEB et TEP est la densit derreurs moyenne e dans la partie
systmatique dun mot mal dcod :

w TEB
e = = (1.13)
k TEP
o w = ke est le nombre moyen de bits dinformation errons dans la partie
systmatique dun bloc mal dcod.
La gure 1.5 donne un exemple typique de reprsentation graphique de
performance de codage et dcodage correcteur derreurs. Lordonne donne le
Eb
TEB en chelle logarithmique et labscisse porte le rapport signal bruit N0
,
exprim en dcibels (dB). N0 est dni par (1.9) et Eb est lnergie reue par
1. Introduction 13

bit dinformation. Si Es est lnergie reue pour chacun des symboles du mot
de code, Es et Eb sont relis par :

Es = REb (1.14)

La comparaison de procds de codage et de dcodage dirents ou la variation


de performance dun procd particulier avec le rendement de codage sta-
blissent toujours mme nergie globale de rception. Quand il ny a pas de
codage, lnergie par mot de code reu est kE b . En prsence dun codage, qui
augmente le nombre de bits transmis, lnergie kE b est rpartir entre les n
bits du mot de code, ce qui justie la relation (1.14). La rfrence dnergie
considrer, indpendante du code et du rendement, est donc Eb .

Figure 1.5 Pouvoir de correction derreurs des codes de Hamming (8, 4, 4) et (7, 4, 3)
sur canal gaussien, avec dcodage entre ferme et dcodage entre souple. Alors
que le code (7,4,3) est plus performant lorsque lentre est ferme, le code (8,4,4) est
prfrable lorsque lentre est souple.

Sur la gure 1.5, sont traces les courbes de correction derreurs des codes
de Hamming (8, 4, 4) et (7, 4, 3) dont il a t question tout au long de cette
introduction, sur un canal gaussien. Le dcodage entre ferme selon (1.4) et
le dcodage entre souple selon (1.11) sont considrs. Dans le diagramme est
aussi reprsente la courbe de probabilit derreur binaire Pe que lon obtient
sur ce canal sans utiliser de codage3 . Cette courbe est relie la fonction
derreur complmentaire erfc(x) donne par la relation (2.66) du chapitre 2 :
3 La distinction entre Pe et TEB nest que formelle : la valeur de Pe est donne par une
quation tandis que le TEB est obtenu par mesure ou simulation.
14 Codes et turbocodes


Eb
Pe = 12 erfc N 0
. Pour Eb /N0 grand, le comportement asymptotique de Pe est
approch par :

1 exp Eb
N0
Pe  (1.15)
2 Eb
N0

Pour valuer la probabilit Pe,mot que le dcodeur entre pondre dun


code de rendement R et de distance minimale dmin dlivre un mot de code
Eb Eb
erron, on remplace dans la formule prcdente N 0
par Rdmin N 0
et on aecte
le tout dun coecient not N (dmin ) :

exp Rd Eb
1 Eb 1 min N0
Pe,mot = N (dmin )erfc Rdmin N (dmin )  (1.16)
2 N0 2 Eb
Rdmin N0

Le remplacement de Eb par RE b provient de (1.14) car lnergie reue par


symbole est Es . La multiplication par dmin sexplique par la loi de dcodage
MV (relation (1.11)), qui permet qu dcodeur de discriminer le mot de code
prsum correct de ses concurrents les plus proches parce quil en dire en dmin
positions au moins. Enn, le coecient N (dmin ), appel multiplicit, prend en
compte le nombre de mots de code concurrents qui sont la distance minimale.
Par exemple, dans le cas du code de Hamming tendu (voir table 1.1), on a
N (dmin = 4) = 14.
Pour obtenir la probabilit derreur binaire Pe,bit du systme cod, il sut
de multiplier Pe,mot par la densit derreurs moyenne e dnie par (1.13) :

1 exp Rd Eb
min N0
Pe,bit e N (dmin )  (1.17)
2 Eb
Rdmin N 0

la lecture de la table 1.1, on observe que le nombre moyen derreurs dans les
14 mots de poids 4, concurrents la distance minimale du mot tout 0 , est
2. La formule (1.17) applique au code de Hamming tendu est donc :

1 2 exp 1
2 4 Eb
N0 exp 2 Eb
N0
Pe,bit 14  = 3, 5 
2 4 2 4 N0
1 Eb Eb
2 N0

Cette expression fournit Pe,bit = 2, 8.105 , 1, 8.106 et 6, 2.108 pour N


Eb
0
= 7,
8 et 9 dB respectivement, ce qui correspond aux rsultats de la simulation de la
gure 1.5. Une telle concordance entre quations et exprience ne se retrouve
pas aussi nettement pour des codes plus complexes. En particulier, recenser les
mots de code concurrents la distance dmin peut ne pas sure et il faut alors
considrer les mots la distance dmin + 1, dmin + 2, etc.
1. Introduction 15

Pour une mme valeur de Pe et Pe,bit respectivement fournies


par les rela-
Eb Eb
tions (1.15) et (1.17), les rapports signal bruit N0 et N0 sans codage
NC C
(NC) et avec codage (C) sont tels que :

 Eb
 N
Eb Eb  0
NC
Rdmin = log e N (dmin ) (1.18)
N0 C N0 N C Rd Eb

min N0
C

Si e N (dmin ) nest pas trop loign de lunit, cette relation peut tre simplie
sous la forme :
Eb Eb
Rdmin 0
N0 C N0 N C

Eb Eb
Le gain asymptotique, exprim en dB, fournit lcart entre N 0
et N0 :
NC C


Eb
N0
Ga = 10 log C 10 log (Rdmin )
N
(1.19)
Eb
N0
C

Comme annonc plus haut, Rdmin apparat comme un facteur de mrite qui,
dans un bilan de liaison et faible taux derreurs, xe le gain que peut apporter
un procd de codage sur canal gaussien quand le dcodeur est entre souple.
Cest un paramtre majeur pour les concepteurs de systmes de communica-
tions. Pour dautres types de canal que le canal gaussien (Rayleigh, Rice ...),
le gain asymptotique est toujours suprieur celui qui est approximativement
donn par (1.19).
Dans la gure 1.5, le dcodage entre souple du code de Hamming (8, 4,
4) donne le meilleur rsultat, avec un gain asymptotique observ de lordre de
2,4 dB, conforme la relation (1.18) plus prcise que (1.19). Le code (7, 4, 3)
est lgrement moins performant car le produit Rdmin est de 12/7 au lieu de 2
pour le code (8, 4, 4). En revanche, le dcodage entre ferme est dfavorable
au code tendu car il nore pas un pouvoir de correction plus grand malgr un
taux de redondance plus lev. Cet exemple est atypique : dans la trs grande
majorit des cas pratiques, la hirarchie des codes que lon peut tablir en se
basant sur leur performance sur canal gaussien, avec dcodage entre souple,
est respecte pour dautres types de perturbations.

1.6 Quest-ce quun bon code ?


La gure 1.6 reprsente trois comportements possibles pour un code correc-
teur derreurs et son dcodeur associ, sur un canal gaussien. Pour tre concret,
le bloc dinformation est suppos tre de longueur k = 1504 bits (188 octets,
longueur typique de de la compression MPEG) et le rendement de codage 1/2.
16 Codes et turbocodes

Figure 1.6 Comportements possibles pour un schma de codage/dcodage sur canal


gaussien (k = 1504 bits, R = 1/2).

La courbe 1 correspond au systme idal. Il existe en eet des limites la


capacit de correction dun code, quelquil soit. Ces limites, dont les premires
valeurs ont t tablies par Shannon (1947-48) et qui ont t anes depuis
lors pour les situations pratiques, sont donnes pour tre indpassables. Elles
dpendent du type de bruit, de la taille de mot de code et du rendement. Le
chapitre 3 en fournit les principales valeurs.
La courbe 2 dcrit un comportement avec ce que lon appelle une bonne
convergence mais aussi avec une DMH mdiocre. Bonne convergence signie
que le taux derreurs dcrot fortement prs de la limite thorique (cette rgion
de nette dcroissance est appele waterfall en anglais) mais la DMH nest pas
susante pour maintenir une pente raide jusqu des taux derreurs trs faibles.
Le gain asymptotique, approch par (1.19), est atteint un taux derreur bi-
naire de lordre de 105 dans cet exemple. Au-del, la courbe reste parallle la
Eb
courbe de taux derreurs sans codage : Pe = 12 erfc N 0
. Le gain asymptotique
est ici de lordre de 7,5 dB. Ce genre de comportement, que lon ne rencontrait
pas avant les annes 1990, est typique de systmes de codage mettant en uvre
une technique de dcodage itrative (turbocodes, LDPC,. . . ), quand la DMH
nest pas trs leve.
La courbe 3 ache une performance avec une convergence mdiocre et un
fort gain asymptotique. Un exemple typique en est la concatnation dun code
de Reed-Solomon et dun code convolutif. Alors que la DMH peut tre trs
grande (autour de 100 par exemple), le dcodeur ne sait en tirer parti que
relativement loin de la limite thorique. Ce nest donc pas la qualit du code qui
1. Introduction 17

est en question mais le dcodeur qui ne peut pas exploiter toute linformation
disponible en rception.
La recherche du couple codeur/dcodeur idal, depuis les travaux de Shan-
non, a toujours d faire face ce dilemme : bonne convergence versus DMH le-
ve. Dexcellents codes algbriques tels que les codes BCH (voir paragraphe 4.1.7)
ou de Reed-Solomon (voir paragraphe 4.2.1) furent assez rapidement labors
dans lhistoire du codage correcteur (voir chapitre 4). Les DMH sont leves (et
mme parfois optimales) mais il nest pas toujours facile de mettre en uvre un
dcodage entre souple. Par ailleurs, les codes algbriques sont gnralement
taills pour une longueur de mot de code et un rendement de codage bien
spciques, ce qui en limite le champ des applications. Malgr cela, les codes
algbriques rendent des services essentiels dans les applications qui requirent
des taux derreurs trs faibles, notamment les mmoires de masse et/ou lorsque
linformation pondre nest pas disponible.
Ce nest que rcemment, avec lintroduction du dcodage probabiliste itra-
tif (turbo-dcodage), que lon a pu obtenir une correction derreurs ecace prs
de la limite thorique. Et cest encore plus rcemment que des DMH susantes
ont pu tre obtenues pour viter un changement de pente dfavorable dans la
courbe de performance.
Il nest pas facile de rpondre simplement la question qui fait le titre
de cette section. La performance est, bien sr, le premier critre : pour un
taux derreurs donn, compt soit en TEB soit en TEP et pour un rendement
de codage x, un bon code est dabord celui dont le dcodeur ore un bon
pouvoir de correction prs de la limite thorique correspondante. Une condition
pralable en est videmment lexistence dun algorithme de dcodage (les codes
alatoires nont pas de dcodeur, par exemple) et que cet algorithme ne soit
pas exagrment complexe, dans ses ralisations logicielles et/ou matrielles.
En outre, lutilisation dentres souples est un impratif qui peut ne pas tre
simple satisfaire.
Dautres critres comme la vitesse de dcodage (qui xe le dbit de linfor-
mation dcode), la latence (le retard apport par le dcodage) ou la exibilit
(laptitude du code pouvoir tre dni pour des longueurs de mots et des ren-
dements de codage varis) sont galement prendre en compte dans le contexte
de lapplication vise.
Enn, des facteurs non techniques peuvent galement tre trs importants.
La maturit technologique (existe-t-il dj des applications, des standards ?),
les cots des composants, les ventuels droits de proprit intellectuelle, les
prfrences stratgiques ou les habitudes sont des lments qui peuvent peser
dans le choix dune solution de codage.

1.7 Les familles de codes


Jusqu ces dernires annes, les codes taient traditionnellement rangs en
deux familles considres comme bien distinctes par leurs principes et leurs
18 Codes et turbocodes

applications : les codes algbriques (encore appels codes en bloc) et les codes
convolutifs. Cette distinction tait principalement fonde sur trois observations :
les codes algbriques sont appropris la protection de blocs de donnes
indpendants les uns des autres, les codes convolutifs conviennent la
protection de donnes en ot continu,
les rendements de codage des codes algbriques sont plutt proches de
lunit, alors que les codes convolutifs ont des rendements plus faibles,
le dcodage des codes en bloc est plutt du type entre ferme, celui des
codes convolutifs presque toujours entre souple.
Aujourdhui, ces distinctions tendent sestomper. Les codes convolutifs
peuvent aisment tre adapts pour coder des blocs et la plupart des dcodeurs
de codes algbriques acceptent des entres souples. Par lintermdiaire de la
concatnation (chapitre 6), les rendements des codes algbriques peuvent tre
abaisss des valeurs comparables celles des codes convolutifs. Une dirence
demeure cependant entre les deux sous-familles : le nombre dtats logiques
possibles des codeurs algbriques est gnralement trs lev, ce qui en empche
le dcodage par des mthodes dtat exhaustives. Les algorithmes de dcodage
sappuient sur des techniques propres chaque code. Les codeurs convolutifs ont
un nombre restreint dtats, de 2 256 en pratique et leur dcodage utilise une
reprsentation dtats complte, dite en treillis (chapitre 5). Pour cette raison,
cet ouvrage a conserv la structuration classique qui distingue, provisoirement,
codes algbriques et codes convolutifs.
Le codage moderne fait appel des structures concatnes ou composites,
qui utilisent plusieurs codeurs lmentaires et dont le dcodage seectue par
passages rpts dans les dcodeurs associs et par change dinformations de
nature probabiliste. Les turbocodes (1993) ont ouvert la voie ce type de trai-
tement itratif et, depuis, de nombreuses structures composites qui sappuient
sur le dcodage itratif, ont t imagines (ou retrouves). Trois dentre elles
sont approfondies dans cet ouvrage : les turbocodes, dans leur version originale
et dans leur volution rcente, les codes produits dcods itrativement et les
LDPC (Low Density Parity Check ). Tous ces codes ont t adopts dans des
normes internationales et la comprhension de leurs procds de codage et de
leurs algorithmes de dcodage est une base largement susante pour aborder
tout autre principe de codage distribu et de dcodage itratif associ.
Chapitre 2

Communications numriques

2.1 Modulations Numriques


2.1.1 Introduction
La fonction de modulation a son origine dans les communications radiolec-
triques. Un metteur ne peut rayonner une onde lectromagntique que dans
une portion limite et gnralement troite du spectre, qui peut grossirement
tre dcrite comme une fentre frquentielle de largeur f centre sur une
frquence f0 , avec f
f0 . Les messages transmettre, qui peuvent tre
de nature analogique (par exemple la parole) ou numrique (par exemple le
tlgraphe Morse), sont reprsents par des signaux noccupant que le bas du
spectre de frquences. Le spectre du signal issu dun microphone dans le cas
de la parole ne stend pas au-del de quelques kilohertz. Il en est de mme
du signal qui reprsente par une tension maintenue brivement (Tit) ou plus
longtemps (Tat) les deux lments du code Morse, car la vitesse de mani-
pulation de quelques dizaines de signes par seconde est trs petite par rapport
la frquence f0 qui se mesure en centaines de kilohertz ou en mgahertz. Une
autre utilit de la modulation est le multiplexage frquentiel qui permet plu-
sieurs communications simultanes sur un mme support large bande (cble
ou bre optique) aisment spares du fait quelles occupent chacune une bande
spcique, disjointe de celle des autres.
Une onde sinusodale de frquence f0 peut tre reprsente par la fonction :

s(t) = a cos(2f0 t + ) (2.1)

o t note le temps et o f0 est constante. La modulation consiste faire d-


pendre du signal transmettre lun et/ou lautre des paramtres a, lamplitude,
et , la phase. Le signal modul s(t) possde alors, comme on le souhaite, un
spectre troit centr sur f0 .
Le signal transmettre sera dit dans la suite signal modulant. La modulation
consiste faire varier un des paramtres a et en fonction du signal modulant si
20 Codes et turbocodes

celui-ci est analogique. Dans le cas dun signal numrique, le signal modulant est
une suite dlments dun ensemble ni, ou symboles, appliqus au modulateur
des instants discrets qui seront dits instants signicatifs. Cette suite sera dite
message numrique et on supposera que les symboles sont des donnes binaires
appliques priodiquement lentre du modulateur, toutes les Tb secondes,
donc avec un dbit binaire D = 1/Tb bits par seconde. Les donnes binaires de
cette suite seront supposes indpendantes et identiquement distribues (iid).
Un message numrique donn, par exemple binaire, peut tre remplac par sa
m-ime extension obtenue en groupant les symboles initiaux par paquets
de m. Alors les symboles sont des nombres m chires binaires (ou m-uples),
dont le nombre total est M = 2m , appliqus au modulateur des instants
signicatifs de priode mTb . Si la m-ime extension est entirement quivalente
au message (dont elle nest quune description dirente), le signal modul
par le message dorigine et celui qui lest par sa m-ime extension nont pas les
mmes proprits, notamment en ce qui concerne sa largeur de bande, dautant
plus troite que m est grand. Le choix du paramtre entier m permet donc de
faire varier les caractristiques du message modul.
Une modulation numrique implique de dnir un ensemble discret de va-
leurs pouvant tre prises par a et chacun des instants signicatifs, en nombre
gal celui des symboles possibles, soit M = 2m pour la m-ime extension dun
message binaire, et en correspondance bijective avec eux. Cet ensemble est ap-
pel constellation pour des raisons qui vont tre dites un peu plus loin. Alors un
message quelconque sera reprsent par un lment (point) de la constellation.
On remarquera que les lments du message numrique transmettre sont de
nature abstraite (par exemple un chire binaire, 0 ou 1, ou le m-uple qui re-
prsente les symboles de la m-ime extension dun message binaire) tandis que
les paramtres a et reprsentent des grandeurs physiques qui ne peuvent tre
ajustes ou connues quavec une prcision nie. Il faut supposer que lcart entre
ces paramtres et leurs valeurs nominales dans la constellation reste ngligeable
par rapport au bruit qui aecte la transmission.
Considrons le signal complexe :

(t) = a exp[j(2f0 t + )] (2.2)

dont s(t) est la partie relle, o j est solution de lquation x2 + 1 = 0. On peut


reprsenter (t) sous la forme du produit

(t) = exp(2jf0 t), (2.3)

o seul le premier facteur


= a exp(j) (2.4)
dpend des paramtres a et qui reprsentent les donnes transmettre. Les
valeurs prises par ce premier facteur pour toutes les valeurs possibles des pa-
ramtres peuvent tre reprsentes par des points dans le plan complexe. Len-
semble de ces points est alors appel constellation et le plan complexe est dit
2. Communications numriques 21

plan de Fresnel. Le signal modul (2.1) est la partie relle du signal complexe
(t) dni par (2.3).
Si la correspondance tablie entre le signal modulant et les paramtres va-
riables est instantane, la modulation est dite sans mmoire. Il peut tre utile
que cette correspondance soit tablie entre les paramtres variables et une fonc-
tion des valeurs prises antrieurement par le signal modulant. Par exemple, si
celui-ci est analogique, un procd classique de modulation (dit de frquence)
consiste faire varier proportionnellement lintgrale du signal modulant
par rapport au temps. Dans le cas dune modulation numrique, de mme, le
point de la constellation peut tre choisi pour reprsenter le symbole prsent
linstant considr, et la modulation est alors dite sans mmoire, ou bien
un symbole obtenu en le combinant avec dautres symboles antrieurs. Une
modulation peut donc tre analogique ou numrique, avec ou sans mmoire.
Nous nous restreindrons dans toute la suite aux modulations numriques qui
direront les unes des autres par la forme et le nombre de points de leur
constellation, ainsi quventuellement par un eet de mmoire. Quand celui-ci
est obtenu en combinant le symbole appliqu avec des symboles antrieurs, il
peut tre interprt comme une transformation prliminaire du message num-
rique. Par ailleurs, il est souvent ncessaire dassurer la continuit de la phase
pour amliorer la forme du spectre des signaux moduls, ce qui implique un
eet de mmoire.
Le choix dun systme de modulation dpend de nombreux facteurs. Les
signaux moduls seront mis sur un canal imparfait, perturb par laddition
de signaux parasites nomms collectivement bruit et souvent, en radiolectri-
cit, aects de variations de lamplitude du signal reu dues par exemple
un changement rapide des conditions de propagation, phnomne nomm va-
nouissement. Malgr ces dfauts du canal, on souhaite recevoir les messages
modulants avec une faible probabilit derreur, ce qui implique que les signaux
qui leur sont associs soient aussi dirents que possible. Dautre part, quil
sagisse de radiolectricit ou de multiplexage, le spectre radiolectrique est
commun plusieurs utilisateurs dont chacun perturbe les autres. On souhaite
donc concentrer la puissance mise dans un intervalle de frquence aussi bien
dlimit que possible, ce qui implique de choisir les paramtres de la modu-
lation pour doter le spectre de la forme la mieux approprie. Le spectre dun
signal de la forme gnrale (2.3) se compose dun lobe principal centr sur f0
qui concentre la plus grande partie de la puissance mise et de queues ou lobes
secondaires o la densit spectrale dcrot plus ou moins vite par rapport la
frquence centrale f0 . Quel que soit le systme de modulation, la largeur du lobe
principal est proportionnelle la rapidit de modulation R = D/m = 1/mTb ,
exprime en bauds. La dcroissance de la densit spectrale susamment loin
de la frquence centrale ne dpend que des discontinuits du signal modulant
et de ses drives. Elle varie en 1/(f f0 )2(d+1) o d est lordre le plus petit
dune drive du signal discontinue (d = 0 si le signal modul lui-mme est dis-
continu). On remarquera quil nest possible daugmenter la valeur de d quen
22 Codes et turbocodes

introduisant un retard croissant entre linstant o un symbole modulant est


appliqu au modulateur et linstant caractristique lui correspondant.
Les principaux paramtres associs la modulation sont donc la taille et
la forme de la constellation employe (dont dpend, sur un canal donn, la
probabilit derreur), la largeur du lobe principal du spectre du signal modul
et la dcroissance de sa densit spectrale loin de la frquence centrale. Ils sont
dans une large mesure en conit : par exemple, on ne pourra rduire la largeur
du lobe central quen augmentant la taille de la constellation, au dtriment
de la probabilit derreur pour une mme puissance. Le choix dun systme de
modulation ne peut donc que rsulter dun compromis adapt une application
dtermine. Outre les paramtres indiqus, la complexit de la ralisation doit
tre prise en compte. Par exemple, une mise en forme amliorant la dcroissance
des lobes secondaires du spectre par augmentation de lordre d de la premire
drive discontinue, ou bien laugmentation de la taille de la constellation pour
diminuer le lobe central du spectre, conduisent accrotre la complexit du
modulateur.

2.1.2 Modulations Linaires Sans Mmoire


Modulation par dplacement damplitude M tats : MDA-M
Observons dabord un cas particulier de modulation damplitude : la mo-
dulation par tout ou rien (en anglais OOK, pour On O Keying), pour laquelle
a dans lexpression (2.1) prend la valeur 0 ou A. Lun des tats binaires cor-
respond donc une extinction de la porteuse. La prsence et labsence de la
porteuse peuvent tre reconnues indpendamment de la connaissance de la
phase , en mesurant lnergie du signal reu pendant un intervalle de temps
petit lchelle de la priode 1/f0 de londe porteuse, ce que lon appelle d-
tection incohrente. La gure 2.1 reprsente une tranche temporelle dun signal
modul en amplitude par tout ou rien.

Figure 2.1 Modulation damplitude par tout ou rien (OOK : On O Keying).

Dans le cas gnral de la modulation damplitude M tats (ou Amplitude


Shift Keying ASK en anglais), lamplitude de la porteuse est la grandeur
module aj = Aj h(t) pour j = 1, 2, ..., M o Aj prend une valeur parmi M =
2m valeurs en fonction du groupe de donnes prsent lentre du modulateur
et h(t) est une porte temporelle damplitude unit et de dure T . Le modulateur
2. Communications numriques 23

dlivre donc des signaux de la forme :

sj (t) = Aj h(t) cos(2f0 t + 0 ) (2.5)

avec Aj = (2j 1 M )A j = 1, 2, , M o A est constante (2.6)


et :
h(t) = 1 pour t [0, T [
(2.7)
= 0 ailleurs
Lamplitude Aj du signal modul est constante pendant une dure T puis
change de valeur, le signal modul transmet donc log2 (M ) donnes binaires
toutes les T secondes. On peut noter que la moiti des amplitudes nominales
Aj sont ngatives. Lidentit a cos = a cos( + ) implique alors une dmo-
dulation cohrente o la phase est connue. La phase ntant souvent connue
qu un multiple de prs, un message binaire o les symboles sont 1 ne sera
dmodul quau signe prs.
Pour un signal MDA-M, les dirents tats du signal modul sont situs
sur une droite et sa constellation est donc une dimension dans le plan de
Fresnel. Il existe de nombreuses faons de faire lassociation entre la valeur
de lamplitude du signal modul et la ralisation particulire dun groupe de
donnes de m = log2 (M ) donnes. En gnral, deux valeurs adjacentes prises
par lamplitude on associe deux groupes de donnes qui dirent par une seule
valeur binaire. Cette association particulire est appele codage de Gray. Elle
permet de minimiser les erreurs commises par le rcepteur. En eet, lorsque le
rcepteur slectionne une amplitude adjacente lamplitude mise cause du
bruit, ce qui correspond la situation la plus frquente, on commet une seule
erreur pour m = log2 (M ) donnes transmises. Nous avons reprsent sur la
gure 2.2 deux exemples de constellations de signal modul en amplitude avec
codage de Gray.

Figure 2.2 Exemple de constellations de signal MDA-4 et MDA-8 avec codage de


Gray

Lnergie moyenne Es utilise pour transmettre un symbole M -aire est gale


:
T
 
Es = E A2j cos2 (2f0 t + 0 )dt
0

o E , esprance de A2j a pour expression A2 (M 2 1)/3
A2j
En faisant lhypothse que f0 >> T1 , la relation prcdente donne lnergie
moyenne Es :
A2 T (M 2 1)
Es = (2.8)
2 3
24 Codes et turbocodes

Lnergie moyenne Eb utilise pour transmettre une donne binaire est :


Es
Eb = (2.9)
log2 (M )
Pour une transmission ot continu de donnes, le signal modul en am-
plitude peut scrire sous la forme :

S(t) = A ai h(t iT ) cos(2f0 t + 0 ) (2.10)
i

o les {ai } sont une suite de symboles M -aires, appels symboles de modulation,
qui prennent les valeurs (2j 1 M ), j = 1, 2, , M . Dans lexpression du
signal modul, i est lindice temporel.
Le signal S(t) peut encore se mettre sous la forme :
S(t) = e {se (t) exp (j(2f0 t + 0 ))} (2.11)
o se (t) est lenveloppe complexe du signal S(t) avec :

se (t) = A ai h(t iT ) (2.12)
i

En tenant compte du fait que les donnes di dlivres par la source dinfor-
mation sont iid, les symboles de modulation ai sont indpendants, moyenne
nulle et de variance gale (M 2 1)/3.
Il peut tre montr que la densit spectrale de puissance (dsp) du signal
S(t) est gale :
1 1
S (f ) = s (f f0 ) + se (f + f0 ) (2.13)
4 e 4
avec :  2
M2 1 2 sin f T
se (f ) = A T (2.14)
3 f T
La dsp de se (t) exprime en dB est reprsente dans la gure 2.3 en fonction
de la frquence normalise f T , pour M = 4 et A2 T = 1.
La dsp de S(t) est centre sur la frquence porteuse f0 et son enveloppe
dcrot en f 2 . Elle est constitue dun lobe principal de largeur 2/T et de lobes
secondaires qui sannulent priodiquement en f0 k/T .

Remarque
La bande occupe est, en toute rigueur innie. Pratiquement, on peut dcider
de ne transmettre quun pourcentage de la puissance du signal S(t) et dans ce
cas, la bande occupe est nie. Si, par exemple, on dcide de transmettre 99%
de la puissance du signal modul, ce qui ninduit quune faible distorsion du
signal S(t), alors la bande occupe est denviron 8/T o 1/T est la rapidit de
modulation. On verra dans la section 2.3 quil est possible de rduire fortement
cette bande sans dgrader les performances de la modulation. Cette remarque
est valable pour toutes les modulations linaires.
2. Communications numriques 25

Figure 2.3 Densit spectrale de puissance (dsp) de lenveloppe complexe dun signal
MDA-4, avec A2 T = 1.

Modulation par dplacement de phase M tats : MDP-M


Pour cette modulation appele aussi Phase Shift Keying M-PSK en an-
glais, cest la phase de la porteuse qui est la grandeur module. Le modulateur
dlivre des signaux de la forme :

sj (t) = Ah(t) cos(2f0 t + 0 + j ) (2.15)

o f0 est la frquence de la porteuse, 0 sa phase et h(t) une porte damplitude


unit et de dure T . La phase module j prend une valeur parmi M = 2m
avec :

j = (2j + 1) + 0 0 j (M 1) (2.16)
M
Les dirents tats de la phase sont quirpartis sur un cercle de rayon A.
La phase 0 est xe /2 pour une modulation MDP-2 et 0 pour une
modulation MDP-M avec M > 2 tats.
Le signal modul peut encore scrire sous la forme :

sj (t) = Ah(t) [cos j cos(2f0 t + 0 ) sin j sin(2f0 t + 0 )] (2.17)

Sous cette forme, le signal MDP-M peut sexprimer comme la somme de deux
porteuses, cos(2f0 t + 0 ) et sin(2f0 t + 0 ) en quadrature, modules en
amplitude par cos j et sin j avec cos2 j + sin2 j = 1. On peut vrier que
lorsque M est un multiple de 4, les valeurs possibles de lamplitude des deux
porteuses sont identiques.
Dans la gure 2.4 nous avons reprsent deux constellations dun signal
modul en phase avec codage de Gray. Les constellations sont deux dimensions
26 Codes et turbocodes

et les dirents tats du signal modul sont sur un cercle de rayon A. On dit
que la constellation est circulaire.

Figure 2.4 Exemples de constellations de signal modul en phase avec codage de


Gray.

Lnergie Es pour transmettre un tat de phase cest--dire un groupe de


log2 (M ) donnes binaires, est gale :

T
A2 T
Es = A2 cos2 (2f0 t + 0 + j )dt = si f0 >> 1/T (2.18)
2
0

Lnergie Es est toujours la mme quel que soit ltat de phase mis. Lnergie
utilise pour transmettre une donne binaire est Eb = Es / log2 (M ).
Pour une transmission ot continu de donnes, le signal modul peut
scrire sous la forme :


S(t) = A ai h(t iT ) cos(2f0 t + 0 )
i  (2.19)

bi h(t iT ) sin(2f0 t + 0 )
i

o les symboles de modulation ai et bi prennent leurs valeurs dans les ensembles


suivants :   
ai  cos (2j + 1) M

+ 0 0 j (M 1)
(2.20)
bi sin (2j + 1) M
+ 0 0 j (M 1)
Le signal S(t) peut encore se mettre sous la forme donne par (2.11) avec :

se (t) = A ci h(t iT ), ci = ai + jbi (2.21)
i

En tenant compte du fait que les donnes di dlivres par la source dinfor-
mation sont iid, les symboles de modulation ci sont indpendants, moyenne
nulle et de variance unit.
La dsp du signal S(t) est encore gale :
1 1
S (f ) = s (f f0 ) + se (f + f0 )
4 e 4
2. Communications numriques 27

avec cette fois-ci :  2


sin f T
se (f ) = A2 T (2.22)
f T
La dsp a une allure similaire celle de la gure 2.3.

Modulation damplitude sur deux porteuses en quadrature : MAQ-M


Pour cette modulation appele aussi Quadrature Amplitude Modulation
M-QAM en anglais, ce sont deux porteuses en quadrature cos(2f0 t + 0 ) et
sin(2f0 t + 0 ) qui sont modules en amplitude. Le modulateur dlivre des
signaux de la forme :

sj (t) = Acj h(t) cos(2f0 t + 0 ) Asj h(t) sin(2f0 t + 0 ) (2.23)

o f0 est la frquence de la porteuse, 0 sa phase et h(t) une porte damplitude


unit et de dure T .
Deux situations peuvent se prsenter selon que la longueur m des groupes
de donnes lentre du modulateur est paire ou non. Si m est pair, alors
M = 2m est un carr parfait (4, 16, 64, 256, . . .) ; dans le cas contraire, M est
simplement une puissance de deux (8, 32, 128, . . .).
Lorsque m est pair, le groupe de donnes peut tre spar en deux sous-
groupes de longueur m/2, chacun tant associ respectivement aux amplitudes
Acj et Asj qui prennent leurs valeurs dans lensemble (2j 1 M )A, j =

1, 2, , M . Sur la gure 2.5 sont reprsentes les constellations des modu-
lations MAQ-16 et MAQ-64. Ces constellations sont dites carres.

Figure 2.5 Constellations de deux modulations de type MAQ.

Lorsque m est impair, le signal modul MAQ-M ne peut plus tre obtenu
comme une combinaison de deux porteuses en quadrature modules en am-
plitude. Toutefois, on peut construire le signal MAQ-M partir dun signal
MAQ-N modul classiquement sur deux porteuses en quadrature, o N est un
carr immdiatement suprieur M en interdisant (N M ) tats. Par exemple,
la modulation MAQ-32 peut tre obtenue partir dune modulation MAQ-36
o Acj et Asj prennent les valeurs (A, 3A, 5A) en interdisant les quatre
28 Codes et turbocodes

tats damplitude (5A, 5A) pour les couples (Acj et Asj ). La constellation de
la modulation MAQ-32 est reprsente dans la gure 2.6.

Figure 2.6 Constellation de la modulation MAQ-32.

Le signal MAQ-M peut encore scrire sous la forme :

sj (t) = Vj h(t) cos(2f0 t + 0 + j ) (2.24)

avec :  Asj
Vj = (Acj )2 + (Asj )2 j = arctan
Acj
Sous cette forme, la modulation MAQ-M peut tre considre comme une mo-
dulation combine de phase et damplitude. En supposant que la phase prenne
M1 = 2m1 tats et lamplitude M2 = 2m2 tats, le signal modul transmet
log2 (M1 M2 ) = m1 + m2 donnes toutes les T secondes. La gure 2.7 repr-
sente la constellation dune modulation combine de phase et damplitude pour
M = 16 (M1 = 4, M2 = 4).

Figure 2.7 Constellation dune modulation combine de phase et damplitude pour


M = 16.
2. Communications numriques 29

Lnergie moyenne Es pour transmettre le couple (Acj , Asj ) cest--dire un


groupe de log2 (M ) donnes binaires, est gale :
T
 
Es = E Vj2 cos2 (2f0 t + 0 + j )dt (2.25)
0
 
Pour un groupe de donnes de longueur m paire, E Vj2 = 2A2 (M 1)/3 et
ainsi, pour f0 >> 1/T , lnergie moyenne Es est gale :
M 1
Es = A2 T (2.26)
3
Lnergie moyenne utilise pour transmettre une donne binaire est Eb =
Es / log2 (M ).
Pour une transmission ot continu de donnes, le signal modul peut
scrire sous la forme :


S(t) = A ai h(tiT ) cos(2f0 t+0 )
i  (2.27)

bi h(tiT ) sin(2f0 t+0 )
i

o les symboles de modulationmai et bi prennent les valeurs (2j 1 M ),
j = 1, 2, , M pour M = 2 avec m pair. Le signal S(t) peut tre exprim
par les relations (2.11) et (2.21) :
S(t) = e {se (t) exp j(2f0 t + 0 )}

avec se (t) = A ci h(t iT ), ci = ai + jbi
i
Les donnes binaires di dlivres par la source dinformation tant iid, les sym-
boles de modulation ci sont indpendants, moyenne nulle et de variance gale
2(M 1)/3.
La dsp du signal S(t) est encore donne par (2.13) avec :
 2
2(M 1) 2 sin f T
se (f ) = A T (2.28)
3 f T
Loccupation spectrale dun signal modul MAQ-M est donc la mme que
celle des signaux MDA-M et MDP-M.

2.1.3 Modulations de frquence sans mmoire M tats :


MDF-M
Pour cette modulation appele aussi Frequency Shift Keying M-FSK en
anglais, cest la frquence qui est la grandeur module. Le modulateur dlivre
des signaux de la forme :
sj (t) = Ah(t) cos(2(f0 + fj )t + j ) (2.29)
30 Codes et turbocodes

o fj = jf , j = 1, 2, , M et h(t) est une porte damplitude unit et


de dure T . Les j sont des phases alatoires indpendantes de ralisation
constante sur lintervalle [0, T [. Les signaux sj (t) peuvent donc tre dlivrs
par des oscillateurs indpendants puisquil nexiste aucune relation entre les
phases j .
Calculons le coecient de corrlation entre deux signaux moduls prenant des
tats de frquence dirents.
T
j,n = A2 cos(2(f0 + jf )t + j ) cos(2(f0 + nf )t + n )dt (2.30)
0

Aprs intgration et en supposant f0 >> 1/T , on obtient :


 
A2 T sin(2(j n)f T + j n ) sin(j n )
j,n = (2.31)
2 2(j n)f T 2(j n)f T
En choisissant f = 1/T , j,n = 0 j = n et les M signaux moduls sont
orthogonaux. Le choix de signaux orthogonaux est gnralement retenu car il
permet de sparer aisment les signaux de frquences direntes en rception.
Aux instants iT o le signal MDF-M change de frquence, le signal modul
prsente une discontinuit car les phases j sont indpendantes. On parle alors
de modulation de frquence phase discontinue. La gure 2.8 donne un exemple
de signal MDF-2.

Figure 2.8 Signal modul en frquence avec phase discontinue.

Lnergie Es utilise pour transmettre un groupe de donnes sobtient comme :


T
j A2 T
Es = A2 cos2 (2(f0 + )t + j )dt = si f0 >> 1/T (2.32)
T 2
0
2. Communications numriques 31

et lnergie Eb utilise pour transmettre une donne binaire sobtient comme :


Es
Eb = (2.33)
log2 (M )
Pour une transmission ot continue de donnes, le signal modul peut
scrire sous la forme :
 ai
S(t) = A h(t iT ) cos(2(f0 + )t + i ) (2.34)
i
T

o le symbole de modulation ai est gal 1, 2, , M, M = 2m . Toutes les


T secondes, le signal modul S(t) transmet un groupe de log2 (M ) donnes
binaires.
Pour une modulation MDF-2, la densit spectrale de puissance du signal
S(f ) est gale :
1
S (f ) = ((f f1 ) + (f + f1 ) + (f f2 ) + (f + f2 )) (2.35)
4
o f1 = f0 + 1/T et f2 = f0 + 2/T et :
 2
A2 T sin f T A2
(f ) = + (f ) (2.36)
4 f T 4
o (f ) reprsente la distribution de Dirac. La dsp dun signal MDF-2 pos-
sde une partie continue et une partie discrte. En se limitant aux deux lobes
principaux de cette densit spectrale de puissance, la bande de frquences oc-
cupe par un signal MDF-2 est de 3/T , soit trois fois la rapidit de modulation.
Rappelons qu mme rapidit de modulation, un signal MDP-M ou MAQ-M
occupe une bande de frquence de seulement 2/T . La partie discrte correspond
deux raies spectrales situes en f1 et f2 .

2.1.4 Modulations avec mmoire par dplacement de fr-


quence phase continue : MDF-M PC
Pour les modulations de frquence phase continue, appeles Continuous
Phase Frequency Shift Keying CP M-FSK en anglais, le signal modul ne
prsente pas de discontinuits aux instants de changement de frquence. La
gure 2.9 reprsente une tranche temporelle dun signal MDF-M PC pour M =
2. Le signal MDF-M PC a pour expression :

S(t) = A cos(2f0 t + 0 + (t)) (2.37)

o f0 est la frquence de la porteuse et 0 sa phase.


Lexcursion de la frquence instantane (fi = d/dt) est :
1 d 
f (t) = =h ai g(t iT ) (2.38)
2 dt i
32 Codes et turbocodes

o h est appel indice de modulation et les symboles M -aires ai prennent leurs


valeurs dans lalphabet {1, 3, , (2p + 1), , ( M 1) } ; M = 2m .
La fonction g(t) est causale et support limit :
g(t) = 0 t [0, LT [ , L entier
(2.39)
= 0 ailleurs
t
En posant q(t) = g( )d et en imposant pour normaliser :
0
1
q(t) = si t LT
2
on peut crire la phase (t) sur lintervalle [iT, (i + 1)T [ :

i 
iL
(t) = 2h an q(t nT ) + h an (2.40)
n=iL+1 n=

Figure 2.9 Tranche temporelle dun signal MDF-2 PC.

Lorsque L = 1, les modulations de frquence phase continue sont dites


rponse totale (full response en anglais) alors que pour L > 1, elles sont dites
rponse partielle (partial response).
Pour illustrer les modulations de frquence phase continue, nous allons
considrer trois exemples, la modulation MSK (Minimum Shift Keying), la
modulation L-RC (Raised Cosine pulse) de dure L et la modulation GMSK
(Gaussian Minimum Shift Keying).

Modulation de frquence phase continue avec un indice de modu-


lation h = 1/2 : Minimum Shift Keying ou MSK
Pour cette modulation, lindice h est gal 1/2 et les symboles ai sont
binaires (1). La fonction g(t) de lquation (2.39) est une porte damplitude
2. Communications numriques 33

1/2T et de dure T . Ainsi la fonction q(t) est gale :


q(t) = 0 t0
q(t) = t
2T 0tT (2.41)
q(t) = 1
2 tT
La modulation MSK est une modulation de frquence phase continue et
rponse totale (L = 1).
Sur lintervalle [iT, (i + 1)T [, la phase (t) du signal MSK a pour expres-
sion :
(t iT ) 
i1
(t) = ai + an (2.42)
2 T 2 n=
Lvolution de la phase (t) en fonction du temps est reprsente sur la -
gure 2.10. On peut remarquer que la phase (t) varie linairement sur un in-
tervalle de dure T et quil ny a pas de discontinuit aux instants iT .

0.5

1
Phase (rad)

1.5

2.5

3.5
0 T 2T 3T 4T 5T 6T 7T 8T 9T 10T

Figure 2.10 Variation de la phase dun signal MSK en fonction du temps.

En utilisant les expressions (2.37) et (2.42), le signal MSK peut scrire sous
la forme :
ai !
S(t) = A cos 2(f0 + )t i ai + i + 0 iT t < (i + 1)T (2.43)
4T 2
avec :

i1
i = ai (2.44)
2 n=
Le signal MSK utilise deux frquences instantanes pour transmettre les sym-
boles binaires ai = 1.
1
f1 = f0 + 4T si ai = +1
(2.45)
f2 = f0 1
4T si ai = 1
34 Codes et turbocodes

Lexcursion de frquence est alors la moiti du dbit binaire, f = f1


f2 = 1/2T . Cest lcart de frquence minimal qui permettent lutilisation dun
dmodulateur cohrent, do ladjectif minimum dans le nom de la modulation.
Le signal modul MSK peut aussi scrire sous la forme :


S(t) = A c2i1 h(t 2iT ) cos 2T
t
cos(2f0 t + 0 )
i  (2.46)

c2i h(t (2i + 1)T ) sin 2T sin(2f0 t + 0 )
t
i

o les symboles ci se dduisent des symboles ai par un codage par transition.


c2i = a2i c2i1 et c2i1 = a2i1 c2i2 (2.47)
et h(t) est une porte damplitude unit, mais de dure 2T .
h(t) = 1 si t [T, T [
(2.48)
= 0 ailleurs
La modulation MSK peut tre vue comme une modulation en amplitude des
0 ) et sin 2T sin(2f0 t + 0
t t
termes cos 2T cos(2f0 t + ) par deux trains nu-
mriques binaires uc (t) = c2i1 h(t 2iT ) et us (t) = c2i h(t (2t + 1)T )
i i
dont les transitions sont dcales de T . Chaque train numrique permet de
transmettre une donne binaire toutes les 2T secondes et ainsi, le dbit binaire
achemin par une modulation MSK est de D = 1/Tb avec T = Tb .
La modulation MSK est un cas particulier des modulations CP M-FSK
puisquelle est linaire. La dsp, o lon peut noter que contrairement (2.36)
il ny a pas de raies spectrales, vaut :
1 1
S (f ) = (f f0 ) + (f f0 ) (2.49)
4 4
avec :  2
16A2 T cos 2f T
(f ) = (2.50)
2 1 16f 2 T 2
Sur la gure 2.11 est reprsente la dsp de lenveloppe complexe dun signal
MSK exprime en dB en fonction de la frquence normalise f Tb . Nous y
avons aussi trac la dsp de lenveloppe complexe dun signal MDP-4. Pour que
la comparaison de ces deux densits spectrales de puissance ait un sens, nous
avons suppos que le dbit tait identique pour ces deux modulations (soit
T = 2Tb pour la modulation MDP-4).
La largeur du lobe principal de la densit spectrale de puissance dune mo-
dulation MSK est de 3/2Tb alors quelle nest que de 1/Tb pour la modulation
MDP-4. Ainsi, pour un mme dbit transmis, le lobe principal de la modula-
tion MSK occupe 50% de bande de plus que celui de la modulation MDP-4.
Toutefois, lenveloppe de la dsp dun signal MSK dcrot en f 4 alors quelle
ne dcrot quen f 2 pour la modulation MDP-4. Ceci a pour consquence que
la bande de frquences B qui contient 99% de la puissance du signal modul
pour la MSK est de 1, 2/Tb alors quelle est denviron 8/Tb pour la MDP-4.
2. Communications numriques 35

Figure 2.11 Densit spectrale de puissance de lenveloppe complexe des signaux


MSK et MDP-4.

Modulation en cosinus surlev : Raised Cosine pulse ou L-RC


Pour cette modulation, la fonction g(t) de lquation (2.39) a pour expres-
sion :
g(t) = 2LT 1
(1 cos 2t
LT ) pour 0 t LT (2.51)
= 0 ailleurs
La densit spectrale de puissance de cette modulation dcrot dautant plus
rapidement que le paramtre L est grand. Par exemple, la dsp est -40 dB
pour une modulation 2RC (h = 1/2, ai = 1) pour f T = 1, 2 alors que pour
une modulation 4RC (h = 1/2,ai = 1), ce niveau est atteint pour f T = 0, 7.
La fonction q(t) est gale :

q(t) = t
2LT 1
4 sin 2t
LT 0 t LT
(2.52)
1
= 2 t > LT

Modulation Gaussian Minimum Shift Keying ou GMSK


Lindice h de cette modulation est gal 1/2 et les symboles ai sont bi-
naires (1). La fonction g(t) de lquation (2.39) est dnie par le produit de
convolution :
g(t) = (t) (t) (2.53)
o (t) est une porte damplitude 1/T (T = Tb ) sur lintervalle [T /2, T /2] et
(t) est la rponse impulsionnelle dun ltre gaussien de bande, Bg , mi-densit
spectrale :
36 Codes et turbocodes


2
(t) = Bg exp(2 2 Bg2 t2 )/ ln 2 (2.54)
ln 2
Aprs calcul du produit de convolution, la fonction g(t) peut scrire sous la
forme :
" # $ # $%
1 2 T 2 T
g(t) = erf Bg (t + ) erf Bg (t ) (2.55)
2T ln 2 2 ln 2 2

o erf(x) reprsente la fonction derreur dnie par :


x
2
erf(x) = exp(u2 )du

0

La gure 2.12 reprsente la variation de g(t) en fonction de la variable norma-


lise t/T , pour direntes valeurs de la bande passante normalise BN = Bg T .
On notera que le graphe de la fonction g(t) a t dcal de 2T pour BN = 0, 2
et de 1, 5T pour BN = 0, 3.

Figure 2.12 Variation de la fonction g(t) pour deux valeurs de BN .

Le terme BN permet de xer ltalement temporel de la fonction g(t). Ainsi


pour BN = 0, 2, cette fonction est approximativement de dure 4T alors que
sa dure est seulement de 3T pour BN = 0, 3. Lorsque BN tend vers linni,
elle devient une porte de dure T (cas de la modulation MSK ). La dcrois-
sance du spectre est dautant plus rapide loin de la frquence centrale que
les drives du signal sannulent jusqu un ordre plus lev. Le produit de
convolution (2.53) est un moyen daugmenter sa concentration temporelle en
2. Communications numriques 37

conservant la continuite des drives de tous ordres. La gaussienne (Gaussian


MSK ) est la meilleure de ce point de vue puisque ses drives de tous ordres
sannulent en son centre, mais son support temporel est inni. La modulation
GMSK est donc une modulation de frquence phase continue et rponse
partielle (L > 1).
Sur lintervalle [iT, (i + 1)T [, la phase (t) du signal GMSK est gale :


i

iL
(t) = an q(t nT )+ an (2.56)
2 n=
n=iL+1

o L = 3 si BN = 0, 3 et L = 2 si BN = 0, 2.
Ainsi sur un intervalle [iT, (i + 1)T [, la phase (t) du signal GMSK dpend du
symbole ai mais aussi des symboles antrieurs au symbole ai (ai1 , ai2 ,
, aiL+1 ). Cette modulation non linaire prsente un eet de mmoire qui lui
confre de bonnes proprits spectrales. La modulation GMSK, avec une bande
passante normalise BN = 0, 3 a t retenue pour le systme de tlphonie
mobile GSM (Groupe Spcial Mobile et plus tard Global System for Mobile
communication). Prcisons quil nexiste pas dexpression simple de la densit
spectrale de puissance dun signal GMSK. Pour des valeurs de la bande pas-
sante normalise de 0,3 ou de 0,2, la densit spectrale de puissance du signal
GMSK ne prsente pas de lobes secondaires et sa dcroissance en fonction de
la frquence est trs rapide. Ainsi -10 dB la bande occupe par le signal
GMSK est approximativement de 200 kHz, et -40 dB de 400 kHz pour le
dbit normalis D = 271 kbit/s.

2.2 Structure et performances du rcepteur op-


timal sur canal gaussien
Lobjet de ce chapitre est de dterminer la structure et les performances du
rcepteur optimal pour des modulations avec et sans mmoire sur canal bruit
additif blanc gaussien (BABG). Le type de rcepteur considr est le rcepteur
cohrent o la frquence et la phase des signaux mis par le modulateur sont
supposes connues du rcepteur. En eet, le rcepteur cohrent est capable de
gnrer localement des signaux ayant la mme frquence et la mme phase que
ceux dlivrs par le modulateur contrairement au rcepteur dit rcepteur non
cohrent ou direntiel.
De manire gnrale, le rcepteur est constitu dun dmodulateur dont
lobjet est de translater en bande de base le signal modul, cest--dire sup-
primer la frquence porteuse, et dun circuit de dcision charg destimer les
blocs de donnes transmis. Le rcepteur est optimal au sens o il garantit une
probabilit derreur minimale sur les blocs de donnes estims.
38 Codes et turbocodes

2.2.1 Structure du rcepteur cohrent


Soient sj (t), j = 1, 2, , M les signaux mis sur le canal de transmission
perturb par un BABG b(t), de moyenne nulle et de densit spectrale de puis-
sance bilatrale gale N0 /2. Sur lintervalle de temps [0, T [, le signal reu par
le rcepteur est gal :
r(t) = sj (t) + b(t)
Les M signaux sj (t) engendrent un espace de dimension N  M , et peuvent
tre reprsents sous forme dune srie de fonctions p (t) orthonormes et pon-
dres.

N
sj (t) = sjp p (t)
p=1

o sjp est un scalaire gal la projection du signal sj (t) sur la fonction p (t).

T
sjp = sj (t)p (t)dt
0

Le bruit peut aussi tre reprsent sous forme dune srie de fonctions orthonor-
mes mais de longueur innie (dveloppement de Karhunen Loeve). Lorsque le
bruit est blanc, on montre que les fonctions orthonormes peuvent tre choisies
de faon arbitraire. Nous allons donc prendre les mmes fonctions orthonormes
que celles utilises pour reprsenter les signaux sj (t), mais aprs extension
linni de cette base de fonctions :

 
N
b(t) = bp p (t) = bp p (t) + b (t)
p=1 p=1

o bp est un scalaire gal la projection de b(t) sur la fonction p (t).

T
bp = b(t)p (t)dt
0

Les quantits bp sont des variables alatoires gaussiennes, de moyenne nulle,


non corrles et de variance 2 = N0 /2.
TT
E {bp bn } = E {b(t)b(t )}p (t)n (t )dtdt
00

Le bruit tant blanc, E {b(t)b(t )} = N0


2 (t t ) et ainsi :

T
N0 N0
E {bp bn } = p (t)n (t)dt = n,p (2.57)
2 2
0
2. Communications numriques 39

o n,p est le symbole de Kronecker, gal 1 si n = p et 0 si n = p.

En utilisant les reprsentations des signaux sj (t) et du bruit b(t) par leur
srie respective, on peut crire :


N
 
N
r(t) = (sjp + bp )p (t) + bp p (t) = rp p (t)+b (t)
p=1 p=N +1 p=1

Conditionnellement lmission du signal sj (t), les quantits rp sont des va-


riables alatoires gaussiennes, de moyenne et de variance N0 /2. Elles sont non
corrles au bruit b (t). En eet, nous avons :
&
'


E {rp b (t)} = E (sjp + bp ) bn n (t) p = 1, 2, , N
n=N +1

En tenant compte du fait que les variables bn , quel que soit n, sont moyenne
nulle et non corrles, on obtient :


E {rp b (t)} = E {bp bn } n (t) = 0 p = 1, 2, , N (2.58)
n=N +1

Les quantits rp et le bruit b (t) sont donc indpendants puisque gaussiens.

En conclusion, le rcepteur optimal peut baser sa dcision sur lobservation


des seules quantits rp p = 1, 2, , N avec :

T
rp = r(t)p (t)dt (2.59)
0

Le passage du signal r(t) dlivr par le canal de transmission aux N quantits


rp sappelle la dmodulation.

Exemple
Considrons une modulation MDP-M pour laquelle les signaux sj (t) sont
de la forme :
sj (t) = Ah(t) cos(2f0 t + 0 + j )
Les signaux sj (t) engendrent un espace N = 2 dimensions si M > 2. Les
fonctions p (t) p = 1, 2 orthonormes ont respectivement pour expressions :

2
1 (t) = cos(2f0 t + 0 )
T
2
2 (t) = T sin(2f0 t + 0 )
40 Codes et turbocodes

et les signaux sj (t) peuvent scrire :



T T
sj (t) = A cos j h(t)1 (t) A sin j h(t)2 (t)
2 2
Aprs dmodulation, lobservation R = (r1 , r2 ) est gale :

T T
r1 = A cos j + b1 r2 = A sin j + b2
2 2
Lobservation R = (r1 , r2 ) ne dpend plus que des tats de phase j et du
bruit car la frquence porteuse f0 a t supprime. On dit que lobservation
R = (r1 , r2 ) est en bande de base.
Lopration de dmodulation ncessite de connatre la frquence f0 et la
phase 0 de la porteuse, les signaux p (t) devant tre synchrones avec la por-
teuse gnre par le modulateur. Cest la raison pour laquelle on parle de d-
modulation synchrone ou de dmodulation cohrente.
Les N intgrateurs du dmodulateur peuvent tre remplacs par N ltres de
rponse impulsionnelle h(T t) suivis chacun dun chantillonneur linstant
t = T.

+

sj (t)j (t) h(T t) = sj ( )j ( )h(T t + )d


En chantillonnant en t = T , on obtient :
T
sj (t)j (t) h(T t) |t=T = sj ( )j ( )d
0

ce qui est bien gal la sortie de lintgrateur.


Le ltre de rponse impulsionnelle h(T t) est appel le ltre adapt au signal
h(t) de dure T . On peut montrer que ce ltre maximise le rapport signal
bruit sa sortie linstant t = T .
Pour une transmission ot continu de donnes, lintgration se fait sur
chaque intervalle [iT, (i + 1)T [ i = 1, 2, et, si on utilise des ltres adapts,
lchantillonnage est ralis aux instants (i + 1)T .
Aprs dmodulation, le rcepteur doit prendre une dcision sur le groupe
de donnes mis sur chaque intervalle de temps [iT, (i + 1)T [. Pour cela, il
recherche le signal sj (t) le plus vraisemblable en utilisant la rgle de dcision
du maximum de vraisemblance a posteriori :

sj (t) si Pr {sj (t) | R} > Pr {sp (t) | R} p = j p = 1, 2, , M

o sj (t) est le signal retenu et R = (r1 rp rN ) la sortie du dmodula-


teur. Pour simplier les notations, la marque du temps a t omise pour les
composantes de lobservation R. Pr {sj (t)/R} dsigne la probabilit de sj (t)
conditionnellement la connaissance de lobservation R.
2. Communications numriques 41

En utilisant la rgle de Bayes, le maximum de vraisemblance a posteriori


peut encore scrire :
sj (t) si j p(R|sj (t)) > p p(R|sp (t)) p = j p = 1, 2, , M
o j = Pr {sj (t)} dsigne la probabilit a priori dmettre le signal sj (t) et
p(R|sj (t)) est la densit de probabilit de lobservation R conditionnellement
lmission par le modulateur du signal sj (t).
En tenant compte du fait que les composantes rp = sjp + bp de lobserva-
tion R conditionnellement lmission du signal sj (t) sont gaussiennes, non
corrles, de moyenne sjp et de variance N0 /2, on peut crire :
(
N (
N
sj (t) si j p(rp |sj (t)) > n p(rp |sn (t))
p=1 p=1
n = j p = 1, 2, , M
En remplaant les densits de probabilit par leurs expressions respectives on
obtient :
# $

N 
N
1
sj (t) si j N exp N10 (rp sjp )2
0
p=1
# $

N 
N
> n N1
exp N0 1
(rp snp )2
0
p=1

Aprs simplication :

N 
N
sj (t) si rp sjp + Cj > rp snp + Cn n = j n = 1, 2, , M (2.60)
p=1 p=1

Ej 
N
o Cj = N0
2 ln(j ) 2 avec Ej = (sjp )2 .
p=1
En remarquant que :
T T 
N 
N
r(t)sj (t)dt = rp p (t) sjm m (t)dt
0 0 p=1 m=1

et en se rappelant que les fonctions p (t) sont orthonormes, on obtient :


T 
N
r(t)sj (t)dt = rp sjp
0 p=1

De la mme faon :
T T 
N 
N
s2j (t)dt = sjp p (t) sjm m (t)dt
0 0 p=1 m=1
42 Codes et turbocodes

et nalement :
T 
N
s2j (t)dt = s2jp
0 p=1

En tenant compte de ce qui prcde, la rgle de dcision du maximum de


vraisemblance a posteriori peut encore se mettre sous la forme :

T T
sj (t) si r(t)sj (t)dt + Cj > r(t)sn (t)dt + Cn
0 0
(2.61)
n = j n = 1, 2, , M

Ej T
o Cj = N0
2 ln(j ) 2 avec Ej = s2j (t)dt.
0
Si tous les signaux sj (t) sont mis avec la mme probabilit (j = 1/M ),
le terme Cj se rduit Ej /2. De plus, si tous les signaux sj (t) ont de plus
la mme nergie Ej = E (cas des modulations par dplacement de la phase
ou de la frquence), alors la rgle de dcision du maximum de vraisemblance a
posteriori se simplie et devient :

T T
sj (t) si r(t)sj (t)dt > r(t)sn (t)dt n = j n = 1, 2, , M (2.62)
0 0

2.2.2 Performances du rcepteur cohrent


Modulation par dplacement damplitude M tats
Pour une modulation MDA-M, les signaux sj (t) sont de la forme :

sj (t) = Aj h(t) cos(2f0 t + 0 )


avec :
Aj = (2j 1 M )A j = 1, 2, , M
Ils engendrent un espace de dimension N = 1 et ainsi lobservation R en sortie
du dmodulateur se rduit une composante r.

T
r= r(t)(t)dt
0

avec (t) = T2 cos(2f0 t + 0 ).
Pour une transmission ot continu de donnes, lestimation des sym-
boles ai se fait en intgrant le produit r(t)(t) sur chaque intervalle de temps
[iT, (i + 1)T [. Si un ltre adapt est utilis plutt quun intgrateur, lchan-
tillonnage en sortie du ltre est ralis aux instants (i + 1)T .
2. Communications numriques 43

En se plaant sur lintervalle [0, T [ et en supposant les donnes dinfor-


mations di iid, tous les tats damplitude sont quiprobables et la rgle de
dcision(2.60) conduit :
1 1
Aj si rsj s2j > rsn s2n n = j (2.63)
2 2
o Aj dsigne lamplitude estime avec :
T
T 1
sj = Aj cos(2f0 t + 0 )(t)dt = Aj si f0 >> (2.64)
2 T
0

Le rcepteur cohrent, reprsent dans la gure 2.13, prend sa dcision en


comparant lobservation r un ensemble de (M 1) seuils de la forme :
  
(M 2)A T2 , , 2pA T2 , , 2A T2 , 0,
   (2.65)
2A T2 , , 2pA T2 , , (M 2)A T2

Figure 2.13 Rcepteur cohrent pour modulation MDA-M.

Exemple  
Considrons une modulation MDA-4, les trois seuils tant 2A T2 , 0, 2A T2 .
Les dcisions sont les suivantes :

Aj = 3A si r < 2A T2

Aj = A si 2A T2 < r < 0

Aj = A si 0 < r < 2A T2

Aj = 3A si r > 2A T2

Lmission dun tat damplitude Aj correspond la transmission dun groupe


de log2 (M ) donnes binaires di . La probabilit derreur sur un groupe de don-
nes peut se calculer comme la valeur moyenne des probabilits derreur condi-
tionnelles P e2j1M donnes par :
) *
P e2j1M = Pr Aj = (2j 1 M )A | Aj = (2j 1 M )A
44 Codes et turbocodes

La probabilit derreur moyenne sur les symboles, note P es, est gale :

1 
M
P es = P e2j1M
M j=1

Les probabilits derreur conditionnelles peuvent tre classes en deux types.


Le premier type correspond aux probabilits que lobservation dpasse ou soit
infrieure un certain seuil et le second, aux probabilits que lobservation ne
soit pas comprise entre deux seuils.

TYPE 1 : Probabilits que lobservation dpasse ou soit infrieure un seuil


) *
P e(M 1) = Pr Aj = (M 1)A | Aj = (M 1)A
)  *
= Pr r < (M 2)A T2 | Aj = (M 1)A
) *
P e(M 1) = Pr Aj = (M 1)A | Aj = (M 1)A
)  *
= Pr r > (M 2)A T2 | Aj = (M 1)A

TYPE 2 : Probabilits que lobservation ne soit pas comprise entre deux seuils
) *
P e2j1M = Pr Aj = (2j 1 M )A | Aj = (2j 1 M )A
)  
P e2j1M = 1 Pr (2j 2 M )A T2 < r < (2j M )A T2 |
Aj = (2j 1 M )A}

Lobservation r est gaussienne


+ conditionnellement une ralisation de lampli-
tude Aj , de moyenne Aj T /2 et de variance N0 /2. Les probabilits condi-
tionnelles ont pour expressions :
,
1 A2 T
P e(M 1) = P e(M 1) = erfc
2 2N0

,
A2 T
P e(2j1M ) = erfc
2N0

o la fonction derreur complmentaire est toujours dnie par :


+
2
erfc(x) = 1 erf(x) = exp(u2 )du (2.66)

x
2. Communications numriques 45

Figure 2.14 Probabilit derreur moyenne P es en fonction du rapport Eb /N0 pour


direntes valeurs du paramtre M dune modulation MDA-M.

Pour le calcul de la probabilit derreur moyenne sur les groupes de donnes,


nous avons deux probabilits conditionnelles de type 1 et (M 2) probabilits
conditionnelles de type 2.
,
M 1 A2 T
P es = erfc
M 2N0

2 2
En introduisant lnergie moyenne Es = A2T (M 31) reue par groupe de don-
nes, la probabilit derreur moyenne est encore gale :

M 1 3 Es
P es = erfc
M M 2 1 N0

La probabilit derreur P es peut aussi sexprimer en fonction de lnergie


moyenne Eb = Es / log2 (M ) reue par donne di :
,
M 1 3 log2 (M ) Eb
P es = erfc
M M 2 1 N0
46 Codes et turbocodes

ou encore en fonction de la puissance moyenne P reue et du dbit D = 1/Tb


transmis : ,
M 1 3 log2 (M ) P
P es = erfc (2.67)
M M 2 1 N0 D
La gure 2.14 fournit la probabilit derreur moyenne P es en fonction du rap-
port Eb /N0 pour direntes valeurs du paramtre M .
La probabilit derreur par donne binaire P eb peut se dduire de la pro-
babilit derreur moyenne P es dans le cas o un codage de Gray est utilis
et sous lhypothse dun rapport signal bruit susamment lev. En eet,
dans ce cas on a gnralement une donne binaire fausse parmi les log2 (M )
donnes transmises. (on suppose que lamplitude du symbole reu a une valeur
immdiatement infrieure ou suprieure la valeur de lamplitude mise).
P es Eb
P eb
= si >> 1 (2.68)
log2 (M ) N0

Modulation par dplacement de phase M tats


Pour une modulation MDP-M, les signaux sj (t) sont de la forme :
sj (t) = A cos(2f0 t + 0 + j ) (2.69)
avec :

j = (2j + 1)+ 0 j = 0, 1, , (M 1)
M
Les signaux sj (t), pour M > 2, engendrent un espace deux dimensions. Lob-
servation R en sortie du dmodulateur est donc constitue de deux composantes
(r1 , r2 ) avec :
T T
r1 = r(t)1 (t)dt r2 = r(t)2 (t)dt
0 0
 
o 1 (t) = T2 cos(2f0 t + 0 ) et 2 (t) = T2 sin(2f0 t + 0 ).
En utilisant la rgle de dcision (2.21) et en supposant les donnes dinformation
iid, tous les tats de phase sont quiprobables et la dcision est la suivante :

2 
2
j si rp sjp > rp snp n = j (2.70)
p=1 p=1

avec :

T T 1
sj1 = A cos j et sj2 = A sin j si f0 >> (2.71)
2 2 T
En tenant compte des expressions de sj1 et de sj2 , la rgle de dcision peut
encore scrire :
j si r1 cos j + r2 sin j > r1 cos n + r2 sin n n = j (2.72)
2. Communications numriques 47

Le rcepteur cohrent pour une modulation MDP-M est reprsent en gure 2.15.
Il est constitu
+ de deux voies dites en phase (projection du signal reu sur
1 (t) = +2/T cos(2f0 t + 0 )) et en quadrature (projection du signal reu sur
2 (t) = 2/T sin(2f0 t + 0 )) et dun circuit de dcision.

Figure 2.15 Rcepteur cohrent pour modulation MDP-M.

Lmission par le modulateur dun tat de phase correspond la transmis-


sion dun groupe de log2 (M ) donnes. La probabilit derreur sur un groupe de
donnes binaires, quelle que soit la valeur de M , ne possde pas dexpression
analytique. Toutefois, fort rapport signal bruit, cette probabilit est bien
approche par lexpression suivante :
" %
E Eb
P es
b
= erfc log2 (M ) sin si >> 1 (2.73)
N0 M N0

En notant que Eb = P Tb et D = 1/Tb , le rapport Eb /N0 est encore gal


P/N0 D o P est la puissance reue du signal modul.
Pour un codage de Gray, la probabilit derreur par donne binaire fort
rapport signal bruit est gale :
P es Eb
P eb
= si >> 1 (2.74)
log2 (M ) N0
Cas de la modulation MDP-2

Pour cette modulation, la phase j prend les valeurs 0 ou . Chaque tat de


la phase est donc associ une donne binaire. En adoptant le codage suivant :

j = 0 d i = 1 j = d i = 0

la rgle de dcision pour une modulation MDP-2 est simple :

di = 1 si r1 > 0 di = 0 si r1 < 0 (2.75)


48 Codes et turbocodes

Lobservation r2 nest pas utilise pour le dcodage des donnes di car lespace
engendr par les signaux moduls deux tats de phase est de dimension N = 1.

Pour la modulation MDP-2, il existe une expression exacte de la probabilit


derreur P eb par donne binaire. En supposant les donnes binaires iid, cette
probabilit derreur est gale :

1 1
P eb = Pr {r1 > 0|j = } + Pr {r1 < 0|j = 0}
2 2
La sortie r1 du dmodulateur est :
+
r1 = Eb + b

o Eb = A2 T /2 est lnergie reue par donne binaire dinformation transmise


et b est un BABG, de moyenne nulle et de variance gale N0 /2.

11

P eb = 2 N0 exp( N10 (r1 + Eb )2 )dr1
0
0

+ 12 N
1
exp N10 (r1 Eb )2 dr1
0

En introduisant la fonction derreur complmentaire, la probabilit derreur


P eb est gale :
1 Eb
P eb = erfc (2.76)
2 N0

Cas de la modulation MDP-4

Pour cette modulation, la phase j prend quatre valeurs /4, 3/4, 5/4, 7/4.
chaque tat de la phase sont associes deux donnes binaires. Pour des tats
de phase quiprobables, la rgle du maximum de vraisemblance a posteriori
conduit aux dcisions suivantes :

j = 4 si r1 > 0; r2 > 0

3
j = 4 si r1 < 0; r2 > 0

5
j = 4 si r1 < 0; r2 < 0

7
j = 4 si r1 > 0; r2 < 0

En considrant le codage de Gray suivant :

3 5 7
11 01 00 10
4 4 4 4
2. Communications numriques 49

Figure 2.16 Rcepteur cohrent pour modulation MDP-4.

lestimation des donnes binaires peut se faire en comparant sparment les


sorties r1 et r2 du dmodulateur un seuil x zro. Le rcepteur cohrent
pour une modulation MDP-4 est reprsent en gure 2.16.
Une expression exacte de P eb peut toutefois tre donne en observant sim-
plement que le rcepteur cohrent pour une modulation MDP-4 est constitu
de deux voies identiques celle dun rcepteur MDP-2. La probabilit derreur
P eb pour une modulation MDP-4 est alors la mme que pour une modulation
MDP-2 soit :
1 Eb
P eb = erfc (2.77)
2 N0
La probabilit derreur par couple binaire P es est gale :

P es = 1 (1 P eb)2

fort rapport signal bruit, la probabilit derreur P eb est trs infrieure


lunit et ainsi, pour la modulation MDP-4 :
Eb
P es = 2P eb si >> 1 (2.78)
N0
La gure 2.17 fournit la probabilit derreur P es en fonction du rapport Eb /N0
pour direntes valeurs du paramtre M 1 .

Modulation damplitude sur deux porteuses en quadrature


MAQ-M
Pour la modulation MAQ-M, les signaux sj (t) dlivrs par le modulateur
sont de la forme :

sj (t) = Ajc h(t) cos(2f0 t + 0 ) Ajs h(t) sin(2f0 t + 0 ) (2.79)


1 Pour M = 2, cest la relation exacte (2.76) qui est utilise car P es = P eb, pour M > 2,
P es est fournit par lquation approche (2.73).
50 Codes et turbocodes

Figure 2.17 Probabilit derreur P es en fonction du rapport Eb /N0 pour direntes


valeurs de M dune modulation MDP-M.

Deux situations peuvent se prsenter selon que la longueur m des groupes de


donnes lentre du modulateur est paire ou non. Lorsque M = 2m avec m
pair, le groupe de donnes peut tre spar en deux sous-groupes de longueur
m/2, chaque sous-groupe tant associ respectivement aux amplitudes Ajc et
Ajs avec :
Ajc = (2j 1 M )A j = 1, 2, , M
(2.80)
Ajs = (2j 1 M )A j = 1, 2, , M
Dans
ce cas, la modulation MAQ-M est quivalente deux modulations MDA-
M ayant des porteuses en quadrature. Le rcepteur cohrent pour une mo-
dulation MAQ-M est constitu de deux voies dites en phase et en
quadrature,
chaque voie, semblable un rcepteur pour modulation MDA M , ralise
lestimation dun groupe de m/2 donnes binaires. Le rcepteur MAQ-M est
reprsent sur la gure 2.18.
2. Communications numriques 51

Figure 2.18 Rcepteur cohrent pour modulation MAQ-M avec M = 2m et m pair.

La probabilit derreur sur un groupe de m/2donnes binaires est gale


la probabilit derreur dune modulation MDA M soit :
,
M 1 3 log2 ( M ) Eb
P em/2 = erfc (2.81)
M M 1 N0

La probabilit derreur de symbole P es sur le groupe de m donnes binaires


est donc gale :
P es = 1 (1 P em/2 )2

Lorsque m est impair, la probabilit derreur P es sur un groupe de m donnes


binaires peut tre borne suprieurement par lexpression suivante :
,
3 log2 ( M ) Eb
P es  2erfc (2.82)
M 1 N0

La probabilit derreur P eb par donne binaire peut se dduire de P es si un


codage de Gray est utilis et pour un rapport signal bruit susamment lev :

P es
P eb = (2.83)
log2 (M )

Pour les valeurs de M  8, les performances des modulations MDP-M et MAQ-


M peuvent facilement tre compares. En eet, en faisant lapproximation sui-
vante :


sin = si M  8
M M
52 Codes et turbocodes

la probabilit derreur par donne binaire pour une modulation MDP-M peut
scrire :
,
1 2 Eb Eb
P eb = erfc log2 (M ) 2 si >> 1 (2.84)
log2 (M ) M N0 N0

En ngligeant les coecients qui pondrent les fonctions derreur complmen-


taires, la modulation MDP-M ncessite daugmenter le rapport Eb /N0 de :
 
3M 2
10 log dB
2(M 1) 2
pour obtenir la mme probabilit derreur que la modulation MAQ-M. Si on
compare, par exemple, les performances de la modulation MDP-16 celles de
la modulation MAQ-16, on constate que la premire ncessite environ 4 dB de
plus pour le rapport Eb /N0 pour obtenir les mmes probabilits derreur.

Modulation par dplacement de frquence MDF-M


Pour une modulation MDF-M, le modulateur dlivre des signaux de la
forme :
sj (t) = Ah(t) cos(2fj t + j ) (2.85)
o les frquences fj sont choisies de manire ce que les M signaux sj (t) soient
orthogonaux. Lespace engendr par ces signaux est donc de dimension N = M
et les vecteurs j (t) sont de la forme :

2
j (t) = cos(2fj t + j ) j = 1, 2, M (2.86)
T
En supposant les donnes dinformation di iid, les signaux sj (t) sont quipro-
bables. Ils ont de plus la mme nergie E et ainsi, la rgle du maximum de
vraisemblance a posteriori conduit la dcision suivante :


M 
M
sj (t) si rp sjp > rp snp n = j (2.87)
p=1 p=1

o sjp est gal :


T
T
sjp = sj (t)p (t)dt = A jp (2.88)
2
0

Compte tenu de lexpression de sjp , la rgle de dcision (2.87) se simplie et


devient :
sj (t) si rj > rn n = j (2.89)
Le rcepteur optimal cohrent pour une modulation MDF-M est reprsent sur
la gure 2.19.
2. Communications numriques 53

Figure 2.19 Rcepteur cohrent pour modulation MDF-M.

Conditionnellement lmission du signal sj (t), les M sorties du dmodu-


lateur sont de la forme :
+
rj = Es + bj rp = bp p = j

o bj et bp sont des BABG, de moyenne nulle et de variance gale N0 /2.


La probabilit de dcision correcte sur un groupe de donnes binaires, condi-
tionnellement lmission du signal sj (t) est gale :

+

P cj = Pr {b1 < rj , , bp < rj , , bM < rj } p(rj )drj


Les bruits tant non corrls et donc indpendants puisque gaussiens, nous
avons :
rj M 1
  2

1 b
Pr {b1 < rj , , bp < rj , , bM < rj } = exp db
N0 N0

et ainsi la probabilit de dcision correcte est gale :


M 1

+ rj    + 
1 1 1 1
P cj = exp b2 db exp (rj Es )2 drj
N0 N0 N0 N0

Aprs changement de variables, la probabilit de dcision correcte peut sex-


primer en fonction du rapport Es /N0 .
M 1 # $

+ y  2
1 1 x 1 Es 2
P cj = exp dx exp (y ) dy (2.90)
2 2 2 2 N0

La probabilit de dcision correcte est la mme quel que soit le signal mis. Les
signaux sj (t) tant quiprobables, la probabilit de dcision correcte moyenne
54 Codes et turbocodes

P c est donc gale la probabilit conditionnelle P cj . La probabilit derreur


sur les groupes de donnes binaires est alors gale :
P es = 1 P c
La probabilit derreur peut aussi sexprimer en fonction du rapport Eb /N0
o Eb est lnergie utilise pour transmettre une donne binaire avec Eb =
Es / log2 (M ).
On peut aussi chercher dterminer la probabilit derreur par donne
binaire P eb. Tous les M 1 groupes de donnes faux apparaissent avec la
mme probabilit :
P es
(2.91)
M 1
Dans un groupe de donnes  on peut avoir k donnes fausses parmi m et
 faux,
m
ceci peut se produire de faons possibles. Ainsi, le nombre moyen de
k
donnes fausses dans un groupe est :

m m
P es 2m1
k =m m P es
k M 1 2 1
k=1

et nalement la probabilit derreur par donne binaire est gale :


2m1
P eb = P es (2.92)
2m 1
o m = log2 (M ).
La probabilit derreur pour une modulation MDF-M ne possde pas dex-
pression simple et il faut faire appel au calcul numrique pour dterminer cette
probabilit en fonction du rapport Eb /N0 . On montre que pour une probabilit
derreur P eb donne, le rapport Eb /N0 ncessaire diminue lorsque M augmente.
On montre galement que la probabilit P es tend vers une valeur arbitraire-
ment petite lorsque M tend vers linni et ceci pour un rapport Eb /N0 de 4 ln 2
soit -1,6 dB.
Pour une transmission binaire (M = 2), il existe une expression de la probabilit
derreur P eb.
Supposons que le signal mis soit s1 (t), nous avons alors :
+
r1 = Eb + b1 r2 = b2
La dcision peut se prendre en comparant z = r1 r2 un seuil x zro. La
probabilit derreur P eb1 conditionnellement lmission de s1 (t), est gale :
P eb1 = Pr {z < 0 | s1 (t)}
En supposant les deux signaux quiprobables, la probabilit derreur P eb a
pour expression :
1
P eb = (P eb1 + P eb2 )
2
2. Communications numriques 55

Les bruits b1 et b2 sont gaussiens, non corrls, de moyenne nulle et de mme


variance gale N0 /2. La variable z, conditionnellement
lmission du si-
gnal s1 (t), est donc gaussienne, de moyenne Eb et de variance N0 . Ainsi la
probabilit P eb1 est gale :
0  
1 (z Eb )2
P eb1 = exp dz
2N0 2N0

En introduisant la fonction derreur complmentaire, P eb1 scrit :



1 Eb
P eb1 = erfc
2 2N0
Il est facile de vrier que la probabilit derreur conditionnellement lmis-
sion du signal s2 (t) est identique la probabilit derreur conditionnellement
lmission du signal s1 (t) et ainsi, on obtient :

1 Eb
P eb = erfc (2.93)
2 2N0
Si on compare les performances de la modulation MDF-2 celles de la MDP-2
on constate que la premire ncessite 3 dB de plus de rapport signal bruit
pour obtenir les mmes performances que la seconde.

Modulation par dplacement de frquence phase continue


MDF-M PC
Pour les modulations de frquence phase continue, le signal modul a pour
expression :
S(t) = A cos(2f0 t + (t)) (2.94)
o la phase (t), sur lintervalle [iT, (i + 1)T [, est gale :

i
(t) = 2h an q(t nT ) + iL (2.95)
n=iL+1
avec :

iL
iL = h an
n=
h est lindice de modulation et les symboles ai sont M -aires dans le cas gnral.
Ils prennent leurs valeurs dans lalphabet { 1, 3, , (2p+1), , ( M
1 ) } ; M = 2m .
Si lindice de modulation h = m/p o m et p sont des entiers relativement
premiers, la phase iL prend ses valeurs dans les ensembles suivants :
) *
(p1)m
iL 0, m p , 2m
p , , p si m pair
) * (2.96)
(2p1)m
iL 0, m 2m
p , p , , p si m impair
56 Codes et turbocodes

Lvolution de la phase (t) peut tre reprsente par un treillis dont les tats
sont dnis par (aiL+1 , aiL+2 , , ai1 ; iL ) soit :

(M L1 p) tats si m pair
(2.97)
(M L1 2p) tats si m impair

noter que la complexit du treillis augmente trs rapidement avec les para-
mtres M et L. Par exemple, pour une modulation symboles quaternaires
(M = 4) rponse partielle dindice de modulation h = 1/2 et de paramtre
L = 4, le treillis possde 256 tats. Pour la MSK et la GMSK, les symboles ai

Figure 2.20 Treillis associ la phase (t) pour la modulation MSK.

sont binaires (M = 2) et lindice de modulation h est 1/2 soit m = 1 et p = 2.


La phase iL prend donc ses valeurs dans lensemble {0, /2, , 3/2} et le
treillis associ la phase (t) possde 2L1 4 tats. Sur la gure 2.20 est
reprsent le treillis associ la phase (t) pour la modulation MSK.
Pour dcoder les symboles ai on utilise lalgorithme de Viterbi dont le principe
est rappel ci-aprs. Pour chaque intervalle de temps [iT, (i + 1)T [, procder
de la faon suivante :
pour chaque branche l quittant un tat du treillis linstant iT calcul de
la mtrique zil telle que dnie plus tard soit, pour la MSK et la GMSK,
2L 4 mtriques calculer ;
pour chaque chemin convergeant linstant (i+1)T vers un tat du treillis
calcul de la mtrique cumule, puis slection du chemin ayant la mtrique
cumule la plus grande, appel chemin survivant ;
parmi les chemins survivants, remonte sur s branches du chemin ayant
la mtrique cumule la plus grande et dcodage du symbole ais ;
poursuite de lalgorithme sur lintervalle de temps suivant.
La mtrique zil de branche a pour expression :


(i+1)T

zil = r(t) cos(2f0 t + li (t) + 0 )dt


iT

o r(t) = s(t) + b(t) est le signal reu par le rcepteur et b(t) est un BABG, de
moyenne nulle et de densit spectrale de puissance gale N0 /2. La quantit
2. Communications numriques 57

li (t) reprsente une ralisation de la phase (t) associe la branche l du


treillis sur lintervalle de temps [iT, (i + 1)T [.
En tenant compte du fait que le bruit peut se mettre sous la forme b(t) =
bc (t) cos(2f0 t + 0 ) bs (t) sin(2f0 t + 0 ) et que f0 >> 1/T , la mtrique de
branche peut encore scrire :

(i+1)T 
(i+1)T

zil = rc (t) cos l (t)dt + rs (t) sin l (t)dt (2.98)


1T iT

o les signaux rc (t) et rs (t) sont obtenus aprs transposition en bande de base de
r(t)(multiplication de r(t) respectivement par cos(2f0 t + 0 ) et sin(2f0 t +
0 ) puis ltrage passe-bas).
 
i
l
cos i (t) = cos 2h an q(t nT ) + iL
l l
n=iL+1

  (2.99)

i
sin li (t) = sin 2h aln q(t nT ) + iL
l
n=iL+1

En posant :

i
il (t) = 2h aln q(t nT )
n=iL+1

la mtrique de branche zil peut encore scrire sous la forme :


zil = cos iL
l l
Al + sin iL Bl (2.100)
avec :

(i+1)T

Ali = (rc (t) cos il (t) + rs (t) sin il (t))dt


iT


(i+1)T

Bil = (rs (t) cos il (t) rc (t) sin il (t))dt


iT
Pour la modulation MSK, il est possible de dcoder les symboles ai en
utilisant un rcepteur similaire celui de la modulation MDP-4. En eet, le
signal MSK peut se mettre sous la forme suivante :


S(t) = A c2i1 h(t 2iT ) cos 2T
t
cos(2f0 t + 0 )
i  (2.101)

c2i h(t (2i + 1)T ) sin 2T sin(2f0 t + 0 )
t
i

o les symboles ci se dduisent des symboles ai par un codage par transition.


c2i = a2i c2i1 et c2i1 = a2i1 c2i2 (2.102)
58 Codes et turbocodes

et h(t) est une porte damplitude unit de dure 2T :

h(t) = 1 si t [T, T [
= 0 ailleurs

Le rcepteur cohrent pour la MSK est reprsent dans la gure 2.21. Il com-
prend deux ltres adapts h(t) de rponse impulsionnelle h(2T t). Les
symboles c2i1 et c2i sont dcods en comparant des chantillons prlevs en
sortie des ltres adapts respectivement aux instants 2iT et (2i + 1)T .

Figure 2.21 Rcepteur cohrent pour modulation MSK.

Il est facile de montrer que les probabilits derreur sur les symboles binaires
c2i1 et c2i sont identiques et gaux :

1 Eb
P eci = erfc (2.103)
2 N0
o Eb est lnergie utilise pour transmettre un symbole ci .
Pour obtenir les donnes binaires ai partir des symboles ci il faut utiliser
en sortie du rcepteur cohrent un dcodeur direntiel rgi par les quations
suivantes :
a2i = c2i c2i1 et a2i1 = c2i1 c2I2
La probabilit derreur P eb sur ai est :

P eb = 1 (1 P eci )2

ainsi pour P eci << 1, la probabilit derreur P eb est bien approche par :

P eb 2P eci (2.104)

En premire approximation, les performances de la modulation MSK sont iden-


tiques celles de la modulation MDP-4.
2. Communications numriques 59

2.3 Transmission sur canal bande limite


2.3.1 Introduction
Jusqu prsent, dans ce chapitre, il tait suppos que la bande de frquences
alloue la transmission tait innie. Nous allons maintenant nous placer dans
une situation plus raliste o une bande de frquences de largeur W est dis-
ponible pour transmettre le signal modul. Dans cette bande W le canal est
suppos avoir une rponse plate et une phase linaire. Nous nous limiterons
au cas des modulations linaires de type MDA-M, MDP-M et MAQ-M qui
possdent une densit spectrale de puissance constitue dun lobe principal de
largeur 2/T , o 1/T est la rapidit de modulation, avec des lobes secondaires
qui sannulent priodiquement en n/T . La bande occupe par un signal mo-
dul linairement est donc, en toute rigueur, innie. Le signal modul doit en
consquence tre ltr par un ltre dmission avant dtre plac lentre du
canal de transmission. Nous allons maintenant dterminer quelle est la bande
W minimale ncessaire pour transmettre le signal modul sans dgradation des
performances par rapport une transmission bande innie. La rponse en
frquences des ltres dmission et de rception sera galement tablie.
Dans ce qui suit nous raisonnerons sur lenveloppe complexe du signal mo-
dul et sur la rponse quivalente en bande de base du ltre dmission. cela
vite, sans nuire la gnralit du propos, dintroduire la frquence porteuse
qui complique les notations.
Lenveloppe complexe dun signal MDA-M, MDP-M et MAQ-M a pour
expression :

se (t) = A ci h(t iT ) (2.105)
i

o h(t) est une porte damplitude unit et de dure T et ci = ai + jbi est un


symbole de modulation avec :

MDA-M ci = ai bi = 0

MDP-M ai = cos i bi = sin i



MAQ-M ai et bi symboles M aires

Soit g(t) la rponse impulsionnelle du ltre passe-bande dmission centr


sur la frquence porteuse. Cette rponse peut scrire sous la forme :

g(t) = gc (t) cos(2f0 t + 0 ) gs (t) sin(2f0 t + 0 ) (2.106)

ou de manire quivalente :

g(t) = e {ge (t) exp [j(2f0 t + 0 )]} (2.107)


60 Codes et turbocodes

o ge (t) = gc (t) + jgs (t) est la rponse quivalente en bande de base du ltre
dmission. La sortie e(t) du ltre dmission est gale :

e(t) = A ci z(t iT ) (2.108)
i

o z(t) = h(t) ge (t) est, dans le cas gnral, une forme donde complexe alors
que h(t) est rel.

2.3.2 Linterfrence entre symboles


Aprs passage dans le ltre dmission, le signal modul occupe une bande
W et ainsi, le signal en sortie du canal de transmission a pour expression :

r(t) = e(t) + b(t) (2.109)

o b(t) est un BABG complexe, de moyenne nulle et de densit spectrale de


puissance gale 2N0 .
Le rcepteur cohrent utilise un ltre de rception suivi dun chantillonneur
linstant t0 + nT , o t0 est un instant qui peut tre choisi arbitrairement. La
sortie du ltre de rception de rponse impulsionnelle gr (t) a pour expression :

y(t) = A ci x(t iT ) + b (t) (2.110)
i

o :
x(t) = z(t) gr (t)
b (t) = b(t) gr (t)
En chantillonnant le signal y(t) linstant t0 + nT , on obtient :

y(t0 + nT ) = A ci x(t0 + (n i)T ) + b (t0 + nT ) (2.111)
i

En considrant que dans le cas gnral x(t) = p(t) + jq(t) est une forme donde
complexe, lchantillon y(t0 + nT ) peut encore scrire sous la forme :

y(t0 + nT ) = Acn p(t0 ) + A cni p(t0 + iT )
 i=0
(2.112)
+jA cni q(t0 + iT ) + b (t0 + nT )
i

Le premier terme Acn p(t0 ) reprsente linformation souhaite pour le dcodage


du symbole cn , les deux termes suivants sont des termes dInterfrence Entre
Symboles (IES). Examinons les sorties des deux voies du rcepteur, dite voies
en phase et en quadrature, correspondant respectivement la partie relle et
la partie imaginaire de y(t0 + nT ). On peut remarquer que la voie en phase
(respectivement la voie en quadrature) dpend des symboles ai (respectivement
des symboles bi ) mais aussi des symboles bi (respectivement des symboles ai ).
2. Communications numriques 61

On dit parfois quil existe de la diaphonie entre les deux voies du rcepteur.
Bien entendu lIES est un phnomne qui ne peut que dgrader la qualit
de la transmission. Cest la raison pour laquelle il est important de dnir la
condition satisfaire pour annuler lIES. Mais avant cela, nous allons indiquer
une manire simple de caractriser lIES en traant le diagramme de lil,
appel ainsi par analogie avec la forme de lil humain, en sortie du ltre de
rception des voies en phase et en quadrature du rcepteur.
Le diagramme de lil est la gure obtenue en superposant toutes les traces ou
ralisations du signal yc (t) non bruit o yc (t) est la partie relle de y(t). On
obtient galement le diagramme de lil partir de ys (t) non bruit o ys (t)
est la partie imaginaire de y(t).
 
yc (t) = A ai p(t iT ) A bi q(t iT )
i i
  (2.113)
ys (t) = A bi p(t iT ) + A ai q(t iT )
i i

Analysons, par exemple, la sortie yc (t) du ltre de rception de la voie en phase


sur lintervalle de temps [t1 + nT, t1 + (n + 1)T [ o t1 reprsente un instant
arbitraire. En remplaant t par t + t1 + nT , le signal yc (t) peut scrire :

yc (t + t1 + nT ) = A ani p(t + t1 + iT )
 i (2.114)
A bni q(t + t1 + iT ) pour 0  t  T
i

En supposant x(t + t1 + iT ) ngligeable en dehors de lintervalle [t1 L1 T,


t1 + L2 T ], chaque somme de lexpression prcdente comporte (L1 + L2 + 1)
termes soit 4(L1 +L2 +1) traces possibles pour le diagramme de lil. Dcalons
lintervalle dobservation dune quantit T , le nombre de traces qui constituent
le diagramme de lil est toujours de 4(L1 +L2 +1) , le diagramme de lil est donc
une gure qui se rpte toutes les T secondes. Son analyse peut, en consquence,
tre limite un intervalle de dure T .
Le diagramme de lil peut tre visualis sur un oscilloscope. En eet,
les direntes traces de p(t) et q(t) peuvent tre conserves lcran si la
vitesse de balayage de loscilloscope est susamment grande devant la dure
de rmanence du tube cathodique ou, mieux, si loscilloscope est mmoire.
Nous avons reprsent le diagramme de lil dune modulation MDP-2 avec et
sans IES sur la gure 2.22. Pour cette modulation, les symboles ci sont rels et
le rcepteur comprend une seule voie.

yc (t + t1 + nT ) = A ani p(t + t1 + iT ) pour 0  t  T (2.115)
i

En labsence dIES, linstant de dcision, toutes les traces de p(t) passent


par un point unique. Plus le diagramme de lil est ouvert linstant de dcision
et plus limmunit de la transmission au bruit est grande. De la mme faon,
62 Codes et turbocodes

Figure 2.22 Diagramme de lil dune modulation MDP-2 avec (a) et sans (b) IES.

plus louverture horizontale du diagramme de lil est importante et moins la


transmission est sensible aux erreurs de positionnement de linstant de dcision.
En prsence dIES, les direntes traces de p(t) ne passent plus par un point
unique linstant de dcision et lIES contribue fermer le diagramme de lil.
La sortie du ltre de rception aux instants t0 + nT de la voie en phase du
rcepteur est gale :

yc (t0 + nT ) = Aan p(t0 ) + A ani p(t0 + iT )
i=0  (2.116)
A bni q(t0 + iT )
i

Pour une modulation MAQ-M, le signal utile vaut A(2j 1 M )p(t0 ), pour
j = 1, M et la dcision est prise en comparant le signal yc (t0 + nT ) un
ensemble de seuils spars de 2p(t0 ). Il y aura des erreurs en labsence de bruit
si lIES, pour certaines congurations des symboles ci , est telle que le signal
reu se trouve en dehors de la zone de dcision correcte. Ceci se produit si
lIES est suprieure en valeur absolue p(t0 ). Cette situation se traduit par la
condition suivante :

 

Maxani ,bni ani p(t0 + iT ) bni q(t0 + iT ) > |p(t0 )|
i=0 i

En tenant compte du fait que la plus grande valeur prise par les symboles ai
et bi est M 1, la condition prcdente devient :
# $
 
|p(t0 + iT )| + |q(t0 + iT )|
i=0 i
Dmax = ( M 1) 1 (2.117)
|p(t0 )|
La quantit Dmax est appele distorsion maximale. Lorsque la distorsion maxi-
male est suprieure lunit, le diagramme de lil est ferm aux instants de
dcision et des erreurs sont possibles, mme en labsence de bruit.
2. Communications numriques 63

2.3.3 Condition dabsence dIES : critre de Nyquist


Labsence dIES se traduit par les conditions suivantes :

p(t0 + iT ) = 0 i = 0 (2.118)

q(t0 + iT ) = 0 i (2.119)
ce qui peut encore scrire en utilisant le signal complexe x(t) = p(t) + jq(t).

x(t0 + iT ) = p(t0 )0,i i (2.120)

o 0,i est le symbole de Kronecker.


Introduisons le signal chantillonn xE (t), dni par :

xE (t) = x(t) (t t0 iT ) (2.121)
i

On peut remarquer que le peigne de Dirac u(t) = (t t0 iT ) est prio-
i
dique, de priode T . Il peut donc tre dcompos en srie de Fourier :
   
1 i i
u(t) = exp j2 t0 exp j2 t (2.122)
T i T T

Dans la mesure o lon cherche dterminer la bande de frquences W mini-


male ncessaire la transmission sans IES du signal modul, il est judicieux
de travailler dans lespace des frquences. En prenant la transforme de Fou-
rier note XE (f ) de la relation (2.121) et en tenant compte de lexpression
prcdente de u(t), on obtient :
 
1 i i
XE (f ) = exp j2 t0 X(f ) (2.123)
T i T T
Le signal chantillonn, daprs la relation (2.121), peut encore scrire :

xE (t) = x(t0 + iT )(t t0 iT ) (2.124)
i

qui, aprs transforme de Fourier et en tenant compte de la condition dabsence


dIES, devient :
XE (f ) = p(t0 ) exp(j2f t0 ) (2.125)
Lgalit des relations (2.123) et (2.125) donne :
  
i i
exp j2(f )t0 X(f ) = T p(t0 )
i
T T

En posant :
X(f )
X t0 (f ) = exp(j2f t0 )
p(t0 )
64 Codes et turbocodes

la condition dabsence dIES peut sexprimer partir de X t0 (f ) par la relation


suivante :

+
i
X t0 (f ) = T (2.126)
i=
T

Cette condition dabsence dIES est appele critre de Nyquist.


Rappelons que le canal de transmission de rponse en frquences C(f ) pos-
sde une bande passante W .

C(f ) = 0 pour |f | > W (2.127)

Considrons la relation (2.126) pour trois situations.


1. X t0 (f ) occupe une bande de frquence W < 1/2T . La relation (2.126)
tant une somme de fonctions dcales de 1/T , il nexiste pas de fonctions
X t0 (f ) qui permettent de vrier le critre de Nyquist. La bande de
frquences W ncessaire une transmission sans IES est donc suprieure
ou gale 1/2T .
2. X t0 (f ) occupe une bande de frquences W = 1/2T . Il existe une solution
unique pour satisfaire le critre de Nyquist :

X t0 (f ) = T |f |  W
(2.128)
= 0 ailleurs

soit encore :
X(f ) = T p(t0 ) exp(j2t0 ) |f |  W
(2.129)
= 0 ailleurs

ce qui, sur le plan temporel, donne :

sin [(t t0 )/T ]


x(t) = p(t0 ) (2.130)
(t t0 )/T

Cette solution correspond une rponse x(t) en toute rigueur non causale.
Toutefois, dans la mesure o la fonction sin y/y dcrot assez rapidement
en fonction de son argument y, il est possible, en choisissant t0 susant
grand, de considrer x(t) comme pratiquement causale. Avec cette solu-
tion, le diagramme de lil a une ouverture horizontale qui tend vers zro
et ainsi, toute imprcision sur linstant dchantillonnage peut conduire
des erreurs mme en labsence de bruit. En conclusion, cette solution est
purement thorique et na donc pas dapplication pratique.
3. X t0 (f ) occupe une bande de frquences W > 1/2T . Dans ce cas, il existe
de nombreuses solutions qui permettent de vrier le critre de Nyquist.
Parmi ces solutions, la plus utilise est la fonction en cosinus surlev
dnie par :
2. Communications numriques 65

X t0 (f ) = T si 0  |f |  1
2T
 - .
( 2T |f |)  |f | 
T
2 1 + sin T 1
si 1
2T
1+
2T
(2.131)

0 si |f | > 1+
2T

soit encore :
X(f ) = p(t0 )X t0 (f ) exp(j2f t0 ) (2.132)
dont la rponse temporelle est :
sin (tt
T
0)
cos (tt
T
0)

x(t) = p(t0 ) (tt0 ) 2 (2.133)


T 1 42 (tt
T2
0)

Figure 2.23 Rponses frquentielle et temporelle dune fonction en cosinus surlev


pour direntes valeurs du facteur de retombe .

La gure 2.23 reprsente les rponses frquentielle X t0 (f ) et temporelle x(t)


dune fonction en cosinus surlev pour direntes valeurs de , appel facteur
de retombe (roll-o en anglais).
La bande de frquences occupe avec la fonction en cosinus surlev est
W = (1 + )/2T ; 0   1. La fonction x(t) est encore non causale au sens
strict mais sa dcroissance est dautant plus forte que le facteur de retombe
augmente. Ainsi, en choisissant t0 susamment lev la mise en uvre dun
cosinus surlev est possible. Sur la gure 2.24 sont tracs des diagrammes de
lil obtenus avec des fonctions en cosinus surlev pour direntes valeurs du
facteur de retombe.
Toutes les traces de x(t) passent par un point unique linstant dchan-
tillonnage t0 + nT et ceci quelle que la valeur du facteur de retombe. Notons
que louverture horizontale du diagramme de lil est dautant plus importante
que le facteur de retombe est grand. Pour = 1, louverture de lil est maxi-
male et gale T ; la sensibilit une imprcision sur linstant dchantillonnage
est alors minimale.
66 Codes et turbocodes

Figure 2.24 Diagrammes de lil pour des modulations symboles binaires (MDP-2
ou MDP-4) pour direntes valeurs du facteur de retombe (0.2, 0.5, 0.8).

Nous venons de dterminer la rponse globale X(f ) que doit satisfaire la


chane de transmission pour garantir labsence dIES. Les rponses en fr-
quences des ltres dmission et de rception vont maintenant tre tablies.

Rpartition optimale du ltrage entre lmission et la rception


Nous avons vu que le ltre de rception doit tre adapt la forme donde
place son entre soit dans notre cas :

gr (t) = z(t0 t) (2.134)

o z(t) rsulte du ltrage de h(t) par le ltre dmission :

z(t) = h(t) ge (t)

la rponse en frquences Gr (f ) du ltre de rception est gale :

Gr (f ) = Z (f ) exp(j2f t0 ) (2.135)

o dsigne la conjugaison.
Bien entendu la rponse globale de la chane de transmission doit vrier le
critre de Nyquist, ce qui se traduit par :

Z(f )Gr (f ) = p(t0 )CS (f ) exp(j2f t0 ) (2.136)

o CS (f ) = X t0 (f ) est la rponse en cosinus surlev de facteur de retombe


. Dans la relation prcdente nous avons considr que le canal transmet
intgralement le signal plac son entre.
En exprimant la fonction Z (f ) partir de la relation prcdente,
p(t0 )CS (f )
Z (f ) = exp(j2f t0 ) (2.137)
Gr (f )
puis en remplaant Z (f ) par son expression dans la relation (2.135), on obtient
le module de la rponse en frquences du ltre de rception :
+ +
|Gr (f )| = p(t0 ) CS (f ) (2.138)
2. Communications numriques 67

Le module de la rponse en frquences du ltre dmission sobtient sans di-


cult partir de :
|Z(f )|
|Ge (f )| = (2.139)
|H(f )|
En utilisant la relation (2.137), on peut dterminer le module de |Z(f )|.
+ +
|Z(f )| = p(t0 ) CS (f ) (2.140)

En remplaant |Z(f )| par sa valeur dans la relation (2.139), on obtient le mo-


dule de la rponse du ltre de rception :
+ +
p(t0 ) CS (f )
|Ge (f )| = (2.141)
|H(f )|

Nous avons obtenu le module des rponses en frquences des ltres dmission
et de rception. Ces ltres sont donc dnis une phase arbitraire prs. En
rpartissant le retard t0 entre les ltres dmission et de rception, on obtient :
+ +
Gr (f ) = p(t0 ) CS (f ) exp(j2f t1 )
(2.142)
p(t0 ) CS (f )
Ge (f ) = H(f ) exp(j2f (t0 t1 ))

o t1 est un retard infrieur t0 qui peut tre choisi arbitrairement.


Les rponses des ltres Ge (f ) et Gr (f ) montrent que le ltrage de Nyquist
doit tre quirparti entre lmission et la rception. Le terme H(f ) qui appa-
rat au dnominateur du ltre dmission entrane que la sortie de ce ltre ne
dpend plus de la forme donde utilise par le modulateur. La rponse H(f ),
transforme de Fourier dune porte de dure T , prsente des zros aux fr-
quences n/T ce qui, en toute rigueur, rend irralisable le ltre de rponse
Ge (f ). Toutefois, le ltre Ge (f ) doit tre ralis uniquement dans la bande
[(1 + )/2T ; (1 + )/2T ] o H(f ) ne prsente pas de zros.
Pour terminer, dterminons la dsp du signal modul en sortie du ltre dmis-
sion et vrions quil occupe bien une bande de frquences W = (1 + )/2T .
La dsp du signal modul en bande de base lentre du ltre dmission est
gale :
 2
(M 1) 2 sin f T
se (f ) = 2 A T (2.143)
3 f T
La dsp du signal modul en bande de base en sortie du ltre dmission a pour
expression :
2
e (f ) = se (f ) |Ge (f )|
En remplaant |Ge (f )| par son expression, on obtient :

(M 1) A2
e (f ) = 2 p(t0 )CS (f ) (2.144)
3 T
68 Codes et turbocodes

En considrant le signal modul sur frquence porteuse, sa dsp est donne par
lexpression (2.13) :

1 1
(f ) = e (f f0 ) + e (f + f0 )
4 4
En conclusion, la bande de frquences occupe par le signal modul sur fr-
quence porteuse stend de f0 (1 + )/2T f0 + (1 + )/2T , soit une bande
de largeur 2W = (1 + )/T ou encore (1 + )Rm o Rm est la rapidit de mo-
dulation. Lecacit spectrale de la modulation MAQ-M exprime en bit/s/Hz
est alors gale :

D Rm log2 (M ) log2 (M )
= = = (2.145)
2W (1 + )Rm (1 + )

o D est le dbit de la transmission en bit/s.


Lecacit spectrale augmente en fonction du nombre dtats M de la mo-
dulation mais les performances de la modulation, en terme de probabilit der-
reur, se dgradent en fonction de ce paramtre M .

2.3.4 Expression de la probabilit derreur en prsence


de ltrage de Nyquist
Dterminons la probabilit derreur sur les donnes binaires dlivres par
la source en considrant, par exemple, une modulation MDP-4. Dans ce cas,
chaque symbole ai (respectivement bi ) transmet une donne binaire di toutes
les T secondes. La probabilit derreur sur les donnes di est donc identique
la probabilit derreur sur les symboles ai ou bi . Calculons, par exemple, la
probabilit derreur sur le symbole ai .
La sortie du ltre de rception de la voie en phase linstant de dcision
t0 + nT est gale :

yc (t0 + nT ) = Aan p(t0 ) + bc (t0 + nT ) (2.146)

o bc (t0 + nT ) est la partie relle du bruit b (t0 + nT ).


En supposant les donnes dn iid, la probabilit derreur sur les symboles an
a pour expression :

P ean = 1
2 Pr {yc (t0 + nT ) > 0|an = 1}
(2.147)
2 Pr {yc (t0 + nT ) < 0|an = +1}
1

Puisque yc (t0 + nT ) est gaussien, de moyenne Aan p(t0 ) et de variance b2c , la


probabilit derreur P ean est gale :

1 Ap(t0 )
P ean = erfc (2.148)
2 bc 2
2. Communications numriques 69

La variance b2c du bruit bc (t0 + nT ) est gale :


+ 
+
2
b2c = N0 |Gr (f )| df = N0 p(t0 )CS (f )df = N0 p(t0 ) (2.149)

Introduisons la puissance mise en sortie du ltre dmission :


+ 
+ 
+
1 1 1
P = e (f f0 )df + e (f + f0 )df = e (f )df (2.150)
4 4 2

En remplaant e (f ) par son expression, on obtient :


+
A2 A2
P = p(t0 )CS (f )df = p(t0 ) (2.151)
T T

En utilisant les expressions (2.149) et (2.151), la probabilit derreur est gale


:

1 PT
P ean = erfc (2.152)
2 2N0

Lnergie Eb utilise pour transmette une donne dinformation dn est :

Eb = P Tb (2.153)

o Tb est linverse du dbit binaire de la transmission.


Pour une modulation MDP-4, T = 2Tb et la probabilit derreur par donne
binaire dn est nalement :

1 Eb
P edn = erfc (2.154)
2 N0

La probabilit derreur en prsence de ltrage de Nyquist pour une modulation


MDP-4 est identique celle obtenue pour une transmission sur un canal
bande innie. Ce rsultat est aussi vrai pour les autres modulations linaires
de type MDA-M, MDP-M et MAQ-M.
En conclusion de cette section, on peut dire que le ltrage selon le critre
de Nyquist dune modulation linaire permet de rduire la bande ncessaire
sa transmission (1 + )Rm , o Rm est la rapidit de modulation. Ce ltrage
ne dgrade pas les performances de la modulation, cest--dire quil conduit
la mme probabilit derreur par donne binaire que celle dune transmission
sur canal bande innie.
70 Codes et turbocodes

2.4 Transmission sur canal vanouissements


2.4.1 Caractrisation dun canal vanouissements
Considrons une transmission sur canal trajets multiples o lmetteur,
mobile par rapport au rcepteur, dlivre un signal s(t) = A exp(j2f t) non
modul damplitude A et de frquencef . Le signal s(t) se propage en se r-
chissant sur dirents obstacles et ainsi, le rcepteur reoit M rpliques du
signal mis, chaque rplique tant aecte dune attnuation n (t), dun retard
n (t) et dun dcalage de frquence Doppler fnd (t). Les attnuations, les retards
et les frquences Doppler sont fonctions du temps pour tenir compte de lvo-
lution temporelle du canal. Pour simplier les notations, on omettra dans la
suite, la variable t pour les attnuations, les retards et les frquences Doppler.
Soit r(t) la rponse du canal de transmission au signal s(t), qui scrit de
manire gnrale sous la forme :


M
 
r(t) = n exp j2(fnd + f )(t n ) (2.155)
n=1

En faisant apparatre s(t), le signal reu peut encore scrire :


M
 
r(t) = n exp j2(fnd t (fnd + f )n )) s(t) (2.156)
n=1

et ainsi la rponse en frquence du canal de transmission est dnie par :


M
 
c(f, t) = n exp j2(f n fnd t + fnd n ) (2.157)
n=1

La rponse du canal trajets multiples est gnralement slective en frquences


cest--dire quelle ne transmet pas de la mme faon toutes les composantes
frquentielles du signal plac son entre, certaines composantes tant plus
attnues que dautres. Le canal va donc provoquer des distorsions du signal
transmis. De plus, leur volution au cours du temps peut tre plus ou moins
rapide.
Pour illustrer la slectivit en frquences dun canal trajets multiples, nous
avons trac sur la gure 2.25 le carr du module de la rponse en frquences de
ce canal pour M = 2 , en labsence de dcalge de frquence Doppler (fnd = 0)
et en xant 1 zro.
2  
|c(f )| = 21 (1 + cos 2f 2 )2 + 2 sin2 2f 2 (2.158)

avec = 2 /1 .
Deux paramtres sont maintenant introduits : la bande de cohrenceBc et
le temps de cohrence tc qui permettent de caractriser le canal de transmission
vis--vis de la slectivit en frquences et de sa vitesse dvolution.
2. Communications numriques 71

Figure 2.25 Rponse en frquences dun canal trajets multiples.

Bande de cohrence
Il existe plusieurs dnitions de la bande de cohrence mais la dnition la
plus courante est :
1
Bc (2.159)
Tm
o Tm est lcart type du prol de densit de puissance du canal en fonction
des retards n des dirents trajets.
Deux signaux moduls dont les frquences porteuses sont spares dune
quantit suprieure la bande de cohrence du canal sont attnus par celui-ci
de manire non corrle. Ainsi, un instant donn, si lun des deux signaux
est fortement attnu par le canal, lautre sera, avec une forte probabilit, peu
aect par celui-ci.
Lorsque que la bande B occupe par un signal modul est infrieure la bande
de cohrence, le canal est non slectif en frquences vis--vis de ce signal. Il
prsente une rponse en frquences plate et une phase linaire sur la bande B
occupe par le signal modul. Le signal modul subit juste une attnuation et un
dphasage en traversant le canal. Nous allons illustrer ce point en considrant
la transmission dun signal MAQ-M par un canal non slectif en frquences.
Soit s(t) le signal MAQ-M plac lentre du canal trajets multiples non
slectif en frquences.

" %
 
s(t) = A ai h(t iT ) cos 2f0 t bi h(t iT ) sin 2f0 t
i i
72 Codes et turbocodes

et soit r(t) la rponse du canal s(t) :




M  - .
r(t) = A n ai h(t n T ) cos 2(f0 + fnd )(t n )
n=1 i 
 - .
bi h(t n T ) sin 2(f0 + fnd )(t n )
i

Pour un canal non slectif en frquences, nous avons B < Bc . En notant que
la bande B est proportionnelle 1/T , cela entrane T > Tm soit encore T >>
n n. Dans lexpression de r(t), nous pouvons donc ngliger n devant T ce
qui donne :

M 
r(t) = A n ai h(t T ) cos(2f0 t + n (t))
n=1 i 

bi h(t T ) sin(2f0 t + n (t))
i

avec :
n (t) = fnd t (f0 + fnd )n
En posant :


M 
M
ac (t) = n cos n (t) et as (t) = n sin n (t)
n=1 n=1

et :
ac (t) as (t)
cos (t) = + et sin (t) = +
a2c (t) + a2s (t) a2c (t) + a2s (t)
le signal r(t) peut encore scrire :


r(t) = A(t) ai h(t iT ) cos(2f0 t + (t))
i  (2.160)

bi h(t iT ) sin(2f0 t + (t))
i
+
avec (t) = a2c (t) + a2s (t).
Pour un canal trajets multiples non slectif en frquences, le signal mo-
dul MAQ-M subit uniquement une attnuation (t) et un dphasage (t). En
modlisant les attnuations n , les retards n , et les frquences doppler fnd par
des variables alatoires mutuellement indpendantes alors, pour M susam-
ment grand et pour t donn, ac (t) et as (t) tendent vers des variables alatoires
gaussiennes non corrles (thorme de la limite centrale). Lattnuation (t),
pour t donn, suit une loide Rayleigh et la phase (t) est quirpartie sur
[0, 2[. En posant 2 = E 2 , la densit de probabilit scrit :
 
2 2
p() = 2 exp 2 0 (2.161)

2. Communications numriques 73

Lattnuation (t) peut prendre des valeurs trs infrieures lunit et, dans
ce cas, le signal non bruit reu par le rcepteur est trs attnu. Son niveau
est alors comparable, voire infrieur, celui du bruit. On dit que le canal de
transmission prsente un vanouissement profond de Rayleigh.
Si la bande B occupe par le signal modul est suprieure la bande de
cohrence, le canal est slectif en frquences. Sa rponse en frquence, sur la
bande B, nest plus plate et certaines composantes spectrales du signal modul
peuvent tre trs attnues. Le canal introduit une distorsion du signal mo-
dul qui se traduit notamment par lapparition du phnomne de lInterfrence
Entre Symboles (IES). En prsence dIES, le signal un instant de dcision est
fonction de ltat du signal modul cet instant mais aussi des tats antrieurs
et postrieurs cet instant. LIES intervient comme un bruit qui sajoute au
bruit additif blanc gaussien et, bien sr, dgrade les performances de la trans-
mission.

Temps de cohrence
Le temps de cohrence tc dun canal vanouissement est dni par :
1
tc (2.162)
Bd
d
o Bd est la bande doppler du canal qui est bien approche par fmax dni
par :
d
fmax = Maxfnd (2.163)
Le temps de cohrence du canal est une mesure de sa vitesse dvolution au
cours du temps. Si tc est trs suprieur la dure T dun tat du signal modul,
le canal est dit vanouissement lent. Pour un canal non slectif en frquences
et vanouissement lent, lattnuation (t) et la phase (t) sont pratiquement
constantes sur la dure T voire sur quelques dures T .
Un canal est non slectif en frquences et vanouissement lent sil vrie
la condition suivante :
TM Bd < 1 (2.164)

2.4.2 Transmission sur canal non slectif en frquences et


vanouissements lents
Performances sur canal de Rayleigh
Pour ce canal, le signal modul subit une attnuation (t) et un dphasage
(t) alatoires de ralisations constantes sur une dure suprieure ou gale
T . En considrant un rcepteur cohrent, la probabilit derreur par donnes
binaires, conditionnellement une ralisation de lattnuation (t), est gale
: ,
1 2 Eb
Modulation MDP-2 ou MDP-4 P eb() = erfc (2.165)
2 N0
74 Codes et turbocodes

,
1 2 Eb
Modulation MDF-2 P eb() = erfc (2.166)
2 2N0
On obtient la probabilit derreur P eb en moyennant P eb() sur les direntes
ralisation de (t).

P eb = P eb()p()d (2.167)
0

o p() est la densit de probabilit de .


En tenant compte du fait que, pour t donn, (t) est une variable alatoire
de Rayleigh de densit de probabilit
 
2
p() = 2 exp 2 0
2

les probabilits P eb ont pour expressions :


# , $
1 Eb /N0
Modulation MDP-2 ou MDP-4 P eb = 1 (2.168)
2 1 + Eb /N0
# , $
1 Eb /N0
Modulation MDF-2 P eb = 1 (2.169)
2 2 + Eb /N0

o Eb est lnergie moyenne reue par donne binaire transmise :


/ 0
A2 Tb
Eb = E 2 = A2 Tb 2 (2.170)
2

Pour Eb /N0 grand, les probabilits derreurs peuvent tre approches par :
1
MDP-2 ou MDP-4 P eb (2.171)
4E/N0
1
MDF-2 P eb (2.172)
2E/N0
Sur un canal vanouissement de Rayleigh, les performances des dirents
rcepteurs sont fortement dgrades par rapport celles obtenues sur canal
gaussien ( Eb /N 0 identique en entre). En eet, sur canal gaussien, les proba-
bilits derreur P eb dcroissent de manire exponentielle en fonction du rapport
signal bruit Eb /N0 alors que sur canal vanouissement de Rayleigh, la d-
croissance de la probabilit P eb est proportionnelle linverse du rapport signal
bruit moyen Eb /N0 .
Pour amliorer les performances sur canal vanouissement de Rayleigh,
on utilise deux techniques, que lon peut ventuellement combiner, la diversit
et bien sr le codage de canal (qui est en fait de la diversit dinformation).
2. Communications numriques 75

Performances sur canal de Rayleigh avec diversit


La diversit consiste rpter plusieurs fois un mme message (ou des r-
pliques issues dun codage de canal) en utilisant des frquences porteuses espa-
ces dune quantit suprieure ou gale la bande de cohrence Bc du canal.
Dans ce cas, on parle de diversit en frquence. Une alternative cette ap-
proche, consiste transmettre plusieurs fois un mme message sur une mme
porteuse mais sur des intervalles de temps spars dune quantit suprieure
ou gale au temps de cohrence tc du canal. Il sagit de la diversit temporelle.
Enn, on peut transmettre un message une seule fois et utiliser en rception
plusieurs antennes distante typiquement de quelques longueurs dondes de la
porteuse du signal modul. Dans ce cas il sagit de diversit despace.
Supposons que lon utilise une modulation MDP-2 pour transmettre le mes-
sage dinformation et une diversit dordre L. En se plaant sur lintervalle de
temps [iT, (i + 1)T [ et en considrant une rception cohrente, aprs dmodu-
lation on dispose de L observations de la forme :
+
rin = in Eb cos i + bni n = 1, 2, , L (2.173)

o in est une attnuation de Rayleigh, i la phase (0 ou ) portant lin-


formation transmettre et bni un bruit blanc gaussien, de moyenne nulle et
de variance gale N0 /2. Les L attnuations in sont mutuellement indpen-
dantes ainsi que les L termes de bruit bni . Ces L attnuations peuvent tre vues
comme L sous-canaux indpendants, appels galement branches de diversit.
Eb est ainsi lnergie utilise pour transmettre une donne binaire par branche
de diversit.
Pour prendre une dcision en prsence de diversit, on construit la variable
Zi de la manire suivante :


L
Zi = rin in
n=1

La probabilit derreur par donne binaire P eb en prsence de diversit est alors


gale :

1 1
P eb = Pr (Zi > 0|i = ) + Pr (Zi < 0|i = 0) (2.174)
2 2
Conditionnellement une ralisation des L attnuations in , la variable de
dcision Zi est gaussienne de moyenne :


L
E {Zi } = Eb (in )2 si i = 0
n=1
(2.175)

L
E {Zi } = Eb (in )2 si i =
n=1
76 Codes et turbocodes

et de variance :
N0  n 2
L
2
Z = ( ) (2.176)
2 n=1 i

Sous cette hypothse, la probabilit derreur P eb() est gale :

1
P eb() = erfc (2.177)
2
avec :
Eb  n 2
L
= ( )
N0 n=1 i

En moyennant la probabilit P eb() sur les direntes ralisations de la variable


alatoire , on obtient la probabilit derreur par donne binaire en prsence
de diversit dordre L :

P eb = P eb()p()d
0

La variable alatoire suit une loi du 2 ayant pour densit de probabilit :

1
p() = L1 exp (2.178)
(L 1)!mL m

o m est gal :
Eb  n 2 
m = E (j )
N0
Aprs intgration, la probabilit derreur par donne binaire est gale :
 
L L1  n
1 L1+n 1+
P eb = (2.179)
2 n 2
n=0

avec : ,  
Eb /LN0 L1+n (L 1 + n)!
= et =
1 + Eb /LN0 n n!(L 1)!

o Eb est lnergie moyenne totale utilise pour transmettre une donne binaire
dinformation (Eb = LEb ).
fort rapport signal bruit, la probabilit derreur P eb est bien approche
par :
  L
2L 1 1 Eb
P eb pour >> 1 (2.180)
L 4Eb /LN0 LN0

En prsence de diversit la probabilit derreur par donne binaire P eb dcrot


suivant linverse du rapport signal bruit la puissance L.
2. Communications numriques 77

Figure 2.26 Performance des modulations a) MDP-2 et b) MDF-2 en prsence de


diversit.

Pour une modulation MDF-2 le calcul de la probabilit derreur par donne


binaire en prsence de rception cohrente est analogue celui de la modulation
MDP-2. On obtient le rsultat suivant :
 
L L1  n
1 L1+n 1+
P eb = (2.181)
2 n 2
n=0

avec cette fois-ci : ,


Eb /LN0
=
2 + Eb /LN0

fort rapport signal bruit, la probabilit derreur P eb est bien approche


78 Codes et turbocodes

par :
  L
2L 1 1 Eb
P eb pour >> 1 (2.182)
L 2Eb /LN0 LN0
Notons que la diversit telle que prsente ici est une forme de codage qui
utiliserait un code rptition et un dcodage pondr en rception. La gure
( 2.26) fournit les performances des modulations MDP-2 et MDF-2 en prsence
de diversit.

Transmission sur canal slectif en frquences et vanouissements


lents
Direntes stratgies de transmission sont possibles. On peut utiliser
lmission une forme donde peu, voire pas, sensible la slectivit du canal ou
corriger, en rception, les eets de la slectivit du canal.
Transmission multiporteuses
La transmission multiporteuse utilise un multiplex de porteuses orthogo-
nales modules numriquement en phase (MDP-M), en frquence (MDF-M)
ou en amplitude et en phase (MAQ-M). Cette forme donde dite parallle ,
connue sous le nom de Orthogonal Frequency Division Multiplexing (OFDM ),
permet de saranchir de la slectivit en frquences des canaux de transmis-
sion.
Nous avons vu quun canal est slectif en frquences vis--vis dun signal
modul occupant une bande B si sa bande de cohrence Bc 1/TM est in-
frieure B. Rappelons, dautre part, que la bande B occupe par un signal
modul numriquement est proportionnelle sa rapidit de modulation 1/T .
Pour construire une forme donde peu sensible la slectivit en frquences du
canal, on peut procder de la manire suivante.
Divisons le dbit D = 1/Tb transmettre en N sous dbits D = 1/N Tb ,
chaque dbit lmentaire alimentant un modulateur M tats, de frquence
porteuse fi . La rapidit de modulation des porteuses modules est alors gale
R = 1/T avec T = N Tb log2 (M ). En choisissant N susamment grand, la
rapidit de modulation des porteuses modules peut devenir aussi petite que
souhait, et la bande B occupe par une porteuse module devient alors trs
infrieure la bande de cohrence Bc du canal. En procdant ainsi le canal est
non slectif en frquences vis--vis des porteuses modules du multiplex. Pour
un canal trajets multiples chaque porteuse module se voit aecte dune
attnuation qui suit une loi de Rayleigh et dun dphasage quirparti sur
[0, 2[. Bien entendu, toutes les porteuses modules ne sont pas aectes de la
mme faon au mme instant par le canal, certaines sont fortement attnues
alors que dautres le sont moins. Les performances en terme de probabilit
derreur par porteuse module sont celles dun canal de Rayleigh non slectif
en frquences et vanouissement lent.
Pour viter en rception les gros paquets derreurs, on peut sarranger pour
que des donnes dinformation qui se suivent soient transmises par des por-
2. Communications numriques 79

teuses aectes diremment par le canal cest--dire espaces dune quantit


au moins gale la bande de cohrence Bc du canal. On peut galement trans-
mettre ces donnes en utilisant la mme porteuse mais des instants spars
dune quantit au moins gale au temps de cohrence tc du canal. Cette fa-
on de procder revient faire un entrelacement frquentiel combin avec un
entrelacement temporel.

Mise en uvre des transmissions multiporteuses

En considrant une modulation MAQ-M sur chaque porteuse, le signal


OFDM a pour expression :

 
+ N 1
s(t) = A {cn,i h(t iT ) exp(j2fn t)} (2.183)
i= n=0

o cn,i = an,i + jbn,i est un symbole complexe de modulation, h(t) une porte
damplitude unit et de dure T et N est le nombre de porteuse de frquence
fn .
Plaons-nous sur lintervalle de temps [iT, (i + 1)T [, le signal s(t) est gal
:

N 1
s(t) = A {cn,i exp(j2fn t)} t [iT, (i + 1)T [ (2.184)
n=0

La mise en uvre dun signal OFDM ncessite de raliser N modulateurs


MAQ-M de frquences porteuses fn . On peut montrer que ces N modulateurs
peuvent tre raliss partir dune transforme de Fourier discrte inverse, ce
qui permet une complexit raisonnable de mise en uvre.
En considrant N porteuses orthogonales, les frquences fn doivent tre
espaces au moins de 1/T .
n
fn = n = 0, 1, , (N 1) (2.185)
T
La densit spectrale de puissance OFDM (f ) dun signal OFDM en bande de
base est proportionnelle :


N 1  2
sin (f n/T )T
OFDM (f ) (2.186)
n=0
(f n/T )T

ce qui donne un spectre plat dans la bande de frquences B = (N 1)/T .


Le signal s(t) peut tre chantillonn la frquence fe la condition que
fe vrie le critre de Nyquist soit :

2(N 1)
fe  (2.187)
T
80 Codes et turbocodes

On peut choisir fe = 2N/T et ainsi le signal s(t) chantillonn aux instants lTe
avec Te = 1/fe est gal :


N 1 /  0
nl
sl = s(lTe ) = A cn,i exp j2 l = 0, 1, , (2N 1) (2.188)
n=0
2N

Sous cette forme, sl nest pas une transforme de Fourier discrte inverse. En
introduisant des symboles virtuels de la manire suivante :

c2N n, i = cn, i n = 1, , (N 1)cN,i =  {c0, i } (2.189)

et en remplaant c0,i par {c0,i }, on peut montrer que le signal chantillonn


sl peut eectivement scrire sous forme dune transforme de Fourier discrte
inverse :

2N 1  
nl
sl = A cn, i exp j2 (2.190)
n=0
2N
Sur chaque intervalle de dure T on ralise une transforme de Fourier discrte
inverse sur 2N points qui permet de produire les N signaux MAQ-M en bande
de base. Un convertisseur numrique-analogique suivi dune transposition en
frquence permet dobtenir les signaux moduls sur frquence porteuse.
En rception, aprs amplication et transposition en bande de base du si-
gnal OFDM, le dcodage des symboles cn,i = an,i + jbn,i de modulation peut
galement se faire par transforme de Fourier discrte directe.
Nous avons vu que la dure T des symboles de modulation augmente avec
N et, pour de grandes valeurs de N , peut devenir comparable au temps de
cohrence tc du canal de transmission. Dans ce cas, lhypothse de canal
vanouissement lent nest plus vrie. Il existe donc des limites au choix du
paramtre N . Pour un canal trajets multiples, si le choix de N ne permet pas
dobtenir B < Bc , le canal reste slectif en frquences vis--vis des porteuses
modules et de linterfrence entre symboles apparat.
Pour saranchir de linterfrence entre symboles rsiduelle sans augmenter
N , on peut utiliser le principe de lintervalle de garde. Pour un canal trajets
multiples, les trajets de propagation arrivent au rcepteur avec des retards n .
En appelant Max le plus grand de ces retards, lintervalle de garde doit
vrier lingalit suivante :
 Max (2.191)
Posons :
T = ts +
En prsence dun intervalle de garde, les symboles de modulation sont toujours
de dure T mais la transforme de Fourier discrte directe en rception est
ralise sur les intervalles de temps [iT + , (i + 1)T [. En procdant ainsi, on
peut vrier que sur cet intervalle de temps seul le symbole de modulation mis
entre iT et (i + 1)T est pris en compte pour le dcodage : il ny a donc pas
dinterfrence entre symboles.
2. Communications numriques 81

Lintroduction dun intervalle de garde a deux consquences. La premire


est que seule une partie de lnergie mise en mission est exploite en rception.
En eet, on met chaque symbole de modulation sur une dure T et on rcupre
ce mme symbole partir dune observation de dure ts = T . La perte,
exprime en dB, est donc gale :
 
1
10 log (2.192)
1 + /ts

La seconde consquence est que lorthogonalit des porteuses doit tre assure
de faon pouvoir sparer ces porteuses en rception, cest--dire en les espa-
ant dune quantit 1/ts . La bande de frquences occupe par le signal OFDM
avec intervalle de garde est donc de :
N 1
B= (2.193)
ts
soit une expansion de bande par rapport un systme sans intervalle de garde
de 1 + /ts .
En prsence dintervalle de garde on a donc intrt choisir de faon
minimiser les dgradations du rapport signal bruit et de lecacit spectrale,
cest--dire choisir le plus petit possible par rapport la dure ts .

Transmission avec galisation en rception


En prsence de canal slectif en frquences, on peut utiliser en mission
une modulation linaire mono-porteuse (MDP-M, MAQ-M) et corriger lIES
cre par le canal par un galiseur. Les quelques architectures dgaliseurs sont
prsentes dans le chapitre 11.
Si on compare lapproche OFDM et la transmission mono-porteuse avec
galisation en termes de complexit de mise en uvre, la dicult de rali-
sation de la transmission OFDM se situe dans le modulateur alors quavec
lgalisation, elle se situe au niveau du rcepteur.
Chapitre 3

Limites thoriques

Linvention rcente des turbocodes et la redcouverte des codes LDPC


ont remis au got du jour les limites thoriques de la transmission qui taient
jusqualors rputes inaccessibles. Ce chapitre fournit les bases conceptuelles
ncessaires la comprhension et au calcul de ces limites, en particulier celles
qui correspondent des situations relles de transmission avec des messages de
taille nie et des modulations binaires.

3.1 La thorie de linformation


3.1.1 Canal de transmission
Un canal est un milieu quelconque o des symboles peuvent tre propags
(tlcommunications) ou enregistrs (mmoires de masse). Par exemple, les
symboles 0 et 1 de lalphabet binaire peuvent tre reprsents par la polarit
dune tension applique une extrmit dune paire de ls conducteurs, en
convenant par exemple que +V correspond 1 et V 0. Alors, la mesure
de la polarit lautre extrmit fera connatre quel symbole binaire a t
mis. lextrmit mettrice, la polarit est change intervalles rgulirement
espacs pour reprsenter les bits dun message et permettre de reconstituer ce
message lextrmit rceptrice. Ce schma est bien trop simple pour illustrer
les systmes modernes de tlcommunications mais, dune faon gnrale, cest
le signe dune grandeur physique relle qui reprsente un symbole binaire en
sortie du canal. Le plus souvent, un symbole binaire est reprsent par une
certaine forme donde et lopration qui associe une suite de formes donde
la suite des symboles du message est la modulation. Les modulations ont fait
lobjet du chapitre prcdent.
Nous nous intressons une situation o le canal est peu able, cest--dire
o lobservation lextrmit rceptrice ne permet pas avec certitude didenti-
er le bit rellement mis car une grandeur parasite, le bruit, indpendant du
message mis et alatoire, est ajoute la grandeur utile (il peut sy rajouter
84 Codes et turbocodes

des eets parasites dattnuation, comme sur le canal de Rayleigh). Le bruit


thermique est bien reprsent par un processus alatoire gaussien. Quand la d-
modulation est eectue de manire optimale, elle a pour rsultat une variable
alatoire gaussienne dont le signe reprsente la meilleure hypothse quant au
symbole binaire mis. Le canal est alors caractris par son rapport signal
bruit, dni comme le rapport de la puissance du signal utile celle du bruit
perturbateur. Pour un rapport signal bruit donn, les dcisions prises quant
aux symboles binaires mis sont aectes dune probabilit derreur constante,
ce qui conduit au modle simple du canal binaire symtrique.

3.1.2 Un exemple : le canal binaire symtrique


Cest le modle de canal le plus simple dont il a dj t question la sec-
tion (1.3). Un canal peut tre dcrit en gnral par les probabilits de transition
des symboles qui y entrent vers les symboles qui en sortent. Un canal binaire
symtrique est ainsi reprsent dans la gure 3.1. Ce canal est sans mmoire,
en ce sens quil opre sparment sur les bits entrants successifs. Son symbole
dentre X et son symbole de sortie Y sont tous deux binaires. Si X = 0 (res-
pectivement X = 1), il existe une probabilit p que Y = 1 (resp. Y = 0). p est
appele probabilit derreur du canal.

Figure 3.1 Canal binaire symtrique de probabilit derreur p. Les probabilits de


transition dun symbole dentre vers un symbole de sortie sont gales deux deux.

Une autre description du mme canal peut tre donne de la manire sui-
vante : soit E une variable alatoire binaire prenant la valeur 1 avec une proba-
bilit p < 1/2 et la valeur 0 avec la probabilit 1p. Lhypothse que p < 1/2 ne
restreint pas la gnralit du modle car lchange des signes arbitraires 0 et 1
conduit remplacer une probabilit derreur initiale p > 1/2 par 1p < 1/2. Le
comportement du canal peut tre dcrit par lexpression algbrique Y = X E,
o X et Y sont les variables binaires respectivement lentre et la sortie du
canal, E une variable binaire derreur, et reprsente laddition modulo 2.
Muni de laddition modulo 2 et de la multiplication ordinaire (avec 0b = 0
et 1 b = b, o b est un symbole binaire quelconque), lensemble binaire
{0, 1} acquiert la structure mathmatique dun corps : chacun de ses lments
a un inverse pour laddition, il existe un lment neutre pour laddition (0),
tout lment non nul (rduit ici au seul lment 1) a un inverse multiplicatif,
puisque 1 est son propre inverse et constitue aussi llment neutre pour la
3. Limites thoriques 85

multiplication. Le corps binaire {0, 1} est le corps qui contient le plus petit
nombre possible dlments.

Congurations derreurs sur le canal binaire symtrique


Supposons maintenant que nous nous intressions, non plus un sym-
bole particulier unique, mais un ensemble de n symboles (conscutifs ou
non) constituant un mot, not x = (x1 x2 . . . xn ). Le fonctionnement du ca-
nal est dcrit par laddition vectorielle modulo 2 du vecteur dinformation
y = (y1 y2 . . . yn ) et dun vecteur derreur e = (e1 e2 . . . en ) :

y =xe (3.1)

la notation dsignant maintenant laddition modulo 2 de deux mots, sym-


bole symbole. Lhypothse que le canal binaire symtrique est sans mmoire
entrane que les variables alatoires ei , i = 1...n, sont mutuellement indpen-
dantes. Les congurations derreurs possibles sont au nombre de 2n , et leur
probabilit ne dpend, pour une probabilit derreur du canal p donne, que
du poids w(e) de la conguration derreurs ralise e, dni comme le nombre
de symboles 1 quelle contient. Ainsi, la probabilit dapparition dune con-
guration derreurs particulire de poids w(e) aectant un mot de longueur n
vaut :
Pe = pw(e) (1 p)nw(e) (3.2)
Comme p a t suppose infrieure 1/2, la probabilit Pe est une fonction
dcroissante du poids w(e), quel que soit n.
La probabilit dapparition dune conguration derreurs quelconque de
poids w vaut :  
n
Pw = pw (1 p)nw (3.3)
w
Le poids des congurations derreurs suit donc une distribution de Bernoulli
dont lesprance mathmatique (ou moyenne) est np et la variance (lesprance
du carr de la dirence entre sa valeur eective et sa moyenne) est np(1 p).

Information mutuelle et capacit du canal binaire symtrique


Pour caractriser un canal, il nous faut dabord mesurer la quantit dinfor-
mation quun symbole Y sortant dun canal apporte en moyenne sur le symbole
correspondant qui y entre, X. Cette grandeur appele information mutuelle et
dont lunit est le Shannon (Sh), est dnie pour un canal entre et sortie
discrtes par :
 Pr(X |Y )   Pr(X, Y )
I(X; Y ) = Pr(X, Y ) log2 = Pr(X, Y ) log2
Pr(X) Pr(X) Pr(Y )
X Y X Y
(3.4)
86 Codes et turbocodes

Dans cette expression, les sommes sont tendues toutes les valeurs discrtes
que peuvent prendre X et Y dans un alphabet donn. Pr(X, Y ) dsigne la
probabilit conjointe de X et de Y , Pr(X|Y ) la probabilit de X condition-
nellement Y (cest--dire quand Y est donne), Pr(X) et Pr(Y ) sont les
probabilits marginales de X et Y (cest--dire de chacune  des variables X
et Y quelle
 que soit la valeur prise par lautre : Pr(X) = Y Pr(X, Y ) et
Pr(Y ) = X Pr(X, Y )). Ces direntes probabilits sont relies selon la rgle
de Bayes :
Pr(X, Y ) = Pr(X |Y ) Pr(Y ) = Pr(Y |X ) Pr(X) (3.5)
La premire galit dans (3.4) dnit I(X; Y ) comme laccroissement logarith-
mique de la probabilit de X qui rsulte en moyenne de la donne Y , cest--dire
la quantit dinformation moyenne que la connaissance de Y apporte celle de
X. La deuxime galit dans (3.4), dduite de la premire en utilisant (3.5),
montre que cette grandeur est symtrique en X et en Y . La quantit dinfor-
mation que la donne de Y apporte sur X est donc gale celle que X apporte
sur Y , ce qui justie le nom dinformation mutuelle.
Linformation mutuelle ne sut pas caractriser le canal, car elle dpend
aussi de lentropie de la source, cest--dire de la quantit dinformation quelle
produit en moyenne par symbole mis plus prcisment le nombre moyen de
bits ncessaires pour reprsenter chaque symbole est donn par :

H(X) = Pr (X) log2 (Pr (X))
X

On dnit la capacit dun canal comme le maximum de linformation mu-


tuelle de ses variables alatoires dentre et de sortie par rapport toutes les
distributions de probabilit possibles de la variables dentre, et on montre que
ce maximum est atteint pour un canal symtrique et sans mmoire lorsque la
variable dentre du canal, X, est quiprobable (ce qui a aussi pour eet de
rendre lentropie de la source maximale). Par exemple, pour le canal binaire
symtrique, la capacit est donne par :

C = 1 + p log2 (p) + (1 p) log2 (1 p) (Sh) (3.6)

Cette capacit est maximale pour p = 0 (elle vaut alors 1 Sh, comme lentropie
de la source : le canal est alors transparent ) et nulle pour p = 1/2, comme
on pouvait sy attendre puisqualors lincertitude est totale.

3.1.3 Aperu sur le thorme fondamental du codage


Le code le plus simple que lon puisse imaginer est le code rptition qui
consiste mettre un bit dinformation sous la forme de plusieurs symboles
identiques. Le dcodage ferme seectue selon le principe du vote majoritaire,
le dcodage souple par simple addition des chantillons reus. Si le canal est
gaussien, le codage rptition napporte aucun gain dans le cas du dcodage
3. Limites thoriques 87

souple. Par exemple, transmettre deux fois le mme symbole en allouant cha-
cun deux la moiti de lnergie disponible et reconstituer le symbole mis par
addition ne fournit pas de meilleur rsultat que transmettre un seul symbole
avec toute lnergie disponible. Le vote majoritaire, quant lui, ne peut senvi-
sager qu partir dune mission triple et dans tous les cas, sur canal gaussien,
ce procd dgrade le bilan de liaison par rapport la solution non code. Il
faut cependant noter que la rptition de messages est une technique largement
rpandue, non pas en tant que procd de codage correcteur, mais en tant que
technique de rcupration de paquets de messages errons ou perdus durant la
transmission. Cette technique dite ARQ (Automatic Repeat reQuest)ne peut
pas tre mise en uvre dans tous les systmes, notamment les liaisons point
multipoint (e.g. diusion de tlvision).

Les codes ne sont idalement ecaces que si leurs mots sont longs, en ce sens
que la probabilit derreur ne peut tre rendue arbitrairement petite que si la
longueur de ces mots tend vers linni. Par ailleurs, un bon code doit conserver
un taux dmission ou rendement R = k/n non nul quand le nombre k des bits
dinformation tend vers linni. Quune communication sans erreurs soit eec-
tivement possible asymptotiquement pour un taux dmission non nul est un
rsultat majeur de la thorie de linformation, appel thorme fondamental du
codage de canal, qui a prcd les tentatives de construire des codes pratiques,
donc de longueur nie. Ce thorme a constitu une puissante incitation la
recherche de nouveaux codes, toujours plus ecaces les uns que les autres. Il
posait de plus un d aux ingnieurs dans la mesure o la preuve du thorme
reposait sur le codage alatoire, dont le dcodage est bien trop complexe pour
tre envisag en pratique.

Bien que la preuve mathmatique du thorme fondamental sous sa forme


la plus gnrale comporte des mathmatiques assez diciles, nous croyons quil
peut tre facilement compris laide de la loi des grands nombres. Cette loi
nonce simplement que les ralisations exprimentales ont des frquences, d-
nies comme le rapport du nombre des occurrences constates au nombre total
des preuves, qui tendent vers les probabilits des vnements correspondants
quand le nombre des preuves tend vers linni. Considrons, par exemple, le jeu
de pile ou face. Avec une pice honnte , on pourrait thoriquement aboutir,
aprs 10000 tirages, la suite forme exclusivement de toutes les piles (ou de
toutes les faces), mais avec une probabilit qui nest que de 210000 103010
(par comparaison, une seconde reprsente environ 1018 du temps coul depuis
la cration de lunivers). En fort contraste, la probabilit que la frquence des
faces (ou des piles) soit proche de la moyenne 1/2 (appartenant par exemple
lintervalle 0,47-0,53) est trs voisine de 1. De manire similaire, une congura-
tion derreurs de poids proche de np quand n symboles sont mis sur un canal
binaire symtrique de probabilit derreur p est trs probable, condition que
le message envoy soit susamment long.
88 Codes et turbocodes

3.1.4 Interprtation gomtrique


Considrons lespace ni des mots de code de n bits munis de la distance
de Hamming, qui sera not Hn . Il contient 2n lments qui sont dits ses points.
En termes gomtriques, dire que le nombre derreurs est voisin de np avec
un grande probabilit signie que le mot reu est reprsent par un point qui
est trs probablement voisin de la surface dune hypersphre n dimensions
dans Hn , centre sur le mot mis et dont le rayon est gal au nombre derreurs
moyen attendu np. Si la distance minimale d du code est suprieure deux
fois ce nombre, le point la surface de cette hypersphre est plus proche du
mot eectivement mis que de toute autre mot du code et donc lidentie sans
ambigut. La rgle de dcodage optimale, qui a dj t prsente dans le
chapitre 1, peut donc tre nonce ainsi : Choisir le mot du code le plus
proche du mot reu .
La probabilit que cette rgle ait un rsultat erron est dautant plus petite
que n est grand et elle tend vers 0 (en supposant que p est maintenu constant)
quand n tend vers linni, pourvu que d > 2np.
Toujours dans des termes gomtriques, la construction du meilleur code
possible peut donc tre interprte comme consistant choisir M < 2n points
appartenant Hn de telle sorte quils soient les plus loigns possibles les uns
des autres (notons que lingalit M < 2n implique que le code est ncessai-
rement redondant). Pour une valeur donne de la probabilit derreur p du
canal (toujours suppos binaire symtrique) il est clair quil existe une limite
au nombre M de points qui peuvent tre placs dans Hn en maintenant la
distance entre ces points suprieure 2np. Soit Mmax ce nombre. La grandeur

log2 (Mmax )
C = lim
n n
mesure en shannons la plus grande quantit dinformation par symbole qui peut
tre communique sans erreur travers le canal, et elle se trouve concider avec
la capacit du canal dnie dans la section 3.1. Aucune procdure explicite
permettant de dterminer Mmax points dans Hn en maintenant la distance
entre ces points suprieure 2np nest en gnral connue, sinon dans quelque
cas simples et peu utiles.

3.1.5 Codage alatoire


Le codage alatoire, cest--dire la construction dun code en choisissant au
hasard ses lments, est un moyen de choisir M points parpills dans lespace
Hn . Ce moyen est optimal pour la distribution des distances, quand n tend vers
linni. Le codage alatoire permet que les points soient, en moyenne, galement
rpartis dans toutes les n dimensions de Hn et il atteint un taux dmission
moyen gal la capacit du canal. Pour un code comportant M mots de lon-
gueur n, il consiste tirer au hasard chaque bit dun mot indpendamment
des autres avec la probabilit 1/2 quil soit 0 ou 1, les M mots qui constituent
3. Limites thoriques 89

le code tant tirs de la mme faon indpendamment les uns des autres. La
probabilit dun mot particulier c est Pc = 2n . On obtient ainsi des mots
dont les poids suivent une distribution de Bernoulli et la probabilit dobtenir
un mot quelconque de poids w est donne par (3.3) pour p = 1/2, soit :
 
n
Pw = 2n (3.7)
w

Lesprance mathmatique, ou moyenne, de ce poids est n/2 et sa variance


vaut n/4. Pour n trs grand, une bonne approximation de la distribution de
poids des mots obtenus par codage alatoire est une distribution gaussienne.
Si on remplace w/n par la variable alatoire continue X, la probabilit que
X (x, x + dx) est pX (x)dx, o :

2n  
pX (x) = exp 2n(x 1/2)2 (3.8)

Cette fonction a un maximum x = 1/2, donc pour w = n/2, et prend des
valeurs dcroissantes symtriques quand x scarte de 1/2. Elle est centre
autour de son maximum x = 1/2 et la largeur de la rgion o elle prend des
valeurs non ngligeables dcrot comme 1/ n, et donc tend vers 0 quand n
tend vers linni.
Cependant, le dcodage dun code obtenu par codage alatoire est impos-
sible en pratique puisque le dcodage dun unique mot reu impliquerait de le
comparer tous les mots du code. Puisque des mots longs sont ncessaires
de bonnes performance, le nombre des mots du code (2Rn ), donc le nombre
de combinaisons ncessaires, est considrable si Rn est grand, ce qui est le cas
en pratique. Cest pourquoi les recherches sur les codes correcteurs derreurs
se sont orientes vers des rgles de codage non alatoires orant la voie un
dcodage de complexit raisonnable.
Aucun moyen gnral nest connu pour construire un code ayant Mmax mots,
pour une valeur arbitraire de n et une probabilit derreur donne p. On sait
avec certitude, ou on conjecture, quun petit nombre de schmas sont optimaux
pour des valeurs donnes de M et n, pour quelques canaux simples. En labsence
dune rgle de construction gnrale de codes optimaux, la recherche a port sur
des codes satisfaisant un critre plus facile : celui de distance minimale, pour
lequel un code est dautant meilleur que sa distance minimale est plus grande.
La pertinence de ce critre na pas t remise en question avant la n des annes
1980. Ce critre ne tient pas compte du nombre des mots du code la distance
minimale dun mot donn (ou multiplicit), alors quune grande valeur de ce
nombre entrane une dgradation des performances. Les turbocodes, qui seront
examins dans les chapitres suivants, nont pas t initialement construits pour
satisfaire ce critre. Leur distance minimale peut tre petite (du moins si on
la compare aux bornes connues sur la plus grande distance minimale possible
et notamment la borne de Gilbert-Varshamov qui sera vue plus loin) mais leur
multiplicit est aussi trs petite. Ces proprits entranent quil peut exister
90 Codes et turbocodes

un plancher derreur (error oor ) cest--dire une dcroissance beaucoup


moins rapide de la probabilit derreur de leur dcodage en fonction du rapport
signal bruit quand celui-ci est grand, que lorsquil est petit. Ce phnomne
de plancher derreur peut galement tre visible avec les codes LDPC, bien que
ceux-ci puissent tre conus sur le critre de la distance minimale. Quoiquil en
soit, dans le cas des turbocodes comme dans celui des LDPC, puisque la nalit
dun codage correcteur est damliorer les communications quand le canal est
mauvais, nous pouvons dire que ces codes sont bons quand ils sont utiles et
mdiocres quand ils le sont moins.

Codes imitant le codage alatoire


Une ide simple consiste essayer de construire des codes imitant le
codage alatoire, en un certain sens. Puisque les performances dun code d-
pendent essentiellement de la distribution de ses distances, et celles dun code li-
naire de la distribution de ses poids, on peut se donner pour tche de construire
un code linaire ayant une distribution de poids voisine de celle du codage ala-
toire. Cette ide a t peu exploite directement, mais on peut interprter les
turbocodes comme en tant une premire mise en oeuvre. Avant de revenir la
conception de procds de codage, nous allons faire une remarque intressante
concernant les codes qui imitent le codage alatoire.
La probabilit dobtenir un mot de longueur n et de poids w en tirant au
hasard avec une probabilit de 1/2 chacun des bits 0 et 1, indpendamment les
uns des autres, est donne par (3.7). En eectuant 2k fois le tirage dun mot,
on obtient un nombre moyen de mots de poids w gal :
 
n
Nw,k = 2(nk)
w
En supposant
 que n, k et w sont grands, nous pouvons exprimer approximati-
n
vement laide de la formule de Stirling, soit :
w
 
n 1 nn+1/2
=
w 2 ww+1/2 (n w)nw+1/2
Le poids minimal obtenu en moyenne, soit wmin , est le plus grand nombre tel
que Nwmin ,k ait 1 pour meilleure approximation entire. Le nombre Nwmin ,k est
donc petit. Il nous sura de le poser gal une constante voisine de 1, quil
ne sera pas ncessaire de prciser davantage car elle sliminera du calcul. On
doit donc avoir :
1 nn+1/2
2(nk) wmin +1/2 nwmin +1/2
=
2 wmin (n wmin )
En prenant les logarithmes de base 2 et en ngligeant les constantes vis--vis
de n, k et wmin qui tendent vers linni, on obtient :
k
1 H2 (wmin /n)
n
3. Limites thoriques 91

o H2 () est la fonction entropie binaire :

H2 = x log2 (x) (1 x) log2 (1 x) pour 0 < x < 1


= 0 pour x = 0 ou x = 1
Le poids wmin est le poids minimal moyen dun code obtenu par tirage alatoire.
Parmi lensemble de tous les codes linaires ainsi obtenus (poids et distances
tant donc confondus), il en est au moins un dont la distance minimale d est
suprieure ou gale au poids moyen wmin , de sorte que lon a :

k
1  H2 (d/n) (3.9)
n
Cest la forme asymptotique de la borne de Gilbert-Varshamov qui relie la dis-
tance minimale d du code ayant la plus grande distance minimale possible ses
paramtres k et n. Cest une borne infrieure mais, sous sa forme asymptotique,
elle est trs proche de lgalit. Un code dont la distance minimale vrie cette
borne avec galit est considr comme bon pour le critre de distance mini-
male. Cela montre quun code construit avec une distribution de poids voisine
de celle du codage alatoire est aussi bon pour ce critre.

3.2 Limites thoriques de performance


3.2.1 Canal entre binaire et sortie relle
Seul le cas du canal binaire symtrique, probabilit derreur p constante,
a t considr jusqu prsent. Au lieu dadmettre une probabilit derreur
constante, on peut considrer que la probabilit derreur varie en fait dun
symbole un autre parce que lchantillon de bruit qui aecte la grandeur reue
varie alatoirement. Ainsi, en prsence de bruit gaussien, la grandeur sortant
du dmodulateur optimal est une variable alatoire gaussienne dont le signe
reprsente la dcision optimale. Nous considrons le canal qui a pour grandeur
de sortie cette variable alatoire relle, que nous notons a. Il peut tre montr
que cette grandeur est lie la dcision optimale x, cest--dire la meilleure
hypothse quant au bit mis x, et la probabilit derreur instantane pa ,
selon la relation :  
x 1 pa
a = (1) ln (3.10)
pa
ce qui entrane, en supposant pa infrieure 1/2 :

1 1
pa = = (3.11)
exp ((1)x a) + 1 exp (|a|) + 1

Nous entendons par probabilit derreur instantane la probabilit derreur pa


qui aecte le symbole reu quand la grandeur

relle mesure en sortie du canal
1pa
est a. Lingalit pa < 1/2 rend ln pa positif et alors la meilleure dcision
92 Codes et turbocodes

est x = 1 quand a est positif



et x = 0 quand a est ngatif. Par ailleurs, la valeur
absolue |a| = ln 1p pa
a
est une fonction dcroissante de la probabilit derreur
de la dcision, et elle en mesure donc la abilit. Elle est nulle pour pa = 1/2
et tend vers linni quand la probabilit derreur pa tend vers 0 (la dcision
devient alors absolument able). La quantit relle que dnit (3.10) est appele
valeur relative ou plus souvent logarithme du rapport de vraisemblance (LRV)
du symbole binaire correspondant.
La capacit du canal ainsi dni peut tre calcule comme le maximum par
rapport X de linformation mutuelle I(X; Y ), dnie en gnralisant (3.4)
Y = a rel. Cette gnralisation est possible mais lexpression de la capacit
ainsi obtenue ne sera pas donne ici. Nous nous contenterons de remarquer
que cette capacit est suprieure celle du canal binaire symtrique qui sen
dduit par prise de dcision ferme, cest--dire restreinte au symbole binaire
Y = x, dun facteur qui crot quand le rapport signal bruit du canal dcrot.
Il atteint /2 quand on fait tendre ce rapport vers 0, si le bruit est gaussien.
Pour un rapport signal bruit donn, le canal binaire lentre et continu
en sortie est donc meilleur que le canal binaire symtrique qui sen dduit en
prenant des dcisions fermes. Ce canal est aussi plus simple que le canal
dcision ferme, puisquil ne comporte pas dorgane de prise de dcision binaire
en fonction de la grandeur relle reue. La prise de dcision ferme entrane la
perte de linformation porte par les variations individuelles de cette grandeur,
ce qui explique que la capacit du canal sortie souple soit suprieure.

3.2.2 Capacit dun canal de transmission


Nous considrons ici le cas le plus gnral ou lentre et la sortie du canal
ne sont plus seulement des grandeurs scalaires mais peuvent tre des vecteurs
dont la dimension N est fonction du systme de modulation. Par exemple, nous
aurons N = 1 pour une modulation damplitude et N = 2 pour une modulation
de phase plus de deux tats. X et Y sont donc remplacs par X et Y.
Ainsi quelle a t introduite dans la section 3.1 pour un canal entre
et sortie discrtes, la capacit est dnie comme le maximum de linformation
mutuelle de ses variables dentre et de sortie, par rapport toutes les distri-
butions de probabilit possibles des variables. Pour une dimension quelconque
de lespace des signaux, la loi demeure :

C = max I (X; Y) (3.12)


X,Y

o I(X; Y) est linformation mutuelle entre X et Y. Lorsque lentre et la


sortie du canal sont des grandeurs relles, et non plus des valeurs discrtes,
les probabilits sont remplaces par des densits de probabilit et les sommes
dans la relation (3.4) deviennent des intgrales. Pour des ralisations x et y des
variables alatoires X et Y, on peut crire linformation mutuelle en fonction
3. Limites thoriques 93

des probabilits de x et de y :


+ 
+
p (y |x )
I (X; Y) = p (x) p (y |x ) log2 dxdy (3.13)
p (y)

1 23 4
2N fois

Pour dterminer C, il faut donc maximiser (3.13) dont lcriture est valide pour
tous types dentres (continues, discrtes) de dimension N quelconque. Dautre
part, le maximum est atteint pour des entres quiprobables (voir section 3.1),
pour lesquelles on a :
1 
M
p (y) = p (y |xi )
M i=1

o M est le nombre de symboles ou ordre de la modulation. (3.13) peut alors


tre crit sous la forme :

M  + 
+ # M $
1  j=1 p (y |xj )
C = log2 (M ) p (y |xi ) log2 dy (3.14)
M i=1 p (y |xi )

1 23 4
N fois

Selon les informations supplmentaires disponibles sur la transmission, telles


que le type de bruit sur le canal, lvanouissement ventuel, le type dentre
et de sortie (continues, discrtes) et la modulation utilise, (3.14) peut tre
particularise.

Limite de Shannon dun canal gaussien entre et sortie continues


bande limite
Considrons simplement le cas dun canal gaussien, avec des entre et sortie
continues. La borne de Shannon [3.1] donnant la capacit maximale C dun tel
canal est atteinte en prenant comme entre un bruit blanc gaussien de moyenne
nulle et de variance 2 , dcrit par des probabilits indpendantes sur chaque
dimension, cest--dire tel que :

5
N
p(x) = p(xn )
n=1

o x = [x1 x2 . . . xN ] est le vecteur dentre et p(xn ) = N (0, 2 ). Linformation


mutuelle est atteinte pour des entres quiprobables, et en notant N0 /2 la
variance du bruit, (3.14) donne aprs dveloppement :
 
N 2 2
C= log2 1 + .
2 N0
94 Codes et turbocodes

Cette formule est modie pour faire apparatre lnergie moyenne Eb de chacun
des bits formant le symbole x et par voie de consquence le rapport signal
Eb
bruit N :
0  
Eb
Cc = log2 1 + R (3.15)
N0
la capacit tant exprime en bit/seconde/Hz. En prenant R = 1, cette criture
permet de borner le rapport Eb /N0 par la limite de Shannon normalise, de la
manire reprsente en gure 3.2.

Figure 3.2 Limite de Shannon normalise.

Capacit dun canal gaussien entre discrte


Lentre discrte, note x = xi , i = 1, , M , est typiquement le rsultat
dune modulation eectue avant lmission. Les entres xi appartiennent un
ensemble de M valeurs discrtes, M tant lordre de la modulation, et sont de
dimension N , soit xi = [xi1 , xi2 , , xiN ]. La probabilit de transition du canal
gaussien est :
# $
5N 5
N
1 (yn xin )
2
p (y |xi ) = p (yn |xin ) = exp
n=1 n=1
N0 N0

et nous supposons des entres prenant les M direntes


valeurs possibles de
faon quiprobable. En notant dij = (xi xj )/ N0 le vecteur de dimension
N relatif la distance entre les symboles xi et xj , et t un vecteur dintgration
de dimension N , on obtient une expression simplie de (3.14), reprsentant la
3. Limites thoriques 95

capacit dun canal gaussien entre discrte, pour tout type de modulation :

C = log2 (M )
  " %

M
+ +


M

1
( )N
2 2
M exp |t| log2 exp 2tdij |dij | dt
i=1 j=1

1 23 4
N fois
(3.16)
C tant exprime en bit/symbole. On remarque que dij augmente quand le
rapport signal bruit augmente (N0 diminue) et la capacit tend vers log2 (M ).
Les direntes modulations possibles napparaissent que dans lexpression de
dij . Les sommes discrtes de 1 M reprsentent les entres discrtes possibles.
Pour le calcul nal, on exprime dij en fonction de Eb /N0 selon la modulation
et la capacit du canal peut tre dtermine de faon numrique. La gure 3.3
donne le rsultat du calcul pour quelques modulations MDP et MAQ.

Figure 3.3 Limite de Shannon normalise.

Capacit du canal de Rayleigh


Soit un canal de Rayleigh dont lattnuation est note . Pour des entres
discrtes et quiprobables (cas similaire au canal gaussien trait prcdem-
ment), (3.14) est toujours applicable. Deux cas se prsentent, conditionns par
la connaissance ou non de lattnuation du canal.
96 Codes et turbocodes

Dans le cas o nest pas connu a priori, on crit la densit de probabilit


conditionnelle du canal de Rayleigh sous la forme :


+
p(y |xi ) = p()p(y |xi , )d


+ - . 2

= 1
2 2
2 exp 2 exp |yx
2 2
i|
d
0

Un dveloppement de cette expression conduit une criture explicite de cette


densit de probabilit conditionnelle qui se rvle indpendante de :
|y|2
 |y|2 2 2
xi ye |xi | +2

2 e 22
p(y |xi ) = |xi |2 +2 2 +2 2 2 3/2
" # (|xi | +2 ) $%
1 12 erfc q xi y
2(|xi |2 +2 2 )

ce qui est susant pour pouvoir valuer la capacit en utilisant (3.14).


Dans le cas o lattnuation est connue, la densit de probabilit pour une
ralisation particulire de scrit :
# $
2
1 |y xi |
p (y |xi , ) = exp
2 2 2 2

La capacit instantane C pour cette ralisation particulire de est dabord


calcule et il sagit ensuite de moyenner C sur lensemble des ralisations de
pour obtenir la capacit du canal :

M +  
1  p (y |xi , )
C = p (y |xi , ) log2 dy
M i=1 p (y | )


+

C= C p () d = E [C ]
0

3.3 Limites pratiques de performance


Dans les sections qui prcdent, nous avons obtenu des limites thoriques de
performances qui sont soumises certaines hypothses non ralistes en pratique,
en particulier la transmission de blocs de donnes de longueur innie. Dans la
grande majorit des systmes de communications actuels, cest une suite de
blocs de donnes qui sont transmis, ces blocs tant dune taille trs variable
suivant le systme mis en oeuvre. Logiquement, une transmission par blocs de
taille limite entrane une perte de performance par rapport une transmission
3. Limites thoriques 97

par blocs de taille innie, car la quantit dinformation redondante contenue


dans les mots de code est diminue.
Un autre paramtre utilis pour spcier les performances des systmes
rels de transmissions est le taux derreurs paquet (TEP), qui correspond la
proportion de blocs de donnes faux (contenant au moins une erreur binaire
aprs dcodage).
Ce qui suit contient quelques rsultats sur le canal gaussien, dans deux cas :
canal gaussien entre binaire et sortie continue, et canal gaussien entre
continue et sortie continue. Le cas dentre continue est assimilable celui
dune modulation nombre dtats M inni. Moins nous avons dtats pour
dcrire l entre, moins la communication est performante. En consquence, un
canal entre binaire donne une borne infrieure sur les performances pratiques
des modulations, alors quun canal entre continue en fournit une limite
suprieure.

3.3.1 Canal gaussien entre binaire


Les travaux initiaux sur ce canal sont dus Gallager [3.2]. Nous notons
toujours p(y|x) la probabilit de transition sur le canal, et nous considrons
des messages dinformation de taille k. En supposant quun message, choisi de
faon arbitraire et quiprobable parmi 2k , soit encod puis transmis travers
le canal, et que lon utilise un dcodage maximum de vraisemblance, alors le
thorme du codage fournit une borne sur la probabilit derreur moyenne de
dcodage du mot de code mis. Dans [3.2], il est montr quil est possible de
borner le TEP de la faon suivante, pour nimporte quelle valeur de la variable
, 0   1 :
" %1+
  1/1+
TEP  (2 1)
k
Pr(x)p(y|x) (3.17)
y x

Dans le cas dun canal entres binaires quiprobables, la probabilit de cha-


cune des entres est 1/2 et les vecteurs x et y peuvent tre traits indpendam-
ment en voies scalaires x et y. Considrant que (3.17) est valide pour tout ,
an dobtenir la borne suprieure la plus proche possible du TEP, il faut mini-
miser la partie droite de (3.17) en fonction de . En introduisant le rendement
R = k/n, cela revient donc minimiser pour 0   1, lexpression :
+  " # $ # $% k
  1+
1
2 2
1 1 (y 1) (y + 1)
2R exp 2 + exp 2 dy
2 2 2 (1 + ) 2 (1 + )

La valeur explicite de est connue pour des entres binaires (modulations


1/2
MDP-2 et MDP-4) : = (2REb /N0 ) . Une expression exploitable de la
98 Codes et turbocodes

borne suprieure de Gallager sur le TEP dun canal entre binaire est alors :
+ # # + $$1+ k
E
 exp y 2 y 4RE /N
k Nb b 0
e 0 min01 2R+1 cosh dy (3.18)
1+
0

Cette expression relie le TEP, le rendement, la taille des paquets et le rapport


signal bruit Eb /N0 , pour un canal gaussien entre binaire. Elle fournit une
borne suprieure du TEP et non pas une galit. La formule nest pas trs bien
adapte tous les cas de gure ; en particulier, les simulations montrent que
pour un rendement proche de 1, la borne est beaucoup trop lche et ne donne
pas de rsultats vritablement utiles.
Si lon souhaite dterminer la pnalit associe une taille de paquet don-
ne, on peut comparer le rsultat obtenu par une valuation de (3.18) celui
obtenu par un calcul de capacit qui considre des paquets de taille innie.

3.3.2 Canal gaussien entre continue


En considrant un canal entre continue, nous nous plaons dans le cas
oppos au canal entre binaire, cest--dire que nous allons obtenir une borne
suprieure sur les limites pratiques de performances (toutes les modulations
donnent des performances infrieures un canal entre continue). Toute mo-
dulation utilise donnera des performances bornes infrieurement par la limite
obtenue par une entre binaire et suprieurement par une entre continue.
Les premiers rsultats sont dus Shannon [3.3] et la mthode dite de len-
veloppement de sphre (sphere-packing bound ) qui fournit une borne infrieure
sur la probabilit derreur de codes alatoires sur canal gaussien. On suppose
toujours un dcodage par maximum de vraisemblance. Un mot de code de lon-
gueur n est une squence de n nombres entiers. Gomtriquement, ce mot de
code peut tre assimil un point dans un espace euclidien n-dimensionnel et
le bruit peut tre vu comme un dplacement de ce point vers un point voisin
suivant une distribution gaussienne. En notant P la puissance du signal mis,
tous les mots de code sont situs sur la surface dune sphre de rayon nP .
k
En observant que nous avons un code avec 2 points (mots de code), cha-
cun une distance nP de lorigine dans lespace n-dimensionnel, deux points
quelconques sont quidistants de lorigine, et par consquent, la bissectrice de
ces deux points (un hyperplan de dimension n1) passe par lorigine. En consi-
drant lensemble des 2k points formant le code, tous les hyperplans passent par
lorigine et forment des pyramides avec lorigine comme sommet. La probabilit
1
2k
derreur, aprs dcodage, est Pr(e) = 2k Pr(ei ), o Pr(ei ) est la probabilit
i=1
que le point associ au mot de code i soit dport par le bruit en dehors de la
pyramide correspondante.
Le principe de lenveloppement de sphre de Shannon consiste en cette
vision gomtrique du codage. Cependant, il est trs complexe de garder lap-
3. Limites thoriques 99

proche pyramidale et la pyramide dangle solidei , autour du mot i, est rem-


place par un cne de mme sommet et de mme angle solide i (gure 3.4).

Figure 3.4 Assimilation dune pyramide un cne dans lapproche dite sphere-
packing de Shannon.

Il peut tre montr que la probabilit que le signal reste dans le cne est
suprieure la probabilit quil reste dans la pyramide de mme angle solide. En
consquence, la probabilit derreur peut tre borne de la manire suivante :
k
1 
2
Pr (e)  k Q (i ) (3.19)
2 i=1

en notant Q (i ) la probabilit que le bruit transporte le point i hors du cne


dangle solide i (donc quune erreur de dcodage soit faite sur ce point). Nous
observons aussi que, si lon considre lensemble des mots de code quitablement
rpartis sur la surface de la sphre de rayon nP , les pyramides de dcodage
forment une partition de cette mme sphre, et donc langle solide de cette
sphre 0 est la somme de tous les angles solides des pyramides i . Nous
pouvons ainsi remplacer les angles solides i par langle solide moyen 0 /2k .
Cette progression qui conduit une borne infrieure sur la probabilit der-
reur pour un dcodage optimal de codes alatoire sur le canal gaussien est
dite de lenveloppement de sphre car elle consiste restreindre le codage
une sphre n-dimensionnelle et les eets du bruit des mouvements sur cette
sphre.
Des dveloppements mathmatiques donnent une forme exploitable de la
borne infrieure sur la probabilit derreur :
 - .
ln (TEP)  R k
ln (G (i , A) sin i ) 12 A2 AG (i , A) cos i
- .
i arcsin 2R
- . (3.20)
G (i , A) A cos i + A2 cos2 i + 4 /2
+
A= 2REb /N0

Ces expressions relient sous la forme dune borne infrieure du TEP, la taille k
des paquets, le rapport signal bruit Eb /N0 et le rendement du code R. Pour
100 Codes et turbocodes

des valeurs de R leves et pour des tailles de blocs k infrieures quelques


dizaines de bits, la borne infrieure est trs loigne du TEP rel.
Asymptotiquement, pour des tailles de blocs tendant vers linni, la borne
obtenue par (3.20) tend vers la limite de Shannon pour un canal entre et
sortie continues telle que prsente en section 3.2. De la mme faon que pour
le canal entre binaire, si lon souhaite quantier la perte apporte par la
transmission de paquets de taille nie, il faut normaliser les valeurs obtenues
par lvaluation de (3.20) en leur retirant la limite de Shannon (3.15), la pnalit
devant tre nulle quand les tailles de paquets tendent vers linni. Les pertes
lies la transmissions de paquets de taille nie par rapport la transmission
dun ot continu de donnes sont moindres dans le cas dun canal entre
continue que dans celui dun canal entre binaire.

3.3.3 Quelques exemples de limites


La gure 3.5 ci-dessous donne un exemple de pnalits apportes par la
transmission de blocs de taille k infrieure 10000 bits, dans le cas dune
entre continue et dans le cas dune entre binaire. Ces valeurs de pnalit sont
combiner avec les valeurs de capacits prsentes en gure 3.3, pour obtenir
les limites absolues. Comme on la dj signal, cette gure est considrer
avec prcaution pour de petites valeurs de k et des TEP levs.

Figure 3.5 Pnalits en Eb/N 0 pour la transmission de paquets de taille nie pour
le canal entre continue et le canal entre binaire en fonction de la taille k (bits
dinformation), pour un code de rendement 5/6 et dirents TEP.
3. Limites thoriques 101

Les rsultats obtenus concernent le canal gaussien. Il est thoriquement pos-


sible de traiter le cas des canaux avec vanouissement (Rayleigh par exemple)
mais les calculs deviennent compliqus et les rsultats trs approximatifs.

3.4 Distances minimales requises


Dans ce qui prcde, nous avons mis en vidence des limites thoriques et
celles-ci ont t calcules pour le canal gaussien. Ces limites dterminent des
frontires, exprimes en rapport signal bruit, entre des canaux de transmission
la sortie desquels il est possible de corriger les erreurs et des canaux pour
lesquels cette correction ne peut tre envisage. En supposant quexistent des
codes dont le dcodage peut seectuer prs de ces limites, la question se pose
maintenant de savoir quelles distances minimales de Hamming (DMH) doivent
possder ces codes pour satisfaire un objectif donn de taux derreurs.
Nous prsentons ici quelques rsultats pour le canal gaussien et des modu-
lations couramment utilises : MDP-4 et MDP-8 ainsi que MAQ-16.

3.4.1 DMH requise avec la modulation MDP-4


Avec un dcodage maximum de vraisemblance aprs transmission sur
canal gaussien, le taux derreur de paquet (TEP) possde une borne suprieure
connue, dite borne de lunion :
# $
1  Eb
TEP  N (d)erfc dR (3.21)
2 N0
ddmin

o erfc(x) dsigne la fonction erreur complmentaire dnie par erfc (x) =


 - .
2

exp t2 dt. dmin est la distance minimale de Hamming du code associ
x
la modulation considre, MDP-2 ou MDP-4 dans le cas prsent. N (d) repr-
sente les multiplicits du code considr (voir section 1.5). Dans certains cas,
ces multiplicits peuvent tre dtermines de faon prcise (comme par exemple
les codes convolutifs simples, les codes de Reed-Solomon, les codes BCH, etc.
. . . ), et (3.21) peut tre value facilement. Pour dautres codes, en particulier
les turbocodes, il nest pas possible de dterminer facilement ces multiplicits et
il faut poser quelques hypothses ralistes an de contourner le problme. Les
hypothses que nous adoptons pour les turbocodes ainsi que les codes LDPC
sont les suivantes [3.4] :
Hypothse 1 : Uniformit. Il existe au moins un mot de code de poids1
dmin ayant un bit dinformation di gal 1, pour toute place i de la partie
systmatique (1  i  k).
Hypothse 2 : Unicit. Il ny a quun seul mot de code de poids dmin tel
que di = 1.
1 Les codes tant linaires, distance et poids ont mme signication.
102 Codes et turbocodes

Hypothse 3 : Non recouvrement. Les k mots de code de poids dmin asso-


cis aux k bits dinformation sont distincts.
En utilisant ces hypothses et en se limitant au premier terme de la somme dans
(3.21), la borne suprieure devient une approximation asymptotique (faibles
TEP) : # $
k Eb
TEP erfc dmin R (3.22)
2 N0

Figure 3.6 Distances minimales requises pour une modulation MDP-4 et un ca-
nal gaussien en fonction de la taille des paquets, pour quelques rendements et taux
derreurs de paquets (TEP).

Les trois hypothses, prises sparment, sont plus ou moins ralistes. Les hy-
pothses 1 et 3 sont quelque peu pessimistes sur la quantit de mots de code
la distance minimale. Lhypothse 2 est quant elle lgrement optimiste. Les
3. Limites thoriques 103

trois hypothses ensemble conviennent pour une approximation acceptable de


la multiplicit, dautant plus quune imprcision sur la valeur de cette multipli-
cit ne nuit pas la qualit du rsultat nal. En eet, la distance minimale cible
que lon cherche dterminer partir de (3.22) y apparat dans un argument
dexponentielle, alors que la multiplicit est un coecient multiplicateur.
Il est alors possible de combiner (3.22) avec les rsultats obtenus en sec-
tion 3.3 qui fournissent les limites de rapport signal bruit. En donnant
Eb /N0 la valeur limite en dea de laquelle lutilisation dun code na pas dint-
rt, nous pouvons extraire de (3.22) la DMH susante pour atteindre un TEP
toutes les valeurs possibles de rapport signal bruit. Sachant dune part que
(3.22) suppose un dcodage idal (maximum de vraisemblance) et dautre part
que la limite thorique nest pas en pratique atteinte, la DMH cible peut tre
lgrement infrieure au rsultat de cette extraction.
La gure 3.6 prsente quelques rsultats obtenus en utilisant cette mthode.

3.4.2 DMH requise avec la modulation MDP-8


Nous considrons ici une modulation MDP-8 sur canal gaussien mise en
uvre selon le principe de lapproche pragmatique et telle que prsente
en gure 3.7. Cette approche consiste dabord encoder par paquets le ot
de donnes pour produire des mots de code qui sont ensuite permuts par
lentrelaceur , avec une loi de permutation tire au hasard. Les contenus des
mots de code permuts sont ensuite agencs par groupes de 3 bits selon un
codage de Gray, avant dtre moduls en MDP-8. Le dmodulateur dlivre les
symboles reus dont on extrait les logarithmes des rapports de vraisemblance
(LRV) pour tous les bits des paquets. Enn un entrelacement inverse et un
dcodage compltent la chane de transmission.

Figure 3.7 Schma de transmission suivant lapproche pragmatique.

La probabilit derreur Pe est la probabilit de dcider dun mauvais mot de


code la place du mot de code mis. Soit Ns le nombre de symboles moduls
qui dirent entre le mot de code incorrectement dcod et le mot de code mis ;
soient galement {i } et {i } (1  i  Ns ) les squences des phases mises
pour ces symboles qui dirent. Il est possible dexprimer Pe en fonction de ces
104 Codes et turbocodes

phases et du rapport signal bruit :



   
 
1  Es i i
Pe = erfc sin2 (3.23)
2 N0 2
i=1,Ns

o Es est lnergie par symbole mis et N0 la densit monolatrale de puissance


du bruit. Il nest cependant pas possible dexploiter (3.23) dans le cas gnral.
Il nous faut une hypothse supplmentaire, qui vient sajouter aux trois hy-
pothses formules dans la section prcdente et qui suppose que NS est bien
infrieure la taille des mots de code entrelacs :
Hypothse 4. Un symbole ne contient pas plus dun bit oppos dans le
mot de code correct et dans le mot de code incorrect.
Cette hypothse permet dexprimer les probabilits suivantes :
Pr {i i = /4} = 2/3; Pr {i i = 3/4} = 1/3
qui signient que deux fois sur trois
 en moyenne, la distance euclidienne entre
les symboles concurrents est 2 ETs sin(/8) et porte, une fois sur trois,

2 ETs sin(3/8) (gure 3.8).

Figure 3.8 Constellation de MDP-8 avec codage de Gray. Es et T sont respective-


ment lnergie et la dure dun symbole.

En considrant le cas asymptotique, cest--dire en posant Ns = dmin , il


vient :
TEPMDP-8, alatoire
- .dmin d
min - . - 1 .j+1    (3.24)
k 23 dmin
j 2 erfc Es
N0 j sin
2 3
8 + (dmin j) sin2
8
j=0

Cette relation permet donc dtablir une relation entre le rapport signal
bruit, la taille des blocs dinformation et le TEP. De la mme faon quen
section 3.4, nous pouvons combiner ce rsultat avec les limites sur le rapport
signal bruit pour obtenir les DMH cibles pour une modulation MDP-8 code
selon lapproche pragmatique. La gure 3.9 prsente quelques rsultats obtenus
partir de cette mthode.
3. Limites thoriques 105

Figure 3.9 Distances minimales requises pour une modulation MDP-8 et un ca-
nal gaussien en fonction de la taille des paquets, pour quelques rendements et taux
derreurs de paquets (TEP).

3.4.3 DMH requise avec la modulation MAQ-16

La mme mthode que prcdemment, base sur les mmes quatre hypo-
thses, peut tre applique au cas de la modulation MAQ-16 avec codage prag-
matique. La constellation est une constellation de Gray classique 16 tats.
Pour
+75% des bits constituant les symboles, la distance+ euclidienne minimale
est 2Es /5 et pour les 25% restants, cette distance est 3 2Es /5. Lestimation
106 Codes et turbocodes

du TEP donne :
 dmin dmin    j
3 dmin 1 1 Es
TEP k erfc (8j + dmin ) (3.25)
4 j=0
j 3 2 10N0

Comme pour les modulations MDP-4 et MDP-8, cette relation utilise conjoin-
tement avec les limites en rapport signal bruit permet dobtenir des valeurs
de DMH cibles pour la modulation MAQ-16 (gure 3.10).

Figure 3.10 Distances minimales requises pour une modulation MAQ-16 et un ca-
nal gaussien en fonction de la taille des paquets, pour quelques rendements et taux
derreurs de paquets (TEP).

Quelques observations peuvent tre faites partir des rsultats obtenus dans
la section 3.4. Par exemple, dans le cas particulier dune modulation MDP-4,
3. Limites thoriques 107

pour un rendement R = 1/2, une taille k = 4000 bits et un TEP de 1011 , la


gure 3.6 fournit une DMH cible de 50. Les codes alatoires, travers lva-
luation que lon peut tirer de la borne de Gilbert-Varshamov (relation (3.9)),
possdent une distance minimale denviron 1000. La dirence est donc im-
portante entre ce que le codage idal (alatoire) peut orir et ce dont on a
rellement besoin.
Un second aspect concerne la dpendance des DMH requises la modulation
utilise, dpendance qui savre tre minime. Ainsi, un code ayant une distance
minimale susante pour atteindre la capacit du canal avec une modulation
MDP-4 satisfera aussi le cahier des charges avec les autres modulations, partir
dune certaine taille de message (suprieure 1000 bits pour R = 1/2) ou pour
des messages plus longs (au del de 5000 bits) si le rendement est plus lev.

3.5 Bibliographie
[3.1] C.E. Shannon, A Mathematical Theory of Communication , Bell
Systems Technical Journal, vol. 27, July and Oct. 1948.
[3.2] R.E. Gallager, Information Theory and Reliable Communications, John
Wiley & Sons, 1968.
[3.3] C.E. Shannon, Probability of Error for Optimal Codes in a Gaussian
Chanel , Bell Systems Technical Journal, vol. 38, 1959.
[3.4] C. Berrou, E. Maury et H. Gonzalez, Which Minimum Hamming
Distance Do We Really Need ? , Proc. 3rd international symposium on turbo
codes & related topics, pp. 141-148, Brest, Sept. 2003.
Chapitre 4

Codes en bloc

Le codage en blocs consiste associer un bloc de donnes d de k symboles


issus de la source dinformation un bloc c, appel mot de code, de n symboles
avec n k. La dirence (nk) reprsente la quantit de redondance introduite
par le code. La connaissance de la rgle de codage en rception permet de
dtecter et de corriger, sous certaines conditions, des erreurs. Le rapport k/n
est appel rendement ou taux de codage du code.
Les symboles du message dinformation d et du mot de code c prennent
leurs valeurs dans un corps ni Fq q lments, appel corps de Galois et
dont les principales proprits sont donnes dans lannexe de ce chapitre. Nous
verrons que pour une majorit de codes, les symboles sont binaires et prennent
leur valeur dans le corps F2 deux lments (0 et 1). Ce corps est le plus petit
corps de Galois.
Les oprations lmentaires daddition et de multiplication dans le corps F2
sont rsumes dans la table 4.1.
a b a+b ab
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1

Table 4.1 Addition et multiplication dans le corps de Galois F2

Un code en blocs de longueur n est une application g de lensemble Fkq vers


lensemble Fqn qui associe tout bloc de donnes d un mot de code c.
g: Fkq Fnq
d  c = g(d)
Lensemble des mots de code, au nombre de q k , constitue gnralement un
sous-ensemble trs rduit de Fnq .
110 Codes et turbocodes

Un code en blocs de paramtres (n, k), que nous noterons C(n, k), est li-
naire si les mots de code constituent un sous-espace vectoriel de Fnq , cest--dire
si g est une application linaire. Une consquence directe de la linarit est que
la somme de deux mots de code est un mot de code, et que le mot nul constitu
de n symboles zro est toujours un mot de code.
Nous allons maintenant considrer les codes en blocs linaires symboles
binaires. Les codes en blocs linaires symboles non binaires seront traits
ensuite.

4.1 Les codes en blocs symboles binaires


Dans le cas dun code en blocs binaire, les lments de d et c sont valeurs
dans F2 . Comme g est une application linaire, nous allons pouvoir dcrire
lopration de codage simplement comme le rsultat de la multiplication dun
vecteur de k symboles reprsentant les donnes coder par une matrice repr-
sentative du code considr, appele matrice gnratrice du code.

4.1.1 Matrice gnratrice dun code en blocs binaire


Notons d = [d0 dj dk1 ] et c = [c0 cj cn1 ] le bloc de don-
nes et le mot de code associ. En exprimant le vecteur d partir dune base
(e1 , . . ., ej , . . ., ek1 ) de Fk2 , nous pouvons crire :


k1
d= dj ej (4.1)
j=0

En tenant compte du fait que lapplication g est linaire, le mot c associ d


est gal :

k1
c = g(d) = dj g(ej ) (4.2)
j=0

En exprimant le vecteur g(ej ) partir dune base (e 1 , , e l , , e n1 ) de


Fn2 , nous obtenons :

n1
g(ej ) = gjl e l (4.3)
l=0

Les vecteurs g(ej ) = gj = (gj0 gjl gj,n1 ), 0 j k 1 reprsentent les


k lignes de la matrice G associe lapplication linaire g.

g0 g0,0 g0,l g0,n1
.. .. .. .. .. ..
. . . . . .


G = gj = gj,0 gj,l gj,n1 (4.4)

. . . .. . ..
. .
. . . . . . . .
gk1 gk1,0 gk1,l gk1,n1
4. Codes en bloc 111

La matrice G k lignes et n colonnes, ayant pour lments gjl F2 est


appele matrice gnratrice du code C(n, k). Au bloc de donnes d, elle associe
le mot de code c par la relation matricielle :
c = dG (4.5)
La matrice gnratrice dun code en blocs nest pas unique. En eet, en per-
mutant les vecteurs de la base (e 1 , . . . , e l , . . . , e n1 ) ou de la base (e1 , . . . , ej , . . . ,
ek1 ), on obtient une nouvelle matrice gnratrice G dont les colonnes ou les
lignes ont aussi t permutes. Bien entendu, la permutation des colonnes ou
des lignes de la matrice gnratrice engendre toujours le mme ensemble de
mots de code ; ce qui change, cest lassociation entre les mots de code et les
k-uplets de donnes.
Signalons que les lignes de la matrice gnratrice dun code en blocs li-
naire sont des mots de code indpendants, et quils constituent une base du
sous-espace vectoriel engendr par le code. La matrice gnratrice dun code en
blocs linaire est donc de rang k. Une consquence directe est que toute famille
compose de k mots de code indpendants peut tre utilise pour dnir une
matrice gnratrice du code considr.

Exemple 4.1
Considrons un code en blocs linaire de parit C(n, k) avec k = 2 et n =
k + 1 = 3 (pour un code de parit la somme des symboles dun mot de code est
gale zro). Nous avons quatre mots de code :

Bloc de donnes Mot de code


00 000
01 011
10 101
11 110

Pour crire une matrice gnratrice de ce code, considrons, par exemple, la


base canonique de F22 :
   
e0 = 1 0 , e1 = 0 1
et la base canonique de F32 :
     
e 0 = 1 0 0 , e 1 = 0 1 0 , e 2 = 0 0 1
Nous pouvons crire :
g (e0 ) = [101] = 1.e 0 + 0.e 1 + 1.e 2
g (e1 ) = [011] = 0.e 0 + 1.e 1 + 1.e 2
Une matrice gnratrice du code de parit est donc gale :
 
1 0 1
G=
0 1 1
112 Codes et turbocodes

En permutant les deux premiers vecteurs de la base canonique de F32 , nous


obtenons une nouvelle matrice gnratrice du mme code de parit :
 
 0 1 1
G =
1 0 1

Nous venons de voir, sur cet exemple, que la matrice gnratrice dun code en
blocs nest pas unique. En permutant les lignes ou les colonnes dune matrice
gnratrice ou encore en ajoutant une ligne une ou plusieurs autres lignes,
ce qui revient considrer une nouvelle base dans Fn2 , il est toujours possible
dcrire une matrice gnratrice dun code en blocs sous la forme suivante :


1 0 0 p0,1 p0,l p0,nk

 0 1 0 p1,1 p1,l p1,nk

G = Ik P = . . .. .. .. .. (4.6)
.. .. . . . .
0 0 ... 1 pk1,1 ... pk1,l ... pk1,nk

o Ik est la matrice identit k k et P une matrice k (n k) utilise pour


calculer les (n k) symboles de redondance.
Ainsi crite, la matrice gnratrice G est sous forme rduite et engendre des
mots de code de la forme :
 
c = d dP (4.7)
Dans chaque mot de code, les k bits de poids fort concident avec les symboles
de donnes. Le code est donc systmatique.
Plus gnralement, le code sera dit systmatique lorsquil existe k indices
i0 , i1 , . . . , ik1 , tels que pour tout mot de donnes d, le mot de code c associ
vrie la relation :

ciq = dq , q = 0, 1, , k 1.
4. Codes en bloc 113

4.1.2 Code dual et matrice de contrle de parit


Avant daborder la notion de code dual, dnissons lorthogonalit entre
deux vecteurs constitus de n symboles. Deux vecteurs x = [x0 xj xn1 ]
et y = [y0 yj yn1 ] sont orthogonaux (xy) si leur produit scalaire not
x, y est nul.


n1
xy x, y = xj yj = 0
j=0

chaque code en blocs linaire C(n, k), on peut associer un code en blocs
linaire dual, qui vrie que tout mot du code dual est orthogonal tout mot
du code C(n, k). Le dual du code C(n, k) est donc un sous-espace vectoriel de
Fn2 constitu de 2nk mots de code de n symboles. Ce sous-espace vectoriel est
lorthogonal du sous-espace vectoriel constitu des 2k mots du code C(n, k).
Il en rsulte que tout mot c du code C(n, k) est orthogonal aux lignes de la
matrice gnratrice H de son code dual.

cHT = 0 (4.8)
o T dsigne la transposition.
Un vecteur y appartenant Fn2 est donc un mot du code C(n, k) si, et
seulement si, il est orthogonal aux mots de son code dual cest--dire si :

yHT = 0

Le dcodeur dun code C(n, k) peut utiliser cette proprit pour vrier que
le mot reu est un mot de code et dtecter ainsi la prsence derreurs. Cest
pourquoi la matrice H est appele la matrice de contrle de parit du code
C(n, k).
Il est facile de voir que les matrices G et H sont orthogonales (GHT = 0).
Ainsi, lorsque le code est systmatique et que sa matrice gnratrice est de la
forme G = [Ik P], nous avons :

H = [PT Ink ] (4.9)

4.1.3 Distance minimale


Avant de rappeler ce que reprsente la distance minimale dun code en bloc
linaire (voir section 1.2), revenons sur la notion de distance de Hamming qui
mesure la dirence entre deux mots de code. La distance de Hamming, note
dH , est gale au nombre demplacements o les deux mots de code possdent
des symboles dirents.
On peut galement dnir le poids de Hamming, not wH , dun mot de code
comme le nombre de symboles non nuls de ce mot de code. Ainsi, la distance
de Hamming entre deux mots de code est aussi gale au poids de leur somme.
114 Codes et turbocodes

Exemple 4.2
Soit deux mots u = [1101001] et v = [0101101]. La distance de Hamming
entre u et v est de 2. Leur somme u + v = [1000100] a pour poids de Hamming
2.
La distance minimale dmin dun code en blocs est gale la plus petite
distance de Hamming entre ses mots de code.

dmin = min dH (c, c ), c, c C(n, k) (4.10)


c=c

En tenant compte du fait que la distance entre deux mots de code est gale au
poids de leur somme, la distance minimale dun code en blocs est aussi gale
au poids minimal de ses mots de code non nuls.

dmin = min wH (c) (4.11)


c=0,cC(n,k)

Lorsque le nombre de mots de code est trs lev, la recherche de la dis-


tance minimale peut savrer laborieuse. Une premire solution pour contourner
cette dicult est de dterminer la distance minimale partir de la matrice de
contrle de parit.
Nous avons vu que dmin est gal au poids de Hamming minimal des mots
de code non nuls. Considrons un mot de code de poids dmin . La proprit
dorthogonalit cHT = 0 implique que la somme de dmin colonnes de la matrice
de contrle de parit est nulle. Ainsi dmin correspond au nombre minimal de
colonnes de la matrice de contrle de parit linairement dpendantes.
Une seconde solution pour valuer dmin est dutiliser des bornes suprieures
de la distance minimale. Une premire borne peut sexprimer en fonction des
paramtres k et n du code. Pour un code en blocs linaire dont la matrice g-
nratrice est crite sous la forme systmatique G = [Ik P], les (n k) colonnes

de la matrice unit Ink de la matrice de contrle de parit (H = PT Ink )
tant linairement indpendantes, toute colonne de PT peut sexprimer comme
au plus une combinaison de ces (n k) colonnes. La distance minimale est donc
borne suprieurement par :

dmin n k + 1 (4.12)

Une autre borne de la distance minimale, appele borne de Plotkin, peut tre
obtenue en remarquant que la distance minimale est ncessairement infrieure
au poids moyen des mots de code non nuls. Si on considre lensemble des mots
de code, il est facile de voir quil y a autant de symboles 0 que de symboles
1. Ainsi la somme des poids de tous les mots de code est gale n2k1 . Le
nombre de mots de code non nuls tant de 2k 1, la distance minimale peut
tre borne par :
n2k1
dmin k (4.13)
2 1
4. Codes en bloc 115

4.1.4 Codes tendus et codes raccourcis


partir dun code en blocs C(n, k) de distance minimale dmin on peut
construire un code linaire C(n + 1, k) en ajoutant la n de chaque mot de
code un symbole gal 1 (respectivement 0) si le mot de code comprend un
nombre impair (respectivement pair) de 1. Ce code est appel code tendu et
sa distance minimale est gale dmin + 1 si dmin est un nombre impair.
La matrice de contrle de parit He dun code tendu est de la forme :

0
..
H .
He =
0
1 1 1

o H est la matrice de contrle de parit du code C(n, k).


Un code en blocs systmatique C(n, k) de distance minimale dmin peut tre
raccourci en mettant zro s < k symboles de donnes. On obtient ainsi un
code linaire systmatique C(n s, k s). Bien entendu les s symboles mis
zro ne sont pas transmis, mais ils sont conservs pour calculer les (n k)
symboles de redondance. La distance minimale dun code raccourci est toujours
suprieure ou gale la distance du code C(n, k).

4.1.5 Codes produits


Un code produit est un code plusieurs dimensions construit partir
de codes lmentaires. Pour illustrer ces codes, considrons un code produit
construit partir de deux codes en blocs systmatiques C1 (n1 , k1 ) et C2 (n2 , k2 ).
Soit un tableau n2 lignes et n1 colonnes. Les k2 premires lignes sont
remplies par des mots de code de longueur n1 produits par le code C1 (n1 , k1 ).
Les (n2 k2 ) lignes restantes sont compltes par des symboles de redondance
produits par le code C2 (n2 , k2 ) ; les k2 symboles de chacune des n1 colonnes
tant les donnes dinformation du code C2 (n2 , k2 ). On peut montrer que les
(n2 k2 ) lignes du tableau sont des mots de code du code C1 (n1 , k1 ). Il en
rsulte que toutes les lignes du tableau sont des mots de code de C1 (n1 , k1 ) et
toutes les colonnes du tableau sont des mots de code de C2 (n2 , k2 ).
Les paramtres du code produit deux dimensions C(n, k) de distance
minimale dmin sont gaux au produit des paramtres des codes lmentaires.

n = n1 n2 k = k1 k2 dmin = d1min d2min


o d1min et d2min sont respectivement les distances minimales des codes C1 (n1 , k1 )
et C2 (n2 , k2 ).
Un code produit deux dimensions peut tre vu comme une concatnation
doublement srie de deux codes lmentaires (chapitre 6). Un codeur C1 est
aliment par k2 blocs de donnes de longueur k1 et produit k2 mots de code
de longueur n1 qui sont crits en ligne dans une matrice. La matrice est lue
116 Codes et turbocodes

par colonnes et produit n1 blocs de symboles de longueur k2 qui alimentent


un codeur C2 . Celui-ci produit son tour n1 mots de code de longueur n2 .
La gure 4.1 illustre la mise en uvre dun code produit deux dimensions
construit partir de deux codes en blocs systmatiques.

Figure 4.1 Code produit ralis partir de la concatnation srie de deux codes en
blocs systmatiques.

4.1.6 Exemples de codes en blocs binaires


Code de parit
Ce code utilise un symbole binaire de redondance (n = k + 1) dtermin de
faon assurer la nullit modulo 2 de la somme des symboles de chaque mot
de code.

  
k1
c= d0 d1 dk2 dk1 cn1 avec cn1 = dj
j=0

 
o d = d0 d1 dk1 reprsente les symboles de donnes. La distance
minimale de ce code est de 2.

Exemple 4.3
Une matrice gnratrice G de ce code pour n = 5, k = 4 est gale :

1 0 0 0 1
0 1 0 0 1  
G= 0
= I4 P
0 1 0 1
0 0 0 1 1
4. Codes en bloc 117

et la matrice de contrle de parit H se rduit un vecteur.


   
H= 1 1 1 1 1 = PT I1

Code rptition
Pour ce code de paramtres k = 1 et n = 2m + 1, chaque donne binaire
issue de la source dinformation est rpte un nombre impair de fois. La dis-
tance minimale de ce code est 2m + 1. Le code rptition C(2m + 1, 1) est le
code dual du code de parit C(2m + 1, 2m).

Exemple 4.4
La matrice gnratrice et la matrice de contrle de parit de ce code, pour
k = 1, n = 5, peuvent tre les suivantes :
   
G= 1 1 1 1 1 = I1 P

1 1 0 0 0
1 0 1 0 0  

H= = PT I4
1 0 0 1 0
1 0 0 0 1

Code de Hamming
Pour un code de Hamming les colonnes de la matrice de contrle de pa-
rit sont les reprsentations binaires des nombres de 1 n. Chaque colonne
tant constitue de m = (n k) symboles binaires, les paramtres du code de
Hamming sont donc :

n = 2m 1 k = 2m m 1

Les colonnes de la matrice de contrle de parit tant constitues par toutes les
combinaisons possibles de (n k) symboles binaires sauf (00 0), la somme
de deux colonnes est gale une colonne. Le nombre minimal de colonnes li-
nairement dpendantes est de 3. La distance minimale dun code de Hamming
est donc gale 3, quelle que soit la valeur des paramtres n et k.

Exemple 4.5
Soit un code de Hamming de paramtre m = 3. Les mots de code et les blocs
de donnes sont alors respectivement constitus de n = 7 et k = 4 symboles
binaires. La matrice de contrle de parit peut tre la suivante :

1 1 1 0 1 0 0  
H = 1 1 0 1 0 1 0 = PT I 3
1 0 1 1 0 0 1
118 Codes et turbocodes

et la matrice gnratrice correspondante est gale :



1 0 0 0 1 1 1
0 1 0 0 1 1 0  
G= 0 0 1 0 1
= I4 P
0 1
0 0 0 1 0 1 1

Code longueur maximale


Les colonnes de la matrice gnratrice dun code longueur maximale sont
les reprsentations binaires des nombres de 1 n. Les paramtres de ce code
sont donc n = 2m 1, k = m et on peut montrer que sa distance minimale est
de 2k1 . Le code longueur maximale de paramtres n = 2m 1, k = m est le
code dual du code de Hamming de paramtres n = 2m 1, k = 2m m 1,
cest--dire que la matrice gnratrice de lun est la matrice de contrle de
parit de lautre.

Code de Hadamard
Les mots de code dun code de Hadamard sont constitus par les lignes
dune matrice de Hadamard et de sa matrice complmentaire. Une matrice de
Hadamard comprend n lignes et n colonnes (n entier pair) dont les lments
sont des 1 et des 0. Chaque ligne dire des autres lignes sur n/2 positions. La
premire ligne de la matrice est constitue uniquement de 0, les autres lignes
possdant n/2 0 et n/2 1.
Pour n = 2, la matrice de Hadamard est de la forme :
 
0 0
M2 =
0 1

partir dune matrice Mn on peut gnrer une matrice M2n .


 
Mn Mn
M2n =
Mn Mn

o Mn est la matrice complmentaire de Mn cest--dire o chaque lment


1 (respectivement 0) de Mn devient un lment 0 (respectivement 1)
pour Mn .

Exemple 4.6
Si n = 4 M4 et M4 sont de la forme :

0 0 0 0 1 1 1 1
0 1 0 1 1 0 1 0
M4 =
0 0
M4 =
1 1 1 1 0 0
0 1 1 0 1 0 0 1
4. Codes en bloc 119

Les lignes de M4 et M4 sont les mots de code dun code de Hadamard de


paramtres n = 4, k = 3 et de distance minimale gale 2. Dans ce cas
particulier le code de Hadamard est un code de parit.
Plus gnralement, les lignes des matrices Mn et Mn sont les mots dun
code de Hadamard de paramtres n = 2m , k = m + 1 et de distance minimale
dmin = 2m1 .

Codes de Reed-Muller

Un code de Reed-Muller (RM) dordre r et de paramtre m, not RMr,m ,


possde des mots de code de longueur n = 2m et les blocs de donnes sont
constitus de k symboles avec :
     
m m N N!
k =1+ + + , avec =
1 r q q! (N q)!

o r < m. La distance minimale dun code RM est dmin = 2mr .


La matrice gnratrice dun code RM dordre r se construit partir de la
matrice gnratrice dun code de RM dordre r 1 et si G(r,m) dsigne la
matrice gnratrice du code de Reed-Muller dordre r et de paramtre m, elle
sobtient partir de G(r1,m) par la relation :
 
(r,m) G(r1,m)
G =
Qr
 
m
o Qr est une matrice de dimensions n.
r
Par construction, G(0,m) est un vecteur ligne de longueur n dont les lments
sont gaux 1. La matrice G(1,m) est obtenue en crivant sur chaque colonne
la reprsentation binaire de lindice des colonnes (de 0 n 1). Par exemple
pour m = 4, la matrice G(1,m) est donne par :

0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
G(1,4) =
0
.
0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

La matrice Qr sobtient simplement en considrant toutes les combinaisons


de r lignes de G(1,m) et en eectuant le produit composante composante
de ces vecteurs. Le rsultat de cette multiplication constitue une ligne de
Qr . Par exemple, pour la combinaison comportant les lignes de G(1,m) din-
dices i1 , i2 , . . . , ir , le j-ime coecient de la ligne ainsi obtenue est gal
(1,m) (1,m) (1,m)
Gi1 ,j Gi2 ,j Gir ,j , la multiplication tant mene dans le corps F2 . Par
120 Codes et turbocodes

exemple, pour r = 2, nous obtenons :



0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1

0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1
Q2 = 0 0


0 0 0 0 1 1 0 0 0 0 0 0 1 1
0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1

On peut montrer que le code RMmr1,m est le code dual du code RMr,m
cest--dire que la matrice gnratrice du code RMmr1,m est la matrice de
contrle de parit du code RMr,m . Pour certaines valeurs de r et de m, la
matrice gnratrice du code RMr,m est aussi sa matrice de contrle de parit.
On dit alors que le code RMr,m est self dual. Le code RM1,3 , par exemple, est
un code self dual.

4.1.7 Les codes cycliques


Les codes cycliques reprsentent la classe la plus importante des codes en
blocs linaires. Leur mise en uvre relativement aise, partir de registres
dcalage et doprateurs logiques, en a fait des codes attractifs et trs utiliss.

Dnition et reprsentation polynomiale


Un  C(n,k) est cyclique si pour tout mot de code
 code en blocs linaire
c = c0 c1 cn1 , c1 = cn1 c0 cn2 , obtenu par per-
mutation circulaire droite dun symbole de c, est aussi un mot de code. Cette
dnition des codes cycliques entrane que toute permutation circulaire droite
de j symboles dun mot de code, redonne un mot de code.
Pour les codes cycliques, on utilise une reprsentation polynomiale des mots de
code et des blocs de donnes. Ainsi, au mot de code c on associe le polynme
c(x) de degr n 1.

c(x) = c0 + c1 x + + cj xj + + cn1 xn1

et au bloc de donnes d le polynme d(x) de degr k 1.

d(x) = d0 + d1 x + + dj xj + + dk1 xk1

o dj et cj prennent leurs valeurs dans F2 .


Multiplions c(x) par x,

xc(x) = c0 x + c1 x2 + + cj xj+1 + + cn1 xn

puis divisons xc(x) par xn + 1, nous obtenons :

xc(x) = (xn + 1)cn1 + c1 (x)


4. Codes en bloc 121

o c1 (x) est le reste de la division de xc(x) par xn + 1 avec :

c1 (x) = cn1 + c0 (x) + cj xj+1 + cn2 xn1

On peut noter que c1 (x) correspond au mot de code c1 = (c0 . . . cj . . . cn2 ).


En suivant la mme dmarche que prcdemment, on obtient :

xj c(x) = (xn + 1)q(x) + cj (x) (4.14)

o cj (x) est aussi un mot de code obtenu par j permutations circulaires droite
des symboles de c(x) .
Les mots de code dun code cyclique sont des multiples dun polynme g(x)
normalis de degr (n k) appel polynme gnrateur.

g(x) = g0 + g1 x + + gj xj + + xnk

o gj prend ses valeurs dans F2 .


Le polynme gnrateur dun code cyclique est un diviseur de xn + 1. Il existe
un polynme h(x) de degr k tel que lquation (4.15) soit vrie.

g(x)h(x) = xn + 1 (4.15)

Le produit d(x)g(x) est un polynme de degr infrieur ou gal n 1, il


peut en consquence reprsenter un mot de code. Le polynme d(x) possdant
2k ralisations, d(x)g(x) permet de gnrer 2k mots de code. Notons dl (x) la
l-ime ralisation de d(x) et cl (x) la reprsentation polynomiale du mot de code
associ. Nous pouvons crire :

cl (x) = dl (x)g(x) (4.16)

Nous allons maintenant montrer que les mots de code vriant la relation (4.16)
satisfont aux proprits des codes cycliques. Pour cela rcrivons la relation
(4.14) sous la forme :

cj (x) = (xn + 1)q(x) + xj c(x) (4.17)

Comme c(x) reprsente un mot de code, il existe un polynme d(x) de degr au


plus k 1, tel que c(x) = d(x)g(x). En utilisant (4.15), on peut donc exprimer
autrement (4.17) :
cj (x) = g(x)[h(x)q(x) + xj d(x)] (4.18)
Les mots de code cj (x) sont donc des multiples du polynme gnrateur, ils
peuvent tre gnrs partir des donnes dj (x) en appliquant la relation (4.16).

Polynme gnrateur du code dual de C(n, k)


Le code dual dun code en bloc cyclique est galement cyclique. Le polynme
h(x) de degr k peut tre utilis pour construire le code dual de C(n, k). Le
polynme rciproque h(x)de h(x) est dni de la manire suivante :

h(x) = xk h(x1 ) = 1 + hk1 x + hk2 x2 + + h1 xk1 + xk


122 Codes et turbocodes

Nous pouvons crire diremment (4.15) :

[xnk g(x1 )][xk h(x1 )] = xn + 1 (4.19)

Le polynme h(x) est aussi un diviseur de xn + 1 ; il est le polynme gnrateur


dun code C = C(n, n k) qui est le code dual de C(n, k).
Remarque : le code de polynme gnrateur h(x) est quivalent au code
dual C . La reprsentation vectorielle des mots engendrs par h(x) correspond
la reprsentation vectorielle retourne des mots de code de C .

C , engendr par h(x)   engendr par h(x) 


Code
c = c0 c1 cn1 c = cn1 c1 c0

Matrice gnratrice dun code cyclique


partir du polynme gnrateur g(x) il est possible de construire une
matrice gnratrice G du code C(n, k). On se rappelle que les k lignes de la
matrice G sont constitues de k mots de code linairement indpendants. Ces
k mots de code peuvent tre obtenus partir dun ensemble de k polynmes
indpendants de la forme :

xj g(x) j = k 1, k 2, . . . , 1, 0.
Soit d(x) la reprsentation polynomiale dun bloc de donnes quelconque. Les
k mots de code engendrs par les polynmes xj g(x) ont pour expression :

cj (x) = xj g(x)d(x) j = k 1, k 2, , 1, 0
et les k lignes de la matrice G ont pour lments les coecients binaires des
monmes de cj (x).

Exemple 4.7
Soit le code C(7, 4) de polynme gnrateur g(x) = 1 + x2 + x3 . Prenons
pour bloc de donnes d(x) = 1. Les 4 lignes de la matrice gnratrice G sont
obtenues partir des 4 mots de code cj (x).

c3 (x) = x3 + x5 + x6
c2 (x) = x2 + x4 + x5
c1 (x) = x + x3 + x4
c0 (x) = 1 + x2 + x3
Une matrice gnratrice du code C(7, 4) est gale :

0 0 0 1 0 1 1
0 0 1 0 1 1 0
G= 0

1 0 1 1 0 0
1 0 1 1 0 0 0
4. Codes en bloc 123

Code cyclique sous forme systmatique


Lorsque les mots de code sont sous forme systmatique, les donnes issues
de la source dinformation sont spares des symboles de redondance. Le mot
de code c(x) associ au bloc de donnes d(x) est alors de la forme :

c(x) = xnk d(x) + v(x) (4.20)

o v(x) est le polynme de degr au plus gal n k 1 associ aux symboles


de redondance.
En tenant compte du fait que c(x) est un multiple du polynme gnrateur
et que laddition et la soustraction peuvent tre confondues dans F2 , alors on
peut crire :
xnk d(x) = q(x)g(x) + v(x)
v(x) est donc le reste de la division de xnk d(x) par le polynme gnrateur
g(x). Le mot de code associ au bloc de donnes d(x) est gal xnk d(x) aug-
ment du reste de la division de xnk d(x) par le polynme gnrateur.

Figure 4.2 Schma de principe dun circuit diviseur par g(x).

Exemple 4.8
Pour illustrer le calcul dun mot de code crit sous forme systmatique,
prenons lexemple dun code C(7,4) de polynme gnrateur g(x) = 1 + x + x3
et dterminons le mot de code c(x) associ au message d(x) = 1 + x2 + x3 , soit :

c(x) = x3 d(x) + v(x)


Le reste de la division de x3 d(x) par g(x) = 1 + x + x3 tant gal 1, le mot
de code c(x) associ au bloc de donnes d(x) est :

c(x) = 1 + x3 + x5 + x6

Ainsi au bloc de donnes d, constitu de 4 symboles binaires dinformation est


associ le mot de code c avec :
   
d= 1 0 1 1 c= 1 0 0 1 0 1 1
124 Codes et turbocodes

Pour obtenir la matrice gnratrice, il sut de coder d(x) = 1, x, x2 , x3 .


On obtient :
d(x) c(x)
1 1 + x + x3
x x + x2 + x4
2
x 1 + x + x2 + x5
3
x 1 + x2 + x6
Do la matrice gnratrice sous une forme systmatique :

1 1 0 1 0 0 0
0 1 1 0 1 0 0
G= 1

1 1 0 0 1 0
1 0 1 0 0 0 1
 
On peut vrier
 que pour d = 1  0 1 1 , le produit matriciel dG fournit
bien c = 1 0 0 1 0 1 1 .

Mise en uvre dun codeur


Nous venons de voir que le codeur doit eectuer la division de xnk d(x)
par le polynme gnrateur g(x) puis ajouter le reste v(x) de cette division
xnk d(x). Cette opration peut tre ralise en utilisant uniquement des re-
gistres dcalage et des additionneurs dans le corps F2 . Lopration la plus
dicile raliser tant la division de xnk d(x) par g(x), examinons dabord le
schma de principe dun diviseur par g(x) reprsent sur la gure 4.2. Le circuit
diviseur est ralis partir dun registre dcalage (n k) mmoires notes
Ri et autant dadditionneurs. Le registre dcalage est initialis zro et les
k coecients du polynme xnk d(x) sont introduits dans le circuit diviseur
au rythme dune horloge. Aprs k impulsions dhorloge, on peut vrier que le
rsultat de la division est disponible en sortie du circuit diviseur, ainsi que le
reste v(x) qui se trouve dans les mmoires du registre dcalage.

Figure 4.3 Schma de principe dun codeur pour un code cyclique.

Le schma de principe du codeur reprsent dans la gure 4.3, utilise le cir-


cuit diviseur de la gure 4.2. La multiplication de d(x) par xnk , correspondant
4. Codes en bloc 125

un simple dcalage, est ralise en introduisant le polynme d(x) en sortie du


registre dcalage du diviseur.
Les k donnes issues de la source dinformation sont introduites au rythme
dune horloge dans le codeur (interrupteur I en position 1) qui ralise la divi-
sion de xnk d(x) par g(x). Simultanment, les k donnes issues de la source
dinformation sont aussi mises en ligne. Cette opration termine, le reste v(x)
de la division se trouve dans les (n k) mmoires du registre dcalage. Lin-
terrupteur I passe alors en position 2, et les (n k) symboles de redondance
sont envoys vers la sortie du codeur.

Les codes BCH


Les codes de Bose-Chaudhuri-Hocquenghem, appels codes BCH permettent
de construire de manire systmatique des codes cycliques corrigeant au moins
t erreurs dans un bloc de n symboles cest--dire, des codes dont la distance
minimale dmin est au moins gale 2t + 1.
Pour construire un code BCH, on se xe t ou de manire quivalente d,
appele distance construite du code et on dtermine son polynme gnrateur
g(x). Le code obtenu possde une distance minimale dmin qui est toujours su-
prieure ou gale la distance construite.

Code BCH primitif


Le polynme gnrateur g(x) dun code BCH primitif construit sur un corps
de Galois Fq q = 2m lments, de distance construite d possde (d1) racines
de la forme : l , , l+j , , l+d2 , o 2t + 1 est un lment primitif du
corps de Galois Fq et l un entier. Le code BCH est dit primitif car les racines
de son polynme gnrateur sont des puissances de , lment primitif de Fq .
Nous verrons ultrieurement quil est possible de construire des codes BCH non
primitifs.
Gnralement le paramtre l est x 0 ou 1 et on montre que pour un
code BCH primitif lexposant (l + d 2) de la racine j+d2 doit tre pair.
Lorsque l = 0, la distance construite est donc ncessairement paire, cest--dire
gale 2t + 2 pour un code corrigeant t erreurs. Lorsque l = 1, la distance
construite est impaire, soit gale 2t + 1 pour un code corrigeant t erreurs.

Code BCH primitif avec l = 1


Le polynme gnrateur dun code BCH primitif corrigeant au moins t
erreurs (distance construite 2t+1) a donc pour racines , , j , , 2t .
On montre que le polynme gnrateur g(x) dun code BCH primitif est
gal :

g(x) = P.P.C.M. (m (x), , mi (x), , m2t (x))

o mi (x) est le polynme minimal coecients dans le corps F2 associ


j et P.P.C.M. dsigne le Plus Petit Commun Multiple.
126 Codes et turbocodes

Il est dtaill dans lannexe 2 quun polynme coecients dans F2 ayant


j comme racine possde aussi 2j comme racine. Ainsi, les polynmes
minimaux mi (x) et m2i (x) ont mme racines. Cette remarque permet
de simplier lcriture du polynme gnrateur g(x).

g(x) = P.P.C.M. (m (x), m3 (x), , m2t1 (x)) (4.21)

Le degr dun polynme minimal tant infrieur ou gal m, le degr


(n k) du polynme gnrateur dun code BCH primitif corrigeant au
moins t erreurs, est donc infrieur ou gal mt. En eet, g(x) est au plus
gal au produit de t polynmes de degr infrieur ou gal m.
Les paramtres dun code BCH primitif construit sur un corps de Galois
Fq de distance construite d = 2t + 1 sont donc les suivants :

n = 2m 1; k 2m 1 mt; dmin 2t + 1

Lorsque t = 1 un code BCH primitif est un code de Hamming. Le po-


lynme gnrateur dun code de Hamming, gal m (x), est donc un
polynme primitif.

Exemple 4.9
Dterminons le polynme gnrateur dun code BCH ayant pour para-
mtres m = 4 et n = 15, t = 2 et l = 1. Pour cela, nous allons utiliser
un corps de Galois q = 24 lments construit partir dun polynme
primitif de degr m = 4(4 + + 1). Les lments de ce corps sont donns
dans lannexe 2.
Nous devons dabord dterminer les polynmes minimaux m (x) et m3 (x)
associs respectivement aux lments et 3 du corps F16 .
Nous avons vu dans lannexe 2 que si est racine du polynme m (x)
alors 2 , 4 , 8 sont aussi des racines de ce polynme (llvation de
aux puissances 16, 32 etc. . . redonne, modulo 4 + + 1, les lments
, 2 , 4 , 8 ). Nous pouvons donc crire :

m (x) = (x + )(x + 2 )(x + 4 )(x + 8 )

En dveloppant lexpression de m (x) on obtient :

m (x) = [x2 + x(2 + ) + 3 ][x2 + x(8 + 4 ) + 12 ]

En utilisant les reprsentations binaires des lments du corps F16 , on


peut montrer que 2 + = 5 et que 4 + 8 = 5 (on rappelle que
les additions binaires sont faites modulo 2 dans le corps de Galois). On
poursuit alors le dveloppement de m (x) et il vient nalement :

m (x) = x4 + x + 1

Pour le calcul de m3 (x), les racines prendre en compte sont 3 , 6 , 12 , 24


= 9 (15 = 1), les autres puissances de 3 (48 , 96 , ) redonnent les
4. Codes en bloc 127

racines prcdentes. Le polynme minimal m3 (x) est donc gal :

m3 (x) = (x + 3 )(x + 6 )(x + 12 )(x + 9 )

ce qui aprs dveloppement et simplication donne :

m3 (x) = x4 + x3 + x2 + x + 1

Le P.P.C.M. des polynmes m (x) et m3 (x) est videmment gal au


produit de ces deux polynmes puisquils sont irrductibles et ainsi, le
polynme gnrateur est gal :

g(x) = (x4 + x + 1)(x4 + x3 + x2 + x + 1)

En dveloppant, on obtient :

g(x) = x8 + x7 + x6 + x4 + 1

Finalement les paramtres de ce code BCH sont :

m = 4; n = 15; n k = 8; k = 7; t = 2
Les valeurs numriques des paramtres (n, k, t) des principaux codes BCH
ainsi que les polynmes gnrateurs associs ont t tabuls et peuvent
tre trouvs dans [4.1]. titre dexemple, nous donnons dans la table 4.2
les paramtres et les polynmes gnrateurs, exprims en octal, de quelques
codes BCH de pouvoir de correction t = 1 (codes de Hamming).

n k t g(x)
7 4 1 13
15 11 1 23
31 26 1 45
63 57 1 103
127 120 1 211
255 247 1 435
511 502 1 1021
1023 1013 1 2011
2047 2036 1 4005
4095 4083 1 10123

Table 4.2 Paramtres de quelques codes de Hamming.

Note : g(x) = 13 en octal donne 1011 en binaire soit g(x) = x3 + x + 1

Code BCH primitif avec l = 0


Le polynme gnrateur dun code BCH primitif corrigeant au moins t
erreurs (distance construite d = 2t + 2) possde (2t + 1) racines de la
forme : 0 , 1 , , j , , 2t ; soit une racine de plus (0 ) que lorsque
128 Codes et turbocodes

l = 1. En tenant compte du fait que les polynmes minimaux mj (x) et


m2j (x) ont mme racines, le polynme gnrateur g(x) est gal :

g(x) = P.P.C.M.(m0 (x), m1 (x), m3 (x), , m2t1 (x))

1. Code de parit
Considrons un code BCH avec l = 0 et t = 0. Son polynme gn-
rateur, g(x) = (x + 1) possde une racine unique 0 = 1. Ce code
utilise un seul symbole de redondance et les mots c(x) de ce code
vrient la condition :

c(0 ) = c(1) = 0

Ce code qui est cyclique puisque (x + 1) divise (xn + 1) est un code


de parit de paramtres n = k + 1, k, t = 0. Ainsi, chaque fois que
lon construit un code BCH en choisissant l = 0, on introduit dans
le polynme gnrateur un terme en (x + 1) et les mots de code sont
de poids pair.

2. Code CRC (Cycle Redundancy Code)


Un autre exemple de code BCH pour lequel l = 0 est le code CRC
utilis pour la dtection derreurs. Un code CRC possde une dis-
tance construite de 4 (t = 1) et son polynme gnrateur, daprs ce
qui prcde, est donc gal :

g(x) = (x + 1)m (x)

tant un lment primitif, m (x) est un polynme primitif et ainsi


le polynme gnrateur dun code CRC est gal au produit de (x+1)
par le polynme gnrateur dun code de Hamming.

gCRC (x) = (x + 1)gHamming (x)

Les paramtres dun code CRC sont donc :

n = 2m 1; (n k) = m + 1; k = 2m m 2

Les codes CRC les plus utiliss ont pour paramtres m = 12, 16,
32 et leurs polynmes gnrateurs sont donns, en octal, dans la
table 4.3.
Note : g(x) = 14017 en octal correspond 1 100 000 001 111 en
binaire soit :

g(x) = x12 + x11 + x3 + x2 + x + 1


4. Codes en bloc 129

Code m g(x)
CRC-12 12 14017
CRC-16 16 300005
CRC-CCITT 16 210041
CRC-32 32 40460216667

Table 4.3 Polynmes gnrateurs de quelques codes CRC.

Code BCH non primitif


Le polynme gnrateur dun code BCH non primitif (avec l = 1) corrigeant
au moins t erreurs (distante construite d = 2t + 1) possde 2t racines de la
forme : , 2 , 3 , . . . , 2t o est un lment non primitif dun corps de Galois
Fq . En tenant compte du fait que les polynmes minimaux m j (x) et m 2j (x)
ont les mmes racines, le polynme gnrateur dun code BCH non primitif est
gal :
g(x) = P.P.C.M.(m (x), m 3 (x).....m 2t1 (x))
On peut montrer que la longueur n des mots dun code BCH non primitif nest
plus de la forme 2m 1 mais est gale p, o p est lexposant de tel que
p = 1 (p est lordre de ). Un corps de Galois Fq possde des lments non
primitifs si 2m 1 nest pas premier. Les lments non primitifs sont alors de
la forme = o est un diviseur de 2m 1 et est un lment primitif du
corps.

Exemple 4.10
Soit un corps de Galois Fq avec m = 6 et q = 64. La quantit 2m 1 =
63 nest pas gale un nombre premier, elle est divisible par 3, 7, 9, 21 et
63. Les lments non primitifs de ce corps sont donc 3 , 7 , 9 , 21 , 63 =
1. Construisons par exemple un code BCH non primitif ayant un pouvoir de
correction au moins gal t = 2 sur le corps F64 et prenons pour lment
non primitif = 3 . Nous avons deux polynmes minimaux calculer m (x)
et m 3 (x). En tenant compte du fait que 21 = 63 = 1, les racines de ces
polynmes sont :

m (x) : racines , 2 , 4 , 8 , 16 , 32 = 11
m 3 (x) : racines 3 , 6 , 12
Le polynme gnrateur de ce code est gal :
g(x) = m (x)m 3 (x)
ce qui aprs dveloppement et simplication donne :
g(x) = x9 + x8 + x7 + x5 + x4 + x + 1
Les paramtres de ce code BCH non primitif sont :
n = 21; (n k) = 9; k = 12
130 Codes et turbocodes

Code de Golay
Parmi les codes BCH non primitifs, le plus connu est certainement le code
de Golay construit sur un corps de Galois Fq avec m = 11, q = 2048. En
remarquant que 2m 1 = 2047 = 23 89, llment non primitif utilis
pour construire un code de Golay est = 89 . Le calcul du polynme
gnrateur de ce code construit sur le corps F2048 conduit lexpression
suivante :
g(x) = x11 + x9 + x7 + x6 + x5 + x + 1
On peut montrer que la distance minimale dmin dun code de Golay est
de 7 et ainsi, son pouvoir de correction est de 3 erreurs dans un bloc de 23
symboles binaires ( 23 = 2047 = 1). Les paramtres dun code de Golay
sont donc :
n = 23; (n k) = 11; k = 12; t = 3
Notons que le polynme rciproque de g(x), gal g(x) = x11 g(x1 )
permet galement dengendrer un code de Golay.

g(x = x11 + x10 + x6 + x5 + x4 + x2 + 1

4.2 Les codes en blocs symboles non binaires


4.2.1 Les codes de Reed-Solomon
Les codes de Reed-Solomon, dsigns par le sigle RS, sont les codes sym-
boles non binaires les plus connus et surtout les plus utiliss. Pour les codes
symboles non binaires les coecients cj des mots de code et dj des blocs de don-
nes prennent leur valeur dans un corps de Galois Fq q = 2m lments. Ainsi,
chaque symbole de ces codes peut tre cod sur m symboles binaires. Les codes
de Reed-Solomon tant des codes cycliques, ils sont engendrs par un polynme
gnrateur g(x) diviseur de xn + 1 dont les coecients gj j = 0, 1, , n k 1
prennent galement leur valeur dans le corps de Galois Fq .
Le polynme gnrateur dun code de Reed-Solomon, de distance construite
d possde (d 1) racines l , , l+j , , l+d2 o est un lment primitif
du corps de Galois Fq . Il a donc pour expression :

g(x) = P.P.C.M.(ml (x), , ml+j (x), , ml+d2 (x))

o ml+j est le polynme minimal associ llment l+j du corps Fq .


En utilisant les rsultats de lannexe 2 sur les polynmes minimaux coef-
cients dans Fq , le polynme minimal ml+j a pour unique racine l+j .

mj+i (x) = (x + j+i )

Le polynme gnrateur dun code de Reed-Solomon est donc de la forme :

g(x) = (x + j )(x + j+1 )...(x + j+i )...(x + j+d2 )


4. Codes en bloc 131

En gnral, le paramtre j est x 0 ou 1 comme pour les codes BCH


binaires. Le polynme gnrateur dun code de Reed Solomon, de degr (n k)
possde (d 1) racines soit n k = d 1 . Sa distance construite est donc gale
:
d=nk+1
Pour un code en bloc C(n, k) la distance minimale dmin tant infrieure ou
gale n k + 1, la distance minimale dun code de Reed-Solomon est donc
toujours gale sa distance construite. Un code dont la distance minimale est
gale n k + 1 est appel un code distance maximale.
Les paramtres dun code de Reed-Solomon corrigeant t erreurs dans un bloc
de n symboles q-aires sont donc :

n = q 1; n k = dmin 1 = 2t; k = n 2t

Exemple 4.11
Dterminons le polynme gnrateur dun code de Reed-Solomon construit
partir dun corps de Galois 16 lments ayant un pouvoir de correction
de t = 2 erreurs. La distance minimale de ce code est donc de dmin = 5. En
prenant par exemple l = 1, le polynme gnrateur de ce code est donc de la
forme :
g(x) = (x + )(x + 2 )(x + 3 )(x + 4 )
En dveloppant lexpression prcdente, on obtient :

g(x) = x2 + x( + 2 ) + 3 x2 + x(3 + 4 ) + 7 

En utilisant les reprsentations binaires des lments du corps F16 (annexe 2),
le polynme g(x) aprs dveloppement et simplication est gal :

g(x) = x4 + 3 x3 + 6 x2 + 3 x + 10

4.2.2 Mise en oeuvre du codeur


Le schma de principe dun codeur pour code de Reed-Solomon est tout
fait analogue celui dun codeur pour code cyclique symboles binaires.
Simplement le codeur doit dsormais raliser des multiplications entre symboles
q-aires et mmoriser des symboles q-aires.
titre dexemple nous avons reprsent dans la gure 4.4, le schma de
principe du codeur pour le code de Reed-Solomon trait dans lexemple prc-
dent.
132 Codes et turbocodes

Figure 4.4 Schma de principe du codeur du code de RS(15,11).

4.3 Dcodage et performances des codes sym-


boles binaires
4.3.1 Dtection derreur
En considrant un canal de transmission binaire symtrique, le dcodeur
reoit des symboles binaires supposs en synchronisme parfait avec le codeur.
Cela signie que le dcoupage en mots de n symboles lentre du dcodeur
correspond celui utilis par le codeur. Ainsi, en labsence derreurs le dcodeur
voit son entre des mots de code.
Supposons que le mot de code c soit mis par le codeur et soit r le mot de
n symboles reu lentre du dcodeur. Le mot r peut toujours scrire sous la
forme :
r=c+e

o e est un mot dont les symboles non nuls reprsentent les erreurs. Un symbole
non nul de e indique la prsence dune erreur sur la position correspondante de
c.
La dtection des erreurs se fait en utilisant la proprit dorthogonalit de la
matrice de contrle de parit avec les mots de code et en calculant la quantit
s appele syndrome derreur.

s = rHT = (c + e)HT = eHT

Le syndrome s est nul si, et seulement si, r est un mot de code. Un syndrome
non nul implique la prsence derreurs. Notons toutefois quun syndrome nul
ne signie pas ncessairement labsence derreurs car le mot r peut appartenir
aux mots du code tout en tant dirent de c. Il sut pour cela que le mot
e soit un mot de code. En eet, pour un code en blocs linaire, la somme de
deux mots de code est encore un mot de code.
Retenons nalement que pour tout code en blocs linaire, il existe des con-
gurations derreurs non dtectables.
4. Codes en bloc 133

Pouvoir de dtection
Soit cj le mot de code mis et cl son plus proche voisin, nous avons lingalit
suivante :
dH (cj , cl )  dmin
En introduisant le mot reu r, nous pouvons crire :

dmin  dH (cj , cl )  dH (cj , r) + dH (cl , r)

et ainsi toutes les erreurs pourront tre dtectes si la distance de Hamming


entre r et cl est suprieure ou gale 1, cest--dire si r ne se confond pas avec
cl .
Le pouvoir de dtection dun code C(n, k) de distance minimale dmin est
donc gal dmin 1 .

Probabilit de non dtection derreur


En considrant un code en blocs C(n, k) et un canal binaire symtrique de
probabilit derreur p, la probabilit de non dtection des erreurs Pnd est gale
:
 n
Pnd = Aj pj (1 p)nj (4.22)
j=dmin

o Aj est le nombre de mots de code de poids j.


En se plaant dans lhypothse dune transmission compltement dgrade
cest--dire dune probabilit derreur sur le canal de p = 1/2, et en tenant
compte du fait que pour tout code en blocs on a :


n
Aj = 2k 1
j=dmin

(le 1 dans lexpression ci-dessus correspond au mot de code nul), la probabilit


Pnd est gale :
2k 1 (nk)
Pnd = =2
2n
La dtection des erreurs reste donc ecace quelle que soit la probabilit
derreur sur le canal de transmission si le nombre de symboles de redondance
(n k) est susamment grand. La dtection derreurs est donc peu sensible
la statistique des erreurs.
Lorsque des symboles errons sont dtects, le destinataire demande gn-
ralement la source de les mettre de nouveau. Pour transmettre cette de-
mande de rmission, il est alors ncessaire de disposer dune liaison destina-
taire source, appele voie de retour. Le dbit sur la voie de retour tant faible
(a priori les demandes de retransmission sont courtes et peu nombreuses), on
peut toujours sarranger pour que la probabilit derreur sur cette voie soit
134 Codes et turbocodes

trs infrieure la probabilit derreur sur le canal de transmission. Ainsi, les


performances dun systme de transmission utilisant la dtection derreurs et
la rptition ne dpendent que trs faiblement de la voie de retour.
En cas de dtection derreurs, lmission de la source peut tre interrompue
pour permettre la retransmission de linformation errone. Le dbit dinforma-
tion nest donc pas constant, ce qui peut, dans certain cas, poser des problmes.

4.3.2 Correction des erreurs


La correction derreurs consiste rechercher le mot de code mis c cest-
-dire raliser un dcodage de c partir du mot reu r. Deux stratgies
sont possibles. Une premire correspond un mot reu r lentre du dco-
deur constitu de symboles binaires (cas dun canal binaire symtrique) et une
seconde, un mot reu r constitu de symboles analogiques (cas dun canal
gaussien). Dans le premier cas, on parle de dcodage entre ferme alors que
dans le second cas on parle de dcodage entre pondre. Nous allons main-
tenant examiner ces deux types de dcodage dont il a dj t question dans le
chapitre 1.

Dcodage ferme
Dcodage maximum de vraisemblance a posteriori
Pour le dcodage ferme le mot reu r est de la forme :
r=c+e
o c et e sont des mots symboles binaires.
Le dcodage selon le maximum de vraisemblance a posteriori consiste
rechercher le mot de code c tel que :
Pr {c/r} > Pr {ci /r} ci = c C(n, k)
o Pr dsigne la probabilit davoir . En utilisant la rgle de Bayes et en
supposant que tous les mots de code sont quiprobables, la rgle de dcision
prcdente peut encore scrire :
c = ci Pr (r |c = ci ) > Pr (r |c = cj ) , cj = ci C (n, k)
En reprenant lexemple dun canal binaire symtrique de probabilit derreur p
et en notant dH (r, c) la distance de Hamming entre r et c, la rgle de dcision
est :
ndH (ci ,r) ndH (cj ,r)
c = ci pdH (ci ,r) (1 p) > pdH (cj ,r) (1 p) , cj = ci
En prenant le logarithme des deux membres de lingalit prcdente et en
considrant p < 0.5, la rgle de dcision du maximum de vraisemblance a
posteriori peut nalement scrire :
c = ci dH (r, ci )  dH (r, cj ), cj = ci C(n, k)
4. Codes en bloc 135

Si deux ou plusieurs mots de code sont la mme distance de r, le mot de


code c est choisi arbitrairement parmi les mots de code quidistants de r.
Cette procdure de dcodage qui est optimale, cest--dire qui minimise la
probabilit de dcodage erron, devient dicile mettre en uvre ds lors que
le nombre de mots de code devient important, ce qui est souvent le cas pour
les codes en blocs les plus utiliss.

Dcodage partir du syndrome


Pour contourner cette dicult, il est possible de raliser le dcodage en
utilisant le syndrome s. Rappelons que le syndrome est un vecteur de dimension
(n k) qui dpend uniquement de la conguration derreur e. Pour un code en
blocs symboles binaires, le syndrome possde 2nk congurations ce qui est
gnralement trs infrieur aux 2k mots de code.
Pour le dcodage partir du syndrome on utilise un tableau n lignes et
deux colonnes. On porte respectivement dans chaque ligne de la premire co-
lonne le syndrome s nul (tous les symboles sont zro, pas derreur) puis les
syndromes s correspondant une conguration dune erreur puis de deux er-
reurs etc. . . jusqu ce que les n lignes soient remplies. Toutes les congurations
des syndromes de la premire colonne doivent tre direntes. En deuxime
colonne, on porte la conguration derreur associe chaque syndrome de la
premire colonne.
Pour un mot reu r on calcule le syndrome s puis, laide de la table, on
en dduit le mot derreur e. Finalement on ajoute le mot e r et on obtient le
mot de code le plus vraisemblable.

Exemple 4.12 Considrons un code C(7, 4) de matrice de contrle de parit


H avec :
1 1 1 0 1 0 0
H= 1 1 0 1 0 1 0
1 0 1 1 0 0 1
Ce code possde 16 mots de code mais seulement 8 congurations pour le
syndrome comme indiqu dans la table 4.4.

Syndrome s Mot derreur e


000 0000000
001 0000001
010 0000100
011 0001000
100 0000100
101 0010000
110 0100000
111 1000000
Table 4.4: Syndromes et mots derreur correspondants pour un code
C(7, 4).
136 Codes et turbocodes

Supposons que le mot de code mis soit c = [0101101] et que le mot reu
r = [0111101] soit entach dune erreur en position 3 . Le syndrome est alors
gal s = [101] et, daprs la table, e = [0010000]. Le mot de code dcod est
c = r + e = [0101101] et lerreur est corrige.
Si le nombre de congurations du syndrome est encore trop lev pour
appliquer cette procdure de dcodage, on utilise des algorithmes de dcodage
spciques certaines classes de codes mais qui, malheureusement, nexploitent
pas toujours toute la puissance de correction du code. Ces algorithmes sont pr-
sents dans un paragraphe ultrieur.

Pouvoir de correction
Soit cj le mot de code mis et cl son plus proche voisin, nous avons lingalit
suivante :
dH (cj , cl )  dmin
En introduisant le mot reu r et en supposant que la distance minimale
dmin soit gale 2t + 1 (t entier), nous pouvons crire :
2t + 1  dH (cj , cl )  dH (cj , r) + dH (cl , r)
Nous voyons que si le nombre derreurs est infrieur ou gal t, cj est le
mot de code le plus vraisemblable car plus voisin de r que de cl et ainsi les
t erreurs pourront tre corriges. Si maintenant la distance minimale est de
(2t + 2), en utilisant le mme raisonnement, on aboutit au mme pouvoir de
correction. En conclusion, le pouvoir de correction dun code en blocs linaire
de distance minimale dmin avec dcodage ferme est gale :
dmin 1
t=  (4.23)
2
o x est la partie entire de x par valeur infrieure (par exemple 2.5 = 2).

Probabilit de dcodage erron dun mot de code


Pour un code en blocs linaire C(n, k) de pouvoir de correction t, le mot
de code mis sera mal dcod si il y a t + j erreurs, j = 1, 2, , n t, dans le
mot reu r. Pour un canal binaire symtrique de probabilit p, la probabilit
Pe,mot de faire un dcodage erron du mot de code mis est gale :
n  
n
Pe,mot < pj (1 p)nj (4.24)
j
j=t+1

On peut galement dterminer la probabilit derreur binaire Pe,bit sur les don-
nes dinformation aprs dcodage. En prsence de dcodage erron, le dcodeur
maximum de vraisemblance a posteriori rajoute au plus t erreurs en choisis-
sant le mot de code la distance minimale du mot reu. La probabilit derreur
est donc borne par :
 
1 
n
n
Pe,bit < (j + t) pj (1 p)nj (4.25)
n j
j=t+1
4. Codes en bloc 137

Si la transmission est ralise avec une modulation de phase binaire (MDP-2,


MDP-4), la probabilit p est gale :

1 REb
p = erfc
2 N0
o R est le rendement du code, Eb lnergie reue par donne dinformation
transmise et N0 la densit spectrale de puissance mono-latrale du bruit. La
gure 4.5 reprsente la probabilit derreur par bit et par mot aprs un dcodage
algbrique pour le code BCH (15,7). La modulation est une MDP-4 et le canal
est gaussien. Les bornes suprieures exprimes respectivement par (4.24) et
(4.25) sont galement traces.

Figure 4.5 Performances du dcodage algbrique du code BCH (15,7). Transmission


MDP-4 sur canal gaussien.

Dcodage pondr
En considrant un canal bruit additif blanc gaussien et une transmission en
modulation de phase symboles binaires (MDP-2 ou MDP-4), les composantes
rj , j = 0, 1, , n 1 du mot reu r sont de la forme :
+
rj = Es cj + bj , cj = 2cj 1

o cj = 0, 1 est le symbole en position j du mot de code c, cj est le symbole


binaire associ cj , Es est lnergie reue par symbole transmis du mot de code
138 Codes et turbocodes

et bj un bruit blanc, gaussien, centr, de variance gale b2 .

Dcodage maximum de vraisemblance a posteriori


Le dcodage selon le critre du maximum de vraisemblance a posteriori
consiste rechercher le mot de code c tel que :

c = c Pr {c/r} > Pr {c /r} , c = c C(n, k)

En utilisant la rgle de Bayes et en supposant tous les mots de code quipro-


bables, lingalit prcdente peut encore scrire :

c = c si p(r/c) > p(r/c ), c = c C(n, k) (4.26)

o p(r/c) est la densit de probabilit de lobservation r conditionnellement au


mot de code c.
Pour un canal gaussien, la densit de probabilit p(r/c) est gale :

 n 
n1 +
1 1
p(r/c) = exp 2 (rj Es cj )2
2b 2b j=0

o b2 est la variance du bruit.


En remplaant les deux densits de probabilit par leurs expressions respec-
tives dans lingalit (4.26) et aprs quelques calculs lmentaires, on obtient :


n1 
n1
c = c rj cj > rj c j , c = c C(n, k)
j=0 j=0

Le mot de code dcod est celui qui maximise le produit scalaire r, c. On
pourrait aussi montrer que le motB de code
B2dcod est celui qui minimise le

B
carr de la distance euclidienne r Es cB .
Cette procdure de dcodage est applicable dans la mesure o le nombre de
mots de code nest pas trop lev. En prsence dun grand nombre de mots de
code on peut utiliser un algorithme d Chase dont le principe est dappliquer
la procdure prcdente de dcodage en restreignant lespace de recherche un
sous-ensemble de mots de code.

Algorithme de Chase
Lalgorithme de Chase est une procdure de dcodage sous-optimale qui uti-
lise le critre du maximum de vraisemblance a posteriori mais en considrant un
sous-ensemble trs rduit des mots de code. Pour dterminer ce sous-ensemble
des mots de code, lalgorithme de Chase procde de la manire suivante.
tape 1 : Le mot reu r, constitu de symboles analogiques, est transform
en un mot symboles binaires z0 = (z00 z0j z0n1 ) par seuillage.

z0j = sgn(rj )
4. Codes en bloc 139

avec la convention suivante :


sgn(x) = 1 si x  0
= 0 si x < 0
Le mot binaire z0 est ensuite dcod par un algorithme dcision ferme
autre que le maximum de vraisemblance a posteriori (nous prsenterons
ultrieurement des algorithmes de dcodage pour codes en blocs). Soit c0
le mot de code obtenu.
tape 2 : Soient j1 , j2 , , jt les positions des symboles les moins ables
cest--dire telles que les amplitudes |rj | sont les plus faibles.
2t 1 mots ei sont construits en formant toutes les combinaisons binaires
possibles non nulles sur les positions j1 , j2 , , jt . Sur les positions autres
que j1 , j2 , , jt , les symboles de ei sont mis zro. Rappelons que t est
le pouvoir de correction du code.
tape 3 : Chacun des 2t 1 mots ei sert dnir des mots zi avec :

zi = z0 + ei

Un dcodeur ferme traite les mots zi pour obtenir au plus 2t 1 mots


de code ci . Notons que le mot en sortie du dcodeur algbrique nest pas
toujours un mot de code et seuls les mots de code seront considrs dans
lapplication du critre de dcision.
tape 4 : La rgle du maximum de vraisemblance a posteriori est appli-
que sur le sous ensemble des mots de code ci cr dans ltape prcdente.

Exemple 4.13
Soit un code C(n, k) de pouvoir de correction t = 3. Le sous ensemble des
mots de code est constitu de 8 mots de code dont 7 sont labors partir des
mots ei . Les mots ei sont des mots de longueur n dont les composantes sont
nulles sauf ventuellement aux places j1 , j2 et j3 (voir tableau ci-dessous).

i ei,j1 ei,j2 ei,j3


1 001
2 010
3 011
4 100
5 101
6 110
7 111

Probabilit de dcodage erron dun mot de code


Supposons que le mot de code mis soit c0 = (c01 c0j c0n1 ) et soit
r0 = (r0 rj rn1 ) le mot reu avec :
+
rj = Es c0j + bj
140 Codes et turbocodes

Le mot de code c0 sera mal dcod si :



n1 
n1
rj c0,j < rj cl,j cl = c0 C(n, k)
j=0 j=0

Le code tant linaire, on peut, sans nuire la gnralit, supposer que le mot
de code mis est le mot nul soit c0,j = 0 pour j = 0, 1, , n 1.
La probabilit de dcodage erron Pe,mot dun mot de code est alors gale
:

n1 
n1
Pe,mot = Pr rj c1,j > 0 ou . . . rj cl,j > 0 ou . . .
j=0 j=0

La probabilit Pe,mot peut tre borne suprieurement par une somme de


probabilits et, aprs quelques calculs classiques, elle peut scrire sous la
forme :
2k
1 Es
Pe,mot  erfc wj
2 j=2 N0

o wj est le poids de Hamming du j-me mot de code.


En supposant que le code C(n, k) possde Aw mots de code de poids w, la
probabilit Pe,mot peut encore se mettre sous la forme :

1 
n
Es
Pe,mot < Aw erfc w (4.27)
2 N0
w=dmin

En introduisant lnergie Eb reue par donne dinformation transmise, la pro-


babilit Pe,mot peut nalement scrire :

1 
n
REb
Pe,mot < Aw erfc w (4.28)
2 N0
w=dmin

o R est le rendement du code.


On peut galement tablir une borne suprieure de la probabilit derreur bi-
naire sur les symboles dinformation aprs dcodage.

1  w
n
REb
Pe,bit < Aw erfc w (4.29)
2 n N0
w=dmin

Pour calculer les probabilits Pe,mot et Pe,bit il faut connatre le nombre Aw


de mots de code de poids w. Pour les codes BCH tendus les quantits Aw sont
donnes dans [4.2].
titre dexemple, la table 4.5 donne les quantits Aw pour trois codes de
Hamming tendus.
Pour le code (32,26) les quantits Aw manquantes sont obtenues partir
de la relation Aw = Anw pour 0  w  n/2, n/2 pair.
4. Codes en bloc 141

n k dmin A4 A6 A8 A10 A12 A14 A16


8 4 4 14 - 1 - - - -
16 11 4 140 448 870 448 140 - 1
32 26 4 1240 27776 330460 2011776 7063784 14721280 18796230

Table 4.5 Aw pour trois codes de Hamming tendus.

Les quantits Aw pour les codes de Hamming non tendus se dduisent de


celles des codes tendus en rsolvant le systme dquations suivant :

(n + 1)Aw1 = wAwtendu
wAw = (n + 1 w)Aw1
o n est la longueur des mots du code non tendu.
Pour le code de Hamming (7,4), par exemple, les quantits Aw sont :

8A3 = 4Atendu
4 A3 = 7
4A4 = 4A3 A4 = 7
8A7 = 8Atendu
8 A7 = 1
Pour les codes de Golay et Golay tendu, les quantits Aw sont donnes dans
la table 4.6.
Poids Aw (23,12) Aw (24,12)
0 1 1
7 253 0
8 506 759
11 1288 0
12 1288 2576
15 506 0
16 253 759
23 1 0
24 0 1

Table 4.6 Aw pour les codes de Golay et Golay tendu.

fort rapport signal bruit, la probabilit derreur Pe,mot est bien appro-
che par le premier terme de la srie :

1 Rdmin Eb Eb
Pe,mot = Admin erfc si >> 1 (4.30)
2 N0 N0
Il en va de mme pour la probabilit derreur Pe,bit sur les symboles din-
formation.
dmin Eb
Pe,bit
= Pe,mot si >> 1 (4.31)
n N0
En labsence de codage, la probabilit derreur sur les symboles binaires est
gale :
1 Eb
p = erfc
2 N0
142 Codes et turbocodes

Comme cela a t vu dans la section 1.5, en comparant les deux expressions de la


probabilit derreur binaire avec et sans codage, on observe que le rapport signal
bruit Eb /N0 est multipli par Rdmin en prsence de codage. Si ce coecient
multiplicateur est suprieur 1, le codage agit comme un amplicateur du
rapport signal bruit dont le gain asymptotique est approch par

Ga = 10 log(Rdmin )(dB)

Pour illustrer ces bornes, reprenons lexemple du code BCH(15,7) transmis


sur un canal gaussien avec une modulation MDP-4. Sur la gure 4.6, nous avons
reprsent lvolution de la probabilit derreur binaire et par mot obtenues
par simulation partir de lalgorithme sous-optimal de Chase (4 positions non
ables). Nous avons galement reprsent les deux premiers termes des sommes
intervenant dans les bornes donnes par (4.28) et (4.29). titre de rfrence,
nous avons galement trac la courbe de probabilit derreur binaire dune
modulation MDP-4 sans codage.

Figure 4.6 Performances du dcodage pondr du code BCH (15,7). Transmission


MDP-4 sur un canal gaussien.
4. Codes en bloc 143

4.4 Dcodage et performances des codes sym-


boles non binaires
4.4.1 Dcodage entre ferme des codes de Reed-Solomon
Les algorithmes de dcodage entre ferme permettent de dcoder les codes
de Reed-Solomon (RS) et les codes BCH symboles binaires. Nous commence-
rons par prsenter le principe du dcodage des codes RS puis nous traiterons le
cas des codes BCH symboles binaires comme un cas particulier du dcodage
des codes RS.
En supposant que c(x) est le mot de code mis alors, pour un canal entre
et sortie discrtes, le mot reu peut toujours se mettre sous la forme :

r(x) = c(x) + e(x)

o e(x) est le polynme derreur avec :

e(x) = e0 + e1 x + + ej xj + + en1 xn1 , ej Fq j

Lorsque ej = 0 une erreur se trouve en position j.


Il a t vu prcdemment que le polynme gnrateur dun code RS ou dun
code BCH (avec l = 1) corrigeant t erreurs avait pour racines , , j , , 2t
et, que les mots de code taient des multiples du polynme gnrateur. Ainsi,
pour tout mot de code nous pouvons crire :

c(i ) = 0; i = 1, 2, , 2t

Le dcodage des codes RS et des codes BCH binaires peut tre ralis partir
dun vecteur 2t composantes S = [S1 Sj S2t ], appel syndrome.

Sj = r(j ) = e(j ), j = 1, 2, , 2t (4.32)

Lorsque les composantes du vecteur S sont toutes nulles, il ny a pas derreur


ou du moins derreurs dtectables. Lorsque certaines composantes du vecteur
S sont non nulles, des erreurs sont prsentes qui, sous certaines conditions,
peuvent tre corriges.
En prsence de t erreurs de transmission, le polynme derreur e(x) est de
la forme :
e(x) = en1 xn1 + en2 xn2 + + ent xnt
o les enl sont des coecients non nuls prenant leur valeur dans le corps Fq .
Les composantes Sj du syndrome S sont gales :

Sj = en1 (j )n1 + + enl (j )nl + + ent (j )nt

En posant Zl = nl et, pour simplier les notations enl = el , la composante


Sj du syndrome est encore gale :

Sj = e1 Z1j + + el Zlj + + et Ztj (4.33)


144 Codes et turbocodes

Pour dterminer la position des erreurs de transmission il sut donc de


connatre la valeur des quantits Zl ; j = 1, 2, , t puis, pour corriger les erreurs
dvaluer les coecients el ; l = 1, 2, , t.
La principale dicult dans le dcodage des codes RS ou des codes BCH
binaires est de dterminer la position des erreurs. Deux mthodes sont prin-
cipalement utilises pour dcoder les codes RS ou les codes BCH binaires : la
mthode directe due Peterson et la mthode itrative utilisant lalgorithme
de Berlekamp-Massey ou lalgorithme dEuclide.

4.4.2 Mthode directe de Peterson


Description de lalgorithme pour des codes symboles non binaires
Cette mthode est bien adapte pour le dcodage des codes RS ou des codes
BCH binaires corrigeant un faible nombre derreurs, typiquement de 1 3. En
eet, la complexit de cette mthode augmente comme le carr du pouvoir de
correction du code alors que pour la mthode itrative, la complexit augmente
seulement linairement avec le pouvoir de correction du code.
Pour dterminer la position des erreurs introduisons un polynme d (x)
appel polynme localisateur derreur dont les racines sont prcisment les
quantits Zl .
5
t
d (x) = (x + Zl )
l=1

En dveloppant cette expression, le polynme d (x) est encore gal :

d (x) = xt + 1 xt1 + + j xtj + + t

o les coecients j sont des fonctions des quantits Zl .


partir de lexpression de Sj on peut former un systme non linaire de 2t
quations.
t
Sj = ei Zij , j = 1, 2, , 2t
i=1

Les quantits Zl , l = 1, , t tant les racines du polynme localisateur


derreur d (x), on peut crire :


t
d (Zl ) = Zlt + j Zltj = 0, l = 1, 2, , t (4.34)
j=1

En multipliant les deux membres de cette expression par un mme terme


el Zlq , on obtient :


t
el Zlt+q + j el Zlt+qj = 0, l = 1, 2, , t (4.35)
j=1
4. Codes en bloc 145

En sommant les relations (4.35) pour l allant de 1 t et en tenant compte


de la dnition de la composante Sj du syndrome S, nous pouvons crire :

St+q + 1 St+q1 + + j St+qj + + t Sq = 0, q (4.36)

Pour un code RS corrigeant une erreur (t = 1) dans un bloc de n symboles, le


syndrome S possde deux composantes S1 et S2 . Le coecient 1 du polynme
localisateur derreur est dtermin partir de la relation (4.36) en faisant t = 1
et q = 1.
S2
S2 + 1 S1 = 0 1 = (4.37)
S1
De la mme faon, pour un code RS corrigeant deux erreurs (t = 2) dans
un bloc de n symboles, le syndrome possde quatre composantes S1 , S2 , S3 ,
S4 . En utilisant la relation (4.36) avec t = 2 et q = 1, 2 on obtient le systme
de deux quations suivant :

1 S2 + 2 S1 = S3
1 S3 + 2 S2 = S4

La rsolution de ce systme deux quations permet de dterminer les coe-


cients 1 et 2 du polynme localisateur derreur.
1
1 = 2 [S
 1 S4 + S22S3 ]
1 (4.38)
2 = 2 S2 S4 + S3

o 2 est le dterminant du systme deux quations.

2 = S22 + S1 S3

Enn, pour un code RS corrigeant trois erreurs (t = 3), la relation (4.36) avec
t = 3 et q = 1, 2, 3 conduit au systme de trois quations suivant :

1 S3 + 2 S2 + 3 S1 = S4
1 S4 + 2 S3 + 3 S2 = S5
1 S5 + 2 S4 + 3 S3 = S6

La rsolution de ce systme permet de dterminer les coecients 1 , 2 et 3


du polynme localisateur derreur.
 
1 = 13 S1 S3 S6 + S1 S4 S5 + S22 S6 + S2 S3 S5 + S2 S42 + S32 S4 
2 = 13 S1 S4 S6 + S1 S52 + S2 S3 S6 + S 2 S4 S5 + S32 S5 + S3 S42 (4.39)
3 = 13 S2 S4 S6 + S2 S52 + S32 S6 + S43

o 3 est le dterminant du systme trois quations.

3 = S1 S3 S5 + S1 S42 + S22 S5 + S33

Mise en uvre du dcodeur de Peterson pour un code RS de paramtre t = 3


146 Codes et turbocodes

1. Calcul des 2t syndromes Sj : Sj = r(j )


2. Dtermination du nombre derreurs :
Cas (a) Sj = 0, j : aucune erreur dtectable.
Cas (b) 3 = 0 : prsence de trois erreurs.
Cas (c) 3 = 0 et 2 = 0 : prsence de deux erreurs.
Cas (d) 3 = 2 = 0 et S1 = 0 : prsence dune erreur.
3. Calcul du polynme localisateur derreur d (x)
Cas (b) Utiliser (4.39)
Cas (c) Utiliser (4.38)
Cas (d) Utiliser (4.37)
4. Recherche des racines de d (x) dans le corps Fq
5. Calcul des coecients derreur ei
Cas (b)
1
 
ei = S1 (Zk2 Zp3 + Zk3 Zp2 ) + S2 (Zk3 Zp + Zk Zp3 ) + S3 (Zk2 Zp + Zk Zp2 ) ,
k = p = i, (i, k, p) {1, 2, 3}3

= Z1i1 Z2i2 Z3i3
1  i1 , i2 , i3  3
i1 + i2 + i3 = 6
i1 = i2 = i3
Cas (c)
S1 Zp + S2
ei = , p = i, (i, p) {1, 2}2
Zi (Z1 + Z2 )
Cas (d)
S12
e1 =
S2
6. Correction des erreurs : c(x) = r(x) + e(x)

Exemple 4.14
Pour illustrer le dcodage dun code RS suivant la mthode directe, nous
allons maintenant traiter un exemple en considrant un code RS corrigeant
jusqu trois erreurs (t = 3) et ayant les paramtres suivants :
m = 4 q = 16 n = 15 n k = 6
Supposons par exemple que le mot du code mis soit c(x) = 0 et que le mot
reu soit entach de deux erreurs.
r(x) = 7 x3 + 3 x6
1. Calcul des composantes du syndrome
S1 = 10 + 9 = 13 S4 = 19 + 27 = 6
S2 = 13 + 15 = 6 S5 = 22 + 33 = 4
S3 = 16 + 21 = 11 S6 = 25 + 39 = 13
4. Codes en bloc 147

2. Dtermination du nombre derreurs

3 = 0 2 = 8

3 tant nul et 2 = 0, on est en prsence de deux erreurs.


3. Calcul des coecients 1 et 2 du polynme localisateur derreur.
19 17
1
1 = [S1 S4 + S2 S3 ] = +
8 = 11 + 9 = 2
2
1
  12 22
2 = 2 S2 S4 + S32 = + 8 = 4 + 14 = 9

Le polynme localisateur derreur est donc gal :

d (x) = x2 + 2 x + 9

4. Recherche des deux racines du polynme localisateur derreur.


En passant en revue les lments du corps F16 on trouve que 3 et 6
annulent le polynme (x). Les erreurs portent donc sur les termes en x3
et en x6 du mot r(x).
5. Calcul des coecients derreur e1 et e2 .
S1 Z2 +S2 19 +6 12
e1 = Z1 Z2 +Z12
= 9 +6 = 5 = 7
S1 Z1 +S2 16 +6 11
e2 = Z1 Z2 +Z22
= 9 +12 = 8 = 3

6. Correction des erreurs

c(x) = (7 x3 + 3 x6 ) + (7 x3 + 3 x6 ) = 0

Le mot de code mis est le mot nul, les deux erreurs sont donc bien
corriges.

Simplication de lalgorithme de Peterson pour des codes binaires


Pour les codes BCH symboles binaires il nest pas ncessaire de calculer les
coecients ej . En eet, ces coecients tant binaires, ils valent ncessairement
1 en prsence dune erreur en position j. Le calcul des coecients j peut aussi
tre simpli en tenant compte du fait que pour un code symboles binaires
on a :  2
S2j = e(2j ) = e(j ) = Sj2
Pour un code BCH symboles binaires corrigeant jusqu t = 3 erreurs,
en tenant compte de la remarque prcdente et en utilisant les expressions des
trois coecients j du polynme localisateur, on obtient :

1 = S1
S12 S3 +S5
2 = S 3 +S3 (4.40)
1
S 2 S3 +S5
3 = (S13 + S3 ) + S1 S1 3 +S 3
1
148 Codes et turbocodes

Pour un code BCH symboles binaires corrigeant jusqu t = 2 erreurs, en te-


nant compte galement de la remarque prcdente et en utilisant les expressions
des deux coecients j du polynme localisateur derreur, on obtient :

1 = S1
S3 +S13 (4.41)
2 = S1

Finalement, en prsence dune erreur 2 = 3 = 0 et 1 = S1 .

Exemple 4.15
Considrons un code BCH corrigeant deux erreurs (t = 2) dans un bloc de
n = 15 symboles de polynme gnrateur gal :

g(x) = x8 + x7 + x6 + x4 + 1

Supposons que le mot de code mis soit c(x) = 0 et que le mot reu r(x) soit
entach de deux erreurs.
r(x) = x8 + x3
Le dcodage va se faire en trois tapes : calcul du syndrome S, dtermination
des coecients l du polynme localisateur derreur et recherche de ses racines
dans le corps F16 .
1. Calcul du syndrome S : nous avons uniquement besoin de calculer les
composantes dindice impair S1 et S3 du syndrome S. En utilisant les
reprsentations binaires des lments du corps F16 donnes dans lannexe
2, et en tenant compte du fait que 15 = 1, nous avons :

S1 = r() = 8 + 3 = 13
S3 = r(3 ) = 24 + 9 = 9 + 9 = 0

2. Dtermination des coecients 1 et 2 du p olynme localisateur derreur.


En utilisant les expressions des coecients 1 et 2 , on obtient :

1 = S1 = 13
S +S 3
2 = 3S1 1 = S12 = 26 = 11 (15 = 1)

et le polynme localisateur derreur est gal :

d (x) = x2 + 13 x + 11

3. Recherche des racines du polynme localisateur derreur dans le corps


F16 . En essayant tous les lments du corps F16 , on peut vrier que les
racines du polynme localisateur derreur sont 3 et 8 . En eet, nous
avons

(3 ) = 6 + 16 + 11 = 6 + + 11 = 1100 + 0010 + 1110 = 0000


4. Codes en bloc 149

(8 ) = 16 + 21 + 11 = + 6 + 11 = 0010 + 1100 + 1110 = 0000


Les erreurs de transmission portent sur les termes x8 et x3 du mot reu
r(x). Le mot de code mis est donc c(x) = 0 et les deux erreurs sont bien
corriges.
Le lecteur pourra vrier quen prsence dune seule erreur, r(x) = xj ;
0  j  (n 1), la correction est encore ralise correctement puisque :
S1 = j ; S3 = 3j ; 1 = j ; 2 = 0; d (x) = x(x + 1 )
et le polynme localisateur derreur possde une racine unique 1 = j .

Algorithme de Chien
Pour rechercher les racines du polynme localisateur derreur pour des codes
symboles binaires, on peut viter de passer en revue tous les lments du corps
Fq en utilisant un algorithme itratif d Chien.
En divisant le polynme d (x) par xt , nous obtenons :
d (x)
d (x) = = 1 + 1 x1 + + j xj + + t xt
xt
Les racines du polynme d (x) qui sont aussi les racines de d (x) sont de la
forme nj o j = 1, 2, . . ., n 1 et n = q 1.
Ainsi nj est racine de d (x) si :
1 n+j + + p xnp+jp + + t xnt+jt = 1
En tenant compte du fait que n = 1, la condition satisfaire pour que nj
soit racine du polynme localisateur derreur est :

t
p jp = 1; j = 1, 2, , (n 1) (4.42)
p=1

Lalgorithme de Chien vient tester si la condition (4.42) est vrie en utilisant


le circuit reprsent sur la gure 4.7.
Ce circuit comprend un registre t mmoires initialis avec les t coecients
j du polynme localisateur derreur et un registre n mmoires qui stocke
les symboles rj ; j = 0, 1, , (n 1) du mot r(x). la premire impulsion
dhorloge, le circuit ralise le calcul du membre de gauche de lexpression (4.42)
pour j = 1. Si le rsultat de ce calcul est gal 1, n1 est racine du polynme
localisateur derreur et lerreur qui portait sur le symbole rn1 est alors corrige.
Si le rsultat de ce calcul est gal 0, aucune correction nest eectue.
lissue de cette premire phase, les coecients j contenus dans les t mmoires
du registre sont remplacs par j j . la deuxime impulsion dhorloge le
circuit ralise de nouveau le calcul du membre de gauche de lexpression (4.42)
pour j = 2. Si le rsultat de ce calcul est gal 1, n2 est racine du polynme
localisateur derreur et lerreur qui portait sur le symbole rn2 est alors corrige.
Lalgorithme se poursuit de la mme manire pour les impulsions dhorloge
suivantes.
150 Codes et turbocodes

Figure 4.7 Schma de principe du circuit ralisant lalgorithme de Chien.

4.4.3 Mthode itrative


Le dcodage des codes RS ou des codes BCH binaires selon la mthode
itrative utilise deux polynmes, le polynme localisateur derreur (x) et le
polynme valuateur derreur (x). Ces deux polynmes sont respectivement
dnis par :
5t
(x) = (1 + Zj x) (4.43)
j=1


t
(x)
(x) = ei Zi x (4.44)
i=1
1 + Zi x
Le polynme localisateur derreur dont les racines sont Zj1 permet de dter-
miner la position des erreurs et le polynme valuateur derreur de dterminer
la valeur de lerreur ej . En eet, en tenant compte du fait que (Zj1 ) = 0, le
polynme (x) pris en Zj1 est gal :
(
(Zj1 ) = ej (1 + Zp Zj1 )
p=j
= ej Zj1  (Zj1 )

o  (x) = d
dx (x).
La valeur de lerreur ej est alors donne par lalgorithme de Forney :
(Zj1 )
ej = Zj (4.45)
 (Zj1 )
En introduisant le polynme S(x) dni par :

2t
S(x) = Sj xj (4.46)
j=1
4. Codes en bloc 151

on peut montrer que :

(x)S(x) (x) modulo x2t+1 (4.47)

Cette relation est appele lquation cl du dcodage dun code cyclique.


Pour dterminer les polynmes (x) et (x) deux algorithmes itratifs sont
principalement utiliss, lalgorithme de Berlekamp-Massey et lalgorithme dEu-
clide.

Algorithme de Berlekamp-Massey pour des codes symboles non


binaires
Le calcul des polynmes (x) et (x) selon lalgorithme de Berlekamp-
Massey est ralis de manire itrative. Il fait appel deux polynmes inter-
mdiaires nots (x) et (x). Lalgorithme comporte 2t itrations. Une fois
lalgorithme droul, il faut mettre en uvre lalgorithme de Chien pour dter-
miner les racines Zj1 de (x) et par consquent la position des erreurs. Ensuite
lalgorithme de Forney exprim par (4.45) permet de calculer la valeur des er-
reurs ej .

Conditions initiales :
L0 = 0
(0) (x) = 1 (0) (x) = 1
(0) (x) = 0 (0) (x) = 1
Rcursion : 1  p  2t
 (p1)
p = j Spj
j

p = 1 si p = 0 et 2Lp1  p 1
= 0 sinon

Lp = p (p Lp1 ) + (1 p )Lp1
    
(p) (p) 1 p x (p1) (p1)
=
(p) (p) 1
p p (1 p )x (p1) (p1)
Terminaison :
(x) = (2t) (x)
(x) = (2t) (x)
Exemple 4.16
Pour illustrer le dcodage dun code RS partir de lalgorithme de Berlekamp-
Massey, considrons un code RS corrigeant jusqu deux erreurs (t = 2) et ayant
les paramtres suivants :

m = 4; q = 16; n = 15; nk =4
152 Codes et turbocodes

Supposons par exemple que le mot de code mis soit c(x) = 0 et que le mot
reu soit entach de deux erreurs.

r(x) = 7 x3 + 3 x6

Lensemble des calculs eectus pour dcoder ce code RS sera fait dans le corps
F16 dont les lments sont donns dans lannexe 2.
1. Calcul du syndrome S = (S1 , S2 , S3 , S4 )

S1 = 10 + 9 = 13 S3 = 16 + 21 = 11
S2 = 13 + 15 = 6 S4 = 19 + 27 = 6

Le polynme S(x) est donc gal :

S(x) = 13 x + 6 x2 + 11 x3 + 6 x4

2. Calcul des polynmes (x) et (x) partir de lalgorithme de Berlekamp-


Massey

p p p Lp p (x) p (x) p (x) p (x)


0 0 1 1 0 1
1 13 1 1 1 + 13 x 2 13 x 0
2 0 1 1 + 8 x 2 x 13 x 0
3 10 1 2 1 + 8 x + 12 x2 5 + 13 x 13 x 3 x
4 10 0 2 1 + 2 x + 9 x2 5 x + 13 x2 13 x + 13 x2 3 x2

Dans le tableau ci-dessus, tous les calculs sont faits dans le corps F16 et
en tenant compte du fait que 15 = 1.
Les polynmes localisateur derreur et valuateur derreur sont :

(x) = 1 + 2 x + 9 x2
(x) = 13 x + 13 x2

On peut vrier que lquation cl du dcodage est bien satisfaite. En


eet, nous avons bien :

(x)S(x) = 13 x+13 x2 +4 x5 +x6 13 x+13 x2 modulo x5 = (x) modulo x5

3. Recherche des racines du polynme localisateur derreur


En passant en revue tous les lments du corps F16 on trouve que 12 et
9 sont des racines du polynme (x). Les erreurs sont donc en position
x3 (12 = 3 ) et x6 (9 = 6 ) et le polynme derreur e(x) est gal :

e(x) = e3 x3 + e6 x6
4. Codes en bloc 153

4. Calcul des coecients derreur ej (4.45).


6
e3 = 3 2 =
14
7

e6 = 6 2 = 3

Le polynme derreur e(x) est donc gal :

e(x) = 7 x3 + 3 x6

et le mot de code estim est c(x) = r(x) + e(x) = 0. Les deux erreurs de
transmission sont corriges.

Algorithme dEuclide
Lalgorithme dEuclide permet de rsoudre lquation cl du dcodage cest-
-dire de dterminer les polynmes (x) et (x).

Conditions initiales :

R1 (x) = x2t ; R0 (x) = S(x); U1 (x) = 0; U0 (x) = 1

Rcursion :
Calculer Qj (x), Rj+1 (x) et Uj+1 (x) partir des deux expressions suivantes :

Rj1 (x) R (x)


Rj (x) = Qj (x) + Rj+1
j (x)
Uj+1 (x) = Qj (x)Uj (x) + Uj1 (x)

Lorsque deg(Uj )  t et deg(Rj )  t alors :

(x) = Uj+1 (x)


(x) = Rj+1 (x)

Exemple 4.17
Reprenons le code RS utilis pour illustrer lalgorithme de Berlekamp-
Massey. En supposant que le mot reu est toujours r(x) = 7 x3 + 3 x6 lorsque
le mot du code mis est c(x) = 0, lalgorithme de dcodage est le suivant :
1. Calcul du syndrome S = (S1 , S2 , S3 , S4 )

S1 = 10 + 9 = 13 S3 = 16 + 21 = 11
S2 = 13 + 15 = 6 S4 = 19 + 27 = 6

Le polynme S(x) est donc gal :

S(x) = 13 x + 6 x2 + 11 x3 + 6 x4
154 Codes et turbocodes

2. Calcul des polynmes (x) et (x) partir de lalgorithme dEuclide (les


calculs sont eectus dans le corps F16 dont les lments sont donns
dans lannexe 2).

j = 0 j = 1
R1 (x) = x5 R0 (x) = S(x)
R0 (x) = S(x) R1 (x) = 5 x3 + 13 x2 + 12 x
Q0 (x) = 9 x + 14 Q1 (x) = x + 5
R1 (x) = 5 x3 + 13 x2 + 12 x R2 (x) = 14 x2 + 14 x
U1 (x) = 9 x + 14 U2 (x) = 10 x2 + 3 x +

On peut vrier que deg(U2 (x)) = 2 est infrieur ou gal t (t = 2) et que


deg(R2 (x)) = 2 est infrieur ou gal t. Lalgorithme est donc termin
et les polynmes (x) et (x) ont respectivement pour expression :

(x) = U2 (x) = + 3 x + 10 x2 = (1 + 2 x + 9 x2 )
(x) = R2 (x) = 14 x + 14 x2 = (13 x + 13 x2 )

On peut vrier que lquation cl du dcodage est bien satisfaite et que


les deux polynmes obtenus sont identiques, un coecient prs ceux
dtermins avec lalgorithme de Berlekamp-Massey.
Les racines du polynme (x) sont donc 1/3 et 1/6 et le polynme
derreur e(x) est gal :

e(x) = 7 x3 + 3 x6

Calcul des coecients ej par transforme


Il est possible de calculer les coecients ej ; j = 0, 1, , (n1) du polynme
derreur e(x) sans dterminer les racines du polynme localisateur derreur
(x). Pour cela on introduit le syndrome prolong S (x) dni par :

1 + xn  n
S (x) = (x) = Sj xj (4.48)
(x) j=1

Le coecient ej est nul (pas derreur) si j nest pas racine du polynme


localisateur derreur (x). Dans ce cas, nous avons S (j ) = 0 puisque jn =
1 (se rappeler que n = q 1 et q1 = 1).
A contrario si j est racine du polynme localisateur, le coecient ej est non
nul (prsence dune erreur) et S (j ) est de la forme 0/0. Cette indtermina-
tion peut tre leve en calculant la drive du numrateur et du dnominateur
de lexpression (4.48).

nj(n1)
S (i ) = (i )
 (j )
4. Codes en bloc 155

En utilisant lquation (4.45) et en tenant compte du fait que j(n1) = j


et que na = a pour n impair dans un corps de Galois, le coecient ej est gal
:
ej = S (j ) (4.49)
Le calcul du syndrome prolong peut se faire partir des polynmes (x) et
(x) en utilisant la relation suivante dduite de lexpression (4.48).

(x)S (x) = (x)(1 + xn ) (4.50)

Les coecients Sj du syndrome prolong sont identiques ceux du syndrome


S(x) pour j allant de 1 2t et sont dtermins en annulant les coecients des
termes xj dans le produit (x)S (x), pour j allant de 2t + 1 n.

Exemple 4.18
En reprenant lexemple du code RS (q = 16 ; n = 15 ; k = 11 ; t = 2) uti-
lis pour illustrer lalgorithme de Berlekamp-Massey, dterminons le syndrome
prolong.

15
S (x) = Sj xj
j=1

avec :
S1 = 13 S3 = 11
S2 = 6 S4 = 6
Lquation (4.50) nous fournit la relation suivante :

S(x) + 2 xS(x) + 9 x2 S(x) = 13 (x + x2 + x16 + x17 )

S1 x + (2 S1 + S2 )x2

15
+ (9 Sk2 + 2 Sk1 + Sk )xk
k=3
+(2 S15 + 9 S14 )x16 + 9 S15 x17 = 13 (x + x2 + x16 + x17 )

Il en rsulte la relation de rcurrence :

Sk = 2 Sk1 + 9 Sk2 , k = 3, 4, , 15

On obtient ainsi les coecients du syndrome prolong :

S5 = 4 , S6 = 13 , S7 = 6 , S8 = 11 , S9 = 6 , S10 = 4
S11 = 13 , S12 = 6 , S13 = 11 , S14 = 6 , S15 = 4

Une autre faon dobtenir le polynme prolong consiste diviser (x)(1 + xn )


par (x) selon les puissances croissantes.
156 Codes et turbocodes

Les erreurs tant au niveau des monmes x3 et x6 , calculons les coecients e3


et e6 .
e3 = S (12 ) = 2 + 4 + 10 + 7 = 7
e6 = S (9 ) = 4 + 7 = 3
Les valeurs trouves pour les coecients e3 et e6 sont videmment identiques
celles obtenues dans lexemple 4.16. On pourra vrier que les autres coecients
ej sont tous nuls.

Algorithme de Berlekamp-Massey pour les codes cycliques binaires


Pour les codes BCH binaires lalgorithme de Berlekamp-Massey peut se
simplier puisquil nest plus ncessaire de dterminer le polynme valuateur
derreur, et quil est possible de montrer que les termes j sont nuls pour j
pair. Ceci implique :
2p = 0
L2p = L2p1
(2p) (x) = (2p1) (x)
(2p) (x) = x(2p1) (x)
Do lalgorithme en t itrations :
Conditions initiales :

L1 = 0
(1) (x) = 1 (1) (x) = x1

Rcursion : 0  p  t 1
 (2p1)
2p+1 = j S2p+1j
j

2p+1 = 1 si 2p+1 = 0 et L2p1  p

= 0 sinon

L2p+1 = 2p+1 (2p + 1 L2p1 ) + (1 2p+1 )L2p1


    
(2p+1) 1 2p+1 x2 (2p1)
=
(2p+1) 1
2p+1 2p+1 (1 2p+1 )x2 (2p1)

Terminaison :
(x) = (2t1) (x)
Exemple 4.19
Reprenons le code BCH qui a t utilis pour illustrer le calcul du polynme
localisateur derreur avec la mthode directe. Supposons que le mot reu soit
r(x) = x8 + x3 lorsque le mot de code mis est c(x) = 0.
4. Codes en bloc 157

1. Le syndrome S possde quatre composantes.


S1 = r() = 8 + 3 = 13
S3 = r(3 ) = 24 + 9 = 0
S2 = S12 = 26 = 11
S4 = S22 = 22 = 7
Le polynme S(x) est gal :
S(x) = 13 x + 11 x2 + 7 x4
2. Calcul du polynme (x) partir de lalgorithme de Berlekamp-Massey

p 2p+1 2p+1 L2p+1 2p+1 (x) 2p+1 (x)


-1 0 1 x1
0 13 1 1 1 + 13 x 2
1 9 1 2 1 + 13 x + 11 x2 6 + 4 x

On notera que le polynme (x) obtenu est identique celui dtermin


partir de la mthode directe. Les racines de (x) sont 1/3 et 1/8 , les
erreurs portent donc sur les termes x3 et x8 . Le mot de code estim est
c(x) = 0.

Algorithme dEuclide pour les codes binaires


Exemple 4.20
Reprenons le dcodage du code BCH(15,7). Le mot reu est r(x) = x8 + x3 .

j = 0 j = 1
R1 (x) = x5 R0 (x) = S(x)
R0 (x) = S(x) R1 (x) = 4 x3 + 6 x2
Q0 (x) = 8 x Q1 (x) = 3 x + 5
R1 (x) = x + 6 x2
4 3
R2 (x) = 13 x
U1 (x) = 8 x U2 (x) = x + 13 x + 1
11 2

On peut vrier que deg(U2 (x)) = 2 est infrieur ou gal t (t = 2) et que


le degr de R2 est infrieur ou gal t. Lalgorithme est donc termin et le
polynme (x) a pour expression :
(x) = U2 (x) = 1 + 13 x + 11 x2
(x) = R2 (x) = 13 x
Pour un code BCH binaire il nest pas ncessaire dutiliser le polynme valua-
teur derreur pour dterminer la valeur des coecients e3 et e8 . Toutefois, on
peut vrier que :
3
e3 = 3 ( )
 (3 ) = 1
8
e8 = 8 ( )
 (8 ) = 1

Le mot dcod est donc c(x) = r(x) + e(x) = 0 et les deux erreurs sont bien
corriges.
158 Codes et turbocodes

4.4.4 Performances du dcodage entre ferme des codes


de Reed-Solomon
Rappelons que pour un code de Reed-Solomon, les blocs dinformation
coder et les mots de code sont constitus respectivement de k et n = q 1
(q = 2m ) symboles q-aires. La probabilit Pe,mot davoir un mot de code faux
aprs un dcodage ferme peut tre borne suprieurement par :

n  
n
Pe,mot  pjs (1 ps )nj (4.51)
j
j=t+1

o ps est la probabilit derreur par symbole q-aire sur le canal de transmission,


t est le pouvoir de correction du code en nombre de symboles q-aires.
Lorsquun mot de code est mal dcod, la probabilit derreur par symbole
Pe,symbole correspondante aprs dcodage est gale :
 
1 
n
n
Pe,symbole  (j + t) pjs (1 ps )nj (4.52)
n j=t+1 j

La probabilit derreur binaire aprs dcodage sobtient partir de la probabi-


lit derreur par symbole en tenant compte que un symbole est reprsent par
m lments binaires.
1
Pe,bit = 1 (1 Pe,symbole ) m

fort rapport signal bruit, on peut approcher la probabilit derreur par


lment binaire aprs dcodage.
1 Eb
Pe,bit
= Pe,symbole >> 1
m N0

4.5 Bibliographie
[4.1] J. G. Proakis, Digital Communications, 4th edition. McGraw-Hill, New-
York, 2000.
[4.2] R.H. Morelos-Zaragoza, The Art of Error Correcting Coding, John
Wiley & sons, 2005.
Annexe

Notions sur les corps de Galois et


sur les polynmes minimaux
Dnition
Un corps de Galois q = 2m lments not Fq , o m est un entier positif
est dni comme une extension polynomiale du corps deux lments (0, 1)
not F2 . Le polynme (x) utilis pour construire le corps Fq doit tre
irrductible cest--dire tre non factorisable dans F2 (autrement dit 0 et
1 ne sont pas racines de (x),
de degr m,
et coecients dans F2 .
Les lments du corps de Galois Fq sont dnis modulo (x) et ainsi, chaque
lment de ce corps peut tre reprsent par un polynme de degr au plus gal
(m 1) et coecients dans F2 .

Exemple 1
Considrons un polynme irrductible (x) dans le corps F2 de degr m = 2.

(x) = x2 + x + 1

Ce polynme permet de construire un corps de Galois 4 lments. Les lments


de ce corps F4 sont de la forme :

a + b o a, b F2

soit :
F4 = {0, 1, , + 1}
On peut remarquer que si on lve llment aux puissances successives 0, 1
et 2 on obtient tous les lments du corps F4 lexception de llment 0. En
eet, 2 est encore gal ( + 1) modulo (). Llment est appel lment
primitif du corps F4 .
160 Codes et turbocodes

Les lments du corps F4 peuvent aussi tre reprsents sous forme binaire :

F4 : {00, 01, 10, 11}

Les couples binaires correspondent aux quatre valeurs prises par les coecients
a et b.

lment primitif dun corps de Galois


On appelle lment primitif dun corps de Galois Fq , un lment de ce corps
qui, lorsquil est lev aux puissances successives 0, 1, 2, , (q 2) ; q = 2m ,
permet de retrouver tous les lments du corps sauf llment 0. Tout corps de
Galois possde au moins un lment primitif. Si est un lment primitif du
corps Fq alors, les lments de ce corps sont :
 
Fq = 0, 0 , 1 , , q2 avec q1 = 1

Notons que dans un tel corps de Galois le signe - est quivalent au signe
+ soit :
j = j j {0, 1, , (q 2)}

En observant que 2j = 0 modulo 2, on peut toujours ajouter j la quantit


nulle 2j et on obtient ainsi lgalit ci-dessus.
Donnons pour le corps F4 , titre dexemple, les rgles rgissant les opra-
tions daddition et de multiplication. Toutes les oprations sont faites modulo
2 et modulo 2 + + 1.

+ 0 1 2
0 0 1 2
1 1 0 1 + = 2 1 + 2 =
1 + = 2 0 + 2 = 1
2 2 1 + 2 = + 2 = 1 0

Table 4.7 Addition dans le corps F4 .

0 1 2
0 0 0 0 0
1 0 1 2
0 2 3
=1
2 0 2 3 = 1 4 =

Table 4.8 Multiplication dans le corps F4 .


4. Codes en bloc 161

Polynme minimal coecients dans F2 associ


un lment dun corps de Galois Fq
Le polynme minimal m (x) coecients dans F2 associ un lment
quelconque dun corps de Galois Fq , est un polynme de degr au plus gal
m = log2 (q), ayant comme racine. Ce polynme est unique et irrductible
dans F2 . Si est un lment primitif du corps de Galois Fq alors le polynme
m (x) est exactement de degr m. Remarquons quun polynme coecients
dans F2 vrie la proprit suivante :
2 2p p
[f (x)] = f (x2 ) [f (x)] = f (x2 )

Ainsi si est racine du polynme f (x) alors 2 , 4 , sont aussi des racines
de ce polynme. Le polynme minimal coecients dans F2 ayant comme
racine peut donc scrire sous la forme :

m (x) = (x + )(x + 2 )(x + 4 )

Si est un lment primitif de Fq , le polynme minimal coecients dans F2


tant de degr m, il peut aussi scrire :
m1
m (x) = (x + )(x + 2 )(x + 4 ) (x + 2 )

Exemple 2
Calculons le polynme minimal associ llment primitif du corps de
Galois F4 .  
F4 : 0, 1, , 2
Le polynme minimal associ llment a donc pour racines et 2 (m = 2)
et a pour expression :

m (x) = (x + )(x + 2 ) = x2 + x( + 2 ) + 3

En tenant compte du fait que 3 = 1 et que + 2 = 1 dans le corps F4 , le


polynme m (x) est encore gal :

m (x) = x2 + x + 1

Polynme minimal coecients dans Fq associ


un lment dun corps de Galois Fq
Le polynme minimal m (x), coecients dans le corps de Galois Fq as-
soci un lment = j ( lment primitif du corps Fq ) de ce corps, est le
polynme de plus bas degr ayant comme racine.
162 Codes et turbocodes

En rappelant que pour un polynme coecients dans Fq , nous pouvons crire :


q qp p
[f (x)] = f (xq ) [f (x)] = f (xq )
2
Alors si est racine du polynme f (x), q , q , sont aussi des racines de ce
polynme.
p p
Puisque dans le corps Fq q1 = 1, alors q = (j )q = j = et ainsi, le
polynme minimal m (x) est simplement gal :
m (x) = x +
Ces rsultats sur les polynmes minimaux sont utiliss pour dterminer les
polynmes gnrateurs de codes cycliques particuliers (BCH et Reed-Solomon).

Polynme primitif
Un polynme coecients dans F2 est primitif si il est le polynme mini-
mal associ un lment primitif dun corps de Galois. Un polynme primitif
est donc irrductible dans F2 et peut par consquent tre utilis pour engen-
drer un corps de Galois. Lorsquun polynme primitif est utilis pour engendrer
un corps de Galois, tous les lments du corps sont obtenus en levant ll-
ment primitif, racine du polynme primitif, des puissances successivement
croissantes. Les principaux polynmes primitifs tant rpertoris dans la litt-
rature, la construction dun corps de Galois q = 2m lments peut alors se
faire simplement en utilisant un polynme primitif de degr m. La table 4.9
donne quelques polynmes primitifs.

Degr du polynme Polynme primitif


2 2 + + 1
3 3 + + 1
4 4 + + 1
5 5 + 2 + 1
6 6 + + 1
7 7 + 3 + 1
8 + 4 + 3 + 2 + 1
8

9 9 + 4 + 1
10 10 + 3 + 1

Table 4.9 Exemples de polynmes primitifs

Pour terminer cette introduction aux corps de Galois et aux polynmes


minimaux, donnons un exemple de corps de Galois q = 16 (m = 4) lments
construit partir du polynme primitif x4 + x + 1. Ce corps est utilis pour
construire des polynmes gnrateurs de codes BCH et de Reed-Solomon et
pour les dcoder. Les lments de ce corps sont :
 
F16 = 0, 1, , 2 , 3 14
4. Codes en bloc 163

o est un lment primitif de F16 . ces 16 lments, on peut galement


associer une reprsentation polynomiale ainsi quune reprsentation binaire.
La reprsentation polynomiale dun lment de ce corps est de la forme :

a3 + b2 + c + d

o a, b, c et d sont des coecients binaires appartenant F2 .


Le corps de Galois F16 tant constitu de 16 lments, la reprsentation
binaire dun lment de ce corps est faite laide de 4 symboles binaires ap-
partenant F2 . Ces 4 symboles sont respectivement gaux aux valeurs prises
par les coecients a, b, c et d.

lments Reprsentation Reprsentation


du corps polynomiale binaire
0 0 0000
1 1 0001
0010
2 2 0100
3 3 1000
4
+1 0011
5 2 + 0110
6 3 + 2 1100
7
3 + + 1 1011
8 2 + 1 0101
9 3 + 1010
10 2 + + 1 0111
11 3 2
+ + 1110
12 3 + 2 + + 1 1111
13 3 + 2 + 1 1101
14 3 + 1 1001

Table 4.10 Direntes reprsentations des lments du corps de Galois F16

Exemple 3
Quelques calculs dans le corps F16 :

+ 2 4
8 0100 + 0101 = 0001 = 1 0011 + 0101 = 0110 = 5
10 0100 + 0111 = 0011 = 4 0011 + 0111 = 0100 = 2

Table 4.11 Addition dans F16


164 Codes et turbocodes

2 6
8 10 14
14 16 = car 15 = 1 20 = car 15 = 1
5

Table 4.12 Multiplication dans F16

2 12
6
8 = car 15 = 1
9
4
14 12 = 3 car 15 = 1 2 = car 15 = 1
13

Table 4.13 Division dans F16


Chapitre 5

Les codes convolutifs et leur


dcodage

5.1 Historique
Cest en 1955 que Peter Elias introduit la notion de code convolutif [5.1].
Lexemple de codeur dcrit dans la publication est reproduit dans la gure 5.1.
Il sagit dun codeur systmatique, cest--dire que le message cod contient le
message transmettre, auquel est ajout de linformation redondante. Le mes-
sage est de longueur innie, ce qui premire vue limite le champ dapplication
de ce type de codes. Il est cependant ais de les adapter pour des transmissions
de paquets grce des techniques de fermeture de treillis.

di
di d i1 d i 2 d i 3 d i ,r i
D D D Mux

ri

Figure 5.1 Exemple de codeur convolutif.

Le codeur prsent en gure 5.1 est conu autour dun registre dcalage de
trois lments mmoire. Le bit de redondance linstant i, not ri est construit
laide dune somme modulo 2 de la donne linstant i, di et des donnes
prsentes aux instants i 1 et i 3 (di1 et di3 ). Un multiplexeur joue le rle
dun convertisseur parallle-srie et fournit le rsultat du codage un dbit
double de celui de lentre. Le rendement de ce codeur est de 1/2 car, chaque
instant i, il reoit une donne di et dlivre deux lments en sortie : di (partie
systmatique) et ri (partie redondante).
166 Codes et turbocodes

Il faut attendre 1957 pour voir apparatre le premier algorithme capable


de dcoder de tels codes. Invent par Wozencraft [5.2], cet algorithme, appel
dcodage squentiel, est ensuite amlior par Fano [5.3] en 1963. Quatre ans
plus tard, Viterbi introduit un nouvel algorithme particulirement intressant
lorsque la longueur du registre dcalage du codeur nest pas trop grande [5.4].
En eet, la complexit de lalgorithme de Viterbi crot de manire exponentielle
avec la taille de ce registre alors que la complexit de lalgorithme de Fano en
est quasi-indpendante.
En 1974, Bahl, Cocke, Jelinek et Raviv prsentent un nouvel algorithme
[5.5] capable dassocier une probabilit la dcision binaire. Cette proprit
est trs largement utilise dans le dcodage des codes concatns et plus par-
ticulirement des turbocodes, qui ont remis cet algorithme au got du jour. Il
est maintenant rfrenc dans la littrature sous une des trois dnominations :
BCJR (initiales des inventeurs), MAP (Maximum A Posteriori) ou (A Poste-
riori Probability) APP . Plutt complexe mettre en oeuvre dans sa version
initiale, lalgorithme MAP existe sous des versions simplies, dont les plus
courantes sont prsentes dans le chapitre 7.
En parallle avec ces avances sur les algorithmes de dcodage, nombre de
travaux ont port sur la construction des codeurs convolutifs. La diminution de
la complexit du codeur ntait pas lobjet de ces travaux, car son implantation
est triviale. Lenjeu est de trouver des codes dont le pouvoir de correction est
le plus lev possible. En 1970, Forney crit un papier de rfrence sur lalgbre
des codes convolutifs [5.6]. Il y dmontre quun bon code convolutif nest pas
ncessairement systmatique et suggre une construction dirente de celle de la
gure 5.1 Ce papier loigne, pour un temps, les codes convolutifs systmatiques
du champ de la recherche en codage de canal.
La gure 5.2 donne un exemple de codeur convolutif non-systmatique.
Contrairement au codeur de la gure 5.1, les donnes ne sont pas prsentes
la sortie du codeur et sont remplaces par une somme modulo 2 de la donne
linstant i, di , et des donnes prsentes aux instants i 2 et i 3 (di2 et di3 ).
Le rendement du codeur reste inchang 1/2 car le codeur fournit toujours
(1) (2)
deux lments en sortie : ri et ri , linstant i.

r (1)
i
di d i1 r (1)
, r (2)
i i
D D D Mux
d i2 d i3
r (2)
i

Figure 5.2 Exemple de codeur de code convolutif non-systmatique.

Lorsque Berrou et al prsentent leurs travaux sur les turbocodes [5.7], ils
rhabilitent les codes convolutifs systmatiques en les utilisant sous une forme
5. Les codes convolutifs et leur dcodage 167

rcursive. Lintrt des codes rcursifs est prsent dans les sections 5.2 et 5.3.
La gure 5.3 donne un exemple de codeur de code convolutif systmatique
rcursif. Le message dorigine tant transmis (di ), le code est donc bien sys-
tmatique. Une boucle de rtroaction apparat, la structure du codeur tant
maintenant analogue celle des gnrateurs de squences pseudo-alatoires.
Ce rapide historique a permis de prsenter les trois familles de codes convo-
lutifs les plus courantes : systmatique, non-systmatique, systmatique rcur-
sif. Les deux sections suivantes abordent la reprsentation et la performance
des codes convolutifs. Elles donnent loccasion de comparer les proprits de ces
trois familles. Les algorithmes de dcodage les plus couramment utiliss dans
les systmes actuels sont prsents dans la section 5.4. Enn, la section 5.5
aborde les principales techniques de fermeture de treillis et depoinonnage.

di d i ,r i
ri Mux

di s (1)
i
D D D
s (0)
i
s (2)
i s (3)
i

Figure 5.3 Exemple de codeur de code convolutif systmatique rcursif.

5.2 Reprsentations des codes convolutifs


Ce chapitre na pas la prtention de traiter de manire exhaustive le thme
des codes convolutifs. Les codes non-binaires ou non-linaire ainsi que les co-
deurs plusieurs registres ne sont pas traits. Seuls les codes les plus couram-
ment utiliss, en particulier pour la construction de turbocodes, sont introduits.
Le lecteur souhaitant approfondir le sujet peut, par exemple, se rfrer [5.8].

5.2.1 Reprsentation gnrique dun codeur convolutif


La gure 5.4 donne un modle susamment gnral pour que lon puisse
reprsenter lensemble des codes convolutifs tudis dans ce chapitre. A chaque
instant i, il reoit, en entre, un vecteur di de m bits. Le code ainsi gnr
est un code binaire. Cependant pour la simplication de lcriture nous lap-
pellerons code m-binaire et double-binaire si m = 2 (comme dans lexemple
prsent en gure 5.5). Lorsque c = 1, le code gnr est systmatique, puisque
di est transmis en sortie du codeur. Le code est donc compos de la partie
systmatique di sur m bits et de la redondance ri sur n bits. Le rendement du
168 Codes et turbocodes

d (1)
i c
d (1)
i
d (2)
i c
d (2)
i

(m)
d i c
d (m)
i

a(1)
1
a(2)
1
a(m)
1
a(1)
2
a(2)
2
a2(m) a(1)

a(2) a(m)

D D D
s (1)
i s (2)
i s ()
i

b1 b2

g(1)1 g(1)2 g(1)


r (1)
i
(1)
g0

g(2)1 g(2)2 g(2)


r (2)
i
(2)
g0

g(n)1 g(n)2 g(n)


r (in)
(n)
g0

Figure 5.4 Reprsentation gnrique dun codeur de code convolutif.

code est alors R = m/(m + n). Si c = 0, le code est non-systmatique et le


rendement devient R = m/n.
La partie non-systmatique est construite laide dun registre dcalage
compos de bascules et dadditionneurs binaires, autrement dit de portes ou
exclusif (XOR en anglais). On dnit alors une caractristique importante du
code convolutif : la longueur de contrainte gale ici + 1 (certains auteurs la
notent , ce qui implique que le registre est alors compos de 1 bascules). Le
(1) (2)
registre linstant i est caractris par les bits si , si , . . ., si mmoriss : ils
dnissent son tat, que lon peut donc coder sur bits et reprsenter sous forme
(1) (2)
dun vecteur si = (si , si , , si ). Un tel codeur convolutif possde donc 2
valeurs possibles dtat, que lon note souvent sous forme binaire naturelle ou
dcimale. Ainsi ltat dun codeur constitu de trois bascules pourra prendre
23 = 8 valeurs. Si s1 = 1, s2 = 1 et s3 = 0, le codeur est dans ltat 110 en
binaire naturel soit 6 en dcimal.
(l)
Par lintermdiaire des coecients aj , chacune des m composantes du vec-
teur di est slectionne ou non comme terme dune addition avec le contenu
dune bascule prcdente (sauf dans le cas de la premire bascule) pour fournir
la valeur stocker dans la bascule suivante. Le nouveau contenu dune bascule
dpend donc de lentre courante et du contenu de la bascule prcdente. Le
cas de la premire bascule est considrer diremment. Si tous les coecients
bj sont nuls, lentre est le rsultat de la somme des seules composantes slec-
5. Les codes convolutifs et leur dcodage 169

tionnes de di . Dans le cas contraire, la somme des composantes slectionnes


de di sajoutent les contenus des bascules slectionnes par les coecients bj
non-nuls. Le code ainsi engendr est rcursif. Ainsi, la succession des tats
du registre dpend donc de ltat de dpart et de la succession des donnes
en entre. Les composantes de la redondance ri sont nalement produites en
sommant le contenu des bascules slectionnes par les coecients g.
Considrons quelques exemples.
Le codeur reprsent en gure 5.1 est binaire systmatique, donc m = 1
(l) (1)
et c = 1. De plus, tous les coecients aj sont nuls sauf a1 = 1. Ce
codeur nest pas rcursif car tous les coecients bj sont nuls. Le bit de
(1) (1) (1)
redondance (ou parit) est dni par g0 = 1, g1 = 1, g2 = 0 et
(1)
g3 = 1.
Dans le cas du codeur binaire non-systmatique non-rcursif (ici d-
(l)
nomm classique ) de la gure 5.2, m = 1, c = 0 ; parmi les aj , seul
(1)
a1 = 1 est non-nul et bj = 0 j. Deux bits de parit sont issus du
(1) (1) (1) (1) (2)
codeur et dnis par g0 = 1, g1 = 1, g2 = 0, g3 = 1 et g0 = 1,
(2) (2) (2)
g1 = 0, g2 = 1, g3 = 1.
La gure 5.3 prsente un codeur binaire systmatique (m = 1, c = 1 et
(1)
a1 = 1) rcursif. Les coecients de la boucle de rcursivit sont alors
(1) (1)
b1 = 1, b2 = 0, b3 = 1 et ceux de la redondance sont g0 = 1, g1 = 0,
(1) (1)
g2 = 1, g3 = 1.
La gure 5.5 reprsente un codeur double-binaire systmatique rcursif.
(l)
Les seuls coecients qui dirent du prcdent cas sont les aj : les
(1) (2) (2) (2) (l)
coecients a1 , a1 , a2 et a3 sont gaux 1, les autres aj sont nuls.

d (1)
i
d (1), d (2),ri
d (2)
i Mux
i i
ri

D D D

Figure 5.5 Exemple de codeur convolutif double-binaire systmatique rcursif.

Pour dnir un codeur, il nest cependant pas ncessaire den faire une
reprsentation graphique puisque la connaissance des paramtres prsents en
gure 5.4 est susante. Une reprsentation condense de ces paramtres est
connue sous le nom de polynmes gnrateurs. Cette notation est prsente
dans le paragraphe suivant.
170 Codes et turbocodes

5.2.2 Reprsentation polynomiale


Considrons tout dabord un code binaire classique (non-systmatique et
non-rcursif) : c = 0, tous les coecients bj sont nuls et m = 1. La connais-
!k=1..n !
(k) (k)
sance de gj sut alors dcrire le code. Les coecients gj
j=0.. j=0..
dnissent donc n polynmes gnrateurs G(k) en algbre de D (Delay) :
 (k)
G(k) (D) = gj D j (5.1)
j=1...n

(1) (2)
Prenons le cas du codeur dni en gure 5.2. Les sorties ri et ri sexpriment
en fonction des donnes d successives de la manire suivante :
(1)
ri = di + di2 + di3 (5.2)

ce qui peut aussi scrire, via la transforme en D :

r(1) (D) = G(1) (D) d(D) (5.3)

avec G(1) (D) = 1 + D2 + D3 , premier polynme gnrateur du code et d(D)


transforme en D du message coder. De mme, le second polynme gnrateur
est G2 (D) = 1 + D + D3 .
Ces polynmes gnrateurs peuvent aussi se rsumer par la suite de leurs
coecients, respectivement (1011) et (1101), gnralement note en reprsen-
tation octale, respectivement (13)octal et (15)octal . Dans le cas dun code syst-
matique non-rcursif, comme lexemple en gure 5.1, les polynmes gnrateurs
sexpriment selon le mme principe. Dans cet exemple, le codeur a pour poly-
nmes gnrateurs G(1) (D) = 1 et G(2) (D) = 1 + D + D3 .
Dnir les polynmes gnrateurs dun code systmatique rcursif est moins
vident. Considrons lexemple de la gure 5.3. Le premier polynme gnrateur
est trivial puisque le code est systmatique. Pour identier le second, il faut
noter que
(0) (1) (3) (0) (0)
si = di + si + si = di + si1 + si3 (5.4)
et que :
(0) (2) (3) (0) (0) (0)
ri = si + si + si = si + si2 + si3 (5.5)
ce qui est quivalent :
(0) (0) (0)
di = si + si1 + si3
(0) (0) (0) (5.6)
ri = si + si2 + si3

Ce rsultat peut tre reformul en introduisant la transforme en D :

d(D) = G(2) (D)s(D)


(5.7)
r(D) = G(1) (D)s(D)
5. Les codes convolutifs et leur dcodage 171

o G(1) (D) et G(2) (D) sont les polynmes gnrateurs du code reprsent en
gure 5.2, ce qui conduit :
d(D)
s(D) = G(2) (D)
(5.8)
G(1) (D)
r(D) = G(2) (D)
d(D)

Ainsi, un code systmatique rcursif se drive aisment dun code non-


systmatique non-rcursif. Les codes gnrs par de tels codeurs peuvent tre
reprsents graphiquement selon trois modles : larbre, le treillis et la machine
tats.

5.2.3 Arbre dun code

Figure 5.6 Diagramme en arbre du code de polynmes [1, 1 + D + D3 ]. Les couples


binaires indiquent les sorties du codeur et les valeurs entre parenthses sont les tats
futurs.

La premire reprsentation graphique dun code et certainement la moins


pertinente pour la suite du chapitre est la reprsentation en arbre. Elle permet
de prsenter toutes les squences dtats possibles. La racine est associe
ltat de dpart du codeur. On en drive tous les tats successifs possibles en
fonction de lentre di du codeur. La branche reliant un tat pre un tat ls
172 Codes et turbocodes

est tiquete par la valeur des sorties du codeur lors de la transition associe.
Ce principe est itr pour chacun des tats ls et ainsi de suite. Le diagramme
en arbre associ au codeur systmatique de la gure 5.1 est illustr en gure 5.6.
Ce type de diagramme ne sera pas utilis dans la suite, la seule utilisation qui
en est faite concernant un algorithme de dcodage squentiel(lalgorithme de
Fano) non trait dans cet ouvrage.

5.2.4 Treillis dun code


La reprsentation la plus courante dun code convolutif est le diagramme
en treillis. Il est dune importance majeure aussi bien pour la dnition des
proprits dun code que pour son dcodage, comme nous le verrons dans la
suite du chapitre 5.
00 00 00 00 00
(000)
11 11 11
01 01
(001)
10 10
11 11
00 00 00
(010)
11 11 11
01 01
(011) 01
10 10
01
01 01
(100)
10 10 10
10 00 00
(101) 11 11
01
01 01
(110) 10 10 10
00 00
(111) 11 11

di ri di=0
di ri di=1

Figure 5.7 Diagramme en treillis dun code de polynmes gnrateurs [1, 1+D+D3 ].

un instant i, ltat dun codeur convolutif peut prendre 2 valeurs. Cha-


cune de ces valeurs possibles est reprsente par un nud. chaque instant i
est associe une colonne dtats-nuds et en fonction de lentre di , le codeur
transite dun tat si si+1 en dlivrant les bits cods. Cette transition entre
deux tats est reprsente par un arc entre les deux nuds associs et tiquet
avec les sorties du codeur. Dans le cas dun code binaire, la transition sur une
entre 0 (resp. 1) est reprsente par un trait pointill (resp. plein). La suc-
cession des tats si jusqu linstant t est reprsente par les dirents chemins
entre ltat de dpart et les dirents tats possibles linstant t.
Illustrons ceci par lexemple du codeur systmatique de la gure 5.1. En faisant
lhypothse que ltat de dpart s0 est ltat (000) :
si d1 = 0 alors ltat suivant, s1 , est aussi (000). La transition sur une en-
tre 0 est reprsente par un trait pointill et tiquete dans ce premier
cas par 00, la valeur des sorties du codeur ;
si d1 = 1, alors ltat suivant, s1 , est (100). La transition sur une entre
1 est reprsente par un trait plein et tiquete ici par 11.
5. Les codes convolutifs et leur dcodage 173

Il faut ensuite envisager les quatre transitions possibles : de s1 = (000) si


d2 = 0 ou d2 = 1 et de s1 = (100) si d2 = 0 ou d2 = 1.
En itrant cette construction, on aboutit la reprsentation, en gure 5.7,
de toutes les successions possibles dtats partir de ltat de dpart jusqu
linstant 5, sans la croissance illimite du diagramme en arbre.
Une section complte du treillis sut caractriser le code. La section de
treillis du code prcdent est ainsi reprsente en gure 5.8(a). De mme, les
codeurs prsents en gures 5.2 et 5.3 sont associs des sections de treillis,
illustres respectivement en gures 5.8(b) et 5.8(c).

(000) 00 (000) 00 (000) 00


11 11 11
01 11 11
(001) (001) (001)
10 00 00
00 10 01
(010) (010) (010)
11 01 10
01 01 10
(011) (011) (011)
10 10 01
01 01 10
(100) (100) (100)
10 10 01
00 10 01
(101) 11 (101) 01 (101) 10
01 11 11
(110) 10 (110) 00 (110) 00
00 00 00
(111) 11 (111) 11 (111) 11

di ri di=0 ri(1) ri(2) di=0 di ri di=0


di ri di=1 ri(1) ri(2) di=1 di ri di=1

(a) (b) (c)

Figure 5.8 Sections en treillis des codes des polynmes gnrateurs (a) [1, 1+D+D3 ],
(b) [1 + D2 + D3 , 1 + D + D3 ], (c) [1, (1 + D2 + D3 )/(1 + D + D3 )].

Une telle reprsentation met en vidence le motif lmentaire de ces treillis :


le papillon, dont lappellation est directement associe son dessin. Chacune
des sections des gures 5.8 est ainsi compose de 4 papillons (les transitions des
tats 0 et 1 vers les tats 0 et 4 en forment un). La structure en papillons des
trois treillis illustrs est identique mais les squences codes dirent. Il faut
noter en particulier que toutes les transitions aboutissant un mme nud
dun treillis dun code non-rcursif sont dues une mme valeur en entre du
codeur. Ainsi, parmi les deux exemples non-rcursifs traits (gures 5.8(a) et
5.8(b)), une transition associe un 0 en entre aboutit ncessairement dans
un des tats compris entre 0 3 et une transition 1 aboutit dans un des
tats compris entre 4 et 7. Il en va diremment dans le cas dun code rcursif
(comme celui prsent en gure 5.8(c)) : chaque tat admet une transition
incidente associe une entre 0 et une autre associe 1. Nous en verrons
les consquences en section 5.3.
174 Codes et turbocodes

5.2.5 Machine tats dun code


Pour reprsenter les direntes transitions entre les tats dun codeur, il
existe une dernire reprsentation qui est celle dune machine tats. La
convention pour dnir les arcs de transition est identique celle utilise dans
la section prcdente. Seuls 2 nuds sont reprsents, indpendamment de
linstant i, ce qui revient la reprsentation prcdente sous forme de section
de treillis. Les codeurs des gures 5.1, 5.2 et 5.3 admettent ainsi une reprsen-
tation sous forme de machine tats illustre respectivement en gures 5.9,
5.10 et 5.11.
10
11 (100) (110) 10
01 11

11
00 (000) 10 (010) 00 (101) 01 (111) 11

01 00 10 00
(001) 01 (011)
di ri di=0
di ri di=1

Figure 5.9 Machine tat pour un code de polynmes gnrateurs [1, 1 + D + D3 ].

10
11 (100) (110) 00
01 01

01
00 (000) 00 (010) 10 (101) 11 (111) 11

11 10 10 00
(001) 01 (011)
ri(1) ri(2) di=0
ri(1) ri(2) di=1

Figure 5.10 Machine tat pour un code de polynmes gnrateurs [1+D2 +D3 , 1+
D + D3 ].

Figure 5.11 Machine tat pour un code de polynmes gnrateurs [1, (1 + D2 +


D3 )/(1 + D + D3 )].

Cette reprsentation est particulirement utile pour dterminer la fonction


de transfert et le spectre de distances dun code convolutif (section 5.3). Il est
5. Les codes convolutifs et leur dcodage 175

dores et dj possible de remarquer une dirence notable entre une machine


tat dun code rcursif et celle dun code non-rcursif : lexistence et le nombre
de cycles1 sur une squence nulle en entre.
Dans le cas des deux machines tat non-rcursives, il existe un seul cycle sur
squence nulle en entre : la boucle sur ltat 0.
La machine tat rcursive admet par contre un autre cycle sur squence nulle
en entre : tat 4 tat 6 tat 7 tat 3 tat 5 tat 2 tat 1
tat 4.
De plus, ce cycle est reli la boucle sur ltat 0 par deux transitions associes
des entres 1 (transitions 0 4 et 1 0). Il existe alors une innit de
squences dentre de poids de Hamming2 gal 2 produisant un cycle sur ltat
0. Ce poids 2 est le poids minimal de toute squence non nulle qui fait quitter
ltat 0 du codeur rcursif et ly conduit nouveau. Du fait de la linarit
du code (cf. chapitre 1), cette valeur 2 est aussi la plus petite distance qui
peut sparer deux squences dentre direntes qui font quitter le codeur dun
mme tat pour ly conduire galement dans un mme tat.
Dans le cas des codes non-rcursifs, le poids de Hamming des squences
dentre permettant un cycle sur ltat 0 peut tre seulement de 1 (tat 0
tat 4 tat 2 tat 1 tat 0). Cette distinction est essentielle pour
comprendre lintrt des codes rcursifs utiliss seuls (section 5.3) ou dans une
structure de turbocode (chapitre 7).

5.3 Distances et performances des codes


5.3.1 Du choix dun bon code
Un code tant exploit pour ses capacits de correction, il faut tre en
mesure de pouvoir les estimer pour choisir un code parmi dautres de manire
judicieuse, en fonction de lapplication vise. Parmi les mauvais choix possibles,
les codes catastrophiques sont tels quun nombre ni derreurs lentre du
dcodeur peut produire un nombre inni derreurs en sortie du dcodeur, ce qui
justie bien leur appellation. Une proprit majeure de ces codes est quil existe
au moins une squence dentre de poids inni qui engendre une squence code
de poids ni : les codes systmatiques ne peuvent donc pas tre catastrophiques.
Ces codes peuvent tre identis trs simplement sils ont un rendement de la
forme R = 1/N . On peut alors montrer que le code est catastrophique si le plus
grand commun diviseur (P.G.C.D.) de ses polynmes gnrateurs est dirent
de lunit. Ainsi, le code de polynmes gnrateurs G(1) (D) = 1 + D + D2 + D3
et G(2) (D) = 1 + D3 est catastrophique car le P.G.C.D. est 1 + D.
Cependant le choix dun code convolutif ne peut se rsumer la question
est-il catastrophique ? . En exploitant les reprsentations graphiques intro-
duites prcdemment, les proprits et les performances des codes peuvent tre
1 Un cycle est une succession dtats telles que ltat initial est aussi ltat nal.
2 Le poids de Hamming dune squence binaire est gal au nombre de bits dirents de 0.
176 Codes et turbocodes

compares.

5.3.2 Squences RTZ


Puisque les codes convolutifs sont linaires, dterminer les distances entre
les direntes squences codes revient dterminer les distances entre les
squences codes non-nulles et la squence tout 0 . Il sut donc de calculer
le poids de Hamming de toutes les squences codes qui partent de ltat 0 et
qui y reviennent. Ces squences sont appeles squences RTZ (pour Return To
Zero). Le poids de Hamming le plus faible ainsi obtenu est appel distance libre
du code. La distance minimale de Hamming dun code convolutif est gale sa
distance libre partir dune certaine longueur de squence code. Par ailleurs,
le nombre de squences RTZ qui ont le mme poids est appel multiplicit de
ce poids.
Considrons les codes qui ont servi dexemples jusqu prsent. Chaque
squence RTZ de poids minimal est reprsente en gras sur les gures 5.12,
5.13 et 5.14.
00 00 00 00 00
(000)
11 11 11
01 01
(001)
10 10
11 11
00 00 00
(010)
11 11 11
01 01
(011) 01
10 10
01
01 01
(100)
10 10 10
10 00 00
(101) 11 11
01
01 01
(110) 10 10 10
00 00
(111) 11 11

ri(1) ri(2) di=0


ri(1) ri(2) di=1

Figure 5.12 Squence RTZ (en gras) dnissant le distance libre du code de poly-
nmes gnrateurs [1, 1 + D + D3 ].

Le code systmatique non-rcursif possde une squence RTZ de poids mi-


nimal de Hamming gal 4. La distance libre de ce code est donc gale 4.
Par contre, le code classique et le code systmatique rcursif possdent chacun
deux squences RTZ de poids minimal 6, leur distance libre est donc de 6. La
capacit de correction des codes non-systmatique non-rcursif et systmatique
rcursif est donc meilleure que celle du code systmatique non-rcursif.
Il est intressant, en outre, de comparer les poids des squences en entre
associes aux squences RTZ de poids minimal. Dans le cas du code systma-
tique non-rcursif, la seule squence de ce type est de poids gal 1, ce qui
signie que si la squence RTZ est dcide la place de la squence mise tout
0 , seul un bit est en erreur. Dans le cas du code classique, une squence en
entre a un poids de 1 et une autre un poids de 3 : un ou trois bits sont donc en
5. Les codes convolutifs et leur dcodage 177

00 00 00 00 00 00
(000)
11 11 11 11
11 11 11
(001)
00 00 00
11 11
10 10 10 10
(010)
01 01 01 01
01 01 01
(011) 01
10 10 10
01
01 01 01
(100)
10 10 10 10
10 10 10 10
(101) 01 01 01
11
11 11 11
(110) 00 00 00 00
00 00 00
(111) 11 11 11

ri(1) ri(2) di=0


ri(1) ri(2) di=1

Figure 5.13 Squences RTZ (en gras) dnissant la distance libre du code de poly-
nmes gnrateurs [1 + D2 + D3 , 1 + D + D3 ].
00 00 00 00 00 00
(000)
11 11 11 11
11 11 11
(001)
00 00 00
11 11
01 01 01 01
(010)
10 10 10 10
10 10 10
(011) 10
01 01 01
10
10 10 10
(100)
01 01 01 01
01 01 01 01
(101) 10 10 10
11
11 11 11
(110) 00 00 00 00
00 00 00
(111) 11 11 11

di ri(2) di=0
di ri(2) di=1

Figure 5.14 Squences RTZ (en gras) dnissant la distance libre du code de poly-
nmes gnrateurs [1, (1 + D2 + D3 )/(1 + D + D3 )].

erreur si une telle squence RTZ est dcode. Dans le cas du code systmatique
rcursif, les squences RTZ de poids minimal ont un poids dentre de 3.
La connaissance de la distance minimale de Hamming et du poids den-
tre qui lui est associ nest pas susante pour valuer nement la probabilit
derreur en sortie du dcodeur dun code convolutif simple. Lnumration des
distances, au del de la distance minimale de Hamming, et de leurs poids est
ncessaire cette valuation. Cette numration porte le nom de spectre des
distances.

5.3.3 Fonction de transfert et spectre de distances


Le pouvoir de correction dun code dpend de toutes les squences RTZ,
que lon va considrer suivant lordre croissant de leurs poids. Plutt que de les
numrer partir dune lecture des graphes, il est possible dtablir la fonction
de transfert du code. Celle-ci sobtient partir du diagramme de transitions
dtats dans lequel ltat de dpart (000) est scind en deux tats ae et as , qui
ne sont autres que ltat de dpart et ltat darrive de toute squence RTZ.
178 Codes et turbocodes

Illustrons le calcul de la fonction de transfert par le cas du code systma-


tique de la gure 5.1, dont le diagramme de transitions dtats est de nouveau
reprsent en gure 5.15.

(000)
ae
OI
OI
(100) (110) OI
e O OI g

OI
OI (010) 1 (101) O (111) OI
c f h
1 OI 1
(001) O (011)
b d
O

(000)
as

Figure 5.15 Machine tats du code [1, 1 + D + D3 ], modie pour le calcul de la


fonction de transfert associe.

Chaque transition possde une tiquette Oi I j , o i est le poids de la s-


quence code et j celui de la squence en entre du codeur. Dans notre exemple,
j peut prendre la valeur 0 ou 1 selon le niveau du bit en entre du codeur
chaque transition et i varie entre 0 et 2, puisque 4 symboles cods sont possibles
(00, 01, 10, 11), de poids compris entre 0 et 2.
La fonction de transfert du code T (O, I) est alors dnie par :
as
T (O, I) = (5.9)
ae
Pour tablir cette fonction, il faut rsoudre le systme dquations issu des
relations entre les 9 tats (ae, b, c... h et as) :

b = c + Od
c = Oe + f
d = h + Dg
e = O2 Iae + OIb
(5.10)
f = O2 Ic + OId
g = OIe + O2 If
h = O2 Ih + OIg
as = Ob

laide dun outil de calcul formel, il est ais daboutir au rsultat suivant :
I 4 O12 +(3I 4 +I 3 )O10 +(3I 4 3I 3 )O8 +(I 4 +2I 3 )O6 +IO4
T (O, I) = (5.11)
I 4 O10 +(3I 4 I 3 )O8 +(3I 4 +4I 3 )O6 +(I 4 3I 3 )O4 3IO2 +1
5. Les codes convolutifs et leur dcodage 179

T (O, I) peut ensuite tre dveloppe en srie :

T (O, I) = IO4
+ (I 4 + 2I 3 + 3I 2 )O6
+ (4I 5 + 6I 4 + 6I 3 )O8
(5.12)
+ (I 8 + 5I 7 + 21I 6 + 24I 5 + 17I 4 + I 3 )O10
+ (7I 9 + 30I 8 + 77I 7 + 73I 6 + 42I 5 + 3I 4 )O12
+

Cette criture permet dobserver quune squence RTZ de poids 4 est produite
par une squence en entre de poids 1, que des squences RTZ de poids 6 sont
produites par une squence de poids 4, par deux squences de poids 3 et par
trois squences de poids 2, etc.
Dans le cas du code classique prcdemment cit, la fonction de transfert
est :
T (O, I) = (I 3 + I)O6
+ (2I 6 + 5I 4 + 3I 2 )O8
+ (4I 9 + 16I 7 + 21I 5 + 8I 3 )O10
(5.13)
+ (8I 12 + 44I 10 + 90I 8 + 77I 6 + 22I 4 )O12
+ (16I 15 + 112I 13 + 312I 11 + 420I 9 + 265I 7 + 60I 5 )O14
+

De mme, le code systmatique rcursif dj tudi admet pour fonction de


transfert :
T (O, I) = 2I 3 O6
+ (I 6 + 8I 4 + I 2 )O8
+ 8I 7 + 33I 5 + 8I 3 )O10
(5.14)
+ I 10 + 47I 8 + 145I 6 + 47I 4 + I 2 )O12
+ 14I 11 + 254I 9 + 649I 7 + 254I 5 + 14I 3 )O14
+

La comparaison des fonctions de transfert du point de vue du monme de


plus faible degr permet dapprcier le pouvoir de correction trs fort rap-
port signal bruit (comportement asymptotique). Ainsi, le code systmatique
non-rcursif est plus faible que ses rivaux puisque de distance minimale inf-
rieure. Un code classique et son quivalent systmatique rcursif ont la mme
distance libre, mais leurs monmes de degr minimal dirent. Le premier est
en (I 3 + I)O6 et le second en 2I 3 O6 . Cela signie que par le code classique une
squence en entre de poids 3 et une autre de poids 1 produisent une squence
RTZ de poids 6 tandis que par le code systmatique rcursif deux squences de
poids 3 produisent une squence RTZ de poids 6. De la sorte, si une squence
RTZ de poids minimal est introduite par le bruit, le code classique introduira
une ou trois erreurs, tandis son comparse systmatique rcursif introduira trois
ou trois autres erreurs. En conclusion, la probabilit derreur binaire sur une
180 Codes et turbocodes

telle squence est plus faible avec un code classique quavec un code systma-
tique rcursif, ce qui explique que le premier sera lgrement meilleur fort
rapport signal bruit. Il en va gnralement autrement lorsque les codes sont
poinonns (cf. section 5.5) pour disposer de rendements plus levs [5.9].
Pour comparer les performances des codes faible rapport signal bruit,
il faut considrer lensemble des monmes. Prenons lexemple du monme en
O12 respectivement pour le code systmatique non-rcursif, le classique et le
systmatique rcursif :

(7I 9 + 30I 8 + 77I 7 + 73I 6 + 42I 5 + 3I 4 )O12


(8I 12 + 44I 10 + 90I 8 + 77I 6 + 22I 4 )O12
(I 10 + 47I 8 + 145I 6 + 47I 4 + I 2 )O12

Si 12 erreurs sont introduites par le bruit sur le canal, 232 squences RTZ
sont disponibles en erreur pour le premier code, 241 pour le deuxime
et encore 241 pour le troisime. Il est donc (un peu) moins probable quune
squence RTZ apparaisse si le code employ est le code systmatique non-
rcursif. De plus, lesprance derreur par squence RTZ des trois codes est
respectivement 6, 47, 7, 49 et 6 : le code systmatique rcursif introduit donc en
moyenne moins derreurs de dcodage que le code classique sur des squences
de RTZ de 12 erreurs sur la trame code. Ceci se vrie aussi pour les monmes
de plus haut degr. Les codes systmatiques rcursif et non-rcursif sont donc
plus performants faible rapport signal bruit que le code classique. En outre,
nous retrouvons dans la fonction de transfert du code rcursif les monmes
I 2 O8+4c , o c est un entier. Cette innit de monmes de ce type est due
lexistence du cycle sur une squence en entre nulle dirent de la boucle sur
ltat 0. Un tel code ne fournit dailleurs pas de monmes de la forme IOc ,
contrairement aux codes non-rcursifs. Ces conclusions rejoignent celles issues
de ltude des machines tats en section 5.2.
Cette notion de fonction de transfert est donc ecace pour tudier les per-
formances dun code convolutif. Une version drive est par ailleurs essentielle
la classication des codes vis--vis de leurs performances. Il sagit du spectre
de distance (d) dont la dnition est la suivante :


T (O, I)
( )I=1 = (d)Od (5.15)
I
d=df

Par exemple, les premiers termes du spectre du code systmatique rcursif,


obtenus partir de (5.14), sont prsents dans le tableau 5.1.
Ce spectre est essentiel pour lestimation des performances des codes en
termes de calcul de probabilit derreur, comme lillustre labondante littrature
ce sujet [5.10].
Les codes utiliss dans les exemples prcdents ont un rendement de 1/2.
En augmentant le nombre de bits de redondance n le rendement devient plus
faible. Dans ce cas, les puissances de O associes aux branches des machines
5. Les codes convolutifs et leur dcodage 181

d 6 8 10 12 14 ...
(d) 6 40 245 1446 8295 ...

Table 5.1 Premiers termes du spectre du code systmatique rcursif de polynmes


gnrateurs [1, (1+D2+D3)/(1+D+D3)].

tats seront suprieures ou gales celles des gures prcdentes. Ceci conduit
des fonctions de transfert avec des puissances de O plus leves cest--dire
des squences RTZ de poids de Hamming plus importants. Les codes de
rendements faibles ont donc un pouvoir de correction suprieur.

1e+00

1e01

1e02

1e03
Taux derreur

1e04

1e05

Modulation de phase 2 tats noncode TEB


1e06 Code classique TEB
Code systmatique TEB
Code systmatique rcursif TEB
1e07 Code classique TEP
Code systmatique TEP
Code systmatique rcursif TEP
1e08
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6
Eb/No (dB)

Figure 5.16 Comparaison des performances (Taux dErreurs Binaire et Taux dEr-
reurs Paquet) simules des trois catgories de codes convolutifs aprs transmission de
paquets de 53 octets sur un canal gaussien (dcodage selon lalgorithme MAP ).

5.3.4 Performances
La performance dun code est dnie par la probabilit derreur au dcodage
aprs transmission sur un canal bruit. La section prcdente nous a permis de
comparer de manire intuitive les codes non-systmatique non-rcursif, syst-
matique non-rcursif et systmatique rcursif de mme longueur de contrainte.
Toutefois, pour estimer les performances absolues dun code, il faut pouvoir
estimer la probabilit derreur de dcodage en fonction du bruit, ou du moins
la borner. La littrature, par exemple [5.10], dnit ainsi de nombreuses bornes
qui ne seront pas dtailles ici et nous nous limiterons comparer les trois
catgories de codes convolutifs. Pour ce faire, une transmission sur canal gaus-
182 Codes et turbocodes

1e+00

1e01

1e02

1e03
Taux derreur

1e04

1e05

Modulation de phase 2 tats noncode TEB


1e06 Code classique TEB
Code systmatique TEB
Code systmatique rcursif TEB
1e07 Code classique TEP
Code systmatique TEP
Code systmatique rcursif TEP
1e08
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6
Eb/No (dB)

Figure 5.17 Comparaison des performances simules des trois catgories de codes
convolutifs aprs transmission de blocs de 200 octets sur un canal gaussien.

sien de blocs de 53 puis 200 octets cods selon dirents schmas a t simule
(gures 5.16 et 5.17) : classique (non-systmatique non-rcursif), systmatique
non-rcursif et systmatique rcursif.
Les blocs ont t construits suivant la technique de fermeture de treillis clas-
sique pour les codes non-rcursifs alors que le code rcursif est de terminaison
circulaire (voir section 5.5). Lalgorithme de dcodage utilis est le MAP.
Les courbes de TEB sont en parfaite concordance avec les conclusions tires
lors de lanalyse de la distance libre des codes et de leur fonction de transfert :
le code systmatique est nettement moins bon que les autres fort rapport
signal bruit et le code classique est alors lgrement meilleur que le rcursif.
faible rapport signal bruit, la hirarchie est dirente : le code rcursif et
le code systmatique sont quivalents et meilleurs que le code classique.
La comparaison des performances en fonction de la taille de la trame (53
et 200 octets) montre que la hirarchie de performance des codes nest pas
modie. De plus les taux derreurs bit sont quasiment identiques. Ceci tait
prvisible car les tailles des trames sont susamment importantes pour que les
fonctions de transferts des codes ne soient pas aectes par des eets de bord.
Par contre, le taux derreurs paquet est aect par la longueur des blocs puisque
si la probabilit derreur bit est constante, la probabilit derreur paquet croit
avec sa taille.
Les comparaisons prcdentes ne concernent que des codes 8 tats. Il
est cependant facile de remarquer que les performances dun code convolutif
sont lies sa capacit fournir une information sur la succession des donnes
5. Les codes convolutifs et leur dcodage 183

transmises : plus il peut intgrer de donnes successives dans ses symboles de


sortie, plus il amliore la qualit de protection des-dites donnes. Autrement dit,
un code convolutif est dautant plus performant (au sein de sa catgorie) que
son nombre dtats (donc la taille du registre du codeur) est grand. Comparons
trois codes systmatiques rcursifs :
4 tats [1, (1 + D2) /(1 + D + D2 )],
8 tats [1, (1 + D2 + D3) /(1 + D + D3 )]
et 16 tats [1, (1 + D + D2 + D4) /(1 + D3 + D4 )].
Leurs performance en termes de TEB et TEP ont t simules sur un canal
gaussien et sont prsentes en gure 5.18.

1e+00

1e01

1e02

1e03
Taux derreur

1e04

1e05

Modulation de phase 2 tats noncode TEB


1e06 Code systmatique rcursif 4 tats TEB
Code systmatique rcursif 8 tats TEB
Code systmatique rcursif 16 tats TEB
1e07 Code systmatique rcursif 4 tats TEP
Code systmatique rcursif 8 tats TEP
Code systmatique rcursif 16 tats TEP
1e08
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6
Eb/No (dB)

Figure 5.18 Comparaison des performances simules de codes convolutifs systma-


tiques rcursifs 4, 8 et 16 tats aprs transmission de paquets de 53 octets sur un
canal gaussien (dcodage selon lalgorithme MAP

Les taux derreurs rsiduelles sont dautant plus faibles que le nombre
dtats du code est important. Pour un TEB de 104 , 0,6dB sont ainsi gagns
lors du passage du 4 tats au 8 tats et 0.5dB lors du passage du 8 tats au
16 tats. Cette remarque est cohrente avec la justication qualitative de lin-
trt dun grand nombre dtats. Il semblerait alors logique de choisir un code
convolutif avec un grand nombre dtats pour assurer la protection souhaite.
Dautant plus que de tels codes orent la possibilit de produire une redondance
sur bien plus que deux composantes, et donc de fournir une protection encore
bien suprieure. Ainsi, le projet du Big Viterbi Decoder du Jet Propulsion La-
boratory de la NASA utilis pour des transmissions avec des sondes spatiales fut
conu pour traiter des trames encodes avec des codes convolutifs de 2 16384
tats et des rendements bien infrieurs 1/2 (16384 tats et R = 1/6 pour les
184 Codes et turbocodes

sondes Cassini vers Saturne et Mars Pathnder ). Pourquoi ne pas utiliser de


tels codes pour des transmissions radio-mobiles terrestres grand-public ? Parce
que la complexit du dcodage deviendrait rdhibitoire pour des transmissions
terrestres actuelles avec un terminal fonctionnant en temps rel et tenant dans
une poche de taille raisonnable...

5.4 Le dcodage des codes convolutifs


Il existe plusieurs algorithmes de dcodage des codes convolutifs. Le plus c-
lbre est probablement lalgorithme de Viterbi qui repose sur la reprsentation
en treillis des codes ([5.4], [5.11]). Il permet de trouver, partir de la squence
des symboles reus, la squence dtats dans le treillis la plus probable.
Lalgorithme de Viterbi originel eectue un dcodage sortie ferme, cest-
-dire quil fournit une estimation binaire de chacun des symboles transmis.
Il nest donc pas directement adapt aux systmes itratifs qui requirent une
information de conance sur les dcisions. Des adaptations de lalgorithme de
Viterbi telles que celles proposes dans [5.12], [5.13] ou [5.14] ont conduit aux
versions sortie pondre dites SOVA (Soft-Output Viterbi Algorithm). Les al-
gorithmes SOVA ne sont pas dcrits dans cet ouvrage, car on leur prfre pour
le turbo-dcodage une autre famille dalgorithmes reposant sur la minimisa-
tion de la probabilit derreur de chaque symbole transmis. Ainsi, lalgorithme
Maximum A Posteriori (MAP ) permet le calcul de la valeur exacte de la proba-
bilit a posteriori associe chaque symbole transmis en utilisant la squence
reue [5.5]. Lalgorithme MAP et ses variantes sont dtaills dans le chapitre 7.

Figure 5.19 Modle de la chane de transmission tudie.

5.4.1 Modle de la chane de transmission et notations


Les algorithmes de Viterbi et MAP sont utiliss dans la chane de transmis-
sion dcrite en gure 5.19. Le code convolutif considr est systmatique et cal-
cule pour chaque squence de donnes dinformation d = dN 1 = {d1 , , dN }
une squence redondante r = rN 1 = {r1 , , rN }. Le code est m-binaire de ren-
dement R = m/(m + n) : chaque vecteur de donnes di en entre du codeur est
(1) (2) (m)
ainsi constitu de mbits, di = (di , di , , di ), et le vecteur de redondance
(1) (2) (n)
correspondant en sortie scrit ri = (ri , ri , , ri ). La valeur de di pourra

m
(l)
galement tre reprsente par la grandeur scalaire entire j = 2l1 di ,
l=1
comprise entre 0 et 2m 1, et lon crira alors di j.
5. Les codes convolutifs et leur dcodage 185

Les squences de donnes systmatiques d et redondantes r sont transmises


aprs une conversion binaire/antipodale faisant correspondre chaque valeur
binaire (0 ou 1) issue du codeur une valeur antipodale (-1 ou +1) mise vers le
canal. X et Y reprsentent les squences de symboles systmatiques et redon-
dants bruits reus lentre du dcodeur et d la squence dcode qui peut
dsigner soit une squence binaire dans le cas de lalgorithme de Viterbi, soit
une squence de dcisions pondres associes aux di en sortie de lalgorithme
MAP.

5.4.2 Lalgorithme de Viterbi


Lalgorithme de Viterbi est la mthode la plus couramment utilise pour le
dcodage maximum de vraisemblance (MV) des codes convolutifs de faible
longueur de contrainte (typiquement  8). Au del de cette limite, sa com-
plexit de mise en uvre impose davoir plutt recours un algorithme de
dcodage squentiel tel que celui de Fano [5.3].
Le dcodage MV est bas sur la recherche du mot de code c qui est la
plus petite distance du mot reu. Dans le cas dun canal dcision binaire (canal
binaire symtrique), le dcodage MV sappuie sur la distance de Hamming,
alors que dans celui dun canal gaussien, il sappuie sur la distance euclidienne
(voir chapitre 2). Une recherche exhaustive des mots de codes associs aux
dirents chemins dans le treillis conduit la prise en compte de 2+k chemins.
En pratique, une recherche du chemin distance minimale sur une fentre de
travail de largeur l infrieure k, limite la recherche 2+l chemins.
Lalgorithme de Viterbi permet dapporter une rduction notable de la
complexit de calcul. Il est bas sur lide que, parmi lensemble des chemins
du treillis qui convergent en un nud un instant donn, seul le chemin le
plus probable peut tre retenu pour les tapes suivantes de recherche. Notons
(1) (2) ()
si = (si , si , . . ., si ) ltat du codeur linstant i et T (i, si1 , si ) la branche
du treillis correspondant lmission de la donne di et associe la transition
entre les nuds si1 et si . Lapplication de lalgorithme de Viterbi consiste
eectuer, la suite doprations dcrite ci-aprs.
chaque instant i, pour i allant de 1 k :
Calcul pour chaque branche dune mtrique de branche, d (T (i, si1 , si )).
Pour un canal sortie binaire, cette mtrique est dnie comme la dis-
tance de Hamming entre le symbole port par la branche du treillis et le
symbole reu, d (T (i, si1 , si )) = dH (T (i, si1 , si )).
Pour un canal gaussien, la mtrique est gale au carr de la distance eucli-
dienne entre la branche considre et lobservation lentre du dcodeur
(voir aussi section 1.3) :
2 2
d (T (i, si1 , si )) = Xi xi  + Yi yi 
m
2 n
2
(j) (j) (j) (j)
= xi Xi + yi Yi
j=1 j=1
186 Codes et turbocodes

Calcul de la mtrique cumule associe chaque branche T (i, si1 , si )


dnie par :

(T (i, si1 , si )) = (i 1, si1 ) + d(T (i, si1 , si ))

o (i 1, si1 ) est la mtrique cumule associe au nud si1 .


Pour chaque nud si , slection de la branche du treillis correspondant la
mtrique cumule minimale et mmorisation de cette branche en mmoire
(en pratique, cest la valeur de di associe la branche qui est stocke). Le
chemin dans le treillis constitu des branches successivement mmorises
aux instants compris entre 0 et i est le chemin survivant arrivant en si . Si
les deux chemins qui convergent en si possdent des mtriques cumules
identiques, le survivant est alors choisi de faon arbitraire entre ces deux
chemins.
Calcul de la mtrique cumule associe chaque nud si , (i, si ). Elle
est gale la mtrique cumule associe au chemin survivant arrivant en
si :
(i, si ) = min ( (T (i, si1 , si ))) .
si1

Initialisation (instant i =0) :


Les valeurs dinitialisation des mtriques au dmarrage de lalgorithme
dpendent de ltat initial s du codeur : (0, s) = + si s = s0 et (0, s0 ) = 0.
Si cet tat nest pas connu, toutes les mtriques sont initialises la mme va-
leur, typiquement 0. Dans ce cas, le dcodage du dbut de la trame est moins
ecace puisque les mtriques cumules associes chaque branche linstant
1 ne dpendent que de la branche elle-mme. Le pass ne peut pas tre pris en
compte puisquil nest pas connu : (T (1, s0 , s1 )) = d(T (1, s0 , s1 )).

Calcul des dcisions (instant i=k) :


linstant k, si ltat nal du codeur est connu, le chemin vraisemblance
maximale est le chemin survivant issu du nud correspondant ltat nal
du codeur. La squence dcode est donne par la suite des valeurs de di , i
allant de 1 k, stockes dans la mmoire associe au chemin vraisemblance
maximale. Cette opration est appele remonte du treillis.
Si ltat nal nest pas connu, le chemin vraisemblance maximale est le
chemin survivant issu du nud mtrique cumule minimale. Dans ce cas,
la problmatique est analogue ce qui a t voqu pour linitialisation : le
dcodage de la n de trame est moins ecace.
Lorsque la squence transmise est longue, voire de longueur innie, il nest
pas possible dattendre que toute la squence binaire mise soit reue pour
commencer lopration de dcodage. Pour limiter la latence de dcodage ainsi
que la taille de mmoire ncessaire la mmorisation des chemins survivants,
il est ncessaire de tronquer le treillis. En observant le droulement de lal-
gorithme, on peut remarquer quen remontant susamment dans le temps
partir de linstant i, les chemins survivants issus des dirents nuds du treillis
5. Les codes convolutifs et leur dcodage 187

convergent presque toujours vers un mme chemin. En pratique, la mmorisa-


tion des survivants peut donc tre limite un intervalle temporel de dure
l. Il est alors susant de faire une remonte du treillis chaque instant i sur
une longueur l pour prendre la dcision sur la donne dil . Pour diminuer la
complexit, les survivants sont parfois mmoriss sur un intervalle suprieur
l (par exemple l+3). Le nombre doprations de remonte de treillis est alors
diminu (divis par 3 dans notre exemple) mais chacune des remontes fournit
plusieurs dcisions (dil , dil1 et dil2 , pour notre exemple).
La valeur de l doit tre dautant plus grande que la mmoire du codeet le
rendement de codage sont levs. On observe que, pour un code systmatique,
des valeurs de l correspondant la production par le codeur dun nombre de
symboles de redondance gal 5 fois la longueur de contrainte du code sont
susantes. A titre dexemple, pour un code de rendement R = 1/2, on prend
typiquement l gal 5( + 1).
Du point de vue de la complexit, lalgorithme de Viterbi ncessite le calcul
de 2+1 mtriques cumules chaque instant i et sa complexit varie linaire-
ment avec la longueur de la squence k ou de la fentre de dcodage l.

Exemple dapplication de lalgorithme de Viterbi


Illustrons les direntes tapes de lalgorithme de Viterbi dcrit prcdemment
par une application au dcodage du code convolutif systmatique rcursif bi-
naire (7,5) 4 tats, de rendement de codage R = 1/2 (m = n = 1). La
structure du codeur et le treillis sont reprsents dans la gure 5.20.
s i1 si
xi (1, 1)
(00)
(+1, +1)
(+1, +1)
(01) (1, 1)
di 0 1 (+1, 1)
D D 1 +1 (10)
s 1i s 2i
(1, +1) (1, +1)
(+1, 1)
(11)
ri yi
(x i, y i) di=0
Conversion (x i, y i) di=1
binaire antipodale

Figure 5.20 Structure du code convolutif systmatique rcursif (7,5) et treillis asso-
ci.

Calcul des mtriques de branches linstant i :


2 2
d(T (i, 0, 0)) = d(T (i, 1, 2)) = (Xi + 1) + (Yi + 1)
2 2
d(T (i, 0, 2)) = d(T (i, 1, 0)) = (Xi 1) + (Yi 1)
2 2
d(T (i, 2, 1)) = d(T (i, 3, 3)) = (Xi 1) + (Yi + 1)
2 2
d(T (i, 2, 3)) = d(T (i, 3, 1)) = (Xi + 1) + (Yi 1)
188 Codes et turbocodes

Calcul des mtriques cumules de branches linstant i :


(T (i, 0, 0)) = (i 1, 0) + d(T (i, 0, 0)) = (i 1, 0) + (Xi + 1)2 + (Xi + 1)2
(T (i, 1, 2)) = (i 1, 1) + d(T (i, 1, 2)) = (i 1, 1) + (Xi + 1)2 + (Xi + 1)2
(T (i, 0, 2)) = (i 1, 0) + d(T (i, 0, 2)) = (i 1, 0) + (Xi 1)2 + (Xi 1)2
(T (i, 1, 0)) = (i 1, 1) + d(T (i, 1, 0)) = (i 1, 1) + (Xi 1)2 + (Xi 1)2
(T (i, 2, 1)) = (i 1, 2) + d(T (i, 2, 1)) = (i 1, 2) + (Xi 1)2 + (Xi + 1)2
(T (i, 3, 3)) = (i 1, 3) + d(T (i, 3, 3)) = (i 1, 3) + (Xi 1)2 + (Xi + 1)2
(T (i, 2, 3)) = (i 1, 2) + d(T (i, 2, 3)) = (i 1, 2) + (Xi + 1)2 + (Xi 1)2
(T (i, 3, 1)) = (i 1, 3) + d(T (i, 3, 1)) = (i 1, 3) + (Xi + 1)2 + (Xi 1)2
Calcul des mtriques cumules de nud linstant i :
(i, 0) = min ((T (i, 0, 0), (T (i, 1, 0))
(i, 1) = min ((T (i, 3, 1), (T (i, 2, 1))
(i, 2) = min ((T (i, 0, 2), (T (i, 1, 2))
(i, 3) = min ((T (i, 3, 3), (T (i, 2, 3))
Pour chacun des quatre nuds du treillis la valeur de di correspondant la
transition de mtrique cumule minimale est stocke en mmoire.

(0)

(1)

(2)
(i , 2 ) = min ( (i, s ) )

s {0, 1, 2, 3}

(3)
i 15 i 14 i 13 i 2 i 1 i

^d
i 15

Figure 5.21 Opration de remonte du chemin survivant (en gras) dans le treillis
partir de linstant i et dtermination de la dcision binaire linstant i 15.

Aprs slection du nud de mtrique cumule minimale, not s (dans


lexemple de la gure 5.21, s = 3), on remonte le treillis le long du chemin
survivant sur une profondeur l = 15. A linstant i 15, la dcision binaire
di15 est gale la valeur de di15 stocke dans la mmoire associe au chemin
survivant.
Lapplication de lalgorithme de Viterbi entres pondres vise recher-
cher le mot de code c qui est la plus petite distance euclidienne entre deux
mots de codes. De manire quivalente (voir chapitre 1), il sagit de rechercher
le mot de code qui maximise :
#m $
k  (l) (l)  n
(l) (l)
x, X + y, Y = xi Xi + yi Yi
i=1 l=1 l=1
5. Les codes convolutifs et leur dcodage 189

Dans ce cas, lapplication de lalgorithme de Viterbi utilise des mtriques de


branches de la forme :


m
(l) (l)

n
(l) (l)
d (T (i, si1 , si )) = xi Xi + yi Yi
l=1 l=1

et le chemin survivant correspond alors au chemin mtrique cumule maxi-


male.

1e+00

1e01

1e02
Taux derreur binaire

1e03

1e04

1e05

Transmission noncode
1e06 Dcodage entres fermes
Dcodage entres pondres
0 1 2 3 4 5 6 7 8 9 10
Eb/No (dB)

Figure 5.22 Exemple de performances de correction sur canal gaussien de lalgo-


rithme de Viterbi entres fermes et entres pondres. Code convolutif syst-
matique rcursif (CSR) de polynmes gnrateurs 7 (rcursivit) et 5 (redondance).
Rendement de codage R = 1/2.

La gure 5.22 fournit les performances des deux variantes, entres fermes
et entres pondres, dun dcodeur utilisant lalgorithme de Viterbi pour
le code CSR(7,5) pour une transmission sur un canal bruit additif blanc
gaussien. On observe en pratique un gain denviron 2 dB lorsque lon substitue
un dcodage entres pondres un dcodage entres fermes.

5.4.3 Lalgorithme Maximum A Posteriori ou MAP


Lalgorithme de Viterbi dtermine le mot de code le plus proche du mot
reu. Cependant, il ne minimise pas ncessairement la probabilit derreur des
bits dinformation ou symboles transmis. Lalgorithme MAP permet de calculer
la probabilit a posteriori de chaque bit dinformation ou de chaque symbole
transmis et le dcodeur correspondant slectionne chaque instant le bit ou
le symbole le plus probable. Cet algorithme a t publi en 1974 par Bahl,
Cocke, Jelinek et Raviv [5.5]. La porte de cette mthode de dcodage est res-
te condentielle jusqu la dcouverte des turbocodes car elle napporte pas
190 Codes et turbocodes

damlioration de performance notable par rapport lalgorithme de Viterbi


pour le dcodage des codes convolutifs et savre plus complexe mettre en
uvre. En revanche la situation a chang en 1993 car le dcodage des turbo-
codes fait appel des dcodeurs lmentaires sorties pondres ou souples
et lalgorithme MAP, contrairement lalgorithme de Viterbi, permet dasso-
cier naturellement une pondration chaque dcision. Lalgorithme MAP est
prsent dans le chapitre 7.

5.5 Codes convolutifs en bloc


Les codes convolutifs sont naturellement adapts aux applications de diu-
sion o le message transmis est de longueur innie. Cependant, la plupart des
systmes de tlcommunications utilisent des transmissions par trames indpen-
dantes. Le paragraphe 5.4.2 a mis en vidence limportance de la connaissance
des tats initial et nal du codeur lors du dcodage dune trame. Les tech-
niques utilises pour connatre ces tats sont gnralement appeles fermeture
de treillis. Elles consistent gnralement forcer les tats initial et nal des
valeurs connues du dcodeur (en gnral zro).

5.5.1 Fermeture de treillis


Fermeture classique
Le codeur tant construit autour dun registre, il est ais de linitialiser
laide dentres de remise zro avant de commencer le codage dune trame.
Cette opration na aucune consquence sur le rendement du code. La fermeture
en n de trame est moins simple.
Lorsque les k bits de la trame ont t cods, le registre du codeur est dans
lun quelconque des 2 tats possibles. Lobjectif de la fermeture est de conduire
le codeur vers ltat zro en suivant un des chemins du treillis pour que lal-
gorithme de dcodage puisse utiliser cette connaissance de ltat nal. Dans le
cas de codes non-rcursifs, ltat nal est forc zro en injectant bits zro
en n de trame. Tout se passe comme si la trame code tait de longueur k +
avec dk+1 = dk+2 = . . . = dk+ = 0. Le rendement de codage est lgrement di-
minu par la transmission des bits de fermeture. Cependant, compte tenu de la
taille des trames gnralement transmises cette dgradation du rendement est
bien souvent ngligeable. Dans le cas des codes rcursifs, il est aussi possible
dinjecter un zro lentre du registre. La gure 5.23 illustre une mthode
simple pour rsoudre cette question.
Aprs initialisation du registre zro, linterrupteur I est maintenu en posi-
tion 1 et les donnes d1 dk sont codes. A la n de cette opration de codage,
des instants k k + , linterrupteur I est plac en position 2 et di prend la
valeur issue de la rtroaction du registre, cest dire une valeur qui force une
(0)
entre de registre zro. En eet, Si est le rsultat dune somme modulo 2
5. Les codes convolutifs et leur dcodage 191

di di , r i
ri Mux

di s (1)
i
1 D D D s (3)
i
2
s (0)
i s (2)
i

Figure 5.23 Exemple de codeur de codes convolutifs systmatiques rcursifs per-


mettant une terminaison ltat 0 en priodes.

de deux membres identiques. Le codeur, quant lui, continue de produire les


redondances associes ri .
Cette fermeture classique possde un inconvnient majeur : la protection
des donnes nest pas indpendante de leur position dans la trame. Cela peut
notamment entraner des eets de bord dans la construction dun turbocode
(voir chapitre 7).

Fermeture circulaire

Une technique fut introduite au tournant des annes 70 et 80 [5.15] pour


terminer les treillis des codes convolutifs sans les eets de bord : le tail-biting.
Elle consiste rendre le treillis de dcodage circulaire, cest--dire faire en
sorte que ltat de dpart et ltat nal du codeur soient identiques. Cet tat
est alors appel tat de circulation. Cette technique de fermeture applique aux
codes rcursifs gnre un code dit convolutif systmatique rcursif circulaire
(CSRC). Le treillis dun tel code est illustr par la gure 5.24.

(000)
(001)
(010)
(011)
(100)
(101)
(110)
(111)

Figure 5.24 Treillis dun code CSRC 8 tats.


192 Codes et turbocodes

Pour expliquer la construction dun tel code, il est ncessaire de revenir


aux quations fondamentales qui rgissent le fonctionnement dun codeur. Il
est possible dtablir une relation entre ltat si+1 du codeur un instant i + 1,
son tat si et la donne entrante di un instant i :

si+1 = Asi + Bdi (5.16)

o A est la matrice dtat et B celle dentre. Dans le cas du code systmatique


rcursif prcdemment cit de polynmes gnrateurs [1, (1+D2 +D3 )/( 1+D+
D3 )], ces matrices sont :

1 0 1 1
A = 1 0 0 et B = 0 .
0 1 0 0

Si le codeur est initialis ltat 0 (s0 = 0), ltat nal s0k obtenu la n dune
trame de longueur k est :


k
s0k = Aj1 Bdkj (5.17)
j=1

Lorsquil est initialis dans un tat quelconque sc , ltat nal sk sexprime de
la manire suivante :

k
sk = Ak sc + Aj1 Bdkj (5.18)
j=1

Pour que cet tat sk soit gal ltat de dpart sc et que celui-ci devienne donc
ltat de circulation, il faut et il sut que :

- . 
k
I Ak sc = Aj1 Bdkj (5.19)
j=1

o I est la matrice identit de dimension .


Ainsi, en introduisant ltat s0k du codeur aprs initialisation 0
- .1 0
sc = I Ak sk (5.20)

Ceci nest possible qu condition que la matrice (I Ak ) soit inversible : cest


la condition dexistence de ltat de circulation.
En conclusion, sil existe, ltat de circulation sobtient en deux tapes. La
premire consiste coder la trame de k bits en entre aprs avoir initialis le
codeur ltat zro et conserver ltat de terminaison. La seconde se rsume
dduire ltat de circulation du prcdent tat de terminaison et dune table
(obtenue par linversion de I Ak ).
5. Les codes convolutifs et leur dcodage 193

Prenons pour exemple le code systmatique rcursif prcdemment utilis.


Puisquil sagit dun code binaire, addition et soustraction sont quivalentes :
ltat de circulation existe si I + Ak est inversible. La matrice A est telle
que A7 est gale I. Ainsi, si k est un multiple de 7(= 2 1), I + Ak est
nulle et donc non-inversible : ce cas est viter. Une autre consquence est
que Ak = Ak mod 7 : il sut de calculer une fois pour toutes les 6 tables de
transformation dtat associes aux 6 valeurs possibles de (I Ak )1 , de les
stocker et de lire la bonne table, aprs calcul de k mod 7. La table du code
CSRC 8 tats de polynmes gnrateurs [1, (1 + D2 + D3 )/(1 + D + D3 )] est
donne dans le tableau (5.2).
XX
XXX k mod 7
XXX 1 2 3 4 5 6
s0k XX
0 0 0 0 0 0 0
1 6 3 5 4 2 7
2 4 7 3 1 5 6
3 2 4 6 5 7 1
4 7 5 2 6 1 3
5 1 6 7 2 3 4
6 3 2 1 7 4 5
7 5 1 4 3 6 2

Table 5.2 Table du code CSRC de polynmes gnrateurs [1, (1 + D2 + D3 )/(1 +


D +D3 )] fournissant ltat de circulation en fonction de k mod 7 (k tant la longueur
de la trame en entre) et de ltat terminal s0k obtenu aprs un encodage initialis
ltat 0.

Une mthode simple pour le codage selon un treillis circulaire se rsume en


cinq tapes, aprs vrication de lexistence de ltat de circulation :
1. initialiser le codeur ltat 0 ;
2. coder la trame pour obtenir ltat nal s0k ;
3. calculer ltat sc de circulation partir des tables dj calcules et sto-
ckes ;
4. initialiser le codeur ltat sc ;
5. coder la trame et transmettre les redondances calcules.

5.5.2 Poinonnage
Certaines applications ne peuvent allouer que peu de place la partie redon-
dante des mots de code. Hors, par construction, le rendement naturel dun code
convolutif systmatique est m/(m + n), o m est le nombre de bits de lentre
di du codeur et n est le nombre de bits de sortie. Il est donc maximum lorsque
n = 1 et devient R = m/(m + 1). Des rendements levs ne peuvent donc tre
obtenus quavec des valeurs importantes de m. Malheureusement, le nombre de
194 Codes et turbocodes

transitions partant dun nud quelconque du treillis est 2m . Autrement dit, la


complexit du treillis, donc du dcodage, crot de manire exponentielle avec
le nombre de bits lentre du codeur. Cette solution nest donc, en gnral,
pas satisfaisante. Elle est souvent carte au prot dune technique au pouvoir
de correction lgrement plus faible mais plus facile mettre en uvre : le
poinonnage.
La technique du poinonnage est couramment utilise pour obtenir des ren-
dements levs. Elle consiste utiliser un codeur de faible valeur de m (1 ou
2 par exemple), pour conserver une complexit raisonnable de dcodage, mais
ne transmettre quune partie des bits cods. Un exemple est propos en -
gure 5.25. Dans cet exemple, un codeur de rendement 1/2 produit des sorties
di et ri chaque instant i. Seuls 3 bits sur 4 sont transmis, ce qui conduit un
rendement global de 2/3. Le motif suivant lequel les bits sont poinonns est
appel masque de poinonnage.

d0 r 0 d1 r 1 d2 r 2 d3 r 3 di ri dk2 rk2 dk1 rk 1

Figure 5.25 Poinonnage dun code systmatique pour obtenir un rendement 2/3.

Dans le cas des codes systmatiques, cest gnralement la redondance qui


est poinonne. La gure 5.26 dcrit le treillis du code [1, (1 + D2 + D3 )/(1 +
D + D3 )] rsultant dune opration de poinonnage suivant le masque de la
gure 5.25. Les X reprent les bits qui ne sont pas transmis et qui ne
pourront donc tre utiliss pour le dcodage.
00 0X 00 0X 00
(000)
11 1X 11
1X 11
(001)
0X 00
11 1X
01 0X 01
(010)
10 1X 10
1X 10
(011) 1X
0X 01
10
1X 10
(100)
01 0X 01
0X 0X 01
(101) 1X 10
11
1X 11
(110) 00 0X 00
0X 00
(111) 1X 11

di ri di=0
di ri di=1

Figure 5.26 Diagramme en treillis du code rcursif poinonn pour un rendement


2/3.

La technique de dcodage la plus couramment utilise consiste prendre le


dcodeur du code originel en insrant des valeurs neutres la place des lments
poinonns. Les valeurs neutres sont des valeurs reprsentatives dinformations
5. Les codes convolutifs et leur dcodage 195

a priori non connues. Dans le cas usuel dune transmission utilisant une si-
gnalisation antipodale (+1 pour le 1 logique, -1 pour le 0 logique), la valeur
nulle (0 analogique) simpose comme valeur neutre.
Lintroduction dun poinonnage augmente le rendement du code mais di-
minue bien videmment son pouvoir de correction. Ainsi, dans lexemple de la
gure 5.26, la distance libre du code est rduite de 6 4 (une squence RTZ
associe est mise en vidence sur la gure). De mme la gure 5.27, o sont re-
prsentes les courbes de taux derreurs du code [1, (1+D2 +D3 )/(1+D +D3 )]
pour des rendements de 1/2, 2/3, 3/4 et 6/7, montre lvidence une diminu-
tion du pouvoir de correction avec laugmentation du rendement du code.

1e+00

1e01

1e02

1e03
Taux derreur

1e04

1e05 Modulation de phase 2 tats noncode TEB


R=1/2 TEB
R=2/3 TEB
1e06 R=3/4 TEB
R=6/7 TEB
R=1/2 TEP
1e07 R=2/3 TEP
R=3/4 TEP
R=6/7 TEP
1e08
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6
Eb/No (dB)

Figure 5.27 Performance simule dun code CSRC 8 tats poinonn, en fonction
de son rendement.

Le choix du masque de poinonnage inue bien videmment sur les per-


formances du code. Il est ainsi possible de privilgier une partie de la trame,
transportant des donnes sensibles, en la poinonnant faiblement au dtriment
dune autre partie qui sera plus fortement poinonne. Un masque rgulier est
cependant souvent choisi car il est simple mettre en uvre.
Le poinonnage est donc une technique souple et facile mettre en uvre. Le
codeur et le dcodeur restant identiques quel que soit le poinonnage appliqu,
il est possible de modier le rendement de codage tout moment. Certaines
applications utilisent cette souplesse pour adapter, au l de leau, le rendement
au canal et/ou limportance des donnes transmises.
196 Codes et turbocodes

5.6 Bibliographie
[5.1] P. Elias, Coding for Noisy Channels , IRE conv. Rec., vol. 3, pt. 4,
pp. 37-46, 1955.
[5.2] J. M. Wozencraft, Sequential Decoding for Reliable Communica-
tion , IRE Nat. Conv. Rec., vol. 5, pt. 2, pp. 11-25, 1957.
[5.3] R. M. Fano, a Heuristic Discussion of Probabilistic Decoding , IEEE
Transaction on Information Theory, vol. IT-9, pp. 64-74, April 1963.
[5.4] A. J. Viterbi, Error bounds for convolutional codes and an asymp-
totically optimum decoding algorithm , IEEE Transaction on Information
Theory, vol. IT-13, pp. 260-269, Apr. 1967.
[5.5] L. R. Bahl, J. Cocke, F. Jelinek and J. Raviv, Optimal Decoding
of Linear Codes for Minimizing Symbol Error Rate , IEEE Transactions on
Information Theory, vol. IT-20, pp. 284-287, March 1974.
[5.6] G. D. Forney., Convolutional codes I : Algebraic structure , IEEE
Transactions on Information Theory, vol. IT-16, pp. 720-738, November 1970.
[5.7] C. Berrou, A. Glavieux and P. Thitimajshima, Near Shannon li-
mit error-correcting coding and decoding : turbo-codes , Proceedings of IEEE
ICC93, Geneva, pp. 1064-1070, 1993.
[5.8] R. Johanneson and K. Sh. Zigangirov, Fundamentals of Convolutional
Coding , IEEE Press.
[5.9] P. Thitimajshima, Les codes convolutifs rcursifs systmatiques et leur
application la concatnation parallle, thse de doctorat en lectronique, n
dordre 284, Universit de Bretagne Occidentale, Dcembre 1993.
[5.10] A. Glavieux, Codage de canal, des bases thoriques aux turbocodes,
Herms-Science, 2005.
[5.11] G. D. Forney, The Viterbi algorithm , Proceedings of the IEEE,
vol. 61, n3, pp. 268-278, March 1973.
[5.12] G. Battail, Pondration des symboles dcods par lalgorithme de
Viterbi , Annales des Tlcommunications, vol. 42, n 1-2, pp. 31-38, Jan.-
Fv. 1987.
[5.13] J. Hagenauer and P. Hoeher, A Viterbi algorithm with soft-decision
outputs and its applications , IEEE Global Communications Conference, Glo-
becom89, Dallas, Texas, Nov. 1989, pp. 1680-1686.
[5.14] C. Berrou, P. Adde, E. Angui and S. Faudeuil, A low complexity soft-
output Viterbi decoder architecture , Proceedings of IEEE ICC93, Geneva,
pp. 737-740, 1993.
[5.15] H. H. Ma and J. K. Wolf, On tail biting convolutional codes , IEEE
Transactions on Communications, vol. COM-34, pp. 104-111, Feb. 1986.
Chapitre 6

Concatnation de codes

Dans les chapitres prcdents, des lois lmentaires de codage telles que
BCH, Reed-Solomon ou CSRC ont t prsentes. La plupart de ces codes
lmentaires sont asymptotiquement bons, en ce sens que leurs distances mini-
males de Hamming (DMH) peuvent tre rendues aussi grandes que lon veut, en
augmentant susamment le degr des polynmes gnrateurs. La complexit
des dcodeurs est malheureusement rdhibitoire pour les degrs de polynmes
qui garantiraient les DMH requises par les applications pratiques.
Un moyen simple de disposer de codes grande DMH et nanmoins aisment
dcodables est de combiner plusieurs codes lmentaires de taille raisonnable,
de telle sorte que le code global rsultant possde un pouvoir de correction lev.
Le dcodage seectue par tapes, chacune dentre elles correspondant une
des tapes de codage lmentaire. Le premier schma de codage composite fut
propos par Forney durant son travail de thse en 1965, et appel concatnation
de codes [6.1]. Dans ce schma, un premier codeur, dit codeur extrieur, fournit
un mot de code qui est ensuite recod par un deuxime codeur, dit codeur
intrieur. Si les deux codes sont systmatiques, le code concatn est lui-mme
systmatique. Dans la suite de ce chapitre, seuls des codes systmatiques seront
considrs.
La gure 6.1(a) reprsente un code concatn, tel quimagin par Forney,
et le dcodeur par tapes correspondant. Le choix le plus judicieux des codes
constituants se porte sur un code algbrique, typiquement Reed-Solomon, pour
le code extrieur, et un code convolutif pour le code intrieur. Le dcodeur
intrieur est alors le dcodeur de Viterbi, qui tire aisment prot des valeurs
souples fournies par le demodulator, et le dcodeur extrieur, qui travaille sur
des symboles de plusieurs bits (par exemple 8 bits), peut saccommoder der-
reurs en rafales la sortie du premier dcodeur. Une fonction de permutation
ou dentrelacement insre entre les deux codeurs, et sa fonction inverse place
entre les deux dcodeurs, peuvent augmenter trs nettement la robustesse du
code concatn (gure 6.1(b)). Un tel schma de codage a rencontr beaucoup
de succs dans des applications aussi varies que les transmissions en espace
198 Codes et turbocodes

lointain et la diusion de tlvision numrique, satellitaire et terrestre. Cest


en particulier le schma de codage adopt dans de nombreux pays pour la
tlvision numrique terrestre [6.2].

Figure 6.1 Code concatn en srie, (a) sans et (b) avec permutation intercalaire.
Dans les deux cas, la sortie du codeur extrieur est entirement recode par le codeur
intrieur.

La concatnation de codes, dans cette premire version, est dite aujourdhui


concatnation srie (CS). Son dcodage, tel que reprsent dans les gures 6.1
nest pas optimal. En eet, mme si, localement, les deux dcodeurs lmen-
taires sont optimaux, lenchanement simple de ces deux dcodages nest pas
globalement optimal, le dcodeur intrieur ne tirant pas prot de la redon-
dance produite par le code extrieur. Cest cette observation, plutt tardive
dans lhistoire de la thorie de linformation, qui a conduit au dveloppement
de nouveaux principes de dcodage, commencer par le turbo-dcodage. On
sait maintenant dcoder, de manire quasi-optimale, toutes sortes de schmas
concatns, la seule condition que les dcodeurs des codes lmentaires soient
de type SISO (soft-in/soft-out). Dans ce cens, on peut remarquer que le concept
de concatnation a beaucoup volu ces dernires annes, pour aller vers une
notion plus large de codage multi-dimensionnel. Ici, la dimension dun code,
ne pas confondre avec la longueur (k) du message dinformation que lon ap-
pelle galement dimension, est le nombre de codes lmentaires utiliss dans la
production du mot de code nal.

Figure 6.2 Concatnation parallle de codeurs systmatiques.

Une nouvelle forme de concatnation, dite concatnation parallle (CP), a


t introduite au dbut des annes 1990 pour laborer les turbocodes [6.3]. La
6. Concatnation de codes 199

gure 6.2 reprsente une CP de dimension 2, qui est la dimension classique


des turbocodes. Dans ce schma, le message est cod deux fois, dans son ordre
naturel et dans un ordre permut. La partie redondante du mot de code est
forme par la runion des sorties redondantes des deux codeurs. La CP dire
de la CS par plusieurs aspects, dtaills dans la section suivante.

6.1 Concatnation parallle et concatnation s-


rie
En se limitant la dimension 2, la CP , qui associe deux codes de rendements
lmentaires R1 (code C1 ) et R2 (code C2 ), a un rendement global de codage :
R1 R2 R1 R2
Rp = = (6.1)
R1 + R2 R1 R2 1 (1 R1 )(1 R2 )
Ce rendement est plus lev que le rendement global Rs dun code concatn
en srie (Rs = R1 R2 ), pour des valeurs identiques de R1 et R2 , et la dirence
est dautant plus grande que les rendements de codage sont faibles. On en d-
duit qu mme pouvoir de correction des codes lmentaires, la concatnation
parallle ore un meilleur rendement de codage, mais cet avantage samenuise
lorsque les rendements considrs tendent vers 1. Lorsque la dimension du code
composite augmente, lcart entre Rp et Rs augmente galement. Par exemple,
trois codes lmentaires de rendement 1/2 forment un code concatn de ren-
dement global 1/4 en parallle et 1/8 en srie.Voil pourquoi il ne semble pas
avantageux de porter la dimension dun code concatn en srie au-del de 2,
sauf pour des rendements trs proches de lunit.
Toutefois, avec la CS, la partie redondante dun mot trait par le dcodeur
extrieur a bnci de la correction du ou des dcodeur(s) qui le prcde(nt).
premire vue donc, le pouvoir de correction dun code concatn en srie
semble tre suprieur celui dun code concatn en parallle, dans lequel les
valeurs reprsentatives de la partie redondante ne sont jamais corriges. En
dautres termes, la DMH dun code concatn en srie doit normalement tre
suprieure celle dun code concatn en parallle. On se trouve donc devant
le dilemme nonc dans le chapitre 1 : la CP ache une meilleure performance
dans la zone de convergence (prs de la limite thorique) car le rendement de
codage est plus favorable, la CS se comporte mieux faible taux derreurs
grce une plus grande DMH. Des solutions de codage base de CS de codes
convolutifs ont t tudies [6.3], qui peuvent tre une alternative intressante
aux turbocodes classiques, lorsque sont recherchs de faibles taux derreurs. Les
codes convolutifs concatns en srie ne seront toutefois pas dtaills dans la
suite de cet ouvrage.
Lorsque les parties redondantes des mots de codes intrieur et extrieur
font toutes deux lobjet dun codage supplmentaire, la concatnation est dite
doublement srie. Lexemple le plus connu dune telle structure de codage est
le code produit, qui met en oeuvre des codes BCH (voir chapitres 4 et 8). Des
200 Codes et turbocodes

structures mixtes, combinant concatnations parallle et srie ont galement


t proposes [6.4]. De plus, des codes lmentaires concatns peuvent tre de
nature dirente, par exemple un code convolutif et un code BCH [6.5]. On
parle alors de code concatn hybride. Ds lors que les dcodeurs lmentaires
acceptent et produisent des valeurs pondres, toutes sortes de schmas mixtes
et/ou hybrides peuvent tre imagins.
Alors que la CS peut utiliser des codes systmatiques ou non systmatiques
indiremment, la concatnation parallle emploie des codes systmatiques. Sil
sagit de codes convolutifs, au moins lun de ces codes doit tre rcursif, pour
une raison fondamentale lie au poids minimal dentre wmin , qui nest que 1
pour les codes non rcursifs mais vaut 2 pour les codes rcursifs (cf. chapitre
5). Pour nous en convaincre, observons la gure 6.3 qui reprsente deux codes
systmatiques non rcursifs, concatns en parallle. La squence dentre est
tout 0 (squence de rfrence) except en une position. Cet unique 1
perturbe la sortie du codeur C1 pendant un laps de temps court, gal la
longueur de contrainte 4 du codeur. Linformation redondante Y1 est pauvre,
relativement cette squence particulire, car elle ne contient que 3 valeurs
direntes de 0. Aprs permutation, quelquelle soit, la squence est toujours
tout 0 , except en une seule position. De nouveau, ce 1 perturbe la sortie
du codeur C2 pendant un laps de temps gal la longueur de contrainte, et
la redondance Y2 dlivre par le second code est aussi peu informative que la
premire. En fait, la distance minimale de ce code deux dimensions nest pas
plus leve que celle dun code unique, de mme rendement que celui du code
concatn. Si lon remplace au moins lun des deux codeurs non rcursifs par
un codeur rcursif, la squence tout 0 sauf en une position nest plus une
squence RTZ pour ce codeur rcursif, et la redondance quil produit alors est
de poids bien plus lev.
Ce qui vient dtre expliqu sur la CP de codes convolutifs non rcursifs
laisse imaginer que le choix de codes lmentaires pour la CP en gnral est
restreint. titre de nouvel exemple, construisons un code concatn en parallle
partir du code de Hamming tendu dni par la gure 1.1 et la table de codage
1.1. Le message dinformation contient 16 bits, qui sont rangs dans un tableau
carr 4x4 (gure 6.4(a)). Chaque ligne, ainsi que chaque colonne, est code par
le code lmentaire de Hamming. Les bits de parit horizontaux et verticaux

sont nots ri,j et ri,j , respectivement Le rendement de codage global est 1/3. Le
dcodage dun tel code peut tre men suivant les principes du turbo-dcodage
(dcodage local optimal selon le maximum de vraisemblance et changes rpts
dinformations extrinsques).
La DMH du code est donne par le motif derreurs de poids dentre 1 (-
gure 6.4(b)). Quelle que soit la place du 1 dans le message dinformation, le
poids est 7. Le facteur de mrite Rdmin est donc gal 7x(1/3), comparer
avec le facteur de mrite du code lmentaire 4x(1/2). Le gain asymptotique
na donc pas t extraordinairement augment par le truchement de la conca-
tnation (prcisment 0,67 dB), et cela sest fait par une rduction importante
du rendement de codage. Si lon souhaite conserver le mme rendement global
6. Concatnation de codes 201

Figure 6.3 La concatnation parallle de codes systmatiques non rcursifs constitue


un code pauvre vis--vis des squences dinformation de poids 1. Dans cet exemple,
les symboles de redondance Y1 et Y2 ne contiennent chacun que 3 valeurs direntes
de 0.

Figure 6.4 Concatnation parallle de codes de Hamming tendus (rendement glo-


bal : 1/3). droite : un motif derreurs de poids dentre 1 et de poids total 7.

de 1/2, une partie de la redondance doit tre poinonne. On peut choisir, par
exemple, de ne pas transmettre les 16 symboles prsents dans les deux dernires
colonnes et les deux dernires lignes du tableau de la gure 6.4(a). La DMH
chute alors la valeur 3, cest--dire moins que la DMH du code lmentaire.
La CP na donc pas dintrt dans ce cas.
Toujours partir du code de Hamming tendu, une concatnation double-
ment srie peut tre labore sous la forme dun code produit (gure 6.5(a)).
Dans ce schma, les parties redondantes des mots de code horizontaux et verti-
caux sont elles-mmes recodes par des codes lmentaires, qui produisent des
symboles de redondance nots wi,j . Une proprit algbrique avantageuse de
202 Codes et turbocodes

ce code produit est lidentit des symboles de redondance issus du deuxime


niveau de codage, dans les directions horizontale et verticale. La DMH du code,
qui a un rendement global 1/4, est nouveau donne par les motifs derreurs
de poids dentre 1 et vaut 16, soit le carr de la DMH du code lmentaire
(gure 6.5(b)). Le facteur de mrite Rdmin = 4 a donc t nettement augment
par rapport la concatnation parallle. Tenter daugmenter le rendement de
ce code, par un poinonnage des symboles de redondance, tout en conservant
une bonne DMH est vou lchec.

Figure 6.5 Concatnation doublement srie (code produit) de codes de Hamming


tendus (rendement global : 1/4). droite : un motif derreurs de poids dentre 1 et
de poids total 16.

En conclusion, la concatnation parallle ne saccommode pas de nimporte


quels codes lmentaires. Seuls, aujourdhui, les codes convolutifs rcursifs sys-
tmatiques sont utiliss dans ce type de concatnation, de dimension 2 le plus
souvent. La concatnation srie peut orir de grandes DMH. Le choix des codes
est plus large : codes convolutifs, rcursifs ou non, codes BCH ou de Reed-
Solomon. Cependant, mmes rendements de codage des codes lmentaires,
la concatnation srie a un rendement global plus faible que la concatnation
parallle.

6.2 Concatnation parallle et codage LDPC


Les codes LDPC, qui sont dtaills dans le chapitre 9, sont des codes dont les
lignes et les colonnes de la matrice de contrle contiennent peu de 1. Les codes
LDPC peuvent tre vus comme une concatnation multiple de n k relations
de parit contenant peu de variables. Ce nest pas ici une concatnation au sens
o nous lavons dni plus haut, puisque les relations de parit contiennent plu-
sieurs variables de redondance et que ces variables apparaissent dans plusieurs
relations. On ne peut donc assimiler les codes LDPC des schmas usuels de
concatnation srie ou parallle. En revanche, on peut, linstar de MacKay
6. Concatnation de codes 203

[6.6], observer quun turbocode est un code LDPC. Un code CSR de polynmes
gnrateurs GX (D) (rcursivit) et GY (D) (redondance), dont lentre est X
et la sortie redondante Y , est caractrise par la relation de parit glissante :

GY (D)X(D) = GX (D)Y (D) (6.2)

En faisant appel la technique de fermeture circulaire, la matrice de contrle


de parit prend une forme trs rgulire, telle que celle reprsente en gure 6.6
pour un rendement de codage 1/2, et en choisissant GX (D) = 1 + D + D3 et
GY (D) = 1 + D2 + D3 . Un code CSRC est donc un code LDPC car la matrice
de contrle est creuse. Ce nest certes pas un bon code LDPC, car la matrice de
contrle ne respecte pas certaines proprits sur la place des 1. En particulier,
les 1 dune mme ligne sont trs voisins les uns des autres, ce qui nest pas
favorable la mthode de dcodage par propagation de croyance.

Figure 6.6 Matrice de contrle dun code convolutif terminaison circulaire. Un


code convolutif, de type CSRC en particulier, peut tre vu comme un code LDPC
car la matrice de contrle est creuse.

Une concatnation parallle de codes CSRC, cest--dire un turbocode, est


aussi un code LDPC, puisque elle associe des codes lmentaires qui sont du
type LDPC. Il y a, bien sr, plus de degrs de libert dans la construction dun
code LDPC, car chaque 1 de la matrice de contrle peut tre plac indpen-
damment des autres. En revanche, le dcodage dun code convolutif, par le biais
dun algorithme bas sur le treillis ne connat pas le problme de corrlation
entre symboles successifs quun dcodage de type propagation de croyance sou-
lverait, sil tait appliqu un code convolutif simple. Un turbocode ne peut
donc tre dcod comme un code LDPC.

6.3 Les permutations


Les fonctions de permutation ou dentrelacement, utilises entre codeurs
lmentaires dans un schma concatn, ont un double rle. Dune part, elles
assurent, la sortie de chaque dcodeur lmentaire, une dispersion temporelle
des erreurs qui peuvent tre en produites en rafales. Ces paquets derreurs
204 Codes et turbocodes

deviennent alors erreurs isoles pour le dcodeur qui suit, avec des eets de
corrlation bien amoindris. Cette technique de dispersion des erreurs est utilise
dans un cadre plus large que celui du codage de canal. On lutilise avec prot
par exemple pour rduire les eets des attnuations plus ou moins longues
dans les transmissions aectes dvanouissements, et plus gnralement dans
des situations o des perturbations peuvent altrer des symboles conscutifs.
Dautre part, en liaison troite avec les caractristiques des codes composants,
la permutation est conue pour que la DMH du code concatn soit la plus
grande possible. Cest une problmatique de pure mathmatique qui associe
gomtrie, algbre et combinatoire et qui na pas encore, dans la plupart des
cas, trouv de rponse dnitive. Les sections 7.3.2 et ?? dveloppent le thme
de la permutation pour les turbocodes et du graphe pour les codes LDPC,
respectivement.

6.4 Turbo mots croiss


Pour terminer ce chapitre, voici un exemple de concatnation parallle bien
connu de tous : les mots croiss. Une grille dont le contenu a t fortement altr
lors de sa retranscription est reprsente en gure 6.7. Nous disposons heureu-
sement dune dnition correcte pour chaque ligne et pour chaque colonne et
dun dictionnaire de synonymes.

Figure 6.7 Une grille de mots croiss dont le contenu est erron et dont les dnitions
sont correctes.

Pour corriger (ou dcoder) cette grille, un travail itratif en ligne et en


colonne doit tre eectu. La rgle de dcodage lmentaire est la suivante :
Sil existe un mot du dictionnaire, synonyme ou quivalent la dnition
donne, ne dirant du mot contenu dans la grille que par une lettre au plus,
alors ce synonyme est adopt .
Les dnitions horizontales permettent de commencer une correction en
ligne de la grille (gure 6.8(a)) :
I. THETA est bien une lettre grecque.
II. En remplaant le R par un V, nous obtenons AVION, synonyme da-
ronef.
III. Il y a srement plus dune lettre errone.
6. Concatnation de codes 205

Figure 6.8 Premire itration du processus de dcodage ligne - colonne.

IV. SENTE est un petit chemin.


V. Il ny a pas de synonyme vident.
lissue de ce dcodage ligne, trois mots sont corrects ou ont t corrigs,
et deux sont encore inconnus. laide des dnitions verticales, un dcodage
colonne peut tre maintenant ralis (gure 6.8(b)) :
1. VALSE rpond la dnition.
2. En remplaant le H par un E, nous obtenons EVIER.
3. Des LIENS sont des attaches.
4. Il y a au moins 2 lettres errones. Aucune correction possible.
5. Les ANTES sont des piliers dans les temples grecs ou romains.
lissue de ce dcodage, il reste encore des mots inconnus et il faut procder
une deuxime itration du processus de dcodage ligne - colonne (gure 6.9).

Figure 6.9 Deuxime itration du processus de dcodage ligne - colonne.

Le dcodage ligne conduit au rsultat suivant (gure 6.9(a)) :


I. DELTA est aussi une lettre grecque.
II. AVION est correct.
III. Il y a toujours au moins 2 lettres errones.
206 Codes et turbocodes

IV. SENTE est correct.


V. Les ERSES sont des anneaux.
Aprs cette tape, il reste encore une ligne incorrecte. Il est possible de la
corriger avec un nouveau dcodage colonne (gure 6.9(b)).
1. Le ballet est une DANSE.
2. EVIER est correct.
3. LIENS est correct.
4. TONTE est synonyme de taille.
5. ANTES est correct.
lissue de cet ultime dcodage, le mot inconnu de la ligne III est identi : il
sagit de NIENT qui est bien synonyme de rfutent .

Un certain nombre de constatations peuvent tre faites aprs cette exp-


rience de dcodage de code concatn en parallle.
Pour atteindre le rsultat correct, deux itrations du dcodage ligne et du
dcodage colonne ont t ncessaires. Il aurait t dommage de sarrter
aprs une itration. Cest pourtant bien ce que lon fait dans le cas dun
code concatn classique tel que celui de la gure 6.1.
Un mot correct au dpart (THETA est bien une lettre grecque) sest
avr faux. De mme, une correction eectue lors de la premire tape
(VALSE) sest rvle errone. Il faut donc considrer les rsultats in-
termdiaires avec prudence et viter les dcisions premptoires. Dans les
dcodeurs itratifs modernes, cette prudence est mesure par une proba-
bilit qui nest jamais exactement 0 ou 1.

6.5 Bibliographie
[6.1] G. D. Forney Jr., Performance of concatenated codes , Key papers in
the development of coding theory edited by E. R. Berlekamp, pp. 90-94, IEEE
Press, 1974.
[6.2] DVB-Terrestrial, ETSI EN 302 296 V1.1.1 (2004-04).
[6.3] S. Benedetto, D. Divsalar, G. Montorsi and F. Pollara, Serial conca-
tenation of interleaved codes : performance analysis, design, and iterative de-
coding , IEEE Trans. Info. Theory, vol. 44, no. 3, pp. 909-926, May 1998.
[6.4] K. R. Narayanan and G. L. Stber, Selective serial concatenation of
turbo codes , IEEE Comm. Letters, vol. 1, no. 5, pp. 136-139, Sept. 1997.
[6.5] P. Adde, R. Pyndiah and C. Berrou, Performance of hybrid turbo
codes , Elect. Letters, vol. 32, no. 24, pp. 2209-2210, Nov. 1996.
[6.6] D. J. C. MacKay, Good error-correcting codes based on very sparse
matrices , IEEE Trans. Info. Theory, vol. 45, no. 2, pp. 399-431, March 1999.
Chapitre 7

Turbocodes convolutifs

Le pouvoir de correction dun code convolutif saccrot lorsque la longueur


du registre de codage augmente. Cela est mis en vidence dans la gure 7.1, qui
fournit la performance de quatre codes CSR de mmoires respectives = 2, 4, 6
et 8, pour des rendements 1/2, 2/3, 3/4 et 4/5, avec un dcodage selon lalgo-
rithme MAP. Pour chacun des rendements, le pouvoir de correction samliore
avec laugmentation de , au dessus dun certain rapport signal bruit que
lon peut confondre presque parfaitement avec la limite thorique calcule dans
le chapitre 3 et identie ici par une che. Pour satisfaire les applications les
plus courantes du codage de canal, une mmoire de lordre de 30 ou 40 serait
ncessaire ( partir dune certaine longueur de registre et pour un rendement
de codage 1/2, la DMH (distance minimale de Hamming) dun code convolutif
de mmoire est de lordre de grandeur de ). Si lon savait dcoder aisment
un code convolutif plus dun milliard dtats, on ne parlerait plus beaucoup
de codage de canal et ce livre nexisterait pas.
Un turbocode est un artice de code visant imiter un code convolutif
de grande mmoire . Il est construit suivant le principe de ladage diviser
pour rgner, cest--dire par association de plusieurs petits codes CSR dont les
dcodages particuliers sont de complexit raisonnable. Un change judicieux
dinformation entre les dcodeurs lmentaires permet au dcodeur composite
dapprocher la performance du dcodage maximum de vraisemblance.

7.1 Lhistoire des turbocodes


Linvention des turbocodes nest pas laboutissement dun dveloppement
mathmatique. Elle est le rsultat dune dmarche intuitive et exprimentale
dont lorigine est trouver dans les travaux de quelques chercheurs europens :
Grard Battail, Joachim Hagenauer et Peter Hoeher qui, la n des annes 80
[7.1-7.4], soulignaient lintrt du traitement probabiliste dans les rcepteurs.
Dautres auparavant, principalement aux tats-Unis : Peter Elias [7.5], Michael
208 Codes et turbocodes

Figure 7.1 Performance de codes convolutifs systmatiques rcursifs (CSR) pour


dirents rendements et quatre valeurs de la mmoire de code . Comparaison avec
les limites de Shannon.

Tanner [7.6], Robert Gallager [7.7], etc. avaient imagin plus tt des procds
de codage et de dcodage prcurseurs des turbocodes.
Dans un laboratoire de lcole nationale suprieure des tlcommunications
(ENST) de Bretagne, Claude Berrou et Patrick Adde cherchaient transcrire
lalgorithme de Viterbi sortie pondre (SOVA : Soft-Output Viterbi Algo-
rithm), propos dans [7.2], en transistors MOS, de la manire la plus simple
possible. Une solution convenable [7.8] fut trouve aprs deux annes qui per-
mirent ces chercheurs de se forger une opinion sur le dcodage probabiliste.
Claude Berrou, puis Alain Glavieux poursuivirent ltude et observrent, la
suite de Grard Battail, quun dcodeur entre et sortie pondres pouvait
tre considr comme un amplicateur de rapport signal bruit et cela les en-
couragea mettre en uvre des concepts communment utiliss dans les am-
plicateurs, principalement la contre-raction. La mise au point des turbocodes
passa par de nombreuses tapes trs pragmatiques et aussi par lintroduction de
nologismes, comme concatnation parallle ou information extrinsque ,
aujourdhui communs dans le jargon de la thorie de linformation. Le dpt
du brevet en 1991 [7.9], et surtout la publication en 1993 [7.10] dmontrant une
performance 0,5 dB de la limite de Shannon, secoua la communaut du co-
dage. Un gain de prs de 3 dB, par rapport aux solutions alors existantes, venait
dtre apport par une petite quipe inconnue, franaise de surcrot (France,
pays de la rigueur mathmatique versus turbocodes, invention pour le moins
empirique). Il sensuivit une trs sensible volution des habitudes, comme le
souligne Calderbank dans [7.11, p. 2573] : It is interesting to observe that
the search for theoretical understanding of turbo codes has transformed coding
theorists into experimental scientists [ Il est intressant dobserver que la
recherche de justication thorique des turbocodes a conduit les experts de la
thorie des codes se tourner vers lexprimentation ].
7. Turbocodes convolutifs 209

On trouvera dans [7.12] une chronologie dtaille des ides successives qui
apparurent dans la mise au point des turbocodes. Cette nouvelle technique de
codage et de dcodage fut dabord baptise turbo-code, avec le tiret pour si-
gnier quil sagissait dun code dcod la manire turbo (par analogie avec
le moteur turbo qui utilise les gaz dchappement pour en augmenter sa puis-
sance). Le tiret tant peu usit dans la langue anglaise, cela devint turbo code,
cest--dire le code turbo , ce qui na pas beaucoup de sens. En franais
aujourdhui, turbocode scrit en un seul mot.

7.2 Concatnation multiple de codes CSR


Les codes alatoires ont toujours constitu, depuis les travaux prcurseurs de
Shannon, une rfrence pour le codage correcteur derreurs (voir chapitre 3.1.5).
Le codage alatoire systmatiquedun bloc de k bits dinformation, conduisant
un mot de code de longueur n, peut consister, en premire tape et une fois
pour toutes, tirer au hasard et mmoriser k marqueurs binaires de n k
bits, dont ladresse de mmorisation est note i (0 i k 1). La redondance
associe un bloc quelconque dinformation est alors forme par la sommation
modulo 2 de tous les marqueurs dont ladresse i est telle que le i-ime bit din-
formation vaut 1. En dautres termes, les k marqueurs constituent les bases
dun espace vectoriel de dimension k. Le mot de code est nalement constitu
par la concatnation des k bits dinformation et des nk bits de redondance. Le
rendement R du code est k/n. Cette construction du mot de code, trs simple,
sappuie sur la proprit de linarit de laddition et conduit des distances
minimales leves pour des valeurs susamment grandes de n k. Parce que
deux mots de code sont dirents par au moins un bit dinformation et que
la redondance est tire au hasard, la distance minimale moyenne est 1 + nk 2 .
Cependant, la distance minimale de ce code tant une variable alatoire, ses
direntes ralisations peuvent tre infrieures cette grandeur. Une approxi-
mation simple et raliste de la distance minimale eective est nk 4 .
Un moyen de construire un codeur quasiment alatoire est reprsent en
gure 7.2. Il sagit dune concatnation parallle multiple de codes Convolutifs
Systmatiques Rcursifs Circulaires (CSRC, voir chapitre 5) [7.13]. La squence
de k donnes binaires est code N fois par N codeurs CSRC, dans un ordre
dirent chaque fois. Les permutations j sont tires au hasard, excepte
la premire qui peut tre la permutation identit. Chaque codeur lmentaire
produit Nk symboles de redondance (N tant un diviseur de k), le rendement
global du code concatn tant 1/2.
La proportion des squences dentre dun codeur rcursif construit partir
dun gnrateur pseudo-alatoire de mmoire , initialement positionn ltat
0, qui remettent le registre dans ce mme tat la n du codage, est :

p1 = 2 (7.1)

car il y a 2 tats de retour possibles, avec la mme probabilit. Ces squences,


210 Codes et turbocodes

appeles RTZ (Return To Zero, voir chapitre 5), sont des combinaisons linaires
de la squence RTZ minimale, qui est donne par le polynme de rcursivit
du gnrateur (1 + D + D3 dans le cas de la gure 7.2).

Figure 7.2 Concatnation parallle multiple de codes convolutifs systmatiques r-


cursifs circulaires (CSRC). Chaque codeur produit k/N symboles de redondance uni-
formment rpartis sur le treillis circulaire. Rendement de codage global : 1/2.

La proportion des squences RTZ pour le codeur multi-dimensionnel est


abaisse :
pN = 2N (7.2)
car il faut que la squence, aprs chaque permutation, reste RTZ pour les N
codeurs.
Les autres squences, de proportion 1 pN , produisent des mots de code
qui ont une distance d qui satisfait :
k
d> (7.3)
2N
Cette valeur du pire des cas suppose quune seule squence permute nest pas
RTZ et que la redondance Y prend la valeur 1 une fois sur deux en moyenne,
sur le cercle correspondant. Si lon prend par exemple N = 8 et = 3, on
obtient p8 107 et, pour des squences coder de longueur k = 1024, on a
dmin = 64, ce qui est une distance minimale bien susante si lon se rfre aux
courbes de la gure 3.6.
Le codage alatoire peut donc tre approch en utilisant de petits codes et
des permutations alatoires. Le dcodage peut tre eectu suivant le principe
turbo, dtaill dans la section 7.4 pour N = 2. Le schma de la gure 7.2 nest
7. Turbocodes convolutifs 211

toutefois pas utilis en pratique, pour des raisons lies la performance et


la complexit du dcodage. Tout dabord, le seuil de convergence du turbo-
dcodeur, cest--dire le rapport signal bruit partir duquel celui-ci peut
commencer corriger la plupart des erreurs, se dgrade lorsque la dimension
de la concatnation crot. En eet, le principe mme du turbo-dcodage oblige
considrer lun aprs lautre, de manire itrative, les codes lmentaires. Leur
taux de redondance diminuant lorsque la dimension du code composite crot, les
premires tapes du dcodage sont pnalises par rapport un code concatn
de simple dimension 2. Ensuite, la complexit et la latence du dcodeur sont
proportionnelles au nombre de codeurs lmentaires.

7.3 Les turbocodes


Fort heureusement, par rapport ce qui prcde, il nest pas ncessaire de
porter la dimension N une grande valeur. En remplaant la permutation ala-
toire 2 par une permutation judicieusement labore, de bonnes performances
peuvent tre obtenues en se limitant une dimension N = 2. Cest le principe
du turbocode.

Figure 7.3 Un turbocode binaire mmoire = 3 utilisant des codeurs CSR lmen-
taires identiques (polynmes 15, 13). Le rendement de codage naturel du turbocode,
sans poinonnage, est 1/3.

La gure 7.3 reprsente un turbocode, dans sa version la plus classique


[7.10]. Le message binaire dentre, de longueur k, est cod, dans son ordre
naturel et dans un ordre permut, par deux codeurs CSR appels C1 et C2 , qui
peuvent tre termins ou non. Dans cet exemple, les deux codeurs lmentaires
sont identiques (polynmes gnrateurs 15 pour la rcursivit et 13 pour la
construction de la redondance) mais ce nest pas une ncessit. Le rendement
de codage naturel, sans poinonnage, est 1/3. Pour obtenir des rendements
212 Codes et turbocodes

plus levs, un poinonnage des symboles de redondance Y1 et Y2 est eectu.


Un autre moyen de disposer de rendements plus levs est dadopter des codes
m-binaires (voir 7.5.2).
La fonction de permutation () portant sur un message de taille nie k, le
turbocode est par construction un code en bloc. Pour le distinguer toutefois
des codes algbriques concatns dcods la manire turbo , comme les
codes produits et que lon a appels plus tard turbocodes en bloc, ce schma de
turbocodage est dit convolutif ou encore, plus techniquement, PCCC (Parallel
Concatenated Convolutional Code).
Les arguments en faveur de ce schma de codage (dont certains ont dj t
introduits dans le chapitre 6) sont les suivants :
1. Un dcodeur de code convolutif est vulnrable aux erreurs survenant en
paquets. Coder le message deux fois, suivant deux ordres dirents (avant
et aprs permutation), cest rendre peu probable lapparition simultane
de paquets derreurs lentre des dcodeurs de C1 et de C2 . Si des er-
reurs groupes surviennent lentre du dcodeur de C1 , la permutation
les disperse dans le temps et elles deviennent des erreurs isoles, aisment
corrigibles, pour le dcodeur de C2 . Le raisonnement tient galement pour
les paquets derreurs lentre de ce second dcodeur, qui correspondent,
avant permutation, des erreurs isoles. Ainsi le codage bi-dimensionnel
rduit-il nettement, sur lune au moins des deux dimensions, la vuln-
rabilit du codage convolutif vis--vis des perturbations groupes. Mais
sur lequel des deux dcodeurs sappuyer pour prendre la dcision nale ?
Aucun critre ne permet daccorder une plus grande conance lun ou
lautre. La rponse est donne par lalgorithme turbo qui vite davoir
faire ce choix. Cet algorithme met en uvre des changes de probabi-
lits entre les deux dcodeurs et les contraint converger, au l de ces
changes, vers les mmes dcisions.
2. Comme on la vu dans la section 6.1, la concatnation parallle conduit
un rendement de codage plus lev que celui de la concatnation srie.
La concatnation parallle est donc plus favorable lorsque des rapports
signal bruit proches des limites thoriques sont considrs, avec des
taux derreurs viss moyens. Il peut en tre autrement lorsque des taux
derreurs trs faibles sont recherchs car la DMH dun code concatn en
srie peut tre plus grande.
3. La concatnation parallle utilise des codes systmatiques et au moins
lun de ces codes doit tre rcursif, pour des raisons galement exposes
dans la section 6.1
4. Les codes lmentaires sont de petits codes : codes 16, 8, voire 4 tats. Le
dcodage, mme sil met en uvre des traitements probabilistes rpts,
reste de complexit raisonnable.
La gure 7.4 reprsente les turbocodes utiliss en pratique et la table 7.2 re-
cense les applications industrielles connues ce jour. Les paramtres dnissant
un turbocode particulier sont les suivants :
7. Turbocodes convolutifs 213

Figure 7.4 Les turbocodes utiliss en pratique.

a m est le nombre de bits dans les symboles appliqus au turbocodeur. Les


applications connues ce jour considrent des symboles binaires (m = 1)
ou double-binaires (m = 2).
b Chacun des deux codeurs lmentaires C1 et C2 est caractris par
sa mmoire de code
ses polynmes gnrateurs de rcursivit et de redondance
son rendement
Les valeurs de sont en pratique infrieures ou gales 4. Les polynmes
gnrateurs sont gnralement ceux que lon utilise pour les codes convo-
lutifs classiques et qui ont fait lobjet dune littrature abondante dans les
annes 1980-90.
c La manire dont on eectue la permutation est importante lorsque le taux
derreurs binaires cible est infrieur 105 environ. Au-dessus de cette
valeur, la performance est peu sensible la permutation, condition bien
sr que celle-ci respecte au moins le principe de dispersion (cela peut tre
214 Codes et turbocodes

Application Turbocode Terminaison Polynmes Rendements


CCSDS binaire, tail bits 23, 33, 25, 37 1/6, 1/4, 1/3, 1/2
(espace 16 tats
lointain)
UMTS, binaire, 8 tail bits 13, 15, 17 1/4, 1/3, 1/2
CDMA200 tats
(mobile 3G)
DVB-RCS double circulaire 15, 13 de 1/3 6/7
(Return binaire, 8
Channel on tats
Satellite)
DVB-RCT double circulaire 15, 13 1/2, 3/4
(Return binaire, 8
Channel on tats
Terrestrial)
Inmarsat binaire, aucune 23, 35 1/2
(M4) 16 tats
Eutelsat double circulaire 15, 13 4/5, 6/7
(skyplex) binaire, 8
tats
IEEE 802.16 double circulaire 15, 13 de 1/2 7/8
(WiMAX) binaire, 8
tats

Table 7.2 Les applications standardises des turbocodes convolutifs.

par exemple une permutation rgulire). Pour un taux derreurs cible faible
ou trs faible, la performance est dicte par la distance minimale du code
et celle-ci est trs dpendante de la permutation .
d Le motif de poinonnage doit tre le plus rgulier possible, limage de ce
qui se pratique pour les codes convolutifs classiques. Toutefois, il peut tre
avantageux davoir un motif de poinonnage faiblement irrgulier quand on
recherche de trs faibles taux derreurs et lorsque la priode de poinonnage
est un diviseur de la priode du polynme gnrateur de rcursivit ou de
parit.
Le poinonnage seectue classiquement sur les symboles de redondance.
Il peut tre envisag de plutt poinonner les symboles dinformation, pour
augmenter la distance minimale du code. Cela se fait au dtriment du seuil de
convergence du turbo dcodeur. De ce point de vue, en eet, poinonner des
donnes partages par les deux dcodeurs est plus pnalisant que poinonner
des donnes qui ne sont utiles qu lun des dcodeurs.
Ce qui sera considrer de prs dans la construction dun turbocode et dans
son dcodage, ce sont les squences RTZ, dont les poids de sortie limitent la
7. Turbocodes convolutifs 215

distance minimale du code et en xent les performances asymptotiques. Dans la


suite, il sera admis que les motifs derreurs qui ne sont pas RTZ ne contribuent
pas la DMH du turbocode et nauront donc pas tre recenss.

7.3.1 La terminaison des codes constituants


Pour un turbocode, la fermeture de deux treillis est prendre en compte et
les solutions prsentes dans la section 5.5.1 peuvent tre envisages :
Ne rien faire de particulier concernant les tats terminaux : les
informations situes la n du bloc, aussi bien dans lordre naturel que dans
lordre permut, sont alors moins bien protges. Ceci conduit une diminution
du gain asymptotique mais cette dgradation, qui est fonction de la taille du
bloc, peut tre compatible avec certaines applications. Il est noter que la
non-fermeture des treillis pnalise plus fortement le TEP (Taux dErreurs de
Paquets) que le TEB.
Fermer le treillis dun ou des deux codes lmentaires laide
de bits de bourrage : les standards CCSDS [7.14] et UMTS [7.15] utilisent
cette technique. Les bits assurant la fermeture dun des deux treillis ne sont pas
utiliss dans lautre codeur. Ces bits ne sont donc pas turbocods ce qui conduit
mais dans une moindre mesure, aux mmes inconvnients que ceux prsents
dans le cas prcdent. De plus, la transmission des bits de fermeture entrane
une diminution du rendement de codage et donc, de lecacit spectrale.
Utiliser un entrelacement permettant une fermeture automatique
du treillis : il est possible de fermer automatiquement, sans ajout de bits
de fermeture, le treillis dun turbocode en transformant lgrement le schma
de codage (auto-concatnation) et en utilisant un entrelacement respectant
certaines rgles de priodicit. Cette solution dcrite dans [7.16] ne diminue
pas lecacit spectrale mais impose des contraintes sur lentrelacement qui
rendent dicile la matrise des performances faibles taux derreurs.
Adopter un codage circulaire : un codeur de code convolutif circulaire
garantit que ltat initial et ltat nal du registre sont identiques. Le treillis
prend alors la forme dun cercle ce qui, du point de vue du dcodeur, peut
tre considr comme un treillis de longueur innie [7.17,7.18]. Ce procd de
fermeture, dj connu sous le nom de tail-biting pour les codes non rcursifs,
ore deux avantages majeurs :
Au contraire des autres techniques, la fermeture circulaire ne prsente
aucun eet de bord : tous les bits du message sont protgs de la mme
manire et tous sont doublement cods par le turbocode. Il ny a donc pas
lieu, lors de la conception de la permutation, daccorder une importance
particulire tel ou tel bit, ce qui conduit des modles de permutation
plus simples.
Les squences qui ne sont pas RTZ ont une inuence sur lensemble du
cercle : un symbole de parit sur deux, en moyenne, est modi tout le
long du bloc. Pour des valeurs typiques de k (quelques centaines ou plus),
le poids de sortie correspondant est donc trs lev et ces motifs derreurs
216 Codes et turbocodes

ne contribuent pas la DMH du code, comme on la dj mentionn


la n de la section prcdente. Sans terminaison ou avec une terminaison
par bits de bourrage, seule la partie du bloc aprs le dbut de la squence
non RTZ a une incidence sur les symboles de parit.
ces deux avantages, sajoute bien sr lintrt de navoir transmettre
aucune information supplmentaire sur la terminaison et donc de ne rien perdre
en ecacit spectrale.
La technique de terminaison circulaire a t retenue dans les standards
DVB-RCS et DVB-RCT [7.19,7.20] par exemple.

7.3.2 La fonction de permutation


Quon lappelle entrelacement ou permutation, la technique consistant
disperser des donnes dans le temps a toujours rendu de grands services en
communications numriques. On lutilise avec prot par exemple pour rduire
les eets des attnuations plus ou moins longues dans les transmissions aec-
tes dvanouissements et plus gnralement dans des situations o des pertur-
bations peuvent altrer des symboles conscutifs. Dans le cas des turbocodes
aussi, la permutation permet de lutter ecacement contre lapparition de pa-
quets derreurs, sur lune au moins des dimensions du code composite. Mais
son rle ne sarrte pas l : elle dtermine aussi, en relation troite avec les
proprits des codes constituants, la distance minimale du code concatn.
Considrons le turbocode reprsent en gure 7.3. La plus mauvaise des
permutations quon puisse utiliser est bien sr la permutation identit, qui mi-
nimise la diversit du codage (on a alors Y1 = Y2 ). loppos, la meilleure
des permutations que lon pourrait imaginer mais qui nexiste probablement
pas [7.21], permettrait au code concatn dtre quivalent une machine s-
quentielle dont le nombre dtats irrductibles serait 2k+6 . Il y a en eet k + 6
lments binaires de mmorisation dans la structure : k pour la mmoire de
permutation et 6 pour les deux codes convolutifs. Si on pouvait assimiler cette
machine squentielle un codeur convolutif et pour les valeurs usuelles de k, le
nombre dtats correspondant serait trs grand, en tout cas assez grand pour
garantir une large distance minimale. Par exemple, un codeur convolutif avec
une mmoire de code de 60 (1018 tats !) ache une distance libre de lordre
de la centaine (pour R = 1/2), ce qui est bien susant.
Ainsi, de la plus mauvaise la meilleure des permutations, le choix est large
et lon na pas encore dcouvert de permutation parfaite. Cela dit, de bonnes
permutations ont quand mme pu tre dnies pour laborer des schmas de
turbocodage normaliss.
Il existe deux manires de spcier une permutation, la premire par des
quations liant les adresses avant et aprs permutation, la seconde par un ta-
bleau (look-up table) fournissant la correspondance entre les adresses. La pre-
mire est prfrable du point de vue de la simplicit dans la spcication du
turbocode (les comits de normalisation sont sensibles cet aspect) mais la
7. Turbocodes convolutifs 217

seconde peut conduire de meilleurs rsultats car le degr de libert est gn-
ralement plus grand dans le travail de conception de la permutation.

La permutation rgulire
Le point de dpart dans la conception dun entrelacement est la permutation
rgulire, qui est dcrite en gure 7.5 sous deux formes direntes. La premire
suppose que le bloc contenant k bits peut tre organis comme un tableau de
M lignes et N colonnes. Lentrelacement consiste alors crire les donnes
dans une mmoire ad hoc, ligne par ligne, et les lire colonne par colonne
(gure 7.5(a)). La seconde sapplique sans hypothse sur la valeur de k. Aprs
criture des donnes dans une mmoire linaire (adresse i, 0 i k 1), le
bloc est assimil un cercle, les deux extrmits (i = 0 et i = k 1) tant alors
contigus (gure 7.5(b)). Les donnes binaires sont alors extraites de telle sorte
que la j-ime donne lue ait t pralablement crite la place i, de valeur :

i = (j) = P j + i0 mod k (7.4)

o P est un entier premier avec k et i0 est lindice de dpart1 .

Figure 7.5 Permutation rgulire sous formes rectangulaire (a) et circulaire (b).

Pour une permutation circulaire, dnissons la distance spatiale cumule


S(j1 , j2 ) comme la somme des deux distances spatiales sparant deux bits,
avant et aprs permutation, dont les indices de lecture sont j1 et j2 :

S(j1 , j2 ) = f (j1 , j2 ) + f ((j1 ), (j2 )) (7.5)

o :

f (u, v) = min {|u v| , k |u v|} (7.6)


1 La permutation peut bien sr tre dnie sous une forme rciproque, cest--dire j fonction
de i. Cest une convention adopter une fois pour toutes et celle que nous avons retenue est
compatible de la plupart des turbocodes normaliss.
218 Codes et turbocodes

La fonction f est introduite pour tenir compte du caractre circulaire des


adresses. Finalement, nous appelons Smin la plus petite des valeurs de S(j1 , j2 ),
pour toutes les paires j1 et j2 possibles :

Smin = min {S(j1 , j2 )} (7.7)


j1 ,j2

Il est dmontr dans [7.22] que la borne suprieure de Smin est :



sup Smin = 2k (7.8)
Cette borne suprieure nest atteinte que dans le cas dune permutation
rgulire et avec les conditions :

P = P0 = 2k (7.9)
et :
P0
k= mod P0 (7.10)
2
Considrons maintenant une squence de poids quelconque qui scrit, aprs
permutation :


k1

d(D) = aj Dj (7.11)
j=0

o aj peut prendre la valeur binaire 0 (pas derreur) ou 1 (une erreur) et, avant
permutation :


k1 
k1
i
d(D) = ai D = a(j) D(j) (7.12)
i=0 j=0

Notons jmin et jmax les indices j correspondant aux premire et dernire valeurs

aj non nulles dans d(D). Nous dnissons de la mme manire imin et imax pour
la squence d(D). Alors, la permutation rgulire satisfaisant (7.9) et (7.10)
garantit la proprit :

(jmax jmin ) + (imax imin ) > 2k (7.13)

Cela vient de ce que d(D) et d(D), toutes deux considres entre les indices
min et max, contiennent au moins 2 bits dont la distance
spatiale cumule, telle
que dnie par (7.5), est maximale et gale 2k. Il nous faut maintenant
considrer deux cas :

les squences d(D) et d(D) sont toutes deux du type RTZ simple, cest-
-dire quelles dbutent dans ltat 0 du codeur et y reviennent une seule
fois, la n. Les bits de parit produits par ces squences sont des 1, une
fois sur deux statistiquement. Compte tenu de (7.13), pour des valeurs
usuelles de k (k > 100), les poids de la redondance sont levs et ces
squences RTZ ne contribuent pas la DMH du turbocode.
7. Turbocodes convolutifs 219

lune au moins des squences d(D) et d(D) est du type RTZ multiple,
cest--dire quelle correspond plusieurs passages par ltat 0 du codeur.
Si ces passages par ltat 0 sont longs, la parit associe la squence peut
tre de poids rduit et la distance associe faible. Gnralement, dans ce
type de situation, les squences avant et aprs permutation sont toutes
deux RTZ multiples.
La performance dun turbocode, faible taux derreurs, est intimement lie
la prsence de motifs RTZ multiples et la permutation rgulire nest pas une
bonne rponse pour liminer ces motifs.

Figure 7.6 Motifs derreurs possibles de poids 2, 3, 6 ou 9 avec un turbocode dont


les codeurs lmentaires ont une priode 7 et avec une permutation rgulire.

Ncessit du dsordre
En admettant toujours que les motifs derreurs qui ne sont pas RTZ ont
des poids susamment levs pour ne pas avoir dincidence sur la performance,
une permutation idale pour un turbocode pourrait tre dnie par la rgle
suivante :
Si une squence est du type RTZ avant permutation, alors elle ne
lest plus aprs permutation et vice-versa.
220 Codes et turbocodes

La rgle prcdente est impossible satisfaire en pratique et un objectif


plus raliste est :
Si une squence est du type RTZ avant permutation, alors elle ne
lest plus aprs permutation ou elle est devenue une squence RTZ
simple longue et vice-versa.
Le dilemme dans la conception de bonnes permutations pour turbocodes
rside dans la ncessit de satisfaire cet objectif pour deux classes distinctes de
squences dentre qui demandent des traitements opposs : les squences RTZ
simples et les squences RTZ multiples, telles que dnies plus haut. Pour bien
mettre ce problme en vidence, considrons un turbocode de rendement 1/3,
avec une permutation rectangulaire rgulire (criture suivant M lignes, lecture
suivant N colonnes) portant sur des blocs de k = M N bits (gure 7.6). Les
codeurs lmentaires sont des codeurs 8 tats dont la priode est 7 (gnrateur
de rcursivit 15).
Le premier motif (a) de la gure 7.6 concerne une squence derreurs pos-
sible de poids dentre w = 2 : 10000001 pour le code C1 , quon appellera
aussi code horizontal. Il sagit de la squence RTZ minimale de poids 2 pour le
codeur considr. La redondance produite par ce codeur est de poids 6 (exac-
tement : 11001111). La redondance produite par le codeur vertical C2 , pour
lequel la squence considre est aussi RTZ (sa longueur est multiple de 7), est
autrement plus informative parce que RTZ simple et dlivre sur sept colonnes.
En admettant que Y2 est gal 1 une fois sur deux en moyenne, le poids de
cette redondance est environ w(Y2 ) 7M 2 , . Lorsquon fait tendre k vers linni

travers les valeurs de M et N (M N k), la redondance produite par
lun des deux codes, pour ce type de motif, tend aussi vers linni. On dit alors
que le code est bon.
Le second motif (b) est celui de la squence RTZ minimale de poids dentre
3. L aussi, la redondance est pauvre sur la premire dimension et bien plus
informative sur la seconde. Les conclusions sont les mmes que prcdemment.
Les deux autres dessins (c) reprsentent des exemples de squences RTZ
multiples, constitues de courtes squences RTZ sur chacune des deux dimen-
sions. Les poids dentre sont 6 et 9. Les distances associes ces motifs (res-
pectivement 30 et 27 pour ce code de rendement 1/3) ne sont gnralement
pas susantes pour assurer une bonne performance faible taux derreurs. De
plus, ces distances sont indpendantes de la taille du bloc et donc, vis--vis des
motifs considrs, le code nest pas bon.
La permutation rgulire est donc une bonne permutation pour la classe des
motifs derreurs RTZ simple. Pour les motifs RTZ multiples en revanche, la
permutation rgulire nest pas approprie. Une bonne permutation se doit de
casser la rgularit des motifs composites rectangulaires comme ceux de la
gure 7.6(c), en introduisant un certain dsordre. Mais cela ne doit pas se faire
au dtriment des motifs pour lesquels la permutation rgulire est bonne. Le
dsordre doit donc tre bien gr ! Cest l tout le problme dans la recherche
dune permutation qui doit conduire une distance minimale susamment
7. Turbocodes convolutifs 221

leve. Une bonne permutation ne peut tre trouve indpendamment des pro-
prits des codes lmentaires, de leurs motifs RTZ, de leurs priodicits, etc.

Le dsordre intra-symbole
Lorsque les codes lmentaires sont des codes m-binaires, on peut introduire
un certain dsordre dans la permutation dun turbocode sans pour autant lui
enlever son caractre rgulier ! Pour ce faire, on met en uvre, outre une clas-
sique permutation inter-symbole, une permutation intra-symbole, cest--dire
une modication non-rgulire du contenu des symboles de m bits, avant co-
dage par le second code [7.23]. Nous dveloppons brivement cette ide sur
lexemple de turbocodes double-binaires (m = 2).

Figure 7.7 Motifs derreurs possibles avec des turbocodes binaire (a) et double-
binaire (b) et une permutation rgulire.

La gure 7.7(a) reprsente le motif minimal derreurs de poids w = 4,


toujours avec le code de la gure 7.6. Cest un motif carr dont le ct est gal
la priode du gnrateur pseudo-alatoire de polynme 15, cest--dire 7. Il
a dj t dit quun certain dsordre devait tre introduit dans la permutation
pour casser ce genre de motif derreurs mais sans altrer les proprits de
la permutation rgulire vis--vis des motifs de poids 2 et 3, ce qui nest pas
facile. Si lon remplace, en tant que codeur lmentaire, le codeur binaire par un
codeur double-binaire, les motifs derreurs considrer sont forms, non plus
par des bits mais par des couples de bits. La gure 7.7(b) donne un exemple de
codeur double-binaire et de motifs derreurs possibles, lorsque la permutation
est rgulire. Les couples y sont numrots de 0 3, selon la correspondance
suivante :

(0, 0) : 0; (0, 1) : 1; (1, 0) : 2; (1, 1) : 3


222 Codes et turbocodes

Les priodicits du codeur double-binaire sont rsumes par le diagramme


de la gure 7.8. On y trouve toutes les combinaisons de paires de couples de
type RTZ. Par exemple, si le codeur, initialis dans ltat 0, est aliment par
les couples successifs 1 et 3, celui-ci retrouve immdiatement ltat 0. Il en est
de mme pour les squences 201 ou 2003 ou 3000001, par exemple.

Figure 7.8 Priodicits du codeur double-binaire de la gure 7.7(b). Les quatre


couples dentre (0, 0), (0, 1), (1, 0) et (1, 1) sont nots 0, 1, 2 et 3, respectivement.
Ce diagramme donne toutes les combinaisons de paires de couples de type RTZ.

La gure 7.7(b) donne deux exemples de motifs derreurs rectangulaires,


de taille minimale. Observons tout dabord que le primtre de ces motifs est
plus grand que la moiti du primtre du carr de la gure 7.7(a). Or, mme
rendement de codage, la redondance dun code double-binaire est deux fois
plus dense que celle dun code binaire. On en dduit que les distances des mo-
tifs derreurs double-binaires seront naturellement plus grandes, toutes choses
gales par ailleurs, que celles des motifs derreurs binaires. De plus, par un
moyen simple, on peut liminer ces motifs lmentaires.

Figure 7.9 Les couples des cases grises sont inverss avant le second codage (vertical).
1 devient 2, 2 devient 1 ; 0 et 3 restent inchangs. Les motifs de la gure 7.7(b),
redessins en (a), ne sont plus des motifs derreurs possibles. Ceux de (b) le sont
toujours, avec des distances 24 et 26 pour un rendement de codage 1/2.

Supposons par exemple que les couples soient inverss (1 devient 2 et rci-
proquement), une fois sur deux, avant dtre appliqus au codeur vertical. Alors
les motifs derreurs reprsents en gure 7.9(a) nexistent plus ; par exemple,
si 30002 reprsente bien une squence RTZ pour le codeur considr, 30001
7. Turbocodes convolutifs 223

ne lest plus. Ainsi, beaucoup des motifs derreurs, en particulier les plus pe-
tits, disparaissent grce au dsordre introduit lintrieur des symboles. La -
gure 7.9(b) donne deux exemples de motifs que linversion priodique ne modie
pas. Les distances correspondantes sont susamment leves (24 et 26 pour une
rendement 1/2) pour ne pas poser problme pour des tailles de blocs petites ou
moyennes. Pour des blocs longs (plusieurs milliers de bits), un dsordre suppl-
mentaire inter-symbole, de faible intensit, peut tre ajout la non-uniformit
intra-symbole, pour obtenir des distances minimales encore plus leves.

Figure 7.10 Permutation de type DRP. Cest une permutation circulaire rgulire
laquelle des permutations locales avant criture et aprs lecture sont ajoutes.

Permutations irrgulires
Nous ne ferons pas, dans cette section, une description de toutes les per-
mutations irrgulires qui ont pu tre imagines jusqu ce jour et qui ont fait
lobjet de nombreuses publications ou de plusieurs chapitres douvrages (voir
[7.24, 7.25] par exemple). Nous avons plutt retenu de prsenter ce qui semble
tre, pour le moment, le type de permutation la fois le plus simple et le
plus performant. Il sagit de permutations circulaires presque rgulires, ap-
pelesARP (almost regular permutation , [7.26]) ou DRP (dithered relatively
prime, [7.27]) suivant les auteurs. Dans tous les cas, lide est de ne pas trop
sloigner de la permutation rgulire, bien adapte aux motifs derreurs RTZ
simples et dinstiller un petit dsordre contrl pour contrer les motifs derreurs
RTZ multiples.
La gure 7.10 donne un exemple, tir de [7.27], de ce que peut tre ce petit
dsordre. Avant que soit eectue la permutation circulaire rgulire, les bits
subissent une permutation locale. Cette permutation seectue par groupes de
CW bits. CW , qui est le cycle du dsordre lcriture (writing cycle), est un
diviseur de la longueur k du message. De mme, une permutation locale de
cycle CR (reading cycle) est applique avant la lecture dnitive.
224 Codes et turbocodes

En pratique CW et CR peuvent tre de valeurs identiques CW = CR = C,


typiquement, 4 ou 8. Cette manire dintroduire du dsordre, par de petites
uctuations locales, ne diminue pas signicativement la distance spatiale cu-
mule, dont la valeur maximale est 2k. Elle permet en retour de supprimer les
motifs derreurs comparables ceux des gures 7.5(c) et 7.6(b) la condition
que les hauteurs et largeurs de ces motifs ne soient pas toutes deux multiples
de C.
Une autre manire de perturber la permutation rgulire de faon contrle
est dcrite par la gure 7.11. La permutation est reprsente ici sous sa forme
rectangulaire, visuellement plus accessible, mais elle sapplique trs bien aussi
la permutation circulaire. Une information (bit ou symbole) est positionne
chaque croisement de ligne et de colonne. Avec la permutation rgulire, ces
donnes sont donc mmorises ligne par ligne et lues colonne par colonne. Dans
la gure 7.11, le dsordre est introduit par lintermdiaire de quatre vecteurs de
dplacement V1 , , V4 qui sont alternativement appliqus lors de la lecture.
Ces vecteurs sont de petite amplitude par rapport aux dimensions de la matrice
de permutation.

Figure 7.11 Permutation de type ARP, daprs [7.26].

Le modle mathmatique associ cette permutation presque rgulire, sous


sa forme circulaire, est une extension de (7.4) :
i = (j) P j + Q(j) + i0 mod k (7.14)
Si lon choisit :
Q(j) = A(j)P + B(j) (7.15)
o les entiers positifs A(j) et B(j) sont priodiques, de cycle C (diviseur de
k), alors ces grandeurs correspondent des dcalages positifs appliqus res-
pectivement avant et aprs la permutation rgulire. Cest la dirence avec
la permutation dcrite par la gure 7.10, dans laquelle les perturbations en
criture et en lecture se ralisent lintrieur de petits groupes de donnes et
non par dcalage.
7. Turbocodes convolutifs 225

Pour que la permutation soit bien une bijection, les paramtres A(j) et B(j)
ne sont pas quelconques. Une condition susante pour assurer lexistence de la
permutation est que les paramtres soient tous multiples de C. Cette condition
nest pas trs contraignante vis--vis de lecacit de la permutation. (7.15)
peut alors tre rcrit sous la forme :
Q(j) = C((j)P + (j)) (7.16)
o (j) et (j) sont le plus souvent de petits entiers, de valeurs 0 8. Par
ailleurs, puisque les proprits dune permutation circulaire ne sont pas modi-
es par une simple rotation, lune des valeurs Q(j) peut tre systmatiquement
0.
Deux jeux typiques de valeurs Q, avec un cycle 4 et = 0 ou 1, sont donns
ci-dessous :

si j = 0 mod 4, alors Q=0


si j = 1 mod 4, alors Q = 4P + 41
(7.17)
si j = 2 mod 4, alors Q = 42
si j = 3 mod 4, alors Q = 4P + 43
si j =0 mod 4, alors Q=0
si j =1 mod 4, alors Q = 41
(7.18)
si j =2 mod 4, alors Q = 4P + 42
si j =3 mod 4, alors Q = 4P + 43
Ces modles requirent la connaissance de seulement quatre paramtres
(P , 1 , 2 et 3 ), qui peuvent tre dtermins selon la procdure dtaille dans
[7.26]. Lutilisation de codes m-binaires (voir section 7.5), au lieu de codes
binaires, demande simplement de remplacer k par k/m dans (7.14). En parti-
culier, les permutations dnies pour les turbocodes double-binaires (m = 2)
des normes DVB-RCS, DVB-RCT et WiMax sont inspires de (7.14) et (7.19).

7.4 Le dcodage des turbocodes


7.4.1 Le turbodcodage
Le dcodage dun turbocode binaire sappuie sur le schma de principe de la
gure 7.12. La boucle permet chaque dcodeur de tirer prot de lensemble des
informations disponibles. Les grandeurs considres chaque noeud du montage
sont des LRV (Logarithmes de Rapport de Vraisemblance), les oprations de
dcodage tant eectues dans le domaine logarithmique.
Le LRV en sortie dun dcodeur de code systmatique peut tre vu comme
la somme de deux termes : linformation intrinsque, en provenance du canal
de transmission, et linformation extrinsque, que ce dcodeur ajoute la pre-
mire pour eectuer son travail de correction. Comme linformation intrinsque
est utilise par les deux dcodeurs ( des instants dirents), cest linforma-
tion extrinsque produite par chacun des dcodeurs qui doit tre transmise
226 Codes et turbocodes

lautre en tant quinformation nouvelle pour assurer la convergence conjointe.


La section 7.4.2 dtaille les oprations eectues pour le calcul de linformation
extrinsque, par mise en uvre de lalgorithme MAP ou de sa version simplie
Max-Log-MAP .

Figure 7.12 Turbocodeur 8 tats et structure de principe du turbo-dcodeur corres-


pondant. Les deux dcodeurs lmentaires schangent des informations probabilistes,
dites extrinsques (z)
.

cause des eets de latence, lchange des informations extrinsques, dans


un circuit de traitement numrique, doit tre mis en uvre travers un proces-
sus itratif : premier dcodage par DEC1 et mise en mmoire des informations
extrinsques z1 , deuxime dcodage par DEC2 et mise en mmoire des informa-
tions extrinsques z2 (n de la premire itration), de nouveau appel DEC1
et mise en mmoire de z1 , etc. Direntes architectures matrielles, avec des
degrs plus ou moins levs de paralllisme, sont envisageables pour acclrer
le dcodage itratif.
Si lon voulait dcoder le turbocode laide dun seul dcodeur, qui pren-
drait en compte tous les tats possibles du codeur, on obtiendrait pour chaque
lment du message dcod une probabilit et une seule, davoir une valeur bi-
naire gale 0 ou 1. La structure composite de la gure 7.12, quant elle, fait
appel deux dcodeurs travaillant conjointement. Par analogie avec le rsultat
que fournirait le dcodeur unique, il leur faut donc converger vers les mmes
dcisions, avec les mmes probabilits, pour chacune des donnes considres.
Cest le principe fondamental du traitement turbo , qui justie la structure
du dcodeur, comme le montre le raisonnement suivant.
Le rle dun dcodeur SISO (Soft-In/Soft-Out, voir section 7.4.2) est de
traiter les LRV son entre pour essayer de les rendre plus ables, grce la
redondance locale (cest--dire y1 pour DEC1, y2 pour DEC2). Le LRV produit
par un dcodeur de code binaire, relatif la donne d, peut scrire simplement
7. Turbocodes convolutifs 227

comme :
LRVsortie (d) = LRVentre (d) + z(d) (7.19)
o z(d) est linformation extrinsque propre d. Le LRV est amlior quand z
est ngative et d est un 0, ou quand z est positive et d est un 1.
Aprs p itrations, la sortie de DEC1 est :

LLRpsortie,1 (d) = (x + z2p1 (d)) + z1p (d)

et celle de DEC2 est :

LLRpsortie,2 (d) = (x + z1p1 (d)) + z2p (d)

Si le processus itratif converge vers une solution stable, z1p (d) z1p1 (d) et
z2p (d) z2p1 (d) tendent vers zro lorsque p tend vers linni. En consquence,
les deux LRV relatifs d deviennent identiques, satisfaisant ainsi le critre
fondamental de commune probabilit nonc plus haut. Quant la preuve de
la convergence, elle fait toujours lobjet de travaux approfondis et on peut
consulter ce propos, par exemple [7.28, 7.29].
Outre les fonctions de permutation et de permutation inverse, la gure 7.13
dtaille les oprations eectues lors du turbo-dcodage :

Figure 7.13 Oprations dtailles (crtage, quantication, attnuation de linfor-


mation extrinsque) dans le turbo-dcodeur de la gure 7.12.

1. La conversion analogique-numrique (A/N) transforme les informations


en provenance du dmodulateur en chantillons exploitables par le dco-
deur numrique. Deux paramtres interviennent dans cette opration :
nq , le nombre de bits de quantication, et Q, le facteur dchelle, cest-
-dire le rapport entre la valeur absolue moyenne du signal quanti et
sa valeur absolue maximale. nq est x une valeur de compromis entre
228 Codes et turbocodes

la prcision requise et la complexit du dcodeur. Avec nq = 4, la per-


formance du dcodeur est trs proche de celle que lon obtient avec des
chantillons rels. La valeur de Q dpend de la modulation, du rendement
de codage et du type de canal. Elle est par exemple plus grande pour un
canal de Rayleigh que pour un canal gaussien.
2. Le dcodage SISO a pour rle daugmenter le rapport signal bruit qui-
valent du LRV, cest--dire de fournir la sortie une information extrin-
sque zsortie plus able qu lentre (zentre ). De la fonction de transfert
SNR(zsortie ) = G(SNR(zentre )) de chacun des dcodeurs dpendra la
convergence du procd itratif (voir section 7.6).
Lorsquune information nest pas disponible lentre du dcodeur SISO,
du fait du poinonnage par exemple, une valeur neutre (zro analogique)
se substitue cette information manquante.
3. Lorsque lalgorithme lmentaire de dcodage nest pas lalgorithme op-
timal (MAP ) mais une version simplie sous-optimale, linformation ex-
trinsque doit subir quelques transformations avant dtre utilise par un
dcodeur :
la multiplication de linformation extrinsque par le facteur , infrieur
1, garantit la stabilit de la structure boucle. peut varier au l des
itrations, par exemple de 0,7 au dbut du processus itratif jusqu 1
pour la dernire itration.
lcrtage de linformation extrinsque rpond la fois au souci de
limiter la taille des mmoires et au souci de participer la stabilit du
processus. Une valeur typique de dynamique maximale de linformation
extrinsque est de 2 fois la dynamique dentre du dcodeur.
4. La prise de dcision binaire seectue par un seuillage la valeur 0. Le
nombre ditrations requis par le turbo-dcodage dpend de la taille du
bloc et du rendement de codage. En gnral, la DMH du code est dautant
plus leve que le bloc dcod est grand et la convergence en est plus
lente. Il en est de mme lorsque les rendements de codage sont faibles.
En pratique, on limite le nombre ditrations une valeur comprise entre
4 et 10, selon les contraintes de vitesse, de latence et de consommation
imposes par lapplication.
La gure 7.14 donne un exemple de performance de turbocode binaire,
tir de la norme UMTS [7.15]. On peut y observer une dcroissance du Taux
dErreurs par Paquets (TEP), tout prs de la limite thorique (qui est environ
0,5 dB, en tenant compte de la taille du bloc), mais aussi un changement de
pente assez prononc, d une DMH qui nest pas extraordinaire (dmin = 26)
pour un rendement de 1/3.
7. Turbocodes convolutifs 229

Figure 7.14 Performance en Taux dErreurs de Paquets (TEP) du turbocode de la


norme UMTS pour k = 640 et R = 1/3 sur canal gaussien avec modulation MDP-4.
Dcodage selon lalgorithme Max-Log-MAP avec 6 itrations.

7.4.2 Le dcodage SISO et linformation extrinsque


Sont ici dvelopps les traitements eectus en pratique dans un dcodeur
SISO utilisant lalgorithme MAP [7.30] ou sa version simplie Max-log-MAP,
encore appele SubMAP [7.31], pour dcoder les codes CSR m-binaires et
mettre en uvre le dcodage itratif. Pour les codes et turbocodes binaires,
toutes ces quations sont simplier en prenant m = 1.

Notations
Une squence de donnes d est dnie par d dk1 0 = (d0 di dk1 ),
o di est le vecteur de donnes m-binaires appliqu lentre du codeur
linstant i : di = (di,1 di,l di,m ). La valeur de di pourra galement tre

m
reprsente par la grandeur scalaire entire j = 2l1 di,l , comprise entre 0 et
l=1
2m 1 et lon crira alors di j.
Dans le cas dune modulation deux ou quatre tats de phase (MDP-2,
MDP-4), la squence code et module u uk1 0 = (u0 ui uk1 ) est
constitue de vecteurs ui de taille m + m : ui = (ui,1 ui,l ui,m+m ), o
ui,l = 1 pour l = 1 m + m et m est le nombre de bits de redondance
ajouts aux m bits dinformation. Le symbole ui,l est donc reprsentatif dun
bit systmatique pour l m et dun bit de redondance pour l > m.
La squence observe en sortie du dmodulateur est note v v0k1 =
(v0 vi vk1 ), avec vi = (vi,1 vi,l vi,m+m ). La suite des tats du
codeur entre les instants 0 et k est note S = Sk0 = (S0 Si Sk ). Ce qui
suit sappuie sur les rsultats prsents dans le chapitre sur les codes convolutifs.
230 Codes et turbocodes

Dcodage suivant le critre du Maximum A Posteriori (MAP)


chaque instant i, les estimations pondres (probabilistes) fournies par le
dcodeur MAP sont les 2m probabilits a posteriori (APP pour A Posteriori
Probabilities) Pr(di j | v ), j = 0 2m 1. La dcision dure correspondante,
di , est la reprsentation binaire de la valeur j qui maximise lAPP.
Chaque APP peut sexprimer en fonction des vraisemblances conjointes
p(di j, v) :
p(di j, v) p(di j, v)
Pr(di j | v ) = = 2m 1 (7.20)
p(v) 
p(di l, v)
l=0

En pratique, on calcule les vraisemblances conjointes p(di j, v) pour j =


0 2m 1 puis chaque APP est obtenue par normalisation.
Le treillis reprsentatif dun code de mmoire possde 2 tats, prenant
leur valeur scalaire s dans (0, 2 1). Les vraisemblances conjointes sont cal-
cules partir des probabilits rcurrentes avant (forward ) i (s) et arrire
(backward ) i (s) et des vraisemblances de branches gi (s , s) :

p(di j, v) = i+1 (s) i (s ) gi (s , s) (7.21)
(s ,s)/di (s ,s)j

o (s , s)/di (s , s) j dsigne lensemble des transitions dtat tat s s


associes la donne dinformation m-binaire j. Cet ensemble est, bien sr,
toujours le mme dans un treillis invariant dans le temps.
La grandeur gi (s , s) sexprime comme :
gi (s , s) = Pra (di j, di (s , s) j).p(vi | ui ) (7.22)
o ui est le jeu de symboles dinformation systmatique et redondante associ
la transition s s du treillis linstant i et Pra (di j, di (s , s) j) est la
probabilit a priori dmettre le m-uplet dinformation et que cela corresponde
la transition s s linstant i. Si la transition s s nexiste pas dans
le treillis pour di j , alors Pra (di j, di (s , s) j) = 0, sinon celle-ci est
donne par la statistique de la source (le plus souvent uniforme en pratique).
Dans le cas dun canal gaussien entres binaires, la grandeur p(vi | ui )
scrit :
5  1  

m+m
(v u )2
p(vi | ui ) = exp i,l 2 i,l (7.23)
2 2
l=1
o 2 est la variance du bruit additif blanc gaussien. En pratique, on ne retient
que les termes spciques la transition considre et qui ne sliminent pas
par division dans lexpression (7.20) :



m+m
vi,l ui,l

p (vi | ui ) = exp l=1 2 (7.24)

7. Turbocodes convolutifs 231

Les probabilits rcurrentes avant et arrire sont calcules de la manire sui-


vante :

2 1
i (s) = i1 (s ) gi1 (s , s) pour i = 1 k (7.25)
s =0

et :
2 1
i (s) = i+1 (s ) gi (s, s ) pour i = k 1 0 (7.26)
s =0

Pour viter les problmes de prcision ou de dbordement dans la reprsen-


tation de ces grandeurs, il convient de les normaliser rgulirement. Linitiali-
sation des rcursions dpend de la connaissance ou non de ltat du codeur en
dbut et en n de codage. Si ltat S0 de dpart du codeur est connu, alors
0 (S0 ) = 1 et 0 (s) = 0 pour tout autre tat, sinon tous les 0 (s) sont initia-
liss la mme valeur. La mme rgle est applique pour ltat nal Sk . Pour
les codes circulaires, linitialisation est eectue automatiquement aprs ltape
de prologue, qui dmarre partir de valeurs identiques pour tous les tats du
treillis.
Dans le contexte du dcodage itratif, le dcodeur composite fait appel
deux dcodeurs lmentaires schangeant des probabilits extrinsques. Par
consquent, la brique de base de dcodage dcrite prcdemment doit tre re-
considre :
1. pour tenir compte
 dans lexpression (7.22) dune probabilit extrinsque,

Prex (di j v ), calcule par lautre dcodeur lmentaire du dcodeur

composite, partir de sa propre squence dentre v ,


2. pour produire sa propre probabilit extrinsque Prex (di j v ) qui sera
utilise par lautre dcodeur lmentaire.
En pratique, pour chaque valeur de j, j = 0 2m 1 :
1. dans lexpression (7.22), la probabilit a priori Pra (di j, di (s , s) j)
est remplace par la probabilit a priori modie Pr@ (di j, di (s , s)
j), ayant pour expression, un facteur de normalisation prs :
Pr@ (di j, di (s , s) j) = Pra (di j, di (s , s) j).Prex (di j | v ) (7.27)
1. Prex (di j | v ) est donne par :

i+1 (s) i (s ) gi (s , s)
(s ,s)/di (s ,s)j
Pr (di j | v ) =
ex
 (7.28)
i+1 (s) i (s ) gi (s , s)
(s ,s)

Les termes gi (s , s) sont non nuls si s s correspond une transition du


treillis et sont alors dduits de lexpression de p(vi | ui ) en liminant la partie
systmatique de linformation. Dans le cas dune transmission sur un canal
232 Codes et turbocodes

gaussien entres binaires et en partant de lexpression simplie (7.24) de


p (vi | ui ) , on a :
m+m

vi,l ui,l
l=m+1
gi (s , s) = exp (7.29)
2

Lalgorithme simpli Max-Log-MAP ou SubMAP


Le dcodage suivant le critre MAP requiert un grand nombre doprations,
dont des calculs dexponentielles et des multiplications. La rcriture de lal-
gorithme de dcodage dans le domaine logarithmique simplie les traitements.
Les estimations pondres fournies par le dcodeur sont alors des grandeurs
proportionnelles aux logarithmes des APP, dites Log-APP et notes L :
2
Li (j) = ln Pr(di j | v) , j = 0 2m 1 (7.30)
2
On dnit Mi (s) et Mi (s), les mtriques avant et arrire relatives au nud s
linstant i ainsi que Mi (s , s), la mtrique de branche relative la transition
s s du treillis linstant i par :
Mi (s) = 2 ln i (s)
Mi (s) = 2 ln i (s) (7.31)
Mi (s , s) = 2 ln gi (s , s)

Introduisons les grandeurs Ai (j) et Bi calcules comme :




Ai (j) = 2 ln i+1 (s)i (s )gi (s , s) (7.32)
(s ,s)/di (s ,s)j


Bi = 2 ln i+1 (s)i (s )gi (s , s) (7.33)
(s ,s)

Li (j) peut alors scrire, par rfrence (7.20) et (7.21), de la manire suivante :
1
Li (j) = (Ai (j) Bi ) (7.34)
2
Les expressions (7.32) et (7.33) peuvent tre simplies en appliquant lapproxi-
mation dite Max-Log :
ln(exp(a) + exp(b)) max(a, b) (7.35)
On obtient pour Ai (j) :

Ai (j) min
Mi+1 (s) + Mi (s ) + Mi (s , s) (7.36)
(s ,s)/di (s ,s)j
7. Turbocodes convolutifs 233

et pour Bi :

 
Bi min M i+1 (s) + M i (s ) + M i (s , s) = min Ai (l) (7.37)
(s ,s) l=02m 1

et lon a nalement :
 
1
Li (j) = Ai (j) min Ai (l) (7.38)
2 l=02m 1

Remarquons que ces grandeurs sont toujours positives ou nulles.


Introduisons les grandeurs La proportionnelles aux logarithmes des proba-
bilits a priori Pra :
2
Lai (j) = ln Pra (di j) (7.39)
2
Les mtriques de branches Mi (s , s) scrivent, daprs (7.22) et (7.31) :
Mi (s , s) = 2Lai (d(s , s)) 2 ln p(vi | ui ) (7.40)
Si la statistique dmission a priori des m-uplets di est uniforme, le terme
2Lai (d(s , s)) peut tre omis dans la relation prcdente car cest la mme va-
leur qui intervient dans toutes les mtriques de branche. Dans le cas dune
transmission sur un canal gaussien entres binaires, on a daprs (7.24) :


m+m

Mi (s , s) = 2Lai (d(s , s)) vi,l ui,l (7.41)
l=1

Les mtriques avant et arrire sont alors calcules partir des relations de
rcurrence suivantes :



m+m
Mi (s) =  min Mi1

(s ) vi1,l ui1,l + 2Lai1 (d(s , s)) (7.42)
s =0, ,2 1
l=1



m+m
Mi (s) = min Mi+1

(s ) vi,l ui,l + 2Lai (d(s, s ) (7.43)
s =0, ,2 1
l=1

Lapplication de lalgorithme Max-Log-MAP revient en fait raliser un double


dcodage de Viterbi, dans les sens aller et retour. Il est, pour cette raison,
galement appel algorithme dual Viterbi.
Si ltat de dpart du codeur, S0 , est connu, alors M0 (S0 ) = 0 et M0 (s) =
+ pour tout autre tat, sinon tous les M0 (s) sont initialiss la mme valeur.
La mme rgle est applique pour ltat nal. Pour les codes circulaires, toutes
les mtriques sont initialises la mme valeur en dbut de prologue.
Finalement, en tenant compte de (7.36) et en remplaant Mi (s , s) par son
expression (7.41), on obtient :



m+m
Ai (j) =  min Mi+1
(s) + Mi (s ) vi,l ui,l + 2Lai (j) (7.44)
(s ,s)/di (s ,s)j
l=1
234 Codes et turbocodes

La dcision dure prise par le dcodeur est la valeur de j, j = 0 2m 1, qui


minimise Ai (j). Notons j0 cette valeur. Daprs (7.38), Li (j) scrit :

1
Li (j) = [Ai (j) Ai (j0 )] pour j = 0 2m 1 (7.45)
2
On notera que la prsence du coecient 2 dans la dnition (7.30) de Li (j)
permet de saranchir de la connaissance de ce paramtre pour le calcul des
mtriques et par consquent pour tout le dcodage. Cest un avantage important
de la mthode Max-Log-MAP sur la mthode MAP.
Dans le contexte du dcodage itratif, le terme Lai (j) est modi an de
prendre en compte linformation extrinsque Li (j) en provenance de lautre
dcodeur lmentaire :

L@ a
i (j) = Li (j) + Li (j) (7.46)
Dautre part, linformation extrinsque produite par le dcodeur est obtenue
en liminant dans Li (j) les termes contenant linformation directe sur di , cest-
-dire les informations intrinsques et a priori :
" # 
$


m+m
Li (j) = 21
min Mi+1 (s) + Mi (s ) vi,l ui,l
(s ,s)/di (s ,s)j
# l=m+1

$% (7.47)

m+m
 min Mi+1 (s) + Mi (s )

vi,l ui,l
(s ,s)/di (s ,s)j0 l=m+1

Lexpression de Li (j) peut alors tre formule comme suit :

1  
m
Li (j) = Li (j) + vi,l [ ui,l |di j ui,l |di j0 ] + L@
i (j) Li (j0 )
@
(7.48)
2
l=1

Cette expression montre que linformation extrinsque Li (j) peut, en pra-


tique, tre dduite de Li (j) par simple soustraction. Le facteur 12 dans la dni-
tion (7.30) de Li (j) permet dobtenir une dcision pondre et une information
extrinsque Li (j) la mme chelle que les chantillons bruits vi,l .

7.4.3 Considrations pratiques


La manire la plus simple de raliser le turbo-dcodage est compltement
squentielle et fait appel aux oprations suivantes, ici fondes sur lalgorithme
Max-Log-MAP et rptes autant de fois que ncessaire :
1. Rcursion retour pour le code C2 (gure 7.12), calcul et mmorisation
des mtriques Mi (s), i = k 1, ..., 0 et s = 0, ..., 2 1,
2. Rcursion avant pour le code C2 , calcul des mtriques Mi (s), i = 0, ..., k
1 et s = 0, ..., 2 1. Calcul et mmorisation des informations extrin-
sques,
7. Turbocodes convolutifs 235

3. Rcursion retour pour le code C1 , calcul et mmorisation des mtriques


Mi (s), i = k 1, ..., 0 et s = 0, ..., 2 1,
4. Rcursion avant pour le code C1 , calcul des mtriques Mi (s), i = 0, ..., k
1 et s = 0, ..., 2 1. Calcul et mmorisation des informations extrin-
sques. Dcisions binaires ( la dernire itration).
Le premier problme pratique rside dans la mmoire ncessaire au sto-
ckage des mtriques Mi (s). Traiter des messages cods de k = 1000 bits par
exemple, avec des dcodeurs 8 tats et une quantication des mtriques sur
6 bits requiert premire vue une capacit de stockage de 48000 bits pour
chaque dcodeur. Dans un fonctionnement squentiel (traitement altern de
C1 et C2 ), cette mmoire peut, bien sr, tre utilise tour tour par les deux
dcodeurs. La technique utilise pour rduire notablement cette mmoire est
celle de la fentre glissante (sliding window ). Elle consiste (gure 7.15) rem-
placer le traitement retour complet, de i = k 1 0, par une succession de
traitements retour partiels, de i = iF 0, puis de i = 2iF iF , de i = 3iF
2iF etc., o iF est un intervalle de quelques dizaines de sections de treillis.
Chaque traitement retour partiel comprend un prologue (trait en tiret),
cest--dire une tape sans mmorisation dont le seul but est destimer le plus
correctement possible les mtriques cumules retour aux positions iF , 2iF , 3iF ,
etc. Les parties en trait plein correspondent des phases pendant lesquelles ces
mtriques sont mmorises. La mme mmoire peut tre utilise pour toutes
les rcursions retour partielles. Quant la rcursion aller, elle se droule sans
aucune discontinuit.
Le procd rduit fortement la capacit de stockage ncessaire qui, par
ailleurs, devient indpendante de la longueur des messages. Linconvnient r-
side dans la ncessit deectuer des oprations supplmentaires les prologues
qui peuvent augmenter la complexit de calcul totale de 10 20 %. Cependant,
ces prologues peuvent tre vits aprs la premire itration si les estimations
des mtriques aux indices frontires sont mises en mmoire pour servir de points
de dpart aux calculs de litration suivante.
Le deuxime problme pratique est celui de la rapidit et de la latence de
dcodage. Lampleur du problme dpend bien sr de lapplication et du rap-
port entre lhorloge du circuit de dcodage et le dbit des donnes. Si celui-ci
est trs lev, les oprations peuvent tre eectues par une seule machine,
suivant lordre squentiel prsent plus haut. Dans les processeurs spciali-
ss de type DSP (digital signal processor ), des co-processeurs cbls peuvent
tre disponibles pour acclrer le dcodage. Dans les circuits ddis de type
ASIC (application-specic integrated circuit), lacclration du dcodage est
obtenue en faisant appel au paralllisme, cest--dire en multipliant le nombre
doprateurs arithmtiques sans augmenter dautant, si possible, la capacit
des mmoires requises. Se posent alors gnralement des problmes daccs
ces mmoires.
Notons dabord que seule la connaissance de la permutation i = (j) est n-
cessaire la mise en uvre du dcodage itratif et non celle de la permutation
236 Codes et turbocodes

Figure 7.15 Droulement des rcursions avant et retour dans la mise en uvre de
lalgorithme MAP par fentre glissante.

inverse 1 , comme le laisseraient faussement supposer les schmas de prin-


cipe des gures 7.12 et 7.13. Considrons, par exemple, deux dcodeurs SISO
travaillant en parallle au dcodage des deux codes lmentaires du turbocode
et sappuyant sur deux mmoires double port pour linformation extrinsque
(gure 7.16). Le dcodeur DEC1 associ au premier code dlivre et reoit lin-
formation extrinsque dans lordre naturel i. Le dcodeur DEC2 associ au
deuxime code travaille selon lindice j mais crit et rcupre ses donnes aux
adresses i = (j). La connaissance de 1 , qui pourrait poser problme selon
le modle de permutation retenu, nest donc pas requise.

Figure 7.16 La mise en uvre du turbo-dcodage ne requiert pas la connaissance


explicite de 1

En outre, les deux mmoires dinformation extrinsques peuvent tre fusion-


nes en une seule en observant quune information extrinsque qui vient dtre
lue et exploite par un dcodeur na plus lieu dtre conserve. Elle peut donc
7. Turbocodes convolutifs 237

tre remplace aussitt aprs par une autre donne, qui peut tre linformation
extrinsque sortante du mme dcodeur. La gure 7.17 illustre ce procd qui
impose une hypothses lgre : les indices de travail i et j ont mme parit et
la permutation i = (j) inverse la parit. Par exemple, avec la permutation
dnie par (7.4), cette hypothse est satisfaite si lindice de dpart i0 est impair
et la longueur du message k paire.

Figure 7.17 En pratique, le stockage des informations extrinsques ne fait appel


qu une seule mmoire.

La mmoire dinformation extrinsque est partage en deux pages corres-


pondant aux sous-ensembles des adresses paires et impaires. Laccs ces deux
pages, en double port, est altern rgulirement. En gure 7.17(a), aux cycles
pairs, DEC1 lit une adresse paire et crit linformation extrinsque produite
lors du cycle prcdent, travers une mmoire tampon de retard unitaire,
une adresse impaire. Pendant ce temps, DEC2 lit une adresse paire et crit
une adresse impaire. En gure 7.17(b), durant les cycles impairs, les accs aux
pages dcriture-lecture sont changs.
Pour augmenter encore le degr de paralllisme dans le dcodeur itratif,
les oprations de rcursion avant et retour peuvent galement tre menes de
front lintrieur de chacun des deux dcodeurs (DEC1 et DEC2). Cela peut
tre mis en uvre aisment en considrant le diagramme de la gure 7.15.
Enn, suivant le modle de permutation employ, le nombre de dcodeurs
lmentaires peut tre augment au-del de deux. Considrons par exemple la
permutation circulaire dnie par (7.14) et (7.16), avec un cycle C = 4 et k
multiple de 4.
Les congruences de j et (j) modulo 4, sont priodiques. Un paralllisme
de degr 4 est alors possible suivant le principe dcrit dans la gure 7.18 [7.26].
Pour chaque rcursion aller ou retour (celles-ci pouvant galement se faire en
parallle), quatre processeurs sont utiliss. Ces processeurs, au mme instant,
traitent des donnes dont les adresses ont des congruences modulo 4 direntes.
Dans lexemple de la gure, la rcursion aller est considre et on suppose que
k/4 est aussi un multiple de 4. Alors, on fait dbuter le premier processeur
ladresse 0, le deuxime ladresse k/4 + 1, le troisime ladresse k/2 + 2
et enn le quatrime ladresse 3k/4 + 3. chaque instant, les processeurs
238 Codes et turbocodes

avanant dune place chaque fois, les congruences modulo 4 des adresses sont
toujours direntes. travers un aiguilleur qui dirige les quatre processeurs vers
quatre pages de mmoire correspondant aux quatre congruences possibles, les
conits dadressage sont carts. Si k/4 nest pas un multiple de 4, les adresses
de dpart ne sont plus exactement 0, k/4 + 1, k/2 + 2, 3k/4 + 3 mais le procd
est toujours applicable.

Figure 7.18 Le cercle de la rcursion avant est divis en 4 quadrants.

Quelle que soit la valeur du cycle C, des degrs de paralllisme plus levs,
de valeur pC, peuvent tre mis en uvre. En eet, un quelconque multiple de
C, cycle de base de la permutation, est aussi un cycle de la permutation, la
condition que pC soit un diviseur de k. Cest--dire que j modulo pC et (j)
modulo pC sont priodiques sur le cercle de longueur k, qui peut alors tre
dcoup en pC fractions dgales longueurs. Par exemple, un paralllisme de
degr 64 est possible pour une valeur de k gale 2048.
Toutefois, quel que soit le degr de paralllisme, une latence minimale est
incontournable : le temps de rception et de mise en mmoire tampon dun
paquet reu. Pendant que ce paquet est rang en mmoire, le dcodeur travaille
sur les informations contenues dans le paquet prcdent. Si ce dcodage est
ralis en un temps au plus gal au temps de mmorisation, alors la latence
totale de dcodage est au maximum deux fois ce temps de mmorisation. Le
niveau de paralllisme dans le dcodeur est ajust en fonction de cet objectif,
qui peut tre contraignant dans certains cas.
Pour en savoir plus sur limplmentation des turbo-dcodeurs et parmi
toutes les publications sur ce sujet, [7.32] constitue un bon prolongement de
cette section.
7. Turbocodes convolutifs 239

7.5 Les turbocodes m-binaires


Les turbocodes mbinaires sont construits partir de codes Convolutifs
Systmatiques Rcursifs (CSR) m entres binaires (m 2). Il y a deux
faons, au moins, de construire un code convolutif mbinaire : soit partir
du corps de Galois GF(2m ), soit partir du produit cartsien (GF (2))m . Il ne
sera question ici que de la dernire manire de faire, plus commode. En eet,
un code labor dans GF(2m ), avec une profondeur de mmoire , a 2m tats
possibles, alors que le nombre dtats du code dni dans (GF (2))m , avec la
mme profondeur, peut tre limit 2 .
Les avantages de la construction m-binaire par rapport au schma classique
des turbocodes (m = 1), sont divers : meilleure convergence du processus itra-
tif, plus grandes distances minimales, moindre poinonnage, latence plus faible,
robustesse envers la sous-optimalit de lalgorithme de dcodage, en particulier
quand lalgorithme MAP est simpli en sa version Max-Log-MAP [7.33].
Le cas m = 2 a dj t adopt dans les normes europennes de voie de
retour du rseau satellite et du rseau terrestre ([7.19,7.20]) ainsi que dans la
norme IEEE 802.16 [7.34]. Combin avec la technique des treillis circulaires,
ces turbocodes 8 tats dits double-binaires orent de bonnes performances
moyennes et une grande souplesse dadaptation direntes tailles de blocs et
dirents rendements, tout en gardant une complexit de dcodage raisonnable.

7.5.1 Codeurs CSR mbinaires


La gure 7.19 reprsente la structure gnrale dun codeur CSR mbinaire.
Il utilise un gnrateur pseudo-alatoire de mmoire de code et de matrice
gnratrice G (de taille ). Le vecteur dentre d m composantes est
connect aux direntes prises possibles grce une grille dinterconnexions
dont la matrice binaire, de taille m, est note C. Le vecteur T appliqu
aux prises possibles du registre linstant i, est donn par :
Ti = C.di (7.49)
avec di = (d1,i . . . dm,i ).
Si lon souhaite viter les transitions parallles dans le treillis du code, la
condition m doit tre respecte et la matrice C doit tre de rang plein. Ex-
cept pour des cas trs particuliers, ce codeur nest pas quivalent un codeur
une seule entre sur lequel on prsenterait successivement d1 , d2 , , dm . Un
codeur mbinaire nest donc pas dcomposable en gnral.
La sortie redondante de la machine (non reprsente sur la gure) est cal-
cule linstant i selon lexpression :

yi = dj,i + RT Si (7.50)
j=1...m

o Si est le vecteur dtat linstant i et RT est le vecteur transpos de


redondance. La p-ime composante de R vaut 1 si la p-ime composante de Si
240 Codes et turbocodes

Figure 7.19 Structure gnrale dun codeur CSR m-binaire de mmoire de code .
Lindice temporel nest pas reprsent.

est utilise dans la construction de yi et 0 sinon. On peut montrer que yi peut


aussi scrire comme :

yi = dj,i + RT G1 Si+1 (7.51)
j=1...m

condition que :
RT G1 C 0 (7.52)
Lexpression (7.50) assure dune part que le poids de Hamming du vecteur
(d1,i , d2,i , , dm,i , yi ) est au moins gal deux quand on scarte du chemin
de rfrence (chemin tout zro ), dans le treillis. En eet, inverser une
seule composante de di modie la valeur de yi . Dautre part, lexpression (7.51)
indique que le poids de Hamming du mme vecteur est aussi au moins gal
deux lorsque lon rejoint le chemin de rfrence. En conclusion, les relations
(7.50) et (7.51) ensemble garantissent que la distance libre du code, dont le
rendement est R = m/(m + 1), est au moins gale 4, quel que soit m.

7.5.2 Turbocodes m-binaires


Nous considrons une concatnation parallle de deux codeurs CSR m-bi-
naires associs une fonction de permutation de N mots de m bits (k = mN )
(gure 7.20). Les blocs sont cods deux fois par ce code bi-dimensionnel, dont
le rendement est m/(m + 2). Le principe des treillis circulaires est adopt pour
permettre le codage des blocs sans squence de terminaison et sans eet de
bord.
Les avantages de cette construction par rapport aux turbocodes classiques
sont les suivants :
Meilleure convergence. Cet avantage, observ tout dabord dans [7.35],
comment dans [7.36] et, dune manire dirente, dans [7.33], sexplique
par une plus faible densit derreurs sur chacune des deux dimensions du
processus itratif. Reprenons la relation (7.8) qui fournit la borne sup-
rieure de la distance spatiale cumule pour un code binaire et adaptons-la
7. Turbocodes convolutifs 241

Figure 7.20 Turbocodeur m-binaire.

un code m-binaire :
2k
sup Smin = (7.53)
m
Pour un rendement de codage R, le nombre de bits de parit produits par
la squence de longueur cumule sup Smin est :
   
1R m 1R mk
nparit (sup Smin ) = sup Smin = (7.54)
R 2 R 2
Ainsi, en remplaant un turbocode binaire (m = 1) par un code double-
binaire (m = 2), le nombre de bits de parit dans la squence considre
est multipli par 2, bien que la distance spatiale cumule ait t rduite
dans le mme rapport. Parce que les bits de parit sont des informa-
tions locales pour les deux dcodeurs lmentaires (et ne sont donc pas
source de corrlation entre ceux-ci), en augmenter le nombre amliore la
convergence. Augmenter m au del de 2 amliore encore un peu le com-
portement vis--vis de la corrlation mais les eets sont moins visibles
que lors du passage de m = 1 m = 2.
Plus grandes distances minimales. Comme expliqu ci-dessus, le
nombre de bits de parit produits par des squences RTZ de poids den-
tre 2 est augment en utilisant des codes m-binaires. Il en est de mme
pour toutes les squences RTZ simples telles que dnies dans la sec-
tion 7.3.2. Le nombre de bits de parit pour ces squences est au moins
gal nparit (sup Smin ). Les distances de Hamming correspondantes sont
donc encore plus leves que celles qui sont obtenues avec des codes bi-
naires et contribuent dautant moins la DMH du turbocode. Quant aux
distances associes aux motifs RTZ multiples, qui sont gnralement ceux
qui xent la DMH, elles sont fonction de la qualit de la permutation mise
en uvre (voir section 7.3.2).
Moindre poinonnage. Pour obtenir des rendements de codage sup-
rieurs m/(m + 1) partir du codeur de la gure 7.20, il nest pas
ncessaire de supprimer autant de symboles de redondance quavec un
codeur binaire. La performance des codes lmentaires en est amliore
242 Codes et turbocodes

comme le montre la gure 7.21. Dans cette gure sont compars le pou-
voir de correction de codes convolutifs de rendements 2/3 et 6/7, dans la
version binaire (m = 1) et double-binaire (m = 2).

Figure 7.21 Performance de codes convolutifs simples binaires (m = 1) et double-


binaire (m = 2), pour R = 2/3 et R = 6/7.

Latence rduite. Aussi bien du point de vue du codage que du dcodage,


la latence (cest--dire le nombre de cycles dhorloge ncessaire au trai-
tement) est divise par m puisque les donnes sont traites par groupes
de m bits. Il se peut toutefois que le chemin critique du circuit de dco-
dage soit augment par rapport au cas m = 1 car plus de donnes sont
considrer dans un cycle dhorloge. Des solutions de paralllisme telles
que celles proposes dans [7.37] peuvent aider augmenter la frquence
du circuit.
Robustesse du dcodeur. Pour les turbocodes binaires, la dirence de
performance entre lalgorithme MAP et ses versions simplies ou entre
lalgorithme MAP et le SOVA, varie de 0, 2 0, 6 dB, suivant la taille des
blocs et les rendements de codage. Cette dirence est divise par deux
quand on utilise les turbocodes double-binaires et peut mme tre plus
faible pour m > 2. Cette proprit favorable (et lgrement surprenante)
peut sexpliquer de la manire suivante : pour un bloc de taille donne (k
bits), plus le nombre dtapes dans le treillis est faible, plus le dcodeur
7. Turbocodes convolutifs 243

est proche du dcodeur Maximum de Vraisemblance (MV), quel que


soit lalgorithme sur lequel il sappuie. la limite, un treillis rduit
une seule tape et contenant donc tous les mots de code possibles est
quivalent un dcodeur MV.

Turbocode double-binaire 8 tats


La gure 7.22(a) donne quelques exemples de performances obtenues avec
le turbocode de [7.19], pour un rendement 2/3. Les paramtres des codeurs
constituants sont :

1 0 1 1 1 1
G = 1 0 0 ,C = 0 1 ,R = 1
0 1 0 0 1 0

La fonction de permutation utilise la fois un dsordre inter et intra-symbole.


On peut notamment observer :
de bonnes performances moyennes pour ce code dont la complexit de
dcodage reste trs raisonnable (environ 18000 portes par itration plus
la mmoire) ;
une certaine cohrence vis--vis de la variation de performance avec la
taille des blocs (en accord avec les courbes des gures 3.6, 3.9, 3.10).
La mme cohrence pourrait aussi tre observe sur la variation de la
performance avec le rendement de codage ;
une quasi-optimalit du dcodage aux faibles taux derreurs. La courbe
asymptotique thorique pour 188 octets a t calcule partir de la seule
connaissance de la distance minimale du code (cest--dire 13 avec une
multiplicit relative de 0, 5) et non partir du spectre total des distances.
Malgr cela, la dirence entre la courbe asymptotique et la courbe ob-
tenue par simulation nest que de 0, 2 dB pour un TEP de 107 .

Turbocode double-binaire 16 tats


Lextension du schma prcdent vers des codeurs lmentaires 16 tats
permet daugmenter nettement les distances minimales. On peut par exemple
choisir :
0 0 1 1 1 1 1
1 0 0 0 0 1 1
G= ,C =
,R =
0 1 0 0 0 0 1
0 0 1 0 0 1 0
Pour le turbocode de rendement 2/3, toujours avec des blocs de 188 octets,
la distance minimale obtenue est gale 18 (multiplicit relative de 0, 75) au
lieu de 13 pour le code 8 tats. La gure 7.22(b) montre le gain obtenu
pour de faible taux derreurs : environ 1 dB pour un TEP de 107 et 1,4 dB
asymptotiquement en considrant les distances minimales respectives. On peut
noter que le seuil de convergence est peu prs le mme pour les dcodeurs 8
244 Codes et turbocodes

Figure 7.22 (a) Performance en TEP dun turbocode double-binaire 8 tats pour
des blocs de 12, 14, 16, 53 et 188 octets. MDP-4, bruit BABG et rendement 2/3.
Dcodage Max-Log-MAP avec des chantillons dentre de 4 bits et 8 itrations. (b)
Performance en TEP dun turbocode double-binaire 16 tats pour des blocs de 188
octets (MDP-4 et MDP-8) et 376 octets (MDP-8), bruit BABG et rendement 2/3.
Dcodage Max-Log-MAP avec des chantillons dentre de 4 bits (MDP-4) ou 5 bits
(MDP-8) et 8 itrations.

et 16 tats, les courbes tant pratiquement identiques pour un TEP suprieur


104 . La Limite thorique (LT), pour R = 2/3 et pour une taille de blocs
de 188 octets, est 1,7 dB. Les performances du dcodeur dans ce cas sont : LT
+ 0,9 dB pour un TEP de 104 et LT + 1,3 dB pour un TEP de 107 . Ces
carts sont typiques de ce que lon obtient dans la plupart des congurations
de rendement et de taille de bloc.
Le remplacement de la modulation MDP-4 par une modulation MDP-8, sui-
vant lapproche dite pragmatique, donne les rsultats reports en gure 7.22(b),
pour des blocs de 188 et 376 octets. L encore, de bonnes performances du code
double-binaire peuvent tre observes, avec des pertes par rapport aux limites
thoriques (qui sont environ 3,5 et 3,3 dB, respectivement) proches de celles
obtenues avec une modulation MDP-4. Lassociation des turbocodes avec dif-
frentes modulations est dtaille dans le chapitre 8.
7. Turbocodes convolutifs 245

Pour un systme particulier, le choix entre un turbocode 8 ou 16 tats


dpend, outre de la complexit souhaite pour le dcodeur, du taux derreurs
cible. Pour simplier, disons quun turbocode 8 tats sut pour des TEP su-
prieurs 104 . Cest gnralement le cas pour les transmissions avec possibilit
de rptition (ARQ : Automatic Repeat reQuest). Pour des TEP infrieurs, ty-
piques de la diusion ou des applications de mmoire de masse, le code 16
tats est largement prfrable.

7.6 Outils danalyse


7.6.1 Performances thoriques
La gure 1.6 met en vidence deux paramtres essentiels permettant dva-
luer la performance dun code correcteur derreurs et de son dcodeur :
le gain asymptotique mesurant le comportement faible taux derreurs du
systme cod. Celui-ci est principalement dict par la DMH du code (voir
section 1.5). Une faible valeur de la DMH entrane un fort changement
de pente (attening) dans la courbe de taux derreurs. Lorsque le gain
asymptotique est atteint, la courbe TEB(Eb /N0 ) avec codage devient
parallle la courbe sans codage.
le seuil de convergence dni comme le rapport signal bruit partir
duquel le systme cod devient plus performant que le systme de trans-
mission non cod ;
Dans le cas des turbocodes et du processus itratif de leur dcodage, il
nest pas toujours ais destimer les performances aussi bien du ct du gain
asymptotique que de celui de la convergence. Les mthodes destimation ou
de dtermination de la distance minimale proposes par Berrou et al [7.38],
Garello et al [7.39] et Crozier et al [7.40] sont prsentes dans la suite de ce
chapitre. La mthode du diagramme EXIT propose par ten Brink [7.42] pour
estimer le seuil de convergence est galement introduite.

7.6.2 Comportement asymptotique


La qualication par simulation des performances faibles taux derreurs
des codes correcteurs derreurs demande une puissance de calcul importante.
Il est cependant possible destimer ces performances lorsque la DMH dmin et
la multiplicit sont connues (voir section 1.5). Ainsi le taux derreurs paquet
fort rapport signal bruit Eb /N0 est donn par le premier terme de la borne de
lunion (UB pour union bound ). Lexpression de UB est dcrite par la relation
( 3.21), et lestimation du TEP, donne par lquation (1.16), est reproduite
ici : # $
1 Eb
TEP N (dmin )erfc Rdmin (7.55)
2 N0
246 Codes et turbocodes

o N (dmin ), la multiplicit, reprsente le nombre de mots de code la distance


minimale.
La distance minimale dun code nest, dans le cas gnral, pas simple
dterminer sauf si le nombre de mots du code est susamment petit pour pou-
voir en dresser la liste exhaustive ou bien si des proprits particulires du code
permettent dtablir une expression analytique de cette grandeur (par exemple,
la distance minimale dun code produit est gale au produit des distances mi-
nimales des codes constituants). Dans le cas des turbocodes convolutifs, la
distance minimale ne sobtient pas de manire analytique, les seules mthodes
proposes sont bases sur lnumration, totale ou partielle [7.41], des mots de
code dont le poids dentre est infrieur ou gal la distance minimale. Ces
mthodes ne sont applicables en pratique que pour des tailles de blocs et des
distances minimales faibles, cest pourquoi elles ne seront pas dcrites ici.

Mthode de limpulsion derreur

Cette mthode, propose par Berrou et al [7.38], nest pas base sur lanalyse
des proprits du code mais sur la capacit de correction du dcodeur. Son
principe, illustr par la gure 7.23, consiste superposer la squence dentre
du dcodeur une impulsion derreur dont on fait crotre lamplitude Ai jusqu
ce le dcodeur ne sache plus la corriger.

Figure 7.23 Schma de principe de la mthode dimpulsion derreur.

Le code considr tant linaire, la squence transmise est suppose tre la


squence tout 0 . Lopration de codage produit alors des mots de code qui
ne contiennent, eux aussi, que des 0. Ceux-ci sont ensuite convertis en valeurs
relles gales -1. Si cette succession de symboles tait directement applique
au dcodeur, celui-ci ne rencontrerait aucune dicult retrouver le message
dorigine car le canal de transmission est parfait.
La mthode propose consiste ajouter une impulsion derreur au i-ime
symbole (0 i k 1) de la squence dinformation (partie systmatique),
cest--dire transformer un symbole 1 en un symbole ayant une valeur
positive gale 1 + Ai . Si lamplitude Ai est susamment importante, le
dcodeur ne converge pas vers le mot tout 0 . Notons Ai lamplitude maxi-
male de limpulsion la position i ne mettant pas en dfaut le dcodeur. Il
est montr dans [7.38] que, si le dcodeur eectue un dcodage maximum de
7. Turbocodes convolutifs 247

Figure 7.24 TEP mesur et estim (UB ) du turbocode DVB-RCS pour la trans-
mission de blocs MPEG (188 octets) avec des rendements de codage 2/3 et 4/5.
Modulation MDP-4 et canal gaussien.

vraisemblance, la distance impulsionnelle dimp = min (Ai ), est aussi la


i=0, ,k1
distance minimale dmin du code.

Il nest en gnral pas ncessaire de tester toutes les positions de la squence.


Pour un code invariant par dcalage (cest le cas des codes convolutifs), il sut
dappliquer limpulsion derreur sur une seule position du bloc de donnes. Pour
un code prsentant une priodicit de priode P , il est ncessaire de tester P
positions. Cette mthode est applicable nimporte quel code linaire, pour
toute taille de bloc et tout rendement de codage et ne requiert que de quelques
secondes quelques minutes de calcul sur un ordinateur courant, le temps de
calcul tant une fonction linaire de la taille du bloc ou de sa priode P .

Lorsque le dcodage nest pas maximum de vraisemblance, la mthode


nest plus rigoureuse et ne dlivre quune estimation de la distance minimale.
En outre, la multiplicit des mots de code la distance dmin nest pas fournie
et la formule (7.55) ne peut tre applique sans hypothses particulires sur
les proprits du code. Dans le cas des turbocodes, deux hypothses ralistes
peuvent tre formules pour estimer la multiplicit : un seul mot de code
la distance Ai a son i-ime bit dinformation 1 (unicit), les grandeurs Ai
correspondant toutes les positions i proviennent de mots de codes distincts
(non recouvrement).
248 Codes et turbocodes

Une estimation du TEP est alors donne par :



1
k1
Eb
TEP erfc( RAi ) (7.56)
2 i=0 N0

La premire hypothse (unicit) sous-value la valeur du taux derreurs au


contraire de la seconde (non recouvrement) qui la survalue et au total les
deux eets se compensent. titre dexemple, la gure 7.24 compare les perfor-
mances mesures du turbocode DVB-RCS, pour deux rendements de codage,
avec leur estimation dduite de (7.56). Les paramtres obtenus par la mthode
de limpulsion derreur sont :
dmin = 13 et n(dmin ) = 752 pour R = 2/3
dmin = 8 et n(dmin ) = 940 pour R = 4/5
un taux derreurs paquet de 107 , moins de 0,2 dB sparent les courbes
mesures et estimes.

Mthode de limpulsion derreur modie


Lapproche de Garello et al [7.39] est similaire la mthode de limpulsion
derreur prsente prcdemment. En eet, il sagit de placer une impulsion au
rang i dans le mot de code tout 0 . Cette fois, lamplitude de limpulsion est
susamment leve pour que le dcodeur ne converge pas vers le mot de code
tout 0 mais vers une autre squence qui contient un 1 la position i. Par
ailleurs, un bruit gaussien est ajout la squence dentre du dcodeur, ce qui
tend aider celui-ci converger vers le mot concurrent de poids le plus faible.
Cest ce qui se produit le plus souvent quand le niveau de bruit est bien ajust.
Dans tous les cas, le poids du mot de code dlivr par le dcodeur est une limite
suprieure de la distance minimale de tous les mots de code contenant un 1 au
rang i. La distance minimale et la multiplicit sont estimes en balayant toutes
les positions. Cet algorithme fonctionne trs bien pour des distances faibles et
moyennes.

Mthode de la double impulsion derreur


La mthode propose par Crozier et al [7.40] est une amlioration de la
prcdente, au prix dun temps de calcul plus lev. Il sagit de placer une
premire impulsion de fort niveau au rang i et une seconde un rang j droite
de i et tel que j i < R. La limite suprieure de R est 2D o D est un majorant
de la distance valuer. Il est ensuite appliqu un dcodage semblable celui
dcrit prcdemment mais avec une plus forte probabilit dobtenir un mot de
code la distance minimale. Le temps de calcul est accru dans un rapport R.
7. Turbocodes convolutifs 249

7.6.3 Convergence

Un dcodeur SISO peut tre vu comme un processeur qui transforme une


de ses grandeurs dentre, le LRV de linformation extrinsque servant dinfor-
mation a priori, en un LRV extrinsque de sortie. Dans un dcodage itratif,
les caractristiques de linformation extrinsque fournie par le dcodeur 1 d-
pendent de linformation extrinsque fournie par le dcodeur 2 et vice-versa. Le
degr de dpendance entre les informations extrinsques dentre et de sortie
peut tre mesur par linformation mutuelle moyenne (IMM).
Lide mise en uvre par Ten Brink [7.42] est de suivre sur un diagramme,
appel diagramme EXIT (EXtrinsic Information Transfer chart), lchange
dinformation extrinsque travers les dcodeurs SISO travaillant en parallle.
Pour laborer le diagramme EXIT, il est ncessaire de connatre les caractris-
tiques de transfert de linformation extrinsque de chaque dcodeur SISO utilis
dans le dcodage. Cette section prsente ltablissement de la fonction de trans-
fert de linformation extrinsque pour un dcodeur SISO, puis la construction
du diagramme EXIT, et enn lanalyse de la convergence du dcodeur itratif.

Figure 7.25 Variation de la variance z en fonction de linformation mutuelle


moyenne IA

Fonction de transfert dun dcodeur SISO de linformation extrin-


sque

a. Dnition de linformation mutuelle moyenne (IMM)

Si linformation extrinsque pondre z sur llment binaire cod x


{ 1, +1} suit une densit de probabilit conditionnelle f (z|x), lIMM I(z, x)
250 Codes et turbocodes

mesure la quantit dinformation apporte en moyenne par z sur x et vaut :



+  
1  2f ( z| x)
I (z, x) = f ( z| x) log2 dz (7.57)
2 x=1,+1 f ( z| 1) + f ( z| + 1)

Figure 7.26 algorithme de dtermination de la fonction de transfert IE =


T (IA, Eb/N 0)

b. Dnition de linformation mutuelle moyenne a priori

Hypothses :
Hyp. 1 : lorsque lentrelacement est de taille susamment grande, la
distribution de linformation extrinsque dentre peut tre approche
par une distribution gaussienne aprs quelques itrations.
Hyp. 2 : la densit de probabilit f (z|x) vrie la condition de symtrie
exponentielle, savoir f (z|x) = f (z|x)exp(z).
La premire hypothse permet de modliser le LRV a priori ZA dun dcodeur
SISO par une variable aecte dun bruit gaussien indpendant nz , de variance
z et desprance z , applique au symbole dinformation transmis x selon
lexpression :
ZA = z x + nz
La seconde hypothse impose z2 = 2z . Lamplitude de linformation extrin-
sque est donc modlise par la distribution suivante :
" %
2
1 ( z x)
f ( | x) = exp (7.58)
4z 4z
De (7.57) et (7.58), en remarquant que f ( z| 1) = f ( z| 1), on dduit lin-
formation mutuelle moyenne a priori :

+ " %  
2
1 ( z ) 2
IA = exp log2 d
4z 4z 1 + exp ()

soit encore :

+ " - C .2 %
1 z2 2
IA = 1 exp log2 [1 + exp ()] d (7.59)
2z 2z2

7. Turbocodes convolutifs 251

On peut noter que lim IA = 0 (linformation extrinsque napporte aucune


z 0
information sur la donne x) et que lim IA = 1 (linformation extrinsque
z +
dtermine parfaitement la donne x).
IA est une fonction croissante et monotone de z , elle est donc inversible. La
fonction z = f (IA) est reprsente en gure 7.25.

Figure 7.27 (a) Caractristique de transfert de linformation extrinsque pour un


codeur binaire 16 tats de rendement 2/3 et un dcodage MAP dirents Eb/N0.
(b) Diagramme EXIT et trajectoire pour le turbocode correspondant, avec un entre-
lacement pseudo-alatoire sur 20000 bits, pour Eb /N0 = 2dB.

c. Calcul de linformation mutuelle moyenne de sortie

La relation (7.57) permet de calculer linformation mutuelle moyenne IS lie


linformation extrinsque produite par le dcodeur SISO :

+  
1  2fs ( z| x)
IS = fs ( z| x) log2 dz (7.60)
2 x=1,+1 fs ( z| 1) + fs ( z| + 1)

On peut noter que IS [0, 1].


La distribution fs nest pas gaussienne, il est donc ncessaire dutiliser un
outil de calcul numrique pour la dterminer, ce qui constitue le gros dsavan-
tage de cette mthode. Si on regarde lIMM de sortie IS comme une fonction de
IA et du rapport signal bruit Eb /N0 , la fonction de transfert de linformation
extrinsque est dnie par :
IE = T (IA, Eb /N0 ) (7.61)
252 Codes et turbocodes

d. Mthode pratique pour obtenir la fonction de transfert de linformation


extrinsque

La gure 7.26 dcrit le cheminement dans ltablissement de la caractris-


tique de transfert de linformation extrinsque dun dcodeur SISO.
tape 1 : Gnration du message pseudo alatoire d mettre ; au moins
10000 bits sont ncessaires pour que les proprits statistiques soient re-
prsentatives.
tape 2 : Codage des donnes avec un rendement R puis modulation
MDP-2 du signal ; les donnes systmatiques et de redondance appar-
tiennent lalphabet {-1,+1}.
tape 3 : Application dun bruit gaussien de rapport signal bruit Eb /N0
(en dB), de variance


 Eb
 1 100,1 /N0
=
2 R

tape 4 : Application aux donnes mises (stockes dans un chier) de


la loi normale N (z , z ) correspondant linformation mutuelle moyenne
souhaite IA (voir gure 7.25) pour obtenir la distribution dinformation
extrinsque a priori.
tape 5 : Initialisation du dcodeur SISO avec les LRV a priori (il pourra
savrer ncessaire suivant lalgorithme de dcodage choisi de transformer
les LRV en probabilits).
tape 6 : Rcupration dans un chier des LRV en sortie du dcodeur
SISO (correspondant une demi-itration du processus de dcodage).
tape 7 : Utilisation dun logiciel de calcul numrique pour valuer IS
(relation (7.60)).
Tracer les histogrammes des rpartitions des LRV de sortie en fonction
du bit mis (do la ncessit de stocker ces informations dans deux
chiers).
valuer lintgrale par la mthode des trapzes.
Le rsultat est lIMM de sortie IS correspondant lIMM dentre IA.

e. Un exemple

Les simulations ont t faites sur un turbocode binaire 16 tats de rende-


ment 2/3, avec un entrelacement pseudo-alatoire de 20000 bits. Lalgorithme
de dcodage est lalgorithme MAP. La gure 7.27(a) fournit la relation entre
IS et IA en fonction du rapport signal bruit du canal gaussien.
7. Turbocodes convolutifs 253

Diagramme EXIT

La caractristique de transfert de linformation extrinsque est maintenant


connue pour un dcodeur SISO. Dans le cas du dcodage itratif, la sor-
tie du dcodeur 1 devient lentre du dcodeur 2 et vice versa. Les courbes
IS1 = f (IA1 = IS2) et IS2 = f (IA2 = IS1), identiques une symtrie prs si
les dcodeurs SISO sont les mmes, sont places sur le mme graphique comme
le montre la gure 7.27(b). Dans le cas dun rapport signal bruit susam-
ment lev (ici 2 dB), les deux courbes ne prsentent pas dintersection en
dehors du point de coordonnes (1,1) qui matrialise la connaissance du mes-
sage reu. Il est alors possible en partant dune information mutuelle nulle de
suivre lchange des informations extrinsques au fur et mesure des itrations.
Sur lexemple de la gure 7.27(b), une arrive au point (1,1) seectue en 3,5
itrations.

Figure 7.28 Diagrammes EXIT pour dirents Eb /N0 dans le cas de turbocodes
binaires, rendement 2/3, entrelacement pseudo-alatoire de 20000 bits, dcodage MAP
(a) 16 tats et (b) 8 tats.

Lorsque le rapport signal bruit est trop faible, les courbes prsentent
comme dans le cas Eb /N0 = 1, 4 dB dans la gure 7.28(b) des points dinter-
section autres que le point (1,1). Le processus itratif dmarrant dune IMM
nulle en entre ne pourra donc pas aboutir une dtermination parfaite du
message. Le rapport signal bruit minimal pour lequel il nexiste pas dinter-
section autre que le point (1,1) est le seuil de convergence du turbocodeur. Dans
lexemple simul, cette convergence peut tre estime autour de 1,4 dB pour
les turbocodes binaires 16 tats (gure 7.28(a)) et 8 tats (gure 7.28(b)).
254 Codes et turbocodes

Figure 7.29 Taux derreurs binaire dun turbocode binaire 16 tats (a) et 8 tats
(b) de rendement 2/3, avec entrelacement pseuso-alatoire de 20000 bits. Dcodage
MAP avec 1, 3, 6, 10, 15 et 20 itrations et comparaison avec le seuil de convergence
estim par la mthode EXIT.

La gure 7.29 reprsente les performances de turbocodes binaires 16 tats


et 8 tats en fonction du nombre ditrations et les compare avec le seuil de
convergence estim par la mthode du diagramme EXIT.
7. Turbocodes convolutifs 255

7.7 Bibliographie
[7.1] G. Battail, Coding for the Gaussian channel : the promise of weighted-
output decoding , International Journal of Satellite Communications, Vol. 7,
pp. 183-192, 1989.
[7.2] G. Battail, Pondration des symboles dcods par lalgorithme de
Viterbi , Ann. Tlcommun., Fr., 42, N 1-2, pp. 31-38, Jan. 1987.
[7.3] J. Hagenauer and P. Hoeher, A Viterbi algorithm with soft-decision
outputs and its applications , Proc. Globecom 89, Dallas, Texas, pp. 47.11-
47-17, Nov. 1989.
[7.4] J. Hagenauer and P. Hoeher, Concatenated Viterbi-decoding , Proc.
Int. Workshop on Inf. Theory, Gotland, Sweden, Aug-Sep. 1989.
[7.5] P. Elias, Error-free coding , IEEE Trans. Info. Theory, vol. 4, N
4, pp. 29-39, Sept. 1954.
[7.6] R. M. Tanner, A recursive approach to low complexity codes , IEEE
Trans. Inform. Theory, Vol. IT-27, pp. 533-547, Sept. 1981.
[7.7] R. G. Gallager, Low-density parity-check codes , IRE Trans. Inform.
Theory, Vol. IT-8, pp. 21-28, Jan. 1962.
[7.8] C. Berrou, P. Adde, E. Angui and S. Faudeil, A low complexity soft-
output Viterbi decoder architecture , Proc. of ICC 93, Geneva, pp. 737-740,
May 1993.
[7.9] C. Berrou, Procd de codage correcteur derreurs au moins deux co-
dages convolutifs systmatiques en parallle, procd de dcodage itratif, mo-
dule de dcodage et dcodeur correspondants, brevet France dpt N91 05280,
Europe N92 460013.3, USA N07/870,814, France Tlcom et TDF, avril 1992
[7.10] C. Berrou, A. Glavieux and P. Thitimajshima, Near Shannon limit
error-correcting coding and decoding : turbo-codes , Proc. ICC 93, Geneva,
pp. 1064-1070, May 1993.
[7.11] A. R. Calderbank, The art of signaling : fty years of coding
theory , IEEE Trans. Info. Theory, vol. 44, N 6, pp. 2561-2595, Oct. 1998.
[7.12] C. Berrou and A. Glavieux, Reections on the Prize paper : Near
optimum error correcting coding and decoding : turbo-codes , IEEE IT Society
Newsletter, Vol. 48, N 2, June 1998, galement disponible
www.ieeeits.org/publications/nltr/98_jun/reections.html.
[7.13] C. Berrou, C. Douillard and M. Jzquel, Multiple parallel conca-
tenation of circular recursive convolutional (CRSC) codes , Ann. Tlcomm.,
Tome 54, N 3-4, pp. 166-172, March-April 1999.
[7.14] Consultative Committee for Space Data Systems, Recommendations
for Space Data Systems. Telemetry Channel Coding, BLUE BOOK, May 1998.
[7.15] 3GPP Technical Specication Group, Multiplexing and Channel Co-
ding (FDD), TS 25.212 v2.0.0, June 1999.
[7.16] C. Berrou and M. Jzquel, Frame-oriented convolutional turbo-
codes , Electronics letters, Vol. 32, N 15, pp. 1362-1364, July 1996.
[7.17] C. Weiss, C. Bettstetter, S. Riedel and D.J. Costello, Turbo decoding
with tail-bitting trellises , Proc. Signals, Systems and Electronics, URSI Intl
256 Codes et turbocodes

Symposium, pp. 343-348, Sept.-Oct. 1998.


[7.18] C. Weiss, C. Bettstetter and S. Riedel, Code constuction and de-
coding of parallel concatenated tail-biting codes , IEEE Trans. Info. Theory,
Vol. 47, Issue 1, pp. 366-386, Jan. 2001.
[7.19] DVB, Interaction channel for satellite distribution systems, ETSI EN
301 790, V1.2.2, pp. 21-24, Dec. 2000.
[7.20] DVB, Interaction channel for digital terrestrial television, ETSI EN
301 958, V1.1.1, pp. 28-30, Aug. 2001.
[7.21] Y. V. Svirid, Weight distributions and bounds for turbo-codes ,
European Trans. on Telecomm, Vol. 6, N 5, pp. 543-55, Sept.-Oct. 1995.
[7.22] E. Boutillon and D. Gnaedig, Maximum Spread of D-dimensional
Multiple Turbocodes , IEEE Trans. Commun., Vol. 53, N 8, pp 1237 - 1242,
Aug. 2005.
[7.23] C. Berrou, C. Douillard and M. Jzquel, Designing turbocodes for
low error rates , IEE colloquium : Turbocodes in digital broadcasting Could
it double capacity ?, pp. 1-7, London, Nov. 1999.
[7.24] H. R. Sadjadpour, N. J. A. Sloane, M. Salehi and G. Nebe, Inter-
leaver design for turbocodes , IEEE Journal on Selected Areas in Commun.,
Vol. 19, N 5, pp. 831-837, May 2001.
[7.25] C. Heegard and S. B. Wicker, Turbo coding, Chap. 3, Kluwer Academic
Publishers, 1999.
[7.26] C. Berrou, Y. Saouter, C. Douillard, S. Keroudan and M. Jzquel,
Designing good permutations for Turbocodes : towards a single model ,
ICC04, Paris, France, June 2004.
[7.27] S. Crozier and P. Guinand, Distance upper bounds and true mi-
nimum distance results for turbo-codes with DRP interleavers , Proc. of 3rd
Intl Symposium on Turbocodes & Related Topics, pp. 169-172, Brest, France,
Sept. 2003.
[7.28] Y. Weiss and W. T. Freeman, On the optimality of solutions of the
max-product belief-propagation algorithm in arbitrary graphs , IEEE Trans.
Inform. Theory, Vol. 47, Issue 2, pp. 736-744, Feb. 2001.
[7.29] L. Duan and B. Rimoldi, The iterative turbo decoding algorithm
has xed points , IEEE Trans. Inform. Theory, Vol. 47, N 7, pp. 2993-2995,
Nov. 2001.
[7.30] L.R. Bahl, J. Cocke, F. Jelinek and J. Raviv : Optimal decoding of
linear codes for minimizing symbol error rate , IEEE Trans. Inform. Theory,
IT-20, pp. 248-287, Mar. 1974.
[7.31] P. Robertson, P. Hoeher and E. Villebrun, Optimal and subopti-
mal maximum a posteriori algorithms suitable for turbo decoding , European
Trans. Telecommun., vol. 8, pp. 119-125, March-Apr. 1997.
[7.32] Z. Wang, Z. Chi and K. K. Parhi, Area-ecient high-speed decoding
schemes for turbo decoders , IEEE Trans. VLSI Systems, Vol. 10, N 6, pp.
902-912, Dec. 2002.
[7.33] C. Douillard and C. Berrou, Turbo codes with rate-m/(m+1) consti-
tuent convolutional codes , IEEE Trans. Commun., Vol. 53, N10, pp. 1630-
7. Turbocodes convolutifs 257

1638, Oct. 2005.


[7.34] IEEE Std 802.16a, IEEE standard for local and metropolitan area
networks, 2003, available at
http ://standards.ieee.org/getieee802/download/802.16a-2003.pdf.
[7.35] C. Berrou, Some clinical aspects of turbocodes , Intl Symposium
on turbocodes & related topics, pp. 26-31, Brest, France, Sept. 1997.
[7.36] C. Berrou and M. Jzquel, Non binary convolutional codes for
turbo coding , Elect. Letters, Vol. 35, N 1, pp. 39-40, Jan. 1999.
[7.37] H. Lin and D. G. Messerschmitt, Algorithms and architectures for
concurrent Viterbi decoding , Proc. ICC89, pp. 836-840, Boston, June 1989.
[7.38] C. Berrou, S. Vaton, M. Jzquel and C. Douillard, Computing the
minimum distance of linear codes by the error impulse method , IEEE Global
Communication Conference, Globecom2002, Taipei, Taiwan, Nov. 2002, pp.
1017-1020.
[7.39] R. Garello and A. Vila Casado, The all-zero iterative decoding
algorithm for turbo code minimum distance computation , pp. 361-364, ICC
2004., Paris, 20-24 June 2004.
[7.40] S. Crozier, P. Guinand and A. Hunt, Computing the Minimum
Distance of Turbo-Codes Using Iterative Decoding Techniques , Proceedings of
the 22nd Biennial Symposium on Communications, Kingston, Ontario, Canada,
pp. 306-308, May 31-June 3, 2004.
[7.41] R. Garello, P. Pierloni and S. Benedetto, Computing the free dis-
tance of turbo codes and serially concatened codes with interleavers : Algo-
rithms and Applications , IEEE Journal on Select. Areas in Comm., May
2001.
[7.42] Stephan ten Brink, Convergence behavior of iteratively decoded
parallel concatenated codes , IEEE trans. On Comm., vol. 49, N 10, Oct.
2001.
Chapitre 8

Turbocodes produits

8.1 Historique
En vertu de la borne de Gilbert-Varshamov, il est ncessaire davoir des
codes longs pour obtenir des codes en blocs ayant une distance minimale de
Hamming (DMH)importante et donc un fort pouvoir de correction. Or, sans
structure particulire, il est presque impossible de dcoder ces codes.
Linvention des codes produits, due Elias [8.1], se place dans cette pro-
blmatique : il sagit dun moyen simple dobtenir des codes haut pouvoir
de correction aisment dcodables partir de codes lmentaires simples. Ces
codes produits peuvent tre vus comme une ralisation particulire du principe
de concatnation (chapitre 6).
Le premier algorithme de dcodage dcoule immdiatement de la construc-
tion de ces codes. Il sagit de lalgorithme alternant le dcodage, en dcision
dure, des codes lmentaires sur les lignes et les colonnes. Malheureusement
cet algorithme ne permet pas datteindre le pouvoir de correction maximum de
ces codes. Lalgorithme de Reddy-Robinson [8.2] permet de latteindre. Mais
sans doute en raison de sa complexit, il na jamais t implant dans des
applications pratiques.
Ce chapitre a pour but de faire une prsentation assez complte des algo-
rithmes de dcodage des codes produits, que ce soit les algorithmes sur donnes
dures ou sur donnes souples.

8.2 Les codes produits


Avec les constructions classiques, il est thoriquement possible de construire
des codes ayant une DMH leve. Cependant, la complexit de dcodage devient
prohibitive, mme pour des codes possdant une structure algbrique, comme
les codes de Reed-Solomon ou les codes BCH (voir chapitre 4). Par exemple,
pour les codes Reed-Solomon sur GF(256), le dcodeur le plus complexe ayant
260 Codes et turbocodes

t implant sur circuit a un pouvoir de correction limit 11 erreurs symboles.


Ce qui est insusant pour la plupart des applications actuelles. La construction
de codes produits permet de contourner ce problme : en utilisant des codes
simples faible pouvoir de correction mais dont le dcodage est peu coteux,
il est possible de les assembler pour obtenir un code plus long dont le pouvoir
de correction est important.

Dnition :
Soit C1 (resp. C2 ) un code linaire de longueur n1 (resp. n2 ) et de dimen-
sion1 k1 (resp. k2 ). Le code produit C = C1 C2 est lensemble des matrices
M de taille n1 n2 telles que :
Chaque ligne est un mot de code de C1 ,
Chaque colonne est un mot de code de C2 .
Ce code est un code linaire de longueur n1 n2 et de dimension k1 k2 .

Exemple 8.1 :
Soit H le code de Hamming de longueur 7 et P le code de parit de longueur
3. La dimension de H est 4 et la dimension de P est 2. Le code C = H P
est donc de longueur 21 = 7 3 et de dimension 8 = 4 2. Soit coder le mot
dinformation suivant :
 
0 1 1 0
I=
1 0 1 0

Chaque ligne dun mot de code de C doit tre un mot de code de H. Donc
pour coder I, on commence par multiplier chaque ligne de I par la matrice
gnratrice du code H :


1 0 0 0 1 1 1
  0 1 0 0 1 1 0  
0 1 1 0
0
= 0
1 1 0 0 1 1
0 1 0 1 0 1
0 0 0 1 0 1 1


1 0 0 0 1 1 1
  0 1 0 0 1 1 0  
1 0 1 0
0
= 1
0 1 0 0 1 0
0 1 0 1 0 1
0 0 0 1 0 1 1

Aprs le codage des lignes, le mot de code provisoire est donc :


 
0 1 1 0 0 1 1
1 0 1 0 0 1 0
1 ou longueur du message.
8. Turbocodes produits 261

Chaque colonne du mot de code nal doit maintenant tre un mot du code
de parit P . Le mot de code nal sobtient donc en ajoutant une troisime ligne
forme par les bits de parit de chaque colonne. Le mot de code complet est :

0 1 1 0 0 1 1
1 0 1 0 0 1 0
1 1 0 0 0 0 1

Pour que le mot de code soit valide, il faut encore vrier que la troisime ligne
du mot est bien un mot de code de H. Il faut donc multiplier ce vecteur ligne
par la matrice de contrle de parit de H :

1
1

1 1 1 0 1 0 0 0
0
1 1 0 1 0 1 0 0 = 0

1 0 1 1 0 0 1 0
0
0
1

En fait, cette vrication est inutile : elle est assure par construction puisque les
codes H et P sont linaires. De plus, lordre dencodage na pas dimportance :
si on code dabord par colonnes puis par lignes, le mot de code obtenu est le
mme.

8.3 Le dcodage entre ferme des codes pro-


duits
8.3.1 Le dcodage ligne-colonne
Le premier algorithme de dcodage dcoule immdiatement de la construc-
tion du code : on alterne successivement le dcodage des lignes par un dco-
deur du code C1 et le dcodage des colonnes par un dcodeur du code C2 .
Soit d1 (resp. d2 ) la distance minimale du code C1 (resp. C2 ). Alors, le dco-
dage par syndrome de C1 (resp. C2 ) est t1 -correcteur (resp. t2 -correcteur) avec
t1 = d1 /2 (resp. t2 = d2 /2).

Proprit :
Le dcodage ligne-colonne est born par un pouvoir de correction de (t1 +1)
(t2 + 1) erreurs. En dautres termes, le dcodage ligne-colonne dcode tout mot
ayant au plus (t1 + 1) (t2 + 1) erreurs (mme sil peut ventuellement dcoder
certains motifs ayant plus derreurs) et il existe des mots ayant exactement
(t1 + 1) (t2 + 1) erreurs qui ne seront pas dcods.
En eet, supposons que lon ait un motif avec un nombre derreurs stricte-
ment infrieur (t1 + 1) (t2 + 1). Puisque lalgorithme de dcodage en ligne
262 Codes et turbocodes

corrige jusqu t1 erreurs, aprs la premire tape de dcodage, toute ligne en


erreur contient au moins t1 + 1 erreurs. Il y a donc au plus t2 lignes en erreurs
aprs le dcodage ligne. Chaque colonne contient donc au plus t2 erreurs et le
dcodage colonne limine alors toutes les erreurs.
Il existe des motifs indcodables ayant exactement (t1 + 1) (t2 + 1) erreurs.
En eet, prenons un mot de code de C1 C2 dont on choisit (t2 + 1) lignes
et (t1 + 1) colonnes au hasard. chaque intersection entre une ligne et une
colonne on insre une erreur dans le mot de code initial. Par construction, pour
le mot ainsi obtenu, il existe bien un mot de code pour le code produit une
distance de (t1 + 1) (t2 + 1) erreurs, mais le dcodage ligne et le dcodage
colonne chouent.
On peut noter que le dcodage ligne-colonne est moins puissant que le dco-
dage par syndrome pour un code produit. En eet, un code produit est un code
linaire dont la distance minimale est d1 d2 . Donc le dcodage par syndrome per-
met de corriger tous les mots ayant au plus t erreurs avec t = (d1 d2 )/2. Or le
dcodage ligne-colonne permet seulement de corriger tous les mots ayant moins
de (t1 + 1) (t2 + 1) = (d1 /2 + 1)(d2 /2 + 1) erreurs. On perd donc environ
un facteur 2 en pouvoir de correction.

Exemple 8.2 :
On suppose que lon a un code produit dont le code en ligne et le code
en colonne ont tous les deux une distance minimale gale 5. Ils sont donc
tous les deux 2-correcteurs. Le code produit, daprs ce qui prcde, peut donc
corriger tout mot ayant au plus 8 erreurs. La gure 8.1 montre un mot ayant
10 erreurs (reprsentes par les points) et pourtant corrigible par le dcodage
ligne-colonne. La gure 8.2 montre un motif ayant le mme nombre derreurs
mais non corrigible.

8.3.2 Lalgorithme de Reddy-Robinson


Lalgorithme de Reddy-Robinson [8.2] est un algorithme itratif plus so-
phistiqu qui suppose cette fois que lon dispose pour les codes C1 et C2 de
dcodeurs avec erreurs et eacements. Un eacement est une position non able
de la trame reue pour laquelle on estime que le symbole peut ventuellement
tre erron. La dirence avec une erreur classique est que la position de lea-
cement est connue au moment du dcodage. Pour un code de DMH gale d,
le dcodage par syndrome peut tre adapt pour tenir compte des eacements
et alors il est possible de dcoder toute trame avec t erreurs et e eacements
ds que lon a
2t + e < d (8.1)
Les algorithmes algbriques des codes BCH et Reed-Solomon peuvent aussi
tre adapts pour traiter les eacements.
8. Turbocodes produits 263

Figure 8.1 Mot en erreur corrigible par un dcodage ligne-colonne.

Figure 8.2 Mot en erreur non corrigible par un dcodage ligne-colonne.

Lalgorithme de Reddy-Robinson est alors le suivant :


tape 1 : reprer les erreurs de chaque ligne i en appliquant le dcodeur
du code C1 sans eacements et leur attribuer un poids li gal au nombre
derreurs dtectes. Si le dcodage choue, le poids attribu est li = d1 /2.
Les lignes sont passes sans correction ltape 2.
tape 2 : dcoder les colonnes par le dcodeur du code C2 avec eace-
ments. Pour chaque colonne, on fait successivement tous les dcodages en
264 Codes et turbocodes

eaant les symboles les moins srs (i.e. ceux qui ont le poids de ligne
le plus lev). On a donc au plus d1 /2 dcodages par ligne. chaque
n
dcodage on attribue un poids W tel que W = wi o wi = li si le
i=1
symbole de la ligne i est inchang par le dcodage et wi = d2 /2 sinon.
tape 3 : Comme dcodage nal, on choisit pour chaque colonne, le mot
dcod donnant le poids W le plus petit.
Le dcodage de Reddy-Robinson permet de corriger tout motif derreurs
dont le poids est infrieur strictement d1 d2 ([8.2]).

Exemple 8.3 :
Reprenons lexemple prcdent avec le mot de la gure 8.2. Au cours de la
premire tape, les lignes ayant 3 erreurs ne pourront pas tre corriges par le
code ligne car celui-ci ne peut corriger que 2 erreurs au maximum (DMH de
5). Elles se verront donc attribuer un poids gal 2,5. La ligne avec une erreur
aura un poids gal 1, tandis que toutes les lignes restantes auront un poids
gal 0. La conguration est alors comme illustr en gure 8.3.

Figure 8.3 Calcul des poids de ligne issus de la premire tape de lalgorithme de
Reddy-Robinson.

la deuxime tape, la correction devient eective. Seules trois colonnes


possdent des erreurs. En ce qui concerne la colonne en erreur la plus gauche,
daprs les poids fournis par ltape 1, trois symboles de cette colonne ont un
poids gal 2,5, un symbole a un poids gal 1 et tous les autres ont un poids
nul. La deuxime tape de lalgorithme pour cette colonne va donc consister en
trois dcodages successifs : un dcodage sans eacement, un dcodage avec trois
eacements (les symboles ayant un poids gal 2,5) et un dcodage quatre
eacements (les trois symboles prcdent plus le symbole ayant un poids de
1). Le premier dcodage choue puisque le code est seulement 2-correcteur. Le
deuxime dcodage russit. En eet, le code colonne a une distance minimale
8. Turbocodes produits 265

de 5. Il peut donc corriger t erreurs et e eacements ds que 2t + e < 5. Or


pour ce dcodage, on a e = 3 (puisque 3 eacements sont placs) et t = 0
(puisquil ny a pas derreurs supplmentaire dans la colonne). Le poids associ
au second dcodage est la somme des poids des symboles eacs, soit 7,5. De
mme le troisime dcodage (avec 4 eacements) russit et le poids associ
au mot dcod est alors de 8,5. Lalgorithme choisit alors parmi les dcodages
ayant russi celui dont le poids est le plus faible, soit ici le second.
Les deux autres colonnes en erreur se dcodent aussi. Cependant pour la
colonne la plus droite, le deuxime dcodage choue (puisque quil y a une
erreur dans les symboles non eacs) et le mot dcod pour cette colonne est
donc celui du troisime dcodage. Finalement, toutes les erreurs sont corriges.
Dans cet algorithme le rle des lignes et des colonnes nest pas symtrique.
Ainsi, si le dcodage complet choue dans lordre initial, il est possible dessayer
nouveau en intervertissant le rle des lignes et des colonnes.
Lalgorithme de dcodage de Reddy-Robinson nest pas itratif dans sa
version initiale. On peut le rendre itratif, par exemple en recommenant un
dcodage avec le mot nal de ltape 2, si lun des dcodages de la deuxime
tape a russi. Il existe aussi des versions itratives plus sophistiques [8.3].

8.4 Le dcodage entre souple des codes pro-


duits
8.4.1 Lalgorithme de Chase sortie pondre
Lalgorithme de Chase permet, dans le cas dun code en bloc, dutiliser les
valeurs reues sur le canal de transmission pour faire un dcodage au sens du
maximum de vraisemblance ou, pour le moins, en approcher la performance.
Dans sa version de base, il produit un dcodage ferme. En suivant, lide du
dcodage des turbocodes convolutifs [8.4], la version amliore par Pyndiah [8.5]
de lalgorithme permet dobtenir en sortie une valeur souple du bit dcod.
laide dun dcodage itratif, il est alors possible pour les dcodeurs ligne et
colonne dun code produit de schanger des information extrinsques sur les
bits. On peut donc dcoder les codes produits la manire turbo.
Soit donc r = (r1 , ..., rn ) le mot reu aprs codage et transmission sur un
canal gaussien. Lalgorithme de Chase-Pyndiah t places se dcompose ainsi :
tape 1 : slectionner les t places Pk de la trame contenant les symboles
les moins ables de la trame (i.e. les t places j pour lesquelles les valeurs
rj sont les plus petites en valeur absolue).
tape 2 : gnrer le vecteur des dcisions fermes h0 = (h01 , ..., hon ) tel
que h0j = 1 si rj > 0 et 0 sinon. Gnrer les vecteurs h1 , ..., h2t 1 tels
que hij = h0j si j / {Pk } et hiPk = h0Pk N um(i, k) o N um(i, k) est
le k-ime bit dans lcriture binaire de i.
tape 3 : dcoder les mots h0 , ..., h2t 1 avec le dcodeur ferme du code
linaire. On obtient alors les mots concurrents c0 , ..., c2t 1 .
266 Codes et turbocodes

tape 4 : calculer les mtriques des mots concurrents



Mi = rj (1 2cij )
1jn

tape 5 : dterminer lindice pp tel que


Mpp = min {Mi }
Le mot de code cpp est alors le mot de code le plus probable.
tape 6 : pour chaque bit j de la trame calculer la abilit
Fj = 1/4(min {Mi , cij = cpp,j } Mpp )
Sil nexiste pas de concurrents pour lesquels le j-ime bit est dirent de
cpp,j , alors la abilit Fj est une valeur xe.
tape 7 : calculer la valeur extrinsque pour chaque bit j,
Ej = (2 cpp,j 1) Fj rj
Les valeurs extrinsques schangent alors entre dcodeurs ligne et dco-
deurs colonne dans un processus itratif. La valeur , ainsi que les valeurs
des contre-ractions sont ici plus sensibles que dans le cas du dcodage de
turbocodes convolutifs. Des valeurs inadquates peuvent dgrader de manire
importante le pouvoir de correction. Cependant, il est possible de les dtermi-
ner de manire incrmentale. On cherche dabord pour la premire itration
quelles sont les valeurs donnant les meilleures performances (par exemple, par
dichotomie). Puis ces valeurs tant xes, on procde une recherche similaire
pour la deuxime itration et ainsi de suite.

Exemple 8.4 :
Soit r = (0, 5; 0, 7; 0, 9; 0, 2; 0, 3; 0, 1; 0, 6) un chantillon reu dun mot
de code de Hamming(7, 4, 3) et le nombre de places de lalgorithme de Chase
est gal t = 3. On choisit = 0, 6. Lalgorithme prcdent donne alors :
tape 1 : P1 = 6, P2 = 4, P3 = 5.
tape 2 :

I hi
0 (1 ;1 ;0 ;1 ;0 ;1 ;1)
1 (1 ;1 ;0 ;1 ;0 ;0 ;1)
2 (1 ;1 ;0 ;0 ;0 ;1 ;1)
3 (1 ;1 ;0 ;0 ;0 ;0 ;1)
4 (1 ;1 ;0 ;1 ;1 ;1 ;1)
5 (1 ;1 ;0 ;1 ;1 ;0 ;1)
6 (1 ;1 ;0 ;0 ;1 ;1 ;1)
7 (1 ;1 ;0 ;0 ;1 ;0 ;1)

Les bits souligns correspondent aux inversions ralises par lalgorithme


de Chase.
8. Turbocodes produits 267

tape 3 : Les bits avec une toile dans la colonne des mots concurrents
ci correspondent aux places corriges par le dcodeur ferme dans le mot
hi .

I hi ci
0 (1 ;1 ;0 ;1 ;0 ;1 ;1) (1 ;1 ;0 ;1 ;0 ;1 ;0*)
1 (1 ;1 ;0 ;1 ;0 ;0 ;1) (1 ;1 ;0 ;0* ;0 ;0 ;1)
2 (1 ;1 ;0 ;0 ;0 ;1 ;1) (1 ;1 ;0 ;0 ;0 ;0* ;1)
3 (1 ;1 ;0 ;0 ;0 ;0 ;1) (1 ;1 ;0 ;0 ;0 ;0 ;1)
4 (1 ;1 ;0 ;1 ;1 ;1 ;1) (1 ;1 ;1* ;1 ;1 ;1 ;1)
5 (1 ;1 ;0 ;1 ;1 ;0 ;1) (0* ;1 ;0 ;1 ;1 ;0 ;1)
6 (1 ;1 ;0 ;0 ;1 ;1 ;1) (1 ;0* ;0 ;0 ;1 ;1 ;1)
7 (1 ;1 ;0 ;0 ;1 ;0 ;1) (1 ;1 ;0 ;0 ;0* ;0 ;1)

tape 4 :

I ci Mi
0 (1 ;1 ;0 ;1 ;0 ;1 ;0*) -(0.5)-(0.7)+(-0.9)-(0.2)+(-0.3)-(0.1)+(0.6)=-2,1
1 (1 ;1 ;0 ;0* ;0 ;0 ;1) -(0.5)-(0.7)+(-0.9)+(0.2)+(-0.3)+(0.1)-(0.6)=-2,7
2 (1 ;1 ;0 ;0 ;0 ;0* ;1) -(0.5)-(0.7)+(-0.9)+(0.2)+(-0.3)+(0.1)-(0.6)=-2,7
3 (1 ;1 ;0 ;0 ;0 ;0 ;1) -(0.5)-(0.7)+(-0.9)+(0.2)+(-0.3)+(0.1)-(0.6)=-2,7
4 (1 ;1 ;1* ;1 ;1 ;1 ;1) -(0.5)-(0.7)-(-0.9)-(0.2)-(-0.3)-(0.1)-(0.6)=-0,9
5 (0* ;1 ;0 ;1 ;1 ;0 ;1) +(0.5)-(0.7)-(-0.9)-(0.2)-(-0.3)+(0.1)-(0.6)=0,3
6 (1 ;0* ;0 ;0 ;1 ;1 ;1) -(0.5)+(0.7)+(-0.9)+(0.2)-(-0.3)-(0.1)-(0.6)=-0,9
7 (1 ;1 ;0 ;0 ;0* ;0 ;1) -(0.5)-(0.7)+(-0.9)+(0.2)+(-0.3)+(0.1)-(0.6)=-2,7

tape 5 : On a pp = 1. Le mot dcod est (1; 1; 0; 0; 0; 0; 1). Noter quon


le rencontre plusieurs fois dans la liste des mots concurrents.
tapes 6 et 7 :

j Fj Ej
1 ((0,3)-(-2,7))/4=0,75 0,75-0,5=0,25
2 ((-0,9)-(-2,7))/4=0,475 0,475-0,7=-0,225
3 ((-0,9)-(-2,7))/4=0,475 -0,475-(-0,9)=0,525
4 ((-0,9)-(-2,7))/4=0,475 -0,475-0,2=-0,675
5 ((-2,1)-(-2,7))/4=0,15 -0,15-(-0,3)=0,15
6 ((-0,9)-(-2,7))/4=0,475 -0,475-0,1=-0,575
7 ((-2,1)-(-2,7))/4=0,15 0,15-0,6=-0,4
268 Codes et turbocodes

8.4.2 Performances de lalgorithme de Chase-Pyndiah

Lalgorithme de Chase-Pyndiah est le plus rpandu des algorithmes d-


codage pondrs pour les codes en blocs. La gure 8.4 donne les performances
obtenues par cet algorithme dans le cadre dun turbo-dcodage pour dirents
codes produits.

Figure 8.4 Performances de lalgorithme de Chase Pyndiah en turbo-dcodage it-


ratif de dirents codes 1-correcteurs (MDP-2 sur canal gaussien, 4 itrations).

La gure 8.5 montre lvolution du taux derreurs binaire pendant le turbo-


dcodage du code BCH tendu, BCH(64,57,4)2 , avec lalgorithme de Chase-
Pyndiah. Pour ce code, on voit que lessentiel du gain en correction est obtenu
au cours des 4 premires itrations.
8. Turbocodes produits 269

Figure 8.5 volution du taux derreurs binaires pendant le turbo-dcodage de Chase-


Pyndiah pour 1, 2, 3, 4 et 6 itrations (code BCH(64,51,6), MDP-2 sur canal Gaus-
sien).

8.4.3 Lalgorithme de Fang et Battail


Lalgorithme de Fang et Battail permet, comme lalgorithme de Chase-
Pyndiah, de calculer la abilit des bits dcods, partir de donnes souples
chantillonnes en sortie du canal de transmission. On peut voir cet algorithme
comme une variante de lalgorithme de Chase-Pyndiah pour laquelle seuls les
bits les moins ables sont modis. Soit r = (r1 , ..., rn ) le mot reu. Le code
utilis est un code linaire de longueur n et de dimension k de matrice g-
nratrice G = {gij , 0  i < k, 0  j < n} et de matrice de contrle de parit
H = {hij , 0  i < n k, 0  j < n}. Lalgorithme procde par les tapes sui-
vantes :
tape 1 : trier les valeurs ri dans lordre des valeurs absolues dcrois-
santes. On obtient alors une permutation P sur lensemble des indices
[1..n]. On pose rl = rP (l) et on a donc |r1 |  |r2 |  ...  |rn |.
tape 2 : soit H la matrice obtenue en permutant les colonnes de H par
P . Systmatiser les k colonnes les plus droite de H par rduction de
Gauss. Soit H  la matrice obtenue.
tape 3 : soit s le vecteur des dcisions dures de r . Soit M1 la mtrique
cumule associe aux n k premires valeurs de r . Soit
 
s = H  s1 s2 ... snk 0 0 ... 0
Soit M2 la mtrique cumule associe s dans les k dernires valeurs de
r . La mtrique cumule totale est alors M = M1 + M2 .
tape 4 : numrer la liste des concurrents dans lordre des mtriques M1
croissantes (on utilise un algorithme de gnration de combinaison avec
270 Codes et turbocodes

exclusion). Sarrter ds que la mtrique totale M commence crotre.


tape 5 : aprs permutation inverse des mtriques, calculer les valeurs
extrinsques partir des concurrents en utilisant les mmes formules que
dans lalgorithme de Chase-Pyndiah.
Exemple 8.5 :
On considre le mme exemple que pour lalgorithme de Chase.
Soit r = (0, 5; 0, 7; 0, 9; 0, 2; 0, 3; 0, 1; 0, 6) un chantillon reu. La matrice
de contrle de parit du code de Hamming de dimension 4 et de longueur 7 est,
comme nous lavons dj vu,

1 1 1 0 1 0 0
H = 1 1 0 1 0 1 0
1 0 1 1 0 0 1

tape 1 : on a r = (0, 9; 0, 7; 0, 6; 0, 5; 0, 3; 0, 2; 0, 1) et P = [3, 2, 7, 1, 5, 4, 6].


tape 2 :
1 1 0 1 1 0 0
H = 0 1 0 1 0 1 1
1 0 1 1 0 1 0
Aprs systmatisation sur les trois dernires colonnes, on obtient :

1 1 0 1 1 0 0
H  = 1 0 1 1 0 1 0
1 1 1 0 0 0 1

tape 3 : la dcision dure sur les n k = 4 valeurs reues les plus fortes
donne s = (0, 1, 1, 1). La matrice H  sans les k dernires colonnes, permet
de retrouver les valeurs de redondance manquantes :

0
1 1 0 1 0
1
1 0 1 1 = 0
1
1 1 1 0 0
1
Le vecteur dcod initial est donc (0, 1, 1, 1, 0, 0, 0) qui donne aprs per-
mutation inverse le vecteur (1, 1, 0, 0, 0, 0, 1). La mtrique initiale est M =
M1 + M2 = 2, 7 car M1 = (0, 9) 0, 7 0, 6 0, 5 = 2, 7 et
M2 = (0, 3) + 0, 2 + 0, 1 = 0, 0.
tape 4 : pour numrer les concurrents, on applique des masques din-
version aux n k premier bits (on peut avoir de 1 4 inversions au
maximum). Chaque masque dinversion va accrotre la partie M1 de la
mtrique. Pour une inversion, le bonus est au minimum de 1,0 et au maxi-
mum de 1,8. Le bonus minimum pour deux inversions est au minimum
de 2 (0, 6 + 0, 5) = 2, 2. Les premiers concurrents considrer sont donc
tous ceux correspondant une seule inversion. De plus, les modications
8. Turbocodes produits 271

sur la partie M2 de la mtrique peuvent ventuellement la diminuer. Ce-


pendant la diminution ne peut excder 2 (0, 2 + 0, 1) = 0, 6 par rapport
la mtrique initiale. On sait donc, dores et dj, que le mot prcdem-
ment trouv est le mot le plus vraisemblable. Si on dcide tout de mme
dnumrer, on trouve les mots concurrents suivants, qui contrairement
lalgorithme de Chase-Pyndiah, sont tous dirents les uns des autres :
si Ci M
(0,1,1,1) (0,1,1,1,0,0,0) -2,7
(0,1,1,0) (0,1,1,0,1,1,0) -2,7+1,0+0,2=-1,5
(0,1,0,1) (0,1,0,1,0,1,1) -2,7+1,2-0,6=-2,1
(0,0,1,1) (0,0,1,1,1,0,1) -2,7+1,4+0,2=-1,1
(1,1,1,1) (1,1,1,1,1,1,1) -2,7+1,8+0,0=-0,9
(0,1,0,0) (0,1,0,0,1,0,1) -2,7+2,2+0,2=-0,3
(0,0,1,0) (0,0,1,0,0,1,1) -2,7+2,4-0,6=-0,9
(0,0,0,1) (0,0,0,1,1,1,0) -2,7+2,6+0,2=0,1
(1,1,1,0) (1,1,1,0,0,0,1) -2,7+2,8-0,2=-0,1
(1,1,0,1) (1,1,0,1,1,0,0) -2,7+3,0+0,6=0,9
(1,0,1,1) (1,0,1,1,0,1,0) -2,7+3,2-0,2=0,3
(0,0,0,0) (0,0,0,0,0,0,0) -2,7+3,6+0,0=0,9
(1,1,0,0) (1,1,0,0,0,1,0) -2,7+4,0-0,2=1,1
(1,0,1,0) (1,0,1,0,1,0,0) -2,7+4,2+0,6=2,1
(1,0,0,1) (1,0,0,1,0,0,1) -2,7+4,4-0,2=1,5
(1,0,0,0) (1,0,0,0,1,1,1) -2,7+5,4+0,0=2,7
tape 5 :

j FP (j)
1 ((-0,9)-(-2,7))/4=0,475
2 ((-1,1)-(-2,7))/4=0,4
3 ((-2,1)-(-2,7))/4=0,15
4 ((-1,5)-(-2,7))/4=0,3
5 ((-1,5)-(-2,7))/4=0,3
6 ((-1,5)-(-2,7))/4=0,3
7 ((-2,1)-(-2,7))/4=0,15

J EJ
1 0,3-0,5=-0,2
2 0,4-0,7=-0,3
3 -0,475-(-0,9)=0,525
4 -0,3-0,2=-0,5
5 -0,3-(-0,3)=0,0
6 -0,15-0,1=-0,25
7 0,15-0,6=-0,4
272 Codes et turbocodes

Lalgorithme de Fang-Battail est thoriquement maximum de vraisem-


blance. Cependant, cela ne sut pas ncessairement pour que lalgorithme
appliqu au dcodage des codes produits soit lui-mme maximum de vrai-
semblance.

8.4.4 Lalgorithme de Hartmann-Nazarov


Hartmann et al [8.6] ont utilis les proprits de dualit pour dcrire une
mthode de dcodage maximum de vraisemblance pour les codes linaires. Ini-
tialement, seule une dcision ferme tait fournie par lalgorithme. Hagenauer
[8.7] a alors repris ces ides pour que les valeurs extrinsques ncessaires au
turbo-dcodage soient disponibles. Enn Nazarov et al [8.8] ont montr com-
ment rduire le cot en complexit par lutilisation de la transforme de Hada-
mard rapide. Ce paragraphe fait la synthse de ces trois articles de rfrence.
Soit r = (r1 , ..., rn ) le mot reu. Le code utilis est un code linaire de lon-
gueur n et de dimension k de matrice gnratrice G = {gij , 0  i < k, 0  j < n}
et de matrice de contrle de parit H = {hij , 0  i < n k, 0  j < n}. On sup-
pose que la transmission a t faite sur un canal perturb par un bruit gaussien
de moyenne nulle et de variance gale 2 .
En posant l = tanh(rl / 2 ), on montre que le LLR maximum de vrai-
semblance du l-ime bit de la trame est :
 
1 C(l)
LLRl = ln (8.2)
1 + C(l)
avec :
   
l FD (hl ) 1 FD (hl )
C(l) = 1+ + 1
2 FD (0) 2l FD (0)
o hl est la l-ime colonne de la matrice de contrle de parit et la fonction FD
est telle que
& '
1
2nk 
nk1
FD (hl ) = D (l) exp j m hml
=0 m=0


nk1
m est le m-ime bit de la reprsentation binaire de lentier ( = m 2m ),
m=0
et :

5
n1
D (l) = (l )t (l)
l=0

t (l) tant le l-ime bit du -ime vecteur du dual du code, soit donc :
#nk1 $

t (l) = m hml mod 2 = , hl  mod 2
m=0
8. Turbocodes produits 273

Le calcul de D (l) ncessite normalement n multiplications. Mais en passant


par la base du code dual et en appliquant une transforme rapide de Hadamard,
il est possible de ramener ce cot a un terme de lordre de nk multiplications.
Si le rendement du code est lev, alors n est bien suprieur n k et le gain
en terme de complexit de calcul est important.
Pour ce faire on r-crit le terme gnral en facteur dans D (l) sous la
forme :

(l )t (l) = exp {t (l) ln |l |} exp {jql t (l)}


o ql est tel que l = (1)ql |l |.
On a alors : &n1 '

D (l) = exp (t (l) ln |l |) + (jql t (l))
l=0
&n1 ' &n1 '
 
= exp (t (l) ln |l |) exp (jql t (l))
l=0 l=0
/ nk1 0

n1 
Posons F (w) = ln (|l |) exp j wm hml pour tout entier
l=0 m=0
0  w  2nk 1. On a donc :


n1
F (w) = ln (|l |) exp {jtw (l)}
l=0


n1
avec en particulier, F (0) = ln (|l |).
l=0
1exp{jt} F (0)F () 
n1
Dautre part, si t = 0 ou 1, alors 2 = t et(t (l) ln |l |).
2 =
/ 0 l=0

n1 
nk1
De mme, si on pose Fq (w) = ql exp j wm hml , on a :
l=0 m=0

Fq (0) Fq () 
n1
= (ql ln |l |)
2
l=0

et donc :
   
1 1
D (l) = exp (F (0) F ()) exp j (Fq (0) Fq ())
2 2
Les deux termes F ()et Fq () ont une expression commune de la forme :
& nk1 '

n1 
F (w) = fl exp j wm hml
l=0 m=0

o fl sont des rels qui ne dpendent que de l.


274 Codes et turbocodes

 
On dnit la fonction g sur lensemble 0, , 2nk 1 valeurs relle
par :


nk1
fl si l, p = hml 2m
g(p) =
m=0
0 sinon
La fonction g est bien dnie car les colonnes de H sont linairement indpen-
dantes et donc a fortiori deux deux distinctes. La transforme de  Hadamard
de G est alors une fonction valeurs relles dnie sur lintervalle 0..2nk 1
par :

1
2nk
G(w) = g(p)(1)<p,w>
p=0


nk1
Or la fonction g est nulle sauf pour les points pl = hml 2m pour l
l=0
[0, , n 1]. Il vient alors :

P
# $
  
nk1
n1 n1 nk1
< hml 2m ,w>
G(w) = fl (1) m=0 = fl exp j wm hml = F (w)
l=0 l=0 m=0

Les deux termes F ()et Fq () sexpriment donc comme des transformes de


Hadamard et peuvent tre calculs au moyen de la transforme rapide de Ha-
damard.

Transforme rapide de Hadamard

Soit R = [R0 , R1 , ..., R2n 1 ] un vecteur composantes relles. Le vec-


teur obtenu partir de R par transforme de Hadamard est le vecteur R =
[R0 , R1 , , R2n 1 ] tel que :
n
2 1
Rj = Ri (1)<i,j> (8.3)
i=0

Le produit scalaire < i, j > est comme prcdemment le produit scalaire bit
bit des dveloppements binaires de i et j. On crit aussi sous forme vectorielle,
R = RH2n o H2n est la matrice de Hadamard dordre 2n dont le coecient
(H2n )i,j = (1)<i,j> .
Soit A une matrice de taille a1 a2 et B une matrice de taille b1 b2
coecients rels. Alors le produit de Kronecker de A par B, not A B,
est une matrice de taille (a1 b1 ) (a2 b2 ) telle que (A B)i,j = Aq1 q2 Br1 r2 o
i = b1 q1 + r1 et j = b2 q2 + r2 avec 0  r1 < b1 et 0  r2 < b2 .
Si N = 2n , on montre que ([8.9]) :
8. Turbocodes produits 275

HN = (H2 IN/2 )(I2 HN/2 )

o Ik est la matrice unit dordre k.


En dveloppant de manire rcursive, on obtient :

5
n
- .
HN = I2i1 H2 IN/2i
i=1

La transforme rapide de Hadamard est en fait lutilisation de cette factorisa-


tion pour le calcul de R.

Exemple 8.6 :
Soit calculer la transforme de Hadamard du vecteur :

R = [0, 2; 0, 5; 0, 7; 1, 3; 0, 1; 1, 1; 0, 8; 0, 3]

On a R = RH8 avec :

1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1
H8 =



1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1

Le calcul direct donne :

R = [0, 8; 0, 0; 1, 4; 1, 8; 1, 8; 4, 6; 1, 6; 1, 6]

Or daprs ce qui prcde, H8 = G1 G2 G3 o Gi = Ii H2 I8/2i , on a :



1 0 0 0 1 0 0 0
0 1 0 0 0 1 0 0

1 0 0 0 0 0 1 0 0 0 1 0
 
1 1 0 1 0 0 0 0 0 1 0 0 0 1
G1 = [1] =
1 1 0 0 1 0
1 0 0 0 1 0 0 0

0 0 0 1 0 1 0 0 0 1 0 0

0 0 1 0 0 0 1 0
0 0 0 1 0 0 0 1
276 Codes et turbocodes


        1 0 1 0
1 0 1 1 1 0 1 0 0 1 0 1
G2 = =
1

0 1 1 1 0 1 0 1 0 1 0
0 1 0 1

1 0 1 0 0 0 0 0
0 1 0 1 0 0 0 0

1 0 1 0 0 0 0 0

0 1 0 1 0 0 0 0
=



0 0 0 0 1 0 1 0
0 0 0 0 0 1 0 1

0 0 0 0 1 0 1 0
0 0 0 0 0 1 0 1


1 1 0 0 0 0 0 0
1 1 0 0 0 0 0 0

1 0 0 0 0 0 1 1 0 0 0 0
 
0 1 0 0 1
G3 = 1 1
=
0 0 1 0 0 0 0
0 0 1 0 1 1 0 0 0 0 1 1 0 0

0 0 0 1 0 0 0 0 1 1 0 0

0 0 0 0 0 0 1 1
0 0 0 0 0 0 1 1

On peut alors calculer R par trois multiplications matricielles :

R = [0, 8; 0, 0; 1, 4; 1, 8; 1, 0; 1, 8; 0, 0; 3, 2] G1 G2 G3
= [0, 8; 0, 0; 1, 4; 1, 8; 1, 8; 4, 6; 1, 6; 1, 6]

Les matrices Gi sont des matrices creuses ayant seulement deux lments non
nuls par colonnes. De plus la factorisation de la matrice de Hadamard HN est de
longueur proportionnelle log(N ). Le cot total du calcul est donc en N log(N )
par la transforme rapide, au lieu de N 2 par la mthode directe. La gure 8.6
reprsente le graphe des calculs pour la transforme rapide de Hadamard dans
le cas N = 8. En termes de performance de correction derreurs, larticle [8.10]
montre que lon obtient les mmes performances que lalgorithme de Chase-
Pyndiah pour deux fois moins ditrations.

8.4.5 Autres algorithmes entre souple


Il existe encore dautres algorithmes de dcodage des codes en blocs en-
tre et sortie pondres. Lun des plus ancien est lalgorithme de dcodage par
optimisation locale de Farrell et al [8.11]. Cette technique consiste crire
le problme de la recherche du mot le plus probable comme un problme de
8. Turbocodes produits 277

Figure 8.6 Graphe du ot de calcul pour la transforme rapide de Hadamard N = 8.

minimisation dune fonction de cot global ayant pour variables les bits din-
formation du mot. Cette optimisation doit se faire thoriquement en nombre
entier ce qui rend le problme trs dicile. La technique utilise est de rem-
placer ces variables entires par des variables relles. Le problme nest alors
plus strictement quivalent au problme initial mais il devient possible duti-
liser des techniques classiques doptimisation non linaires comme la mthode
du gradient pour rechercher le minimum de la fonction de cot.
Une autre approche introduite par Kschischang et al [8.12] consiste utili-
ser le fait que la plupart des codes en blocs utiliss dans les turbocodes produits
sont en fait des codes en treillis. Il est alors possible dutiliser les algorithmes
classiques (MAP, Max-Log-MAP, . . . ) de dcodage des codes en treillis pour
obtenir les dcisions souples du dcodeur. Ce type dalgorithme est une appli-
cation au cas des turbocodes produits des algorithmes de dcodage maximum
de vraisemblance de Wolf [8.13].
Un autre algorithme plus rcemment invent est celui de Ktter et al [8.14].
Cet algorithme nest applicable qu des codes trs spciques dont essentiel-
lement les codes de Reed-Solomon et les codes algbriques. Il est bas sur lal-
gorithme de Sudan [8.15] qui est capable de dterminer les mots de codes dans
un voisinage proche du mot reu. Il est alors possible dutiliser les techniques
de pondrations classiques. Si la version initiale de cet algorithme est relative-
ment coteuse en calcul, des amliorations thoriques ont t apportes et cet
algorithme est dautant plus prometteur que les codes de Reed-Solomon sont
largement utiliss dans le domaine des tlcommunications. Il existe aussi des
algorithmes de dcodage base de sous-codes [8.16]. Bien quun peu complexe
au niveau de limplmentation, ces algorithmes donnent dexcellentes perfor-
mances. Enn, des travaux rcents ont montr que les algorithmes de dcodage
base de propagation de croyance peuvent tre appliqus aux codes linaires
en gnral [8.17].
278 Codes et turbocodes

8.5 Implantation de lalgorithme de Chase-


Pyndiah
Lalgorithme de Fang-Battail requiert la systmatisation de la matrice de
parit qui est une opration trs coteuse. Lalgorithme de Hartmann-Nazarov,
quant lui, a t implant sur DSP [8.10] mais la prcision ncessaire au cal-
cul des mtriques est trop importante pour pouvoir envisager une ralisation
du dcodeur sur un ASIC de taille raisonnable. Cest pourquoi, lalgorithme de
Chase-Pyndiah est lalgorithme de dcodage sortie pondre le plus couram-
ment utilis pour une ralisation sur circuit ddi [8.18]. Dautant plus que par
une judicieuse utilisation des mmoires, il permet dlaborer des architectures
de turbocodes produits adaptes aux transmissions haut-dbit [8.19].
Le turbo-dcodage selon lalgorithme de Chase-Pyndiah alterne dcodages
pondrs des lignes et des colonnes. Ce processus itratif aboutit larchitecture
de la gure 8.7. Entre chaque demi-itration sinsre une phase de reconstruc-
tion de la matrice an dobtenir le mot dcod.

Figure 8.7 Architecture globale dun turbo-dcodeur produit.

Chaque processeur de demi-itration prend en entre les donnes canal ainsi


que les valeurs extrinsques produites par la demi-itration prcdente. En sor-
tie, le processeur reporte les donnes du canal (pour assurer un fonctionnement
pipeline de la chane de dcodage), les dcisions fermes du mot de code le
plus probable et les valeurs extrinsque calcules par lalgorithme de Chase-
Pyndiah. Larchitecture du processeur est illustre en gure 8.8. Les FIFO
(Fist-In/First-Out) servent synchroniser les donnes entrantes et sortantes
du dcodeur SISO qui possde une certaine latence. Si les FIFO de petite taille
sont le plus souvent ralises par des lignes de bascules D, pour des raisons
dencombrement matriel et de consommation, il devient assez vite intressant
dutiliser une mmoire RAM et deux pointeurs (un pour lcriture et un pour
la lecture), incrments chaque nouvelle donne et dont ladressage est gr
circulairement. Une remarque peut tre faite aussi en ce qui concerne la mul-
tiplication des valeurs extrinsques par . Dans une implmentation classique,
les valeurs Wk sont gnralement des nombres entiers de taille rduite (5 ou
8. Turbocodes produits 279

6 bits) mais le cot matriel dun vrai multiplieur est prohibitif, et on prfre
gnralement lui substituer une simple table.

Figure 8.8 Architecture interne du processeur de demi-itration.

Le dcodeur SISO, dcrit par la gure 8.9, ralise les tapes de lalgorithme
de Chase-Pyndiah. Le dcodeur est form de cinq parties :
Le module de traitement squentiel des donnes calcule de manire paral-
lle le syndrome du mot de code entrant et les positions les moins ables
de la trame.
Le module de dcodage algbrique eectue le dcodage algbrique des mots

construits partir des donnes Rk entrantes et de la connaissance des
places les moins ables.
Le module de slection dtermine le mot de code le plus probable ainsi
que le ou les mots concurrents les plus proches.
Le module de calcul des pondrations dtermine la abilit des bits dco-
ds.
Le module mmoire stocke les pondrations totales entrantes qui sont
utilises pour le calcul des pondrations.

Figure 8.9 Architecture interne du dcodeur SISO.

Le module de traitement des donnes reoit les bits dchantillons les uns
aprs les autres. Si le code est cyclique (BCH, par exemple) le calcul du syn-
drome se fait alors de manire trs simple en utilisant la factorisation du poly-
nme gnrateur suivant le schma de Hrner. La dtermination des positions
les moins ables se fait souvent en grant de manire squentielle la liste des
positions peu ables dans une petite RAM locale. Il existe aussi dautre solu-
280 Codes et turbocodes

tions plus conomiques en taille comme la pile systolique de Leiserson, mais le


gain obtenu est faible.
Le module de dcodage algbrique utilise la valeur du syndrome pour d-
terminer les places en erreur dans les vecteurs concurrents. Dans le cas des
codes BCH, il est possible dutiliser lalgorithme de Berlekamp-Massey ou lal-
gorithme dEuclide tendu pour faire la correction. Il faut quand mme noter
que cette solution nest vraiment conomique que pour des codes en blocs
fort pouvoir de correction. Pour les codes faible pouvoir de correction, il est
moins coteux de stocker, dans une ROM locale, pour chaque valeur possible
du syndrome, les bits corriger.
Le module de slection doit faire le tri entre les mots gnrs par le module
de dcodage algbrique pour dterminer ceux qui sont les plus probables. Il
doit donc calculer la mtrique de chacun de ces mots (ce quil fait de manire
squentielle par des additions) et dterminer par minimum puis mmoriser les
plus probables dentre eux (leur nombre est gnralement limit par souci de
place).
Enn le module de calcul des pondrations utilise la liste des mots concur-
rents prcdemment retenu pour gnrer les pondrations partir de la formule
de ltape 6 de lalgorithme de Chase-Pyndiah. Ce module est de faible com-
plexit car les calculs raliser sont relativement simples et pour chaque bit,
il ne doit conserver squentiellement que deux valeurs (la plus petite mtrique
parmi les mots concurrents ayant 0 comme valeur correspondante pour ce bit
dans son dveloppement binaire et la plus petite mtrique pour les mots can-
didats avec 1 comme valeur binaire). Ce module contient en outre la valeur .
Dans le cas dune implantation sur FPGA (Field Programmable Gate Array),
toutes les itrations sont gnralement excutes sur le mme matriel qui est
rutilis de demi-itration en demi-itration. Il faut donc prvoir une procdure
de chargement de la valeur .

8.6 Bibliographie
[8.1] P. Elias, Error-free coding , IEEE Transactions on Information Theory,
vol. IT-4, 1954, pp. 29-37.
[8.2] S.M. Reddy and J.P. Robinson, Random error and burst corrections
by iterated codes , IEEE Transactions on Information Theory, vol. 18, No 1,
1972, pp. 182-185.
[8.3] N. Sendrier, Codes correcteurs haut pouvoir de correction, Thse de
lUniversit Paris VI, 1991.
[8.4] C. Berrou , A. Glavieux and P. Thitimajshima, Near Shannon limit
error correcting coding and decoding : Turbo-codes , Intl. Conf. on Commu-
nications, vol. 2, 1993, Geneva, Switzerland, pp. 1064-1070.
[8.5] R. Pyndiah, A. Glavieux , A. Picart and S. Jacq , Near optimum
decoding of product codes , IEEE GLOBECOM94, San Francisco, 1994.
[8.6] C.R.P. Hartmann and L.D. Rudolph , An optimum symbol-by-symbol
8. Turbocodes produits 281

decoding rule for linear codes , IEEE Transactions on Information Theory, vol.
IT-22, 1974, pp. 514-517.
[8.7] J. Hagenauer, E. Oer and L. Papke , Iterative decoding of binary
block and convolutional codes , IEEE Transactions on Information Theory,
vol. IT-42, 1996, pp. 429-445.
[8.8] L.E. Nazarov and V.M. Smolyaninov, Use of fast Walsh-Hadamard
transformation for optimal symbol-by-symbol binary block-code decoding ,
Electronics Letters, vol. 34, 1998, pp. 261-262.
[8.9] M. Lee and M. Kaveh, Fast Hadamard transform based on a simple
matrix factorization , IEEE Transactions on Acoustics, Speech, and Signal
Processing, vol. 34, 1986, pp. 1666- 1667.
[8.10] A. Goalic , K. Cavalec-Amis and V. Kerbaol , Real-Time Turbo
Decoding of Block Turbo Codes using the Hartmann-Nazarov algorithm on
the DSP TEXAS TMS320C6201 , Intl. Conf. on Communications, New-York,
2002.
[8.11] K. Farrell , L. Rudolph , C. Hartmann and L. Nielsen , Decoding
by local optimisation , IEEE Trans. Info. Theory, vol. 29, N 5, pp 740-743,
Sept. 1983.
[8.12] V. Sorokine , F.R. Kschischang and V. Durand , Trellis based de-
coding of binary linear block codes , Lecture Notes in Computer Science, vol.
793, Springer-Verlag Publisher, 1994, pp. 270-286.
[8.13] J. Wolf , Ecient maximum likelihood decoding of linear block codes
using a trellis ,IEEE Transactions on Information Theory, vol. 24, 1978, pp.
76-80.
[8.14] R. Kotter and A. Vardy , Algebraic soft-decision decoding of Reed-
Solomon codes , IEEE International Symposium on Information Theory, 2000,
p. 61.
[8.15] M. Sudan , Decoding of Reed-Solomon codes beyond the error cor-
rection bound , Journal of Complexity, vol. 12, 1997, pp. 180-193.
[8.16] C.Y. Liu and S. Lin , Turbo encoding and decoding of Reed-Solomon
codes through binary decomposition and self-concatenation ,IEEE Transac-
tions on Communications,vol. 52, issue 9, Sept. 2004, pp. 1484 1493.
[8.17] A. Kothiyal , O.Y. Takeshita , A comparison of adaptative belief
propagation and the best graph algorithm for the decoding of linear block
codes , IEEE International Symposium on Information Theory, 2005, pp. 724-
728.
[8.18] P. Adde, R. Pyndiah and O. Raoul, Performance and complexity of
block turbo decoder circuits , Third International Conference on Electronics,
Circuits and System ICECS96, Rodos, Greece, 1996, pp. 172-175.
[8.19] J. Cuevas, P. Adde and S. Kerouedan, Turbo decoding of product
codes for Gigabit per second applications and beyond , European Tansactions
on Telecommunications, vol.17, N1, Jan. 2006, pp. 45-55.
Chapitre 9

Codes LDPC

Les codes LDPC (Low Density Parity Check codes pour codes faible den-
sit) forment une classe de codes en bloc qui se caractrisent par une matrice
de contrle creuse. Ils ont t dcrits pour la premire fois dans la thse de
Gallager au dbut des annes 60 [9.1]. Outre le dcodage entre ferme des
codes LDPC, cette thse proposait dj un dcodage itratif bas sur la pro-
pagation de croyance (en anglais BP pour Belief Propagation). Ces travaux
ont t oublis pendant 30 ans. Seules quelques rares tudes y font rfrence
durant cette priode de sommeil, notamment, celle de Tanner qui proposa une
gnralisation des codes de Gallager et une reprsentation par graphe bipartite
[9.2].
Aprs linvention des turbocodes, les codes LDPC furent redcouverts au
milieu des annes 90 par MacKay et al [9.3], Wilberg [9.4] et Sipser et al
[9.5]. Depuis, des progrs considrables sur les rgles de construction de bons
codes LDPC, sur les techniques dencodage et de dcodage, ont permis aux
codes LDPC dtre utiliss, tout comme les turbocodes, dans des applications
pratiques.
Le principe de fonctionnement des codes LDPC et de leur dcodage font
lobjet de ce chapitre qui considre galement les ralisations matrielles.

9.1 Principe des codes LDPC

Les codes LDPC sont des codes construits partir du code lmentaire
le plus simple : le code de parit. Nous commencerons donc ce chapitre en
dtaillant le code de parit et son dcodage entre et sortie souples avant de
poursuivre la construction des codes LDPC.
284 Codes et turbocodes

9.1.1 Code de parit


Dnition
Une quation de parit, reprsente graphiquement par la gure 9.1, est une
quation reliant n donnes binaires entre elles par loprateur ou exclusif, not
. Elle est vrie si le nombre total de 1 dans lquation est pair ou nul.

Figure 9.1 Reprsentation graphique dune quation de parit.

Les cercles reprsentent les donnes binaires ci , aussi appeles variables. Le


rectangle contenant loprateur ou exclusif reprsente lquation de parit (ap-
pele aussi contrainte de parit ou parit). Les liaisons entre les variables et
loprateur indiquent les variables impliques dans lquation de parit.

Code de parit trois bits


On considre que les variables binaires c1 , c2 et c3 sont lies par la contrainte
de parit c1 c2 c3 = 0, et quelles forment le mot de code (c1 , c2 , c3 ). On
suppose que lon connat le logarithme du rapport de vraisemblance (LRV)
L(c1 ) et L(c2 ) des variables c1 et c2 : que peut-on dire alors du LRV L(c3 ) de
la variable c3 ?

On rappelle que L(cj ) est dni par lquation :


 
Pr (cj = 0)
L (cj ) = ln (9.1)
Pr (cj = 1)
Il y a deux mots de code dans lequel le bit c3 est gal 0 : les mots de code
(0,0,0) et (1,1,0). De mme, il existe deux mots de code dans lequel le bit c3 est
gal 1 : les mots de code (1,0,1) et (0,1,1). On en dduit les deux quations
suivantes dans le domaine des probabilits :
/
Pr(c3 = 1) = Pr(c1 = 1) Pr(c2 = 0) + Pr(c1 = 0) Pr(c2 = 1)
(9.2)
Pr(c3 = 0) = Pr(c1 = 0) Pr(c2 = 0) + Pr(c1 = 1) Pr(c2 = 1)
En utilisant lexpression de chaque probabilit en fonction du rapport de vrai-
semblance, dduite de lquation (9.1) :

exp(L(cj ))
Pr(cj = 1) = 1+exp(L(cj ))

Pr(cj = 0) = 1 Pr(cj = 1) = 1
1+exp(L(cj ))
9. Codes LDPC 285

il vient :
 
1 + exp(L(c2 ) + L(c1 ))
L(c3 ) = ln  L(c1 ) L(c2 ) (9.3)
exp(L(c2 )) + exp(L(c1 ))
Lquation (9.3) permet de dnir loprateur commutatif entre les deux
LRV des variables c1 et c2 .
En appliquant la fonction tanh (x/2) = exp(x)1
exp(x)+1 lquation (9.3), celle-ci
devient :

tanh L(c2 3 ) = exp(L(c 0 ))1 exp(L(c1 ))1


exp(L(c0 ))+1 exp(L(c1 ))+1
(
1
(9.4)
L(cj )
= tanh 2
j=0

Il est pratique (et frquent) de sparer les traitements du signe et du module


dans lquation (9.4)qui peut alors tre remplace par les deux dquations
suivantes :
5
1
sgn (L(c3 )) = sgn (L(cj )) (9.5)
j=0
  5
1  
|L(c3 )| |L(cj )|
tanh = tanh (9.6)
2 j=0
2

La fonction sgn(x) est telle que sgn(x) = +1 si x 0 et sgn(x) = 1 sinon.


Le traitement du module donn par lquation (9.6) peut tre simpli en
prenant linverse du logarithme de chacun des membres de lquation. Ce qui
donne :

|L(c3 )| = f 1 f (|L(cj )|) (9.7)
j=1,2

1
o la fonction f, vriant f (x) = f (x), est dnie par :

f (x) = ln (tanh (x/2)) (9.8)

Ces dirents aspects du calcul de la fonction seront dvelopps dans la


partie architecture de ce chapitre.
Lexpression (9.6) correspond en fait au calcul de (9.3) dans le domaine de
Fourier. Enn, il existe aussi une troisime criture du LRV de la variable c2
[9.6,9.7] :

L(c3 ) = sign (L(c1 )) sign (L(c2 )) min (|L(c1 )| , |L(c2 )|)


ln (1 + exp ( |L(c1 ) L(c2 )|)) (9.9)
+ ln (1 + exp ( |L(c1 ) + L(c2 )|))

Cette autre expression de loprateur permet dexprimer sous forme de table,


la fonction g dnie par

g(x) = ln (1 + exp ( |x|)) (9.10)


286 Codes et turbocodes

Exemple pratique
Supposons que Pr(c1 = 1) = 0, 8 et Pr(c2 = 1) = 0, 1. On a alors,

Pr(c1 = 0) = 0, 2 et Pr(c2 = 0) = 0, 9

Il est donc plus probable que c1 = 1 et c2 = 0. Une application directe de la


formule (9.2) donne alors

Pr(c3 = 0) = 0, 26 et Pr(c3 = 1) = 0, 74

c3 est donc plus probablement gal 1, ce qui intuitivement est justi puisque
le nombre de 1 arrivant la parit doit tre pair. Lutilisation de la formule
(9.3) donne

L(c3 ) = L(c1 ) L(c2 ) = (1, 386) (2, 197) = 1, 045

soit de nouveau Pr(c3 = 0) = 0, 26. On retrouve le mme rsultat en utilisant


(9.7) et (9.9).

Code de parit n bits


Le cas dune quation de parit n bits peut maintenant tre trait. On
considre que les variables binaires c1 , , cn sont lies par la contrainte de
parit c1 cn = 0 et quelles forment le mot de code (c1 , , cn ). Le LRV
des variables {cj }j=1..n,j=i est suppos connu et on cherche celui de la variable
ci . Il est alors simple de gnraliser les quations obtenues pour le code de
parit 3 bits. Ainsi, en reprenant loprateur dni par (9.2) :
E
L(ci ) = L(c1 ) L(c2 ) L(cj=i ) L(cn ) = L(cj ) (9.11)
j=i

De mme, la rgle de la tangente hyperbolique sexprime par :


  5  
L(ci ) L(cj )
tanh = tanh (9.12)
2 2
j=i

ou bien en sparant le signe et le module :


5
sgn (L(ci )) = sgn (L(cj )) (9.13)
j=i



|L(ci )| = f 1 f (|L(cj )|) (9.14)
j=i

o f est dnie par lquation (9.8).


9. Codes LDPC 287

9.1.2 Dnition dun code LDPC


Codes en bloc linaires
Les codes en bloc linaires (voir aussi chapitre 4) peuvent tre dnis par
une matrice de contrle H de taille m n, o m = n k. Cette matrice peut
tre vue comme un systme linaire de m quations de parit. Les mots c du
code dni par H sont les mots binaires dont les n bits vrient simultanment
les m quations de parit. Ce systme dquations linaires est reprsent gra-
phiquement dans la gure 9.2 pour le cas du code en bloc binaire de Hamming
de taille n = 7.

Figure 9.2 Reprsentation graphique dun code en bloc : exemple du code de Ham-
ming de taille 7.

Une telle reprsentation est appele graphe bipartite du code. Dans ce


graphe, des branches sont relies deux nuds appartenant deux classes
direntes :
La premire classe de nuds appels nuds de variable, correspond aux
bits des mots de code (cj , j {1, , n}), et donc aux colonnes de H.
La seconde classe de nuds, appels nuds de parit, correspond aux
quations de parit (ep , p {1, , m}), et donc aux lignes de H.
Ainsi, chaque branche reliant un nud de variable cj un nud de parit ep
correspond le 1 qui se situe lintersection de la j-ime colonne et de la p-ime
ligne de la matrice de contrle.
Par convention, on notera P (j) (respectivement J(p)) lensemble des in-
dices des nuds de parit (respectivement de variable) connects la variable
dindice j (respectivement la parit dindice p). On dsignera par P (j)\p
(respectivement J(p)\j) lensemble P (j) priv de lindice p (respectivement,
lensemble J(p) priv de lindice j). Ainsi, sur lexemple de la gure 9.2, nous
avons
P (5) = {1, 3} et J(1)\5 = {4, 6, 7}
Un cycle sur un graphe bipartite est un chemin sur le graphe qui permet
de partir dun nud et de revenir ce mme nud sans passer par la mme
branche. La taille dun cycle est donne par le nombre de branches contenues
dans le cycle. Le graphe tant bipartite, la taille des cycles est paire. En anglais,
la taille du cycle le plus court dans un graphe est appele girth. La prsence
288 Codes et turbocodes

de cycles dans le graphe pourra dgrader les performances de dcodage par


un phnomne dauto-conrmation lors de la propagation des messages. La
gure 9.3 illustre deux cycles de tailles 4 et 6.

Figure 9.3 Cycles dans un graphe bipartite.

Codes faible densit

Les codes faible densit (LDPC ) sont des codes en blocs linaires, le
terme faible densit venant du fait que la matrice de contrle H contient un
faible nombre de valeurs non nulles : cest une matrice creuse. Dans le cas
particulier des codes LDPC binaires, tudis ici, la matrice de contrle contient
un faible nombre de 1. Autrement dit, le graphe bipartite associ contient un
faible nombre de branches. Le qualicatif faible signie mathmatiquement
que lorsque la longueur n dun mot de code augmente, le nombre de 1 dans
la matrice augmente en O(n) (contre une augmentation en O(n2 ) du nombre
dlments de la matrice si le rendement reste xe).
La classe des codes LDPC engendre un trs grand nombre de codes. Il est
commode de les distinguer en deux sous-classes :
les codes LDPC rguliers
les codes LDPC irrguliers
Un code LDPC est dit rgulier dans le cas particulier o la matrice de
contrle H contient un nombre constant dc de 1 dans chaque ligne, et un nombre
constant dv de 1 dans chaque colonne. On dit alors que les variables sont de
degr dv et que les parits sont de degr dc . Le code est not code LDPC
rgulier (dv ,dc ). Par exemple, la matrice de contrle dun code LDPC rgulier
(3,6) contient seulement 3 valeurs non nulles dans chaque colonne, et 6 valeurs
non nulles dans chaque ligne. La gure 9.4 prsente un exemple de code rgulier
(3,6) de taille n = 256 obtenu par tirage alatoire. Sur les 256x128 entres de la
matrice, seules 3x256 sont non nulles, soit environ 2, 3%. Ce pourcentage tend
vers 0 si la taille du code, pour un rendement x, tend vers linni.
Le prol dirrgularit des variables dun code LDPC irrgulier est dni
par le polynme (x) = j xj1 o le coecient j est gal au rapport entre
le nombre cumul de 1 des colonnes (ou variable) de degr j et le nombre total
E de 1 de la matrice H. Par exemple, (x) = 0, 2x4 + 0, 8x3 indique un code
o 20% des 1 sont associs des variables de  degr 5 et 80% des variables de
degr 4. Notons que, par dnition, (1) = j = 1. De plus, la proportion
9. Codes LDPC 289

120

100

80

60

40

20

50 100 150 200 250

Figure 9.4 Matrice de contrle dun code LDPC rgulier (3,6) de taille n = 256 et
de rendement R = 0, 5.

de colonnes de degr j de la matrice est donne par


j /j
j = 
k /k
k

De faon symtrique,
 le prol dirrgularit des parits est reprsent par le
polynme (x) = p xp1 , avec le coecient p gal au rapport entre le
 de degr p et le nombre total de 1
nombre cumul de 1 des lignes (ou parit)
not E. De mme, on obtient (1) = j = 1. La proportion p de colonnes
de degr p de la matrice H est donne par
p /p
p = 
k /k
k

Les codes irrguliers possdent plus de degrs de libert que les codes rgu-
liers et il est ainsi possible de les optimiser plus ecacement : leurs performances
asymptotiques sont meilleures que celles des codes rguliers.

Rendement du code
Considrons une quation de parit de degr dc . Il est possible de xer arbi-
trairement les valeurs des dc 1 premiers bits, seul le dernier bit est contraint
et correspond de la redondance. Ainsi, dans une matrice de parit H de
taille (m,n), chacune des m lignes correspond 1 bit de redondance. Si les m
lignes de H sont indpendantes, le code possde alors m bits de redondance.
Le nombre total de bits du code tant de n, le nombre de bits dinformation
est alors k = n m et le rendement du code est R = (n m)/n = 1 m/n.
Notons que dans le cas o les m lignes ne sont pas indpendantes (par exemple
deux lignes identiques), le nombre de bits contraints est infrieur m. On a
alors R > 1 m/n.
290 Codes et turbocodes

Dans le cas dun code LDPC rgulier (dv ,dc ), chacune des m lignes possde
dc valeurs non nulles, soit un total de E = mdc valeurs non nulles dans la
matrice H. De faon symtrique, chacune des n colonnes contient dv valeurs
non nulles. On en dduit que E vrie E = ndv = mdc , soit m/n = dv /dc . Le
rendement dun tel code vrie alors R  (1 dv /dc ).
Dans le cas dun code irrgulier, lexpression du rendement se gnralise en
tenant compte de chaque degr pondr par son poids :

p p /p
R1  (9.15)
j j /j

Lgalit est atteinte si la matrice H est de rang m.

9.1.3 Encodage
Lencodage dun code LDPC peut se rvler relativement complexe si la
matrice H na pas de structure particulire. Il existe des solutions gnriques
dencodage, dont un algorithme de complexit en O(n), ncessitant un prtrai-
tement complexe sur la matrice H. Une autre solution consiste construire
directement la matrice H de faon obtenir un code systmatique trs simple
encoder. Cest notamment cette solution qui a t adopte pour le code du
standard DVB-S2 de transmission numrique de tlvision par satellite.

Encodage gnrique
Encodage par matrice gnratrice
Les codes LDPC tant des codes linaires en bloc, lencodage peut se faire
par le biais de la matrice gnratrice G de taille k n du code, telle que d-
nie dans le chapitre 4. Comme nous lavons vu, les codes LDPC se dnissent
partir de leur matrice de contrle H, qui nest gnralement pas systma-
tique. Une transformation de H en matrice systmatique Hsys est possible, par
exemple avec lalgorithme dlimination gaussienne. Cette technique, relative-
ment simple, a cependant un inconvnient majeur : la matrice gnratrice Gsys
du code systmatique nest gnralement
- . pas creuse. La complexit dencodage
augmente rapidement en O n2 , ce qui rend cette opration trop complexe
pour des codes de taille usuelle.

Encodage complexit linaire


Richardson et al [9.8] ont propos une solution permettant un encodage
quasi-linaire (complexit en O (n)), ainsi que des algorithmes que lon pour-
rait traduire littralement de gourmands (en anglais greedy) permettant
deectuer un prtraitement de la matrice de contrle H. Le but du prtraite-
ment est de mettre H sous une forme presque triangulaire infrieure, comme
illustre dans la gure 9.5, en utilisant uniquement des permutations de lignes
ou de colonnes. Cette matrice est compose de 6 sous-matrices, toujours creuses,
notes A,B,C,D,E et dune matrice T sous matrice triangulaire infrieure. Une
9. Codes LDPC 291

Figure 9.5 Reprsentation sous forme pseudo triangulaire infrieure de la matrice


de contrle H.

fois le prtraitement de H achev, le principe de lencodage est bas sur la


rsolution du systme reprsent par lquation matricielle suivante :

cHT = 0 (9.16)

Le mot de code recherch est dcompos en trois parties : c = (d, r1 , r2 ), o d


est la partie systmatique qui est connue et o les bits de redondance cherchs
 g et n k g.
sont spars en deux vecteurs r1 et r2 , de tailles respectives
I 0
Aprs multiplication droite par la matrice , lquation (9.16)
ET 1 I
devient :
Adt + Brt1 + T rt2 = 0 (9.17)
- 1
. t - 1
. t
ET A + C d + ET B + D r1 = 0 (9.18)
Lquation (9.18) permet de trouver r1 en inversant = ET 1 B + D. Puis
lquation (9.17) permet de trouver r2 en inversant T . De nombreuses op-
rations coteuses en temps peuvent tre faites une fois pour toute dans un
prtraitement. Toutes les oprations rptes- au cours de lencodage
. t ont une
1
complexit en
- 1 . O (n) sauf la multiplication de ET A + C d par la matrice
carre de
- taille
. g g qui aprs inversion nest plus creuse do une
complexit en O g 2 . Il est montr dans [9.8] que lon peut obtenir une valeur
de g gale une faible fraction
- . de n : g = n o est un coecient su-
samment faible pour que O g 2 << O (n) pour des valeurs de n allant jusqu
105 .

Constructions spciques
Encodage par matrice gnratrice creuse
Une ide propose par Oenning et al [9.9] consiste construire directement
une matrice gnratrice creuse et systmatique, ainsi lencodage est ralis par
simple multiplication et la matrice de contrle reste creuse. Ces codes sont
292 Codes et turbocodes

appels LDGM (Low-Density Generator-Matrix ). Leurs performances sont ce-


pendant mdiocres [9.10], mme sil est possible doptimiser leur construction
[9.11] et de diminuer le plancher derreur.

Encodage par rsolution du systme cH T = 0 obtenue par substitution


Mackay et al. [9.12] proposent de contraindre la matrice de parit pour
quelle soit compose des trois sous-matrices A, B et C disposes comme dans
la gure 9.6.

Figure 9.6 Construction spcique de la matrice de contrle H facilitant lencodage.

Lencodage systmatique est ralis par rsolution de lquation (9.16), qui


se traduit par la rsolution par substitution de (n k ) quations. Chaque
ligne de la matrice de parit contenant un faible nombre de 1, cette opration
est linaire avec n. Les quations restantes sont rsolues par inversion de la
matrice C dnie dans la gure 9.4. Cela entrane - la
. multiplication par une
matrice non creuse et donc une complexit en O 2 . Bond et al [9.13] ainsi
que Hu et al [9.14] ont propos de construire des matrices de contrle avec
= 0. Dans [9.15] Haley et al dnissent une classe de codes permettant la
rsolution de lquation 9.12 par un algorithme itratif analogue celui utilis
pour le dcodage.

Encodage cyclique
Les classes de codes LDPC dnies par la gomtrie nie ou par la gomtrie
projective [9.14, 9.16-9.19] permettent dobtenir des codes cycliques ou pseudo
cycliques. Les codes ainsi obtenus peuvent tre encods de faon ecace laide
de registres dcalages. Ils orent en outre de bonnes proprits en terme de
distribution de longueur de cycle ( 6). Linconvnient principal est que le
cardinal de ces classes de code est relativement petit. Ces classes norent
donc quun nombre trs restreint de combinaisons taille rendement prol
dirrgularit possibles.
9. Codes LDPC 293

Rcapitulatif
La table 9.1 rcapitule les dirents types dencodage possibles rencontrs
dans la littrature. En pratique, lencodage classique des codes en blocs par
matrice gnratrice nest pas utilis pour les codes LDPC en raison de la taille
importante des mots de codes. Les codes obtenus par gomtrie projective ou
nie ne peuvent pas tre optimiss (conception optimale des prols dirrgu-
larit). Il ne reste donc que les codes construits pour faciliter lencodage par
rsolution de lquation cH T = 0 par substitution, tel que celui choisi pour la
norme DVB-S2.

Type dencodage Complexit Remarques


Matrice O(n2 ) Non utilis en pratique
Gnratrice
Gnrique
Encodage O(n) Prtraitement important
pseudo-linaire
Rsolution de O(n) (si Perte de performance
cHT = 0 par = 0) possible
Construction substitution
ad hoc Cyclique ou O(n) Nombre restreint de
pseudo cyclique combinaisons possibles
des dirents paramtres

Table 9.1 Rcapitulatif des dirents encodages possibles.

Analogie entre un code LDPC et un turbocode


La gure 9.7 donne la reprsentation sous forme dun graphe bipartite pro-
pos par Tanner [9.2] dun turbocode, montrant ainsi la relation profonde qui
lie la famille des turbocodes et celle des codes LDPC.
Dans le cas dun turbocode, les contraintes sont plus grandes que dans le
cas dun code LDPC car les codes lmentaires sont des code convolutifs. Mais
de la mme faon que pour les codes LDPC, un mot est un mot du code si et
seulement si les deux contraintes du graphe sont respectes. Notons ici que le
degr des bits dun turbocode est de deux pour les bits dinformation et de un
pour les bits de redondance.
De faon similaire, un code produit peut aussi se reprsenter
par un graphe
bipartite. Le nombre de nuds de contraintes est alors de 2 n (contre 2 pour
le turbocode et n/2 pour un code LDPC de rendement 0,5) et ceux-ci ont une
complexit intermdiaire entre celui du turbocode et celui du code LDPC. Les
turbocodes et les codes LDPC reprsentent ainsi les deux extrmits du spectre
des codes composs . Le premier ne contient que deux nuds de contraintes
trs complexes, le dernier, une multitude de nud de contraintes, chaque nud
tant constitu du code linaire le plus simple possible (code de parit). Notons
294 Codes et turbocodes

qu partir de cette reprsentation du graphe bipartite, une innit de codes


plus ou moins exotiques peuvent tre construits.

Figure 9.7 Reprsentation dun turbocode sous forme dun graphe bipartite.

La similitude entre turbocodes et codes LDPC est encore plus profonde que
ne le laisse supposer les reprsentations sous forme de graphes bipartites. En
eet, il est montr dans [9.10], [9.20] et dans la section 6.2 quil est possible
de reprsenter un turbocode sous forme dune matrice LDPC. La ressemblance
sarrte ici. En eet, la matrice de contrle H dun turbocode contient de
nombreux motifs rectangulaires (quatre 1 formant un rectangle dans la matrice
H), cest--dire de nombreux cycles de longueur 4, qui rendent inecaces les
algorithmes de dcodage des codes LDPC qui seront dcrits ci-aprs.

9.1.4 Dcodage des codes LDPC


Le dcodage dun code LDPC seectue selon le mme principe que le d-
codage dun turbocode par un algorithme itratif dit algorithme propagation
de croyance. Chaque nud de variable envoie aux nuds de parit auxquels
il est associ un message sur la valeur estime de la variable (information a
priori). Lensemble des message a priori reus permet la contrainte de parit
de calculer, puis de retourner les informations extrinsques. Le traitement suc-
cessif des nuds de variable puis de parit constitue une itration. chaque
itration, il y a donc un change bilatral de messages entre les nuds de parit
et les nuds de variable, sur les arcs du graphe bipartite reprsentant le code
LDPC.
Au niveau du rcepteur, la mthode de quantication de la squence reue,
X, dtermine le choix de lalgorithme de dcodage.

Algorithme entre ferme


Une quantication sur un bit consiste traiter seulement le signe des chan-
tillons reus. Les algorithmes de dcodage entre ferme sont bass sur celui
propos par Gallager sous le nom dalgorithme A [9.1]. Ces dcodeurs orent
bien sr des performances moindres que celles des dcodeurs entre souple.
9. Codes LDPC 295

Il ne sont mis en uvre que pour des applications trs particulires comme les
communications par bre optique par exemple [9.21]. Ces algorithmes ne seront
pas considrs dans la suite du chapitre.

Algorithme propagation de croyance


Lorsque la quantication est faite sur plus dun bit, le dcodage est entre
souple et utilise la probabilit a priori des symboles reus. Dans le cas des
codes binaires et en se plaant dans le domaine logarithmique, on utilise le
logarithme du rapport de vraisemblance (LRV) a priori des chantillons Xj :
 
p (Xj |cj = 0 )
L (Xj |cj ) = ln (9.19)
p (Xj |cj = 1 )
o cj est le j-ime bit du mot de code et Xj = cj + bj . Dans le cas du ca-
nal bruit blanc additif gaussien, les chantillons de bruit bj suivent une loi
gaussienne centre de variance 2 , soit :
" %
2
1 (Xj (2cj 1))
p (Xj |cj ) = exp (9.20)
2 2 2 2

En combinant (9.19) et (9.20), linformation intrinsque Ij peut tre dnie :


2Xj
Ij = L (Xj |cj ) = (9.21)
2
Chaque itration de lalgorithme BP est dcompose en deux tapes :
1. Le traitement des parits :

5 Zj,p
Lj,p = 2 tanh1 tanh (9.22)
2
p P (j)/p

2. Le traitement des variables :



Lj,p = Ij + Zj  ,p (9.23)
j  J(p)/p

Les itrations sont rptes jusqu ce que le nombre ditrations maximum


Nit soit atteint. Il est possible darrter les itrations avant Nit lorsque toutes
les quations de parits sont satisfaites. Cela permet soit de gagner en dbit
moyen, soit de limiter la consommation.
On appelle Lj linformation totale ou le LRV du bit j. Cest la somme de
linformation intrinsque Ii et de linformation extrinsque totale Zj qui est
par dnition la somme des informations extrinsques de branches Zj,p :

Zj = Zj,p (9.24)
pP (j)
296 Codes et turbocodes

On a donc Lj = Ij + Zj et lquation (9.23) peut alors scrire :

Lj,p = Lj Zj,p = Ij + Zj Zj,p (9.25)

Lalgorithme BP est optimal dans le cas o le graphe du code ne contient aucun


cycle : tous les squencements1 (en anglais schedules) donnent le mme rsultat.
Les codes LDPC comportant des cycles, leur dcodage par lalgorithme BP
peut entraner des phnomnes dauto-conrmation des messages qui dgradent
la convergence et rendent lalgorithme BP nettement sous-optimal. Toutefois,
ces phnomnes peuvent tre limits si les cycles sont susamment grands.
Le premier squencement qui fut propos est appel squencement par
inondation (en anglais ooding schedule) [9.22]. Il consiste traiter successi-
vement toutes les parits puis toutes les variables.

Algorithme de squencement par inondation


Initialisation :
(0)
1- nit = 0, Zj,p = 0 p j J(p), Ij = 2yj / 2 j
Rpter jusqu ce que nit = Nit ou que le systme ait converg vers un
mot de code :
2- nit = nit + 1
3- j {1, , n} faire : {Calcul des messages variable vers parit}
(n )  (n 1) (n ) (n )
4- Zj it = Zj,pit et Lj it = Ij + Zj it
pP (j)

5- p P (j) :
(n )
 (n 1) (nit ) (n 1)
Lj,pit = Ij + Zj,pit = Ij + Zj Zj,pit
p P (j)/p

6- p {1, , m} faire : {Calcul du message parit vers variable}


(n ) F (n )
7- j J(p) : Zj,pit = Lj,pit
p P (j)/p

(n )
Les bits dcods sont alors estims par sgn Lj it .
Il est intressant de noter quil est possible de modier lalgorithme en ordon-
nant le squencement par inondation suivant les noeuds de parit. Ceux-ci
sont alors traits en srie, et lalgorithme devient :
(nit +1)
3. j {1, , n} : Zj =0
4. p {1, , m} faire :
5. calcul des messages dentres
(n ) (nit ) (n 1)
j J(p) Lj,pit = Ij + Zj Zj,pit
1 On entend par squencement lordre dans lequel est eectu le traitement de chaque parit
et de chaque variable.
9. Codes LDPC 297

6. calcul des informations extrinsques

(n )
E (n )
j J(p) Zj,pit = Lj,pit
p P (j)/p

7. mise jour pour litration suivante

(nit +1) (nit +1) (n )


j J(p) Zj = Zj + Zj,pit

Une organisation similaire des calculs pour les nuds de variable sera appe-
le calcul distribu car les calculs lis un nud de variable seront distribus
pendant une itration. Dans la section 9.2, les dirents types de squencement
seront dtaills puis gnraliss.
Il faut aussi noter que la notion ditration (le calcul de tous les messages
du graphe en une et une seule fois) nest pas stricte. Ainsi, Mao et al [9.23] ont
propos une variante du squencement par inondation an de limiter limpact
de leet des cycles sur la convergence. Cette variante appele squencement
probabiliste (probabilistic scheduling) consiste omettre de traiter certaines
variables chaque itration. Le choix de ces variables est alatoire et dpend
de la taille du cycle le plus petit associ cette variable : plus celui-ci est
petit, plus la probabilit de traiter la variable est faible. Cette mthode limite
ainsi les phnomnes dauto-conrmation introduits par les cycles courts. Elle
permet dobtenir une convergence plus rapide que celle du squencement par
inondation. Les architectures lies ce squencement ne seront pas abordes.

9.1.5 Construction dun code LDPC


La construction dun code LDPC (ou dune famille de code LDPC ) doit
naturellement tre eectue de faon optimiser les performances du code tout
en minimisant la complexit matrielle du dcodeur associ.
Cet ouvrage ayant dj prsent les principes du dcodage itratif (cha-
pitre 7), nous nous contentons ici de rappeler les principes de construction dun
code LDPC permettant dtre ecacement dcod par lalgorithme propa-
gation de croyance. Nous renvoyons le lecteur souhaitant approfondir le sujet
aux rfrences donnes dans ce chapitre. Le problme de construction de code
LDPC adapt un dcodage matriel sera abord dans la section 9.2.
Loptimisation dun code LDPC seectue en trois tapes :
optimisation a priori des prols dirrgularit des nuds de parit et de
variable ;
construction de matrices H de taille adquate respectant les prols dir-
rgularit et maximisant la longueur des cycles ;
ventuellement, choix ou rejet des codes sur le critre de la distance mi-
nimale ou sur les performances calcules par simulation.
298 Codes et turbocodes

Optimisation des prols dirrgularits


On fait lhypothse de codes de taille innie et dun nombre inni dit-
rations. Cela permet en eet loptimisation de leurs caractristiques asympto-
tiques (prol dirrgularit, rendement) en fonction du canal vis. Deux tech-
niques existent : lalgorithme dvolution de densit et son approximation gaus-
sienne, et les diagrammes de transfert dinformation extrinsque.
Lalgorithme dvolution de densit (density evolution) a t propos par
Richardson [9.24]. Cet algorithme calcule la densit de probabilit des messages
Lj,p et Zj,p aprs chaque nouvelle itration. Lalgorithme est initialis avec
la densit de probabilit des chantillons entrants, qui dpend du niveau de
bruit 2 du canal. Lutilisation de cet algorithme permet de connatre la valeur
maximale de 2 en dessous de laquelle lalgorithme converge, cest--dire telle
que la probabilit derreur est plus faible quun seuil x au dpart. Il est aussi
possible de dterminer par programmation linaire un prol dirrgularit qui
permette davoir le seuil le plus faible possible.
Une simplication de lalgorithme dvolution de densit propose par Chung
et al [9.25, 9.26], est obtenue en remplaant les densits de probabilit relles
par des densits gaussiennes voisines. Lintrt de lapproximation par des den-
sits gaussiennes est quil sut de calculer lvolution dun seul paramtre en
faisant lhypothse que ces densits gaussiennes sont consistantes, cest--dire
que la variance est gale deux fois la moyenne. En eet, en supposant que le
mot tout 0 a t envoy, on a linitialisation (nit = 0) :

(0) 2Xj - .
Lj,p = avec Xj N 1, 2 (9.26)
2
 
(0) 2 4
donc Lj,p N ,
2 2
On note :
(0)
mj = 22 la moyenne de la densit de probabilit gaussienne consistante
envoye de la variable cj de degr dv vers les parits ep de degr dc qui y
sont connectes,
(nit ) (n )
p la moyenne des message Zj,pit .
(nit )
Pour suivre lvolution de la moyenne mj au cours des itrations nit , il
sut alors de prendre lesprance mathmatique des quations (9.22) et (9.23)
relatives au traitement des variables et des parits, ce qui donne :
(n )
(n )
dc 1
avec (x) = E [tanh (x/2)] , x N (m, 2m) (9.27)
it it
p = mj

(nit +1) 2
mj = + (dv 1) p(nit ) (9.28)
2
Ainsi pour un code LDPC rgulier (dv , dc ) et pour un bruit donn de va-
riance 2 , les quations (9.27) et (9.28) permettent, par un calcul itratif, de
9. Codes LDPC 299

savoir si la moyenne des messages tend vers linni ou pas. Si tel est le cas,
un dcodage sans erreur avec un mot de code de taille innie et un nombre
inni ditration est possible. Dans le cas dun code irrgulier, il sut de faire
la moyenne pondre sur les dirents degrs des quations (9.27) et (9.28).
La valeur maximale de pour laquelle la moyenne tend vers linni, et
donc pour laquelle la probabilit derreur tend vers 0, est le seuil du code
(threshold en anglais). Par exemple, le seuil dun code rgulier (3,6), obtenu avec
lalgorithme dvolution de densit, est max = 0.8809 [9.26], ce qui correspond
Eb
un rapport signal sur bruit minimum de N 0 min
= 1.1dB.
Une autre technique drive des diagrammes de transfert dinformation ex-
trinsque(EXIT charts 2 ) proposs par Ten Brink [9.27, 9.28] permet deectuer
une optimisation des prols dirrgularit. Si lalgorithme dvolution de densit
sintresse lvolution au cours des itrations des densits de probabilit des
messages, ces diagrammes sintressent quant eux au transfert dinformation
mutuelle entre lentre et la sortie des dcodeurs des codes constituants [9.28].
Le principe de ces diagrammes a t aussi utilis avec dautres paramtres que
linformation mutuelle, comme le rapport signal sur bruit ou la probabilit
derreur [9.29, 9.30]. Il a aussi t appliqu dautres types de canaux [9.31].

Optimisation de la taille des cycles


Loptimisation des prols dirrgularit tant asymptotique, il sagit main-
tenant de construire une matrice de contrle de taille nie. Cette phase peut
tre ralise de faon alatoire : on tire au hasard les entres non nulles de la
matrice de contrle en respectant au mieux le prol dirrgularit des nuds. Il
est aussi possible de construire des codes en tirant au hasard des permutations
dune matrice lmentaire qui sont ensuite concatnes. Une autre faon de
construire des codes LDPC est la construction dterministe de matrice (go-
mtrie nie et projective).
Dans tous les cas, il faut prendre garde aux cycles prsents dans le graphe
du code, et cela dautant plus quils sont petits. Lalgorithme de dcodage
par propagation de croyance suppose en eet que les cycles qui dtrioreraient
lindpendance des messages entrant dans un nud nexistent pas. Dans la
pratique, la prsence de cycles dans le graphe est invitable. Mais sils sont
susamment grands, lindpendance des messages reste une bonne approxima-
tion. La construction de bons codes LDPC doit donc sassurer de labsence des
plus petits cycles, ceux de taille 4. De trs nombreuses solutions sont proposes
dans la littrature pour construire des codes LDPC. Par exemple, Campello et
al [9.32] proposent doptimiser la taille du cycle minimum pour un rendement
donn. Hu et al [9.33] suggrent de construire le graphe branche par branche
an dviter au maximum les tailles de cycles les plus faibles (Progressive Edge
Geometry ou PEG). Zhang et al [9.34] construisent des codes LDPC dont les
cycles les plus petits sont de tailles 12, 16 ou 20, mais les variables ne sont
que de degr 2. Tian et al [9.35] se basent sur le fait que tous les cycles de
2 le principe de construction des diagrammes EXIT est dcrit la section 7.6.3
300 Codes et turbocodes

petites tailles nont pas la mme inuence et suppriment uniquement les plus
pnalisants.

Slection du code par la mthode impulsionnelle


Si les performances de dcodage par lalgorithme de propagation de croyance
sont amliores par la suppression des cycles de petites tailles, il est galement
important aussi davoir de bons codes correcteurs derreurs, cest--dire
qui possdent une distance minimale importante. La mthode impulsionnelle
a dabord t propose par Berrou et al [9.36, 9.37] pour valuer la distance
minimale de Hamming dun turbocode. Elle a ensuite t adapte au cas des
codes LPDC par Hu et al [9.38]. Elle permet ainsi de vrier simplement que la
distance minimale du code conu soit susante pour atteindre le taux derreur
cible pour lapplication vise.

Slection du code par simulation


Enn, le choix nal du code est obtenu par la simulation. En eet, deux
codes de mme taille et de mme rendement, construits avec les mmes prols
dirrgularits, nayant pas de cycle court et ayant la mme distance minimale
peuvent nanmoins avoir des performances sensiblement direntes. Ces dif-
frences peuvent sexpliquer par deux phnomnes : lexistence de points xes
parasites introduits par la sous-optimalit de lalgorithme de dcodage itra-
tif qui remonte le taux derreur binaire par rapport la valeur thorique [9.39].
Le nombre de mots de code distance minimale inue aussi sur les perfor-
mances du code. La gure 9.8 montre les performances dun code LDPC pour
direntes tailles et dirents rendements dans le cas dun dcodeur DVB-S2
implant sur un FPGA Altera Stratix80.
Les codes LDPC ont donc des performances thoriques excellentes. Ceci
doit toutefois se traduire par une simplicit de mise en uvre matrielle pour
que ces codes puissent tre utiliss en pratique. Cest pourquoi une attention
particulire doit tre porte aux architectures et aux implmentations des d-
codeurs LDPC.

9.2 Architecture de dcodage de codes LDPC


pour le canal Gaussien
Lorsque lalgorithme propagation de croyance est mis en uvre, larchitec-
ture gnrale des dcodeurs de codes LDPC peut tre ralise laide de pro-
cesseurs de nuds gnriques (PNG) modlisant soit le traitement des parits,
soit le traitement des variables. Cette section dcrit les direntes ralisations
possibles de ces processeurs aprs une analyse de la complexit du dcodage des
codes LDPC. Les direntes possibilits de contrle de cette architecture base
de PNG permettent de dnir trois classes de squencement de lalgorithme
9. Codes LDPC 301

R=1/2
R=3/4
R=4/5
0.1 R=5/6
R=8/9
R=9/10
0.01

0.001
FER

0.0001

1e05

1e06

1e07
1 2 3 4 5
Eb/No

Figure 9.8 Taux derreur paquet (FER : Frame Error Rate) obtenu pour des tailles
de mot de code de 64 kbits et dirents rendements de la norme DVB-S2 (50 itrations,
virgule xe). Avec la permission de TurboConcept S.A.S, France.

propagation de croyance : squencement en deux passes, squencements ver-


tical et horizontal . Cette prsentation originale et unie des architectures
de dcodeurs de codes LDPC permet de couvrir de nombreuses architectures
existantes et publies ce jour et de synthtiser des architectures novatrices.

9.2.1 Analyse de la complexit


La complexit du dcodage des codes LDPC est directement lie au nombre
de branches dans le graphe bipartite du code, ou au nombre de 1 dans la ma-
trice de contrle. Lalgorithme de dcodage itratif propagation de croyance
comporte deux tapes. Dans chaque tape, il sagit de calculer linformation
Lj,p ou Zj,p qui est associe la branche reliant la variable j la parit p.
Notons B le nombre de branche du graphe bipartite du code LDPC. Dans le
cas par exemple dun code rgulier (dv , dc ) de taille n, le nombre de branches
B est donn par :
B = dv n = d c m (9.29)
La puissance de calcul Pc ncessaire au dcodage des codes LDPC est alors
dnie comme le nombre de branches traiter par cycle dhorloge. Ce paramtre
dpend :
du nombre k de bits dinformation transmettre par mot de code,
du nombre de branches B,
du dbit D dinformation souhait,
302 Codes et turbocodes

du nombre maximum ditration Nit ,


de la frquence dhorloge fclk .
En une seconde, le nombre de mots de code traiter pour obtenir un dbit
dinformation D est gale D/k (mots/seconde). Dans le pire des cas, le dco-
dage dun mot de code requiert le calcul de B Nit branches. Pour garantir un
dbit D, une architecture doit fournir une puissance de calcul de D B Nit /k
branches par seconde. La puissance de calcul minimale Pc fournir par cycle
dhorloge est donc :
BNit D
Pc = (branches/cycle) (9.30)
kfclk
Remarquons que, pour une architecture entirement parallle dans laquelle
chaque nud du graphe est associ un processeur, toutes les branches du
graphe sont traites en un cycle dhorloge. La puissance de calcul est alors
(Pc )max = B. Vouloir dpasser cette puissance en pratique ne prsente pas
dintrt puisque le chemin critique devient alors plus long.

9.2.2 Architecture dun Processeur de Nud Gnrique


(PNG)
Les calculs eectus dans un processeur de nud de variable (PNV) et
dans un processeur nud de parit (PNP) ont une dpendance identique entre
les entres et les sorties. En eet, tant pour le PNP que pour le PNV, les d
sorties sont calcules partir des d entres, avec la i-ime sortie dpendant de
toutes les entres moins la i-ime entre. Il est ainsi possible de reprsenter les
direntes architectures de processeurs de faon abstraite par un processeurs de
nud gnrique. Celui-ci sera ensuite spcialis en fonction de lalgorithme de
dcodage utilis. Le PNG reoit donc en entre d messages (ei )i=1..d et produit
en sortie d messages (sj )j=1..d dnis par :

sj = ei (9.31)
i=j

Loprateur est un oprateur gnrique de calcul, associatif et commutatif,


dont la ralisation sera spcie par la suite. Lexpression condense 9.31 signie
que loprateur sapplique toutes les variables ei pour i = j.
La gure 9.9 illustre les trois principales versions darchitectures parallles de
PNG :
Architecture directe : les calculs des d messages de sortie sont eectus in-
dpendamment (gure 9.9(a)). Les calculs des direntes sorties peuvent
aussi tre factoriss. Le nombre de composants traverss est de lordre
de log2 (d).
Architecture treillis (type Forward-Backward) : cette architecture corres-
pond une forme factorise particulire de larchitecture parallle qui
prsente une grande rgularit, mais dont le nombre doprateurs est
linaire avec d.
9. Codes LDPC 303

latence FIFO de taille d


de op_1

op_1

Figure 9.9 Les direntes architectures mode compact pour limplantation de


loprateur gnrique .

Architecture par somme totale : cette architecture nest possible que si


loprateur gnrique admet un inverse not inv . Dans ce cas, lop-
rateur gnrique est appliqu toutes les entres (somme totale) puis
chaque sortie est calcule en liminant la contribution de lentre corres-
pondante laide de loprateur inverse.
Il est possible de modier ces architectures pour introduire des registres in-
termdiaires de pipeline permettant de rduire le chemin critique. Il existe
galement des architectures de type srie (gure 9.9(c)).
Dans la suite, le degr de paralllisme dun PNG sera not g . Il sagit du
nombre de cycles ncessaires pour traiter un nud (sans considrer la latence
due au traitement pipeline). Ainsi, pour une architecture parallle capable de
traiter un nud chaque cycle dhorloge, g = 1, tandis que pour une archi-
304 Codes et turbocodes

tecture srie, g = d.
Notons que dans toutes les architectures de PNG prsentes, nous avons
fait implicitement lhypothse que toutes les entres taient disponibles et que
toutes les sorties devaient tre gnres soit simultanment (architecture paral-
lle), soit de faon groupe dans le temps (architecture srie). Un tel mode de
contrle du PNG est appel mode compact .

Figure 9.10 Principe du mode distribu (mise jour dire).

Il est possible dimaginer des modes dexcution dirents, comme le mode


distribu , dans lesquels entres et sorties du PNG sont rparties le long dune
itration de dcodage.
La gure 9.10 permet dillustrer le fonctionnement en mode distribu dun
processeur :
Pendant litration courante nit , on considre que les variables dentre
ei proviennent de litration prcdente nit 1 tandis que les variables de
sortie appartiennent litration courante.
it 1)
la n dune itration, on suppose que les d variables dentres (e(n
i
)i=1..d
sont mmorises dans une mmoire (interne ou externe au PNG) de mme
it 1)
que la valeur de E (nit ) = e(n i
.
i=1..d
Le PNG peut donc, la requte du systme, calculer la i-ime sortie
(n ) (n 1)
si it = E (nit ) inv (ei it ).
Cette sortie est envoye, travers lentrelaceur, au nud oppos qui, une
(n )
fois le calcul termin, renvoie ei it .
(n 1)
Cette nouvelle valeur remplace alors ei it dans la mmoire et est aussi
accumule pour obtenir la valeur de E (nit +1) la n de litration. Deux
modes daccumulation sont possibles :
1. Le premier mode mise jour dire (gure 9.10) consiste uti-
liser un registre daccumulation initialis zro lors de chaque nou-
velle itration. Ce registre permet de calculer directement E (nit ) =
e(n i
it )
. Cette architecture possde donc d + 2 mots mmoire, d
i=1..d
it 1)
pour les entres (e(n
i
)i=1..d , un mot pour E (nit ) et un mot pour
9. Codes LDPC 305

laccumulation de E (nit +1) .


2. Le deuxime mode mise jour immdiate consiste, ds quune
(n ) (n 1)
nouvelle entre ei it arrive, remplacer la contribution de ei it
(nit 1) (nit )
dans E par celle de ei , soit :

(n 1)
E (nit 1) = E (nit 1) ei it inv ei it
(n )
(9.32)

la n de litration, on a ainsi E (nit ) = E (nit 1) . Cette solution


ore deux avantages par rapport la mise jour dire :
un mot de mmoire en moins ;
une acclration de la convergence de lalgorithme car les nouvelles
valeurs des entres sont prises en compte plus tt.

Choix de loprateur gnrique


La gure 9.11 donne une vue en coupe de lalgorithme propagation
de croyance sur le graphe bipartite du code LDPC. On suppose que chaque
branche est ddouble pour direncier les messages des variables vers les pa-
rits et les messages des parits vers les variables. Cette vue montre la grande
ressemblance entre le traitement des variables et le traitement des parits et
permet dimaginer dautres positions du rseau dinterconnexion dans le cycle
de calcul. Chaque position du graphe dinterconnexion se traduit alors par
un traitement dirent des nuds de parit et des nuds de variable. Le ta-
bleau 9.2. donne les dirents calculs eectuer en fonction de la position du
rseau dinterconnexion.

Figure 9.11 Direntes positions du rseau dinterconnexion obtenues en eectuant


le traitement des nuds de parit dans le domaine de Fourier. Ces positions sparent
les parties de litration raliser dans les PNV de celles ralises dans les PNP.

Lorsque le rseau dinterconnexion est en position 1 (table 9.2), on retrouve


la sparation classique entre processeur de variables et processeur de parits.
Ce dernier peut alors soit tre ralis dans le domaine frquentiel (comme
indiqu dans la gure 9.10), soit directement dans le domaine des LRV par
lintermdiaire de loprateur dni dans lquation (9.3).
306 Codes et turbocodes

Position du rseau 1 2 3 4
PNV f f f f
PNP Fourier f F
f f f
module Direct
PNP signe Produit des signes

Table 9.2 Valeur de loprateur gnrique associ aux processeurs de variables (PNV)
et de parit (PNP) en fonction de la position du rseau dinterconnexion.

9.2.3 Architecture gnrique de propagation des messages


Prsentation du modle
Les PNP et PNG sont caractriss par leur architecture et leur oprateur
gnrique, dpendant de la position du rseau dinterconnexion. Larchitecture
prsente sur la gure 9.12 permet lchange des messages entre ces diren