Вы находитесь на странице: 1из 79

TS219 CODAGE CANAL

Benot ESCRIG
ENSEIRB-MATMECA/IRIT

01/10/2010

Codage Canal-BE

Bibliographie


J. PROAKIS : Digital Communications,

S. LIN, D.J. COSTELLO : Error Control Coding : Fundamentals and


Applications,

A. GLAVIEUX, M. JOINDOT : Communications numriques.


Introduction,

01/10/2010

Ed. McGraw Hill, 2001.

Ed. Prentice-Hall, 1983.

Ed. Masson, 1996.

Codage Canal-BE

Plan du cours
1.
2.
3.
4.

Introduction
Codes en blocs linaires
Codes convolutifs
Combinaisons de codes

01/10/2010

Codage Canal-BE

Codage Canal-BE

Plan du cours
1.

Introduction
1.
2.

2.
3.
4.

Contexte
Principe

Codes en blocs linaires


Codes convolutifs
Combinaisons de codes

01/10/2010

Contextes dapplication
DONNES ORIGINALES
(donnes mises/stockes)
DONNES TRAITER
(donnes reues/lues)


01000011100111

Systmes de tlcommunications




01010011000111

Exemples : WiFi, TNT, Bluetooth, 3G,


Causes de laltration : mauvaises conditions de rception.
Rsultat : les donnes reues sont diffrentes des donnes mises.

Stockage de donnes sur support physique






01/10/2010

Stockage : criture sur support physique (CD, disque dur).


Causes de laltration : CD ray,
Rsultat : les donnes lues sont diffrentes des donnes crites.
Codage Canal-BE

Enjeux soulevs par laltration des


donnes


Lquipement qui va utiliser les donnes (tlphone mobile, lecteur


DVD) ne sait pas que le flux de donnes comporte des erreurs.
Limpact de lutilisation de donnes altres dpend de lapplication
et du type daltration.



DONNES

01/10/2010

Fort impact : un bit faux dans le codage dun numro de carte bleue .
Faible impact : plusieurs paquets manquants dans le codage dune
conversation tlphonique.

BLOC UTILISATEUR
DES DONNES

Codage Canal-BE

Enjeu


Comment savoir si un flux de donnes comporte des erreurs ?




1re tape : dtecter les erreurs.

Que faire lorsque le flux de donnes traiter est erron ?




Corriger les erreurs (protocoles de la couche 1 et lecture de donnes sur


support CD).
Solliciter lmission de nouvelles donnes (protocoles partir de la
couche 2).
Interpoler entre les donnes prcdentes et les donnes suivantes
(applications).

01/10/2010

Codage Canal-BE

Solutions au dessus de la couche


physique


Couche application : interpoler entre les donnes


prcdentes et les donnes suivantes


RCEPTION

Technique possible lorsque les donnes traites


sont trs redondantes et que la perte dun bloc de
donnes naltre pas la qualit du service.
Exemple : film, conversation tlphonique.

Mcanisme ARQ (Automatic Repeat reQuest).

TRAITEMENT

Couches rseau (2,3,4) : solliciter lmission de


nouvelles donnes


vers la couche suprieure

OK
transmission

test

demande de retransmission
01/10/2010

Codage Canal-BE

OK
8

Dtecter et corriger les donnes altres




Codes correcteurs derreurs : rajouter des bits de redondance aux


bits dinformation (opration inverse lopration de compression).
Codage :






Blocs de k bits en entre.


Blocs de n bits en sortie (n>k).

Dcodage : retrouver les blocs de k bits partir des blocs de n bits.


Application aux tlcommunications : codage canal


codage

Adapter le codage au canal de transmission pour amliorer les


performances en termes de probabilit derreur binaire Pb.

metteur

canal
Pb(nc)

Pbc<Pb(nc)
01/10/2010

rcepteur
non cod

dcodage

cod
Codage Canal-BE

Exemple : code rptition C(3,1)


DONNES MISES
01001110

CODEUR

Code rptition
0 donne 000
1 donne 111

000 111 000 000 111 111 111 000

Les seuls blocs de 3 bits


autoriss sont les blocs 000 et
111

DONNES REUES
000 110 000 010 111 110 111 000
?
?
?
01/10/2010

DECODEUR
Codage Canal-BE

01001110
10

Limitation des codes correcteurs




Si les erreurs sont rares, elles sont effectivement


corriges.
000 110 000 010 111 110 111 000

Sinon, le dcodeur va gnrer des erreurs l o il ny en


avait pas.
000 110 000 010 111 110 111 000

Consquence : un dcodeur ne peut traiter correctement


des donnes qu partir dune certaine qualit lentre
du dcodeur (aux environs de 1 bit faux sur 10 ou 1 bit
faux sur 100).

01/10/2010

Codage Canal-BE

11

Inconvnient des codes correcteurs


derreurs


En thorie, lajout de redondance contribue augmenter les besoins


en bande passante (Tbloc, temps dmission dun bloc de donnes).
En pratique, le dbit utile est diminu car le dbit des donnes
codes est fix par la norme.
Plus il y a de protection (et donc de redondance k/n petit), plus le
dbit utile diminue.
CODEUR
k
n
Cas non cod Cas cod
Nombre de bits mis / bloc
Dbit

Dbit
01/10/2010

k/Tbloc

n/Tbloc

Donnes non codes

Donnes codes

k/n . D

D (fixe)

Codage Canal-BE

12

Enjeu des codes correcteurs derreurs




Plus il y a de redondance,



Enjeu : fournir la meilleure capacit de correction en utilisant le


moins de bits de redondance.
Intrt pour les systmes de tlcommunications


Plus la capacit de correction est grande.


Plus la consommation en bande passante est grande.

Les techniques de transmission augmentent le rapport signal bruit la


rception mais nempchent pas les erreurs.
Les codes correcteurs permettent alors damliorer un peu plus les
performances en termes de BER (Bit Error Rate).

Intrt pour le stockage de donnes (disque dur, CD)




Rcupration de donnes lorsque le support de stockage est dfectueux.

01/10/2010

Codage Canal-BE

13

Codage Canal-BE

14

Plan du cours
1.

Introduction
1.
2.

2.
3.
4.

Contexte
Principe

Codes en blocs linaires


Codes convolutifs
Combinaisons de codes

01/10/2010

Principe du codage





Ajouter au message transmettre des bits de redondance selon une


loi donne.
k
Taux de codage Rc.
Rc =
Exemple : code rptition C(3,1)
n


Si 0, alors 000. Si 1, alors 111.

01/10/2010

CODEUR

Codage Canal-BE

15

Principe du dcodage








Coder les donnes sans les dcoder ne sert rien.


Dcoder : tester si la loi de codage est respecte.
Si la loi de codage est respecte, alors les donnes sont envoyes au
bloc de traitement suivant.
Exemple dun code rptition C(3,1) : si 000, alors 0. Si 111, alors 1.
Si la loi de codage nest pas respecte, il y a dtection derreur(s).
Exemple dun code rptition C(3,1) : il y a dtection derreur ds
lors que le bloc de trois bits reus nest ni 000, ni 111 (ex : 001).
Sil y a dtection derreur alors il y a correction et envoi au bloc de
traitement suivant, ou suppression des donnes et demande de
retransmission.
n

01/10/2010

DCODEUR
Codage Canal-BE

k
16

Exemple de correction derreur




Dtection derreur : le mot 110 est


diffrent de 000 et de 111.
Correction derreur : le mot reu est plus
proche de 111 que de 000. La sortie est
donc 1.

Code rptition
0 donne 000
1 donne 111
DONNES
REUES
110

01/10/2010

DCODEUR

Codage Canal-BE

17

Distinction entre dtection et correction


derreur


Dtection derreur : le dcodeur dtecte que le bloc de bits traiter est


erron.


Linformation produite est binaire : il y a ou il ny a pas derreur (une ou plusieurs


erreurs).

Correction derreur : le dcodeur sait o se trouvent les erreurs et les corrige.


Code rptition
0 donne 00
1 donne 11
DCODEUR
dtection

Code rptition
0 donne 000
1 donne 111
erreur
110

01
DCODEUR
correction
01/10/2010

DCODEUR
dtection
DCODEUR
correction

0
Codage Canal-BE

erreur

1
18

Historique









1948 : Shannon (thorie de linformation).


1950 : Hamming.
1950-1970 : codes en blocs et codes cycliques, BCH (Bose-ChaudhuriHocquenghem) et RS (Reed-Solomon).
1960-1970 : codes convolutifs (Fano, Forney, Viterbi).
1980 : modulations codes en treillis (Ungerboeck).
1990 : dcodage itratif et turbo-codes (Berrou-Glavieux).
2000 : codes LDPC (Low Density Parity Check).

01/10/2010

Codage Canal-BE

19

Plan du cours
Introduction

1.

Codes en blocs linaires

2.

Matrice gnratrice et matrice de contrle de parit


Codes cycliques
Dcodage optimal soft-decision
Dcodage hard-decision

1.
2.
3.
4.

