Vous êtes sur la page 1sur 151

COURS TI EI2

Theorie de linformation Codage source-canal

ESCPI-CNAM
Version 2.4 31 janvier 2007

Didier Le Ruyet

Introduction
Ce cours est consacr aux bases de communications numriques. Pour les lecteurs qui souhaitent approfondir leurs connaissances, nous recommandons le livre de Proakis [24] qui est le livre de rfrence dans le domaine. Nous ne traiterons que quelques points fondamentaux de la thorie de linformation, du codage de source et du codage de canal. Pour un traitement plus profond du sujet, nous recommandons la lecture des ouvrages de Battail en franais [1], de Gallager [14], MacKay [20] et de Cover et Thomas [8].

ii

INTRODUCTION

Chapitre 1

Introduction
Lobjectif fondamental dun systme de communication est de reproduire en un point de la chane de communication, soit exactement soit approximativement, un message slectionn en un autre point (Claude Shannon 1948) [27]. Le problme qui se pose est que le canal est gnralement bruit : comment obtenir une communication parfaite dans ces conditions ? Dans ce document, nous allons tenter de rpondre cette question. Voici quelques exemples de canaux de transmission : une ligne tlphonique entre deux modems un canal radiomobile entre une station de base et un mobile un disque dur Le dernier exemple montre que le mot point dans la phrase dintroduction peut signier lieu ou temps. La source gnre un message transmettre au destinataire. Celui-ci peut tre analogique (parole, son, image, ...) ou numrique (donnes). Dans un systme de communication numrique, le message analogique devra tre converti en numrique avant traitement. Exemple : le systme de communication trs simple suivant consiste transmettre une image un destinataire travers un canal binaire symtrique. Le canal binaire symtrique est dcrit par le modle de la gure 7.1. Il est dni par sa probabilit de transition p = P (Y = 0|X = 1) = P (Y = 1|X = 0). 0 p X 1 1p Fig. 1.1 Canal binaire symtrique Sur la gure 1.2, nous prsentons un exemple dimage mise puis reue par le destinataire en sortie dun canal binaire symtrique pour p = 0.1. Dans un systme de communication il faut protger les bits dinformation contre les erreurs de transmission tout en limitant le nombre de bits transmis dans le canal de transmission. Sur la gure 1.3, nous prsentons le synoptique dun systme de communication tel quil est dcrit par Shannon. 1 p 1 Y 1p 0

CHAPITRE 1. INTRODUCTION

0 p X 1 p

1-p

0 Y 1

1-p

Fig. 1.2 Image en entre et en sortie du canal binaire symtrique.


CODAGE DE SOURCE CODAGE DE CANAL

SOURCE

MODULATEUR

CANAL DE TRANSMISSION

DESTINATAIRE

DECODAGE DE SOURCE

DECODAGE DE CANAL

DETECTEUR

DEMODULATEUR

Fig. 1.3 Synoptique dune chane de communication. Lobjectif du codeur de source est de reprsenter le message avec le moins de bits possibles. Pour ce faire, il cherche liminer toute la redondance contenue dans le message de la source. Le rle du codage de canal est de protger le message des perturbations du canal de transmission en ajoutant de la redondance au message compress. La modulation consiste eectuer un codage dans lespace euclidien, espace gnralement adapt aux canaux rencontrs en pratique. Pour une modulation M-aire, on associe chaque mot de g bits un signal xi (t), i = 1, . . . , M de dure T choisi parmi les M = 2g signaux. Le rle du dmodulateur est dextraire les chantillons tout en maximisant le rapport signal bruit. Lobjectif du dtecteur est de dcider en faveur des symboles les plus probablement mis. Si le dcodage de canal est entres pondres, il faudra remplacer ce dtecteur par un dtecteur dlivrant des informations pondres (en gnral des logarithmes de rapport de vraisemblance). La qualit dun systme de transmission est value en calculant ou en mesurant la probabilit derreurs par bit dinformation (ou par bloc dinformation). Les deux autres paramtres importants dun systme de communication sont sa complexit et son occupation spectrale.

Chapitre 2

Introduction la thorie de linformation


Where is the life we have lost in living ? Where is the wisdom we have lost in knowledge ? Where is the knowledge we have lost in information ? T.S. Eliot, "The Rock"

2.1

Rappels de probabilits

Soit une variable alatoire X ayant pour espace de ralisations AX = {x1 , x2 , . . . , xn } (on parle aussi dalphabet) avec les probabilits respectives PX = {p1 , p2 , . . . , pn } avec : P (X = xi ) = pi pi 0 et
xi AX

pi = 1

(2.1)

Probabilit conjointe Soit deux variables alatoires X et Y ayant pour espace de ralisations respectif AX = {x1 , x2 , . . . , xn } et AY = {y1 , y2 , . . . , ym } On appelle P (X = xi , Y = yj ) la probabilit conjointe des vnements X = xi et Y = yj . On a bien entendu : P (X = xi , Y = yj ) = 1 (2.2)
xi Ax yj Ay

Probabilit marginale Il est possible dobtenir la probabilit P (X = xi ) partir de la probabilit conjointe P (X = xi , Y = yj ) : P (X = xi ) = P (X = xi , Y = yj ) (2.3)
yj Ay

Probabilit conditionnelle P (X = xi , Y = yj ) P (Y = yj )

P (X = xi |Y = yj ) = De la mme manire on a : 3

(2.4)

CHAPITRE 2. INTRODUCTION LA THORIE DE LINFORMATION

P (Y = yj |X = xi ) = Ainsi on a la relation

P (X = xi , Y = yj ) P (X = xi )

(2.5)

P (Y = yj , X = xi ) = P (X = xi |Y = yj )P (Y = yj ) = P (Y = yj |X = xi )P (X = xi ) Loi de Bayes

(2.6)

P (X = xi |Y = yj ) =

P (Y = yj |X = xi )P (X = xi ) P (Y = yj ) P (Y = yj |X = xi )P (X = xi ) = xk Ax P (X = xk , Y = yj ) =

P (Y = yj |X = xi )P (X = xi ) xk Ax P (Y = yj |X = xk )P (X = xk )

P (X = xi |Y = yj ) est appele la probabilit a posteriori sur la ralisation de lvnement X = xi sachant la ralisation de lvnement Y = yj . P (Y = yi ) est appele la probabilit a priori. Indpendance Lindpendance de deux variables alatoires X et Y implique P (X, Y ) = P (X)P (Y ) et P (X|Y ) = P (X) (2.8) (2.7)

2.2

Remarques sur la notion dinformation

La notion quantitative dinformation associe un message chang entre un metteur et un destinataire dans le language usuel est lie : la vracit du message la connaissance a priori du message par le destinataire la comprhension du destinataire (problme de langue, ...) lintrt quy apporte le destinataire ... Toutes ces considrations relvent de la smantique. Dans la thorie de linformation, nous ne retiendrons quun aspect partiel du concept gnral dinformation : la mesure quantitative dinformation est une mesure de lincertitude associe un vnement. Cette notion dinformation est fondamentale dans ltude des systmes de communication.

2.3

Une mesure logarithmique de linformation

Une mesure de linformation associe lvnement X = xi note h(xi ) doit satisfaire les proprits suivantes [27] : h(xi ) doit tre continue pour p(X = xi ) compris entre 0 et 1 h(xi ) = si P (X = xi ) = 0 h(xi ) = 0 si P (X = xi ) = 1 : un vnement certain napporte pas dinformation

2.3. UNE MESURE LOGARITHMIQUE DE LINFORMATION

h(xi ) > h(yj ) si P (Y = yj ) > P (X = xi ) h(xi ) + h(yj ) = h(xi , yj ). La ralisation de 2 vnements indpendants Y = yj et X = xi apporte une quantit dinformation gale la somme des informations de ces 2 vnements h(xi ) et h(yj ). La seule expression de la quantit dinformation h(xi ) associe la ralisation de lvnement X = xi satisfaisant les proprits numres ci-dessus est la suivante : 1 h(xi ) = log2 = log2 P (X = xi ) = log2 pi (2.9) P (X = xi ) On peut noter quavec cette dnition, un vnement trs probable transportera moins dinformation quun vnement peu probable. Lorsque la base 2 est utilise 1 , lunit de h(xi ) est le Shannon (Sh). Lorsque le logarithme nprien est utilis, lunit est le Nat (natural unit en anglais). Exemple 1 : soit une source discrte produisant des bits (0 ou 1) avec la probabilit 1 . La 2 quantit dinformation associe la ralisation de lvnement X = 0 ou X = 1 est gale : 1 (2.10) h(0) = h(1) = log2 = 1 Sh 2 Si cette source gnre une squence de n bits indpendants, il y a 2n squences direntes. Chacune de ces squences se produit avec la probabilit 21 . Linformation apporte par la ralisation n dune squence particulire est gale : 1 h(squence de n bits) = log2 n = n Sh (2.11) 2 Considrons maintenant la ralisation de 2 vnements X = xi et Y = xj . La quantit dinformation associe est : 1 h(xi , yj ) = log2 = log2 P (X = xi , Y = yj ) (2.12) P (X = xi , Y = yj ) o P (X = xi , Y = yj ) est la probabilit conjointe des deux vnements. La quantit dinformation associe la ralisation de lvnment X = xi conditionnellement lvnement Y = yj est la suivante : h(xi |yj ) = log2 1 = log2 P (X = xi |Y = yj ) P (X = xi |Y = yj ) (2.13)

A partir de la relation (2.6), on en dduit :

h(xi , yj ) = h(xi |yj ) + h(yj ) = h(yj |xi ) + h(xi ) Exemple 2 : on tire une carte au hasard dans un jeu de 32 cartes ( 4 couleurs : cur, carreau et tre - 8 valeurs : 7,8, 9, 10 valet dame roi as). Soit x lvnement "la carte tire as de tre" et y lvnement "la carte tire est un tre". Calculons h(x), h(y) et h(x|y). Comme 1 1 P (X = x) = et P (Y = y) = 32 4 Nous obtenons : 1 1 h(x) = log2 = 5 Sh et h(y) = log2 = 2 Sh 32 4 P (X = x|Y = y) = P (X = x, Y = y) 1/32 1 = = P (Y = y) 1/4 8 1 = 3 Sh 8

(2.14) pique, est un

(2.15)

(2.16) (2.17) (2.18)

h(x|y) = log2 P (X = x|Y = y) = log2


1 log 2

x = lnx ln2

CHAPITRE 2. INTRODUCTION LA THORIE DE LINFORMATION

2.3.1

Information mutuelle

On dnit linformation mutuelle comme la quantit dinformation que la ralisation de lvnement Y = yj apporte sur lvnement X = xi . Plus exactement, cest la dirence entre la quantit dinformation associ la ralisation de lvnement X = xi et la quantit dinformation associ la ralisation de lvnement X = xi conditionnellement lvnement Y = yj . Cette quantit dinformation sobtient comme suit : i(xi , yj ) = h(xi ) h(xi |yj ) = log2

P (X = xi |Y = yj ) P (X = xi )

(2.19)

Si les deux vnements sont indpendants, alors P (X = xi |Y = yj ) = P (X = xi ) et donc i(xi , yj ) = 0. A loppos, si lvnement X = xi est quivalent lvnement Y = yj , alors P (X = xi |Y = yj ) = 1 et i(xi , yj ) = h(xi ). Comme on a la relation P (X = xi |Y = yj ) P (X = xi , Y = yj ) P (Y = yj |X = xi ) = = P (X = xi ) P (X = xi )P (Y = yj ) P (Y = yj ) Linformation que la ralisation de lvnement Y = yj apporte sur lvnement X = xi est identique linformation que la ralisation de lvnement X = xi apporte sur lvnement Y = yj . i(xi , yj ) = i(yj , xi ) On a galement les relations suivantes : i(xi , yj ) = h(xi ) h(xi |yj ) = h(xi ) + h(yj ) h(xi , yj ) = h(yj ) h(yj |xi ) Contrairement h(xi ), linformation mutuelle i(xi , yj ) peut tre ngative. Suite de lExemple 2 : Calculons i(x, y) i(x, y) = h(x) h(x|y) (2.20)

= 5 Sh 3 Sh = 2 Sh

(2.21)

La quantit dinformation que la ralisation de lvnement "la carte tire est un tre" apporte sur lvnement "la carte tire est un as de tre" est gale 2 Sh. Linformation mutuelle est importante pour les communications en particulier lorsque lon identie X lentre dun canal de transmission et Y au signal correspondant la sortie du canal de transmission.

2.4

Entropie et information mutuelle moyenne

Aprs stre intress aux vnements individuels, nous allons maintenant dterminer lentropie dune source dcrite par la variable alatoire X ayant pour espace de ralisation AX = {x1 , x2 , . . . , xn } avec les probabilits respectives PX = {p1 , p2 , . . . , pn }. n est la taille de lalphabet. La quantit dinformation moyenne ou entropie de la source est la moyenne des informations relatives chaque ralisation de lvnement X = xi :

2.4. ENTROPIE ET INFORMATION MUTUELLE MOYENNE

H(X) =
i=1 n

pi h(xi ) pi log2
i=1 n

= =

1 pi en Sh/symbole (2.22)

pi log2 pi
i=1

H(X) mesure lincertitude sur X. Proprits : H(X) 0 avec galit si pi = 1 pour une valeur de i (2.23)

H(X) log2 n 1 n

(2.24)

H(X) = HMAX (X) = log2 n

si pi =

(2.25)

Lentropie est donc maximale lorsque toutes les probabilits pi sont gales. Exemple : soit une source 2 tats x0 et x1 avec p0 = p et p1 = 1 p Lentropie de cette source est la suivante : H(X) H(p, 1 p) = p log2 p (1 p) log2 (1 p) (2.26)

1 0.9 0.8 0.7 0.6 H(X) 0.5 0.4 0.3 0.2 0.1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

probabilit p

Fig. 2.1 Entropie dune source binaire Ainsi, lentropie de la source binaire est maximale (1 Sh/bit) lorsque p = 0.5 Considrons deux variables alatoires X et Y ayant respectivement pour espace de ralisations AX = {x1 , x2 , . . . , xn } et AY = {y1 , y2 , . . . , ym }. Lentropie conjointe H(X, Y ) est dnie comme

8 suit :

CHAPITRE 2. INTRODUCTION LA THORIE DE LINFORMATION

H(X, Y ) = =

P (X = xi , Y = yj )h(xi , yj )
i=1 j=1 n m

P (X = xi , Y = yj ) log2 P (X = xi , Y = yj )
i=1 j=1

(2.27)

Si les variables alatoires X et Y sont indpendantes, lentropie conjointe est gale la somme des entropies H(X) et H(Y ). On peut aussi dterminer lentropie conditionnelle H(X/Y ) qui dtermine linformation sur X sachant lobservation Y partir de h(xi |yj ) :
n m

H(X|Y ) = =

i=1 j=1 n m

P (X = xi , Y = yj )h(xi |yj ) P (X = xi , Y = yj ) log2 P (X = xi |Y = yj ) (2.28)

i=1 j=1

Les relations (2.6) ou (2.14) permettent dexprimer lentropie conjointe en fonction de lentropie et lentropie conditionnelle : H(X, Y ) = H(X) + H(Y |X) = H(Y ) + H(X|Y ) (2.29)

Lincertitude sur X et Y est gale lincertitude sur X plus lincertitude sur Y sachant X. Linformation mutuelle associe la ralisation dun vnement peut galement tre tendue aux variables alatoires X et Y .
n m

I(X, Y ) =
i=1 j=1 n m

P (X = xi , Y = yj )i(xi , yj ) P (X = xi , Y = yj ) log2
i=1 j=1 n m

= =
i=1 j=1

P (X = xi |Y = yj ) P (X = xi ) P (X = xi , Y = yj ) P (X = xi )P (Y = yj ) (2.30)

P (X = xi , Y = yj ) log2

Ainsi, on a les relations suivantes : I(X, Y ) = H(X) + H(Y ) H(X, Y ) = H(X) H(X|Y ) = H(Y ) H(Y |X) (2.31)

Linformation mutuelle I(X, Y ) mesure la quantit moyenne dinformation sur X ( ou rduction dincertitude moyenne ) qui rsulte de la connaissance de Y . La gure 2.2 montre graphiquement les relations entre les direntes entropies et linformation mutuelle. Alors que i(xi , yj ) peut tre ngatif, on a I(X, Y ) 0.

2.4. ENTROPIE ET INFORMATION MUTUELLE MOYENNE

H(X, Y )

H(X) H(Y )

H(X|Y )

I(X, Y )

H(Y |X)

Fig. 2.2 Relations entre entropie et information mutuelle.

Chapitre 3

Codage de source
3.1 Entropie et Redondance dune source

Dans le paragraphe prcdent, nous avons introduit H(X), la quantit dinformation moyenne ou entropie associe la variable alatoire discrte X. Soit une source discrte et stationnaire dont les symboles de sortie sont des symboles Q-aire (la taille de lalphabet est gale Q). La sortie de cette source est dcrite par la variable alatoire X. Ainsi lentropie H(X) est la quantit dinformation par symbole moyenne sortant de cette source. Une source discrte est dite source sans mmoire si les symboles en sortie de cette source sont dcorrls. Dans le cas contraire, on dira que cette source est avec mmoire. Si la source est sans mmoire, H(X) sobtient comme nous lavons dj vu par :
Q

H(X) =

pi log2 pi
i=1

en Sh/symbole

(3.1)

Lentropie H(X) est maximale si les symboles sont quiprobables. Pour des symboles Q-aire, lentropie maximale est gale HMAX = log2 Q Si la source est mmoire, alors son entropie par symbole H(X) sobtient comme suit : H(X) = lim
J

1 HJ (X) J

(3.2)

o HJ (X) est lentropie par groupe de J symboles. La redondance dune source caractrise la dirence quil existe entre la quantit dinformation que transporte cette source et la quantit dinformation que cette source transporterait si tous ses symboles taient quiprobables et indpendants. On a : Rred = 1 H(X) HMAX (X) (3.3)

Rred est compris entre 0 (les symboles de la source sont indpendants et quiprobables) et 1 (lentropie de la source est nulle).

3.2

Codage de source

Dun point de vue gnral, lopration de codage de source consiste associer chaque message issu de la source un mot compos dun ou plusieurs symboles q-aire en cherchant rduire au maximum le nombre moyen de ces symboles. Un message signiera selon le contexte, soit un symbole Q-aire issu de la source, soit un ensemble de J symboles Q-aire. 10

3.3. CODAGE PAR MOT DE LONGUEUR VARIABLE


Symboles Q-aire Symboles q-aire

11

SOURCE

CODAGE DE SOURCE

Fig. 3.1 Codage de source. Nous nous restreindrons au cas o les symboles de sortie du codeur de source sont des bits (q = 2). Cependant la gnralisation aux autres alphabets ne prsente pas de dicult. Le codage de source doit satisfaire les deux critres suivants : dcodage unique : chaque message devra tre cod par un mot dirent dchirabilit : chaque mot devra pouvoir tre dissoci sans ambiguit. Ce critre sobtient par : - codage par mot de longueur xe - codage avec un symbole de sparation distinguable (cas du systme morse par exemple) - codage par mot de longueur variable mais en vitant quun mot ne soit le dbut dun autre. Nous nous intresserons uniquement au codage par mot de longueur variable qui est la technique de codage la plus ecace lorsque les dirents symboles de la source nont pas la mme probabilit dapparition. Un code est dit instantan si aucun mot code nest le dbut dun autre.

3.3

Codage par mot de longueur variable

exemple 1 : soit une source discrte dlivrant les 4 messages a1 , a2 , a3 et a4 avec les probabilits respectives P (a1 ) = 1 , P (a2 ) = 1 et P (a3 ) = P (a4 ) = 1 . 2 4 8 Un mot est associ chaque message comme dcrit dans la table 10.1. Tab. 3.1 code longueur variable de lexemple 1 message a1 a2 a3 a4 mot 1 00 01 10

On peut vrier que ce codage de source nest pas dcodable instantanment (le mot associ a1 est le dbut du mot associ a4 ). Par exemple, il nest pas possible de dcoder instantanment le message a1 , a2 , a1 , . . . encod par la suite 1001 ; il nest pas possible de savoir si le message mis tait a1 , a2 , a1 ou a4 , a3 . exemple 2 : Un mot est associ chaque message comme dcrit dans la table 3.2. Ce codage de source est instantan. Sur la gure 3.2, nous prsentons larbre associ ce codage de source.

3.4

Ingalit de Kraft

thorme : un code instantan compos de M mots binaires de longueur respective {n1 , n2 , . . . , nM } avec n1 n2 nM doit satisfaire lingalit suivante :

12

CHAPITRE 3. CODAGE DE SOURCE Tab. 3.2 code longueur variable de lexemple 2 message a1 a2 a3 a4 mot 0 10 110 111

a1 0 1 0 1

a2 0 1

a3

a4

Fig. 3.2 arbre associ au code de lexemple 2

M i=1

2ni 1

(3.4)

dmonstration Un code instantan peut tre reprsent graphiquement par un arbre binaire complet de profondeur nM . Chaque feuille du graphe correspond un des messages de la source. Le mot de code est la squence de labels du chemin allant de la racine la feuille.

0 C1

0 C2

C4

C3 Fig. 3.3 ingalit de Kraft

Choisissons un nud de degr n1 comme premier mot C1 ; ce choix limine 2nM n1 nuds. Parmi les nuds restants, on choisit un nud de degr n2 comme second mot. Ce choix limine 2nM n2 nuds. On continue cette procdure jusquau dernier mot. La condition pour obtenir un codage instantan devient donc :
M i=1

2nM ni 2nM

en divisant les deux termes par 2

nM

, on obtient bien lingalit de Kraft.

3.5. THORME FONDAMENTAL DU CODAGE DE SOURCE

13

3.5

Thorme fondamental du codage de source

Considrons tout dabord une source sans mmoire dentropie par symbole H(X). Nous allons dmontrer que pour cette source il est possible de construire un code instantan dont la longueur moyenne des mots Rmoy satisfait lingalit suivante : H(X) Rmoy < H(X) + 1 dmonstration On choisit ni longueur du mot associ au i-ime message comme suit ; ni = log2 pi x signie entier suprieur ou gal x. Vrions quun tel code est instantan cest--dire quil satisfait lingalit de Kraft :
M M M M

(3.5)

(3.6)

2ni =
i=1 i=1

2 log2 pi

2log2 pi =
i=1 i=1

pi = 1

(3.7)

Ainsi on a donc :
M M M

Rmoy =
i=1

pi ni =
i=1

pi log2 pi

pi ( log2 pi + 1) = H(X) + 1
i=1

(3.8)

Le thorme fondamental du codage de source sexprime ainsi : Thorme : pour toute source stationnaire dentropie par symbole H(X), il existe un procd de codage de source binaire dont la longueur moyenne Rmoy des mots est aussi voisine que lon veut de H(X). H(X) Rmoy < H(X) + (3.9)

Considrons une source sans mmoire dentropie par symbole H(X). En groupant les symboles de cette source par paquet de J symboles, on obtient une nouvelle source. Il est encore possible dencoder cette source avec un code instantan. La longueur moyenne des mots de ce code RJmoy satisfait lingalit suivante : JH(X) RJmoy < JH(X) + 1 En divisant les dirents termes par J on obtient : H(X) Rmoy < H(X) + 1 J (3.11)
RJmoy J

(3.10)

avec Rmoy nombre de bits moyens relatifs un symbole de la source Rmoy = augmentant J, Rmoy peut sapprocher asymptotiquement de H(X) : H(X) Rmoy < H(X) + Ce rsultat se gnralise immdiatement au cas des sources avec mmoire.

En

(3.12)

14

CHAPITRE 3. CODAGE DE SOURCE

3.6

Dbit dentropie

Soit une source discrte et stationnaire X dentropie H(X) Sh/symbole dlivrant DS symboles par seconde. On dnit le dbit dentropie ou dbit informationnel moyen DI comme suit : DI = H(X)DS en Shannon/seconde (3.13)

Le dbit binaire en sortie du codeur DB est le produit du dbit symbole DS par le nombre de bits moyens par symbole Rmoy : DB = DS .Rmoy

en bit/seconde

(3.14)

En sortie du codeur de source binaire, on dnit H (X) lentropie par bit avec H (X) = H(X) Rmoy en Shannon/bit (3.15)

Le dbit dentropie DI en sortie du codeur sobtient alors comme prcdemment : DI = H (X).DB = DI

en Shannon/seconde

(3.16)

Comme nous pouvions nous y attendre, le dbit dentropie nest pas modi par lopration de codage de source. Daprs le thorme du codage de source, on a : Rmoy H(X) En multipliant les 2 termes par DS , on obtient :
DB DS .H(X) = DI

(3.17)

(3.18)

Ainsi, DI le dbit dentropie de la source est la limite infrieure du dbit binaire obtenu aprs codage de source. En cas dgalit, on retrouve bien quun lment binaire est porteur dune quantit dinformation gale 1 Shannon. Si la redondance de la squence en sortie du codeur de source nest pas nulle, alors un lment binaire sera porteur dune quantit dinformation infrieure 1 Shannon.

SOURCE
 

CODAGE DE SOURCE

Fig. 3.4 Dbit dentropie.

3.7

Algorithme dHuman

Human en 1952 [16] a propos un algorithme de codage longueur variable dune source L messages. Cet algorithme permet dobtenir le nombre moyen de bits par mot minimum tout en garantissant un code uniquement dcodable et instantan. On commence par classer la liste des messages de haut en bas par ordre de probabilit dcroissante (chaque message correspond un nud).

7 98

DE

