79
1 TS219 CODAGE CANAL Benoît 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 numériques. Introduction, Ed. Masson, 1996. 01/10/2010 Codage Canal-BE 2

COURS_TS219_2010_2011

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