3.
4.

Codes convolutifs
Combinaisons de codes

01/10/2010

Codage Canal-BE

20

10

Codes en blocs linaires


n


Code en bloc : ensemble de vecteurs de


longueur n appels mots de code.
Les composantes dun mot de code
appartiennent un alphabet q symboles.
Exemples :
Si q=2, alors les mots de code sont
constitus de 0 et 1.
Si q =3, alors les mots de code sont
constitus de 0,1 et 2.

code
q=2 binaire

01010010
01210210

composante
bit

valeur
{0,1}

q2 non binaire symbole


01/10/2010

qn

{0,,q-1}

Codage Canal-BE

21

Cas particulier : q=2b (b>1)





Possibilit de reprsenter un symbole par b bits.


Consquence : un mot de code de N symboles peut se reprsenter
par un mot de code binaire de bN bits.
Exemple : si q = 4=22, alors mot de code constitu de 0,1,2 et 3.



Possibilit de reprsenter un symbole (0,1,2,3) par 2 bits (00 01 10 11).


Consquence : mot de code de 8 symboles = mot de code binaire de 2x8
bits.

0 1 2 3 2 1 1 2

=
01/10/2010

00 01 10 11 10 01 01 10

Codage Canal-BE

22

11

Dfinition dun code C(n,k)


Association de 2k mots de code de n bits aux 2k mots de donnes de k
bits.

Exemple C(4,2) : les 4 (22) mots de code sont choisis parmi les 16 (24)
mots de 4 bits.
n=4
2k mots
Mot de
Mot de
de k bits
CODE
donnes code


00

1010

01

0010

10

0110

11

1011

2n=16

2n mots
de n bits

01/10/2010

slection de 2k mots
de n bits
23

Codage Canal-BE

Gnralisation aux
codes non binaires






qn

Mots de code n symboles (et non bits).


Symboles : 0,1,2, ,q-1
qn mots de n symboles.
Slection de qk mots pour former un code.
Exemple C(2,1) q=3



n=2

1 symbole en entre : 0,1,2.


2 symboles en sortie : (0,1,2) x (0,1,2).

Mot de donnes Mot de code

01/10/2010

12

20

22

qn=32

Codage Canal-BE

24

12

Poids dun mot : nombre dlments non


nuls dans le mot






Distribution des poids dun code w : ensemble des poids dun code.
Existence de codes dont tous les mots de code ont le mme poids
(codes poids fixe ou poids constant).
Paramtre important pour tablir les performances de certains codes.
Exemples : rpartition possible des poids sur un code C(3,2).

000 001 011 111 w = {0,1,2,3}


000 001 010 100 w = {0,1}
110 101 011 111 w = {2,3}

01/10/2010

Codage Canal-BE

25

Oprations sur les mots de code et les


mots de donnes


Les composantes des vecteurs appartiennent un alphabet q


symboles.
Alphabet muni de l'addition modulo-q et de la multiplication moduloq = corps de Galois d'ordre q, not GF(q).



Corps de Galois = corps d'ordre fini.


Corps d'ordre fini = corps dont le nombre d'lments (ordre) est fini.

Exemple : GF(2) et GF(3).

01/10/2010

Codage Canal-BE

26

13

Distance minimale dmin dun code




Distance de Hamming : nombre


dlments diffrents (bits,
symboles) entre deux mots.
Si les mots sont de taille n, la
distance est comprise entre 0
et n.
Distance de Hamming
minimale entre deux mots de
code : dmin.
Exemple : C(3,2), dmin=2.

01/10/2010

Mot de Mot de
donnes code
00

000

01

101

10

110

11

011

D ([101], [110]) = 2

Codage Canal-BE

27

Plan du cours
1.

2.

Introduction

Codes en blocs linaires


1.
2.
3.
4.

3.
4.

Matrice gnratrice et matrice de contrle de parit


Codes cycliques
Dcodage optimal soft-decision
Dcodage hard-decision

Codes convolutifs
Combinaisons de codes

01/10/2010

Codage Canal-BE

28

14

Dfinitions et Notations





Soit un code C(n,k).


Mot de donnes Xm k composantes.
Mot de code Cm n composantes.
Pour construire un code C(n,k) valide, il faut que les 2k n-uplets
forment un sous-espace vectoriel de Vn, espace vectoriel des
mots de n bits.

Cm = [cm1c m 2 ...cmk cm (k +1)...cmn ]

X m = [x m1x m 2 ...xmk ]
Xm

CODEUR

01/10/2010

Cm

Codage Canal-BE

29

Gnration de la jime composante de Cm









Combinaison linaire (CL) des k composantes du mot de donnes Xm.


Pour savoir quelles composantes de Xm participent la CL : coefficients
gij (0 ou 1).
i de 1 k pour les k composantes du mot de donnes
j de 1 n pour les n composantes du mot de code.
m de 0 2k-1 pour lensemble des mots de donnes.
xm1

g1j

xm2
g2j

xmi

xmk

gkj

gij

m=1,,2k
k

cmj = gij xmi

cmj = xm1g1 j + xm2g2 j + L + xmk gkj


01/10/2010

j = 1,2,L, n

Codage Canal-BE

i =1

30

15

Gnration des n composantes de Cm






Pour n composantes, n combinaisons linaires diffrentes.


Le codeur est entirement dfini par n CLs.
C m = X mG
Matrice gnratrice de rang k.
Rang dune matrice : nombre maximal de vecteurs lignes (ou colonnes)
linairement indpendants.

Les vecteurs gi forment une base non unique.


CODEUR

Xm

g1 g11
g g
2
21
G= =
M
M

g g
k k1

Cm

C m = xm1 g1 + xm2g2 + ... + xmk g k


1i k
k

cmj = gij xmi


i =1

1 jn
1 m 2k

01/10/2010

g12 L g1n
g22 L g2n

M
M
gk 2 L gkn

Matrice gnratrice
Codage Canal-BE

31

Code systmatique


Un code est dit systmatique si les k premiers bits du mot de code


sont constitus par les k bits du mot de donnes.
Ces k bits sont dits systmatiques. Les (n-k) bits restants sont appels
bits de parit.
Matrice gnratrice pour code systmatique : il est possible dobtenir
la matrice gnratrice de la version systmatique dun code par
oprations sur les lignes et permutations des colonnes.
k

01/10/2010

CODEUR

Codage Canal-BE

n-k

32

16

Forme de la matrice gnratrice


pour un code systmatique


Ik matrice identit et P matrice k x (n-k).

0
G = [I k P] =
M

0 p11

p12

M p21

p 22

1 pk 1

01/10/2010

M
L

pk 2

p1(n k )

p 2 (n k )

pk (n k )

Codage Canal-BE

33

Intrt des codes systmatiques






Le mot de donnes apparat explicitement dans le mot de code.


Le dcodage est plus facile car il suffit de tronquer le mot reu.
Exemple : le code de lexemple prcdent est systmatique.

X m [Ik P ] = [X m X mP ]
Bits systmatiques

Exemple : code C(3,2)

01/10/2010

1
G=

Bits de parit
0
1

Codage Canal-BE

Mot de Mot de
donnes code
00

000

01

011

10

101

11

110

34

17

Exercice : code C(7,4)


Soit le code C(7,4) de matrice gnratrice C(7,4).
Donner les expressions des lments du mot de code cmj, o j=1,,n,
en fonction des lments du mot de donnes xmi, o i=1,,k.




1
0
G=
0

01/10/2010

0 0 0 1 0 1
1 0 0 1 1 1
0 1 0 1 1 0

0 0 1 0 1 1

Codage Canal-BE

35

Code dual dun code C(n,k)






Soit un code C(n,k) de matrice gnratrice G.


Code dual : code C(n,n-k) de matrice gnratrice H.
Proprit : tous les mots de code gnrs par G sont
orthogonaux ceux gnrs par H.
Forme particulire de la matrice H si le code gnr
par la matrice G est systmatique.

1
0
G=
0

0
1
0
0

0
0
1
0

01/10/2010

0
0
0
1

1
1
1
0

0
1
1
1

1
1
0

GHT = 0
C m HT = 0
G = [I k P]

H = PT I n k

1 1 1 0 1 0 0
H = 0 1 1 1 0 1 0
1 1 0 1 0 0 1
Codage Canal-BE

36

18

Capacit de dtection d'un code C(n,k)


2k mots de donnes



Soit un code C(n,k) de distance minimale dmin.


Capacit de dtection dun code : au plus dmin-1
erreurs.
Dtection : dmin-1 erreurs transforment un mot
de code en un autre mot qui n'est pas un mot
de code.
VENTUELLEMENT
MOT DE +
CODE

d>=dmin
ERREURS

= MOT DE
CODE

dmin

CERTAINEMENT
d<dmin
MOT DE +
ERREURS
CODE
01/10/2010

MOT DE
CODE

dmin n k + 1

Codage Canal-BE

37

Exemples


C(3,2) :



dmin=2, capacit de dtection : 1.