( @ EB A FC @ G

D@ E

D = H ( X ).D
6

sh/s

"! 0

'& )

 "!

1 32 $ 4  1 32 4 '& )#  ( % $

 

  0

   1 32 4

3.7. ALGORITHME DHUFFMAN

15

1. Choix des deux messages de probabilits moindres. 2. Ces deux probabilits sont relies avec la branche suprieure labelise 0 et la branche infrieure labelise 1. 3. La somme de ces deux probabilits est alors associe au nouveau nud. 4. Suppression des deux messages prcdemment choisis puis retour la phase 1. On rpte cette procdure jusqu ce quil ne reste plus aucun message. Larbre ainsi obtenu dcrit graphiquement lensemble du code. Les mots sont lus en parcourant chaque chemin de la droite vers la gauche. exemple 3 : soit une source discrte 8 messages a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 avec les probabilits dapparition respectives {0.16; 0.15; 0.01; 0.05; 0.26; 0.11; 0.14; 0.12} dentropie H(X)=2.7358. Le codage de Human de cette source est donn sur la gure 3.5.

0.26 0.16 0.15 0.14 0.12 0.11 0.05 0.01 0 0.06 1 1 0 0.17 1 0 0.26 0 0.43 0 0.31

0 0.57 0

1 1

Fig. 3.5 exemple de codage de Human La table de codage est prsente dans la table 3.3. Le nombre de bit moyen par mot est gal 2.8.

Tab. 3.3 table de codage message a5 a1 a2 a7 a8 a6 a4 a3 mot 00 010 011 100 101 110 1110 1111 ni 2 3 3 3 3 3 4 4

Pour les sources sans mmoire lalgorithme de Human fournit un codage de source optimal. Cependant, lorsque les symboles successifs sont corrls, la complexit du codage de source utilisant lalgorithme de Human devient trs grande (le nombre de code est gal QJ si les messages sont composs de J symboles Q-aire).

16

CHAPITRE 3. CODAGE DE SOURCE

3.8

Etude de lentropie dun texte crit

Dans cette tude, nous rduirons la taille de lalphabet aux 26 lettres de lalphabet plus la virgule, le point, le guillemet et espace soit une taille de lalphabet gale 30. Les probabilits dapparition des caractres dans un texte littraire franais sont donns dans la table 3.4. Tab. 3.4 probabilit dapparition des caractres ai a b c d e f g h i j k l m n o pi 0.0734 0.0094 0.0248 0.0325 0.1263 0.0097 0.0091 0.0080 0.0617 0.0035 0.0005 0.0513 0.0205 0.0504 0.0387 ai p q r s t x v w x y z , . pi 0.0171 0.0059 0.0510 0.0703 0.0533 0.0043 0.0120 0 0.0043 0.0018 0.0005 0.1717 0.0096 0.0180 0.0086

Si la probabilit dapparition de chacun des caractres tait gale, lentropie par caractre serait gale log2 30 = 4, 9 Shannon/caractre. Lapplication de (3.1) donne une entropie gale 4.09 Shannon/caractre. Ce calcul ne tient pas compte de la corrlation entre les caractres successifs. Pour montrer un aperu de la dpendance entre les caractres successifs, sur un texte littraire en langue franaise, nous avons group les caractres par doublet et reprsent sur la gure 3.8 la probabilit dapparition de chacun de ces doublets. Les caractres associs aux colonnes et aux lignes correspondent respectivement au premier et au dernier caractre des doublets. Par exemple, on peut voir que le doublet {qu} a une forte probabilit dapparition alors que tous les autres doublets commenant par la lettre q ont une probabilit dapparition nulle. En groupant les caractres 2 par 2, on obtient une entropie par caractre de 3,6 Shannon/caractre soit sensiblement infrieure lentropie par caractre prcdente. Direntes tudes on montr que pour un texte littraire, lentropie est encore bien plus faible : de lordre de 1 Shannon/caractre. Pour mettre encore en vidence la redondance de la langue franaise prenons lexemple suivant [20] [8] : lobjectif est pour le candidat de dterminer lettre aprs lettre une phrase quil ignore. Aprs avoir dtermin correctement une lettre, on note le nombre de tentatives qui ont t ncessaire pour dterminer celle-ci. Le candidat passe ensuite la lettre suivante. Voici deux rsultats obtenus avec la phrase suivante : LES VACANCES SONT TERMINEES candidat 1 : 1 1 2 1 18 2 1 2 1 1 1 1 1 2 1 1 1 1 3 1 1 1 1 1 1 1 1 candidat 2 : 1 1 1 1 13 4 4 5 1 1 1 1 1 4 1 1 1 1 9 1 1 1 1 1 1 1 1 Il est noter que dans beaucoup de cas, les candidats dterminent la lettre suivante ds la premire tentative. Except au dbut des mots et des syllabes, les autres lettres sont dtermines trs aisment. On peut imaginer un codage de source trs ecace utilisant ces proprits : si au

3.9. ALGORITHME DE LEMPEL-ZIV


a b c d e f g h i j k l m n o p q r s t u v w x y z a b c d e f g h i j k l m n o p q r s t u v w x y z , . , .

17

Fig. 3.6 probabilit dapparition des caractres lieu de coder successivement les symboles, on code le nombre de tentatives, on voit bien quil sera possible de rduire fortement le nombre de bits ncessaire pour transmettre cette phrase. Ceci implique quau dcodage nous eectuerons la procdure inverse en utilisant des tables de dcodage trs complexes. Ce systme bien que peu raliste, nous permet dillustrer les principes utiliss par le codage arithmtique (codage non trait dans ce document bien que trs performant [20] [8] [1] [26]) et par lalgorithme de Lempel-Ziv [32]. Cest ce dernier que nous allons maintenant prsenter.

3.9

Algorithme de Lempel-Ziv

Cet algorithme, propos en 1978 est indpendant des proprits statistiques de la source. Lalgorithme de Lempel-Ziv utilise pour coder une liste de suites stockes dans un dictionnaire. Le principe de lalgorithme de Lempel-Ziv consiste dcouper la squence de sortie de la source en petites suites de longueurs variables. Les suites qui sont stockes dans un dictionnaire initialement vide sont appeles les suites prototypes. Une suite nouvelle est ajoute dans le dictionnaire chaque fois quelle est dirente des suites prototypes dj stockes. De plus, cette suite laquelle on ajoute un bit 0 ou 1 ne doit pas tre dj prsente dans le dictionnaire. exemple : considrons le dbut de squence binaire issue dune source : 00100000110001001000001011000100000100001100010101000010000011000001 01100000011 Cette squence est dcompose en suite comme suit : 0, 01, 00, 000, 1, 10, 001, 0010, 0000, 101, 100, 010, 00001, 000011, 0001, 0101, 000010, 0000110, 0000101, 1000, 00011 Les suites prototypes en gras correspondent aux 16 suites prototypes stockes dans le dictionnaire (la suite 00001 nest pas stocke dans le dictionnaire car les suites 000010 et 000011 sont dj prsentes dans ce dictionnaire). La table 3.5 donne la liste des 16 suites prototypes dans cet exemple. Chaque suite prototype est ici code avec un mot de 4 bits. Larbre des suites prototypes stockes est prsent sur la gure 3.7. Finalement, la squence binaire issue dune source est dcompose en utilisant les suites prototypes stockes dans le dictionnaire :

18

CHAPITRE 3. CODAGE DE SOURCE Tab. 3.5 liste des suites prototypes position 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 suite prototype 1 01 001 010 100 101 0000 0001 0010 0101 1000 00011 000010 000011 0000101 0000110 mot de code 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0010, 0000110, 0010, 010, 0000101, 1000, 1000, 0010, 00011, 0001, 0101, 000010, 0000110, 0000101, 1000, 00011 La sortie du codeur de source est la suivante : 1000 1111 1000 0011 1110 1010 1010 1000 1011 0111 1001 1101 1111 1110 1010 1011 Le dcodeur de source utilisant le mme algorithme pourra reconstruire le dictionnaire utilis au codage et donc reconstituer instantanment la squence mise par la source. Il est noter que le codage Lempel-Ziv encode les 79 bits de la squence de la source en 16 mots de 4 bits soit 64 bits au total. Malgr la courte longueur de la squence, lalgorithme apporte dj une sensible rduction du nombre de bits. En pratique, le contenu du dictionnaire est adapt dynamiquement en fonction de lvolution des caractristiques de la source. Lalgorithme Lempel-Ziv et ses variantes sont utiliss pour la compression des chiers informatiques.

3.9. ALGORITHME DE LEMPEL-ZIV

19

0 0 1

0 1

1 0

1 1 0 0

1 0 0

0 0 1 0 1

Fig. 3.7 arbre reprsentant les suites prototypes

Chapitre 4

Codage pour les sources analogiques


4.1
4.1.1

chantillonnage et Quantication
Rappel sur le thorme de lchantillonnage

Soit le signal x(t) bande limite B issu dune source analogique. En utilisant le thorme de lchantillonnage, on montre que ce signal peut tre reprsent comme suit :
+

x(t) =
k=

x(kT )sinc

(t kT ) T

(4.1)

avec sinc(x) = sin(x) . x k La suite x(kT ) reprsente les chantillons du signal x(t) aux instants kT = 2B . Cette suite est donc obtenue par chantillonnage de x(t) la frquence de 2B chantillons par seconde. Ainsi, la sortie de la source analogique peut tre convertie en un signal temps discret quivalent sans perte dinformation. Pour vraiment disposer dun signal numrique, il reste quantier lamplitude des chantillons sur un nombre de niveaux nis.

4.1.2

Quantication

La quantication consiste quantier lamplitude possible des chantillons sur L valeurs. Lorsque les L valeurs sont rgulirement espaces, on dit que la quantication est uniforme. La valeur x choisie est la plus proche au sens de la distance euclidienne de lamplitude x de lchantillon. Si L est une puissance de 2, (L = 2R ) alors chaque chantillon quanti x pourra tre reprsent par un mot binaire de R bits (opration de codage). R = log2 L bits/chantillon (4.2)

dnition : soit un ensemble dintervalles ou cellules S = [s1 , s2 , . . . , sL ] et un ensemble de valeurs ou points Y = [y1 , y2 , . . . , yL ]. Lopration de quantication est dnie mathmatiquement par la relation suivante : x = yi pour x Si (4.3)

Chaque intervalle ou cellule Si est borne par deux seuils nots ai1 et ai . Ainsi, la largeur de Si est gale ai ai1 La quantication est dite uniforme si tous les intervalles ont la mme largeur note . Un exemple de quantication uniforme est donn sur la gure 4.1 pour L = 8. La relation entre lamplitude de lchantillon x et lamplitude de lchantillon aprs quantication uniforme x est prsente sur la gure 4.2 pour L = 8. 20

4.1. CHANTILLONNAGE ET QUANTIFICATION

21

y1 a1

y2

a2

y3

a3

y4

a4

y5

a5

y6

a6

y7

a7

y8

Fig. 4.1 Quantication uniforme L = 8


~ x 7 = y8 2 5 = y7 2 3 y = 6 2

y = 5 2
3 = a1 2 = a2 = a3

= a5

= y4 2
3 = y3 2

2 = a6

3 = a7

5 y = 2 2 7 = y1 2

Fig. 4.2 Quantication uniforme L = 8 Un convertisseur analogique numrique (CAN) classique ralise la fois lopration de quantication uniforme et de codage binaire. Pour un CAN R = 8 bits/chantillon, on a L = 256. Un exemple de quantication non uniforme est donn sur la gure 4.3 pour L = 8.

y1

y2 a1 a2

y3

y4 a3 a4

y5 a5

y6 a6

y7 a7

y8

Fig. 4.3 Quantication non uniforme L = 8 La quantication uniforme comme la quantication non uniforme sont des quantications scalaires : on associe chaque chantillon un mot binaire. Il est possible de grouper plusieurs chantillons ensemble avant de raliser lopration de quantication de ce groupe dchantillons : on parle alors de quantication vectorielle. La qualit dun quanticateur peut tre mesure par la dirence entre le signal quanti et le signal dorigine.

22

CHAPITRE 4. CODAGE POUR LES SOURCES ANALOGIQUES La mesure la plus utilise est lerreur quadratique : e(x, x) = (x x)2 dnition : partir de lerreur quadratique, on peut dnir la distorsion moyenne D (4.4)

D = E(e(x, x))
+

e(x, x)f (x)dx e(x, yi )f (x)dx


i Si

(4.5)

o f (x) est la densit de probabilit de x. Ainsi, lorsque la densit de probabilit f (x) est connue, lobjectif de la quantication est de coder les chantillons de la source avec le minimum de bits tout en garantissant la plus petite distorsion moyenne D. dnition : on dnit la fonction R(D) (rate distortion function en anglais) comme le nombre de bits minimum permettant de reprsenter une suite dchantillons avec une distorsion moyenne donne D : R(D) = minR en bits (4.6)

On peut montrer que lingalit suivante est toujours vraie : R(D)


2 o x est la variance de la source.

1 2 log2 x 2 D

2 0 D x

(4.7)

En introduisant la fonction D(R) (distortion rate function en anglais), lexpression (4.7) peut aussi scrire :
2 D(R) x 22R

(4.8)

Les deux ingalits ci-dessus se transforment en galits pour une distribution gaussienne. Il faut noter quil sagit dune limite thorique quune simple quantication uniforme ne permet pas datteindre. Sur la gure 4.4, nous prsentons les valeurs optimales yi avec une quantication uniforme (*) et non uniforme (o) pour L = 8 dans le cas dune source gaussienne. Dans ce cas simple ( R = 3 bits/echantillon et x = 1), les distorsions moyennes des quantications uniforme et non uniforme sont respectivement gales -14,27 dB et -14,62 dB. La limite thorique est 10 log10 26 = 18.06 dB . Comme les probabilits de chaque intervalle ne sont pas identiques, on peut appliquer un codage de Human aprs lopration de quantication pour rduire encore le dbit binaire. Ce codage entropique permet de gagner ici environ 2 dB. Pour atteindre la limite thorique, il faudra utiliser une quantication vectorielle bien plus dicile mettre en oeuvre quune simple quantication scalaire ! Lopration de quantication introduit une erreur entre lamplitude et lamplitude quantie. On a la relation suivante : x=x+q (4.9)

Pour la quantication uniforme, lerreur de quantication q est comprise entre et + . 2 2

4.1. CHANTILLONNAGE ET QUANTIFICATION


0.8

23

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0 3

Fig. 4.4 Quantication uniforme et non uniforme L = 8 pour une source gaussienne de variance x = 1 En considrant que lamplitude du signal est susamment grande devant , la densit de probabilit de q est bien approximativement uniforme. Calculons lerreur quadratique moyenne E(q 2 ) ( qui est gale ici la distorsion moyenne D du quanticateur uniforme) : p(q) = 1
+

q 2 2

(4.10)

E(q 2 ) = 1 =

q 2 p(q)dq q 2 dq = 2 12 (4.11)

Si la quantication uniforme est ralise sur L niveaux avec R = log2 L et que la dynamique du signal issu de la source est gal A avec A = L = 2R , alors le rapport signal bruit en dcibel sexprime comme suit : var(x) E(q 2 ) 2 12 A2 + 10 log10 22R 12 A2 ln 2 + 20R 12 ln 10 2 A + 6R 12

SN R = 10 log10

= 10 log10 var(x) 10 log10 = 10 log10 var(x) 10 log10 = 10 log10 var(x) 10 log10 = 10 log10 var(x) 10 log10

(4.12)

On peut noter quun bit supplmentaire amliore le rapport signal bruit de 6 dB.

24

CHAPITRE 4. CODAGE POUR LES SOURCES ANALOGIQUES

Si on suppose que le signal est une sinusoide damplitude crte crte A (soit une amplitude crte de A/2), on a : var(x) = A partir de lexpression (4.12), on obtient : 3 + 6R 2 = 1, 76 + 6R dB A2 8 (4.13)

SN R = 10 log10

(4.14)

4.2

Modulation par impulsion et codage

La modulation PCM ( pulse coded modulation en anglais) aussi note modulation par impulsion et codage (MIC) constitue la plus simple des techniques de codage. Elle comprend deux fonctions distinctes : lopration de quantication et lopration de codage 1 Pour un codeur PCM, aprs chantillonnage, les chantillons sont simplement quantis puis cods. La gure 4.5 prsente le synoptique dun codeur PCM (sans le codeur binaire). Cette technique est bien adapte aux sources sans mmoire.
H I P Q R TS Q

Quantification

Fig. 4.5 Codeur PCM On a la relation suivante entre la sortie du codeur PCM et lentre : xn = xn + qn (4.15)

o qn est lerreur de quantication Dans de nombreuses applications comme le traitement de la parole par exemple, les signaux de petites amplitudes se produisent plus frquemment que ceux de grandes amplitudes. Pour prendre en compte cette distribution non uniforme, la quantication uniforme nest pas la meilleure possible. Plusieurs quantications non uniformes ont t proposes pour amliorer les performances. En pratique, la quantication non uniforme peut tre vue comme la concatnation dune table de correspondance ( look up table en anglais) appele aussi compresseur et dune quancation uniforme. Le compresseur ralise lopration non linaire. Comme lide principale est de diminuer les intervalles pour les petites valeurs de x, les fonctions non linaires choisies sont des logarithmes. Pour le codage de la parole deux lois de compression sont principalement utilises : loi A ( systme europen) y=
1 si |x| A 1+ln(A|x|) (signe de x) 1+ln A Ax 1+ln A

Pour la loi A la fonction inverse scrit :


1 le mot "modulation" utilis ici doit tre pris avec prcaution. En eet historiquement les techniques de codage pour les sources analogiques comprenaient trois lments : la quantication, le codage et la modulation. Cependant aujourdhui seules les deux premires fonctions composent les techniques de codage

A = 87, 6 1 si A |x| 1

(4.16)

4.3. TECHNIQUES DE CODAGE POUR LES SOURCES ANALOGIQUES MMOIRE

25

x = (signe de y)

|y|(1+ln(A)) si A exp(|y|(1+ln(A))1) A

0 |y| si

1 1+ln(A) 1 1+ln(A) |y|

(4.17)

loi (systme amricain et canadien) y = (signe de x) ln(1 + (x)) ln(1 + ) avec = 255 et |x| 1 (4.18)

Pour la loi la fonction inverse scrit : x = (signe de y) 1 (1 + )|y| 1 avec |y| 1 (4.19)

Dans les deux lois, les logarithmes sont npriens. Pour un signal de parole standard, la loi A apporte une rduction de 24 dB du bruit de quantication par rapport une quantication uniforme. Sur la gure 4.6, nous prsentons les caractristiques de transfert relative la loi A et la loi (les courbes sont pratiquement superposes !)
1

0.8

0.6

0.4

0.2

0.2

0.4

0.6

0.8

1 1

0.8

0.6

0.4

0.2

0.2

0.4

0.6

0.8

Fig. 4.6 Caractristiques de transfert dun compresseur bas sur la loi A et la loi En pratique, la compression peut tre ralise partir dune quantication uniforme sur 12 bits. On modlise la loi par 13 segments. La table dencodage est prsente ci-dessous :

4.3
4.3.1

Techniques de codage pour les sources analogiques mmoire


Introduction

Lorsque les chantillons la sortie de la source sont corrls ( source avec mmoire), il existe 3 grandes familles de techniques pour exploiter cette proprit an de rduire le nombre de bits ncessaire pour transmettre ces chantillons : les techniques bases sur une forme donde temporelle comme la modulation Delta, PCM, DPCM, ... souvent utilis pour le codage de la parole. les techniques utilisant une dcomposition spectrale comme le codage par sous-bande et le codage par transforme (cosinus discret ou ondelettes). les techniques bases sur des modles de source comme le codage linaire prdictif (LPC) utiliss pour le codage de la parole trs bas dbit.

26 segment 13 12 11 10 9 8 7 7 7 7 6 5 4 3 2 1

CHAPITRE 4. CODAGE POUR LES SOURCES ANALOGIQUES mot dentre 12b 0 1 X1 X2 X3 X4 N N N N N N 0 0 1 X1 X2 X3 X4 N N N N N 0 0 0 1 X1 X2 X3 X4 N N N N 0 0 0 0 1 X1 X2 X3 X4 N N N 0 0 0 0 0 1 X1 X2 X3 X4 N N 0 0 0 0 0 0 1 X1 X2 X3 X4 N 0 0 0 0 0 0 0 1 X1 X2 X3 X4 0 0 0 0 0 0 0 0 X1 X2 X3 X4 1 0 0 0 0 0 0 0 X1 X2 X3 X4 1 0 0 0 0 0 0 1 X1 X2 X3 X4 1 0 0 0 0 0 1 X1 X2 X3 X4 N 1 0 0 0 0 1 X1 X2 X3 X4 N N 1 0 0 0 1 X1 X2 X3 X4 N N N 1 0 0 1 X1 X2 X3 X4 N N N N 1 0 1 X1 X2 X3 X4 N N N N N 1 1 X1 X2 X3 X4 N N N N N N mot de sortie 8b 0 1 1 1 X1 0 1 1 0 X1 0 1 0 1 X1 0 1 0 0 X1 0 0 1 1 X1 0 0 1 0 X1 0 0 0 1 X1 0 0 0 0 X1 1 0 0 0 X1 1 0 0 1 X1 1 0 1 0 X1 1 0 1 1 X1 1 1 0 0 X1 1 1 0 1 X1 1 1 1 0 X1 1 1 1 1 X1

X2 X2 X2 X2 X2 X2 X2 X2 X2 X2 X2 X2 X2 X2 X2 X2

X3 X3 X3 X3 X3 X3 X3 X3 X3 X3 X3 X3 X3 X3 X3 X3

X4 X4 X4 X4 X4 X4 X4 X4 X4 X4 X4 X4 X4 X4 X4 X4

4.3.2

Modulation Delta

Nous savons que les sources analogiques (son et image) possde une forte redondance quune simple modulation PCM ne peut exploiter. Cette redondance est directement lie la corrlation entre chantillons : on parle aussi de source mmoire. Lorsque la source est mmoire, la variation de lamplitude entre les chantillons successifs est relativement faible. Ainsi en quantiant les dirences entre les amplitudes des chantillons successifs, il est possible de rduire le dbit en sortie du codeur. Le principe de base de la modulation Delta consiste quantier la dirence damplitude en entre lchantillon courant xn et lchantillon quanti xn . en = xn xn (4.20)

La quantication est uniquement ralise sur deux niveaux ( en = ). La gure 4.7 prsente le synoptique dun modulateur Delta.
U U V W

Fig. 4.7 Modulateur Delta Laccumulateur ralise lopration suivante : xn = xn1 + en1 (4.21)

Si linstant n, on a xn > xn , alors en = + et la sortie de laccumulateur linstant n + 1 est incrmente de : xn+1 = xn +

U W X

x(t )

Quantification 1 bit

~ = e

Acc

4.3. TECHNIQUES DE CODAGE POUR LES SOURCES ANALOGIQUES MMOIRE

27

Si linstant n, on a xn xn , alors en = et la sortie de laccumulateur linstant n + 1 est dcrmente de : xn+1 = xn Le synoptique de laccumulateur est prsent sur la gure 4.8.

xn

Acc

~ en

~ en
xn

Z-1

xn+1

Fig. 4.8 synoptique de laccumulateur

Le synoptique du dmodulateur Delta est prsent sur la gure 4.9.


` a Y b c

Acc

Fig. 4.9 Dmodulateur Delta Lerreur de quantication qn apporte par lopration de quantication est donne par : qn = en en (4.22)

Il est alors possible dexprimer lchantillon estim xn partir de xn1 et de lerreur de quan tication :

xn = xn1 + en1 = (xn1 qn1 en1 ) + en1 = xn1 qn1 (4.23)

Ainsi lchantillon estim xn est gal lchantillon prcdent xn1 entach de lerreur de quantication qn1 Un exemple de fonctionnement est donn sur la gure 4.10. On peut observer deux types derreurs : lerreur de poursuite est lie la pente de xn limite /Tech . Pour diminuer lerreur de poursuite, la frquence dchantillonnage doit tre gale 4 5 fois la frquence minimum dchantillonnage. Lautre solution consiste augmenter la valeur de . Le second type derreur appel aussi bruit granulaire se produit mme si le signal x(t) est constant. En eet, les chantillons estims xn oscillent alors entre deux pas (bruit crte crte de . Une solution consiste alors diminuer . Le choix de est un compromis entre les deux types derreurs. Une autre solution ecace consiste adapter le pas en fonction des variations du signal. Cest le principe utilis dans la modulation Delta pente continuellement variable CVSD ( continuously variable slope delta modulation en anglais).

28

CHAPITRE 4. CODAGE POUR LES SOURCES ANALOGIQUES


x(t)

x(t)

Fig. 4.10 Exemple dvolution de xn dans un modulateur Delta

4.3.3

Modulation par impulsion et codage direntiel

Le principe de base de la modulation DPCM ( dierential pulse coded modulation en anglais) aussi note modulation par impulsion et codage direntiel (MICD) consiste quantier la dirence damplitude en entre lchantillon courant xn et lchantillon prdit xn . en est aussi appele lerreur de prdiction. en = xn xn xn est obtenu en utilisant un prdicteur dordre P :
P

xn =
i=1

ai xni

Le synoptique du prdicteur dordre P est prsent sur la gure 4.11.

a1

a2

x Z-1 Z-1 Z-1

~ xn 1

~ xn 2

Fig. 4.11 synoptique du prdicteur dordre P On dterminera les P coecients de prdiction ai qui minimisent lerreur quadratique moyenne E(e2 ) = E[(xn xn )2 ]. Ces coecients sont les solutions du systme linaire suivant : n
P i=1

ai (i j) = (j)

pour

de f
t

(4.24)

(4.25)

+
aP

xn

~ xn P

j = 1, 2, . . . , P

(4.26)

4.3. TECHNIQUES DE CODAGE POUR LES SOURCES ANALOGIQUES MMOIRE

29

o (m) est la fonction dautocorrlation des chantillons xn . Ce systme se rsout ecacement en utilisant lalgorithme de Levinson. Les coecients ai sont dtermins en dbut de transmission mais peuvent aussi tre ajusts priodiquement Avec cette structure, les chantillons quantier sont dcorrls et de trs faible amplitude et ncessite donc un nombre de bits limits. La gure 4.12 prsente le synoptique dun codeur DPCM.
g h r g i q g h
P

Fig. 4.12 Codeur DPCM En entre du prdicteur, au lieu des chantillons de la source xn , on utilise les chantillons modis par quantication xn = xn + en : xn =
i=1

ai xni

On peut vrier que lerreur de quantication qn = en en est aussi gale la dirence xn xn : xn xn = xn xn en = en en = qn (4.28)

La gure 4.13 prsente le synoptique dun dcodeur DPCM.


v y v

Fig. 4.13 Dcodeur DPCM Pour le dcodage, on utilise exactement le mme prdicteur que pour le codage (en considrant labsence derreurs de transmission). Ainsi, on peut reconstruire les chantillons xn = en + xn . Il faut noter que la modulation Delta est une version simplie de la modulation DPCM. En eet, pour la modulation Delta la quantication est uniquement ralise sur un bit et le prdicteur est remplac par un simple ltre xe de fonction de transfert Z 1 .

i p

w x

s ut i

Quantification

Prdiction

(4.27)

Prdiction

30

CHAPITRE 4. CODAGE POUR LES SOURCES ANALOGIQUES

Il existe des structures plus complexes de modulateur DPCM utilisant deux ltres de prdiction. Il est galement possible dadapter le pas de quantication en fonction de la variance des chantillons de la source. On parle alors de modulateur DPCM adaptatif (ADPCM). La modulation DPCM est utilise pour le codage de la parole dans les standards ITU G.721, G.722, G.723 et G.726.

4.3.4 4.3.5 4.3.6

Codage par dcomposition spectrale Codage bas sur un modle Tableau de synthse

La table 4.1 prsente une comparaison des direntes techniques de modulation pour le codage de la parole en considrant une frquence dchantillonnage de 8kHz. Les paramtres choisis sont ceux qui sont les plus couramment utiliss. Tab. 4.1 Comparaison des modulations pour le codage de la parole technique PCM log PCM DPCM ADPCM Delta Delta adaptatif LPC CELP quanticateur uniforme logarithmique logarithmique adaptative binaire binaire nbr de bits 12 bits 8 bits 4-6 bits 3-4 bits 1 bit 1 bit dbit 96 kb/s 64 kb/s 32-48 kb/s 24-32 kb/s 32-64 kb/s 16-32 kb/s 2,4-9,6 kb/s

Chapitre 5

Transmission en bande de base


5.1 Introduction

On distingue deux types de transmission numrique : la transmission en bande de base et la transmission par ondes modules ( on dit aussi sur porteuse). Une transmission en bande de base signie que les symboles mettre dans le canal de transmission ne subissent pas de translation de leur spectre autour dune frquence porteuse. Dans le cas dune transmission par ondes modules, les symboles mettre module une porteuse de frquence fc (en amplitude, en phase ou par saut de frquence). Dans le cas dune transmission en bande de base et pour la distinguer dune transmission par ondes modules, on utilise souvent le terme codeur en ligne la place de modulateur. Bien que les principes mis en uvre soient les mmes, nous tudions dabord les transmissions en bande de base puis les transmissions par ondes modules. Dune manire gnrale, le signal mis scrit de la forme suivante : x(t) =
k=

ak g(t kT )

(5.1)

T est la dure de limpulsion lmentaire ou dure symbole 1 ak est le k eme symbole transmettre Le choix de limpulsion g(t) dnit les caractristiques spectrales de la transmission.

5.2

Les codes en ligne

Les critres principaux pour choisir un code en ligne sont les suivants : 1. la densit spectrale du code 2. la densit des transitions dans le signal mis 3. la rsistance au bruit Dans ce paragraphe, nous allons prsenter les codes en ligne les plus usuels.

5.2.1

Le code non retour zro (NRZ)

Ce code associe un niveau +A chaque bit gal "1" et un niveau -A chaque bit gal "0". Limpulsion lmentaire g(t) est donc une fonction porte de dure T donne sur la gure 5.1. Dans lannexe 1, nous avons dvelopp le calcul de la densit spectrale XX (f ) dun signal x(t) mis en bande de base. Aprs calcul, on obtient :
1 Nous utiliserons T pour dsigner la dure de limpulsion lmentaire ou dure symbole. La dure de transmission dun lment binaire sera note Tb

31

32

CHAPITRE 5. TRANSMISSION EN BANDE DE BASE

g (t )

+A
T t

Fig. 5.1 Impulsion lmentaire g(t).


o |G(f )|2 est la densit spectrale de puissance de limpulsion g(t) et AA (f ) est la transforme de Fourier de la fonction dautocorrlation aa (i) = E(ak+i a ). k
+

Ainsi, la densit spectrale de puissance du signal mis est dtermine partir de la corrlation des symboles et la forme de limpulsion g(t) ( cest--dire du ltre dmission). Cette formule est souvent appele formule de Bennett. Appliquons cette formule pour le code en ligne NRZ. Puisque g(t) est une impulsion de largeur T et damplitude A, on a : |G(f )|2 = A2 T 2 sin(f T ) f T
2

Dans le cas du code NRZ, les symboles ak peuvent prendre les valeurs +1 et -1. Leur moyenne est nulle et leur variance 2 est gale 1. En consquence, on a AA (f ) = 1 (voir le cas particulier trait dans lannexe 1). Finalement, on obtient donc la densit spectrale de puissance suivante : XX (f ) = A2 T sin(f T ) f T
2

La densit spectrale de puissance du code NRZ est prsente sur la gure 5.3 Loccupation spectrale de ce code est thoriquement innie. Cependant, le premier lobe de la densit spectrale de puissance comprend 90% de la puissance du signal ( 0 1/T ). La densit spectrale de puissance sannule toutes les frquences 1/T . Labsence de raie la frquence 1/T ne permet pas dextraire directement la frquence rythme la rception. En eet, les transitions sur le signal mis sont les mmes que celles de la squence

Fig. 5.2 Signal NRZ. 1 |G(f )|2 AA (f ) T

XX (f ) =

(5.2)

AA (f ) =
i=

aa (i)ej2f iT

(5.3)

(5.4)

(5.5)

5.2. LES CODES EN LIGNE


1 NRZ RZ bipolaire biphase

33

0.9

0.8

0.7

0.6

(f)

XX

0.5

0.4

0.3

0.2

0.1

0.5

1.5 frquence normalise fT

2.5

Fig. 5.3 Densit spectrale des codes NRZ, RZ bipolaire et biphase. binaire. Ainsi lors dune longue suite de 0 ou de 1, on perd toute information de rythme. En pratique, pour pallier cette dicult, on ajoute priodiquement une squence pilote compose de bits connus (squence avec beaucoup de transition).

5.2.2

Code retour zro (RZ) unipolaire

Ce code associe chaque bit gal "1" un niveau +A pendant une dure T /2 puis un niveau O pendant T /2. A chaque bit gal "0" est associ un niveau 0. Ce code est aussi appel code RZ 1/2.
d fe g

Fig. 5.4 Signal RZ unipolaire. La moyenne de la squence est gale 1/2 et la variance centre 2 est gale 1/4. Ainsi, on a : AA (f ) = 1 1 + 4 4T
+ i=

i T

(5.6)

34 et

CHAPITRE 5. TRANSMISSION EN BANDE DE BASE

G(f ) =

AT sin(f T /2) 2 f T /2

(5.7)

En utilisant les rsultats du cas particulier 2 de lannexe, la densit spectrale de puissance du code RZ unipolaire est la suivante : XX (f ) = A2 T 16 sin(f T /2) f T /2
2

A2 16

+ i=

i T

sin(f T /2) f T /2

(5.8)

La raie la frquence 1/T permet la rcupration de rythme par ltrage.

5.2.3

Code retour zro (RZ) bipolaire simple

Ce code associe chaque bit gal "1" un niveau +A pendant une dure T /2 puis un niveau O pendant T /2. A chaque bit gal "0" est associ un niveau -A pendant une dure T /2 puis un niveau O pendant T /2.
n po q

Fig. 5.5 Signal RZ bipolaire. Par rapport au code RZ unipolaire, la moyenne de la squence de symbole est nulle. En consquence, la densit spectrale ne comporte plus de spectre de raies. On a 2 = 1 et donc XX (f ) = A2 T 4 sin(f T /2) f T /2
2

La densit spectrale de puissance du code RZ bipolaire simple est prsente sur la gure 5.3

5.2.4

Code biphase ou Manchester

Ce code associe chaque bit gal "1" un niveau +A pendant une dure T /2 puis un niveau -A pendant T /2. A chaque bit gal "0" on associe un niveau -A pendant T /2 puis un niveau +A pendant T /2 . La densit spectrale de puissance de ce code est donne par lexpression suivante : XX (f ) = A2 T (sin(f T /2))4 (f T /2)2 (5.10)

La densit spectrale de puissance du code biphase est prsente sur la gure 5.3 Les transitions rgulires permettent dextraire simplement lhorloge de synchronisation. Cependant, loccupation spectrale se trouve augmente par rapport au code NRZ. Ce code est utilis pour Ethernet.

lm

(5.9)

5.2. LES CODES EN LIGNE


vxw y

35

Fig. 5.6 Signal biphase.

5.2.5

Code bipolaire ou AMI

Ce code associe chaque bit gal "1" successivement un niveau +A (signal s2 ) et un niveau -A (signal s3 ). A chaque bit gal "0" est associ un niveau 0 (signal s1 ).
s1 s2 +A

s3

t
T T

Fig. 5.7 Signaux de base du code bipolaire

Fig. 5.8 Signal bipolaire. Le code bipolaire est aussi appel code Alternated Mark Inversion (AMI). Ce code peut aussi tre dcrit en utilisant un diagramme de transition comportant 2 tats distincts S0 et S1 comme indiqu sur la gure 5.9. La densit spectrale de puissance avec un codage bipolaire est donne par lexpression suivante : XX (f ) = A2 T sin2 (f T ) sin(f T ) f T
2

La densit spectrale de puissance du code bipolaire est prsente sur la gure 5.10

(5.11)

36

CHAPITRE 5. TRANSMISSION EN BANDE DE BASE

0 / s1
S0

1 / s2
1 / s3 S1

0 / s1

Fig. 5.9 Diagramme de transition du code bipolaire


2.5 code bipolaire code de Miller

1.5

XX

(f)

0.5

0.5

1.5 frquence normalise fT

2.5

Fig. 5.10 Densit spectrale des codes bipolaire et de Miller. Le spectre de ce code ne contient pas de basses frquences mais occupe une bande plus large que celle du code NRZ. Il peut tre utilis lorsque le canal de transmission ne laisse pas passer les basses frquences. Le code bipolaire est utilis dans les raccordements de base du RNIS.

5.2.6

Code de Miller

Ce code associe chaque bit gal "1" soit un niveau +A pendant T /2 puis un niveau -A (signal s2 ) soit un niveau -A pendant T /2 puis un niveau +A (signal s3 ). A chaque bit gal "0" on associe un niveau -A (signal s4 ) ou un niveau +A (signal s1 ). La polarit du signal associ un bit gal "1" est choisie de faon garantir une continuit avec limpulsion prcdente. La polarit du signal associ un bit gal "0" est choisie de faon garantir une continuit avec limpulsion prcdente si celle-ci portait un bit gal "1". Ce code peut aussi tre dcrit en utilisant un diagramme de transition comportant 4 tats distincts comme indiqu sur la gure 5.13 [24] . La densit spectrale de puissance est la suivante [24] : XX (f ) = 1 (23 2 cos 22 cos 2 12 cos 3 + 5 cos 4 + 8 cos 8) + 12 cos 5 + 2 cos 6 8 cos 7 + 2 cos 8)

2 2 (17

avec = f T

5.2. LES CODES EN LIGNE


s1
+A

37
s2 +A
s3 +A s4

t
T
A

t
T
A

Fig. 5.11 Signaux de base du code Miller


x (t )
1
0 0

+A T

s2

s4

s1 s2

s4 s3

s2

S1 S 2 S 4 S1 S 2

S 4 S3 S 2

Fig. 5.12 Signal correspondant au codage de Miller. La densit spectrale de puissance du code de Miller est prsente sur la gure 5.10 On peut observer que le spectre est troit autour de la frquence 0.375/T et ne contient pas de basses frquences. Ces deux proprits sont interessantes lorsque le canal de transmission ne laisse pas passer les basses frquences. Ceci justie lutilisation de ce code pour lenregistrement magntique.

5.2.7

Code NRZ M-aire

Les codes que nous venons dtudier sont tous des codes binaires. Les applications majeures des codes binaires en ligne restent les transmissions en bande de base sur paires torsades, cables coaxiaux et bres optiques. Dans ces applications, lencombrement spectrale nest pas un paramtre trop important. Nous allons maintenant tudier le code NRZ M-aire qui permet de transporter plusieurs bits

S2
1 / s2

1 / s2 0 / s4 1 / s3
0 / s1

S1
0 / s4

0 / s1

S3

1 / s3 S4

Fig. 5.13 Diagramme de transition du code Miller

38

CHAPITRE 5. TRANSMISSION EN BANDE DE BASE

par symbole et donc damliorer lecacit spectrale du code. Ce code est galement la base des modulations numriques en quadrature souvent utilises pour les transmissions par ondes modules. Comme pour le code NRZ, limpulsion lmentaire dun code NRZ M-aire g(t) a une dure T et une amplitude +A. Pour un code NRZ M-aire o M est une puissance de 2, les bits sont groups par paquet de log2 M bits. Les symboles sont cods suivant lalphabet {1, 3, . . . , (M 1)}. Ainsi, les symboles peuvent prendre M valeurs direntes. On a la relation suivante entre Tb la dure de transmission dun bit et T la dure de transmission dun symbole : T = Tb log2 M

(5.12)

Fig. 5.14 Signal correspondant au codage NRZ M-aire pour M = 4, T = 2Tb . Si les bits sont indpendants et quiprobables, la moyenne de la squence de symbole est nulle et la variance centre E((ak )2 ) est gale : E((ak )2 ) = 1 M
M m=1

Finalement, la formule de Bennett permet de calculer la densit spectrale de puissance du code NRZ M-aire : XX (f ) = A2 T (M 2 1) 3 sin(f T ) f T
2

La densit spectrale de puissance du code NRZ M-aire pour M = 4 est compare celle du code NRZ sur la gure 5.15

5.3

Canal de Transmission
k=

Le signal mis est de la forme : x(t) = ak g(t kT ) (5.15)

Ce signal est ensuite modi par le canal de transmission qui est en gnral modlis par un ltre linaire de rponse impulsionnelle c(t). De plus, le canal ajoute un bruit blanc gaussien b(t). Le signal reu r(t) est gal :

(2m 1 M )2 (5.13)

M2 1 = 3

(5.14)

5.3. CANAL DE TRANSMISSION


5 code NRZ code NRZ 4aire 4.5

39

3.5

(f)

XX

2.5

1.5

0.5

0.5

1.5 frquence normalise fTb

2.5

Fig. 5.15 Densit spectrale des codes NRZ et NRZ-4 aire.

r(t) = x(t) c(t) + b(t)


+

c( )x(t )d + b(t)
Canal de transmission

Nous verrons dans le prochain paragraphe que le signal reu r(t) est ensuite ltr par un ltre de rception de rponse impulsionnelle h(t). Le signal y(t) aprs ltrage scrit alors : y(t) = r(t) h(t) = x(t) c(t) h(t) + n(t) = =
k= k=

ak g(t kT ) c(t) h(t) + n(t) ak p(t kT ) + n(t) (5.16)

o est le produit de convolution. p(t) = g(t) c(t) h(t) est la rponse impulsionnelle de lensemble ltre de mise en forme+ canal de transmission + ltre de rception. Dans le domaine frquentiel, on a la relation P (f ) = G(f ) C(f ) H(f )

40

CHAPITRE 5. TRANSMISSION EN BANDE DE BASE

5.3.1

Canal bruit blanc additif gaussien

Le canal bruit blanc additif gaussien (BBAG) est un canal de transmission dont la rponse en frquence C(f ) est gale 1 sur toute la bande du signal mis. Le canal est rduit un simple additionneur de bruit blanc gaussien comme prsent sur la gure 5.16. Il permet de modliser les canaux dont le bruit prdominant est un bruit thermique (canal de transmission et tage dentre du rcepteur).

Fig. 5.16 Modle pour le signal reu aprs un canal BBAG On a la relation suivante entre lentre et la sortie du canal BBAG : r(t) = x(t) + b(t) (5.17)

b(t) est un bruit blanc gaussien de densit spectrale de puissance unilatrale N0 . Sa fonction de covariance est donne par : Rbb ( ) = E{b(t)b(t )} N0 ( ) = 2 o (.) reprsente limpulsion de Dirac.

(5.18)

Rb ( ) N0 2

b( f )

N0

Fig. 5.17 Fonction de covariance et densit spectrale de puissance du bruit blanc b(t) Dans une bande de frquence limite B, b(t) est modlis par un processus alatoire gaussien centr dont la densit de probabilit est la suivante : 1 b2 exp p(b) = 2N 2N La puissance de bruit N dans cette bande B est gale N0 B (5.19)

5.4
5.4.1

Rception optimale pour le canal BBAG


Introduction

Dans ce paragraphe nous allons tudier la structure dun rcepteur optimal. On appelle rcepteur lensemble compos des lments dmodulateur et dtecteur. Dans ce chapitre, nous nous restreindrons au cas du dtecteur dlivrant des symboles estims.

5.4. RCEPTION OPTIMALE POUR LE CANAL BBAG

41

Nous concentrerons notre tude sur le rcepteur cohrent cest--dire que nous ferons lhypothse que les paramtres comme la frquence et la phase des signaux reus sont connus ou ont t correctement estims.

5.4.2

Structure du modulateur

On suppose que le codeur de canal dlivre des bits groups par bloc de g bits. On a donc M = 2g messages dirents possibles c {c1 , c2 , . . . , cM }. Le rle du modulateur consiste associer chaque message c = ci un signal xi (t), dni sur lintervalle ni 0 t T et choisi parmi un jeu de M = 2g signaux. Le schma dtaill du modulateur est prsent sur la gure 5.18.

x1 x1( t )

x2
1

x2 ( t )

x (t)

xM

x M (t)

Fig. 5.18 Schma dtaill du modulateur. 0 Pour transmettre le signal xi (t) associ au message c = ci , il sut davoir xi = 1 et xj = j = i

exemple 1 : cas du code en ligne non retour zro (NRZ) compos de M = 2 signaux lmentaires.

x1 ( t )

x 2 (t ) T t

ES T ES T

Fig. 5.19 jeu des signaux x1 (t) et x2 (t) correspondant lexemple 1.

x(t) =

x1 (t) x2 (t)

si c = 0 si c = 1

(x1 = 1, x2 = 0) (x1 = 0, x2 = 1)

Lnergie de chaque signal xi (t) entre 0 et T est gale Esi


T

Esi =

xi (t)2 dt

(5.20)

42 exemple 2 : cas du jeu de M x1 (t) x (t) 2 x(t) = x3 (t) x4 (t)

CHAPITRE 5. TRANSMISSION EN BANDE DE BASE = 4 signaux biorthogonaux si si si si c = 00 c = 01 c = 10 c = 11 (x1 (x1 (x1 (x1 = 1, x2 = 0, x2 = 0, x2 = 0, x2 = 0, x3 = 1, x3 = 0, x3 = 0, x3 = 0, x4 = 0, x4 = 1, x4 = 0, x4 = 0) = 0) = 0) = 1)

x1 ( t )

x 3 (t )

2 ES T

2E S T

0. 5T x 2 (t ) 0. 5T

t x 4 (t )

0 . 5T

T t

0 . 5T

T
t

2 ES T

2 ES T
Fig. 5.20 Jeu des signaux xi (t) i = 1, 2, 3 et 4 correspondant lexemple 2.

Une approche permettant de simplier le modulateur consiste reprsenter les M signaux possibles xi (t) par des combinaisons linaires de N fonctions de base orthonormes fj (t) et dnergie unitaire avec N M . Dune manire gnrale, les fonctions fj (t) sobtiennent en appliquant la procdure dorthogonalisation de Gram-Schmidt. Les signaux xi (t) peuvent sexprimer par :
N

xi (t) =
j=1

xij fj (t)

(5.21)

o
T

xij =
0

xi (t)fj (t)dt

(5.22)

et o les fonctions de base f1 (t), f2 (t), . . . , fN (t) sont orthonormes :


T 0 fj (t)fj (t)dt = j j =

1 0

si j = j si j = j

(5.23)

Ainsi lnergie des fonctions de base entre 0 et T est gale 1. Lnergie de chaque signal xi (t) entre 0 et T est gale Esi
T N

Esi = Lnergie moyenne Es est donne par :

xi (t) dt =
0 j=1

x2 ij

(5.24)

5.4. RCEPTION OPTIMALE POUR LE CANAL BBAG

43

1 Esi M En utilisant cette reprsentation on obtient le schma donn sur la gure 5.21. Es =

(5.25)

xi1 xi 2
c
Encodeur

f1 (t ) f 2 (t )

x (t ) = xi (t )

xiN f N (t )
Fig. 5.21 Schma dtaill du dmodulateur. exemple 1(suite) : cas du code en ligne NRZ M = 2 signaux Dans cet exemple, N=1 car une seule fonction f1 (t) donne sur la gure 5.22 sut pour gnrer les deux signaux x1 (t) et x2 (t) (N = 1).

f1 ( t )

1 T

Fig. 5.22 signal f1 (t) pour lexemple 1. x1 (t) = Es f1 (t) x2 (t) = + Es f1 (t) si c = 0 (x11 = Es ) si c = 1 (x21 = + Es )

x(t) =

La structure du modulateur est donne sur la gure 5.23.

0 E

S S

x1 f1 (t )

x (t )

1+ E

Fig. 5.23 Schma du modulateur NRZ Dans cet exemple, la fonction de base f1 (t) correspond la rponse impusionnelle g(t) du ltre dmission. Le schma du modulateur correspondant est prsent sur la gure 5.24 exemple 2 (suite) : cas du jeu de M = 4 signaux biorthogonaux

44

CHAPITRE 5. TRANSMISSION EN BANDE DE BASE


0 E S
1 + ES

x1

g(t )

x (t)

Fig. 5.24 Schma du modulateur NRZ Ici, N=2 est les deux fonctions f1 (t) et f2 (t) prsentes sur la gure 5.25 permettent de gnrer les 4 signaux (N = 2).

f 1 (t ) 2 T

f 2 (t ) 2 T

0 . 5T T

0 . 5T T

Fig. 5.25 jeu des signaux f1 (t) et f2 (t) pour lexemple 2.

x1 (t) = Es f1 (t) x (t) = +E f (t) 2 s 1 x(t) = x3 (t) = Es f2 (t) x4 (t) = + Es f2 (t)

si si si si

c = 00 c = 01 c = 10 c = 11

(x11 (x21 (x31 (x41

= Es , x12 = 0) = + Es , x22 = 0) = 0, x32 = Es ) = 0, x42 = + Es )

5.4.3

Rcepteur optimal pour un canal bruit blanc additif gaussien

On considre quun des M signaux possibles xi (t) a t transmis sur un canal bruit blanc additif gaussien (BBAG) pendant la dure T . En entre du rcepteur, on a r(t) = xi (t) + b(t) 0tT (5.26)

o b(t) est un bruit blanc gaussien de densit spectrale de puissance unilatrale N0 La rception optimale comprend deux phases : la dmodulation optimale qui dtermine la squence maximisant le rapport signal bruit et la dtection qui partir de cette squence estime c. Il existe deux structures quivalentes de dmodulateur optimal : le corrlateur et le ltre adapt

Corrlateur Le principe du corrlateur consiste projeter le signal reu sur les N fonctions de base fj (t). Le schma de ce nouveau dmodulateur est donn sur la gure 5.26. Comme les fonctions de base fj (t) sont dnergie unitaire entre 0 et T on a relation suivante :

5.4. RCEPTION OPTIMALE POUR LE CANAL BBAG

45

f (t )

Fig. 5.26 Schma du dmodulateur utilisant les fonctions de base

yj = yj (T )
T

=
0 T

r(t)fj (t)dt
T

=
0 T

xi (t)fj (t)dt +
0 N

b(t)fj (t)dt
T

=
0 N j =1

xij fj (t)fj (t)dt +


0 T T

b(t)fj (t)dt

=
j =1

xij
0

fj (t)fj (t)dt +
0

b(t)fj (t)dt (5.27)

= xij + nj

avec yj la sortie du ieme chantillonneur linstant T et 1 j N . Le signal reu r(t) est maintenant reprsent par un vecteur N composantes yj . Les termes nj sont des variables alatoires relatives au bruit additif du canal de transmission. Ces variables alatoires sont gaussiennes car le ltrage linaire dun bruit gaussien ltre linaire ne modie pas son caractre gaussien. Calculons sa moyenne :

E(nj ) =
0

b(t)fj (t)dt = 0

et sa variance

( )dt

r (t )

)dt

f (t )

)dt

y (t )

(5.28)

46

CHAPITRE 5. TRANSMISSION EN BANDE DE BASE

2 n = E n2 j T T

=E
0 0 T 0 T 0 0 T

b(t)b(u)f (t)f (u)dtdu (t u)f (t)f (u)dtdu

= =

N0 2

N0 2 N0 = 2

f (t)2 dt

(5.29) Ainsi, les chantillons de bruit sont centrs et de variance 2 = N0 . Ces chantillons sont 2 galement dcorrls et indpendants. Finalement il nous restera dcider en faveur du signal le plus probablement mis. On dit que les chantillons y1 , . . . , yN forment un rsum exhaustif du signal r(t). Ainsi, on peut rsumer lensemble de la chane de transmission par les N quations (5.27). On utilisera galement cette proprit pour simuler les chanes de communications numriques exemple 1(suite) : pour le signal NRZ, nous avons vu quune seule fonction de base f1 (t) est ncessaire. A partir du schma de la gure 5.26, on drive le schma prsent sur la gure 5.27.
T

r (t ) f1 (t )

(
0

) dt

y1 (t )

y1

Fig. 5.27 Schma du dmodulateur NRZ Soit y1 la sortie de lchantillonneur linstant T . Comme prcdemment, nous avons la relation : y1 = y1 (T )
T

(5.30)

=
0 T

r(t)f1 (t)dt
T 2 xi (t)f1 (t)dt +

=
0

b(t)f1 (t)dt
0

= xi1 + n Le bruit n en sortie de lchantillonneur est gaussien de moyenne nulle E(n) = 0 et de variance 2 = N0 . 2 Pour le signal NRZ, le rapport signal bruit SN R aprs chantillonnage est : SN R =
2 Comme x2 = Es , et n = i N0 2 ,

E x2 Px i = = 2 Pn n

P r(X = xi )x2 x2 i i = 2 2 n n

(5.31)

on obtient nalement SN R = 2Es N0 (5.32)

5.4. RCEPTION OPTIMALE POUR LE CANAL BBAG

47

Sur la gure 5.28 nous prsentons la forme des signaux en sortie du modulateur, du canal et du corrlateur.
2 1
x(t)

0 1 2 0 2 1 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

r(t)

0 1 2 0 2 1 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

y1(t)

0 1 2 0 0.5 1 1.5 2 2.5 temps 3 3.5 4 4.5 5

Fig. 5.28 Signaux en sortie du modulateur, du canal et du corrlateur

Filtre adapt Au lieu dutiliser des corrlateurs la rception pour obtenir les chantillons yj , il est possible dutiliser des ltres dont la rponse impulsionnelle est hj (t). La relation entre hj (t) et les fonctions de base fj (t) est la suivante : hj (t) = fj (T t) avec 0 t T (5.33)

La sortie de chaque ltre sexprime comme suit : yj (t) = r(t) hj (t)


+

=
t

r(t)hj (t )d

=
0 t

r(t)hj (t )d r(t)fj (T t + )d

=
0

Si on chantillonne la sortie des ltres linstant T , on retrouve la relation prcdente :


T

yj (T ) =
0

r(t)fj ( )d (5.34)

= yj

Nous avons ainsi montr que la sortie des ltres hj (t) linstant t = T est identique celle de la structure avec corrlateur.

48

CHAPITRE 5. TRANSMISSION EN BANDE DE BASE

Les ltres de rponse impulsionnelle hj (t) sont appels ltres adapts aux fonctions de base fj (t) dnies pour 0 t T . On peut dmontrer que lutilisation de ltres adapts permet de maximiser le rapport signal bruit et par consquence de minimiser le taux derreurs. Le schma du dmodulateur est donn sur la gure 5.29.

Fig. 5.29 Schma du dmodulateur avec ltres adapts Il est important de souligner que le rapport signal bruit en sortie dun ltre adapt ne dpend pas de la forme du signal mais de son nergie ! exemple 1(suite) : Pour le cas du code en ligne NRZ, la rponse impulsionnelle h(t) du ltre adapt est la suivante : h(t) = g(T t) o g(t) est la rponse impulsionnelle du ltre dmission. Le schma de la chane avec ltre adapt est prsent sur la gure 5.30 (5.35)

r (t )

g (T t )

y1 (t )

y1

Fig. 5.30 Schma de la chane NRZ avec ltre adapt Lutilisation dun ltre adapt la place du corrlateur donne exactement le mme rsultat. Dtecteur optimal Lobjectif du dtecteur optimal est de dterminer le symbole qui a t le plus vraisemblablement mis x. Soit le symbole x envoy dans un canal discret stationnaire sans mmoire de densit de probabilit conditionnelle p(y/x) et y lchantillon reu aprs ltrage adapt. Un dtecteur maximum a posteriori (MAP) cherche parmi tous les symboles possibles x, le symbole estim x pour lequel la probabilit conditionnelle P r(x|y) est la plus grande. x = arg max P r(x|y)
x

r (t )

y (t )

(5.36)

5.4. RCEPTION OPTIMALE POUR LE CANAL BBAG En utilisant la loi de Bayes, on peut crire : P r(x|y) = P r(y|x)P r(x) P r(y)

49

(5.37)

Si nous faisons lhypothse que tous les symboles sont quiprobables, et comme le dnominateur P r(y) est commun tous les symboles, le message estim x est le message pour lequel la probabilit conditionnelle P r(y|x) est la plus grande. x = arg max P r(y|x)
x

(5.38)

Un dtecteur utilisant ce critre est appel un dtecteur maximum de vraisemblance (maximum likelihood en anglais ou ML). La recherche du message le plus probable implique donc que le dtecteur ML calcule les distances euclidiennes entre lchantillon reu et les chantillons correspondant tous les symboles possibles. Ainsi, lorsque les messages sont quiprobables, les dtecteurs MAP et ML sont identiques.

5.4.4

Calcul du taux derreurs binaires pour un signal NRZ sur un canal bruit blanc additif gaussien

Pour valuer les performances dune chane de transmission numrique, il est important de dterminer le taux derreurs binaires en fonction du rapport signal bruit. Dans ce paragraphe, nous considrerons le cas dun code en ligne NRZ. Soit une transmission par codage en ligne NRZ sur un canal BBAG, nous avons vu dans le paragraphe prcdent quil est possible dexprimer la sortie chantillonne y du rcepteur optimal comme suit : y =x+n (5.39) o x = Eb car T = Tb . On rappelle que dans le cas du code NRZ, lnergie par bit est gale lnergie par symbole Eb = Es . Comme le bruit est stationnaire, n est une variable alatoire gaussienne dcart type et centre dont la densit de probabilit est la suivante : 1 p(n) = exp 2 2 n2 2 2 (5.40)

Le dtecteur ML ralise simplement lopration de dcision suivante : c= 0 1 si y s si y > s (5.41)

Cette opration se rsume ici un simple seuillage par rapport au niveau s. La probabilit que lamplitude de lchantillon reu y soit infrieure s sachant que c = 1 ( et donc x = + Eb est gale : s 1 (y Eb )2 p(y < s|x = + Eb ) = exp dy (5.42) 2 2 2 2 Cette probabilit est gale la probabilit de dcider en faveur de x = Eb alors que x = + Eb a t transmis. Cette probabilit derreurs par paire est note p(x = + Eb x = Eb ) p(x = + Eb x = Eb ) = p(y < s|x = + Eb ) (5.43)

50

CHAPITRE 5. TRANSMISSION EN BANDE DE BASE

De mme, la probabilit que lamplitude de lchantillon y soit suprieure au seuil de dcision s sachant que c = 0 ( et donc x = Eb ) est gale : + 1 (y + Eb )2 p(y > s|x = Eb ) = dy (5.44) exp 2 2 2 2 s La probabilit derreurs par bit ou taux derreurs bit (TEB) est alors le suivant : T EB = P r(erreur bit) =
x

P r(x = a, erreur bit) P r(x = a)P r(erreur bit | x=a)


x

= P r(x = +

Eb )p(x = + Eb x =

Eb ) + P r(x =

Eb )p(x =

Eb x = + Eb ) (5.45)

Nous ferons lhypothse que les bits mis sont quiprobables. On a : P r(c = 1) = P r(c = 0) = P r(x = + Eb ) = P r(x = Eb ) = 0.5 (5.46)

La densit de probabilit p(y) a alors la forme suivante :


p( y)

EB

+ EB

Fig. 5.31 densit de probabilit p(y) Le seuil de dcision est donc plac exactement entre + Eb et Eb : s = 0. Le taux derreurs binaires devient alors : T EB = 0.5p(x = + Eb x = = p(x = Eb x = + = 1
+

Eb ) + 0.5p(x =

Eb x = +

Eb )

2 2

exp
0

Eb ) (y + Eb )2 dy 2 2
y+ Eb , 2

(5.47) On obtient alors : (5.48)

Faisons un changement de variable z =

dz =

dy . 2

+ 1 exp T EB = Eb /22

z 2 dz

Fonction derreurs On trouve dans la littrature deux fonctions derreurs : laire soutendue par la courbe normale canonique de a : 1 Q(a) = 2
a

exp

z dz 2

(5.49)

5.4. RCEPTION OPTIMALE POUR LE CANAL BBAG les fonctions erf et erfc (erf complmentaire) : 2 erf(a) =
a + a

51

exp(z 2 )dz exp(z 2 )dz

(5.50) (5.51)

2 erfc(a) = 1 erf(a) =

exp( z 2 )

aire de la surface grise=1

erf(a)

erfc(a)

a a

z a

Fig. 5.32 fonctions erf et erfc La fonction erfc(a) existe dans Matlab sous le nom : erfc(a). On passe de la fonction erfc(a) la fonction Q(a) en utilisant la relation suivante : Q(a) = 1 a erfc 2 2 (5.52)

En utilisant la relation (5.48) et 2 = N0 , on obtient nalement la relation suivante entre le 2 taux derreurs bit et le rapport signal bruit : T EB = 1 erfc 2 Eb N0 (5.53)

La courbe du taux derreurs bit en fonction du rapport Eb /N0 est prsente sur la gure (5.33).

5.4.5

Probabilit derreurs par paire : cas scalaire

Soient deux symboles xi et xj dont la distance euclidienne est d(xi , xj ). Pour un canal BBAG, la probabilit P r(xi xj ) que y soit plus prs de xj que du symbole transmis xi est donne par : P r(xi xj ) = 1 d(xi , xj ) erfc 2 2 N0 (5.54)

Dans le cas du code NRZ, la distance euclidienne est gale 2 Eb . On retrouve bien lexpression du taux derreurs binaires dcrit par lquation (5.53) lorsque les symboles sont quiprobables.

52
a 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 erfc(a) 1.0000e+000 8.8754e-001 7.7730e-001 6.7137e-001 5.7161e-001 4.7950e-001 3.9614e-001 3.2220e-001 2.5790e-001 2.0309e-001 1.5730e-001 1.1979e-001 8.9686e-002 6.5992e-002 4.7715e-002 3.3895e-002 2.3652e-002

CHAPITRE 5. TRANSMISSION EN BANDE DE BASE


a 1.7 1.8 1.9 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.0 3.1 3.2 3.3 erfc(a) 1.6210e-002 1.0909e-002 7.2096e-003 4.6777e-003 2.9795e-003 1.8628e-003 1.1432e-003 6.8851e-004 4.0695e-004 2.3603e-004 1.3433e-004 7.5013e-005 4.1098e-005 2.2090e-005 1.1649e-005 6.0258e-006 3.0577e-006 a 3.4 3.5 3.6 3.7 3.8 3.9 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5.0 erfc(a) 1.5220e-006 7.4310e-007 3.5586e-007 1.6715e-007 7.7004e-008 3.4792e-008 1.5417e-008 6.7000e-009 2.8555e-009 1.1935e-009 4.8917e-010 1.9662e-010 7.7496e-011 2.9953e-011 1.1352e-011 4.2189e-012 1.5375e-012

Tab. 5.1 table de la fonction erfc.

5.4.6

Calcul du taux derreurs symboles pour un signal NRZ multiniveaux

On considre que les symboles prennent leurs valeurs dans lalphabet {A, 3A, . . . , (M 1)A}. Lamplitude des symboles est alors dnie comme suit : Am = (2m 1 M )A avec m = 1, 2, . . . , M (5.55)

Exemple : M = 4 Lnergie moyenne par symbole est gale : Es = = 1 M A M


2 M

(Am )2
m=1 M m=1 2

(2m 1 M )2 (5.56)

= A2

M 1 3

Le calcul exact du taux derreurs symbole est assez compliqu car il est ncessaire de tenir compte de tous les types derreurs possibles. Nous nous contenterons dune approximation ne tenant compte que des cas o lerreur symbole provient dune dcision en faveur du symbole adjacent. On a 2(M 1) paires de points adjacents et la distance euclidienne entre ces points est gale 2A. Ainsi, le taux derreurs symbole (TES) est gal : 2A 2(M 1) erf c 2M 2 N0 M 1 erf c M M 1 erf c M M2 3 ES 1 N0 (5.57)

T ES = = =

3log2 M Eb M 2 1 N0

5.5. CRITRE DE NYQUIST


10
1

53

10

10

TEB
10
4

10

10

5 E /N
B

6 (dB)

10

Fig. 5.33 T EB = f (Eb /N0 ) pour un code NRZ sur canal BBAG.

M=4

A1 -3A

A2 -A

A3 +A

A4 +3A

Fig. 5.34 Amplitude des symboles pour un signal NRZ M = 4 niveaux. Ce rsultat est comparer celui du code NRZ. Pour dduire le taux derreurs bit partir du taux derreurs symbole, il faut dterminer le nombre derreurs bit quengendre une erreur symbole. Nous verrons que lorsquun codage de Gray est appliqu sur les symboles, une erreur symbole nimplique quune erreur bit et on a alors : T EB = T ES log2 M (5.58)

5.5
5.5.1

Critre de Nyquist
Introduction

Jusqu prsent nous avons considr des transmissions numriques sur des canaux bande passante innie. Dans beaucoup dapplications (modems tlphoniques, liaisons hertziennes et satellitaires, communications radiomobiles, ...), la largeur de bande est limite et le problme consiste transmettre le dbit le plus lev possible dans une bande de frquence donne. Si la bande du signal mis est limite, la forme de limpulsion lmentaire g(t) est de dure innie. Le problme consiste donc choisir cette forme donde pour pouvoir reconstituer parfaitement la rception les chantillons mis la cadence symbole de 1/T .

5.5.2

Interfrence entre symboles

Nous avons vu que la sortie du ltre de rception peut scrire

54

CHAPITRE 5. TRANSMISSION EN BANDE DE BASE

y(t) = r(t) h(t) = x(t) c(t) h(t) + n(t) = =


i= i=

ai g(t iT ) c(t) h(t) + n(t) ai p(t iT ) + n(t) (5.59)

avec p(t) = g(t) c(t) h(t) et n(t) = b(t) h(t) On chantillonne y(t) aux instants t = kT + ( est un dlai permettant dajuster linstant optimal dchantillonnage)
+

y(kT ) =
i=

ai p(kT iT ) + n(kT )
+

= ak p(0) +
i=k

ai p((k i)T ) + n(kT )

(5.60)

Cette expression est compose de 3 termes : Le premier terme est proportionnel au k ieme symbole transmis Le second terme est la contribution de tous les autres symboles transmis sur lchantillon y(kT ). Ce terme est appel linterfrence intersymbole. Le troisime terme est la contribution du bruit Comme le second et le troisime terme diminuent les performances du systme de transmission, nous devrons choisir les ltres dmission et de rception an de les minimiser.

5.5.3

Diagramme de lil

Le diagramme de lil permet de visualiser les interfrences intersymboles. Il consiste superposer toutes les sections de dure T du signal y(t). Un exemple est prsent sur la gure 5.35 pour un signal NRZ ltr par un ltre en cosinus surlev.
1.5 2

1.5 1 1

amplitude

0.5

0.5

amplitude

0.5 0.5 1 1 1.5

1.5 0.5

0.4

0.3

0.2

0.1

0 temps

0.1

0.2

0.3

0.4

0.5

2 0.5

0.4

0.3

0.2

0.1

0 temps

0.1

0.2

0.3

0.4

0.5

Fig. 5.35 Diagramme de lil dun signal NRZ ltr par un ltre en cosinus surlev = 1 et = 0, 35 La gure 5.36 illustre graphiquement leet de linterfrence intersymbole et du bruit sur le diagramme de lil. On peut noter en particulier que mme en absence de bruit, linterfrence intersymbole tend fermer le diagramme de lil et donc rendre plus dicile la dcision (amplitude et instant dchantillonnage).

5.5. CRITRE DE NYQUIST


instant dchantillonnage optimal

55

marge de bruit largeur d'ouverture de l'oeil

Fig. 5.36 Diagramme de lil

5.5.4

Critre de Nyquist

Pour garantir labsence dinterfrence intersymbole, on doit avoir la condition suivante sur la forme donde p(t) : p(kT ) = 1 pour 0 pour k=0 k=0 (5.61)

On peut vrier quavec cette condition, lquation (5.60) devient : y(kT ) = ak + n(kT ) Dans le domaine frquentiel, le critre de Nyquist devient [24] :
+

(5.62)

P f+
i=

i T

=T

(5.63)

Soit B la bande passante du canal de transmission ( C(f ) = 0 pour f > B). Discutons de la faisabilit de raliser le critre selon la largeur de bande B par rapport la dure de la priode symbole T comme prsent sur la gure 5.37
1 - Si 2T > B, alors il nexiste pas de ltre G(f ) et H(f ) tel que P (f ) = G(f )C(f )H(f ) satisfait au critre de Nyquist 1 - Si 2T = B, il existe une solution possible : P (f ) doit tre la rponse dun ltre passe-bas parfait de frquence de coupure B :

P (f ) =

T si |f | < B = 0 sinon

1 2T

(5.64)

La rponse impulsionnelle associe est : sin(t/T ) (5.65) t/T Elle est prsente sur la gure 5.38. Il faut prciser que le ltre passe bas parfait nest pas physiquement ralisable. p(t) =
1 - Si 2T < B, alors il existe une famille de ltre G(f ) et H(f ) tel que P (f ) = G(f )C(f )H(f ) rpond au critre de Nyquist. Les ltres appartenant cette famille doivent satisfaire la condition suivante :

56

CHAPITRE 5. TRANSMISSION EN BANDE DE BASE

i =

P( f + i / T )
+

cas 1 > B 2T

B T

f
1/ T

cas

1 =B 2T

B = 1 / 2T

1/ T cas 1 <B 2T

1/ T

Fig. 5.37 Rponses

P (f + i/T ) pour 1/2T > B, 1/2T = B et 1/2T < B

P (f ) + P f

1 T

=T

(5.66)

5.5.5

Le ltre en cosinus surlev

La fonction de transfert dun ltre en cosinus surlev est la suivante T P (f ) = T cos2 0 si


4 (2f T

0 |f |
1 2T

1 2T 1+ 2T

(1 ))

si si

< |f | <
1+ 2T

(5.67)

|f |

est le facteur darrondi (roll-o en anglais) et est compris entre 0 (ltre passe-bas parfait - diagramme de lil le plus ferm) et 1 (bande passante maximale - diagramme de lil le plus ouvert). En pratique cette valeur est choisie entre 0.22 et 0.35. La rponse en frquence du ltre en cosinus surlev est prsente sur la gure 5.39. On peut vrier que cette fonction de transfert satisfait le critre (5.66). La rponse impulsionnelle p(t) est la suivante : p(t) = sin(t/T ) cos(t/T ) t/T 1 42 t2 /T 2 (5.68)

Lorsque le canal de transmission est un canal bruit blanc additif gaussien ( C(f ) = 1 dans bande considre), on a P (f ) = G(f )H(f ). An de maximiser le rapport signal bruit la rception, nous avons vu que le ltre de rception doit tre le ltre adapt au ltre dmission. Ainsi, en pratique, on scinde le ltre en cosinus surlev en deux ltres identiques appels ltres en racine de cosinus surlev :

5.5. CRITRE DE NYQUIST

57

0.8

0.6

p(t)
0.4 0.2 0 0.2 4 3 2 1 0 t/T 1 2 3 4

Fig. 5.38 rponse impulsionnelle du ltre passe-bas parfait

T G(f ) = H(f ) = T cos 0

si
4 (2f T

0 |f |
1 2T

1 2T 1+ 2T

(1 )) si

si

< |f | <
1+ 2T

(5.69)

|f |

58

CHAPITRE 5. TRANSMISSION EN BANDE DE BASE

0.8

P(f)

0.6

0.4

0.2 =0,35 =1

0.8

0.6

0.4

0.2

0.2

0.4 fT

0.6

0.8

Fig. 5.39 rponse en frquence du ltre en cosinus surlev

Chapitre 6

Introduction aux modulations numriques


Lopration de modulation consiste adapter le signal mettre au canal de transmission. Elle a pour eet de translater le spectre du signal autour dune frquence porteuse.

6.1

Modulation dplacement damplitude

La modulation dplacement damplitude (MDA) ou pulse amplitude modulation (PAM) en anglais tablit une correspondance entre les symboles ak et le signal modul comme suit :
k= k=

x(t) = =

ak p(t kT ) ak g(t kT )cos(0 t) (6.1)

g(t) et p(t) = g(t)cos(0 t) sont les formes donde du signal respectivement avant et aprs la modulation. Comme pour le code en ligne NRZ multiniveaux, les symboles ak prennent leurs valeurs dans lalphabet {d, 3d, . . . , (M 1)d}. Le signal x(t) peut galement scrire sous la forme suivante : x(t) =
k=

ak g(t kT )ej0 t

(6.2)

Une reprsentation gomtrique des signaux PAM pour M = 4 et M = 8 est donne sur la gure 6.1 Sur le canal gaussien, le taux derreurs symbole est donn par : T ES = M 1 erf c M 3log2 M Eb M 2 1 N0 (6.3)

Le codage de Gray consiste choisir les mots binaires associs deux points adjacents an quils ne dirent que dun seul bit. Ainsi, une erreur symbole entre deux points adjacents nengendre quune erreur bit sur les log2 M bits du mot binaire. exemple : M = 4 : (00 - 01), (01 - 11) et (11 - 10). 59

60

CHAPITRE 6. INTRODUCTION AUX MODULATIONS NUMRIQUES



k=

=4

Fig. 6.1 constellation dune modulation PAM pour M = 4 et M = 8. Si on utilise un codage de Gray, on a donc la relation suivante entre le taux derreurs bit et le taux derreurs symbole : T EB = T ES log2 M (6.4)

6.2

Modulation dplacement de phase

La modulation dplacement de phase (MDP) ou phase shift keying (PSK) en anglais consiste moduler la phase de la porteuse k par le symbole transmettre bk :
k=

x(t) =

Ag(t kT )cos 0 t +

2bk + 0 M (6.5)

k=

Ag(t kT )cos 0 t + k + 0

bk {0, 1, . . . , M 1} et g(t) est la forme donde du signal en bande de base. 0 est une phase de rfrence. On choisit en gnral 0 = /M . exemple : M = 4 : la phase k peut prendre les valeurs suivantes : 0, , et 2 Le signal x(t) peut galement scrire sous la forme suivante : x(t) = avec ak = A exp j 2bk + 0 M
3 2 .

ak g(t kT )ej0 t

Une reprsentation gomtrique des signaux PSK pour M = 4 (QPSK) et M = 8 (8PSK) est donne sur la gure 6.2

6.3

Modulation damplitude de deux porteuses en quadrature

La modulation damplitude de deux porteuses en quadrature(MAQ) ou quadrature amplitude modulation (QAM) en anglais consiste moduler simultanment lamplitude et la phase de la porteuse par le symbole transmettre ak :

=8

(6.6)

6.3. MODULATION DAMPLITUDE DE DEUX PORTEUSES EN QUADRATURE

61

=4

=8

Fig. 6.2 constellation dune modulation PSK pour M = 4 et M = 8. ().

x(t) =

k=

ak g(t kT )ej0 t (aR + jaI )g(t kT )ej0 t k k aR g(t kT )cos0 t aI g(t kT )sin0 t k k vk g(t kT )cos(0 t + k ) aI k aR k (6.7)

= = = o vk =

k= k= k=

(aR )2 + (aI )2 k k

et

k = arctan

Cette modulation permet de raliser des transmissions numriques decacit spectrale leve. Une reprsentation gomtrique des signaux QAM pour M = 4 M = 16 est donne sur la gure 6.3 Nous pouvons observer que la modulation QAM 4 est identique la modulation dplacement de phase 4 tats de phase QPSK. Nous allons maintenant dterminer le taux derreurs symbole dune modulation QAM. Soit k = log2 M le nombre de bits par symbole. Pour les constellations rectangulaires (M = 2k ), avec k pair, la modulation QAM est qui valente deux modulations PAM en quadrature ayant chacune M = 2k/2 points. Comme les signaux en phase et en quadrature peuvent tre parfaitement spars la dmodulation, le taux derreurs symbole TES dune modulation QAM peut sobtenir aisment partir du TES de la modulation PAM compose de M points. Alors le TES de la modulation QAM sexprime comme suit :

62

CHAPITRE 6. INTRODUCTION AUX MODULATIONS NUMRIQUES


=4

=16

Fig. 6.3 constellation dune modulation QAM4 et QAM16.

o T ESP AM M est le taux derreurs symbole de la modulation PAM avec la moiti de la puissance moyenne dune modulation QAM quivalente :

T ES = 1 (1 T ESP AM M )2

T ESP AM M =

1 1 M

erf c

3log2 M Eb 2(M 1) N0

La relation (6.8) peux alors scrire comme suit : 1 T ES = 2 1 M 3log2 M Eb 2(M 1) N0 1 1 1 2 M 3log2 M Eb 2(M 1) N0

erf c

erf c

Pour la modulation QAM 4, on obtient par exemple : T ES = 1 : T EB = 1 erf c 2 Eb N0 (6.12) 1 1 erf c 2 Eb N0


2

= erf c

Eb N0

1 erf c 4

Par ailleurs avec un codage de Gray, le taux derreurs bit pour la modulation QAM 4 est gal

En ngligeant le second terme de (6.11), on retrouve la relation T EB = T ES/log2M = T ES/2

(6.8)

(6.9)

(6.10)

Eb N0

(6.11)

Chapitre 7

Introduction au codage de canal


Communication links transmit information from here to there. Computer memories transmit information from now to then. E.R. Berlekamp

7.1

Introduction

Dans ce cours, nous allons dterminer les limites de communication sans erreur dans un canal bruit. Nous introduirons tout dabord dirents modles de canaux de transmission. Puis nous nous interesserons la capacit de ces dirents canaux de transmission et au thorme du codage de canal.

7.2
7.2.1

Modle de canaux de transmission


Le canal binaire symtrique

Le canal binaire symtrique est le canal le plus simple possible puisque lentre et la sortie du canal sont binaires. Ce canal est reprsent par le graphe suivant : 0 p X 1 1p Fig. 7.1 canal binaire symtrique Ce canal est caractris par les 2 probabilits de transition suivantes : P (Y = 0|X = 1) = P (Y = 1|X = 0) = p P (Y = 0|X = 0) = P (Y = 1|X = 1) = 1 p p est appel la probabilit dinversion. 63 p 1 Y 1p 0

(7.1)

64 P (X) X=0 X=1

CHAPITRE 7. INTRODUCTION AU CODAGE DE CANAL P (Y |X) Y =0 Y =1 X=0 1p p X=1 p 1p

q 1q

On dnit galement les probabilits a priori P (X = 0) = q et P (X = 1) = 1 q. En utilisant la loi de Bayes, on peut calculer P (X, Y ) et P (Y ) : P (X, Y ) X =0 X =1 Y =0 q(1 p) (1 q)p Y =1 qp (1 q)(1 p) P (Y ) Y =0 Y =1

q(1 p)+(1 q)p qp + (1 q)(1 p)

Le canal binaire symtrique est sans mmoire : soit x et y respectivement les squences dentre et de sortie composes de n bits du canal : x = [x1 , x2 , . . . , xn ], et y = [y1 , y2 , . . . , yn ]. La relation suivante justie labsence de mmoire dans le canal :
n

P (Y1 = y1 , . . . , Yn = yn |X1 = x1 , . . . , Xn = xn ) =

i=1

P (Y = yi |X = xi )

La probilit conditionnelle jointe est le produit des n probabilits conditionnelles P (Y = yi |X = xi ). Lentropie de la source est : H(X) = q log2 q (1 q) log2 (1 q) Calculons H(X|Y) : (7.2)

H(X|Y ) = P (X = 0, Y = 0) log2 (P (X = 0|Y = 0)) P (X = 0, Y = 1) log2 (P (X = 0|Y = 1)) P (X = 1, Y = 0) log2 (P (X = 1|Y = 0))

P (X = 1, Y = 1) log2 (P (X = 1|Y = 1))

(7.3)

Sur la gure 7.2 nous prsentons les courbes H(X|Y ) = f (q) pour un canal binaire symtrique avec p=0.1, 0.2 et 0.5.

Si q = 0, 5 alors on a : H(X|Y ) = p log2 (p) (1 p) log2 (1 p) (7.4)

7.2.2

Canaux discrets sans mmoire

Le canal binaire symtrique est un cas particulier de la famille des canaux discrets sans mmoire. Les symboles en entre de ce canal sont M -aire et les symboles en sortie sont N -aire. Il est dcrit par un ensemble de N M probabilits conditionnelles de la forme P (Y = yj |X = xi ) pij . Ce canal est dcrit par le graphe de la gure 7.3.

7.3. CAPACIT DUN CANAL DE TRANSMISSION


H(X|Y)
1 0.9 0.8

65

p=0.5

p=0.2
0.7 0.6 0.5 0.4 0.3 0.2 0.1 0

p=0.1

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

probabilit q

Fig. 7.2 entropie conditionnelle H(X|Y ) en fonction de q et p

7.2.3

Canal bruit blanc additif gaussien

Le canal bruit blanc additif gaussien est le canal alphabet de sortie continu le plus important. Il permet de modliser les canaux dont le bruit prdominant est le bruit thermique. Nous considrerons que la bande occupe par le signal en entre du canal est en bande de base limite B et que le bruit additif est stationnaire, blanc, gaussien et de densit spectrale de puissance unilatrale N0 . La puissance du bruit N est gale : N = N0 B (7.5)

A la rception, le dmodulateur optimal comprend un ltre adapt limitant la bande de bruit B. Le thorme de lchantillonnage implique que 2BT chantillons susent pour reprsenter les signaux en entre et en sortie du dmodulateur pendant une dure T . Considrons une modulation bipodale o les symboles mis xi linstant i peuvent prendre les amplitudes les valeurs + Eb ou Eb . A linstant i, on peut exprimer la sortie yi du dmodulateur optimal comme suit : yi = xi + ni (7.6)

ni est lchantillon rel de bruit blanc centr dont la densit de probabilit est gaussienne : 1 n2 exp i N0 N0 La variance de lchantillon de bruit ni est gale : p(ni ) = N N0 = 2B 2 Ainsi la densit de probabilit de yi conditionnellement xi est : 2 = 1 p(yi |xi ) = exp N0 [yi xi ]2 N0 (7.8) (7.7)

7.3
7.3.1

Capacit dun canal de transmission


Introduction

Cherchons rsoudre le problme suivant : supposons que lon transmet 1000 bits par seconde 1 (bits quiprobables P (X = 0) = P (X = 1) = 2 ) dans un canal binaire symtrique de paramtre

66

CHAPITRE 7. INTRODUCTION AU CODAGE DE CANAL p11

x1

y1

x2

y2

xi

yj

xM pMN yN

Fig. 7.3 canal discret sans mmoire p = 0.1. Quel est le dbit dinformation maximum quil est possible de transmettre ? on pourrait penser que ce dbit est gal 900 Sh/s en soustrayant le nombre derreurs par seconde. Cependant cette vue simpliste est errone car nous ne connaissons pas la position de ces erreurs. Par exemple, dans le cas extrme o p = 0.5, nous avons en moyenne 500 erreurs par seconde et aucune information nest transmise ! Essayons maintenant de rpondre cette question.

7.3.2

Capacit dun canal de transmission

Nous noterons X et Y les variables alatoires associes respectivement lentre et la sortie du canal. dnition 1 : On dnit la capacit dun canal de transmission par : C = max I(X, Y ) (7.9)

Ainsi, la capacit dun canal de transmission est le maximum de linformation mutuelle moyenne. Nous verrons plus tard que la capacit telle quelle est dnie ci-dessus est gale au plus grand nombre de bits dinformation qui peuvent tre transmis sur le canal avec un taux derreurs aussi faible que possible. Considrons tout dabord le cas o le canal de transmission est dpourvu de bruit. Dans ce cas, sa capacit est la quantit dinformation moyenne maximale que peut transporter chacun des symboles en entre du canal. La capacit C sexprime en Shannon/symbole . Il est galement possible de lexprimer en Shannon/seconde (on parle alors de capacit par unit de temps). Pour la distinguer de la capacit

7.3. CAPACIT DUN CANAL DE TRANSMISSION par symbole, nous noterons cette dernire C . On a : C = C Ds avec Ds dbit symbole de la source

67

(7.10)

En absence de bruit, la capacit C du canal est gale log2 Q. En eet, la quantit dinformation moyenne maximale sobtient lorsque lentropie de la source est maximale soit lorsque les symboles Q-aire de la source sont quiprobables. On a alors : C = HMAX (X) = log2 Q (7.11)

En prsence de bruit, on a C < HMAX (X). Pour calculer la capacit du canal de transmission, il faut dterminer la quantit dinformation moyenne perdue dans celui-ci. Nous avons vu prcdemment que H(X|Y ) mesure lincertitude rsiduelle sur X connaissant Y . Pour une bonne communication il est souhaitable que cette quantit soit nulle ou ngligeable. La maximisation est ralise sur lensemble de toutes les sources possibles. Si le canal est sans mmoire, cette maximisation est eectue sur lensemble des probabilits pi dapparition des symboles dentre. H(X|Y ) correspond la quantit dinformation moyenne perdue dans le canal. Lorsque le canal est sans bruit, on a H(X|Y ) = H(X|X) = 0 et donc C = HMAX (X). On retrouve la relation ( 7.11).
H(X, Y ) H(X) H(X)
+ -

I(X, Y ) H(X|Y ) = 0

H(Y ) I(X, Y )

Fig. 7.4 cas C = HMAX (X) Lorsque le canal est tellement bruyant que X et Y sont indpendants, on a H(X|Y ) = H(X). Dans ce cas particulier la capacit du canal de transmission est nulle C = 0.
H(X, Y ) H(X)
+ -

I(X, Y ) = 0 H(X|Y ) = H(X)

H(X) H(Y )

Fig. 7.5 cas C = 0 Lorsque lentropie de la source est gale HMAX (X), H(X|Y ) ne dpend plus que du canal de transmission utilis. Si H(X|Y ) est non ngligeable (cas du canal bruyant), il ne sera pas possible deectuer une communication sans erreur en reliant directement la source au canal de transmission. Il faut donc placer un lment appel codeur de canal entre la source et le canal de transmission. La gure 7.6 prsente le nouveau systme de communication comprenant un codeur de canal, le canal bruit et un dcodeur de canal. Pour ce nouveau systme, on peut dnir linformation mutuelle moyenne I(U, V ) = H(U ) H(U |V ). Le rle du codage de canal est de rendre la quantit dinformation moyenne H(U |V ) aussi faible que souhait. Il est alors possible de transmettre au travers de ce canal bruit une quantit dinformation moyenne H(U ) avec le critre de qualit souhait. Bien entendu, on a H(U ) < H(X) cause de la redondance apporte par le codage de canal. Nous allons maintenant noncer le thorme fondamental du codage de canal.

68 U H(U ) CODEUR X H(X)

CHAPITRE 7. INTRODUCTION AU CODAGE DE CANAL Y CANAL I(X, Y ) DECODEUR V I(U, V )

Fig. 7.6 systme de communication avec codage de canal

7.3.3

Thorme fondamental du codage de canal

Il existe un codage de canal permettant de garantir une communication avec un taux derreurs aussi faible que souhait la condition que la quantit dinformation moyenne entrant dans lensemble codeur-canal-dcodeur soit infrieure la capacit C du canal [27] : H(U ) < C (7.12)

En multipliant les deux termes de cette ingalit par Ds le dbit de la source on obtient lingalit entre le dbit maximum dinformation binaire Db et la capacit par unit de temps : Db < C (7.13)

La dmonstration de ce thorme est base sur le principe du codage alatoire. Les travaux de Shannon ne donnaient pas de solution pour raliser pratiquement un codeur et un dcodeur. Depuis 1948, les chercheurs ont propos des codes correcteurs derreurs et des algorithmes de dcodage de complexit raisonnable permettant de sapprocher de cette limite thorique. Ce nest quen 1993 avec la dcouverte des Turbo codes [3] et en 1995 avec la redcouverte des codes LDPC [?] quil a enn t possible de sapprocher moins de 1 dB de cette limite.

7.3.4

Capacit dun canal binaire symtrique

Le canal binaire symtrique est simplement dcrit par la probabilit derreur p. Sur la gure 7.7 nous prsentons les courbes I(X, Y ) = f (q) pour un canal binaire symtrique avec p=0.0,0.1, 0.2 et 0.5.
I(X,Y)
1

p=0
0.9 0.8 0.7 0.6

p=0.1
0.5 0.4

p=0.2
0.3 0.2 0.1

p=0.5
0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

probabilit q

Fig. 7.7 information mutuelle I(X, Y ) en fonction de q et p Nous pouvons voir sur cette gure que linformation mutuelle est maximise lorsque les probabilits dentre sont identiques : P (X = 0) = P (X = 1) = q = 1/2.

7.3. CAPACIT DUN CANAL DE TRANSMISSION

69

Sur la gure 7.8 nous prsentons la courbe I(X, Y ) = f (p) pour un canal binaire symtrique avec q=0.5. On a alors : I(X, Y ) = H(X) H(X|Y ) = 1 + p log2 (p) + (1 p) log2 (1 p) (7.14)

Comme attendu, linformation mutuelle est maximale lorsque p = 0. Ainsi la capacit du canal binaire symtrique est gale 1 Shannon/symbole.
I(X,Y)
1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

probabilit p

Fig. 7.8 information mutuelle I(X, Y ) en fonction de p pour q = 0.5

7.3.5

Capacit dun canal bruit blanc additif gaussien

Pour dterminer la capacit dun canal bruit blanc additif gaussien, nous allons tout dabord calculer linformation mutuelle moyenne I(X, Y ) bien que les variables alatoires X et Y soient continues. Pour ce faire, introduisons lentropie direntielle HD (V ) dune variable alatoire V :
+

HD (V ) =

p(v) log2 p(v)dv

(7.15)

Linformation mutuelle peut sexprimer alors ainsi : I(X, Y ) = HD (Y ) HD (Y |X)

= HD (Y ) HD (X + Z|X) = HD (Y ) HD (Z|X) = HD (Y ) HD (Z)

(7.16)

car Z la variable alatoire associe au bruit est indpendante de X. Calculons lentropie direntielle HD (V ) de V , variable alatoire gaussienne centre de variance 2 v . On a : 1 HD (V ) = 2v 1 = 2v Puisque log2
1 2v +

exp
+

v 2 2 2v v 2 2 2v

exp

1 v 2 log2 exp dv 2 2v 2v 1 v2 log2 2 dv 2v ln 2 2v

(7.17) (7.18)

ne dpend pas de v et que

70

CHAPITRE 7. INTRODUCTION AU CODAGE DE CANAL

1 2v

exp

v 2 2 2v

=1

on peut extraire le premier membre sous lintgrale. On obtient alors : HD (V ) = log2 Par dnition, 1 E(V 2 ) = 2v Finalement, on obtient donc : HD (V ) = 1 2v + 2v
+ +

2 2v

v2 exp ln 2
2 dv = v

v 2 2 2v

dv

(7.19)

v 2 exp

v 2 2 2v

(7.20)

1 + log2 2v 2 ln 2

(7.21)

On peut montrer que le maximum de I(X, Y ) sobtient lorsque la densit de probabilit de X 2 2 est gaussienne, centre et de variance x . La variance du bruit Z est gale n = N0 o N0 est 2 la densit spectrale unilatrale du bruit blanc gaussien. Calculons la variance de Y :
2 E(Y 2 ) = E(X + Z)2 = E(X)2 + 2E(XZ) + E(Z)2 = E(X)2 + E(Z)2 = x +

N0 2

(7.22)

A partir de (7.16) on drive la capacit du canal BBAG : C = max I(X, Y ) = log2 = 1 log2 1 + 2 N0
2 (2x + N0 ) log2 2 2x

N0 (7.23)

en Shannon/symbole

Introduisons P la puissance moyenne du signal X. En considrant une frquence dchantillonage gale 2B, nous avons 2BT chantillons pendant une dure T . On a alors : 1 T 1 T 1 T
T 0 2BT

P = =

E[x2 (t)]dt E(x2 ) i

i=1 2BT 2 x i=1

2 = 2Bx

(7.24)

On obtient nalement partir (7.23) de lexpression classique de la capacit dun canal BBAG : 1 P log 1 + 2 2 N

C=

en Shannon/symb

(7.25)

La capacit C est une capacit par symbole cest--dire par chantillon du signal. Certains auteurs parlent de capacit par dimension souvent exprime en bit/dimension.

7.3. CAPACIT DUN CANAL DE TRANSMISSION


Capacit=f(SNR) 6

71

Capacit (Sh/symb)

10

10

20 SNR (dB)

30

40

Fig. 7.9 Capacit dun canal bruit blanc additif gaussien. La gure (7.9) prsente la courbe de la capacit C du canal BBAG en fonction du rapport signal P bruit SN R = N . On peut observer que pour SN R > 5dB, la capacit C est bien approxime 1 par la fonction linaire C 2 log2 (SN R). En multipliant (7.25) par la frquence dchantillonage 2B, on obtient nalement lexpression de la capacit par unit de temps suivante : C = Blog2 1 + P N

en Shannon/sec

(7.26)

avec N puissance du bruit N = BN0 Lorsque le rapport signal bruit est grand, on peut approximer la capacit du canal BBAG comme suit : P log (P/N ) B C = Blog2 1 + B 10 (P/N )dB N log10 2 3

7.3.6

Reprsentation gomtrique

Il est galement possible de dmontrer gomtriquement que pour garantir une transmission 2 2x sans erreur, la quantit dinformation moyenne H(U ) ne peut pas tre suprieure 1 log2 1 + N0 2 On rappelle la relation vectorielle entre le vecteur mis x et le vecteur reu y de dimension D y =x+n (7.27)

n = (n1 , n2 , . . . , nD ) est le vecteur bruit compos de D composantes indpendantes gaussiennes 2 de variance n = N0 . La densit de probabilit du vecteur n sexprime comme suit : 2 p(n) = 1 exp 2 (2n )D/2
D 2 i=1 ni 2 2n

(7.28)

72

CHAPITRE 7. INTRODUCTION AU CODAGE DE CANAL

Pour D tendant vers linni, nous avons montr dans lannexe 1 que la norme du vecteur de 2 bruit 1 est concentre la surface de la sphre D dimensions de rayon Dn . 2 Le vecteur mis x est gnr alatoirement avec une variance x et une distribution gaussienne an de maximiser la capacit : p(x) = 1 exp 2 (2x )D/2
D 2 i=1 xi 2 2x

(7.29)

Pour la mme raison que prcdemment, la norme du vecteur x est concentre la surface de 2 2 2 la sphre de rayon D.x . Comme la puissance du signal reu est gale la somme x + n , le vecteur correspondant au signal reu quelque soit le signal mis se trouve la surface de la sphre 2 2 D dimension de rayon D(x + n ). On souhaite raliser une transmission sans erreur dune quantit dinformation moyenne H(U ) = 1 DH(U) est le nombre de signaux mis possibles. Pour ce faire, il faut que les D log2 M , o M = 2 sphres de bruit soient disjointes. Ainsi le volume des M sphres de bruit doit tre infrieur au 2 2 volume de la sphre de rayon D(x + n ). Rappelons que le volume dune sphre D dimension et de rayon r est donn par D/2 rD (7.30) V (r, D) = (D/2 + 1) o (.) est la fonction factorielle dEuler Ainsi, on doit avoir :
2

nombre de signaux distinguables = M Cette ide est illustre sur la gure 7.10.

V(

2 2 D(x + n ), D)

V(

2 D.n , D)

(7.31)

D n

D ( x + n )
2 2

Fig. 7.10 Rpartition des sphres de bruit. Lexpression se simplie comme suit : M On obtient lingalit suivante : M
1 norme

2 2 (D(x + n ))D/2 2 )D/2 (D.n

(7.32)

2 2 x + n 2 n

D/2

(7.33)

qP D 2 du vecteur de bruit = i=1 ni 2 la fonction factorielle dEuler (.) est dnie comme suit : (n) = (n 1)! avec n N (2n)! (n + 1/2) = 22n .n! . avec n N (1/2) =

7.3. CAPACIT DUN CANAL DE TRANSMISSION Cette ingalit scrit alors : H(U ) 1 log2 2 1+
2 x 2 n

73

(7.34)

Finalement comme la capacit C est la plus grande valeur que peut prendre la quantit dinformation moyenne H(U ), on retrouve la formule de la capacit du canal BBAG : C= 1 2 log2 1 + x 2 2 n Sh/dim (7.35)

Lorsque la bande passante est limite, la dimension D est gale D = 2BT avec B bande passante du systme et T dure de la transmission. La puissance du bruit est gale N = N0 B = 2 2 2Bn et la puissance moyenne du signal X est gale P = 2Bx . Alors la capacit C par unit de temps est : P N P N0 B en Shannon/sec (7.36) Exemple : Considrons la ligne tlphonique dont le rapport signal bruit P/N est de lordre de 30 dB et la bande passante est limite B= 3.5kHz. La capacit est denviron 35 Kb/s. Il devrait donc tre possible en utilisant des codes correcteurs et des modulations performantes de transmettre sur cette ligne jusqu 35 Kb/s sans erreur de transmission. La norme V.34 sur les modems permet datteindre 33.6 Kb/s ce qui est proche de la limite thorique. Soit Eb lnergie moyenne par bit dinformation et Es lnergie moyenne par symbole. On a : P = Es Eb = Ts Tb (7.37)

C = B log2 = B log2

1+ 1+

Ts et Tb sont respectivement la dure de transmission dun symbole et dun bit dinformation (en considrant le cas dune modulation M-aire M = 2g et un code de rendement R on a Ts = gRTb ). On a la relation suivante entre le rapport signal bruit P/N et le rapport Eb /N0 : P Es Eb Eb = = = N N0 BTs N0 BTb N0 est lecacit spectrale en bits/sec/Hz : = Db B avec Db = 1 Tb dbit binaire dinformation (7.39) (7.38)

Lecacit spectrale maximale est maximale lorsque la bande passante est minimale soit Bmin = 1/Ts , on a : max = 1 Ts = Tb Bmin Tb (7.40)

En considrant que le dbit binaire est gal la capacit du canal (Db = C ), lecacit spectrale max scrit aussi : max = Eb C = log2 1 + max B N0 en bits/sec/Hz (7.41)

74

CHAPITRE 7. INTRODUCTION AU CODAGE DE CANAL Cette quation peut scrire encore : Eb 2max 1 = N0 max (7.42)

La valeur minimale de Eb /N0 pour une communication sans erreur sobtient lorsque lecacit spectrale maximale tend vers zro (la bande passante tend vers linni). On obtient : lim Eb = ln 2 N0 soit Eb N0 = 1.59 dB (7.43)

max 0

dB

La gure 7.11 prsente la courbe de lecacit spectrale maximale en fonction du rapport Eb /N0 . Comme exemple, nous avons galement donn les rapports Eb /N0 pour un taux derreur bit de 105 des systmes utilisant une modulation de phase 2 et 4 tats (MDP2 et MDP4) sans codage. Les performances de ces systmes de communication sont respectivement 9.5 dB et 7.75 dB de la limite de Shannon. Lajout dun code convolutif (133,171) de rendement R = 1/2 un systme utilisant une modulation MDP2 apporte un gain de 5.1 dB par rapport au systme sans codage. La concatnation de ce code convolutif avec un code Reed-Solomon (255,223) propose par Forney [10] permet de sapprocher 2.5 dB de la limite de Shannon. Le dernier point correspond aux performances obtenues en utilisant les codes convolutifs concatns en parallle ou Turbo codes introduits en 1993 par Berrou et al. [3] max
6

QPSK
2

BPSK
1

Turbo Codes

CC+RS

CC (133,171)

0 2

10

Eb /N0

(dB)

Fig. 7.11 Ecacit spectrale maximale dun canal bruit blanc additif gaussien.

7.3. CAPACIT DUN CANAL DE TRANSMISSION

75

co ur be de ca pa c it

borne 256QAM borne 128QAM borne 64QAM borne 32QAM borne 16QAM borne 8PSK borne QPSK borne BPSK

efficacit

( bits/sec/Hz )

Fig. 7.12 Ecacit spectrale en fonction du rapport Eb /N0

E /N

(dB)

Chapitre 8

Codes correcteurs derreurs en bloc


8.1 Introduction

Dans ce paragraphe nous tudierons les aspects principaux des codes correcteurs derreurs. Pour une tude plus exhaustive, nous renvoyons le lecteur louvrage de McWilliam et Sloane [21] et aux livres en franais de Cohen [7] et Battail [1]. Lobjectif du codage de canal est de protger les donnes issues du codage de source contre les erreurs de transmission. Une premire solution consiste utiliser un codage alatoire puisque nous avons vu prcdemment que ce codage permet datteindre la limite du thorme du codage de canal lorsque N +. Nous allons cependant voir que cette technique nest pas envisageable pratiquement. Soit un code C en bloc binaire alatoire (N, K) comprenant 2K mots de code. Chaque mot dinformation compos de K bits est associ un mot de code unique compos de N bits. Pour raliser un codeur alatoire, il faut tout dabord construire une liste de 2K mots de code. Chacun des mots de code est compos de N bits tirs alatoirement. Lopration de codage consiste associer chaque mot dinformation une adresse unique qui servira ensuite pour lire le mot de code correspondant. Le contenu de la liste ne prsentant aucune structure particulire, lopration de dcodage implique de faire la comparaison exhaustive du mot reu en sortie du canal avec lensemble des 2K mots de code avant de dterminer le mot de code le plus probable. La complexit du dcodeur croit exponentionellement avec K et rend cette technique presque toujours inutilisable en pratique. Limpossibilit pratique dutiliser le codage alatoire nous amne donc utiliser des codes possdant une structure algbrique comme par exemple la linarit et rendant ainsi les oprations de codage et de dcodage plus simples eectuer. Ces codes doivent de plus tre adapts aux types derreurs de transmission (alatoire, isol ou par paquets). Nous nous intresserons aux trois principales familles de codes suivantes : -les codes en bloc linaires Un code en bloc q-aire (N, K) est un ensemble comprenant q K mots de code. On associe chaque mot dinformation compos de K symboles q-aire un mot de code compos de N symboles q-aire. Chaque mot de code ne dpend que dun mot dinformation. La linarit signie que les N symboles du mot code sont obtenus par combinaison linaire des K symboles du mot dinformation. Les squences dinformation ou dentre sont dcoupes par mot de K symboles q-aire. -les codes convolutifs

76

8.2. LES CORPS FINIS

77

A la dirence des codes en bloc, pour un code convolutif de rendement k/n, le mot de code compos de n symboles dpend du mot dinformation de k symboles mais aussi dun nombre ni de mot dinformation prcdent. Les squences dentre et de sortie sont de longueur innie. -les codes concatns Ces codes sobtiennent par concatnation de codes en bloc linaires ou de codes convolutifs.

8.2
8.2.1

Les corps nis


Rappel sur les corps

Un corps F est un ensemble non vide muni de deux lois de composition internes, laddition et la multiplication et satisfaisant les axiomes suivants : 1- F est un groupe commutatif par rapport laddition (associativit, lment neutre not 0, symtrique, commutativit) 2- la multiplication est associative : si a, b, c F , alors a(bc) = (ab)c 3- la multiplication est commutative : si a, b F , alors ab = ba 4- la multiplication est distributive droite et gauche par rapport laddition : si a, b, c F , alors a(b + c) = ab + ac et (a + b)c = ac + bc 5- le corps contient un lment neutre not 1 pour la multiplication 6- tout lment de F non nul est inversible ; si a F (a = 0), a1 est son inverse avec aa1 = 1

8.2.2

Les corps de Galois

Un corps de Galois est un corps ni possdant q lments. Il est not GF (q) (Galois Field en anglais) ou Fq . Il est possible de construire un corps de Galois condition que q soit un nombre premier ou soit de la forme q = pm avec p nombre premier. Lorsque q est un nombre premier, laddition et la multiplication dans le corps ni GF (q) correspondent laddition et la multiplication modulo q. Tout corps de Galois doit contenir au moins les lments neutres 0 et 1. Ainsi, le corps de Galois le plus simple est le corps GF (2). exemple 1 : addition et multiplication dans GF (2) + 0 1 0 0 1 1 1 0 * 0 1 0 0 0 1 0 1

exemple 2 : addition et multiplication dans GF (5) + 0 1 2 3 4 0 0 1 2 3 4 1 1 2 3 4 0 2 2 3 4 0 1 3 3 4 0 1 2 4 4 0 1 2 3 * 0 1 2 3 4 0 0 0 0 0 0 1 0 1 2 3 4 2 0 2 4 1 3 3 0 3 1 4 2 4 0 4 3 2 1

Un corps de Galois GF (pm ) est isomorphe au corps des polynmes coecients dans GF (p) modulo un polynme irrductible dans GF (p) et de degr m. GF (p) est appel corps de base.

78

CHAPITRE 8. CODES CORRECTEURS DERREURS EN BLOC

8.3

Codes en bloc linaires binaires

Un code C en bloc linaire q-aire (N, K) est un ensemble comprenant q K mots de code. On associe chaque mot dinformation compos de K symboles q-aire un mot de code compos de N symboles q-aire. Un code en bloc est linaire si les N symboles du mot code sont obtenus par combinaison linaire des K symboles du mot dinformation. Cette proprit permet en particulier de dcrire lopration de codage sous une forme matricielle. Dans la suite, nous nous intresserons aux codes en bloc linaires binaires pour lesquels on a q = 2. Il faut prciser quun code linaire en bloc q-aire (N, K) avec q = 2p peut tre vu comme un code en bloc linaire binaire (pK, pN ). Il est pratique de reprsenter les mots dinformation et les mots de code par des vecteurs. Soit u = [u1 , u2 , . . . , uK ] un mot dinformation compos de K bits dinformation et c = [c1 , c2 , . . . , cN ] le mot de code associ compos de N bits. On a la relation matricielle suivante entre le mot dinformation u et le mot de code associ c : c = uG G est la matrice gnratrice du codeur de dimension K N . g1 g11 g12 . . . g1N g2 g21 g22 . . . g2N G= . = . . . .. . . . . . . . . . gK gK1 gK2 . . . gKN (8.1)

(8.2)

Chaque mot de code est une combinaison linaire des vecteurs gi de G. Ainsi donc, un code en bloc linaire peut tre dni comme un sous espace vectoriel K < N dimensions construit suivant (8.2). Il est toujours possible en combinant les lignes entre elles de mettre la matrice gnratrice G sous la forme systmatique suivante : 1 0 0 . . . 0 p11 p12 . . . p1N K 0 1 0 . . . 0 p21 p22 . . . p2N K (8.3) G = [IK P] = . . . . . . . .. . . . .. . . . . . . . . . . . . . 0 0 0 ... 1 pK1 pK2 . . . pKN K Exemple 1 : code de rptition C1 (3, 1) : G= On rpte 3 fois chaque bit dinformation : c1 = c2 = c3 = u 1 Exemple 2 : code de parit C2 (3, 2) : G= c3 est le bit de contrle de parit : c3 = u 1 + u 2 Chaque mot de code a un nombre pair de 1. Les mots de code du code C2 sont 000, 011, 110, 101. La gure 8.1 donne une reprsentation graphique de ce code dans un espace 3 dimensions. Exemple 3 : code C3 (7, 4) avec la matrice gnratrice suivante : 1 0 0 1 1 1 (8.5) 1 1 1 (8.4)

8.3. CODES EN BLOC LINAIRES BINAIRES


u2 c3
011

79

110 101

000

u1

Fig. 8.1 Code de parit C2 (3, 2).

Ici, la matrice gnratrice sous la forme systmatique sobtient simplement en ajoutant les lignes 3 et 4 la ligne 1, et la ligne 4 la ligne 2. Cette technique de combinaison de ligne permet toujours de convertir une matrice gnratrice quelconque en une matrice gnratrice systmatique. On peut vrier que la forme systmatique de cette matrice gnratrice est la suivante : 1 0 0 0 1 0 1 0 1 0 0 1 1 1 G= (8.7) 0 0 1 0 1 1 0 0 0 0 1 0 1 1 Les trois bits de parit sont obtenus comme suit : c5 = u 1 + u 2 + u 3 c6 = u 2 + u 3 + u 4 c7 = u 1 + u 2 + u 4

G=

1 0 0 0

0 1 0 0

1 0 1 0

1 1 0 1

0 1 1 0

0 0 1 1

0 0 0 1

(8.6)

8.3.1

Proprits et dnitions

rendement : le rendement R dun code en bloc (N, K) est gal : R= K N (8.8)

linarit : soit c1 et c2 deux mots de code du code C, et 1 et 2 deux lments du corps ni. La linarit implique que 1 c1 + 2 c2 est aussi un mot de code de C. Par consquence, le mot c0 = [00 . . . 0] est toujours un mot de code dun code linaire. On appellera ce mot de code le mot de code nul. distance de Hamming : soit c1 et c2 deux mots de code du code C de longueur N , la distance de Hamming dH (c1 , c2 ) est gale aux nombres de bits qui dirent. Exemple : c1 = [001100] et c2 = [001111], dH (c1 , c2 ) = 2 poids de Hamming : le poids de Hamming w(c) dun mot de code binaire c est gal au nombre de bits non nuls de ce mot de code. Exemple : c = [001100] , w(c) = 2

80

CHAPITRE 8. CODES CORRECTEURS DERREURS EN BLOC

distance minimale : La distance minimale dmin du code C est le nombre de bits qui dirent entre les deux mots de code les plus proches au sens de la distance de Hamming : dmin = min dH (ci , cj )
i,j,i=j

(8.9)

Lorsque le code est linaire, la distance minimale dmin est gale au poids de Hamming minimal du code C (en excluant le mot de code nul c0 ) : dmin = min w(ci )
i,i=0

(8.10)

Jusqu rcemment, la distance minimale tait lunique critre pour valuer les performances dun code correcteur derreurs. Ce critre a t critiqu suite lavnement de familles de codes trs performants imitant le codage alatoire [3] [1]. Exemple : dmin (code C1 )=3 ; dmin (code C2 )=2 ; dmin (code C3 )=3.

8.3.2

Fonctions dnumration de poids

Les fonctions dnumration de poids permettent dtudier les performances des codes correcteurs derreurs en bloc linaires. Dnition 1 : la fonction dnumration de poids WEF (weight enumerator function en anglais) dun codeur binaire en bloc systmatique (N, K) est dnie comme suit :
N

A(D) =
d=0

Ad Dd

(8.11)

Ad est le nombre de mots de code de longueur N de poids d. Dnition 2 : la fonction dnumration de poids IRWEF (input redundancy weight enumerator function en anglais) dun codeur binaire en bloc systmatique (N, K) est dnie comme suit : A(W, Z) =
K N K

Aw,z W w Z z

(8.12)

w=0 z=0

Aw,z est le nombre de mots de code de longueur N dont le poids de la squence des bits dinformation est gal w et dont le poids de la squence des bits de redondance est gal z. La fonction IRWEF peut aussi scrire :
K

A(W, Z) =
w=0

A(w, Z)W w
N K z=0

(8.13)

avec A(w, Z) =

Aw,z Z z

(8.14)

Exemple : code de parit (3,2) Les fonctions dnumration WEF et IRWEF pour le code de parit (3,2) sont donc les suivantes : A(D) = 1 + 3D2 A(W, Z) = 1 + 2W Z + W 2

8.4. DCODAGE ENTRES DURES DES CODES EN BLOC LINAIRES BINAIRES

81

Tab. 8.1 Enumration des poids des mots dinformation et des mots de code pour le code de parit (3,2) u 00 01 10 11 x 00 01 10 11 w 0 1 1 2 z 0 1 1 0 d 0 2 2 2

0 1 1 0

8.3.3

Matrice de contrle

Associ chaque code C linaire en bloc binaire (N, K) il existe un code linaire en bloc binaire dual (N, N K). Soit H la matrice gnratrice de ce code dual. Chacun des mots de code c du code C est orthogonal tous les mots de code du code dual : cHT = 0 Puisque cette relation est valide pour tous les mots de code du code C, on a la relation entre la matrice gnratrice G du code C et H : GHT = 0 Si la matrice gnratrice G est systmatique de la forme (8.3), H est de la forme suivante : p11 p12 . . . p1N K p21 p22 . . . p2N K ... ... .. . pK1 pK2 . . . 1 0 0 1 . . . . . . 0 0 0 ... 0 ... . .. . . . 0 ... 0 0 . . . 1

H = [PT

La matrice H est appele matrice de contrle ou matrice de parit du code C exemple 3 (suite) : la matrice de contrle 1 1 H= 0 1 1 1 du code C3 (7, 4) est la suivante : 1 0 1 0 0 1 1 0 1 0 0 1 0 0 1

IN K ] =

(8.15)

. . . pKN K

(8.16)

Chacune des 3 lignes de la matrice de parit correspond une quation de parit (addition modulo 2) liant dirents bits de la squence de sortie c = (c1 , c2 , c3 , c4 , c5 , c6 , c7 ) = (u1 , u2 , u3 , u4 , c5 , c6 , c7 ). u 1 + u 2 + u 3 + c5 = 0 nud T1 (8.17) u 2 + u 3 + u 4 + c6 = 0 nud T2 u 1 + u 2 + u 4 + c7 = 0 nud T3 On retrouve les quations de parit calcules dans lexemple 3.

8.4

Dcodage entres dures des codes en bloc linaires binaires

Le dcodage entres dures signie que les chantillons en entre du dcodeur sont binaires. Ceci correspond au cas dun canal sorties binaires ou lapplication dun seuillage des chantillons en sortie du canal de transmission.

82

CHAPITRE 8. CODES CORRECTEURS DERREURS EN BLOC

Le dcodage entres pondres signie que les chantillons en entre du dcodeur sont damplitude continus ou quantis sur quelques bits (au moins 3 bits en gnral) Dans ce chapitre, nous nous intresserons uniquement au dcodage entres dures. Le mot reu y est la somme modulo 2 du mot de code mis c et dun vecteur derreurs e y=c+e (8.18)

Une premire approche pour le dcodage consiste comparer le mot reu y avec lensemble des 2K mots de code du code C. Pour minimiser la probabilit derreurs mots, le dcodeur choisit alors comme mot de code estim c le mot de code le plus prs du mot reu y au sens de la distance de Hamming. Cette approche est cependant trs complexe mettre en uvre et prsente un intert pratique trs limit. En multipliant le mot reu y par la matrice de parit transpose HT , on obtient le syndrome derreurs s de dimension 1 (N K) : s = yHT = cHT + eHT = eHT car cHT = 0 (8.19)

En labsence derreurs de transmission, le syndrome derreurs s est le vecteur nul. Nous allons prsenter deux autres mthodes de dcodage : la mthode du tableau standard et le dcodage par syndrome.

8.4.1

Mthode du tableau standard

Puisque le syndrome derreurs peut prendre 2N K valeurs direntes, une valeur de syndrome derreurs s correspond 2N /2N K = 2K vecteurs derreurs possibles. La mthode du tableau standard consiste partitionner lespace vectoriel N dimension en 2K classes disjointes. Chacune des classes correspond un mot de code. Le tableau standard 8.5 est construit de la manire suivante : - la premire ligne contient les 2K mots de code en commenant par le mot de code nul. - sous le mot de code nul, on liste lensemble des vecteurs derreurs commencer par les motifs derreurs de poids 1 puis le cas chant les motifs derreurs de poids 2 (si N 2N K ), jusqu avoir rempli les 2N K cases de la premire colonne. - sous chacun des mots de code de la premire ligne, on fait gurer la somme du mot de code et du vecteur derreurs correspondant. c0 c 0 + e1 c 0 + e2 . . . c0 + e2N K 1 c1 c1 + e1 c1 + e2 . . . c1 + e2N K 1 c2 c2 + e1 c2 + e2 . . . c2 + e2N K 1 ... ... ... .. . ... c2K 1 c2K 1 + e1 c2K 1 + e2 . . . c2K 1 + e2N K 1

Tab. 8.2 Tableau standard Chaque range fournit un sous ensemble de mots ou classe (coset en anglais) correspondant un syndrome et un reprsentant commun appel chef de classe(coset leader en anglais). Le chef de classe est le vecteur derreurs le plus vraisemblable parmi les mots de ce sous-ensemble. Le dcodage consiste donc rechercher dans le tableau la colonne dans laquelle se trouve le mot reu. Le rsultat du dcodage sera le mot de code situ en premire ligne de cette colonne.

8.4. DCODAGE ENTRES DURES DES CODES EN BLOC LINAIRES BINAIRES Cette mthode reste encore trs complexe et a surtout un intert pdagogique !

83

8.4.2

Dcodage par syndrome

Nous avons vu que le syndrome derreurs peut prendre 2N K valeurs direntes. Le dcodage par syndrome consiste tout dabord calculer le syndrome derreurs correspondant au mot reu. Ensuite, on associe au syndrome le vecteur derreurs estim correspondant e. Il sut donc de stocker dans une table de correspondance les syndromes et vecteurs derreurs. e e0 e1 e2 . . . e2N K 1 s s0 s1 s2 . . . s2N K 1

Tab. 8.3 Table de syndrome Le mot de code estim c est alors : c=y+e (8.20)

Cette mthode bien que moins complexe que la mthode du tableau standard nest cependant applicable que pour des codes relativement simples (codes sachant corriger 1 ou 2 erreurs au maximum). Il faut en eet eectuer le produit matriciel yHT et mmoriser 2N K vecteurs derreurs. Par exemple la table pour le dcodage dun code de Golay (23,12) ncessite une mmoire de 2048 mots de 23 bits. exemple (suite) : considrons le code C4 (5,2) dni par la matrice gnratrice suivante : G= 1 0 : 0 1 1 1 0 0 1 0 0 0 0 1 000 001 010 100 011 101 110 111 (8.22) 0 1 1 0 0 1 1 1 (8.21)

et la matrice de parit associe H suivante 1 H= 0 1 Le tableau standard est donn ci-dessous : 00000 00001 00010 00100 01000 10000 11000 10010 01011 01010 01001 01111 00011 11011 10011 11001

10101 10100 10111 10001 11101 00101 01101 00111

11110 11111 11100 11010 10110 01110 00110 01100

Tab. 8.4 Tableau standard pour le code (5,2) Il faut souligner quil existe plusieurs choix pour les deux dernires lignes du tableau.

84

CHAPITRE 8. CODES CORRECTEURS DERREURS EN BLOC

Considrons le mot dinformation u = [11]. Le mot de code associ est c = [11110]. On peut vrier que le syndrome associ ce mot de code est nul : s = [000] Supposons quune erreur survienne dans la transmission sur le 4-ime bit du mot mis : e = [00010] Le mot reu est alors y = [11100] En utilisant le tableau on trouve directement c = [11110]. Le dcodeur a pu corriger cette erreur.

Utilisons maintenant la mthode du syndrome. Pour construire la table de syndrome, nous calculons le syndrome correspondant chaque vecteur derreur. La table de dcodage par syndrome est la suivante : e 00000 00001 00010 00100 01000 10000 11000 10010 s 000 001 010 100 011 101 110 111

Tab. 8.5 Table de syndrome pour le code (5,2) Le calcul du syndrome associ au mot reu y donne s = yHT = [010]. En utilisant cette table de dcodage par syndrome on trouve e = [00010]. En ajoutant le vecteur derreurs estim e au mot reu r on retrouve bien = [11110]. c On peut voir que ce code permet de corriger tous les motifs derreurs simples.

8.4.3

Capacit de correction derreurs dun code linaire binaire en bloc

Le nombre derreurs e quest capable de corriger un code correcteur derreurs dpend de la distance minimale du code. Les 2K mots de code du code peuvent tre vus comme les centres de boules de Hamming de rayon e. Pour garantir que les 2K sphres ne se chevauchent pas, on doit garantir : e= dmin 1 2 (8.23)

La dmonstration est laisse au lecteur. Si le mot reu est lintrieur de la boule de Hamming du mot de code mis alors le dcodeur pourra retrouver le mot de code mis. Ceci nest possible que si la distance entre le mot de code mis et le mot reu est infrieure ou gale e. En conclusion, un code en bloc linaire binaire (N, K) de distance minimale dmin est capable de corriger e erreurs suivant la relation (8.23). Par ailleurs ce mme code peut aussi tre utilis pour dtecter jusqu dmin 1 erreurs. exemple : les codes C1 (3,1) et C3 (7,4) dont la distance minimale est gale 3 permettent soit de corriger une erreur soit den dtecter deux.

8.5. CODES EN BLOC PRINCIPAUX ET REPRSENTATION GRAPHIQUE

85

e dmin

Fig. 8.2 boules de Hamming marge infrieure de Hamming : on a la relation suivante derreurs que peut corriger un code (N, K) :
e 1

entre K, N et e le nombre

2N 2K ou en divisant les deux termes par 2K


e

i CN i=0

(8.24)

2N K :

i CN i=0

(8.25)

dmonstration : le nombre de mots contenus dans une boule de Hamming de rayon e est gal
e 0 1 2 e CN + CN + CN + + CN = i CN i=0

(8.26)

Par ailleurs, le nombre total des mots contenus dans les 2K boules de Hamming ne peut excder 2N pour viter le chevauchement de ces boules. En consquence un code corrigeant e erreurs doit satisfaire lingalit (8.24). codes parfaits : les codes parfaits possdent la proprit que tous les 2N mots possibles sont inclus dans les 2K boules de Hamming de rayon e. Lingalit (8.24) se transforme en galit.

8.5
8.5.1

Codes en bloc principaux et reprsentation graphique


Codes de Hamming

Les codes de Hamming sont des codes en bloc linaires parfaits binaires (N, K) avec N = 2J 1 et K = 2J 1 J. Un code de Hamming (N, K) peut tre dcrit simplement partir de sa matrice de contrle H de dimension J N . En eet, les colonnes de H sont les N vecteurs binaires non nuls avec J lments. Par exemple pour J = 3, le code de Hamming est un code (7,4). La matrice de parit est la suivante : 1 1 1 0 1 0 0 H = 0 1 1 1 0 1 0 (8.27) 1 1 0 1 0 0 1

La distance de Hamming de ces codes est gale 3 et ils peuvent donc corriger une erreur. Au dcodage, une valeur non nulle du syndrome donne directement la position de lerreur. En eet, le tableau standard contient 8 lignes (une ligne pour le cas sans erreur plus 7 lignes correspondant chacune une position de lerreur). Nous verrons que les codes de Hamming appartiennent la classe des codes cycliques et peuvent aussi tre construits partir dun polynme gnrateur.
1Cp n

n! p!(np)!

est le nombre de combinaisons sans rptition de n lments pris p p

86

CHAPITRE 8. CODES CORRECTEURS DERREURS EN BLOC

8.5.2

Code de Golay

Le code de Golay est un code linaire binaire (23,12) dont la distance minimale est gale 7. Ce code est le seul code parfait binaire avec les codes de Hamming. En eet, pour N = 23, K = 12 et e = 3 on a lgalit : 1 2 3 1 + C23 + C23 + C23 = 211 Les codes de Golay sont aussi des codes cycliques (voir chapitre suivant). La matrice gnratrice systmatique du code de Golay (23,12) est la suivante : 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 0 0 1 1 1 1 0 1 1 0 1 0 0 0 0 1 1 1 1 0 1 1 0 1 0 0 0 0 1 1 1 1 0 1 1 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 0 1 0 0 1 1 1 1 0 1 1 1 0 0 0 1 1 0 0 1 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 1 1 1 1 1 0 0 1 0 0 1 0 0 1 1 1 1 1

G=

Sa fonction dnumration WEF est la suivante : A(D) = 1 + 253D7 + 506D8 + 1288D11 + 1288D12 + 506D15 + 253D16 + D23

(8.28)

(8.29)

A partir du code de Golay (23,12), il est possible de construire le code de Golay tendu (24,12) en ajoutant un bit de parit. La distance minimale de ce code est gale 8. La matrice gnratrice non systmatique du code de Golay tendue (24,12) est la suivante : 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 1 1 1 0 1 0 0 0 1 1 1 0 1 0 1 1 0 1 0 0 0 1 1 1 1 1 0 1 1 0 1 0 0 0 1 1 1 1 1 0 1 1 0 1 0 0 0 1 1 1 1 1 0 1 1 0 1 0 0 0 1 0 1 1 1 0 1 1 0 1 0 0 1 0 0 1 1 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 1 0 1 1 1 0 0 0 1 1 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 1 1

G=

(8.30) A(D) = 1 + 759D8 + 2576D12 + 759D16 + D24

Sa fonction dnumration WEF est la suivante : (8.31)

8.5.3

Reprsentations graphiques des codes en bloc linaires binaires

Dune manire gnrale, tout code linaire binaire peut tre reprsent sous la forme dun graphe de Tanner. Un graphe de Tanner est un graphe biparti comprenant 2 types de nuds : des nuds de variable binaire reprsents par un cercle et des nuds de contrle de parit reprsents

8.5. CODES EN BLOC PRINCIPAUX ET REPRSENTATION GRAPHIQUE

87

par un carr avec un "+" lintrieur. Chaque branche signie une dpendance entre le nud de variable et le nud de contrle quelle relie. Le graphe de Tanner se dduit directement de la matrice de parit H : chaque nud de contrle de parit i du graphe de Tanner correspond la i-ime ligne de la matrice de parit H et chaque nud de variable j correspond la j-ime colonne de H. En eet, chaque ligne de H dnit une quation de parit entre plusieurs variables. Une branche reliera le nud de contrle de parit i avec le nud de variable j si et seulement si hij = 1. Comme il y a plusieurs matrices de parit H pour un mme code, il y aura autant de graphes de Tanner associs. Exemple : considrons le code de Hamming (7, 4) 1 + D2 + D3 Comme nous lavons vu prcdemment, forme systmatique est la suivante : 1 0 0 0 0 1 0 0 G= 0 0 1 0 0 0 0 1 et la matrice de parit associe H 1 H= 0 1 1 1 1 1 1 0 dni par le polynme gnrateur g(D) = la matrice gnratrice de ce code sous sa 1 1 1 0 0 1 1 1 1 1 0 1 0 0 1

(8.32)

0 1 1 0 1 0

0 1 0

(8.33)

Chacune des 3 lignes de la matrice de parit correspond une quation de parit (addition modulo 2) liant dirents bits de la squence de sortie c = (c1 , c2 , c3 , c4 , c5 , c6 , c7 ) = (u1 , u2 , u3 , u4 , c5 , c6 , c7 ). u 1 + u 2 + u 3 + c5 = 0 nud T1 (8.34) u + u 3 + u 4 + c6 = 0 nud T2 2 u 1 + u 2 + u 4 + c7 = 0 nud T3 Le graphe de Tanner associ ces quations de parit est donn sur la gure 8.3. c5 T1 u3 u2 T2 T3 c7 u1

c6

u4

Fig. 8.3 Graphe de Tanner du code de Hamming (7,4) Ces reprsentations graphiques savrent tre des outils trs pratiques pour tudier les codes correcteurs derreurs et analyser les algorithmes de dcodage. Pour terminer ce chapitre, nous allons montrer comment partir de la matrice gnratrice dun code linaire en bloc il est possible de reprsenter ce code par un diagramme en treillis. Pour ce

88

CHAPITRE 8. CODES CORRECTEURS DERREURS EN BLOC 0000000 0100111 1000101 1100010 0001011 0101100 1001110 1101001 0010110 0110001 1010011 1110100 0011101 0111010 1011000 1111111

Tab. 8.6 Liste des mots de code du code de Hamming (7,4) faire, il faut tout dabord mettre la matrice gnratrice sous une forme adapte la reprsentation en treillis. Soit lenveloppe dun mot de code la squence de bits 1 qui commence au premier bit non nul du mot de code et se termine au dernier bit non nul du mot de code. Par exemple lenveloppe associe au mot de code 1101000 est 1111000 . Une matrice gnratrice sera dite oriente treillis si elle permet de construire un diagramme en treillis avec le minimum de branche. exemple : considrons le code de Hamming (7,4) dni par le polynme gnrateur g(D) = 1 + D + D3 1 1 0 1 0 0 0 0 1 1 0 1 0 0 G= (8.35) 0 0 1 1 0 1 0 0 0 0 1 1 0 1 Sa matrice gnratrice sous la forme systmatique 1 0 0 0 0 1 0 0 Gs = 0 0 1 0 0 0 0 1 est la suivante 1 1 0 0 1 1 1 1 1 1 0 1

(8.36)

Pour dterminer le nombre de branches du treillis, on commence par compter le nombre de 1 par colonne de la matrice enveloppe. Soit ni le nombre de 1 de la i-me colonne ; le nombre total de branches est gal i 2ni . Pour cet exemple, le nombre de branches du treillis est gal 21 +22 +23 +24 +24 +24 +23 = 70. La matrice enveloppe associe la matrice 1 1 0 1 E= 0 0 0 0 gnratrice G est la suivante 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1

La matrice enveloppe associe la matrice gnratrice 1 1 1 1 1 0 1 1 1 1 ES = 0 0 1 1 1 0 0 0 1 1

systmatique Gs est 1 0 1 1 1 1 1 1

(8.37)

(8.38)

Le nombre de branche du treillis correspondant est gal 21 + 22 + 23 + 24 + 23 + 22 + 21 = 44. Comme la complexit du dcodage partir du trellis du code est proportionnelle au nombre de branche de celui-ci, il est prfrable dutiliser la seconde matrice gnratrice. Pour construire le treillis de ce code, il faut considrer chaque ligne de la matrice gnratrice comme un sous-code (N,1) et ne comprenant donc que 2 mots de code.

8.6. BORNES SUR LA DISTANCE MINIMALE DES CODES LINAIRES EN BLOC

89

Construisons le treillis partir de la matrice gnratrice G. Les direntes phases de cette construction sont prsentes sur la gure 8.4. Pour la premire ligne, le sous-code comprend les mots de code 0000000 et 11010000. Le treillis de ce sous-code comprend donc 2 chemins. On construit alors le treillis du sous-code correspondant aux deux premires lignes de matrice gnratrice. Ce treillis est simplement le produit du treillis des sous-codes relatifs la premire et seconde ligne du treillis. Cette procdure est rpte jusqu construction complte du treillis. On peut vrier que le treillis ainsi obtenu comporte bien 44 branches. Nous verrons dans le paragraphe consacr au dcodage des codes convolutifs quil existe des algorithmes de dcodage utilisant la reprsentation en treillis. Ces algorithmes peuvent donc aussi tre utiliss pour le dcodage des codes en bloc linaires.

Fig. 8.4 Diagramme en treillis du code de Hamming (7,4)

8.6

Bornes sur la distance minimale des codes linaires en bloc

Nous allons donner dans ce paragraphe les bornes infrieures et suprieures principales sur la distance minimale des codes linaires en bloc. Ces bornes sont trs utiles pour comparer les codes correcteurs derreurs entre eux. Une premire borne suprieure est la borne de Singleton : dmin N K + 1 (8.39)

Les codes ralisant lgalit dans (8.39) sont appels codes sparables distance maximale ou code MDS.

90

CHAPITRE 8. CODES CORRECTEURS DERREURS EN BLOC En divisant les deux termes par N , on obtient : dmin 1 1R+ N N avec R = K N (8.40)

Une seconde borne suprieure est la borne de Plotkin qui sobtient lorsque N + : dmin 1 (1 R) (8.41) N 2 Une borne suprieure plus ne est la borne de McEliece-Rodemich-Rumsey-Welch [19] : R 1 H2 1 2 dmin dmin 1 N N N (8.42)

avec H2 () = log2 (1 ) log2 (1 ) Finalement nous prsentons la borne de Gilbert-Varshamov qui est la borne infrieure la plus utilise : R 1 H2 dmin N N (8.43)

Sur la gure 8.6 nous prsentons les courbes R = f (dmin /N ) relatives aux bornes de GilbertVarshamov et de McEliece-Rodemich-Rumsey-Welch. Rappelons que les bornes de Plotkin, Gilbert-Varshamov et McEliece-Rodemich-Rumsey-Welch sont valables lorsque N + .
1

R
0.9

0.8

0.7

0.6

0.5 (2) 0.4 (1) 0.3

0.2

0.1

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

0.5

dmin/N

Fig. 8.5 bornes sur la distance minimale des codes linaires en bloc (1) borne infrieure de Gilbert-Varshamov (2) borne suprieure de McEliece

8.7

Dcodage optimal

Lobjectif du dcodage optimal est de dterminer la squence qui a t le plus vraisemblable ment mise x.

8.8. PERFORMANCES DES CODES LINAIRES EN BLOC AVEC DCODAGE ENTRES DURES91 Soit la squence x = (x0 , x1 , x2 , . . . , xN 1 ) de longueur N envoye dans un canal discret stationnaire sans mmoire de densit de probabilit conditionnelle p(y/x) et y = (y0 , y1 , y2 , . . . , yN 1 ) la squence reue. Dune manire gnrale, un dcodeur maximum a posteriori (MAP) cherche parmi toutes les squences possibles x, la squence estime x pour laquelle la probabilit conditionnelle P r(x|y) est la plus grande. x = arg max P r(x|y)
x

(8.44)

On peut crire : P r(x|y) = P r(y|x)P r(x) P r(y) (8.45)

Il est raisonnable de considrer que tous les mots de code sont a priori quiprobables. Avec cette hypothse et puisque de plus le dnominateur P r(y) est commun toutes les squences, la squence estime x est la squence pour laquelle la probabilit conditionnelle P r(y|x) est la plus grande. x = arg max P r(y|x)
x

(8.46)

Un dcodeur utilisant ce critre est appel un dcodeur maximum de vraisemblance (maximum likelihood en anglais ou ML). Lorsque les mots de code sont quiprobables, les dcodeurs MAP et ML sont identiques. En considrant que les signaux mis sont perturbs indpendamment les uns des autres, la probabilit conditionnelle est gale au produit des probabilits conditionnelles P r(yi |xi ) : P r(y|x) =
N 1 i=0

P r(yi |xi )

(8.47)

La recherche de la squence la plus probable implique donc que le dcodeur ML calcule les distances entre la squence reue et toutes les squences possibles. Il faut ici distinguer deux cas : - si lentre du dcodeur est binaire on parlera de dcodage entres dures (hard decoding en anglais). Ce cas correspond lutilisation dun canal sorties binaires (comme le canal binaire symtrique par exemple) ou dun canal sorties continues mais ayant subi un seuillage avant le dcodeur. Le dcodeur entres dures calcule des distances de Hamming - si lentre du dcodeur peut prendre une valeur continue, on dira que le dcodage est entres souples ou pondres (soft decoding en anglais). Ce cas correspond par exemple lutilisation dun canal sorties continues comme le canal bruit blanc additif gaussien. En pratique, lentre est quantie sur plusieurs bits (3 ou 4 bits susent gnralement pour ne pas dgrader les performances du dcodeur. Contrairement au dcodeur entres dures, le dcodeur entres souples calcule des distances euclidiennes.

8.8

Performances des codes linaires en bloc avec dcodage entres dures

Pour le canal binaire symtrique de probabilit dinversion p, la probabilit P r(y|x) est la suivante : dH (y,x) p P r(y|x) = pdH (y,x) (1 p)N dH (y,x) = (1 p)N (8.48) 1p

92

CHAPITRE 8. CODES CORRECTEURS DERREURS EN BLOC

o dH (y, x) est la distance de Hamming entre la squence reue y et la squence x. Comme p est p compris entre 0 et 0.5, on a 0 < 1p < 1. Ainsi, maximiser P r(y|x) revient minimiser la distance de Hamming entre y et x. Pour un canal de transmission binaire symtrique, la probabilit quun mot reu de longueur N bits contienne i erreurs est la suivante :
i PN i = CN pi (1 p)N i

(8.49)

o p est la probabilit derreurs du canal binaire symtrique. Ainsi donc, pour un code en bloc linaire sachant corriger jusqu e erreurs dans le mot reu de longueur N on peut donner une borne suprieure sur la probabilit derreurs mots aprs dcodage T EM en sommant les probabilits PN i correspondant aux cas o le nombre derreurs en sortie du canal est suprieur la capacit de correction du code. On a :
N N

T EM

PN i =
i=e+1 i=e+1

i CN pi (1 p)N i

(8.50)

Lingalit se transforme en une galit uniquement lorsquun code parfait est utilis.

8.9

Bornes par runion

La borne par runion permet de majorer une probabilit derreurs. Considrons un dcodeur maximum de vraisemblance qui dcide en faveur du mot de code le plus probable cest--dire le plus proche au sens de la distance euclidienne : x = arg max P r(y|x)
x

(8.51)

La probabilit de dcoder un mauvais mot de code sachant un mot de code xi transmis est borne suprieurement comme suit : P r(erreur mot|xi ) = P r(y i |xi )
j:j=i

P r(y j |xi )

(8.52)

avec i zone de dcision associe au mot de code xi . la probabilit P r(y j |xi ) que y soit plus prs de xj que de xi est appele la probabilit derreurs par paire. On la note P r(xi xj ). Sachant que xi a t transmis, la probabilit que y ne soit pas dans la zone de dcision i est infrieure ou gale la somme des probabilits derreurs par paire P r(xi xj ) pour tout j = i. Finalement le taux derreurs mot (TEM) est gal : T EM =
i

P r(xi xj ) = P r(y j |xi )

def

(8.53)

P r(xi , erreur mot) P r(xi )P r(erreur mot|xi )


i

(8.54)

Dune manire gnrale, la borne par runion est un outil trs utile pour valuer les performances des systmes de transmission avec codage mme si elle nest prcise que pour les rapports signal bruit levs.

8.10. PERFORMANCES DES CODES LINAIRES EN BLOC AVEC DCODAGE ENTRES SOUPLES93

x3 3 1

x1

x4

x2

Fig. 8.6 Zones de dcision associes aux mots de code. Exemple : soit un ensemble de 4 mots de codes x1 , x2 , x3 et x4 et leurs zones de dcision associes 1 , 2 , 3 et 4 prsent sur la gure 8.6 . On peut par exemple borner suprieurement la probabilit derreur P r(erreur mot|x1 ) :

P r(erreur mot|x1 ) = P r(y 1 |x1 ) = P r(y (2 3 4 )|x1 )

= P r(x1 x2 ) + P r(x1 x3 ) + P r(x1 x4 ) Lexemple est illustr par la gure 8.7 .

P r(y 12 |x1 ) + P r(y 13 |x1 ) + P r(y 14 |x1 )

8.10

Performances des codes linaires en bloc avec dcodage entres souples

Considrons nouveau une modulation bipodale o les chantillons cods mis peuvent prendre les amplitudes + REb ou REb (avec Eb nergie de lchantillon et R = K est le rendement N du code.) sur un canal BBAG. A la sortie du ltre adapt, on a : yi = xi + ni On rappelle que pour un canal BBAG la probabilit P r(xi xj ) est donne par : P r(xi xj ) = 1 d(xi , xj ) erfc 2 2 N0 (8.55)

o d(xi , xj ) est la distance euclidienne entre les deux mots xi et xj . Soit ci et cj les deux mots de code associs respectivement aux mots xi et xj . Si la distance de Hamming entre ci et cj est gale dH (ci ,cj ) = d, la distance euclidienne entre xi et xj est gale

94
1

CHAPITRE 8. CODES CORRECTEURS DERREURS EN BLOC

x3 1

x1

x4

x2

13

x1
21

x3
31

x1
41

x1

12

x2

14

Fig. 8.7 Exemple.

d(xi , xj ) =
k=1

(2 4dREb dREb

REb )2

= =2 On a alors : P r(xi xj ) = Exemple1 : code de rptition (3,1) TBD Exemple2 : code de parit (3,2) TBD

(8.56)

1 erfc 2

dR

Eb N0

(8.57)

Nous allons maintenant utiliser la borne par runion pour exprimer une borne suprieure sur le taux derreur mot (TEM) et le taux derreur bit (TEB) du dcodeur maximum de vraisemblance sur un canal bruit blanc additif (BBAG) associ un code en bloc linaire (N, K). La borne par runion ramne la comparaison dun ensemble de mots de code un certain nombre de comparaison de mots de code deux deux. En supposant que tous les mots de code sont quiprobables, on obtient la borne suprieure suivante sur le taux derreur mot : T EM 1 2
N

Ad erfc
d=dmin

dR

Eb N0

(8.58)

8.10. PERFORMANCES DES CODES LINAIRES EN BLOC AVEC DCODAGE ENTRES SOUPLES95 o Ad est le nombre de mots de code de poids d. dmin est la distance de Hamming libre ou minimale du code en bloc. Par ailleurs il est possible dexprimer une premire borne suprieure de type runion-Bhattacharyya [30] sur le taux derreur bit : W AC (W, Z) K W
N

T EB =

(8.59)
W =Z=eREb /N0

Bd H d
d=dmin H=e
REb /N0

(8.60)

avec Bd =
d:d=w+z

w Aw,z K

(8.61)

La premire ligne permet de distinguer la contribution des mots dinformation de poids w alors que dans la seconde ligne nous avons regroup la contribution des mots de code de poids d en introduisant le coecient Bd . Une borne plus ne sur le taux derreur bit [30] peut tre obtenue partir de (8.10) en utilisant lingalit suivante : erfc( x + y) erfc( x)ey On a alors : erfc dR Eb N0 erfc dmin R Eb (ddmin )REb N0 e N0

Finalement, cette borne suprieure sur le taux derreur bit sexprime comme suit :
E Eb dmin R Nb AC (W, Z) 0 e N0 W

T EB =

W erfc 2K 1 erfc 2

dmin R dmin R

W =Z=e

Eb N0

E Eb dmin R Nb 0 e N0

Bd H d
d=dmin H=e
R

Eb N0

(8.62)

En ne gardant que les premiers termes on utilisera lapproximation suivante : T EB 1 2


N

Bd erfc
d=dmin

dR

Eb N0

(8.63)

Traditionnellement on considre quun bon code correcteur derreur est un code qui maximise la distance minimale dmin . Cette distance conditionne les performances fort rapport Eb /N0 . Une autre approche permettant aussi de diminuer le TEB consiste rduire Bd . exemple (suite) : code de parit (3,2) A partir de la fonction dnumration de poids A(W, Z) on obtient B2 = 1 2 2+ 1=2 2 2 3 erfc 2 4 Eb 3 N0

T EM

(8.64)

96 et

CHAPITRE 8. CODES CORRECTEURS DERREURS EN BLOC

T EB erfc

4 Eb 3 N0

(8.65)

Remarque : certains auteurs distinguent lnergie par bit transmis Eb et lnergie par bit utile ou bit dinformation Ebut , dans ce document nous nutiliserons pas la notation Ebut et donc Eb sera toujours lnergie par bit utile ou dinformation.

8.11

Gain de codage

Nous avons vu que pour un canal BBAG, il est thoriquement possible de raliser une transmission sans erreur un rapport Eb /N0 = 0dB en utilisant un code de rendement 1/2. La dirence entre une chane de transmission utilisant une modulation bipodale sans codage et cette limite de capacit thorique est de 9.6 dB ( un taux derreur bit de 105 ). Lajout dun code correcteur derreur doit permettre de rapprocher le point de fonctionnement de la chane de transmission de cette limite thorique. Dnition : pour un taux derreur x (mot, bit, symbole), on dnit le gain de codage dun code correcteur derreur comme tant la dirence de rapport Eb /N0 entre la chane sans codage et la chane utilisant ce code 2 . Sur la gure 8.8 nous avons prsent les courbes de performances thoriques T EM = f (Eb /N0 ) (obtenue en utilisant lquation (8.47)) de trois chanes de transmission utilisant un code correcteur derreur et un dcodeur entres pondres ainsi que la courbe obtenue sans codage (modulation bipodale). Pour un taux derreur mot de 105 , les gains de codage du code de parit (3,2), du code de Hamming (7,4) et du code de Golay (23,12) sont respectivement de 1.3dB, 2.3dB et 3.8dB. Dans le paragraphe prcdent, nous avons dterminer une borne suprieure du taux derreurs mots : T EM 1 2
N

Ad erfc
d=dmin

dR

Eb N0

(8.66)

Une approximation raisonnable pour les taux derreurs levs consiste ne prendre en compte que la contribution des mots de code dont le poids est gal la distance minimale. On a alors lapproximation suivante : T EM 1 Admin erfc 2 dminR Eb N0 (8.67)

Si on ne tient pas compte du terme Admin , le gain de codage "asymptopique" scrit simplement : GCasympt 10 log10 (dmin R) en dB (8.68)

En prenant en compte le nombre de mots de codes la distance minimale Admin , on peut approximer le gain de codage rel comme suit : GCT EM 10 log10 (dmin R) 0.2 log2 (Admin ) en dB (8.69)

2 Certains auteurs distinguent lnergie par bit transmis E et lnergie par bit utile ou bit dinformation E b but , dans ce document nous nutiliserons pas la notation Ebut et donc Eb sera toujours lnergie par bit utile ou dinformation.

8.12. COMPARAISON DES PERFORMANCES DES DCODEURS ENTRES DURES ET PONDRES97


10
1

10

sans codage code de parit (3,2) code de Hamming (7,4) code de Golay (23,12)

10

TEM

10

10

Gain de codage = 3,8 dB

10

10

E /N (dB)
b 0

10

11

Fig. 8.8 Gain de codage de dirents codes Le facteur 0.2 log2 (Admin ) prend en compte limpact du nombre de mots de codes la distance minimale sur le gain de codage. Le facteur 0.2 correspond la pente de la fonction erf c(.) dans la rgion 105 105 . Cette formule nest quune approximation. Par exemple, pour le code de Golay (23,12), on a R = gain de codage approximativement gal 4 dB.
12 23 ,

dmin = 7 et Admin = 253 soit un

Au lieu du TEM, il est galement possible dutiliser le taux derreurs mots par bit dinformation (TEMB) pour dnir le gain de codage : T EM B = T EM 1 Admin erfc K 2 K dminR Eb N0 (8.70)

Dans ce cas on a la relation suivante : Admin ) en dB K Pour lexemple considr ci-dessus, le gain de codage serait alors gal 4,75 dB. GCT EMB 10 log10 (dmin R) 0.2 log2 ( (8.71)

Sur la table suivante nous prsentons les gains de codage pour dirents codes correcteurs derreurs en bloc binaires : Une autre approche consiste utiliser le TEB (mais qui implique alors de calculer Bdmin ).

8.12

Comparaison des performances des dcodeurs entres dures et pondres

Sur la gure 8.9 nous prsentons les courbes de performances T EM = f (Eb /N0 ) dune chane de transmission utilisant un code de Hamming (7,4) et un code de Golay (23,12). Les courbes en trait pointill sont obtenues avec un dcodeur entres dures ( en utilisant lquation (8.50))

98 code Hamming Reed-Muller Hamming Reed-Muller Golay Golay (N, K) (7, 4) (8, 4) (15, 11) (16, 5) (23, 12) (24, 12)

CHAPITRE 8. CODES CORRECTEURS DERREURS EN BLOC R 0.57 0.5 0.733 0.31 0.52 0.5 dmin 3 4 3 8 7 8 Admin 7 14 30 253 759 GCasympt 1.1 dB 3 4 5,6 6 GCT EMB 0.84 dB 2,6 3,5 4,7 4,8

et les courbes en trait continu sont obtenues avec un dcodeur entres pondres ( en utilisant lquation (8.47)). Pour le code de Golay, on peut observer que le dcodage entres pondres apporte un gain denviron 2 dB.
10
1

10

code code code code

de de de de

Hamming dur Hamming pondr Golay dur Golay pondr

10

TEM

10

10

10

10

7 E /N
b

8
o

10

11

Fig. 8.9 Comparaison du dcodage entres dures et pondres

Chapitre 9

Codes cycliques
9.1 Denition et Proprits

Avertissement : Dans ce chapitre, la convention de notation adopte est la convention poids fort (MSB) droite. Les codes cycliques forment un sous ensemble des codes linaires en bloc. Alors que pour un code en bloc linaire K mots de code sont ncessaires pour dterminer lensemble des 2K mots de code, dans le cas des codes cycliques, un seul mot de code sut. Ces codes contiennent les familles de codes les plus importantes comme les codes de Hamming, de Golay, les codes BCH et Reed Solomon. Leurs proprits permettent un codage et un dcodage relativement aiss. Dans ce chapitre, nous prsenterons les codes cycliques dans le corps de Galois GF(2) bien que ces codes se gnralisent dans GF(q). Les codes cycliques possdent la proprit principale suivante : Si c = [c0 c1 . . . cN 2 cN 1 ] est un mot de code, alors le mot obtenu par dcalage circulaire droite dune position c = [cN 1 c0 . . . cN 3 cN 2 ] est aussi un mot de code. Pour dcrire un code cyclique (N, K), il est pratique dassocier chaque mot de code c = [c0 c1 . . . cN 2 cN 1 ] un polynme c(p) de degr infrieur ou gal N 1 : c(p) = c0 + c1 p + + cN 2 pN 2 + cN 1 pN 1 Nous allons montrer que les proprits des codes cycliques sobtiennent simplement en utilisant lalgbre des polynmes modulo pN 1 1. Calculons le polynme pc(p) : pc(p) = c0 p + c1 p2 + + cN 2 pN 1 + cN 1 pN Aucun mot de code nest associ ce polynme puisque le degr de celui-ci peut tre suprieur N 1. En ajoutant cN 1 puis retranchant cN 1 , cette expression peut encore scrire : pc(p) = cN 1 + c0 p + c1 p2 + + cN 2 pN 1 + cN 1 (pN 1) Or le polynme c (p) associ au mot de code c dni ci-dessus est gal : c (p) = cN 1 + c0 p + + cN 2 pN 1 99

100 Ainsi, on a donc :

CHAPITRE 9. CODES CYCLIQUES

c (p) = pc(p) cN 1 (pN 1) Eectuons le calcul de pc(p) modulo pN 1. On obtient : c (p) = pc(p) mod (pN 1)

Ainsi un dcalage circulaire droite dune position correspond une multiplication par p modulo pN 1. Plus gnralement un dcalage circulaire droite de i positions correspond une multiplication par pi modulo pN 1.

9.1.1

Proprits des codes cycliques

Proprit 1 : Si c(p) est un polynme de degr N 1 associ un mot de code dun code cyclique (N, K), alors (a0 + a1 p + a2 p2 + + aK1 pK1 )c(p) avec a0 , a1 , . . . , aK1 GF (2) mod (pN 1) (9.1)

est aussi un polynme associ un mot de code. Cette relation montre qu partir dun polynme c(p), il est possible de retrouver lensemble des 2K mots de code du code cyclique. Proprit 2 : Il est possible de construire un code cyclique (N, K) partir dun polynme gnrateur not g(p) de degr N K. g(p) = g0 + g1 p + + gN K1 pN K1 + pN K g(p) est le polynme de degr minimal parmi les 2K mots de code du code cyclique. Proprit 3 : Le polynme g(p) de degr N K doit tre un facteur de pN 1. Proprit 4 : Lensemble des 2K polynmes associs aux 2K mots de code dun code cyclique (N, K) sobtient par multiplication de g(p) par les 2K polynmes de degr infrieur ou gal K 1. Si on dnit le polynme u(p) associ au mot dinformation u = [u0 u1 . . . uK2 uK1 ] u(p) = u0 + u1 p + + uK2 pK2 + uK1 pK1 On a la relation suivante entre le polynme u(p) de degr K 1 et le polynme c(p) de degr N 1 : c(p) = u(p)g(p) (9.2) Proprit 5 : Tout polynme facteur de pN 1 engendre un code cyclique. Enumrons la dcomposition en produit de polynmes irrductibles des polynmes de la forme 1 pour J 5. Les polynmes irrductibles de cette table sont les principaux polynmes utiliss pour la construction de codes cycliques. Par exemple p7 1 se dcompose en un produit de 3 polynmes irrductibles. Il est donc possible de construire les 3 codes cycliques suivants avec N = 7 : -un code (7,6) avec g(p) = 1 + p -un code (7,4) avec g(p) = 1 + p + p3 -un code (7,4) avec g(p) = 1 + p2 + p3 p2
j

Les codes cycliques (7,4) ainsi obtenus sont des codes de Hamming tudis prcdemment.

9.1. DEFINITION ET PROPRITS j j j j =2 =3 =4 =5 p3 1 = (1 + p)(1 + p + p2 ) p7 1 = (1 + p)(1 + p + p3 )(1 + p2 + p3 ) p15 1 = (1 + p)(1 + p + p2 )(1 + p3 + p4 )(1 + p + p4 )(1 + p + p2 + p3 + p4 ) p31 1 = (1 + p)(1 + p3 + p5 )(1 + p2 + p5 )(1 + p2 + p3 + p4 + p5 ) (1 + p + p3 + p4 + p5 )(1 + p + p2 + p4 + p5 )(1 + p + p2 + p3 + p5 )

101

Tab. 9.1 Dcomposition en produit de polynmes irrductibles des polynmes de la forme j p2 1 1.(table complter) mots u1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 dinformation u2 u3 u4 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 1 mots de c5 c6 0 0 0 0 1 0 1 0 0 1 0 1 1 1 1 1 1 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 code c7 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

c1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

c2 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0

c3 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0

c4 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1

Tab. 9.2 Liste des mots de code du code de Hamming (7,4) avec g(p) = 1 + p + p3 .

Exemple : Considrons le code de Hamming construit partir du polynme gnrateur g(p) = 1 + p + p3 . Les 16 mots de code sobtiennent par multiplication des polynmes associs aux mots dinformation avec g(p). Lensemble des 16 mots de code est donn dans la table 9.2. Soit u = [1 1 1 0] (en utilisant la convention MSB droite) u(p) = 1 + p + p2 c(p) = u(p)g(p) = (1 + p + p2 )(1 + p + p3 ) = 1 + p4 + p5 c = [1 0 0 0 1 1 0]

Lobtention de la matrice gnratrice partir du polynme gnrateur est immdiate. Nous avons vu prcdemment que la matrice gnratrice dun code linaire en bloc sobtient partir de K mots de code indpendants. Dans le cas des codes cycliques, il sut de choisir les polynmes suivants : g(p) g(p)p g(p)p2 ... g(p)pK1

Par exemple, pour le code de Hamming (7,4) avec g(p) = 1 + p + p3 , la matrice gnratrice est la suivante :

102

CHAPITRE 9. CODES CYCLIQUES

1 1 0 1 0 0 0 0 1 1 0 1 0 0 (9.3) G= 0 0 1 1 0 1 0 0 0 0 1 1 0 1 La matrice gnratrice ainsi obtenue nest pas sous la forme systmatique. En pratique, il est souhaitable que la matrice gnratrice soit sous une forme systmatique. Soit le mot dinformation u = [u0 u1 . . . uK2 uK1 ] et u(p) = u0 + u1 p + + uK2 pK2 + uK1 pK1 son polynme associ. Multiplions u(p) par pN K : Le polynme c(p) associ un mot de code sous la forme systmatique c = [c0 c1 . . . cN 1 ] = [c0 c1 . . . cN K1 u0 u1 . . . uK2 uK1 ] scrit : c(p) = r(p) + pN K u(p) = q(p)g(p) daprs la proprit 3 des codes cycliques Divisons pN K u(p) par g(p). On obtient : pN K u(p) = q(p)g(p) + r(p) o q(p) est le quotient et r(p) est le reste de la division de degr infrieur N K. En rsum : Pour obtenir le mot de code sous forme systmatique c(p) = q(p)g(p) il sut donc : -1 de multiplier le polynme u(p) par pN K -2 de diviser pN K u(p) par g(p) pour obtenir le reste r(p) -3 dajouter le reste r(p) pN K u(p) c(p) = r(p) + pN K u(p) exemple : Considrons le mot dinformation u = [1 1 1 0] et le code de Hamming (7,4) avec g(p) = 1 + p + p3 Le polynme associ u est u(p) = 1 + 1p + 1p2 + 0p3 . On a : p3 u(p) = p3 + p4 + p5
5 4 3 2 2 2

pN K u(p) = u0 pN K + u1 pN K+1 + + uK2 pN 2 + uK1 pN 1

(9.4) (9.5)

p +p + p p + p + p
4 4 5 3

p + p +1 p +p
2

p +p

p +p +p p

Le reste de la division de p3 + p4 + p5 par g(p) = 1 + p + p3 est gal p. Ainsi le polynme c(p) associ au mot de code scrit : c(p) = p + p3 + p4 + p5 Le mot de code est donc nalement : c = [0 1 0 c0 c1 c2 c0 c1 c2 1 1 1 0] u0 u1 u2 u3 c3 c4 c5 c6

contrle information Attention, cette criture est dirente de la forme systmatique prsente dans le chapitre sur les codes en blocs linaires c = [c0 c1 c2 c3 c4 c5 c6 ] = [u0 u1 u2 u3 c4 c5 c6 ]

9.2. DTECTION DERREURS PAR CRC

103

9.2

Dtection derreurs par CRC

Pour dtecter la prsence derreurs dans un mot reu, la majorit des protocoles utilent une technique baptise Cyclic Redundancy Check (CRC). Cette technique consiste utiliser un code cyclique. Il faut souligner que cette technique ne permet pas de corriger les erreurs. On peut cependant demander une rmission du mot de code Automatic Repeat Request (ARQ) en anglais. Soit g(p) le polynme gnrateur du CRC. A partir dun mot dinformation u(p), le mot de code c(p) est construit sous forme systmatique comme prcdemment : -1 multiplication de u(p) par pN K -2 division de pN K u(p) par g(p) pour obtenir le reste r(p) -3 ajout de r(p) pN K u(p) On obtient donc le mot de code systmatique c(p) sous la forme suivante : c(p) = r(p) + pN K u(p) A la rception, on divise le mot reu par g(p). Si le reste de la division est nul, alors il ny a pas derreur. Sinon, il y a une ou plusieurs erreurs dans le mot reu. La table (9.2) donne quelques polynmes utiliss pour la transmission des trames composes doctets. CRC16 CRC-CCITT g(p) = p16 + p15 + p2 + 1 g(p) = p16 + p12 + p5 + 1

Tab. 9.3 polynmes gnrateurs pour CRC

Le CRC-CCITT est utilis dans les contrleurs de disque ainsi que dans les protocoles SDLC,HDLC et X25.

9.3

Codage des codes cycliques

Dans ce paragraphe nous allons tudier larchitecture ncessaire pour le codage des codes cycliques. Nous verrons que ces oprations utilisent de simples additionneurs modulo 2 et des registres dcalage.

9.3.1

Structure matrielle dun diviseur de polynmes

Soit la division dun polynme dividende a(p) par un polynme diviseur g(p) de degr d dans le corps de Galois GF(2). Le reste r(p) et le quotient q(p) de cette division sont dnis par la relation classique : a(p) = g(p)q(p) + r(p) Exemple : Soit la division de 1 + p2 + p6 par 1 + p + p2 . En analysant les tapes du calcul de cette division, on peut faire les remarques suivantes : -1 Au cours de la division, le degr du dividende dcrot : les modications du dividende sont ralises de la gauche vers la droite (des poids forts vers les poids faibles) -2 Pour un diviseur de degr d, chaque itration, les modications du dividende ne portent que sur les (d + 1) termes les plus gauche. Les autres termes du dividende peuvent tre momentanment ignors. -3 Lorsque la modication du dividende a lieu, elle consiste ajouter terme terme les d + 1 coecients du diviseur.

104
6 5 4 3 2

CHAPITRE 9. CODES CYCLIQUES


2

1p + 0 p + 0 p + 0 p +1p + 0 p +1 1p +1p +1p


6 5 5 6 5 4 4 3

1p +1p +1 1 p +1 p + 0 p + 1p + 0
4 3 2

0 p +1p +1p + 0 p 1 p +1 p +1 p
5 4 4 3

0 p + 0 p +1p +1 p
4 3

2 2

0p +0p +0p
4 3 2

0 p +1 p +1 p + 0 p 1p +1p +1p 0 p + 0 p +1p +1


3 2 3 2

Fort de ces remarques, il est possible de dduire une structure matrielle pour raliser cette division. Cette structure comporte autant de registres dcalage que le degr du diviseur. Elle est prsente sur la gure 9.1 pour lexemple trait ci-dessus.

1 1 a( p)

1p 1

1p

s1

s2

quotient

Fig. 9.1 structure matrielle dun diviseur par 1 + p + p2 Il est important de prciser que les bits entrent dans le diviseur poids fort (MSB) en tte. A chaque coup dhorloge, un nouveau coecient du polynme a(p) entre dans le circuit. Aprs d coups dhorloge, le premier coecient non nul du quotient sort du dernier registre dcalage. Ce coecient est multipli par g(p) puis soustrait comme dans une division classique. Le squencement correspondant la division calcule ci-dessus est donn sur la gure 9.2 et dans la table 9.5. On peut vrier qu chaque instant les registres internes contiennent la partie du dividende en cours de calcul. Le quotient est obtenu partir du second coup dhorloge en sortie du registre s2 q(p) = 1p4 + 1p3 + 0p2 + 1p + 0. Au dernier coup dhorloge, la sortie des registres dcalage correspond bien au reste de la division soit r(p) = 1p + 1.

9.3.2

Structures dun codeur cyclique

Dans le cas des codes cycliques (N, K), nous avons vu quavant de calculer le reste r(p) de la division il est ncessaire de prmultiplier le polynme associ au mot dinformation u(p) par pN K . La multiplication par pN K est quivalente ajouter pN K zros la suite de u(p). exemple : Considrons nouveau lexemple du code cyclique de Hamming (7,4) avec g(p) = 1 + p + p3 La structure du codeur est donne gure 9.3. Comme prcdemment les bits sont introduits dans le codeur MSB en tte. Reprenons le mot dinformation u = [1 1 1 0] (en utilisant toujours la convention MSB droite) associ au polynme u(p) = 1 + p + p2

9.3. CODAGE DES CODES CYCLIQUES

105

0p
1

1p6

1p2

1p3

0p

0p
2

0 p5

1p6
5

0p

1p2

1p3

D
1p 0p 1p 2 1p2

1p 0p
4

4 5

1p 0p

1p 3

0 p3

1p

D
1p 0p
3 3

D
1p 1p
4 4

1p 5

1
6

1p

0 p2

1p

Fig. 9.2 squencement du diviseur par 1 + p + p2 entre


MSB

LSB

1 0 0 0 1 0 1

coup dhorloge 0 1 2 3 4 5 6 7

s1 0 1 0 1 1 1 1 1

s2 0 0 1 1 0 1 0 1

Tab. 9.4 squencement du diviseur Aprs prmultiplication, le mot transmis au diviseur est [0 0 0 1 1 1 0] On retrouve le reste calcul prcdemment soit r(p) = 0 + 1p + 0p2 . Avec cette structure, il faut 7 coups dhorloge pour obtenir le reste de la division sur 3 bits. Il est possible de rduire le nombre de coups dhorloge ncessaire pour calculer le reste en exploitant le fait que les N K derniers bits du polynme pN K u(p) sont nuls. Au lieu de modier les N K + 1 coecients les plus gauche du dividende chaque itration, on peut dcomposer la division en K divisions successives. Reprenons lexemple prcdent pour illustrer ce principe : u(p) = 1 + p+ p2 et g(p) = 1 + p+ p3 . La structure du codeur correspondant est donne sur la gure 9.4. En rsum, cette structure permet de gagner N K coups dhorloge correspondant aux N K derniers bits nuls du polynme pN K u(p). Nous pouvons maintenant prsenter la structure matrielle complte dun codeur pour le code de Hamming (7,4) dni par le polynme g(p) = 1 + p + p3 Le codage seectue en deux tapes : 1/ Linterrupteur P0 est ferm et P1 est en position A. On applique K = 4 coups dhorloge pour envoyer les K premiers bits du mot de code et calculer le reste r(p). 2/ Linterrupteur P0 est ouvert et P1 est en position B. On applique N K = 3 coups dhorloge pour envoyer les N K derniers bits du mot de code (correspondant au reste). Ces structures matrielles de codeurs sont comparer celles utilisant des additionneurs

106

CHAPITRE 9. CODES CYCLIQUES


2 3

1p

0p

1p

p u ( p)

s1

s2

s3

Fig. 9.3 structure matrielle dun codeur de Hamming g(p) = 1 + p + p3 entre


MSB

LSB

0 1 1 1 0 0 0

coup dhorloge 0 1 2 3 4 5 6 7

s1 0 0 1 1 1 1 1 0

s2 0 0 0 1 1 0 0 1

s3 0 0 0 0 1 1 0 0

Tab. 9.5 squencement du codeur de Hamming modulo 2 dnies partir du graphe de Tanner.

9.4

Dcodage des codes cycliques

Le dcodage dun code cyclique en bloc comprend deux phases distinctes : -1 calcul de syndrome -2 localisation des erreurs Le calcul du syndrome sobtient en ralisant la division du mot reu y(p) par g(p). y(p) = q(p)g(p) + s(p) (9.6)

1p

1 p + 0 p + 1 p +1
5 4 3 2

+ 1p5 + 0 p4 + 1 p3 +1 p 2 0 p + 0 p +1 p + 1 p 1p4 + 1p +1p +1p +


4 3

1p +1p

1 p 4 + 0 p3 + 1 p 2 +1 p 1p3 + 0 p 2 +1p + 1p
3

1p

9.4. DCODAGE DES CODES CYCLIQUES


1 1p 0p
2

107
1p
3

s1

s2

D
p u ( p)
3

s3

Fig. 9.4 structure matrielle dun codeur de Hamming g(p) = 1 + p + p3


Fig. 9.5 structure matrielle complte dun codeur de Hamming g(p) = 1 + p + p3 Le reste de cette division possde toutes les proprits dun syndrome : Si s(p) = 0, alors le mot reu y(p) est un mot de code s(p) est un polynme de degr infrieur ou gal N K 1. A partir de la valeur de s(p) il est possible destimer un vecteur derreur e(p). Sur la gure 9.6 nous prsentons la structure dun dcodeur relatif au code de Hamming (7,4) dni par le polynme g(p) = 1 + p + p3
1 1p 0 p2
1p 3

y( p)

s1

s2

s3

e( p ) Logique de dcodage c( p )
mmoire tampon 7 bits

Fig. 9.6 structure du dcodeur pour le code de Hamming g(p) = 1 + p + p3 La logique de dcodage associe chaque valeur du syndrome s(p) le vecteur derreur estim e(p). Il sut ensuite dajouter ce vecteur derreur au mot reu y(p) : c(p) = y(p) + e(p) (9.7)

La complexit de ce dcodeur rside dans la logique de dcodage. Cette solution est cependant intressante lorsque le nombre derreurs corriger est faible.

108

CHAPITRE 9. CODES CYCLIQUES

9.4.1

Correction dune erreur

Lorsque le code permet de corriger une seule erreur, la logique de dcodage est une simple porte (N-K) entres. Soit une erreur de la forme e(p) = pj . Le syndrome associ cette erreur a la forme particulire suivante : s(p) = pj mod g(c) (9.8) Sur la gure 9.6 nous prsentons cette structure de dcodage pour le code de Hamming (7,4) dni par le polynme g(p) = 1 + p + p3
1 1p 0 p2
1p 3

y( p)

s1

s2

s3

ET

e( p )
mmoire tampon 7 bits

c( p )

Fig. 9.7 structure de dcodage complexit rduite pour le code de Hamming dni par g(p) = 1 + p + p3 Pour cet exemple, nous donnons table 9.6, la table de correspondance entre les vecteurs derreurs et les syndromes s(p). vecteur derreur 1000000 0100000 0010000 0001000 0000100 0000010 0000001
LSB MSB

e(p) 1 p p2 p3 p4 p5 p6

s(p) 1 p p2 1+p p + p2 1 + p + p2 1 + p2

Tab. 9.6 table des syndromes Le rsultat de la multiplication du syndrome s(p) par pN j est gal 1 : s(p)pN j = pj pN j = pN = 1 (9.9)

Ainsi pour dterminer la position de lerreur, il sut de multiplier successivement s(p) par p jusqu obtenir 1. Exemple : Soit le mot de code mis c = [1111111] et le vecteur derreur e = [0000100] (e(p) = p4 soit une erreur au cinquime bit partir du LSB). y(p) = c(p) + e(p) = 1p6 + 1p5 + 0p4 + 1p3 + 1p2 + 1p + 1 (9.10)

9.5. CORPS DE GALOIS 2M LMENTS entre


MSB

109 s1 0 1 1 0 0 0 0 0 1 1 1 s2 0 0 1 1 1 1 1 1 1 0 0 s3 0 0 0 1 1 1 1 1 1 1 0 on

LSB

1 1 0 1 1 1 1

coup dhorloge 0 1 2 3 4 5 6 7 8 9 10

s(p) = p + p2 s(p)p s(p)p2 s(p)p3 = 1 a donc j = 7 3 = 4

Tab. 9.7 Evolution du contenu des registres lment 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 polynme 0 1 p p2 p3 1+p p + p2 p2 + p3 1 + p + p3 1 + p2 p + p3 1 + p + p2 p + p2 + p3 1 + p + p2 + p3 1 + p2 + p3 1 + p3 reprsentation binaire 0000 0001 0010 0100 1000 0011 0110 1100 1011 0101 1010 0111 1110 1111 1101 1001

Tab. 9.8 Liste des lments du corps GF(24 ). Suivons lvolution du contenu des registres du dcodeur sur la table 9.7 : Comme attendu, nous avons pu corriger lerreur 3 coups dhorloge aprs avoir calcul le reste.

9.5

Corps de Galois 2m lments

Le corps de Galois ni GF(2m ) est isomorphe au corps des polynmes coecients dans GF(2) modulo un polynme irrductible dans GF(2) et de degr m. Prenons un exemple pour illustrer ces propos. Soit m = 4 et le polynme irrductible 1 + p+ p4. Nous avons vu dans la table 9.1 que ce polynme est facteur de p15 1. Soit une racine de ce polynme : 1 + + 4 = 0. On peut montrer que les puissances successives de engendrent les 2m 1 lments non nuls du corps GF(2m ). La table 9.8 liste les lments du corps GF(24 ) ainsi construit. A chaque lment non nul du corps GF(2m ) on associe un polynme minimal. Dnition : le polynme minimal mi (p) est le polynme irrductible de plus faible degr dont i est racine.

110

CHAPITRE 9. CODES CYCLIQUES

Pour lexemple prcdent les 15 polynmes minimaux sont les suivants : m1 (p) = m2 (p) = m4 (p) = m8 (p) = 1 + p + p4 m3 (p) = m6 (p) = m9 (p) = m12 (p) = 1 + p + p2 + p3 + p4 m5 (p) = m10 (p) = 1 + p + p2 m7 (p) = m11 (p) = m13 (p) = m14 (p) = 1 + p3 + p4 m0 (p) = 1 + p (9.11) On retrouve les 5 polynmes irrductibles facteur de p15 1.

9.6

Les codes BCH

Les codes BCH sont des codes cycliques binaires. Ils ont t dcouverts par Hocquenghem 1 [15] puis par Bose et Ray-Chaudhuri [4]. Ils permettent de construire des codes avec les paramtres suivants : N = 2m 1

N K me dmin 2e + 1

(9.12)

Comme tous les codes cycliques, un code BCH est dni par son polynme gnrateur g(p). Le polynme gnrateur g(p) possde parmi ses racines les 2e puissances conscutives de . Ainsi, le polynme gnrateur g(p) est le produit des polynmes minimaux associs , 2 , 3 , . . . , 2e sans quaucun des polynmes ne soit rpt : g(p) = PPCM m1 (p), m2 (p), m3 (p), . . . , m2e (p) PPCM : plus petit commun multiple. Comme dans GF(2m ), i et 2i sont racines du mme polynme minimal, pour la dtermination de g(p), il sut de ne considrer que les puissances impaires de : g(p) = PPCM m1 (p), m3 (p), . . . , m2e1 (p) (9.14) (9.13)

Exemple : Construisons un code BCH avec N = 15 et sachant corriger deux erreurs soit e = 2. Puisque N = 2m 1, on obtient m = 4 et la distance minimale est suprieure ou gale 5. Son polynme gnrateur g(p) est le suivant : g(p) = m1 (p)m3 (p) A partir de la liste des polynmes minimaux pour GF(24 ), on obtient : g(p) = (1 + p + p4 )(1 + p + p2 + p3 + p4 ) = 1 + p4 + p6 + p7 + p8 Comme le degr de g(p) est N K = 8, le code BCH ainsi gnr sera un code (15,7). Sa distance minimale est exactement gale 5. La table 9.9 prsente les polynmes gnrateurs des codes BCH corrigeant jusqu 3 erreurs avec N 63. Une table plus exhaustive est donne dans [23].
1A

Hocquenghem tait professeur de mathmatiques au CNAM

9.6. LES CODES BCH N GF(23 ) GF(24 ) GF(25 ) GF(26 ) 7 15 31 63 K 4 11 7 5 26 21 16 57 51 45 e 1 1 2 3 1 2 3 1 2 3 g(p) p3 + p + 1 p4 + p + 1 p8 + p7 + p6 + p4 + 1 p10 + p8 + p5 + p4 + p2 + p + 1 p5 + p2 + 1 p10 + p9 + p8 + p6 + p5 + p3 + 1 p15 + p11 + p10 + p9 + p8 + p7 + p5 + p3 + p2 + p + 1 p6 + p + 1 p12 + p10 + p8 + p5 + p4 + p3 + 1 p18 + p17 + p16 + p15 + p9 + p7 + p6 + p3 + p2 + p + 1

111

Tab. 9.9 Liste des polynmes gnrateurs des codes BCH avec N 63. Nous savons que le polynme gnrateur g(p) dun code BCH possde , 2 , . . . , 2e comme racines. Ainsi tout mot de code aura aussi , 2 , 3 , . . . , 2e comme racines. Soit un mot de code c(p) = c0 + c1 p + + cN 1 pN 1 Cette proprit peut scrire comme suit : c(i ) = c0 + c1 i + + cN 1 (N 1)i = 0 i 1 i 2e (9.15)

Cette relation peut scrire aussi sous la forme matricielle suivante : 1 . . . N 1 1 2 . . . 2(N 1) ... ... .. . 1 2e . . .

(c0

La matrice de parit scrit donc :

c1 . . . cN 1 )

. . . 2e(N 1)

=0

(9.16)

H=

1 1 . . . 1

2 . . . 2e

... ... .. .

. . . 2e(N 1)

N 1 2(N 1) . . .

(9.17)

Cette matrice vrie la relation cHT = 0. Il est alors possible de dmontrer que le code corrige bien e erreurs. Exemple (suite) : Les lignes de la matrice de parit (9.6) qui correspondent un mme polynme minimal nont pas besoin dtre rptes et on obtient donc pour le code BCH dni par g(p) = 1+p4 +p6 +p7 +p8 la matrice de parit suivante : 2 6 3 9 4 12 5 1 6 3 7 6 8 9 9 12 10 1 11 3 12 6 13 9 14 12

H=

1 1 3

(9.18)

Finalement, en remplaant chaque puissance de par sa reprsentation binaire, on obtient :

112

CHAPITRE 9. CODES CYCLIQUES

H=

1 0 0 0 1 0 0 0

0 1 0 0 0 0 0 1

0 0 1 0 0 0 1 1

0 0 0 1 0 1 0 1

1 1 0 0 1 1 1 1

0 1 1 0 1 0 0 0

0 0 1 1 0 0 0 1

1 1 0 1 0 0 1 1

1 0 1 0 0 1 0 1

0 1 0 1 1 1 1 1

1 1 1 0 1 0 0 0

0 1 1 1 0 0 0 1

1 1 1 1 0 0 1 1

1 0 1 1 0 1 0 1

1 0 0 1 1 1 1 1

(9.19)

9.6.1 9.6.2

Dcodage des codes BCH Introduction

Le dcodage classique des codes BCH peut donc tre spar en 3 tapes distinctes : 1. Calcul des 2e composantes du syndrome s = (s1 s2 . . . s2e ) 2. Recherche du polynme localisateur derreurs (p) 3. Dtermination des racines du polynme (p)

9.6.3

calcul du syndrome

Soit c(p) = c0 + c1 p + + cN 2 pN 2 + cN 1 pN 1 le mot de code, y(p) = y0 + y1 p + + yN 2 pN 2 + yN 1 pN 1 le mot reu et e(p) = e0 + e1 p + + eN 2 pN 2 + eN 1 pN 1 le mot derreur. On a alors : y(p) = c(p) + e(p) (9.20) La premire tape consiste calculer le syndrome s dni par un vecteur 2e lments. Par dnition le syndrome est gal au produit du vecteur reu par la matrice de controle transpos : s = (s1 , s2 , . . . , s2e ) = yHT = (y0 , y1 , . . . , yN 1 ) HT Les 2e composantes du syndrome sont calcules comme suit : si = y(i ) = c(i ) + e(i ) = e(i ) i 1 i 2e (9.22) (9.21)

Il faut noter que si il ny a pas derreur (e(p) = 0), les 2e composantes du syndrome sont nulles. Supposons que le mot derreur soit compos de v erreurs ( avec v e) : e(p) = pj1 + pj2 + + pjv avec 0 j1 j2 jv N 1. A partir de (9.6.3), on obtient le systme dquation suivant : s1 = e() = j1 + j2 + + jv (9.23)

s2 = e(2 ) = (j1 )2 + (j2 )2 + + (jv )2

s3 = e(3 ) = (j1 )3 + (j2 )3 + + (jv )3 . . . s2e = e(2e ) = (j1 )2e + (j2 )2e + + (jv )2e (9.24)

Posons k = jk

1 k v le systme dquation devient :

9.6. LES CODES BCH

113

s 1 = 1 + 2 + + v

s3 = (1 )3 + (2 )3 + + (v )3 . . . s2e = (1 )2e + (2 )2e + + (v )2e Dnissons le polynme suivant :


v

s2 = (1 )2 + (2 )2 + + (v )2

(9.25)

(p) =
k=1

(1 k p) (9.26)

= 0 + 1 p + 2 p2 + . . . v pv

Ce polynme est appel polynme localisateur derreur car les inverses des racines de (p) sont gales k = jk et permettent de localiser la position des erreurs jk . Les coecients k vrient les quations suivantes : 0 = 1 1 = 1 + 2 + + v 2 = 1 2 + 1 3 + + v1 v . . . v = 1 2 . . . v Pour dterminer les coecients k , on utilisera les relations dites de Newton suivantes : s1 + 1 = 0 s2 + 1 s1 + 22 = 0 s3 + 1 s2 + 2 s1 + 33 = 0 . . . sv + 1 sv1 + + v1 s1 + vv = 0 et pour i > v si + 1 si1 + + v siv = 0 Il faut noter que dans le cas binaire ii = 0 si i est pair. (9.27)

(9.28)

9.6.4

Dtermination du polynme localisateur derreur par lapproche matricielle

L approche matricielle consiste rsoudre directement le systme de Newton (9.6.3) pour dterminer le polynme localisateur derreur (p). Dans le cas binaire, le systme de Newton (9.6.3) peut scrire sous la forme matricielle suivante :

114

CHAPITRE 9. CODES CYCLIQUES

Par exemple si v = 2 le systme devient 1 s2 Et les solutions sont : 1 = s1 2 = s3 + s2 . s1 0 s1

s2v4 s2v2

1 s2 s4 . . .

0 s1 s3 . . . s2v5 s2v3

= v1 s2v3 . . . . . . . . . . . . sv3 s2v1 . . . . . . . . . . . . sv1 v 1 2 = s1 s3

0 1 s2 . . .

0 0 s1 . . .

0 0 1 . . .

... ... ... .. .

0 0 0 . . .

1 2 3 . . .

s1 s3 s5 . . .

(9.29)

(9.30)

La procdure par approche matricielle peut tre rsume ainsi : Tout dabord on fait lhypothse que v = e et on essaye de rsoudre le systme de Newton (9.6.4) en remplaant v par e. Si v est gal e ou e1, la solution unique sera trouve. Si v < e1, alors le systme naura pas de solution. Dans ce cas, on doit faire lhypothse que v = e 2 et essayer de rsoudre le systme de Newton (9.6.4) en remplaant cette fois ci v par e 2. On rpte cette technique jusqu ce que lon trouve une solution. On peut se rendre compte que lapproche matricielle ne prsente un interet que lorsque la capacit de correction du code BCH est limite ( par exemple e 3). Nous allons maintenant voir un algorithme dont la porte est beaucoup plus gnrale : lalgorithme de Berlekamp-Massey.

9.6.5

Dtermination du polynme localisateur derreur par lalgorithme de Berlekamp-Massey

Cet algorithme a t propos par Berlekamp [2] et son fonctionnement a t clairci par Massey [22]. Nous nous contenterons ici de prsenter lalgorithme sans en faire la dmonstration. Pour une description dtaille, nous renvoyons le lecteur louvrage de Berlekamp. La premire tape consiste dterminer le polynme de degr minimal (1) (p) dont les coecients vrient la premire galit de Newton (9.6.3). Si les coecients vrient aussi la seconde galit de Newton, on pose alors (2) (p) = (1) (p). Sinon, on ajoute un terme correctif (1) (p) pour obtenir (2) (p). Le polynme (2) (p) est alors le polynme degr minimum dont les coefcients vrient les deux premires galits de Newton. On continue cette procdure pour former (3) (p) puis (4) (p) jusqu obtenir (2e) (p). Ce dernier polynme est le polynme localisateur (p). () () () Soit () (p) = 1 + 1 p + 2 p2 + + l pl le polynme de degr l dtermin la eme tape et vriant donc les premires quations. Pour dterminer (+1) (p) on applique la procdure suivante : on commence par calculer d comme suit : d = s+1 + 1 s + 2 s1 + + l s+1l Si d = 0, alors (+1) (p) = () (p). Sinon, on remonte litration telle que d = 0 et l soit maximal (avec l degr du polynme () (p)). On obtient alors : (+1) (p) = () (p) + d d1 p () (p) Exemple (suite) :
() () ()

9.6. LES CODES BCH

115

Considrons nouveau le code BCH (15,7) dni par le polynme gnrateur g(p) = 1 + p4 + p + p7 + p8 qui peut corriger jusqu 2 erreurs. Supposons que le mot de code tout zro x(p) = 0 a t transmis et que le mot reu est gal r(p) = p4 + p9 On commence par calculer les composantes du syndrome
6

s1 = r() = 4 + 9 = 1 + 3 = 14 s2 = r(2 ) = 8 + 18 = 1 + 2 + 3 = 13 s3 = r(3 ) = 12 + 27 = 0 s4 = r(4 ) = 16 + 36 = + 2 + 3 = 11 (9.31) Comme lexemple est relativement simple, il est possible de dterminer le polynme localisateur derreur (p) par lapproche matricielle : On obtient : 1 = s1 = 14 s3 2 = + s2 = s2 = 13 s1 Utilisons maintenant lalgorithme de Berlekamp-Massey : =0 On initialise (0) (p) = 1 et on calcule d0 : d0 = s1 = 14 Nous obtenons le tableau suivant : Tab. 9.10 tableau partiel pour = 0 -1 0 () (p) 1 1 d 1 14 l 0 0 l -1 0

(9.32)

Comme d0 est non nul, nous devons ajouter un terme correctif (0) (p) pour obtenir (1) (p) : (1) (p) = (0) (p) + d d1 p () (p) avec = 1 = 1 + 14 p =1 On calcule d1 : d1 = s2 + 1 s1 = 13 + 14 14 = 13 + 13 = 0 (9.34)
()

(9.33)

116

CHAPITRE 9. CODES CYCLIQUES Tab. 9.11 tableau partiel pour = 1 -1 0 1 () (p) 1 1 1 + 14 p d 1 14 0 l 0 0 1 l -1 0 0

Nous obtenons le tableau suivant : Comme d1 est nul, on a : (2) (p) = (1) (p) = 1 + 14 p =2 On calcule d2 : d2 = s3 + 1 s2 + 2 s1 = 0 + 13 14 + 0 = 12 Nous obtenons le tableau suivant : Tab. 9.12 tableau partiel pour = 2 -1 0 1 2 () (p) 1 1 1 + 14 p 1 + 14 p d 1 14 0 12 l 0 0 1 1 l -1 0 0 1 (9.35)
() ()

Comme d2 est non nul, nous devons ajouter un terme correctif (2) (p) pour obtenir (3) (p) : (3) (p) = (2) (p) + d d1 p () (p) =1+ p+ =1+ p+ p =3 On calcule d3 : d3 = s4 + 1 s3 + 2 s2 = 11 + 0 + 13 13 =0 Nous obtenons le tableau suivant : (9.37)
() () 14 14 12 14 2

avec = 0 (9.36)

13 2

9.6. LES CODES BCH Tab. 9.13 tableau nal -1 0 1 2 3 () (p) 1 1 1 + 14 p 1 + 14 p 1 + 14 p + 13 p2 d 1 14 0 12 0 l 0 0 1 1 2 l -1 0 0 1 1

117

Comme d3 est nul, on a (4) (p) = (3) (p) et on obtient nalement le polynme localisateur derreur (p) suivant : (p) = (2e) (p) = (4) (p) = 1 + 14 p + 13 p2 Il reste maintenant dterminer les positions des erreurs.

9.6.6

Recherche des racines du polynme localisateur derreur

Nous avons vu prcdemment que les inverses des racines du polynme localisateur derreur sont gales k et permettent de localiser la position des erreurs jk . Si le degr de (p) est gal 1 ou 2, les racines peuvent tre dtermines directement. Lorsque le degr de (p) est suprieur 2, on peut faire le test de chaque puissance de pour voir si cest une racine de (p). Une autre solution plus simple consiste appliquer la mthode de Chien : initialisation pour i = 1, . . . , N Qk Qk k
v

Qk = k

avec k = 1, . . . , v

avec k = 1, . . . , v alors il y a une erreur en position N i

Si
k=1

Qk = 1

Note : la dernire ligne sexplique par la relation Exemple (suite) : On peut vrier que

v k=1

Qk = (i ) + 1.

(p) = (4) (p) = 1 + 14 p + 13 p2 = (1 + 4 p)(1 + 9 p) (9.38)

Les racines de (p) sont gales 11 et 6 . Les inverses de ces racines sont 1 = 1511 = 4 et 2 = 156 = 9 . On en dduit donc bien que les erreurs sont aux positions j1 = 4 et j2 = 9. Nous pouvons galement appliquer la mthode de Chien pour dterminer la position des erreurs. Les rsultats sont prsents dans le tableau suivant : On retrouve bien que les deux erreurs sont aux positions j1 = 4 et j2 = 9.

118

CHAPITRE 9. CODES CYCLIQUES Tab. 9.14 dtermination de la position des erreurs par la mthode de Chien i 0 1 2 3 4 5 6 7 8 9 10 11 Q1 14 1 2 3 4 5 6 7 8 9 10 Q2 13 1 2 4 6 8 10 12 14 3 5
k 2

Qk

0 5 10 2 5 1 j1 = 15 6 = 9 4 10 1 j2 = 1511 = 4

9.7
m

Les codes Reed-Solomon

Les codes Reed-Solomon (RS) sont construits sur le corps ni GF(2m ) o m est un entier. Les 2 1 lments non nuls du corps GF(2m ) sont les puissances successives de llment primitif m racine de 2 1 1 = 0. Chaque polynme minimal associ un lment non nul i (i = 0, 1, . . . , 2m 2) est de la forme mi (p) = p i . Le polynme gnrateur dun code RS(N, K) de longueur N et de dimension K est le produit des N K polynmes minimaux mi (p) avec i = 1, 2, ..., N K : g(p) =
N K i=1

mi (p) (p i ) (9.39)

N K i=1

La distance minimale de Hamming dmin de ces codes est gale N K +1. Ces codes atteignent donc la borne de Singleton. Par rapport aux codes binaires, la capacit de correction des codes RS est donc de e = N K 2 symboles de m bits soit au maximum me bits. Par exemple, un code RS(255, 239, 17) dans GF(28 )peut corriger jusqu 8 octets mais ne pourra corriger 64 bits que si ces bits errons sont localiss dans seulement 8 octets. Le taux derreurs mot est gal :
N

T EM =
i=e+1

i CN (T ESE )i (1 T ESE )N i

Par consquent, le taux derreurs symbole T ESS en sortie dun dcodeur de Reed-Solomon entres dures est le suivant : T ESS = 1 N
N i=e+1 i iCN (T ESE )i (1 T ESE )N i

o T ESE est le taux derreurs symbole en entre. La courbe de performance T ESS = f (T ESE ) pour le code Reed Solomon (255, 239, 17) est prsente sur la gure 9.7.

9.7. LES CODES REED-SOLOMON


10
1

119

10

10

10

TESS
10
5

10

10

10

10

10 TESE

10

Fig. 9.8 T ESS = f (T ESE ) pour le code Reed Solomon (255, 239, 17). Dun point de vue dcodage, ces codes sont dcods comme les codes BCH. On doit seulement ajouter une opration qui consiste valuer lamplitude des erreurs. Cette valuation permet de dterminer la postion des bits errons lintrieur dun symbole erron. Les codes RS sont particulirement bien adapts la correction de paquets derreurs dans les systmes de communication.

Chapitre 10

Codes convolutifs
10.1 Introduction

Dans ce chapitre, nous prsenterons les codes convolutifs binaires et leurs codeurs. Puis, nous introduirons lalgorithme de Viterbi utilis pour le dcodage de ces codes. Pour plus dinformations sur les codes convolutifs nous renvoyons le lecteur larticle de rfrence de Forney [11] et aux livres de Viterbi et Omura [30] et de Johannesson et Zigangirov [17]. Nous nous limiterons ici au cas des codes convolutifs binaires.

10.2
10.2.1

Les codes convolutifs


Structures et reprsentations mathmatiques

Un code convolutif est un code qui transforme une squence semi-innie de mots dinformations en une autre squence semi-innie de mots de code. Soit u la squence dentre ou squence de mots dinformation de dimension k dun codeur k convolutif binaire de rendement n , u = u0 , u1 , u2 , . . . avec ui = [u1 , u2 , ..., uk ] et c la squence de i i i sortie ou squence de mots de code de dimension n, c = c0 , c1 , c2 , . . . avec ci = [c1 , c2 , ..., cn ]. i i i

u 2 u1 u 0
1 1 1 u2 u1 u0 2 2 u2 u12 u0

c2 c1 c0 1 1 1 c2 c1 c0
2 2 c2 c12 c0


k k u2 u1k u0

codeur convolutif R=k/n

Il est souvent plus simple dutiliser loprateur de dlai D pour dcrire ces squences (lopra120


n n c2 c1n c0 c

10.2. LES CODES CONVOLUTIFS teur D doit tre ici considr comme un marqueur de position). On a alors : c(D) = [c1 (D), c2 (D), ..., cn (D)] avec uj (D) =
i=0

121

et

u(D) = [u1 (D), u2 (D), ..., uk (D)]


i=0

(10.1)

uj D i i

et

cj (D) =

cj D i i

avec

u j , cj F 2 i i

(10.2)

o F2 est le corps de Galois 2 lments. Lensemble des sries de Laurent causales de la forme a(D) =
i=0

ai D i

avec

ai F 2

constitue un idal not F2 [[D]], sous ensemble du corps des sries de Laurent F2 ((D)). Il faut noter que certains auteurs prfrent considrer les squences u(D) et c(D) comme des sries de Laurent. Dnition 1 : un codeur convolutif binaire de rendement k/n est la ralisation par un circuit linaire de lassociation dune squence de mots dinformation de k bits u(D) avec une squence de mots de code de n bits c(D) : :Fk [[D]] Fn [[D]] 2 2 u(D) c(D) avec c(D) = u(D)G(D) k. (10.3) G(D) est la matrice gnratrice utilise par le codeur. G(D) est de dimension k n et de rang g1,1 (D) g1,2 (D) g1,n (D) g (D) g2,2 (D) g2,n (D) G(D) = 2,1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . gk,1 (D) gk,2 (D) gk,n (D)

(10.4)

Les lments gi,j (D) de la matrice gnratrice G(D) sont des polynmes de D ou des fonctions rationnelles de polynmes de D. Pour une matrice gnratrice xe, plusieurs architectures de codeurs sont possibles. Il existe 2 familles de codeurs : les codeurs non rcursifs et les codeurs rcursifs. Dans le cas dun codeur non rcursif, les n bits de sortie dpendent des k bits dentre courants et dun nombre ni de bits dentre prcdents. Ce codeur peut tre vu comme un systme rponse impulsionnelle nie (RIF) sur le corps de Galois F2 . Tous les lments gi,j (D) de la matrice gnratrice sont alors des polynmes dans D. Dnition 2 : un code convolutif est lensemble de toutes les squences de sortie possibles c(D) du codeur convolutif. Pour un code convolutif, il existe un ensemble de matrices gnratrices G(D) et de codeurs qui gnrent celui-ci. Dnition 3 : deux matrices gnratrices G(D) et G (D) sont quivalentes si elles engendrent le mme code. Deux codeurs convolutifs sont quivalents si leurs matrices gnratrices sont quivalentes. Pour un codeur donn, soit Mi le nombre de cellules mmoires associes la ime squence dentre binaire : Mi = max deg gij (D)
ijn

122

CHAPITRE 10. CODES CONVOLUTIFS


k i=1

Le nombre total de cellules mmoires est gal M = codeur.

Mi . M dtermine la complexit du

Exemple 1 : Considrons lexemple du codeur convolutif non rcursif k = 1, n = 2 M = 2 donn sur la gure 10.2.1.

Fig. 10.1 codeur convolutif non rcursif de rendement 1/2 M=2 g1 =7, g2 =5. Sa matrice gnratrice est la suivante : G(D) = (g1 (D), g2 (D)) = (1 + D + D2 , 1 + D2 ) Le degr maximum des polynmes tant gal 2, la ralisation de ce codeur ncessitera M = 2 cellules mmoire. On dcrit galement les polynmes gnrateurs du codeur convolutif sous une forme octale :
1 1 1 g1 (D) = g0 + g1 D + g2 D2 = 1 + D + D2

g1 = [111]bin = 7oct
2 2 2 g2 (D) = g0 + g1 D + g2 D2 = 1 + D2

g2 = [101]bin = 5oct Dans cet exemple on a les relations : u(D) = u0 + u1 D + u2 D2 + . . . c1 (D) = c1 + c1 D + c1 D2 + = u(D)(1 + D + D2 ) 2 1 0 Les quations 10.2.1 et 10.2.1 peuvent aussi linstant i scrire : c2 (D) = c2 + c2 D + c2 D2 + = u(D)(1 + D2 ) 0 1 2 (10.5) (10.6)

1 1 1 c1 = g0 ui + g1 ui1 + g2 ui2 = ui + ui1 + ui2 i 2 2 2 c2 = g0 ui + g1 ui1 + g2 ui2 = ui + ui2 i

Le rendement de ce code est gal 1/2. Exemple 2 : Considrons lexemple du codeur convolutif non rcursif k = 1, n = 2 M = 6 donn sur la gure 10.2.1. Sa matrice gnratrice est la suivante : G(D) = (g1 (D), g2 (D)) = (1 + D2 + D3 + D5 + D6 , 1 + D + D2 + D3 + D6 ) Ce codeur est un standard utilis dans le domaine spatial et les tlcommunications. Pour le codeur rcursif, les n bits de sortie peuvent dpendre dun nombre inni de bits dentre prcdents. Cest pourquoi le codeur rcursif est un systme rponse impulsionnelle innie (RII) sur F2 .

10.2. LES CODES CONVOLUTIFS


c1 i

123

ui

s1 i

si2

s3 i

si4

si5

si6

ci2

Fig. 10.2 codeur convolutif non rcursif de rendement 1/2 M =6 g1 =133, g2 =171. Pour les codeurs rcursifs, les lments gi,j (D) de la matrice gnratrice sont des rapports de polynmes. Un codeur convolutif binaire de rendement k/n est appel systmatique si les k bits de lentre sont recopis la sortie du codeur. Sa matrice gnratrice scrit alors : G(D) = (Ik R(D))

Exemple 3 Considrons lexemple du codeur convolutif rcursif systmatique k = 1, n = 2 M = 2 donn sur la gure 10.2.1.

c
1 2

S i

ui

si

si

P i

Fig. 10.3 codeur convolutif rcursif systmatique de rendement 1/2 M =2. La matrice gnratrice de ce codeur convolutif rcursif systmatique est la suivante : G(D) = 1, 1 + D2 1 + D + D2

Les codeurs de lexemple 1 et 3 sont quivalents. Les codeurs convolutifs rcursifs ont t peu utiliss car ceux-ci produisent les mmes codes convolutifs que les codeurs convolutifs non rcursifs. Cependant, les travaux de Battail [?] ont montr quun codeur convolutif rcursif imitait le codeur alatoire si le polynme dnominateur tait primitif. Ceci justie leur utilisation dans les codes convolutifs concatns en parallle.

10.2.2

Reprsentation matricielle des codes convolutifs

Par rapport au codeur en bloc, un codeur convolutif contient des cellules mmoires internes stockant un vecteur dtats compos de M bits. Ainsi, le mot de code ci est une fonction linaire du mot dinformation ui mais aussi de ltat interne du codeur linstant i, si . Les quations reliant ui , si , si+1 et ci sont les suivantes : si+1 = si A + ui B ci = si C + ui D (10.7)

Alors quun codeur en bloc linaire binaire (N, K) est dni par une seule matrice G de dimension K N , un codeur convolutif de rendement k/n est dni par les 4 matrices A, B, C et

124 D dont les dimensions sont les suivantes :

CHAPITRE 10. CODES CONVOLUTIFS

A:M M B :kM C :M n D :kn

(10.8)

Ces quations correspondent exactement aux quations dtat et de sortie utilises pour dcrire un systme linaire discret entres et sorties multiples et invariant dans le temps dans la thorie des systmes. Pour lexemple 1 ci-dessus, on a galement les relations suivantes : s1 = u i i+1 s2 = s1 i+1 i c1 = u i + s1 + s2 i i i c2 i = ui + s2 i Ainsi, nous avons les quations dtat et de sortie suivantes : si+1 = s1 i+1 ci = c1 i
1 s2 i+1 = si

(10.9) (10.10) (10.11) (10.12)

s2 i 1 1

0 0

1 + ui 1 0

(10.13) (10.14)

c2 = s1 i i

s2 i

0 + ui 1 1 1

A partir des quations dtat et de sortie (10.2.2), nous avons les relations suivantes en utilisant loprateur de dlai unit D : s(D)D1 = s(D)A + u(D)B c(D) = s(D)C + u(D)D o u(D) et c(D) sont dnis dans (10.2.1) et (10.2.1) et s(D) = [s1 (D), s2 (D), ..., sM (D)] avec sj (D) =
i=0

(10.15)

sj D i i

On obtient alors la relation classique entre la matrice gnratrice G(D) et les matrices de la ralisation A,B,C et D. G(D) = D + B(D1 IM A)1 C (10.16)

Une dernire reprsentation matricielle des codes convolutifs sobtient en srialisant les bits dentre et de sortie du codeur convolutif : Soit u = u1 , u2 , . . . , uk , u1 , u2 , ..., uk , . . . 0 0 0 1 1 1 c = c1 , c2 , . . . , cn , c1 , c2 , ..., cn , . . . 0 0 0 1 1 1 La relation (10.2.1) devient alors : c = uG o G est une matrice gnratrice semi-innie dont les lments sont binaires. (10.17)

10.2. LES CODES CONVOLUTIFS

125

ui

D
g1 0
2 g0

s1 i

D
1 g1

si2

s iM
g1 M c1 i

2 g1

g2 M

ci2

n g0

g1n

gn M

cin

Fig. 10.4 codeur convolutif non rcursif gnrique de rendement 1/n.

Nous ne dcrirons la matrice G que dans le cas des codeurs convolutifs avec k = 1 (rendement 1/n) de la gure 10.2.2. Le cas gnral se dduit sans aucune dicult. La matrice G est alors de la forme : g0 G= g1 g0 g2 g1 g0 ... ... ... .. . gM gM1 gM2 .. . .. .

gM gM1 .. .

gM .. .

(10.18)

1 2 n avec gi = [gi gi . . . gi ]. Les espaces blancs correspondent des zros Pour lexemple 1, la matrice gnratrice est la suivante :

G=

1 1

1 0 1 1

1 1 0 1 1

1 1 .. .

0 1

(10.19)

Comme pour les codes en bloc, on peut introduire la matrice de parit H semi-innie suivante : GHT = 0 Chaque squence c devra donc satisfaire la relation cHT = 0 Pour lexemple 1, la matrice de parit est la suivante : 1 0 1 H= 1 1 1 1 0 1 (10.22) (10.21) (10.20)

1 1 1

1 1 0 1 1 1

1 1 0 1

1 .. .

126

CHAPITRE 10. CODES CONVOLUTIFS

10.3
10.3.1

Reprsentations graphiques des codes convolutifs


Diagramme de transitions dtat

Le diagramme de transitions dtat permet de dcrire simplement le fonctionnement du codeur convolutif. Pour un codeur convolutif rcursif compos de M cellules mmoires, on dnit ltat interne du codeur linstant i par un vecteur si de dimension M : si = [s1 , s2 , ...sM ] . i i i sj est ltat linstant i de la j-ime cellule mmoire. i Le diagramme de transition dtat est un graphe orient compos de 2M sommets. Chaque sommet correspond un tat interne du codeur. Un exemple de diagramme de transition pour le codeur convolutif non rcursif de rendement 1/2 de lexemple 1 dni par la matrice gnratrice G(D) = (1 + D + D2 , 1 + D2 ) est donn gure 10.5.

10 d [11] 10 00 11 [ 00 ] a 00
Fig. 10.5 Diagramme dtat pour le code convolutif non rcursif g1 = 7, g2 = 5. Dans cet exemple on a M = 2 et donc 2M = 4 tats internes du codeur : Tab. 10.1 Description des tats internes tat interne a b c d s1 i 0 0 1 1 s2 i 0 1 0 1

01 c [10 ]

01 b [ 01] 11

Chaque branche est renseigne avec les bits de sortie ( ici c1 et c2 ). Les branches en traits i i pointills et continus correspondent respectivement un bit dentre gal 0 et 1.

10.3.2

Diagramme en treillis

A partir du diagramme de transitions dtat, il est possible de construire un graphe biparti appel aussi treillis lmentaire. Chaque branche b de ce graphe biparti relie un tat de dpart

10.3. REPRSENTATIONS GRAPHIQUES DES CODES CONVOLUTIFS

127

s (b) et un tat darrive s+ (b). Le treillis lmentaire pour le codeur convolutif non rcursif de lexemple 1 est donn gure 10.6.
00 a 11 11 b 10 c 01 d 10 01 00

Fig. 10.6 Treillis lmentaire dun codeur convolutif non rcursif g1 = 7, g2 = 5.


k+M

A chaque noeud arrivent et partent 2k branches. Le nombre total de branche est donc gal ; (dans cet exemple k = 1, M = 2 et donc 2k+M = 8 ).

Le diagramme en treillis est un diagramme de transitions dtat o labscisse correspond au temps. Il est obtenu simplement en assemblant un nombre inni de treillis lmentaires. Le diagramme en treillis pour le codeur convolutif non rcursif de rendement 1/2 de lexemple 1 est donn gure 10.7.
a 00 00 00 11 b 11 11 00 c 10 01 d 01 10 i=1 i=2 i=3 01 01 10 i=4 01 10 11 00 10 11 00 11

i=0

Fig. 10.7 Diagramme en treillis dun codeur convolutif non rcursif g1 = 7, g2 = 5. Sur chaque branche on renseigne la valeur des deux bits de sortie c1 et c2 . Dans ce diagramme i i en treillis, les traits gras correspondent ui = 1 alors que les traits pointills correspondent ui = 0 . On peut constater sur ce diagramme quaprs une priode transitoire, le diagramme en treillis est bien la concatnation de treillis lmentaires.

10.3.3

Graphes TWL

Les graphes TWL (Tanner, Wiberg et Loeliger) [?] sont utiliss pour dcrire la fois le codage et le dcodage des codes convolutifs et des codes convolutifs concatns.

PSfrag 128 CHAPITRE 10. CODES CONVOLUTIFS

En plus des nuds de variable binaire et des nuds de contrle de parit, nous utiliserons une troisime famille de nuds appels nuds de variable dtat ou nuds de variable binaire cache . Nous reprsenterons les nuds de variable cache par un double cercle. De plus, les nuds de contrle de parit peuvent tre remplacs par des nuds de contrle plus gnraux appels fonctions locales. Ces fonctions locales sont symbolises par des carrs noirs dans ces graphes. Le graphe TWL dun codeur convolutif systmatique de rendement 1/2 est donn gure 10.8. u0 u1 u2 u3

s0 cP 0

T0

s1

T1 cP 1

s2 cP 2

T2

s3 cP 3

T3

s4

Fig. 10.8 Graphe TWL dun codeur convolutif systmatique de rendement 1/2. La fonction locale Ti (si , cP , ui , si+1 ) la position i est dnie partir des quations dtat et i de sortie (10.2.2) du codeur convolutif. On a : Ti (si , cP , ui , si+1 ) = i 1 0 si les quations (10.2.2) sont valides sinon (10.23)

La fonction locale Ti (si , cP , ui , si+1 ) correspond au treillis lmentaire du codeur convolutif qui i relie si , si+1 , cP et ui . i

10.4

Distance minimale et fonction de transfert des codes convolutifs

La dtermination de la distance minimale dun code convolutif peut sobtenir partir du diagramme en treillis. Pour dterminer la distance minimale on prend comme chemin de rfrence le chemin associ la squence dentre nulle u = [0, 0, . . . ]. Ce chemin est reprsent en gras sur le diagramme en treillis de la gure 10.9. Sur chaque branche, on a not le poids de Hamming des deux bits de sortie c1 et c2 . i i
chemin nul de rfrence a 2 b 2 0 c 1 1 1 d 1 2

i=0

i=1

i=2

i=3

i=4

Fig. 10.9 Diagramme en treillis dun codeur convolutif non rcursif g1 = 7, g2 = 5.

10.4. DISTANCE MINIMALE ET FONCTION DE TRANSFERT DES CODES CONVOLUTIFS129 A partir de ce diagramme on constate quun seul chemin quittant le chemin de rfrence linstant i = 0 est la distance 5 du chemin de rfrence. Il sagit du chemin (a, c, b, a). Ainsi, la distance minimale de ce code convolutif est gale 5. Il est noter quil existe deux chemins (a, c, d, b, a) et (a, c, b, c, b, a) la distance 6 du chemin de rfrence. La fonction de transfert dun code convolutif permet de dterminer les proprits de distance de celui-ci. Cette fonction sobtient partir du diagramme dtats du codeur convolutif. Nous allons montrer comment calculer cette fonction de transfert en utilisant lexemple 1. Le diagramme dtat de ce codeur convolutif a t donn sur la gure 10.5. Pour dterminer la fonction de transfert, nous devons modier ce diagramme comme suit : tout dabord chaque branche est renseigne avec DwO N wI o wI et wO sont respectivement le poids de Hamming des bits dinformation et des bits de sortie. Dans notre exemple, un bit dinformation et deux bits de sorties sont associs chaque branche. Comme prcdemment, les branches en traits pointills et continus correspondent respectivement un bit dentre gal 0 et 1. Ensuite, nous supprimons la branche se rebouclant sur ltat a qui nintervient pas sur les proprits de distance du code. Finalement, nous sparons le noeud a en deux noeuds distincts a et e correspondant respectivement au noeud dentre et au noeud de sortie du diagramme dtat modi. Le diagramme dtat modi pour lexemple 1 est donn sur la gure 10.10.

D2N

D N

DN

DN
Fig. 10.10 Diagramme dtats modi dun codeur convolutif non rcursif g1 = 7, g2 = 5. A partir de ce diagramme, nous pouvons alors calculer la fonction de transfert du code convolutif. Nous avons les relations suivantes : Nous avons les 4 quations suivantes : Xc = N D 2 Xa + N Xb Xb = DXc + DXd Xd = N DXc + N DXd Xe = D 2 Xb En rsolvant le systme dquations ci-dessus, on obtient nalement la fonction de transfert suivante : Xe N D5 = = N D5 + 2N 2 D6 + 4N 3 D7 + 8N 4 D8 + 16N 5 D9 + . . . Xa 1 2N D

T (D, N ) =

Cette fonction nous renseigne en particulier sur la distance minimale du code (ici 5) et le nombre de squences associes ( ici une seule squence). La fonction de transfert permet de prdire les performances du code convolutif. Sur la table suivante nous prsentons les meilleurs codes convolutifs de rendement 1/2 :

130 nbr mmoire 1 2 3 4 5 6 code (2, 3) (5, 7) (15, 17) (23, 35) (53, 75) (133, 171)

CHAPITRE 10. CODES CONVOLUTIFS dmin 3 5 6 7 8 10

10.5

Algorithme de Viterbi

Soit la squence x = (x0 , x1 , x2 , . . . , xN 1 ) de longueur N envoye dans un canal discret stationnaire sans mmoire de densit de probabilit conditionnelle p(y/x) et y = (y0 , y1 , y2 , . . . , yN 1 ) la squence reue. Nous avons vu prcdemment quun dcodeur maximum de vraisemblance (maximum likeli hood en anglais ou ML) recherche la squence x pour laquelle la probabilit conditionnelle P r(y|x) est la plus grande. x = arg max P r(y|x)
x

(10.24)

En considrant que les signaux mis sont perturbs indpendamment les uns des autres, la probabilit conditionnelle est gale au produit des probabilits conditionnelles P r(yi |xi ) : P r(y|x) =
N 1 i=0

P r(yi |xi )

(10.25)

o dH (y, x) est la distance de Hamming entre la squence reue y et la squence x. Comme p est p compris entre 0 et 0.5, on a 0 < 1p < 1. Nous avons dmontr que maximiser P r(y|x) revient minimiser la distance de Hamming entre y et x.

Lalgorithme de Viterbi [29][12] appliqu sur le treillis du code convolutif est lalgorithme ML gnralement utilis pour le dcodage des codes convolutifs. Dautres dcodages comme le dcodage squentiel peuvent galement tre utiliss lorsque le nombre de mmoires est lev (M > 10) [17]. La recherche de la squence x la plus probable est quivalente dterminer le chemin ou la squence dtat le plus probable. La squence x se dduit alors immdiatement. Pour le canal binaire symtrique de probabilit dinversion p, la probabilit P r(y|x) est la suivante : dH (y,x) p P r(y|x) = pdH (y,x) (1 p)N dH (y,x) = (1 p)N (10.26) 1p

Considrons maintenant le cas du dcodage entres souples dune squence reue aprs ltrage adapt pour un canal BBAG. Nous avons vu que nous pouvons exprimer linstant i sa sortie yi comme suit : yi = xi + ni (10.27)

avec Es nergie moyenne par symbole xi et ni chantillon bruit blanc gaussien centr de variance 2 = N0 . Ainsi la sortie du dmodulateur la densit de probabilit de yi conditionnellement xi 2 est : 1 [yi xi ]2 p(yi |xi ) = exp (10.28) N0 N0 Comme la fonction logarithme est croissante, au lieu dutiliser la relation (10.5) pour dterminer x, on peut utiliser :

10.5. ALGORITHME DE VITERBI

131

x = arg max ln P r(y|x)


x

= arg max ln
x

N 1 i=0

P r(yi |xi )

(10.29) (10.30)

= arg max
x

N 1 i=0

ln P r(yi |xi )

On obtient donc une premire version du dcodeur maximum de vraisemblance : x = arg max ln P r(y|x)
x

= arg max
x

N 1 i=0

[yi xi ]2 N0 (10.31)

= arg min
x

N 1 i=0

(yi xi )2

Une seconde version du dcodeur maximum de vraisemblance est obtenue en approximant les calculs comme suit : x = arg min
x N 1 i=0

|yi xi |

(10.32)

Cette version sous optimale donne cependant de bonnes performances et est souvent utilise en pratique. Dans le cas dune modulation bipodale (xi = Es ) il est possible dobtenir une troisime version exacte : x = arg max ln P r(y|x)
x

= arg max
x

N 1 i=0 N 1 i=0 N 1 i=0

(yi xi )2
2 yi + 2yi xi x2 i

= arg max
x

= arg max
x

yi xi

(10.33)

2 En eet, comme yi , et x2 = Es sont communs toutes les squences on peut simplier i sensiblement les calculs sans aucune dgradation des performances.

Lalgorithme de Viterbi utilis pour le dcodage entres dures ou souples permet de dtermi ner la squence x en vitant de calculer les mtriques cumules associes chacune des squences possibles. Le principe gnral de lalgorithme de Viterbi consiste chaque section du diagramme en treillis liminer tous les chemins (et les squences associes) qui ne peuvent pas tre le chemin le plus vraisemblable. A chaque noeud du treillis, on ne conserve quun seul chemin Pour comprendre lalgorithme de Viterbi nous allons utiliser le codeur de lexemple 1. Le dcodeur sera ici entres dures ; on utilisera donc comme mtrique la distance de Hamming.

132

CHAPITRE 10. CODES CONVOLUTIFS

Supposons qu linstant i = 0, le codeur convolutif soit dans ltat a et que la squence en entre du codeur soit 1001. La squence en sortie est alors 11 10 11 11. On considre que la squence reue est 11 00 11 11 (soit une erreur sur le 3ime bit). A chaque tape lalgorithme de Viterbi calcule pour chaque nouvelle branche la distance de Hamming entre le couple de bits reus et le couple de bits associs la branche considre. Puis il calcule les 2k+M mtriques cumules. Le diagramme en treillis associ est prsent sur la gure 10.11.
Squence reue : a
00 (2)

11 (2)

00 (2)
00 (0)

11 (1)
00 (2) 11 (0)

11 (2)
00 (2) 11 (0)

11 (0)

11 (2)

(1)
00 (2)

11 (0)

(2)
00 (2) 10 (1)

11 (0)

(3)

10 (1)

(0)

(4)
01 (1)

10 (1)

(2)

(1)

01 (1)

01 (1) 10 (1)

01 (1)

01 (1) 10 (1)

(1)

(2)

(3)

i=0

i=1

i=2

i=3

i=4

Fig. 10.11 Diagramme en treillis dun codeur convolutif non rcursif g1 = 7, g2 = 5. Ensuite pour chaque noeud, on ne conserve quun seul chemin baptis chemin survivant : le chemin survivant tant le chemin qui est la distance de Hamming minimale de la squence reue. Exemple : linstant i=3, deux chemins convergent vers ltat a : - le chemin (a, c, b, a) la distance 0+1+0=1 de la squence reue. - le chemin (a, a, a, a) la distance 2+0+2=4 de la squence reue. Le survivant en ce noeud sera donc le chemin (a, c, b, a). A linstant i = 4, il reste 4 chemins survivants qui convergent respectivement : - vers ltat a avec une distance de 2 - vers ltat b avec une distance de 3 - vers ltat c avec une distance de 1 - vers ltat d avec une distance de 3. La squence la plus vraisemblablement mise par le codeur est donc celle qui correspond au chemin survivant qui converge vers ltat c i = 4 cest--dire le chemin (a, c, b, a, c). Ce chemin correspond lmission par le codeur de la squence 11101111 soit la squence 1001 lentre du codeur : le dcodeur de Viterbi a corrig lerreur survenue dans la transmission. Le dcodage entres souples en utilisant lalgorithme de Viterbi amliore en thorie les performances denviron 2 dB par rapport au dcodage en dcision dure. En pratique, il est ncessaire deectue une quantication des entres sur 2b niveaux. avec b = 3 ou b = 4. Le calcul des performances thoriques des codes convolutifs avec dcodage dcision dure ou souple sobtient simplement partir de la fonction de transfert du code [30].

10.5.1

Complexit du dcodeur de Viterbi

Pour un codeur convolutif de rendement k/n et compos de M mmoire internes, on a 2M tats internes : lutilisation de lalgorithme de Viterbi ncessite de conserver chaque tape 2M chemins survivants et mtriques cumules associes. A chaque tape 2k chemins convergent vers chaque

10.5. ALGORITHME DE VITERBI

133

noeud ; pour chacun de ces chemins, on doit calculer la mtrique cumule an de dterminer le chemin survivant. En consquence le nombre de calculs de mtrique cumule eectuer chaque tape est gal 2k+M . Ce calcul croit exponentiellement avec k et M ce qui limite lutilisation de lalgorithme de Viterbi de faibles valeurs de k et M . En pratique, il nest pas ncessaire dattendre que lensemble des symboles mis par le codeur soit reu pour commencer le dcodage : en eet, on observe qu partir dun certain temps (5 fois M environ), tous les chemins survivants tendent converger vers le mme chemin. Il est donc possible linstant i destimer le symbole mis linstant i 5M .

10.5.2

Poinonnage des codes convolutifs

Il est possible partir dun code convolutif de rendement k/n de raliser des codes convolutifs de rendement suprieur en supprimant certains symboles en sortie du codeur [31] [5]. Cette technique permet de modier le rendement du code convolutif sans ajouter de complexit au dcodeur. Pour comprendre le principe du poinonnage, nous allons considrer lexemple dun codeur de rendement 2/3 obtenu partir du codeur de rendement 1/2 de lexemple 1. Le poinonnage sobtient par exemple en supprimant un symbole sur 4 en sortie du codeur de rendement 1/2. A la rception on ajoute la place de chaque symbole manquant un symbole nul. Le diagramme en treillis de ce codeur perfor de rendement 2/3 est reprsent sur la gure 10.12.
a 00 0X 00 11 b 1X 11 00 c 1X 0X d 01 10 i=1 i=2 i=3 01 0X 1X i=4 10 11 0X 1X 1X 0X 1X

0X

i=0

Fig. 10.12 Diagramme en treillis dun codeur convolutif poinonn. La distance minimale du code convolutif de rendement 1/2 et M = 2 est gale 5 ; elle est rduite 3 dans le cas du code poinonn de rendement 2/3. Il faut prciser quil nexiste pas de code de rendement 2/3 avec M = 2 ayant une distance minimale suprieure 3.

Chapitre 11

Applications des codes correcteurs derreurs


11.1 Communications spatiales

Dans toutes les communications spatiales la modulation utilise est une modulation 2 tats de phase (BPSK). Mission Mariner en 1969 et Viking (Mars) code en bloc Reed-Muller (32,6,16), dcodeur entres pondres Mission Pionner 9 en 1969 (soleil) Pionner 10 en 1972 (jupiter) Pionner 11 en 1973, Pionner 12 (vnus), Helios A et B (soleil) code convolutif rendement 1/2 Kc = 32, dcodeur squentiel entres pondres Mission Voyager 1 et 2 en 1977 (jupiter et saturne) et standard CCSDS code convolutif (163,171) rendement 1/2, Kc = 7, dcodeur de Viterbi entres pondres Satellites Globalstar code convolutif rendement 1/2, Kc = 9 Standard CCSDS et Mission Voyager code convolutif (163,171) rendement 1/2, Kc = 7, code Reed-Solomon (255,223,33) Mission Galileo en 1990 (jupiter) code convolutif rendement 1/4, Kc = 15, dmin = 35, the Big Viterbi Decoder (BVD) Mission Cassini (saturne) code convolutif rendement 1/6 Kc = 15, dcodeur de Viterbi

11.2

Diusion Audio et Tlvision Numrique

Tltext : code de Hamming tendu (8,4) FM Digital Audio Broadcast (DAB) : code cyclique dierence set (273,191), dcodage logique majoritaire (entres dures ou pondres) Digital Audio Broadcast (DAB) pour le systme audio DVB et MPEG : 134

11.3. TRANSMISSION DE DONNES

135

code convolutif rcursif rendement 1/2 Kc = 5, perfor (grand choix pour permettre une dgradation progressive des performances) systme par satellite DirectTV, Digital Video Broadcast (DVB) satellite : modulation QPSK + code convolutif (163,171) rendement 1/2 , Kc = 7, perforation 3/4,4/5, 5/6 et 7/8 , code Reed-Solomon (204,188,17) DVB terrestre : modulation multiporteuses OFDM, QAM64 + code convolutif (163,171) rendement 1/2 , Kc = 7, perforation 3/4,4/5, 5/6 et 7/8 , code Reed-Solomon (204,188,17)

11.3

Transmission de donnes

V29 en 1976 2400 b/s , half duplex : modulation QAM16, 4b/symb V32 en 1984 9600 b/s full duplex : modulation code en treillis 32-CROSS 2 bits non cods et 2 bits cods avec code convolutif (3,2) Kc = 4 4b/symb V33 en 1986 14400 b/s full duplex : modulation code en treillis 128-CROSS 4 bits non cods et 2 bits cods avec code convolutif (3,2) Kc = 5 6b/symb V34 en 1994 33600 b/s full duplex : modulation code en treillis 4D, jusqu 1664 points, 8 bits non cods et 2 bits cods avec code convolutif (3,2) Kc = 5 10b/symb

11.4

Stockage de donnes

disque dur magntique : TBD CD audio : RS(28,24) + RS(32,28) soit un rendement R=3/4 CD ROM : code produit (1170,1032) compos de codes lignes RS(26,24) et de codes colonnes RS(45,43)dans GF (28 )

11.5

Radio communications

GSM : modulation GMSK, code convolutif rendement 1/2, Kc = 5

11.6

Transfert de chiers

TCP/IP : CRC 16 bits sur lentte, ARQ HDLC : CRC 16 bits du CCITT ou CRC 32 bits optionnel, ARQ

Annexe 1
Dans cette annexe, nous allons dmontrer quelques rsultats utiles pour la dmonstration gomtrique de la capacit dun canal bruit blanc additif gaussien. Soit n = (n1 , n2 , . . . , nD ) le vecteur bruit compos de D composantes indpendantes. La densit de probabilit de chacune de ces composantes est gaussienne : 1 n2 p(ni ) = (11.1) exp i2 2 2 2 La densit de probabilit du vecteur n sexprime comme le produit des D densits de probabilit p(ni ) : p(n) =
D

1 exp (2 2 )D/2

D 2 i=1 ni 2 2

(11.2)

2 2 2 Soit r = i=1 ni la norme de n. Comme la variance de ni est E(ni ) = , la moyenne de r2 est donne par

E(r2 ) = E(n2 + n2 + + n2 ) 1 2 D = D. 2 Et la variance de n2 est i var(n2 ) = E(n4 ) E(n2 )2 i i i


+

= E(n2 ) + E(n2 ) + + E(n2 ) 1 2 D

(11.3)

=
+

n4 p(n2 )dni E(n2 )2 i i i dni 4 (11.4)

n4 n2 i exp i2 2 2 2 4 4 = 3 = = 2 4

Pour D grand, en utilisant le thorme de la limite centrale, on montre que la variance de r2 est gale 2 4 D. Ainsi lorsque D tend vers linni, la norme r est concentre autour de D.

136

Annexe 3 : Calcul de la densit spectrale de puissance dun signal mis en bande de base
Le signal mettre dans le cas dune transmission en bande de base scrit : x(t) =
k=

ak g(t kT )

(11.5)

o {ak } est la squence discrte transmettre de moyenne ma = E(ak ) et dont la fonction dautocorrlation aa (i) est gale E(ak+i a ) . k La fonction dautocorrlation de x(t) est donne par : Rxx (t + , t) = E [x(t + )x (t)] (11.6)

La notation signie complexe conjugu (ce qui permet de traiter aussi les cas o x(t) est un signal complexe) Le signal x(t) dni ci dessus est alatoire mais nest pas stationnaire. Il est cyclostationnaire dordre 2 car sa fonction dautocorrlation est invariante une translation de lorigine des temps proportionnelle T . Pour calculer sa densit spectrale de puissance, on suppose que lorigine des temps est une variable alatoire suivant une loi uniforme entre 0 et T . Ainsi, au lieu de calculer Rxx (t + , t), nous calculerons la moyenne Rxx ( ) : 1 Rxx ( ) = T En dveloppant Rxx (t + , t) on obtient : 1 Rxx ( ) = T 1 = T =
i = + +T /2 + + +T /2

Rxx (t + , t)dt
T /2

(11.7)

T /2 k= i= +T /2 + +

E(ai a )g (t kT )g(t + iT )dt k aa (i k)g (t kT )g(t + iT )dt


+T /2 T /2

T /2 k= i= + +

aa (i )
k= +

1 T 1 T

g (t kT )g(t + i T kT )dt g (t)g(t + i T )dt (11.8)

=
i =

aa (i )
k=

+T /2+kT T /2+kT

Dans lavant dernire ligne de calcul,nous avons pos i = i k. 137

138

CHAPITRE 11. APPLICATIONS DES CODES CORRECTEURS DERREURS

La fonction dautocorrlation de g(t) est :


+

Rgg ( ) =

g (t)g(t + )dt

(11.9)

Finalement on obtient alors : 1 Rxx ( ) = T Soit Et On obtient nalement : XX (f ) = 1 |G(f )|2 AA (f ) T (11.13)
+ i =

aa (i )Rgg ( i T )
+

(11.10)

AA (f ) =
i=

aa (i)ej2f iT

(11.11) (11.12)

|G(f )|2 = T F (Rgg ( ))

Cette formule est appele formule de Bennett. Cas particulier 1 : considrons le cas o les symboles ak sont indpendants, de moyenne nulle E(ak ) = 0 et de variance E((ak )2 ) = 2 la fonction dautocorrlation aa (i) est gale aa (i) = Alors, AA (f ) = 2 On a donc : XX (f ) = 2 0 si i = 0 sinon (11.14)

2 |G(f )|2 T

(11.15)

Cas particulier 2 : considrons le cas o les symboles ak sont indpendants, de moyenne non nulle et de variance centre E((ak )2 ) = 2 la fonction dautocorrlation aa (i) est gale aa (i) = Alors,
+

2 + 2 2

si i = 0 sinon

(11.16)

AA (f ) =
i=

aa (i)ej2f iT
+

= 2 + 2
i=

ej2f iT
+ i=

= 2 +

2 T

i T

(11.17)

La dernire ligne se justie car la sommation peut tre vue comme la srie de Fourier dun train dimpulsion damplitude et de largeur 1/T :

11.6. TRANSFERT DE FICHIERS

139

TF
i=

i T

1 T

+ i=

i T

(11.18)

Finalement la densit spectrale de puissance scrit alors : XX (f ) = 2 2 |G(f )|2 + 2 T T


+

G
i=

i T

i T

(11.19)

On peut observer que si la moyenne nest pas nulle, la densit spectrale de puissance est compose de deux termes. Le premier terme correspond un spectre continu et est directement li la rponse G(f ). Le second terme est un spectre de raie toutes les frquences multiples de 1/T . Il faut prciser que dans un systme de communication pratique, il est souhaitable davoir une moyenne nulle.

Annexe 4 : Signaux alatoires


Gnralits On appelle mx (t) la moyenne dun signal alatoire x(t) : mx (t) = E x(t) On appelle Rxx ( ) sa fonction dautocorrlation : Rxx (t1 , t2 ) = E x(t1 )x(t2 ) Le signal x(t) est stationnaire au second ordre ou au sens large si : 1. la moyenne mx (t) est constante 2. la fonction dautocorrlation satisfait Rxx (t1 , t2 ) = Rxx (t1 + t, t2 + t) t On note alors simplement Rxx ( ) = E x(t)x(t ) Dans ce cas, la densit spectrale de puissance xx (f ) sobtient par : (11.22) (11.21) (11.20)

xx (f ) = T F (Rxx ( ))
+

Rxx ( )ej2f d

(11.23)

Rciproquement, la fonction dautocorrlation (Rxx ( )) se dtermine partir de la densit spectrale de puissance comme suit : Rxx ( ) = T F 1 (xx (f ))
+

xx (f )e+j2f df

(11.24)

De faon gnrale, la moyenne et la fonction dautocorrlation dun signal stationnaire sont estimes partir dun ensemble de ralisations du signal x(t). Lorsque la moyenne temporelle tend vers cette moyenne, on dit que le signal alatoire est ergodique. Une seule ralisation du processus alatoire x(t) sut pour estimer la moyenne et la fonction dautocorrlation. Les signaux alatoires que nous sommes amens rencontrer dans les communications numriques sont en gnral stationnaire et ergodique au second dordre. Si le signal est discret ( par exemple suite chantillonnage dun signal continu alatoire x(t) 1 la frquence T , = xn = x(nT ), la fonction dautocorrlation Rxx ( ) nest dnie quaux instants discrets = nT et la densit spectrale de puissance devient : 140

11.6. TRANSFERT DE FICHIERS

141

xx (f ) = T F D(Rxx ( ))
+

Rxx ( )ej2f

(11.25)

Puissance La puissance de x(t) est dnie par :


+

P =

xx (f )df

= Rxx (0) = E x(t)2 Si le signal est discret, on a : P = E x2 n Energie Lnergie dun signal alatoire x(t) est :
+

(11.26) (11.27)

E= Si le signal est discret, on a :

x(t)2 dt

(11.28)

E= Cas du bruit blanc

x2 n
n=

(11.29)

N0 2 .

Soit un bruit blanc centr b(t) dni par sa densit spectrale de puissance bilatrale bb (f ) = Sa fonction dautocorrlation Rbb ( ) est gale
+

Rbb ( ) =

bb (f ) exp(2jf )df N0 ( ) 2 (11.30)

o (.) reprsente limpulsion de Dirac. On notera que la densit spectrale de puissance sexprime en V 2 /Hz et que ( ) sexprime en 1 s . Le calcul de la puissance du bruit blanc dni ci-dessus est innie :
+

P =
+

bb (f )df N0 df 2 (11.31)

= = + Un tel signal nexiste pas en pratique.

Considrons maintenant le cas du bruit blanc dans une bande de frquence limite B. On a :

142

CHAPITRE 11. APPLICATIONS DES CODES CORRECTEURS DERREURS

bb (f ) =

N0 2

si B f +B sinon

(11.32)

La fonction dautocorrlation de ce signal est : N0 (f )e+j2f df 2 B N0 sin(2B ) = 2


+B

Rbb ( ) =

(11.33)

Dans ce cas, la puissance N dans la bande B est gale :


+B

N=
B

N0 df = N0 B 2

(11.34)

Si ce bruit blanc dans la bande B est gaussien, sa densit de probabilit sera la suivante : 1 b2 p(b) = exp 2N 2N (11.35)

Bibliographie
[1] G. Battail. Thorie de linformation". Edition Masson, 1997. [2] E. R. Berlekamp. Algebraic coding theory". Edition Mc Graw-Hill,New York, 1968. [3] C. Berrou, A. Glavieux, P. Thitimajshima. Near Shannon limit error correcting coding and decoding : Turbo-codes". Proc. of the 1993 Int. Conf. on Comm., Geneva, Switzeland, pp. 10641070, Mai. 1993. [4] R.C Bose, D. K. Ray-Chaudhuri On a class of error correcting binary group codes". Inform. Control, vol.3, pp 6879, mars 1960. [5] J.B. Cain, G. C. Clark, J. M. Geist Punctured convolutional codes of rate n1/n and simplied maximum likelihood decoding". IEEE Trans. Inform. Theory 25, pp. 97100, Janvier 1979. [6] D. Chase. A class of algorithms for decoding block codes with channel measurement information". IEEE Trans. on Inform. Theory. 18, pp. 170182, Jan. 1972. [7] G. Cohen Codes correcteurs derreurs". Edition Masson, 1990. [8] T. M. Cover et J. A. Thomas. Elements of information theory". Edition Wiley, 1991. [9] P. Elias. Error-free coding". IRE Trans. Inform. Theory, pp. 2937, 1954. [10] G. D. Forney. Concatenated codes". MIT Press, Cambridge,Mass., 1966. [11] G. D. Forney. Convolutional codes I : Algebraic structure". IEEE Trans. Inform. Theory 16(6), pp. 720738, 1970. [12] G. D. Forney. The Viterbi algorithm". Proceedings of the IEEE 61(3), pp. 268278, Mars 1973. [13] R. G. Gallager. Low density parity-check codes". MIT Press, Cambridge,Mass., 1963.Trans. Inform. Theory 25, pp. 97100, Janvier 1979. [14] R. G. Gallager. Information theory and reliable communication". Edition Wiley, 1968. [15] A. Hocquenghem. Codes correcteurs derreurs". Chires, vol.2, pp 147156, sept. 1959. [16] D. A. Human. A method for the construction of minimum redundancy codes". Proc. IRE, vol. 40, pp. 10981101, septembre 1952. [17] R. Johannesson, K. S. Zigangirov. Fundamentals of convolutionnal coding". IEEE Press, Piscataway, NJ, USA, 1999. [18] F. R. Kschischang, B. J. Frey, H. A. Loeliger. Factor graphs and the sum-product algorithm". IEEE Trans. Inform. Theory 47(2), pp. 498519, Feb. 2001. [19] R. J. McEliece, E. R. Rodemich, H. C. Rumsey, L. R. Welch. New upper bounds on the rate of a code via the Delsarte-MacWilliam". Proc. IEEE Trans. on Info. theory, vol. IT-23, pp.157166, 1977. [20] D. J. MacKay. Information Theory, Inference and Learning Algorithms". Tlchargeable sur le site htt ://www.inference.phy.cam.ac.uk/mackay [21] F. J. MacWilliams, N. J. A. Sloane The theory of error correcting codes North Holland Elsevier, Amsterdam, The Netherlands, 1977 [22] J. L. Massey Shift register synthesis and BCH decoding". IEEE Trans. Inform. Theory 6, pp. 459470, Janvier 1960. 143

144

BIBLIOGRAPHIE

[23] W. W. Peterson, E. J. Weldon Error correcting codes MIT Press, Cambridge, MA, 1972 [24] J. G. Proakis Digital communications". McGraw-Hill,Boson,USA, 4eme dition, 2001. [25] I. S. Reed, G. Solomon. Polynomial codes over certain nite elds". Journal SIAM, vol.8, pp 300304, 1960. [26] J. J. Rissanen. Generalized Kraft inequality and arithmetic coding". IBM Journal Research and Dev., vol. 20, No. 3,pp. 198203, mai 1976. [27] C. Shannon. A mathematical theory of communication". Bell Syst. Tech. J., vol. 27, pp. 623659 et pp. 623656, juillet et octobre 1948. Tlchargeable sur le site http ://www.math.psu.edu/gunesh/Entropy/shannon.ps ou http ://cm.belllabs.com/cm/ms/what/shannonday/paper.html [28] B. Sklar. A primer on Turbo Code concepts". IEEE Communications Magazine , pp. 94102, Dec. 1997. [29] A. J. Viterbi. Error bounds for convolutional codes and an asymptotically optimum decoding algorithm". IEEE Trans. Inform. Theory 13, pp. 260269, Avril 1967. [30] A. J. Viterbi, J. K. Omura. Principes des communications numriques". Edition Dunod, CNET-ENST, 1982. [31] Y. Yasuda, K. Kashiki, H. Hirata. High rate punctured convolutionnal codes for soft-decision Viterbi decoding". IEEE trans. on Communications 32, pp. 315319, Mars 1984. [32] J. Ziv et A. Lempel. Compression of individual sequences via variable rate coding". Proc. IEEE Trans. on Info. theory, vol. IT-24, No. 5,pp. 530536, septembre 1978.

Table des matires


Introduction 1 Introduction 2 Introduction la thorie de linformation 2.1 Rappels de probabilits . . . . . . . . . . . 2.2 Remarques sur la notion dinformation . . . 2.3 Une mesure logarithmique de linformation 2.3.1 Information mutuelle . . . . . . . . . 2.4 Entropie et information mutuelle moyenne . 3 Codage de source 3.1 Entropie et Redondance dune source . . . . 3.2 Codage de source . . . . . . . . . . . . . . . 3.3 Codage par mot de longueur variable . . . . 3.4 Ingalit de Kraft . . . . . . . . . . . . . . . 3.5 Thorme fondamental du codage de source 3.6 Dbit dentropie . . . . . . . . . . . . . . . 3.7 Algorithme dHuman . . . . . . . . . . . . 3.8 Etude de lentropie dun texte crit . . . . . 3.9 Algorithme de Lempel-Ziv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i 1 3 3 4 4 6 6 10 10 10 11 11 13 14 14 16 17 20 20 20 20 24 25 25 26 28 30 30 30 31 31 31 31 33 34 34 35

4 Codage pour les sources analogiques 4.1 chantillonnage et Quantication . . . . . . . . . . . . . . . . 4.1.1 Rappel sur le thorme de lchantillonnage . . . . . . 4.1.2 Quantication . . . . . . . . . . . . . . . . . . . . . . 4.2 Modulation par impulsion et codage . . . . . . . . . . . . . . 4.3 Techniques de codage pour les sources analogiques mmoire 4.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . 4.3.2 Modulation Delta . . . . . . . . . . . . . . . . . . . . . 4.3.3 Modulation par impulsion et codage direntiel . . . . 4.3.4 Codage par dcomposition spectrale . . . . . . . . . . 4.3.5 Codage bas sur un modle . . . . . . . . . . . . . . . 4.3.6 Tableau de synthse . . . . . . . . . . . . . . . . . . . 5 Transmission en bande de base 5.1 Introduction . . . . . . . . . . . . . . . . . . . . . 5.2 Les codes en ligne . . . . . . . . . . . . . . . . . 5.2.1 Le code non retour zro (NRZ) . . . . . 5.2.2 Code retour zro (RZ) unipolaire . . . . 5.2.3 Code retour zro (RZ) bipolaire simple 5.2.4 Code biphase ou Manchester . . . . . . . 5.2.5 Code bipolaire ou AMI . . . . . . . . . . 145 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

146

TABLE DES MATIRES 5.2.6 Code de Miller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.7 Code NRZ M-aire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Canal de Transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.1 Canal bruit blanc additif gaussien . . . . . . . . . . . . . . . . . . . . . . Rception optimale pour le canal BBAG . . . . . . . . . . . . . . . . . . . . . . . . 5.4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.2 Structure du modulateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.3 Rcepteur optimal pour un canal bruit blanc additif gaussien . . . . . . . 5.4.4 Calcul du taux derreurs binaires pour un signal NRZ sur un canal bruit blanc additif gaussien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.5 Probabilit derreurs par paire : cas scalaire . . . . . . . . . . . . . . . . . . 5.4.6 Calcul du taux derreurs symboles pour un signal NRZ multi-niveaux . . . Critre de Nyquist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.2 Interfrence entre symboles . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.3 Diagramme de lil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.4 Critre de Nyquist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.5 Le ltre en cosinus surlev . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 37 38 40 40 40 41 44 49 51 52 53 53 53 54 55 56 59 59 60 60 63 63 63 63 64 65 65 65 66 68 68 69 71 76 76 77 77 77 78 79 80 81 81 82 83 84 85 85 86

5.3 5.4

5.5

6 Introduction aux modulations numriques 6.1 Modulation dplacement damplitude . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Modulation dplacement de phase . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3 Modulation damplitude de deux porteuses en quadrature . . . . . . . . . . . . . . 7 Introduction au codage de canal 7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2 Modle de canaux de transmission . . . . . . . . . . . . . 7.2.1 Le canal binaire symtrique . . . . . . . . . . . . . 7.2.2 Canaux discrets sans mmoire . . . . . . . . . . . . 7.2.3 Canal bruit blanc additif gaussien . . . . . . . . 7.3 Capacit dun canal de transmission . . . . . . . . . . . . 7.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . 7.3.2 Capacit dun canal de transmission . . . . . . . . 7.3.3 Thorme fondamental du codage de canal . . . . 7.3.4 Capacit dun canal binaire symtrique . . . . . . 7.3.5 Capacit dun canal bruit blanc additif gaussien 7.3.6 Reprsentation gomtrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8 Codes correcteurs derreurs en bloc 8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2 Les corps nis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.1 Rappel sur les corps . . . . . . . . . . . . . . . . . . . . . 8.2.2 Les corps de Galois . . . . . . . . . . . . . . . . . . . . . . 8.3 Codes en bloc linaires binaires . . . . . . . . . . . . . . . . . . . 8.3.1 Proprits et dnitions . . . . . . . . . . . . . . . . . . . 8.3.2 Fonctions dnumration de poids . . . . . . . . . . . . . . 8.3.3 Matrice de contrle . . . . . . . . . . . . . . . . . . . . . . 8.4 Dcodage entres dures des codes en bloc linaires binaires . . 8.4.1 Mthode du tableau standard . . . . . . . . . . . . . . . . 8.4.2 Dcodage par syndrome . . . . . . . . . . . . . . . . . . . 8.4.3 Capacit de correction derreurs dun code linaire binaire 8.5 Codes en bloc principaux et reprsentation graphique . . . . . . 8.5.1 Codes de Hamming . . . . . . . . . . . . . . . . . . . . . 8.5.2 Code de Golay . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . en bloc . . . . . . . . . . . . . . .

TABLE DES MATIRES 8.5.3 Reprsentations graphiques des codes en bloc linaires binaires . . Bornes sur la distance minimale des codes linaires en bloc . . . . . . . . Dcodage optimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Performances des codes linaires en bloc avec dcodage entres dures . . Bornes par runion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Performances des codes linaires en bloc avec dcodage entres souples . Gain de codage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comparaison des performances des dcodeurs entres dures et pondres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

147 86 89 90 91 92 93 96 97

8.6 8.7 8.8 8.9 8.10 8.11 8.12

9 Codes cycliques 99 9.1 Denition et Proprits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 9.1.1 Proprits des codes cycliques . . . . . . . . . . . . . . . . . . . . . . . . . . 100 9.2 Dtection derreurs par CRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 9.3 Codage des codes cycliques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 9.3.1 Structure matrielle dun diviseur de polynmes . . . . . . . . . . . . . . . 103 9.3.2 Structures dun codeur cyclique . . . . . . . . . . . . . . . . . . . . . . . . . 104 9.4 Dcodage des codes cycliques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 9.4.1 Correction dune erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 9.5 Corps de Galois 2m lments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 9.6 Les codes BCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 9.6.1 Dcodage des codes BCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 9.6.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 9.6.3 calcul du syndrome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 9.6.4 Dtermination du polynme localisateur derreur par lapproche matricielle 113 9.6.5 Dtermination du polynme localisateur derreur par lalgorithme de BerlekampMassey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 9.6.6 Recherche des racines du polynme localisateur derreur . . . . . . . . . . . 117 9.7 Les codes Reed-Solomon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 10 Codes convolutifs 10.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2 Les codes convolutifs . . . . . . . . . . . . . . . . . . . . . . . . 10.2.1 Structures et reprsentations mathmatiques . . . . . . 10.2.2 Reprsentation matricielle des codes convolutifs . . . . . 10.3 Reprsentations graphiques des codes convolutifs . . . . . . . . 10.3.1 Diagramme de transitions dtat . . . . . . . . . . . . . 10.3.2 Diagramme en treillis . . . . . . . . . . . . . . . . . . . 10.3.3 Graphes TWL . . . . . . . . . . . . . . . . . . . . . . . 10.4 Distance minimale et fonction de transfert des codes convolutifs 10.5 Algorithme de Viterbi . . . . . . . . . . . . . . . . . . . . . . . 10.5.1 Complexit du dcodeur de Viterbi . . . . . . . . . . . . 10.5.2 Poinonnage des codes convolutifs . . . . . . . . . . . . 11 Applications des codes correcteurs derreurs 11.1 Communications spatiales . . . . . . . . . . . 11.2 Diusion Audio et Tlvision Numrique . . . 11.3 Transmission de donnes . . . . . . . . . . . . 11.4 Stockage de donnes . . . . . . . . . . . . . . 11.5 Radio communications . . . . . . . . . . . . . 11.6 Transfert de chiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 120 120 120 123 126 126 126 127 128 130 132 133 134 134 134 135 135 135 135