Upload
wided-souid-miled
View
2
Download
1
Tags:
Embed Size (px)
DESCRIPTION
codage canal
Citation preview
1
TS219 CODAGE CANAL
Benot ESCRIG
ENSEIRB-MATMECA/IRIT
01/10/2010 Codage Canal-BE 1
Bibliographie
J. PROAKIS : Digital Communications,
Ed. McGraw Hill, 2001.
S. LIN, D.J. COSTELLO : Error Control Coding : Fundamentals and Applications,
Ed. Prentice-Hall, 1983.
A. GLAVIEUX, M. JOINDOT : Communications numriques. Introduction,
Ed. Masson, 1996.
01/10/2010 Codage Canal-BE 2
2
Plan du cours
1. Introduction
2. Codes en blocs linaires
3. Codes convolutifs
4. Combinaisons de codes
01/10/2010 Codage Canal-BE 3
Plan du cours
1. Introduction
1. Contexte
2. Principe
2. Codes en blocs linaires
3. Codes convolutifs
4. Combinaisons de codes
01/10/2010 Codage Canal-BE 4
3
Contextes dapplication
01/10/2010 Codage Canal-BE 5
0 1 0 1 0 0 1 1 0 0 0 1 1 1
0 1 0 0 0 0 1 1 1 0 0 1 1 1
DONNES ORIGINALES(donnes mises/stockes)
DONNES TRAITER (donnes reues/lues)
Systmes de tlcommunications 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
Stockage : criture sur support physique (CD, disque dur).
Causes de laltration : CD ray,
Rsultat : les donnes lues sont diffrentes des donnes crites.
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.
Fort impact : un bit faux dans le codage dun numro de carte bleue .
Faible impact : plusieurs paquets manquants dans le codage dune conversation tlphonique.
01/10/2010 Codage Canal-BE 6
DONNESBLOC UTILISATEUR
DES DONNES
4
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 7
Solutions au dessus de la couche physique
Couche application : interpoler entre les donnes prcdentes et les donnes suivantes
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.
Couches rseau (2,3,4) : solliciter lmission de nouvelles donnes
Mcanisme ARQ (Automatic Repeat reQuest).
01/10/2010 Codage Canal-BE 8
RCEPTION
1 3
1 2 3
TRAITEMENT
4
4
OKtransmission test
demande de retransmission
vers la couche suprieure
OK
5
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
Adapter le codage au canal de transmission pour amliorer les performances en termes de probabilit derreur binaire Pb.
01/10/2010 Codage Canal-BE 9
metteur rcepteurcanalcodage dcodage
Pbc
6
Limitation des codes correcteurs
Si les erreurs sont rares, elles sont effectivement corriges.
Sinon, le dcodeur va gnrer des erreurs l o il ny en avait pas.
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
000 110 000 010 111 110 111 000
000 110 000 010 111 110 111 000
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.
01/10/2010 Codage Canal-BE 12
Cas non cod Cas cod
Nombre de bits mis / bloc k n
Dbit k/Tbloc n/Tbloc
k nCODEUR
Donnes non codes Donnes codes
Dbit k/n . D D (fixe)
7
Enjeu des codes correcteurs derreurs
Plus il y a de redondance,
Plus la capacit de correction est grande.
Plus la consommation en bande passante est grande.
Enjeu : fournir la meilleure capacit de correction en utilisant le moins de bits de redondance.
Intrt pour les systmes de tlcommunications 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
Plan du cours
1. Introduction
1. Contexte
2. Principe
2. Codes en blocs linaires
3. Codes convolutifs
4. Combinaisons de codes
01/10/2010 Codage Canal-BE 14
8
Principe du codage
nk
Rc =
01/10/2010 Codage Canal-BE 15
Ajouter au message transmettre des bits de redondance selon une loi donne.
Taux de codage Rc.
Exemple : code rptition C(3,1)
Si 0, alors 000. Si 1, alors 111.
k nCODEUR
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.
01/10/2010 Codage Canal-BE 16
kn DCODEUR
9
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.
01/10/2010 Codage Canal-BE 17
Code rptition0 donne 000 1 donne 111
DCODEUR 1110
DONNES REUES
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.
01/10/2010 Codage Canal-BE 18
Code rptition0 donne 00 1 donne 11
DCODEURdtection
erreur
01
Code rptition0 donne 000 1 donne 111
DCODEURdtection
erreur
110DCODEURcorrection 0
DCODEURcorrection 1
10
Historique
1948 : Shannon (thorie de linformation).
1950 : Hamming.
1950-1970 : codes en blocs et codes cycliques, BCH (Bose-Chaudhuri-Hocquenghem) 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
1. Introduction
2. Codes en blocs linaires1. Matrice gnratrice et matrice de contrle de parit
2. Codes cycliques
3. Dcodage optimal soft-decision
4. Dcodage hard-decision
3. Codes convolutifs
4. Combinaisons de codes
01/10/2010 Codage Canal-BE 20
11
Codes en blocs linaires
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.
01/10/2010 Codage Canal-BE 21
n
qn
code composante valeur
q=2 binaire bit {0,1}
q2 non binaire symbole {0,,q-1}
01010010
01210210
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.
01/10/2010 Codage Canal-BE 22
=
0 1 2 3 2 1 1 2
00 01 10 11 10 01 01 10
12
Dfinition dun code C(n,k)
Association de 2k mots de code de n bits aux 2k mots de donnes de kbits.
Exemple C(4,2) : les 4 (22) mots de code sont choisis parmi les 16 (24) mots de 4 bits.
01/10/2010 Codage Canal-BE 23
2k mots de k bits
2n mots de n bits
slection de 2k mots de n bits
CODE
n=4
2n=16
Mot de donnes
Mot de code
00 1010
01 0010
10 0110
11 1011
Gnralisation aux codes non binaires
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
1 symbole en entre : 0,1,2.
2 symboles en sortie : (0,1,2) x (0,1,2).
01/10/2010 Codage Canal-BE 24
n
qn
Mot de donnes Mot de code
0 12
1 20
2 22
n=2
qn=32
13
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).
01/10/2010 Codage Canal-BE 25
{ }{ }{ }3,2 111 011 011 110
1,0 100 010 001 000
3,2,1,0 111 011 001 000
===
w
w
w
Oprations sur les mots de code et les mots de donnes
Les composantes des vecteurs appartiennent un alphabet qsymboles.
Alphabet muni de l'addition modulo-q et de la multiplication modulo-q = 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
011
100
10+
101
000
10
1022
0211
2100
210+
1202
2101
0000
210
14
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 Hammingminimale entre deux mots de code : dmin.
Exemple : C(3,2), dmin=2.
Mot de donnes
Mot de code
00 000
01 101
10 110
11 011
[ ] [ ]( ) 2110,101 =D
01/10/2010 Codage Canal-BE 27
Plan du cours
1. Introduction
2. Codes en blocs linaires1. Matrice gnratrice et matrice de contrle de parit
2. Codes cycliques
3. Dcodage optimal soft-decision
4. Dcodage hard-decision
3. Codes convolutifs
4. Combinaisons de codes
01/10/2010 Codage Canal-BE 28
15
Dfinitions et Notations
[ ]mkmmm xxx ...21=X
01/10/2010 Codage Canal-BE 29
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-upletsforment un sous-espace vectoriel de Vn, espace vectoriel des mots de n bits.
( )[ ]mnkmmkmmm ccccc ...... 121 +=CCODEURXm Cm
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.
01/10/2010 Codage Canal-BE 30
xm1
g1j g2j gij gkj
xm2 xmi xmk
m=1,,2k
=
=k
i
miijmj xgc1
njgxgxgxc kjmkjmjmmj ,,2,1 2211 LL =+++=
16
Gnration des n composantes de Cm
k
k
i
miijmj
m
njxgc
ki
21
1
1
1
=
=
01/10/2010 Codage Canal-BE 31
Pour n composantes, n combinaisons linaires diffrentes.
Le codeur est entirement dfini par n CLs.
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.
GXC mm =
Matrice gnratrice
CODEURXm Cm
=
=
knkk
n
n
k ggg
ggg
ggg
L
MMM
L
L
M
21
22221
11211
2
1
g
g
g
Gkmkmmm xxx gggC +++= ...2211
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.
01/10/2010 Codage Canal-BE 32
k n-kCODEUR k
17
Forme de la matrice gnratrice pour un code systmatique
[ ]
( )
( )
( )
==
knkkk
kn
kn
k
ppp
ppp
ppp
L
MMM
L
L
L
OOM
MO
L
21
22221
11211
100
0
10
001
PIG
01/10/2010 Codage Canal-BE 33
Ik matrice identit et P matrice k x (n-k).
Intrt des codes systmatiques
[ ] [ ]PXXPIX mmkm =
01/10/2010 Codage Canal-BE 34
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.
Bits systmatiques Bits de parit
Exemple : code C(3,2)
Mot de donnes
Mot de code
00 000
01 011
10 101
11 110
=
110
101G
18
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.
01/10/2010 Codage Canal-BE 35
=
1101000
0110100
1110010
1010001
G
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.
01/10/2010 Codage Canal-BE 36
0GH =T
0HC =Tm
[ ]PIG k=
[ ]knT = IPH
=
1101000
0110100
1110010
1010001
G
=1001011
0101110
0010111
H
19
Capacit de dtection d'un code C(n,k)
01/10/2010 Codage Canal-BE 37
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.
MOT DE CODE
d>=dminERREURS
MOT DE CODE
VENTUELLEMENT
d
20
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.
Exemple : C(7,4)
16 mots de code, 15 erreurs non dtectables.
128-16=112 erreurs dtectables
01/10/2010 Codage Canal-BE 39
Y = Cm+e
2n mots de code
2n -1 erreurs possibles (autres que le mot nul)
2k-1 erreurs non dtectables car 2k1 mots de code non nuls
2n-2k erreurs dtectables
kn
k
2212
Capacit de correction d'un code C(n,k)
=2
1mindEntt
01/10/2010 Codage Canal-BE 40
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.
2k mots de donnes
dmin
t
21
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].
Mot de donnes
Mot de code
00 000
01 101
10 110
11 011
01/10/2010 Codage Canal-BE 41
Mot de donnes
Mot de code
0 000
1 111
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
22
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
Limitations des codes en blocs linaires
Stockage de la matrice (espace mmoire requis important),
Traitement temps rel impossible (traitement bloc).
Alternative : codes cycliques.
01/10/2010 Codage Canal-BE 44
GXC mm =CODEURXm Cm
Mot de code1 x n
Mot de donnes1 x k
Matrice gnratricek x n
De la forme [Ik P] pour les codes systmatiques
23
Plan du cours
1. Introduction
2. Codes en blocs linaires1. Matrice gnratrice et matrice de contrle de parit
2. Codes cycliques
3. Dcodage optimal soft-decision
4. Dcodage hard-decision
3. Codes convolutifs
4. 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}.
01/10/2010 Codage Canal-BE 46
[ ] ( ) 0122110121 ... cpcpcpcpCcccc nnnnnn ++++== LC
[ ][ ]1032
0121
...'
...
==
nnn
nn
cccc
cccc
C
C
24
Exemples
01/10/2010 Codage Canal-BE 47
[ ] ( )[ ] ( )[ ] ( )[ ] ( )[ ] ( ) 11101101
11101
111
10
11
2356
23
++++==
++==
+====
==
pppppC
pppC
ppC
ppC
pC
C
C
C
C
C
Gnration de la permutation cyclique dun mot de code
( )( )
( ) 10231210
21
121
012
21
1
++++=
++++=
++++=
n
n
n
n
n
n
n
n
n
n
n
n
n
cpcpcpcpC
pcpcpcpcppC
cpcpcpcpC
L
L
L
01/10/2010 Codage Canal-BE 48
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.
Ide 2 : division de p C(p) par pn+1
[ ]0121 ... cccc nn =C
[ ]10321 ... = nnn ccccC
( )( ) ( )pCpcppC
cpcpcpcpcppC
n
n
n
n
n
n
n
11
102
11
21
)1(
)1(
++=
++++++=
L
25
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)
01/10/2010 Codage Canal-BE 49
( ) ( ) ( )pCpcppC nn 11 1 ++=
[ ]0121 ... cccc nn =C
[ ]10321 ... = nnn ccccC( ) ( )( ) ( )pCppQpCp ini ++= 1 [ ]inininini cccc += 121 ...C
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.
( )( )( ) ( ) ( )pgpXpC
xpxpxpxpX
pgpgppg
mm
k
k
k
k
kn
kn
kn
=++++=
++++=
012
21
1
11
1 1
L
L
01/10/2010 Codage Canal-BE 50
( )( )( )
( )( )4342143421
pgpg
pppppp
1
1111 3237 +++++=+
Exemple avec n=7 : avec p7+1, possibilit de gnrer deux codes cycliques C(7,4).
26
Table de g(p)
=
1101001
0110001
1000101
0011101
1111111
0100111
1010011
0001011
1100010
0111010
1001110
0010110
1110100
0101100
1011000
0000000
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
01/10/2010 Codage Canal-BE 51
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
Lien avec les matrices gnratrices
=
1100
01
10
0011
1
1
LL
OM
MOOO
LL
kn
kn
g
g
G
01/10/2010 Codage Canal-BE 52
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)
27
Exemple : C(7,4)
( ) 321 pppg ++=
01/10/2010 Codage Canal-BE 53
=
1011000
0101100
0010110
0001011
G
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).
01/10/2010 Codage Canal-BE 54
( ) ( ) ( ) ( )( ) ( ) ( ) ( )pgpQprpXp
prpgpQpXp
kn
kn
=+
+=
28
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
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.
01/10/2010 Codage Canal-BE 56
29
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.
01/10/2010 Codage Canal-BE 57
entres
sortieslogique combinatoire
Codeur cyclique
Basculement des interrupteurs aprs passage des k bits dinformation.
01/10/2010 Codage Canal-BE 58
1 g1 gn-k-1
bits dinformation
c0 c1 cn-k-1
polynme pn-kX(p)
sortie
bits de parit
30
Exemple C(7,4)
01/10/2010 Codage Canal-BE 59
( ) 31 pppg ++=
1 g1=1
bits dinformation
c0 c1 c2
polynme dinformation pn-kX(p)
sortie
bits de parit
g2=0
100
101
110
000
000
210 cccEntre : 0110Sortie : 0110001
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.
Avec un CRC de 16 bits, 16 bits de redondance seront produits, quelle que soit la taille du bloc traiter.
01/10/2010 Codage Canal-BE 60
31
Exemples : trames HDLC et PPP
01/10/2010 Codage Canal-BE 61
01111110 01111110Adresse Commande Donnes >=0 FCS
Fanion8 bits
8 bits 8 bits (FCS) : Frame Check Sequence16 bits
x16+x12+x5+1
Exemple : trame Ethernet
CRC de degr 32
01/10/2010 Codage Canal-BE 62
Prambule : 7 octets
Dlimiteur de dbut de trame : 1 octet
Adresse destination : 6 octetsAdresse source : 6 octets
Longueur donnes (2 octets)
Donnes (0-1500 octets)Padding (0-46 octets)
Contrle (4octets)
G(x) = x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10
+ x8 + x7 + x5 + x4 + x2 + x + 1
32
Capacit de dtection
knknK
kn
K
KknK
K
++
=
2
1
12
1
122
11
22
12
01/10/2010 Codage Canal-BE 63
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.
Codes BCH
01/10/2010 Codage Canal-BE 64
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
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.
Proprit importante : les codes BCH portent dans la dfinition mme de n et k, leur capacit de correction.
12
12
min +=
=
td
mtkn
nm
33
Reprsentation des polynmes gnrateurs des codes BCH
Forme compacte dnoncer les coefficients du polynme : notation en octal
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
01/10/2010 Codage Canal-BE 65
( ) 1245810 ++++++= pppppppg
n k t g(p)
7 4 1 13
15 11 1 23
7 2 721
5 3 2467
31 26 1 45
21 2 3551
255 247 1 435561
Conclusion sur les codes
cycliques
( ) ( ) ( )pgpXpC mm =
01/10/2010 Codage Canal-BE 66
Mot de codede degr
34
Plan du cours
1. Introduction
2. Codes en blocs linaires1. Matrice gnratrice et matrice de contrle de parit
2. Codes cycliques
3. Dcodage optimal soft-decision
4. Dcodage hard-decision
3. Codes convolutifs
4. 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.
01/10/2010 Codage Canal-BE 68
CODAGE DCODAGE+1/-1
BRUIT
Bits
Bits cods
chantillons
chantillons bruits
Bitsestims
35
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).
01/10/2010 Codage Canal-BE 69
vecteur de nchantillons bruits r
DCODEUR
2k mots de code
mot de codele plus probable (bits estims)
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.
01/10/2010 Codage Canal-BE 70
cij
2cij-1
rj=(2cij-1)+nj
CODAGE DCODAGE+1/-1
BRUIT
Bits
Bits cods
chantillons
chantillons bruits
Bitsestims
36
Densit de probabilit des chantillons de bruit
( ) ( )
( )
=
==
=
==
n
j
jn
n
j
jn
j
j
N
nN
N
n
N
npp
1 0
2
20
1 0
2
01
exp
22
exp
22
1n
01/10/2010 Codage Canal-BE 71
La densit de probabilit du vecteur n des n chantillons de bruit est une gaussienne n dimensions.
x
pnj(x)
n=[n0 nn]
Densit de probabilit gaussienne du vecteur r
( ) ( )1212 =+= ijjjjijj crnncr
01/10/2010 Codage Canal-BE 72
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]
37
Expression de la densit de probabilit p(r|Ci)
( ) ( ) ( ) ( )[ ]
== =
=
n
j
ijjnn
j
ijjiN
crNcrpp
1 0
2
201
12expCr
01/10/2010 Codage Canal-BE 73
La densit de probabilit du vecteur des chantillons reus est conditionne par le mot de code mis Ci.
Indpendance des chantillons de bruit
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].
01/10/2010 Codage Canal-BE 74
[ ]rCCC
iP
i
argmax =
38
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.
01/10/2010 Codage Canal-BE 75
[ ]rCCC
iPi
argmax = ( )ipi
CrCC
argmax =
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.
01/10/2010 Codage Canal-BE 76
[ ]rCCC
iPi
argmax = ( )i
pi
CrCC
argmax =[ ] ( ) [ ]( )rCCr
rCp
PpP
ii
i =
39
Densit de probabilit p(r|Ci)
( ) ( ) ( ) ( )[ ]
== =
=
n
j
ijjnn
j
ijjiN
crNcrpp
1 0
2
20
1
12expCr
01/10/2010 Codage Canal-BE 77
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.
Maximisation de la probabilit conditionnelle
01/10/2010 Codage Canal-BE 78
( ) ( ) ( )[ ]
( ) ( )[ ]
( )[ ]
( )[ ] ( )i
n
j
ijj
n
j
ijj
n
j
ijj
n
j
ijjn
i
Dcr
crN
crN
Nn
N
crNp
ii
i
i
ii
Cr
Cr
CC
C
C
CC
,argmin12argmin
121
argmax
121
2argmax
12expargmaxargmax
2
1
2
1
2
0
1
2
0
0
1 0
2
20
=
=
=
=
=
=
=
=
=
40
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.
01/10/2010 Codage Canal-BE 79
( ) ( )[ ] ( )in
j
ijji Dcrpiii
CrCrCCCC
,argmin12argminargmax 2
1
2 =
== =
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.
01/10/2010 Codage Canal-BE 80
( )ii
CMpii CC
Cr argmaxargmax = ( )=
=n
j
jijircCM
1
12
( )[ ] ( )
=
==
n
j
ijj
n
j
ijj crcrii 11
2 122argmax12argminCC
41
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.
01/10/2010 Codage Canal-BE 82
+< 2lnexp min
0
kdRN
EP
cb
cod
> nPP mcb
PROPRIT
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
43
Plan du cours
1. Introduction
2. Codes en blocs linaires1. Matrice gnratrice et matrice de contrle de parit
2. Codes cycliques
3. Dcodage optimal soft-decision
4. Dcodage hard-decision
3. Codes convolutifs
4. 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.
01/10/2010 Codage Canal-BE 86
DCISIONchantillons bruits
Bitsestims
DCODAGE
44
Canal BSC
BSC = Binary Symetric Channel.
Ec = nergie transmise par bit cod.
N0/2 = densit spectrale de puissance du bruit.
01/10/2010 Codage Canal-BE 87
probabilit derreur par bit p
Bits codsestims
Bits cods 0 0
1 1
p
p
1-p
1-p
=
02
1
N
Eerfcp c
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
45
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 1 sil y a une erreur
0 sil ny en a pas.
eCY +=m
( )T
T
m
T
eH
HeCYHS
=
+==
01/10/2010 Codage Canal-BE 89
Dcodage par syndrome
Dcodage par syndrome : calcul du syndrome
reprage de lerreur correspondante
correction du mot reu
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
Donc, 2n-k-1 erreurs dtectes.
imeYC =
01/10/2010 Codage Canal-BE 90
imeCY +=
( )T
i
T
im
T
He
HeC
YHS
=
+=
=
46
Exemple : code C(7,4)
1010000001
1110000010
0110000100
1100001000
0010010000
0100100000
1001000000
syndromeerreurd' type
=
1000101
0100111
0010110
0001011
G
=
1110100
0111010
1101001
H
01/10/2010 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 mot reu = mot de code + mot de code = mot de code.
Syndrome (mot de code)=0 donc pas derreur dtecte.
01/10/2010 Codage Canal-BE 92
47
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.
01/10/2010 Codage Canal-BE 93
( ) ( ) ( )( ) ( ) ( )pepgpX
pepCpY
+=+= ( ) ( ) ( ) ( )pRpgpQpY +=
Division de Y(p) par g(p)
1. Les n bits du mot de code reu Y sont passs dans le circuit (interrupteur en position 1).
2. Les n-k registres contiennent les bits du syndrome qui sont achemins vers la sortie (interrupteur en position 2).
01/10/2010 Codage Canal-BE 94
1 g1 gn-k-1
s0 s1 sn-k-1polynme reu Y(p)
sortie syndrome
12
48
Look-up table
Aprs calcul du syndrome : recherche de lerreur correspondante ecdans la table de vrification (look-up table) puis correction.
Solution utilise tant que n-k
49
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.
01/10/2010 Codage Canal-BE 98
( ) ( )[ ] 2min1412 dkmc ppP
50
Importance de dmin dans le dimensionnement des codes
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
1min + knd
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
51
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.
( )
( )
=
=
=
+==
==
KNEnt
DEntt
N
KR
KND
NK
qN
c
k
2
1
12
1
1
1,,3,2,1
121
min
min
L
01/10/2010 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
52
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.
01/10/2010 Codage Canal-BE 103
Ajout 51 octets 0(dbut de paquet)
RS (255, 239)
Suppression 51 octets
(dbut de paquet)
Paquets transport MPEG-2
(188 octets)
RS(204,188, T=8)
Paquets transport MPEG-2protgs
(204 octets)
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
53
Plan du cours
1. Introduction
2. Codes en blocs linaires3. Codes convolutifs
1. Dcodage optimal algorithme de Viterbi
2. Codes poinonns
4. Combinaisons de codes
01/10/2010 Codage Canal-BE 105
Codes convolutifs
Principe du codage : 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.
Caractristiques des codes
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.
01/10/2010 Codage Canal-BE 106
k bits dentre
K blocs de k bits
combinaison logique n bits de sortie
54
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) :
1 si llment participe la somme,
0 sinon.
Exemple : codeur convolutif de rendement Rc=1/2 et de longueur de contrainte K = 3.
Entre constitue par des blocs de k = 1.
Sortie constitue par des blocs de n = 2.
01/10/2010 Codage Canal-BE 107
dk dk-1 dk-2Entre Sorties
ck1
ck2
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 : [ ]
[ ][ ]111101
100
3
2
1
===
g
g
g
01/10/2010 Codage Canal-BE 108
entre
sortie
55
Exemple
K=2, k=2, n=3
01/10/2010 Codage Canal-BE 109
entre
sortie[ ][ ][ ]10101101
1011
3
2
1
===
g
g
g
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 gnratrices.
Autres formes de reprsentation
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
entre
sortie
56
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).
Exemple : codeur C(1/2, 3).
01/10/2010 Codage Canal-BE 111
00
01
10
11entre 0 entre 1
00
11
x x
entre
sortie
11
00
01
1010
01
Rgime transitoire et rgime permanent
Au bout de Ktransitions, le treillis atteint son rgime permanent.
01/10/2010 Codage Canal-BE 112
00
01
10
11
00
11 11
01
10
1111
00
01
1010
01
00 00
57
Gnralisation
Code C(k/n,K).
2k branches entrant dans chaque nud.
2k branches sortant de chaque nud.
2k(K-1) tats possibles.
01/10/2010 Codage Canal-BE 113
00
01
10
11
Distance libre minimale (Hamming)
Distance minimale
le chemin tous-zros
le chemin partant et revenant ltat tout zro en un nombre de minimal de transitions.
Plus grande est la dmin, meilleur est le code.
Existence de tables pour construire des codes distance minimale la plus grande (cf. Proakis).
Exemple : C(1/2,3), dmin = 5
fonctions gnratrices (en octal) : 5 et 7
01/10/2010 Codage Canal-BE 114
00
01
10
11
000
111
001
110
011
100
101
010
000 000
dmin=6
58
Plan du cours
1. Introduction
2. Codes en blocs linaires3. Codes convolutifs
1. Dcodage optimal algorithme de Viterbi
2. Codes poinonns
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
59
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
01/10/2010 Codage Canal-BE 117
x x
entre
sortie
00
01
10
11
000
111
001
110
011
100
101
010
000 000
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.
Deux solutions pour les mtriques
Soft Decision : distance euclidienne
Hard Decision : distance de Hamming
01/10/2010 Codage Canal-BE 118
00
01
10
11
000
111
001
011
000 000
60
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 1,1 -0,2 -0,3
Soient yjm les dcisions binaires sur rjm Valeurs binaires utilises par les dcodeurs hard decision .
Exemple pour B=3 et n=3 : 101 000 100
Soient les bits possibles cjm(i)
i reprsente le chemin possible
01/10/2010 Codage Canal-BE 119
00
01
10
000
111 001
011
000 000
Mthode
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.
01/10/2010 Codage Canal-BE 120
Optimisation Hard Decision Soft Decision
Corrlation Maximiser NA x
Distance euclidienne Minimiser NA x
Distance de Hamming Minimiser x NA
NA : Non Applicable
( ) ( )( )[ ]=
=n
m
i
jmjm
i
j cr1
212( ) ( )( )
=
=n
m
i
jmjm
i
j cr1
12 ( ) ( )=
=n
m
i
jmjm
i
j cy1
( ) ( )=
=B
j
i
j
iPM
1
61
Exemple : C(1/3,3)
Cas du hard decision
01/10/2010 Codage Canal-BE 121
( ) ( )=
=3
1m
i
jmjm
i
j cy
( )
( ) 5311
31021
0
=++=
=++=
PM
PM
00
01
10
000
111 001
011
000 000
00
01
10
101
101
000 100
100
000
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.
01/10/2010 Codage Canal-BE 122
( )[ ]ii
PMi minarg =
62
Dernire tape : le dcodage
Remonter le treillis de ltat darrive ltat de dpart et re-parcourir le treillis vers la droite pour dcoder les bits mis.
Exemple : 000
01/10/2010 Codage Canal-BE 123
00
01
10
000
111 001
011
000 000
00
01
10
101
101
000 100
100
000
0 0 0
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.
01/10/2010 Codage Canal-BE 124
00
01
10
000
111 001
011
000 000
11Transition 3
000
111
Transition 4
63
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.
01/10/2010 Codage Canal-BE 125
00
01
10
000
111 001
011
000 000
11Transition 3
000
111Remarque : il faut que le treillis ait atteint son rgime permanent (cadque tous les tats soient atteints).
Dcodage
Aprs rception complte du bloc de donnes, slection du chemin le plus probable et dcodage.
01/10/2010 Codage Canal-BE 126
00
01
10
11
5
6
1
6
Dcodage : 0101
64
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
Grand retard introduit au dcodage sur de grands blocs de donnes.
01/10/2010 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 Tproviennent 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.
01/10/2010 Codage Canal-BE 128
00
01
10
11
65
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.
01/10/2010 Codage Canal-BE 129
00
01
10
11
TT-D
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
Squentiels : Fano (adapt pour les grandes longueurs de contrainte), Stack, Feedback.
Algorithmes sorties soft : BCJR (Bak, Cocke, Jelinek, Raviv), SOVA (Soft Output Viterbi Algorithm).
01/10/2010 Codage Canal-BE 130
66
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
1. Introduction
2. Codes en blocs linaires3. Codes convolutifs
1. Dcodage optimal algorithme de Viterbi
2. Codes poinonns
4. Combinaisons de codes
01/10/2010 Codage Canal-BE 132
67
Codes fort rendement
Codes fort taux de codage (rendement), du type (n-1)/n. Exemple : .
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
Gnration de codes (n-1)/n par poinonnage de codes 1/n.
Avantage :
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.
P bits en entre du codeur.
nP bits en sortie.
Utilisation dune matrice de poinonnage P 1 si le bit est transmis
0 sinon
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.
=
nPnn
P
P
ppp
ppp
ppp
L
MMM
L
21
22221
12111
P
01/10/2010 Codage Canal-BE 134
68
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
01/10/2010 Codage Canal-BE 135
=000
001
111
P
x x
entre1101
sortie111011
=
000
001
111
P
1101
1001
0011
bits poinonns
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
69
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
70
Plan du cours
1. Introduction
2. Codes en blocs linaires
3. Codes convolutifs
4. 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
71
Oprations sur les codes
01/10/2010 Codage Canal-BE 141
chaneCod 1 Decod. 1
chaneCod 1 Decod. 1Cod 2 Decod. 2
chaneCod 1 Decod. 1Cod 2 Decod. 2 1111
Un codeur
Deux codeursidentiques
Deux codeurs diffrents
erreurs
Concatnation de codes
En pratique : Code extrieur non binaire C(N,K), Code intrieur binaire C(n,k).
Blocs dentre de taille kK bits, spars en K blocs (symboles) de k bits chacun et cods en N blocs de kbits 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 142
codeur C(N,K)
codeur C(n,k)
Modulateur
Canal
Dmodulateur
Dcodeur C(N,K)
Dcodeur C(n,k)
donnes dentre
donnes de sortie
72
Combinaison srie et parallle
taux de codage : k/n
01/10/2010 Codage Canal-BE 143
m
blocs de k bits
C(p,k)Entrelaceur
bloc de longueurN=mp
C(n,p)
m blocs de p bits m blocs de p bitsm
blocs de n bits
m blocs de k bits
C(n1,k)Entrelaceur
bloc de longueurN=mk
C(n2,k)
m blocs de (n1-k) bits
m blocs de k bits
m blocs de (n2-k) bits
taux de codage : k/(n1+n2-k)
Exemple : DVB-S
Code RS et code convolutif spars par un entrelaceur de type Forney.
01/10/2010 Codage Canal-BE 144
73
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.
01/10/2010 Codage Canal-BE 146
Decod. 1 Decod. 21111
Dcision
74
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
01/10/2010 Codage Canal-BE 148
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).
75
ARQ
01/10/2010 Codage Canal-BE 149
DATA CRC CRC CHECK OK
OK
Vers les couches suprieures
Demande de retransmission
DATA CRC
HARQ Type I
01/10/2010 Codage Canal-BE 150
DATA CRC CRC CHECK OK
OK
Vers les couches suprieures
Demande de retransmission
FEC DECOD FEC
DATA CRC FEC Amlioration BER/FERAugmentation de lefficacit spectrale
76
Amlioration : dcodeurs soft et Chase Combining
01/10/2010 Codage Canal-BE 151
DATA CRC CRC CHECK OK
OK
Vers les couches suprieures
Demande de retransmission
FEC DECOD FEC
STOCKAGE
DATA CRC FEC CRC CHECK OK
OK
DECOD FEC
mission HARQ Type II
01/10/2010 Codage Canal-BE 152
DATA CRC COD FEC POINONNAGE
PREMIRE MISSION DATA CRC FEC1
FEC1 FEC2 FEC3
BITS DE PARIT
77
Rception HARQ Type II
01/10/2010 Codage Canal-BE 153
DATA CRC CRC CHECK OK
OK
Vers les couches suprieures
Demande de retransmission
FEC1 DECOD FEC
STOCKAGE
DATA CRC FEC2
OU FEC2
CRC CHECK OK
OK
DECOD FEC
REDONDANCE INCRMENTALE
Conclusion gnrale
Codage canal : code correcteurs d'erreurs
Familles de codes tudies : codes en blocs linaires, codes cycliques, codes convolutifs.
Applications : Transport de donnes
Stockage de donnes
01/10/2010 Codage Canal-BE 154
1. Introduction2. Codes en blocs linaires
1. Matrice gnratrice et matrice de contrle de parit
2. Codes cycliques3. Dcodage optimal soft-decision4. Dcodage hard-decision
3. Codes convolutifs1. Dcodage optimal algorithme de
Viterbi2. Codes poinonns
4. Combinaisons de codes
78
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
79
Rappel sur les groupes
aaeea == **
01/10/2010 Codage Canal-BE 157
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.
eaaaa == '*'*
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