La rception de [010] implique au moins
une erreur.

C(5,1) :



dmin=5, capacit de dtection : 4.


La rception de [00010] implique au
moins une erreur.

01/10/2010

Codage Canal-BE

Mot de Mot de
donnes code
00

000

01

011

10

101

11

110

Mot de Mot de
donnes code
0

00000

11111

38

19

Calcul de la capacit de dtection


d'un code



Code C(n,k) = 2k mots de codes de longueur n parmi 2n mots possibles.


Lors dune transmission, le mot de code Cm subit une altration e pour
donner Y.
Pour n grand, le nombre d'erreurs non dtectables devient petit devant le
nombre d'erreurs dtectables.
2n -1 erreurs possibles
Exemple : C(7,4)
(autres que le mot nul)



16 mots de code, 15 erreurs non dtectables.


128-16=112 erreurs dtectables

2k 1
2n 2k

Y = Cm+e

2n mots
de code

2n-2k erreurs
dtectables

2k-1 erreurs non dtectables car 2k1 mots de code non nuls
01/10/2010

Codage Canal-BE

39

Capacit de correction d'un code C(n,k)


2k mots de donnes




Soit dmin, la distance minimale.


Capacit de dtection : dmin 1.
Capacit de correction t : partie entire
de la moiti de (dmin-1).
Pour pouvoir corriger ces erreurs, il faut
que le mot reu soit suffisamment prs
d'un mot de code existant.

dmin

d 1
t = Ent min
2

01/10/2010

Codage Canal-BE

40

20

Exemples


Code C(3,2), dmin=2 :







Rception de [010].
Dtection dune erreur.
Capacit de correction nulle.
Impossibilit de dcider quel
mot a t transmis : [000] ou

[011] ou [110].
Code rptition C(3,1) :


Capacit de dtection 2, capacit de


correction 1.
Rception de [001] : dtection dune
erreur et correction en [000].
01/10/2010

Mot de
donnes

Mot de
code

00

000

01

101

10

110

11

011

Mot de
donnes

Mot de
code

000

111

Codage Canal-BE

41

Limitation



Exemple : code rptition C(3,1).


Transmission de [000] et rception de [011], dtection dune erreur
et correction en [111].
Consquence :



en thorie, gnration derreurs !


en pratique, cas correspondants des conditions de transmission
inexploitables.

Les codes correcteurs ne peuvent fonctionner correctement que si le


BER (Bit Error Rate) avant correction est infrieur 10-1.

01/10/2010

Codage Canal-BE

42

21

Codes tendus et codes raccourcis




Code tendu C(n+1,k) gnr partir dun code C(n,k) : ajout dun bit
de parit (somme modulo 2 du mot de code) au mot de code gnr
par C(n,k) : 0 si nombre de 1 dans mot de code pair, 1 sinon.
Proprit : si C(n,k) de distance minimale dmin impaire, alors C(n+1,k)
de distance minimale dmin+1.
Code raccourci C(n-l,k-l) gnr partir dun code systmatique de la
forme C(n,k) : suppression des l premiers bits dinformation
(gnration des mots de code par G) :
Proprit : si le code C(n,k) est de distance minimale dmin, alors le
code C(n-l,k-l) a au moins une distance minimale de dmin.
Codes tendus et raccourcis utiles pour faire des multiples doctets.

01/10/2010

Codage Canal-BE

43

Conclusion sur les codes en blocs


linaires
Xm

CODEUR
Mot de code
1xn

Mot de donnes
1xk

Limitations des codes en blocs linaires




C m = X mG

Cm

Stockage de la matrice (espace mmoire


requis important),
Traitement temps rel impossible (traitement
bloc).

Matrice gnratrice
kxn
De la forme [Ik P]
pour les codes
systmatiques

Alternative : codes cycliques.


01/10/2010

Codage Canal-BE

44

22

Plan du cours
1.

Introduction

2.

Codes en blocs linaires


1.
2.
3.
4.

3.
4.

Matrice gnratrice et matrice de contrle de parit


Codes cycliques
Dcodage optimal soft-decision
Dcodage hard-decision

Codes convolutifs
Combinaisons de codes

01/10/2010

Codage Canal-BE

45

Codes cycliques


Famille de codes linaires ayant la proprit suivante : toute


permutation circulaire d'un mot de code C donne un autre mot de
code.
Reprsentation polynomiale des codes cycliques


Associer chaque mot de code, n composantes, un polynme C(p).

Proprits du polynme :




Nombre de coefficients : n, de 0 (n-1).


Degr infrieur ou gal (n-1).
Codes binaires : coefficients dans {0,1}.

C = [cn1cn2 ...c1c0 ]

C' = [cn2cn3 ...c0cn1 ]

C = [cn1cn2 ...c1c0 ] C (p ) = cn1 p n1 + cn2 p n2 + L + c1 p + c0


01/10/2010

Codage Canal-BE

46

23

Exemples
C = [1] C (p ) = 1

C = [10 ] C (p ) = p
C = [11] C (p ) = p + 1

C = [1101 ] C (p ) = p3 + p2 + 1

C = [1101101 ] C (p ) = p6 + p5 + p3 + p2 + 1

01/10/2010

Codage Canal-BE

47

Gnration de la permutation
cyclique dun mot de code



C = [c n 1cn 2 ...c1c0 ]
Comment passer de C C1 ?
Ide 1 : p C(p) mais p C (p) ne peut pas tre un mot de code car
il est de degr n si cn-1=1.
C1 = [c n 2c n 3 ...c0 c n 1 ]
Ide 2 : division de p C(p) par pn+1

C (p ) = cn1 p n1 + cn2 p n2 + L + c1 p + c0

pC (p ) = cn1 pn + cn2 p n1 + L + c1 p2 + c0 p

C1 (p ) = cn2 p n1 + cn3 p n2 + L + c0 p + cn1

pC (p ) = cn1 (p n + 1) + cn2 pn1 + L + c1 p2 + c0 p + cn1


pC (p ) = cn1 (p n + 1) + C1 (p )

01/10/2010

Codage Canal-BE

48

24

Gnration des mots de code par


permutation cyclique



C1 : reste de la division de pC(p) par pn+1.


Gnralisation :


Permutation de Ci de i lments : reste de la division de piC(p) par (pn+1)

pC (p ) = cn1 (pn + 1 ) + C1 (p )

C1 = [cn2cn3 ...c0cn1 ]

p iC (p ) = Q(p )(p n + 1 ) + Ci (p )

C i = [cni 1cni 2 ...cni +1cni ]

C = [cn1cn2 ...c1c0 ]
01/10/2010

Codage Canal-BE

49

Code cyclique et
multiplication polynomiale


Soit un polynme gnrateur


g(p) de degr (n-k), facteur
de pn+1 (g(p) divise pn+1).
Soit Xm(p) le polynme
dinformation coder.
Soit Cm(p) le polynme du
mot de code.

g(p ) = p nk + gnk 1 p nk 1 + L + g1 p + 1

X (p ) = xk 1 p k 1 + xk 2 p k 2 + L + x1 p + x0

Cm (p ) = Xm (p )g(p )

p7 + 1 = (p + 1 )(p3 + p2 + 1 )(p3 + p + 1 )
14243 14243
g(p )

g1 ( p )

Exemple avec n=7 : avec p7+1, possibilit


de gnrer deux codes cycliques C(7,4).
01/10/2010

Codage Canal-BE

50

25

0 0


1 0

2 0


3 0

4 0


5 0


6 0

7 0
=

8 1

9 1


10 1


11 1

12 1


13 1

14 1


15 1

Table de g(p)




g(p)=p3+p2+1
C(7,4)
Exemples :




X(p)=1 donne C(p)=g(p)


X(p)=p donne C(p)=g(p).p
X(p)=p+1 donne
C(p)=g(p)(p+1)=p4+p3+p+p3+p2+1=p4+p2+p+1

01/10/2010

Codage Canal-BE

1
51

Lien avec les matrices gnratrices





La notion de code dual existe mais nest pas utilise.


Matrice gnratrice dun code cyclique C(n,k) de polynme g(p)
constitue des lignes :






pk-1g(p)
pk-2g(p)

pg(p)
g(p)

01/10/2010

0
G=
M

g n k 1

Codage Canal-BE

g n k 1

52

26

Exemple : C(7,4)
g (p ) = 1 + p 2 + p 3
1
0
G=
0

01/10/2010

1 0 1 0 0 0
1 1 0 1 0 0

0 1 1 0 1 0

0 0 1 1 0 1

Codage Canal-BE

53

Construction de codes systmatiques




Codes systmatiques : k premiers bits constitus par les bits


dinformation.
Mthode :




Multiplier le polynme dinformation X(p) par pn-k.


Diviser pn-kX(p) par g(p).
Ajouter le reste de la division, not r(p), pn-kX(p).

pnk X (p ) = Q(p )g(p ) + r (p )


pnk X (p ) + r (p ) = Q(p )g(p )

01/10/2010

Codage Canal-BE

54

27

Exemple : C(7,4) et g(p) = p3+p+1








Mot coder X=[1001]


X(p)=p3+1
pn-kX(p)= p6+p3
Le reste de la division de pn-kX(p) par g(p) donne les bits de parit.
g=[1011].

01/10/2010

Codage Canal-BE

55

Mise en uvre de codes cycliques





Utilisation de registres dcalages.


Registre : case mmoire accessible par le processeur sans temps
daccs (de taille 64 bits pour les processeurs dits 64 bits).
Registre dcalage : registre de taille fixe dans lequel les bits sont
dcals chaque coup d'horloge.
Intrt des registres dcalages


01/10/2010

Utiles pour le traitement de flux de donns : peuvent traiter des flux


ininterrompus de bits.
Utiles pour la mise en uvre dapplications temps rel : un bit sortant
pour un bit entrant.

Codage Canal-BE

56

28

tapes de codage





Multiplier le polynme dinformation X(p) par pn-k : dcalage de


registres.
Diviser pn-kX(p) par g(p) : seule opration non triviale raliser.
Ajouter le reste de la division, not r(p), pn-kX(p) : remplir les cases
du registre.

logique combinatoire

sorties

entres
01/10/2010

Codage Canal-BE

57

Codeur cyclique


Basculement des interrupteurs aprs passage des k bits


dinformation.

g1
c0

polynme

c1

gn-k-1

cn-k-1
bits de
parit

pn-kX(p)

sortie
bits dinformation
01/10/2010

Codage Canal-BE

58

29

Exemple C(7,4)
g(p ) = 1 + p + p 3

Entre : 0110
Sortie : 0110001

c 0 c1c 2
000

g1=1

000

g2=0

110
c0

c1

c2
bits de parit

polynme dinformation
pn-kX(p)

sortie

101
100

bits dinformation
01/10/2010

Codage Canal-BE

59

Codes cycliques dans les protocoles


de communication


Protection des units de donnes de protocoles PDUs (paquets,


trames)


Les codes permettent de dtecter des erreurs mme si les champs de


commande (en-tte) sont cohrents et conformes au protocole.

Inconvnient : les codes cycliques dfinis avec n et k fixes alors que


les PDUs sont de tailles variables.
Implantation : utilisation dun codeur C(n,k) systmatique avec (n-k)
bits de redondance.
Quelle que soit la taille de la PDU, le nombre de bits de parit sera
toujours le mme : n-k.
Exemples : paquet IP, trame Ethernet.


01/10/2010

Avec un CRC de 16 bits, 16 bits de redondance seront produits, quelle


que soit la taille du bloc traiter.
Codage Canal-BE

60

30

Exemples : trames HDLC et PPP


01111110

Adresse Commande

Fanion
8 bits

8 bits

01/10/2010

Donnes >=0 FCS

8 bits

01111110

(FCS) : Frame Check Sequence


16 bits
x16+x12+x5+1

Codage Canal-BE

61

Exemple : trame Ethernet


G(x) = x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10
+ x8 + x7 + x5 + x4 + x2 + x + 1


CRC de degr 32

Contrle (4octets)
Padding (0-46 octets)
Donnes (0-1500 octets)

Longueur donnes (2 octets)


Adresse source : 6 octets
Adresse destination : 6 octets
Dlimiteur de dbut de trame : 1 octet
Prambule : 7 octets
01/10/2010

Codage Canal-BE

62

31

Capacit de dtection


Si lentre est constitue de blocs de K bits, la sortie est constitue de


blocs de K+(n-k) bits.
Le rapport entre le nombre derreurs non dtectes et le nombre
derreurs dtectes tend vers 1/[2(n-k)] lorsque K tend vers linfini.

1
K
2 1
1
1
2
=

2K +nk 2K 2nk 1 K + 2nk 1 2nk


K

01/10/2010

Codage Canal-BE

63

Codes BCH






Limitation des codes cycliques C(n,k) : pour un code C(n,k) quelconque, il faut
calculer toutes les distances entre les mots de code pour avoir dmin et en
dduire les capacits de dtection et de correction.
Optimisation possible : dfinir des codes pour lesquels le dmin est connu a priori.
Solution : codes BCH (Bose-Chaudhuri-Hocquenghem).
Paramtres des codes BCH binaires
n = 2m 1





k bits dinformation en entre


n bits de code la sortie
m entier suprieur ou gal 3
t entier reprsentant le pouvoir de correction du code.

n k mt
dmin = 2t + 1

Proprit importante : les codes BCH portent dans la dfinition mme de n et k,


leur capacit de correction.
01/10/2010

Codage Canal-BE

64

32

Reprsentation des polynmes


gnrateurs des codes BCH


Forme compacte dnoncer les


coefficients du polynme : notation en
octal



g(p)

13

15

11

23

721

2467

26

45

21

3551

247

435561

1 chiffre = 3 bits
bit le plus gauche = coefficient de
degr le plus grand

Tables existantes pour m compris entre


3 et 8, donc n compris entre 7 et 255
(Cf. Proakis).
Exemple : C(15,5)


2467 en octal = 010 100 110 111 en


binaire

31

255

g(p ) = p10 + p 8 + p5 + p 4 + p2 + p + 1
01/10/2010

Codage Canal-BE

65

Conclusion sur les codes


cycliques
Xm

CODEUR

Cm

Cm (p ) = X m (p )g(p )
Polynme gnrateur
de degr <= n -k

Mot de code
de degr <= n -1
Mot de donnes
de degr <= nk-1

01/10/2010

Codage Canal-BE

66

33

Plan du cours
1.

2.

Introduction

Codes en blocs linaires


1.
2.
3.
4.

3.
4.

Matrice gnratrice et matrice de contrle de parit


Codes cycliques
Dcodage optimal soft-decision
Dcodage hard-decision

Codes convolutifs
Combinaisons de codes

01/10/2010

Codage Canal-BE

67

Modle de la chane de transmission





Bits quiprobables.
Canal AWGN (Additive White Gaussian Noise) : ajout dune source de
bruit blanc gaussien, indpendant du signal mis, de PSD (Power
Spectral Density) N0/2.
chantillons

Bits

CODAGE

+1/-1

Bits cods

01/10/2010

DCODAGE
BRUIT

Bits
estims

chantillons
bruits

Codage Canal-BE

68

34

Dcodage optimal
soft-decision
Dcodage soft-decision = dcodage partir des valeurs des
chantillons reus et non pas sur des estimations de bits (0 ou 1).

Rle du dcodeur : chaque bloc de n bits, dcider quel est le mot de
code qui a t mis et en dduire le mot de donnes de k bits.

Le dcodeur optimal est celui qui maximise la probabilit de choisir le
bon mot de code (ou de minimiser la probabilit de ne pas choisir le
bon).
mot de code
vecteur de n
le plus probable
DCODEUR
chantillons bruits r
(bits estims)


2k mots
de code
01/10/2010

Codage Canal-BE

69

Modle des chantillons reus




Pour chaque mot Ci, les composantes cij du vecteur sont des 0 et des 1
(j=1n).
Les chantillons nj sont des variables alatoires gaussiennes,
indpendantes,centres, de variance N0/2.
chantillons

Bits

CODAGE

+1/-1

Bits cods

cij
01/10/2010

2cij-1
DCODAGE

BRUIT

chantillons
bruits

Codage Canal-BE

Bits
estims

rj=(2cij-1)+nj
70

35

Densit de probabilit des


chantillons de bruit


La densit de probabilit du vecteur n des n chantillons de bruit est


une gaussienne n dimensions.
n=[n0 nn]

p (n) = p(nj ) =
n

j =1

j =1

= (N0 )

01/10/2010

n
2

2
nj
exp
N
N
2 0
2 0

2
2
1

pnj(x)
x

n n2
exp j
j =1 N0
Codage Canal-BE

71

Densit de probabilit gaussienne


du vecteur r





La densit de probabilit du vecteur r des n chantillons reus est une


gaussienne n dimensions.
Hypothse : le mot Ci est mis.
La densit de probabilit de r est conditionne par le symbole mis.

r=[r0 rn]

r j = (2c ij 1) + n j n j = r j (2c ij 1)

01/10/2010

Codage Canal-BE

72

36

Expression de la densit de probabilit


p(r|Ci)


La densit de probabilit du vecteur des chantillons reus est


conditionne par le mot de code mis Ci.

Indpendance des chantillons de bruit

( )

p(r Ci ) = p rj cij = (N0 )


n

j =1

01/10/2010

n
2

n [rj (2cij 1 )]2


exp

N0
j =1

Codage Canal-BE

73

Rle du dcodeur



Entre : vecteur r des n chantillons bruits.


Sortie : estimation du mot de code mis (puis dcodage pour
restituer le mot de donne mis).
Rle du dcodeur : dcider quel mot de code a t mis en fonction
des observations disponibles : r.
Critre de dcision : le mot de code estim est, parmi tous les Ci, celui
qui a la probabilit doccurrence la plus forte (celui qui est le plus
probable) en fonction des observations ralises r.
Le mot de code estim est donc celui qui maximise la probabilit
P[Ci|r].

C = argmax P[Ci r ]
Ci

01/10/2010

Codage Canal-BE

74

37

Estimateurs


Estimateur MAP (Maximum A Posteriori)




Lestimateur du maximum a posteriori choisit la probabilit maximale


aprs avoir reu les observations.
Procdure : calculer la distribution P[Ci|r] et slectionner le mot de code
qui donne la plus grande valeur de P[Ci|r].

Estimateur du maximum de vraisemblance




Lestimateur du maximum de vraisemblance cherche le mot Ci qui


maximise la densit de probabilit des chantillons reus.
Estimateur MLSE : maximum likelihood sequence estimator.

= argmax p(r C )
C
i

= argmax P [C r ]
C
i

Ci

Ci

01/10/2010

Codage Canal-BE

75

quivalence des estimateurs ML et MAP





Utilisation de la rgle de Bayes.


Hypothses :






les mots sont quiprobables lmission : P[Ci]=cste,


les observations ne dpendent pas dun i particulier.

Estimateur ML et MAP quivalents.


Raisonnement partir de lestimateur ML car estimateur
asymptotiquement sans biais et efficace.

C = argmax P [C i r ]
Ci

01/10/2010

P[C i r ] =

p(r Ci )P[C i ]
p(r )

Codage Canal-BE

C = argmax p(r Ci )
Ci

76

38

Densit de probabilit p(r|Ci)





Densit de probabilit de r | Ci : gaussienne n dimensions.


chantillons indpendants donc densit de probabilit du vecteur =
produit des densits de probabilit sur les chantillons.

( )

p (r Ci ) = p rj cij = (N0 )
n

j =1

01/10/2010

n
2

n [rj (2cij 1)]2


exp

N0
j =1

Codage Canal-BE

77

Maximisation de la probabilit
conditionnelle

n
n [r (2cij 1)]2
argmaxp(r Ci ) = argmax (N0 ) 2 exp j

Ci
Ci
N0
j =1

1 n
= argmax (N0 ) [rj (2cij 1)]2
Ci
N0 j =1
2

1 n
2
= argmax [rj (2cij 1)]
Ci
N
0 j =1

n
2
= argmin[rj (2cij 1)] = argminD2 (r,Ci )
Ci
Ci
j =1

01/10/2010

Codage Canal-BE

78

39

Estimateur MLSE


Lestimateur MLSE cherche la distance euclidienne minimale entre les


n chantillons reus et les n lments des 2k mots de codes.
Circuit de dcision



Calcul de 2k distances euclidiennes D(r,Ci) i=1,..,2k.


Slection du mot de code Ci qui donne la distance la plus petite.

C = argmaxp(r Ci ) = argmin[rj (2cij 1)]2 = argminD2 (r,Ci )


Ci
Ci
Ci
j =1

01/10/2010

Codage Canal-BE

79

Circuit de dcision amlioration





Principe : chercher le mot le code le plus corrl avec le mot reu.


Comparaison de la squence de n valeurs rj aux 2k mots de codes
possibles par les mtriques CMi i=1,..,2k.
Slection du mot de code qui donne la mtrique la plus grande.

argmax p (r C i ) = argmax CMi


Ci

Ci

CMi = (2cij 1 )rj


n

j =1

argmin [rj (2cij 1)]2 = argmax 2rj (2cij 1)


Ci
Ci
j =1

j =1

01/10/2010

Codage Canal-BE

80

40

Limitation


Mthode simple mais trs coteuse en temps de calcul ds que k>10


(210 comparaisons chaque mot de n bits reu).
Rduction possible du nombre doprations par algorithme de Viterbi
(voir partie sur les codes convolutionnels).

01/10/2010

Codage Canal-BE

81

Probabilit derreur sur un mot de


code





En thorie : utilisation de la rpartition des poids


dans les mots de codes.
En pratique : utilisation dune borne suprieure
indpendante de la rpartition des poids.
Exemple : BPSK
forts SNR par bit donn, la probabilit derreur
pour une chane code est plus faible que pour une
chane non code.
faibles SNR par bit, cest linverse.

Chane code

Eb
E
1
Pnon _ cod < exp b Pcod < exp Rc dmin + k ln2
N0

2
N0
01/10/2010

Codage Canal-BE

Chane
non code

Eb/N0 (en dB)

Eb(c )k = nEb(nc )
82

41

Diffrence entre erreur sur un bit et


erreur sur un mot
x

Pb =
Probabilit
derreur sur 1 bit

Pmc
3

x : emplacement
des bits faux

1
[1 + 1 + 2] = 2 Pmc
2
3

Probabilit de recevoir un des


mots de code faux possibles

P
1
Pb = n mc
2 1 n

jC
j =1

j
n

Nombre moyen de bits


faux par mot de code

2n1
= n
Pmc
2 1
Pb

01/10/2010

PROPRIT

Pmc
2

Codage Canal-BE

si n >> 1
83

Conclusion sur le dcodage soft


decision


Dcodage = estimation du mot de code mis =


mot de code le plus proche du mot reu (distance
euclidienne).
Amlioration par mesure de corrlation.

01/10/2010

Codage Canal-BE

84

42

Plan du cours
1.

2.

Introduction

Codes en blocs linaires


1.
2.
3.
4.

3.
4.

Matrice gnratrice et matrice de contrle de parit


Codes cycliques
Dcodage optimal soft-decision
Dcodage hard-decision

Codes convolutifs
Combinaisons de codes

01/10/2010

Codage Canal-BE

85

Dcodage hard-decision






Seule modification du rcepteur : une dcision est prise sur chaque


chantillon du vecteur r avant dentrer dans le bloc de dcodage.
Dcodage par distance minimale.
Entre : mot de n bits.
Dcodage : comparaison entre le mot de code reu et les 2k mots de
code possibles et slection du mot de code le plus proche du mot
reu au sens de la distance de Hamming.

chantillons
bruits

01/10/2010

DCISION

DCODAGE

Codage Canal-BE

Bits
estims

86

43

Canal BSC




BSC = Binary Symetric Channel.


Ec = nergie transmise par bit cod.
N0/2 = densit spectrale de puissance du bruit.

Bits
cods

Bits cods
estims

probabilit
derreur par bit p

1-p

p
1

E
1
p = erfc c
2
N0

1-p

01/10/2010

Codage Canal-BE

87

Proprit du dcodeur





Dcodage optimal au sens de la probabilit derreur sur un mot de


code (maximum de vraisemblance).
Inconvnient : 2k comparaisons.
Amlioration : mthode du syndrome.

01/10/2010

Codage Canal-BE

88

44

Dcodage par syndrome et Look-up


Table (Table de vrification)






Cm, le vecteur des bits cods mis


Y, le vecteur des bits cods estims
H, la matrice de contrle de parit
S, le syndrome
e, un vecteur derreur dont les
composantes sont



Y = Cm + e
S = YHT = (Cm + e )HT

1 sil y a une erreur


0 sil ny en a pas.

01/10/2010

= eHT

Codage Canal-BE

89

Dcodage par syndrome




Dcodage par syndrome :






Y = Cm + ei

calcul du syndrome
reprage de lerreur correspondante
correction du mot reu

S = YHT

Intrt du dcodage par syndrome




Le vecteur S (de taille n-k) a des composantes




nulles lorsque lquation de contrle de parit


est satisfaite
non nulles sinon

= (Cm + ei )HT
= eiHT

Donc, 2n-k-1 erreurs dtectes.

C m = Y ei

01/10/2010

Codage Canal-BE

90

45

Exemple : code C(7,4)


type d' erreur

syndrome

1000000

100

0100000

010

0010000

001

0001000

110

0000100

011

0000010

111

0000001
01/10/2010

0
G=
1

H = 0

101
Codage Canal-BE

91

Exemple : code C(7,4)






Rception : [1001111] / Syndrome : [011]


Erreur correspondante : [0000100]
Correction = Rception + Erreur correspondante =
[1001011].
Limitation du dcodage par syndrome : un syndrome nul
signifie quil ny a pas d'erreur dtectable.
Exemple : si vecteur d'erreur = mot de code



01/10/2010

mot reu = mot de code + mot de code = mot de code.


Syndrome (mot de code)=0 donc pas derreur dtecte.

Codage Canal-BE

92

46

Dcodage des codes cycliques





Calcul du syndrome par division polynomiale.


Soient les polynmes C(p),Y(p) et e(p) associs respectivement au
mot de code C, au mot reu Y et lerreur e.
Procdure :



Division de Y(p) par le polynme gnrateur g(p).


Le reste de la division R(p), de degr infrieur ou gal n-k-1, reprsente
le polynme du syndrome.
Le syndrome est nul si Y(p) est un mot de code.

Y (p ) = C (p ) + e(p )

= X (p )g(p ) + e(p )

01/10/2010

Y (p ) = Q(p )g(p ) + R(p )


Codage Canal-BE

93

Division de Y(p) par g(p)


1.

2.

Les n bits du mot de code reu Y sont passs dans le


circuit (interrupteur en position 1).
Les n-k registres contiennent les bits du syndrome qui
sont achemins vers la sortie (interrupteur en position 2).

g1

gn-k-1
1

s0
s1
polynme reu Y(p)
01/10/2010

sn-k-1
Codage Canal-BE

2 sortie
syndrome
94

47

Look-up table





Aprs calcul du syndrome : recherche de lerreur correspondante ec


dans la table de vrification (look-up table) puis correction.
Solution utilise tant que n-k<20.
Sinon, utilisation de codes BCH dont la complexit calculatoire du
dcodage est mois importante.

C = Y ec

01/10/2010

Codage Canal-BE

95

Dernire tape : dcodage du mot


de code





1re ide : par une table donnant la correspondance entre les 2k


mots de codes et 2k mots de donnes (pas d'opration matricielle
disponible).
Inconvnient : il faut stocker la table.
2me ide : tirer profit de la proprit des codes systmatiques
(dcodage = troncature du mot de code).

01/10/2010

Codage Canal-BE

96

48

Remarque : protocoles de niveau


suprieur ou gal 2


Pour le CSMA/CD ou IP, le calcul du syndrome se fait en


temps rel : la dtection derreur sur une trame ou un
paquet est immdiate.
En revanche, le temps de correction est ici rdhibitoire
(recherche de la correspondance entre une valeur de
syndrome et une forme derreur particulire).
Consquence : pas de correction dans les couches
suprieures ou gale 2 (choix de la retransmission).

01/10/2010

Codage Canal-BE

97

Probabilit derreur en mode hard


decision



p est la probabilit derreur sur 1 bit.


dmin la distance minimale du code.

En pratique, le hard decision est moins performant que le soft


decision.

Pmc (2k 1 )[4 p(1 p )]

dmin
2

01/10/2010

Codage Canal-BE

98

49

Importance de dmin dans le


dimensionnement des codes
d min n k + 1


Pour les codes binaires, pas de codes pour atteindre la borne


suprieure.
Pour les codes non binaires, existence de codes (comme les codes RS)
permettant datteindre la borne suprieure.

01/10/2010

Codage Canal-BE

99

Codes non binaires









Code en bloc non binaire : ensemble de mots de code dans lesquels


les composantes appartiennent un alphabet q symboles.
En pratique : q=2k (k bits donne un symbole).
N : longueur du mot de code
K : longueur du mot de donne
Dmin : distance minimale du code

01/10/2010

Codage Canal-BE

100

50

Codes RS


Code RS (Reed Solomon) : code BCH


primitif de longueur N=q-1 sur GF(q) o
q est de la forme 2k.
Existence de tables pour les polynmes
gnrateurs.

01/10/2010

N = q 1 = 2k 1
K = 1,2,3,L, N 1
Dmin = N K + 1
K
Rc =
N
1

t = Ent (Dmin 1 )
2

= Ent (N K )
2

Codage Canal-BE

101

Avantages des codes RS




Correction derreurs groupes ou paquets derreurs (burst en


anglais).
Exemple : code RS(15,11), 15=24-1



Pouvoir de correction t = 2 lments quaternaires


Soit de 2 8 bits.

Codes utiliss pour le stockage des donnes sur support CD et dans


les systmes de communications subissant des erreurs par rafales.

01/10/2010

Codage Canal-BE

102

51

Exemple : DVB-S


Utilisation dun code raccourci RS(204,188,T=8) obtenu partir dun


code original RS(255,239, T=8) appliqu chaque groupe de 188
octets.

RS(204,188, T=8)
Ajout 51
octets 0
(dbut de
paquet)

Paquets
transport
MPEG-2
(188 octets)
01/10/2010

RS (255, 239)

Suppression 51
octets
(dbut de
paquet)

Paquets
transport
MPEG-2
protgs
(204 octets)

Codage Canal-BE

103

Conclusion sur le dcodage hard


decision


Dcodage = estimation du mot de code mis =


mot de code le plus proche (distance de
Hamming).
Amlioration : dcodage par syndrome.

01/10/2010

Codage Canal-BE

104

52

Plan du cours
2.

Introduction
Codes en blocs linaires

3.

Codes convolutifs

1.

Dcodage optimal algorithme de Viterbi


Codes poinonns

1.
2.

Combinaisons de codes

4.

01/10/2010

Codage Canal-BE

105

Codes convolutifs


Principe du codage :



Caractristiques des codes





chaque bloc de k bits en entre donne un bloc de n bits en sortie.


chaque bloc de n bits dpend des K blocs de k bits prcdents.
Taux de codage : k/n
Longueur de contrainte : K

Si les k bits dinformation se retrouvent dans le bloc de n bits en


sortie du codeur, le code est dit systmatique.
K blocs de k bits

k bits dentre
combinaison logique
01/10/2010

Codage Canal-BE

n bits de sortie
106

53

Reprsentation des codes





n sorties.
sortie = addition modulo 2 dune
slection des Kk bits dentre.
A chacune des n sorties correspond un
vecteur de Kk lments (fonction
gnratrice) :



ck1

Entre

1 si llment participe la somme,


0 sinon.

Exemple : codeur convolutif de


rendement Rc=1/2 et de longueur de
contrainte K = 3.



dk

dk-1

dk-2

Sorties

ck2

Entre constitue par des blocs de k = 1.


Sortie constitue par des blocs de n = 2.
01/10/2010

Codage Canal-BE

107

Exemple








Codeur 1/3
K=3 // k=1 // n=3
Registres initialiss 0.
Entre 1 Sortie 111
Entre 0 Sortie 001
Entre 1 Sortie 100
Fonctions gnratrices
g1, g2 et g3 :

entre
sortie

g1 = [100 ]
g2 = [101]
g3 = [111]

01/10/2010

Codage Canal-BE

108

54

Exemple


K=2, k=2, n=3

entre

g1 = [1011]

sortie

g2 = [1101]

g3 = [1010 ]
01/10/2010

Codage Canal-BE

109

Remarques


Caractre convolutif du codeur :




La sortie du codeur peut tre


interprte comme le produit de
convolution entre lentre du
codeur et la rponse du codeur
dfinie par ses fonctions
entre
gnratrices.

Autres formes de reprsentation






sortie

Arbre
Diagramme dtat
Treillis : reprsentation utile pour
l'algorithme Viterbi, algorithme
de dcodage le plus utilis pour
les codes convolutifs.
01/10/2010

Codage Canal-BE

110

55

Treillis dun code convolutif




3 informations fournies :



Transitions dun tat du codeur vers un autre en fonction des entres.


Valeurs des entres et des sorties correspondantes.

tat du codeur : tats des registres (hormis les cases mmoires


rserves aux entres).
00
Exemple : codeur C(1/2, 3).
00

11

entre
x

entre 0

01

00

10

01

sortie

entre 1

10

11

11

10
01

01/10/2010

Codage Canal-BE

111

Rgime transitoire et rgime permanent




Au bout de K
transitions, le treillis
atteint son rgime
permanent.

00
00

11

00
11

01
10

00
11

11

00
01
10

01
10

11

10
01

01/10/2010

Codage Canal-BE

112

56

Gnralisation





Code C(k/n,K).
2k branches entrant dans chaque nud.
2k branches sortant de chaque nud.
2k(K-1) tats possibles.
00
01
10
11

01/10/2010

Codage Canal-BE

113

Distance libre minimale (Hamming)




Distance minimale



le chemin tous-zros
le chemin partant et revenant ltat 00
tout zro en un nombre de minimal
01
de transitions.

000

Plus grande est la dmin, meilleur est le 10


code.
Existence de tables pour construire
11
des codes distance minimale la plus
grande (cf. Proakis).
Exemple : C(1/2,3), dmin = 5


000

000
011

111
001
110

100
010
101

dmin=6

fonctions gnratrices (en octal) : 5 et


7
01/10/2010

Codage Canal-BE

114

57

Plan du cours
2.

Introduction
Codes en blocs linaires

3.

Codes convolutifs

1.

Dcodage optimal algorithme de Viterbi


Codes poinonns

1.
2.

4.

Combinaisons de codes

01/10/2010

Codage Canal-BE

115

Dcodeur optimal


Estimateur squentiel du maximum de


vraisemblance MLSE : recherche, travers
le treillis, de la squence la plus
vraisemblable.
Distance de Hamming ou euclidienne
suivant quil sagit de hard ou soft decision.

01/10/2010

Codage Canal-BE

116

58

Explication du principe sur un exemple


simple



Soit le codeur C(1/3,3).


Il sagit daller de ltat 00 ltat
00 en trois transitions.
Hypothse : le rcepteur sait que
linformation envoye permet
daller de ltat 00 ltat 00 en
trois transitions.
Enjeu : choisir entre les deux
chemins possibles


Chemin i=0 : Entre : 000 ,


Sortie : 000 000 000
Chemin i=1 : Entre : 100 ,
Sortie : 111 001 011

entre
x

00
01

000

000

100

001

10

sortie

011

111

110

01/10/2010

000

11

010
101

Codage Canal-BE

117

Dmarche


Soit la squence reue : 0,5 -0,5 0,33 -0,4 0,3 -0,2 1,1 -0,2 -0,3
Principe : comparer la squence reue aux
squences possibles grce des
mtriques.


Calculer des mtriques transition par


transition puis les accumuler pour former
des mtriques de chemin.

Soft Decision : distance euclidienne


Hard Decision : distance de Hamming

01/10/2010

01

000

000

000
011

111
001

10

Deux solutions pour les mtriques




00

11

Codage Canal-BE

118

59

Donnes


Soient rjm les chantillons reus


j reprsente lindice de branche = 1,2,,B
m reprsente le numro du bit = 1,2,,n
chantillons rels utiliss par les dcodeurs soft decision .








Exemple pour B=3 et n=3 : 0,5 -0,5 0,33 -0,4 -0,3 -0,2
Soient yjm les dcisions binaires sur rjm

Valeurs binaires utilises par les dcodeurs hard decision .




1,1 -0,2 -0,3

Exemple pour B=3 et n=3 :


Soient les bits possibles cjm(i)

101

i reprsente le chemin possible

000
00

100
000

000

000
011

01
111
10
01/10/2010

001

Codage Canal-BE

119

PM (i ) = (j i )

Mthode

j =1

Calculer une mtrique pour chaque chemin possible et choisir le


chemin qui a la meilleure mtrique.
Les mtriques de chemin sobtiennent en additionnant les mtriques
sur chaque branche.
NA : Non Applicable

Optimisation

Hard Decision

Soft Decision

Corrlation

Maximiser

NA

Distance euclidienne

Minimiser

NA

Distance de Hamming

Minimiser

NA

(j i ) = rjm (2c(jmi ) 1)

(j i ) = [rjm (2c (jmi ) 1 )]

m=1

01/10/2010

m =1

Codage Canal-BE

(j i ) = y jm c (jmi )
m =1

120

60

Exemple : C(1/3,3)


Cas du hard decision


00

101

000

100

01
3

(j i ) = y jm c (jmi )

10

100

101

000

m=1

PM
PM

(0 )
(1 )

00

= 2 + 0 +1 = 3

000

000

011

01

= 1 +1 + 3 = 5

111
10

01/10/2010

000

001

Codage Canal-BE

121

Critre de dcision


Une fois les mtriques de chaque chemin calcules, il faut


slectionner le chemin qui a la meilleure mtrique.
Exemple : code C(1/3,3)


Si PM(0)=3 et PM(1)=5 et si la mtrique est fonde sur le calcul de distance


de Hamming, alors le meilleur chemin est le chemin 0.

i = arg min[PM (i ) ]
i

01/10/2010

Codage Canal-BE

122

61

Dernire tape : le dcodage




Remonter le treillis de ltat


darrive ltat de dpart et reparcourir le treillis vers la droite
pour dcoder les bits mis.
Exemple : 000

00

101

000

100
100

01
10

00

101

000

000

000

000
011

01
111
10
01/10/2010

001

Codage Canal-BE

123

Calcul des mtriques de chemins la


4me transition



Il y a 4 chemins possibles.
Le fait de rajouter une transition ne modifie en rien la conclusion
tablie la transition prcdente.
partir de la transition 3, le chemin (1) peut tre supprim. Le
chemin (0) est dit chemin survivant.
Transition 4

00

000

000

111

11
01/10/2010

000

011

01
10

000

001

111

Transition 3
Codage Canal-BE

124

62

Consquence du principe du chemin


survivant





La rduction du nombre de chemins rduit la complexit de


lalgorithme.
Exemple : seuls deux chemins sont tester la 4me transition.
Gnralisation : chaque transition, pour chaque tat, ne conserver
quun seul chemin.
00

000

000

000

011

01
Remarque : il faut que le treillis ait
atteint son rgime permanent (cad
que tous les tats soient atteints).

000

111
10

111

001

Transition 3
11

01/10/2010

Codage Canal-BE

125

Dcodage


Aprs rception complte


du bloc de donnes,
slection du chemin le plus
probable et dcodage.

00

01

10

11

6
Dcodage : 0101

01/10/2010

Codage Canal-BE

126

63

Algorithme de Viterbi : rcapitulatif






chaque transition, calculer toutes les mtriques de branches.


Jusqu la transition K, calculer les mtriques de tous les chemins.
A la fin de la Kime transition, slectionner les 2k(K-1) chemins survivants
(1 par tat).
partir de la transition K+1,




calculer toutes les mtriques de branches,


les ajouter aux mtriques des chemins survivants,
et slectionner les nouveaux chemins survivants.

Aprs la rception complte du bloc de donnes, slectionner le


meilleur chemin survivant et en dduire les bits mis.

Inconvnient de lalgorithme de Viterbi




01/10/2010

Grand retard introduit au dcodage sur de grands blocs de donnes.

Codage Canal-BE

127

Observations empiriques


En thorie : les chemins survivants peuvent provenir de plusieurs


chemins.
En pratique : les chemins survivants proviennent tous dun mme
chemin (avec une probabilit voisine de 1).
Consquence : si tous les chemins survivants la transition T
proviennent dun mme chemin, il est possible de produire des bits
de sortie avant mme que le bloc de donnes ne soit compltement
trait, cad la transition T-D.

00
01
10
11
01/10/2010

Codage Canal-BE

128

64

Mthode de dcodage : fentre


coulissante




la transition T, sortie du bit correspondant la transition T-D.


Valeur de D empirique : 5K.
Dgradations ngligeables sur les performances.


T-D

00
01
10
11

01/10/2010

Codage Canal-BE

129

Limitation





Si k bits en entre et longueur de contrainte K, alors 2k(K-1) tats, donc


2k(K-1) mtriques et 2k mtriques calcules pour chaque tat.
Complexit calculatoire augmente exponentiellement avec k et K.
Algorithme de Viterbi rserv pour petites valeurs de k et K (quelques
units).
Autres algorithmes de dcodage


01/10/2010

Squentiels : Fano (adapt pour les grandes longueurs de contrainte),


Stack, Feedback.
Algorithmes sorties soft : BCJR (Bak, Cocke, Jelinek, Raviv), SOVA (Soft
Output Viterbi Algorithm).

Codage Canal-BE

130

65

Algorithme BCJR


Algorithme soft input (chantillons rels lentre du dcodeur)


et soft output (sorties sous la forme de rapport de
vraisemblance sur la valeur des bits).
Algorithme de dcodage de base des turbo-codes.

01/10/2010

Codage Canal-BE

131

Plan du cours
Introduction
Codes en blocs linaires

1.
2.

Codes convolutifs

3.

Dcodage optimal algorithme de Viterbi


Codes poinonns

1.
2.

4.

Combinaisons de codes

01/10/2010

Codage Canal-BE

132

66

Codes fort rendement




Codes fort taux de codage (rendement), du type (n-1)/n.

Avantage : conomie de bande passante (peu de bits de redondance


ajouts par bit dinformation).
Inconvnient des codes fort rendement : implique grande
complexit calculatoire du dcodeur.
Solution : construire des codes fort rendement partir de codes
faible rendement et en supprimant des bits lmission.
Technique du poinonnage

Avantage :




Exemple : .

Gnration de codes (n-1)/n par poinonnage de codes 1/n.


codes fort rendement de type (n-1)/n,
dcodage peu calculatoire des codes 1/n.

01/10/2010

Codage Canal-BE

133

Opration de poinonnage







Suppression priodique de bits la sortie du codeur.


Code de dpart : code 1/n.
Priode de poinonnage P.
p11
p
P bits en entre du codeur.
21
nP bits en sortie.
P=
M
Utilisation dune matrice de poinonnage P







pn1

1 si le bit est transmis


0 sinon

p21 L p1P
p22
p2P

M
M

pn2 L pnP

Suppression de N bits.
Taux de la forme : P/(nP-N) avec N entier de 0 (n-1)P-1.
Taux de la forme : P/(P+M) avec M=1,2,,(n-1)P.

01/10/2010

Codage Canal-BE

134

67

Exemple





Taux de codage vis :


Taux de codage de dpart : 1/3
n=3, P=3, nP=9, N=5
Taux final : P/(nP-N) = 3/(9-5)=3/4

1 1 1
P = 1 0 0

0 0 0
bits poinonns

1101
entre
1101

1001
x

01/10/2010

0011

P = 1

1
0
0

sortie
111011

Codage Canal-BE

135

Dcodage des codes poinonns




Rappel : lintrt des codes poinonns rside dans leur construction


partir dun code de rendement 1/n.
Objectif : utiliser le dcodeur correspondant au code de rendement
1/n.
Enjeu : remplacer les bits poinonns par des informations qui
ninfluencent pas les dcisions prises par le dcodeur.


Pas de rajout de 0 ou de 1.

Indication : codage des bits par +1/-1 avant transmission dans le


canal.
Solution : rajouter des chantillons 0 aux endroits o les bits ont t
poinonns et utiliser Viterbi avec le treillis du code 1/n.

01/10/2010

Codage Canal-BE

136

68

Proprits des codes poinonns




Distance minimale


Possibilit de chercher la matrice de poinonnage qui donne la distance


minimale dmin la plus grande.
La distance minimale dmin du code poinonn est gale ou infrieure dun
bit la distance minimale du code fort taux de codage sans
poinonnage.

Inconvnient


Une erreur dans un code poinonn se propage plus longtemps quune


erreur dans un code non poinonn.
Consquence : fentre dobservation plus longue que 5K.

01/10/2010

Codage Canal-BE

137

Exemple : DVB-S


Code de base convolutif de rendement


et de longueur de contrainte K=7.
Peut tre poinonn pour donner des
codes de rendement 2/3, , 5/6 et 7/8.

01/10/2010

Codage Canal-BE

138

69

Plan du cours
1.
2.
3.
4.

Introduction
Codes en blocs linaires
Codes convolutifs
Combinaisons de codes

01/10/2010

Codage Canal-BE

139

Combinaisons de codes




Concatnation de codes
Codage source canal conjoint
HARQ (Hybrid Automatic Repeat Request)

01/10/2010

Codage Canal-BE

140

70

Oprations sur les codes


Cod 1

Cod 2

Cod 1

Cod 2

chane

Cod 1

Un codeur

Decod. 1

chane

Decod. 1

chane

Decod. 2

Decod. 1

Deux codeurs diffrents

Decod. 2

Deux codeurs
identiques

erreurs
01/10/2010

Codage Canal-BE

141

Concatnation de codes









donnes dentre

En pratique :
Code extrieur non binaire C(N,K),
Code intrieur binaire C(n,k).

codeur C(N,K)

Blocs dentre de taille kK bits, spars en K blocs


(symboles) de k bits chacun et cods en N blocs de k
bits chacun par C(N,K).
Chacun des symboles de k bits est cod en mots de
code de n bits C(n,k).
Code rsultant C(Nn,Kk).
Taux de codage : Kk/Nn.
Dcodage hard decision pour les deux codeurs
possibles.
Dcodage soft decision possible pour le code intrieur
(si 2k pas trop lev).
01/10/2010

Codage Canal-BE

codeur C(n,k)
Modulateur
Canal
Dmodulateur
Dcodeur C(n,k)
Dcodeur C(N,K)
donnes de sortie
142

71

Combinaison srie et parallle


taux de codage : k/n

m
blocs de
k bits

m blocs de p bits
C(p,k)

Entrelaceur
bloc de longueur
N=mp

m blocs de p bits
C(n,p)

m
blocs de
n bits

taux de codage : k/(n1+n2-k)


m blocs de k bits

m blocs de k bits
Entrelaceur
bloc de longueur
N=mk
01/10/2010

C(n1,k)
C(n2,k)

m blocs de (n1-k) bits


m blocs de (n2-k) bits

Codage Canal-BE

143

Exemple : DVB-S


Code RS et code convolutif spars par un entrelaceur de type


Forney.

01/10/2010

Codage Canal-BE

144

72

Dcodage des concatnations srie


ou parallle


Dcodage itratif (soft-in, soft-out) de type MAP :





Benedetto (1998) pour les codes srie,


Berrou (1993) pour les codes parallle.

Famille des turbo-codes.

01/10/2010

Codage Canal-BE

145

Turbo-Codes



Utiliser les rsultats du deuxime dcodeur dans le premier codeur.


Besoin de dcodeurs produisant une information non binaire (rapport de
vraisemblance) sur les bits : utilisation de codes convolutifs et dun algorithme de
dcodage de type BCJR.
Performances proches des limites thoriques de Shannon (exemple : code ,
N=216, 18 itrations, 10-5 pour SNR=0,6 dB).
Limitations



Retard et complexit calculatoire compenss par les excellentes performances.


Meilleures performances avec une concatnation srie pour des BER infrieurs 10-2.

Decod. 1

Decod. 2

Dcision

01/10/2010

Codage Canal-BE

146

73

Codage source canal conjoint





Exemple : protection hirarchique dans le GSM.


Sortie du codeur de parole :





260 bits toutes les 20 ms (soit dbit de 13 kbit/s).

Classement des 260 bits suivant leur criticit dans le rendu


du signal de parole.
Principe : mieux protger les bits les plus sensibles.
Rsultat : 3 classes, de la plus sensible la moins sensible :
50, 132 et 78 bits.

01/10/2010

Codage Canal-BE

147

Protection hirarchique






La 1re classe est code par un CRC de 3 bits : 50+3=53.


La 2me classe (132 bits) est concatne aux 53 bits (+ 4 bits),
soit 189 bits.
Le tout est cod par un code convolutif de rendement : 378
bits la sortie.
La 3me classe est concatne (78 bits) sans protection.
Total : 456 bits toutes les 20 ms (soit dbit de 22,8 kbit/s).

01/10/2010

Codage Canal-BE

148

74

ARQ

Vers les
couches
suprieures

DATA CRC

CRC CHECK

Demande de
retransmission

OK

OK

DATA CRC

01/10/2010

Codage Canal-BE

HARQ Type I

DATA CRC FEC

Vers les
couches
suprieures

DECOD FEC

Demande de
retransmission

DATA CRC FEC

01/10/2010

149

CRC CHECK

OK

OK

Amlioration BER/FER
Augmentation de lefficacit
spectrale
Codage Canal-BE

150

75

Amlioration : dcodeurs
Chase Combining

DATA CRC FEC

DECOD FEC

Demande de
retransmission

soft et
Vers les
couches
suprieures
CRC CHECK

OK

OK

STOCKAGE

DATA CRC FEC

DECOD FEC

01/10/2010

Codage Canal-BE

CRC CHECK

OK

OK
151

mission HARQ Type II


BITS DE PARIT
DATA CRC

COD FEC

POINONNAGE

FEC1 FEC2 FEC3

PREMIRE MISSION
01/10/2010

DATA CRC FEC1


Codage Canal-BE

152

76

Rception HARQ Type II


REDONDANCE INCRMENTALE
DATA CRC FEC1

DECOD FEC

Demande de
retransmission

Vers les
couches
suprieures

CRC CHECK

OK

OK

STOCKAGE

DATA CRC FEC2

DECOD FEC

CRC CHECK

FEC2

OU
01/10/2010

Codage Canal-BE

OK

OK
153

Conclusion gnrale



Codage canal : code correcteurs d'erreurs


Familles de codes tudies : codes en blocs linaires, codes cycliques,
codes convolutifs.
1. Introduction
Applications :
2.
Codes en blocs linaires



Transport de donnes
Stockage de donnes

1.
2.
3.
4.

3.

Codes convolutifs
1.
2.

4.
01/10/2010

Matrice gnratrice et matrice de


contrle de parit
Codes cycliques
Dcodage optimal soft-decision
Dcodage hard-decision
Dcodage optimal algorithme de
Viterbi
Codes poinonns

Combinaisons de codes

Codage Canal-BE

154

77

Annexe : rappels dalgbre




Rappels sur les corps, les groupes et les espaces vectoriels.

01/10/2010

Codage Canal-BE

155

Rappel sur les corps




Corps = ensemble G d'lments muni de deux oprations


(l'addition + et la multiplication . ) vrifiant les proprits
suivantes :







L'ensemble G muni de l'addition + est un groupe commutatif.


L'lment neutre de l'addition est not 0.
L'ensemble des lments non-nuls de G muni de la multiplication . est un
groupe commutatif.
L'lment neutre de la multiplication . est not 1.
La multiplication est distributive par rapport l'addition.

01/10/2010

Codage Canal-BE

156

78

Rappel sur les groupes




Un ensemble G sur lequel est dfini une opration * est un groupe si






L'opration est associative,


G contient un lment e (appel lment neutre de G),
Pour chaque lment a de G, il existe un lment a' de G appel inverse
de a.

a*e = e*a = a

01/10/2010

a * a' = a'*a = e

Codage Canal-BE

157

Espaces vectoriels


Les mots de donnes et les mots de code appartiennent respectivement aux


espaces vectoriels Vk et Vn. Ces espaces vectoriels sont munis de laddition
modulo-q et de la multiplication modulo-q sur un corps de Galois GF(q).
Soit V un ensemble sur lequel est dfinie laddition "+" et soit F un corps. La
multiplication "." est dfinie entre les lments de F et les lments de V. Les
lments de V sont des vecteurs; ceux de F, des scalaires.
V est un espace vectoriel sur le corps F si :






V muni de l'addition + est un groupe commutatif.


Pour chaque lment a dans F et chaque lment v dans V, a.v est un lment de V.
La multiplication est distributive par rapport laddition.
La multiplication est associative.
Si 1 est l'lment neutre pour la multiplication, alors 1.v=v.

01/10/2010

Codage Canal-BE

158

79

Вам также может понравиться