Vous êtes sur la page 1sur 64

Systme de communications

(TNT, 3G, WIFI,)


source

Codage
source

Codage
canal

Emetteur

Modulateur
Canal

utilisateur

Dcodage
Source

Dcodage
canal

bruit

Rcepteur

Dmodulateur

Source : parole, musique, images, vido


Canal : radio, cable, fibre optique, CD
Modulateur / Dmodulateur (FC1) : adaptation donnes numriques canal
Codage source : compression des donnes pour une meilleure efficacit
Codage canal : protection des donnes pour une meilleure fiabilit

21/11/2012

Thorie de linformation - Codage

Thorie de linformation et codage


I) Codage de source:
Gnralits
Codage entropique (sans pertes)

II) Codage canal

Gnralits
Information mutuelle capacit Thorme du codage canal
Codes en blocs codage de Hamming
Codes convolutifs algorithme de Viterbi

21/11/2012

Thorie de linformation - Codage

Codage de source - Gnralits

Objectif principal
Meilleure efficacit possible: minimiser le dbit binaire transmettre

Deux classes dapproches


Pour les sources continues (voix, images, musique) : codage avec pertes car il est
ncessaire de quantifier les donnes. Dans ce cas il y a un second objectif qui est de
minimiser la distorsion entre les donnes originales de la source et les donnes
reconstruites pour lutilisateur

Compromis dbit/distorsion

distorsion

Ides :
dbit

Minimiser la distorsion pour les donnes les plus probables (quantification optimale)

Oprer des transformations pralables pour ne quantifier que les donnes


innovantes (non prdictibles) ou quantifier avec plus de prcision les donnes les
plus perceptibles (basses frquences)

Pour les sources discrtes (texte, donnes dj quantifies) : codage sans pertes
(distorsion nulle) qui sappuie sur la notion dentropie (information moyenne) de la
source (codage entropique)

Ide : moins de bits transmettre pour les donnes les plus probables
Cest lide du MORSE: E : . Y : -.-21/11/2012

Thorie de linformation - Codage

Codage entropique

Exemple
Information - Entropie
Code prfixe - Ingalit de Kraft
Thorme du codage de source
Code de Huffman
Source tendue
Codage arithmtique

21/11/2012

Thorie de linformation - Codage

Exemple
On considre une source X valeurs dans {Rouge, Vert, Bleu, Jaune}
de loi 1 {1/4, 1/4, 1/4, 1/4} ou loi 2 {0.4,0.3, 0.2, 0.1}
Code A:R 00
Code B: R 0
Code C: R 0
V 01
V 10
V1
B 10
B 110
B 10
J 11
J 111
J 01
Le code C nest pas dcodable: 0110 RVVR ou RVB ou JB
Longueur moyenne des autres codes
pour le Code A, on trouve lmoy = 2 dans les deux cas (loi 1 ou 2)
pour le Code B :

avec la Loi 1 : lmoy=(1+2+3+3) /4 = 2.25


avec la Loi 2 : lmoy= 1*0.4+2*0.3+3*0.2+3*0.1= 1.8

Le meilleur code dpend de la loi de la source


Peut on trouver un code meilleur que B pour la source X de loi 2?

21/11/2012

Thorie de linformation - Codage

Notion dinformation
La quantit d'information obtenue lorsque lvenement X = x se ralise
est lie l'incertitude sur cet vnement: si un vnement est certain,
sa ralisation ne nous apporte aucune information, si un vnement
est impossible, sa ralisation apporte une information infinie.
I(x) = f(p(x)) avec f fonction positive et dcroissante

Linformation apporte par deux vnements indpendants doit tre la


somme des informations lies chacun des vnements.
I(x,y)= f(p(x,y)) = f(p(x)p(y)) = f(p(x)) +f(p(y))
I(x) = logb(1/p(x)) base b arbitraire

I(x) = log2 (1/p(x)) : information en bit (binary unit)


Un bit reprsente la quantit d'information fournie par le choix d'une
alternative parmi deux quiprobables.
La thorie de linformation, dont on reparlera pour le codage canal est
base sur les travaux de C. Shannon dont larticle de rfrence est:
A mathematical theory of communications paru dans en 1948
21/11/2012

Thorie de linformation - Codage

Information moyenne - Entropie


On considre une source discrte X valeurs dans
A = {a1,a2,,aM} de loi {p1,p2,,pM} . Lentropie de cette
source, note H(X), est linformation moyenne:
H(X)=i=1:M pilog2(1/pi)

Proprits:
Lentropie est maximale si les vnements X=ai sont quiprobables.
H(X) log2(M)
Lentropie est minimale (et nulle) si lun des vnements X=ai est
certain

Exemple : pour 2 symboles de probabilits p et 1-p

21/11/2012

Thorie de linformation - Codage

Retour au Codage
On considre une Source discrte X (sans mmoire)
valeurs dans A={a1,a2,aM} de loi {p1,p2,,pM}
Le codage pour cette source consiste dfinir des mots
de code binaires pour chacun des symboles possibles.
ai ci=(bi,1,,bi,li) : mot de code de longueur li associ au
symbole ai

Deux objectifs:
Avoir un code dcodage unique et instantan
Minimiser la longueur moyenne du code : lmoy=ipili

21/11/2012

Thorie de linformation - Codage

Dcodage unique code prfixe - Ingalit de Kraft

Pour tre dcodage unique et instantan le code doit remplir la


condition du prfixe: aucun mot de code ne doit tre le dbut dun autre
mot de code.
Un code est dit prfixe sil remplit cette condition.
Un code prfixe peut tre reprsent par un arbre binaire (CNS)
Les mots de code sont les suites de 0 et 1 sur les branches allant de la
racine jusquaux feuilles de larbre
exemple
0

00
010
0110
0111
10
11

1
0

0
1

1
1

Il existe un code prfixe dont les M mots de code sont de longueur


l1,,lM si et seulement si:
i 2-li1 : Ingalit de Kraft
21/11/2012

Thorie de linformation - Codage

Thorme du codage de source

La longueur moyenne dun code uniquement dcodable


pour une source discrte sans mmoire X dentropie H(X)
vrifie:
lmoy H(X)

Il existe un code prfixe (code de Shannon) tel que:


H(X) lmoy < H(X)+1

Thorme de Shannon : Pour toute source discrte il


existe un code dont la longueur moyenne est
arbitrairement proche de lentropie

21/11/2012

Thorie de linformation - Codage

10

Code de Huffman
Lalgorithme de Huffman construit larbre binaire du code pour
une source discrte
Tant quil reste des symboles:
On classe les symboles par ordre de probabilit dcroissante
On slectionne les 2 symboles de probabilits les plus faibles
On cre 2 branches de larbre se terminant par ces symboles: ces
deux branches sont tiquetes 0 et 1 respectivement
A la racine de ces 2 branches, on cre un symbole fictif de
probabilit gale la somme des 2 probabilits

Le code de Huffman est optimal (il nexiste pas de code prfixe


dont la longueur moyenne soit infrieure celle obtenue par
lalgorithme)
Exemple: {R,V,B,J} de loi {0.4, 0.3, 0.2, 0.1}
0

21/11/2012

0
1

0
1

J
B

Thorie de linformation - Codage

11

Exemple de lalphabet

(application : transmission des SMS)

Distribution de probabilit des


lettres (en anglais)
Entropie associe : H=4.17

21/11/2012

Code de Huffman (Longueur


moyenne du code : = 4.205 )

Thorie de linformation - Codage

12

Source tendue N symboles


On considre des N-uplets de N symboles successifs :
X(N)=(X1,X2,,XN) avec Xn valeurs dans A={a1,a2,aM}
Il y a MN N-symboles a(N)
Il existe un code prfixe (Code de Shannon) tel que:
H(XN) l(N)moy < H(XN)+1
Pour source indpendante, sans mmoire: H(XN)=NH(X)
H(X) lmoy < H(X)+1/N

Exemple: source X valeurs dans {Noir, Blanc} de loi


{1/10,9/10}
Code de Huffman pour la source (N=1)
Code de Huffman pour la source N-tendue avec N=3

21/11/2012

Thorie de linformation - Codage

13

Codage arithmtique
PRINCIPE: une squence S de symboles est traduite par un intervalle de
[0,1[ dont la longueur est gale la probabilit de S: cet intervalle est
cod sur l= log2(1/p(S)) bits
Ce codage est optimal (au sens dune source N-tendue) pour des
squences de N symboles
Cet algorithme est en particulier utilis dans les nouvelles normes de
compression dimages
Bibliographie: excellent article (trs dtaill pour mise en uvre dans
vrai codeur):
Introduction to Arithmetic Coding - Theory and Practice de Amir Said

21/11/2012

Thorie de linformation - Codage

14

Algorithme de codage
Notations

Probabilits : pm=p(am) pour m=1:M


Probabilits cumules : cm=i=1:m-1 pi pour m=1:M ,
cas particuliers : c1=0,cM+1=1

Condition initiale: IC(0)= [0,1[


BIC(0) = 0 (base) , LIC(0) = 1 (longueur)

Tant quil reste des symboles Xn transmettre:

Si Xn=am, lintervalle courant IC(n) est rajust suivant:

BIC(n) = BIC(n-1) +cm* LIC(n-1)


LIC(n) = pm* LIC(n-1)

Remarques:

l intervalle IC(n) sembote dans IC(n-1)


LIC(n)=i=1:m pi

Codage:

IC(N) est cod par un nombre binaire (b12-1+ + bNB2-NB ) qui appartient cet
intervalle: il faut et il suffit que NB= log2(1/LIC(N))

21/11/2012

Thorie de linformation - Codage

15

Exemple
2 symboles B et N de probabilit 3/4 et 1/4
Squence BBNB

3/4

NN
NB
BN

NNN

NNB
NBN

BBNN

NBB

135/256

BNN

BNB

BBN
BB

9/16

9/64

BBNB

27/256

BBB
27/64

Code: nombre compris entre 27/64=011011 et 135/256: 10000111


sur NB= log2(1/L(IC)) = log2(256/27) = 4 bits

On peut prendre 0111 (7/16) ou 1000 (8/16)


21/11/2012

Thorie de linformation - Codage

16

Algorithme de dcodage

Le code reu est traduit en un nombre courant NC [0,1[


Tant quil reste des symboles dcoder
Dtermination de la valeur m telle que NC[cm cm+1[

le symbole am est dcod

Mise jour du nombre courant : NC= (NC-cm-1)/pm

lintervalle [cm c m+1[ est dilat en [0 1[

linfluence du symbole am que lon vient de dcoder est annule


Remarques
Le dcodeur doit connatre le vecteur des pm ou des cm ainsi que le
nombre de symboles dcoder
La squence dcode est exacte quel que soit le code correspondant un
nombre dans lintervalle IC(N)

21/11/2012

Thorie de linformation - Codage

17

Exemple
Code=0111 : NC=7/16
NC [c1 c2 [
X1=B (=a1)
NC=NC/(3/4)=7/12
NC [c1 c2 [
X2=B
NC=NC/(3/4)=7/9
NC [c2 c3 [
X3=N (=a2)
NC=(NC-3/4)/(1/4)=1/9
NC [c1 c2 [
X2=B

21/11/2012

3/4

(B)N 1
(BB)N

B
0

1
0

(B)B
0

Thorie de linformation - Codage

(BBN)B

(BB)B
0

18

Optimalit du codage arithmtique


Nombre de bits pour coder N symboles:
NB= log2(1/LIC(N)) = -k=1:Nlog2p(sk)+

avec <1

Nombre de bits moyen par symbole


lmoy=E(NB/N)=H(X)+ /N
La longueur moyenne pour un code arithmtique tend vers lentropie
de la source lorsque N crot.

Pour un code optimal:

lmoy (nb bits/symb)=H(X) (nb shannon/symb)


les bits O et 1 sont quiprobables
les valeurs codes suivent une loi uniforme dans [0,1[
La fonction de rpartition de ces valeurs est linaire entre 0 et 1

21/11/2012

Thorie de linformation - Codage

19

Codage canal
Gnralits
Thorie de linformation:
Information mutuelle
Capacit
Thorme du codage canal

Codes en blocs

codage de Hamming

Codes cycliques
Codes convolutifs

algorithme de Viterbi

21/11/2012

Thorie de linformation - Codage

20

Gnralits:

Contexte - enjeux
Donnes originales (mises ou stokes) : 0100101011
Donnes (donnes reues ou lues)
: 0110100011
Causes de laltration : mauvaises conditions de rception (tlphone
mobile) ou dgradation du support (CD ray).
Rsultat : les donnes reues sont diffrentes des donnes mises.

Lquipement qui reoit les donnes ne sait pas quil y a des donnes
errones.
Ces erreurs ont un impact variable suivant les applications: fort impact
pour des donnes confidentielles ou sensibles (numro carte visa,
commandes militaires) et plus faible impact pour laltration de paquet
de bits dans une conversation tlphonique ou un flux vido.
La premire tape consiste dtecter la prsence derreurs.

21/11/2012

Thorie de linformation - Codage

21

Stratgies en cas derreur


Corriger les erreurs : FEC (Forward Error Correction)
protocoles de la couche physique.
Solliciter lmission de nouvelles donnes (protocoles des
couches rseau).
Mcanisme ARQ (Automatic Repeat reQuest).

Interpoler entre les donnes prcdentes et les donnes


suivantes (couche application).
Technique possible si les donnes sont redondantes (parole, vido)
et que la perte dun paquet ou trame ne dgrade pas trop la
qualit de service.

21/11/2012

Thorie de linformation - Codage

22

Dtection et Correction derreur


Principe: le codeur (canal) ajoute des bits de
redondance aux bits dinformation et le dcodeur
exploite cette redondance pour dtecter et
ventuellement corriger les erreurs.

bruit
Codage
canal

TX

Canal

RX

Pb(nc)

Dcodage
canal

Sans codage canal , cas dune communication BPSK


Pb(nc)= Q((2Eb/N0)1/2)

21/11/2012

Thorie de linformation - Codage

23

Exemple: code rptition C(3,1)


Chaque bit dinformation est rpt 3 fois
Codage
canal

010011

000 111 000 000 111 111

Les blocs cods autoriss sont 000 et 111


Le dcodeur prend la dcision majoritaire:
0 si deux ou trois 0 dans le mot reu , 1 sinon
010111

Dcodage
canal

001 111 010 011 111 101

Probabilit derreur aprs codage/dcodage si Pb(nc)=p


Pb(c)=p3+3p2(1-p)
0

10

-2

10

Pb avec codage
Pb sans codage (=p)

-4

10

-6

10 -3
10

-2

-1

10

10

10

21/11/2012

Thorie de linformation - Codage

24

Limites et inconvnients du codage


Si le canal est trs bruit, le processus de dcodage peut
dgrader les performances (augmenter la probabilit
derreur bit).
La protection crot avec la redondance mais a un cot:
La redondance augmente le nombre de bits transmettre

En thorie, laccroissement du dbit qui en rsulte augmente


loccupation spectrale et diminue donc lefficacit.
En pratique, le dbit est fix mais le dbit utile diminue.

On appelle rendement du code le rapport :


(Nb bits utiles)/(Nb bits mis)

21/11/2012

Thorie de linformation - Codage

25

Historique
1948 : Shannon (thorie de linformation).
1950 : Hamming.
1950-1970 : codes en blocs et codes cycliques, BCH (BoseChaudhuri-Hocquenghem) et RS (Reed-Solomon).
1960-1970 : codes convolutifs (Fano, Forney, Viterbi).
1980 : modulations codes en treillis (Ungerboeck).
1990 : dcodage iteratif et turbo-codes (Berrou-Glavieux).
2000 : codes LDPC (Low Density Parity Check).

21/11/2012

Thorie de linformation - Codage

26

Codage canal
Gnralits
Thorie de linformation:
Information mutuelle
Capacit
Thorme du codage canal

Codes en blocs

codage de Hamming

Codes cycliques
Codes convolutifs

algorithme de Viterbi

21/11/2012

Thorie de linformation - Codage

27

Thorie de linformation
Information mutuelle entre deux vnements X=x et Y=y
Permet de mesurer combien la ralisation de l'un des deux modifie
l'incertitude (linformation) de l'autre.

Information de (X=x) : I(x)=log2(1/p(x))


Information de (X=x sachant que Y=y) : I(x/y) = log2(1/p(x/y))

La diffrence entre les deux informations lies ces vnements


sera linformation mutuelle entre x et y :

I(x,y) = I(x)-I(x/y) = log2(p(x/y)/p(x))


Si p(x/y)>p(x)
I(x,y)>0
Si p(x/y)<p(x)
I(x,y)<0
Si p(x/y)=p(x) vnements indpendants I(x,y)=0
On remarque que : I(x,y)=log2(p(x,y)/(p(x)p(y)))=I(y,x)

21/11/2012

Thorie de linformation - Codage

28

Information mutuelle moyenne - capacit


Pour deux v.a. X et Y discrtes, linformation mutuelle moyenne est
dfinie par:
I(X,Y)=x,yp(x,y)I(x,y)= x,yp(x,y)log2(p(x,y)/(p(x)p(y)))

Thorme: I(X,Y)0
Lien avec lentropie:

Entropie conditionnelle:

H(X/Y=y)= xp(x/y)log2(1/p(x/y))
H(X/Y)= y p(y) H(X/Y=y)

I(X,Y)=H(X)-H(X/Y) = H(Y)-H(Y/X)

Lien avec un canal de transmission: X

canal

Si H(X/Y) = 0
I(X,Y)=H(X) : le canal est excellent (connaissant la sortie
on na plus aucune incertitude sur lentre)
Si H(X/Y) = H(X) I(X,Y)= 0 : le canal est trs mauvais (la connaissance
de la sortie napporte aucune information sur lentre)

La capacit dun canal est linformation mutuelle maximale quil peut


transmettre:
C=maxXI(X,Y)
le maximum est pris par rapport la loi sur les donnes X i.e. : H(X) max
21/11/2012

Thorie de linformation - Codage

29

Capacit du canal binaire symtrique (CBS)


X
0
1

1-pe
pe
1-pe

Y
0
1

Canal caractris par sa probabilit derreur


pe = P(Y=0/X=1) = P(Y=1/X=0)
H(X)=1 H(Y)=1
H(Y/X) =-pelog2pe -(1-pe)log2(1-pe)
Ne dpend que du canal

Capacit C=1+pelog2pe +(1-pe)log2(1-pe)

21/11/2012

Thorie de linformation - Codage

30

Capacit dun canal gaussien bande limite


Pour un canal bruit additif gaussien : Y = X + N
X : donnes mises de puissance PX dans une bande limite B
Y : donnes reues
N : bruit de densit spectrale de puissance N0/2 dans la bande, N2=N0B
N0/2
B

La capacit de ce canal est:


C=1/2 log2(1+PX/N0B) en bits/chantillon
C=B log2(1+PX/N0B) en bits/sec

21/11/2012

Thorie de linformation - Codage

31

Thorme du codage canal


Shannon (48): il est possible de transmettre sans erreurs
si le dbit dinformation est infrieur la capacit du canal
La dmonstration sappuie sur des squences alatoires de
longueur tendant vers linfini
Ce thorme ne donne pas la mthode pour atteindre cette
capacit
Avant les turbo-codes et les LDPC les techniques de codage sont
restes trs en dea de cette limite thorique.

Exemple pour CBS:


si pe=.1 C1/2
Avec un code de rendement 1/2 il doit tre possible de
transmettre sans erreur
La technique du code rptition prsente page 24 permet
datteindre Pb 3. 10-2 pour un rendement 1/3
21/11/2012

Thorie de linformation - Codage

32

Exemple du canal bande limite bruit additif


blanc gaussien (BL, BABG)

On sintresse au cas limite : dbit (bits/s) = C


PX (nergie/sec)=Eb(nergie/bit) C(bits/s)
Efficacit spectrale (en bits/sec/Hz) : C/B=log2(1+Eb/N0 * C/B)
Efficacit en bits par sec et par Hz

5
4
3
2
1
0
-2

2
4
Eb/No en dB

On peut thoriquement transmettre 1 bit/s/Hz avec Eb/N0=0 dB


Soit : 1000 bits/s sur 1000 Hz de bande

21/11/2012

Thorie de linformation - Codage

33

Codage canal
Gnralits
Thorie de linformation:
Information mutuelle
Capacit
Thorme du codage canal

Codes en blocs

codage de Hamming

Codes cycliques
Codes convolutifs

algorithme de Viterbi

21/11/2012

Thorie de linformation - Codage

34

Codes en blocs binaires linaires


Association de mots de code de n bits des mots
dinformation de k bits : codes C(n,k)
chaque bloc de n bits en sortie du codeur dpend (linairement)
du bloc de k bits en entre
2 k Mots de k
bits: mots
dinformation

2 k Mots de code

2n Mots de n bits

La somme (modulo 2) de deux mots de code est un mot de code


Le mot 000 (n bits) est toujours un mot de code
Un code est un S.E.V. de dim k de lespace vectoriel Vn des mots
de n bits
21/11/2012

Thorie de linformation - Codage

35

Capacit de Dtection derreurs : r=c+e


2k mots de code c (de n bits) parmi 2n mots dont 2k -1 0
2n-1 mots derreurs non nulles possibles parmi lesquelles
2k -1 ne sont pas dtectables car si e=c, r=c+c=c est
encore un mot de code.
2n - 2k mots derreurs dtectables
Le rapport (2k -1)/(2n - 2k) entre le nombre derreurs non
dtectables sur celui des erreurs dtectables devient trs
faible si n-k (le nombre de bits de redondance) crot.

21/11/2012

Thorie de linformation - Codage

36

Poids dun mot - distribution de poids


Distance de hamming et distance minimale du code
Poids dun mot: nombre de bits non nuls
w(01100101) = 4

Distribution de poids: ensemble des poids des mots de


code
000 011 110 101

w={0,2}

Distance de hamming entre deux mots: nombre de bits


diffrents = poids du mot diffrence (modulo 2)
d(01100101,0100010) = 3 = w(00000111)

Distance minimale du code dmin: distance de hamming


minimale entre deux mots de code = poids du mot de
code (non nul) de plus faible poids
000 011 110 101
21/11/2012

dmin =2
Thorie de linformation - Codage

37

Principe du codage classique


Les 2k mots de code dans lensemble des 2n mots de n bits
doivent tre les plus distants les uns des autres (au sens de
la distance de hamming). Ainsi sil se produit des erreurs
(mais pas trop) pendant la transmission le dcodeur pourra
dtecter ou corriger ces erreurs en dcodant le mot de
code le plus proche du mot reu.
Si la distance minimale entre 2 mots est dmin on peut
dtecter toute erreur de moins de dmin 1 bits
Ex C(3,2) : 00 000 , 01 011, 10 101, 11 110 : dmin =2

Si la distance minimale entre 2 mots est dmin = 2t+1 on


peut corriger jusqu t erreurs par mot de n bits.
Ex C(3,1) : 0 000, 1 111 : dmin =3
21/11/2012

Thorie de linformation - Codage

38

Matrice gnratrice dun code C(n,k)


Mot dinformation : b = (b1 b2 bk)
Mot de code associ : c = (c1 c2 cn)
cj = i=1:k gijbi pour j=1n
c = b G avec G = (gij) matrice (k,n)

G est la matrice gnratrice du code


Les k lignes de G forment une base du code (S.E.V.)

Exemples :
Code de parit C(3,2) : G = ?
Code de rptition C(3,1) : G = ?
Code C(5,2) :

Mots de code ?
Distance minimale du code ?

21/11/2012

0
G =
1

1
1

Thorie de linformation - Codage

1
0

0
1

39

Dcodage par tableau standard


(pour faciliter la recherche du mot le plus proche)
mot reu r=c+e ou c : mot de code, e:mot derreur
Tableau standard (tous les mots de n bits dans un tableau
de 2k colonnes et 2n-k lignes)
Exemple

Mots de code
Mots avec
1 erreur
Mots avec
2 erreurs

21/11/2012

00000

10110

01101

11011

00001

10111

01100

11010

00010

10100

01111

11001

00100

10010

01001

11111

01000

11110

00101

10011

10000

00110

11101

01011

00011

10101

01110

11000

00101

10011

01000

11110

01010

11100

00111

10001

Thorie de linformation - Codage

40

Code systmatique
Un code est dit systmatique si les k premiers bits du mot
de code sont identiques aux k bits du mot dinformation.
Les k premiers bits sont dits systmatiques et les n-k bits restants
sont appels bits de parit. Lorsquil ny a pas derreur le
dcodage consiste rcuprer ces k premiers bits.
La matrice gnratrice dun code systmatique est sous la forme:
1

0
G =

0
1

0 p11 p12 p1( n k )

p21 p22 p2( n k )


0

0 1 pk1 pk 2 pk ( n k )

Il est toujours possible dobtenir la matrice gnratrice de


la version systmatique dun code par permutation des
colonnes de G (ce qui ne modifie pas le poids des mots) et
combinaisons des lignes (qui sont des mots de codes).
Exemple de la page prcdente
21/11/2012

Thorie de linformation - Codage

41

Code dual dun code C(n,k)


Soit un code C(n,k) de matrice gnratrice G.
Le code dual est form des mots orthogonaux aux mots de
code. Cest un s.e.v. de dim n-k.
Vn= C(n,k) C(n,n-k)
La matrice gnratrice H du code dual est de dimensions
(n-k,n) et est telle que GHT=0
Pour un code systmatique gnr par G=[Ik |P] la
matrice gnratrice du code dual est : H = [PT|In-k ]
Exemple : H pour G dtermin page prcdente

21/11/2012

Thorie de linformation - Codage

42

Intrt de la matrice H
dcodage par syndrome
Le mot c de n bits est un mot de code c HT =0
Un mot de code a un poids minimal dmin
toute famille de dmin -1 colonnes de H est libre
Borne du singleton:
au plus n-k colonnes de H libres dmin n-k+1

Syndrome pour le mot reu r=c+e : s = r HT (de taille n-k)


s = 0 sil ny a pas derreur
s 0 sil y a une erreur diffrente dun mot de code
Il y a 2n-k - 1 erreurs diffrentiables (car 2n-k 1 mots non nuls
diffrents de taille n-k)

Exemple : pour G et H dfinis pages prcdentes


Pour une erreur simple
ei = (0 01 0) : une seule erreur en i-me position
s = ei HT = i-me ligne de HT = i-me colonne de H
21/11/2012

Thorie de linformation - Codage

43

Code de Hamming C(2m -1, 2m - m 1)


Corrige toute erreur simple dans un mot de n bits
Les n syndromes s = e HT = i-me colonne de H pour i =1 n
doivent tre distincts

Les n colonnes de H doivent tre toutes diffrentes et il y


en a 2n-k -1 possibles.
Si on pose m = n-k, n= 2m -1 et k = 2m - m -1
Construction des codes de Hamming:
On construit H dont les colonnes sont les nombres de 1 n crits
sous forme binaire sur m bits
On permute les colonnes de H de faon l crire sous forme
systmatique : H = [PT|In-k ]
On dtermine G suivant : G=[Ik |P]

21/11/2012

Thorie de linformation - Codage

44

Exemple : C(7,4)
Matrice de contrle:

0 0 0 1 1 1 1

H = 0 1 1 0 0 1 1
1 0 1 0 1 0 1

Exercice: mettre H sous forme systmatique et dterminer G


Exercice: construire le tableau de dcodage standard
Exercice: dcoder le mot 1100011

21/11/2012

Thorie de linformation - Codage

45

Proprits des codes de hamming


Codes parfaits
tout mot de n bits scrit c+e avec c dans le code et e de poids au
plus 1.
n

P = Cni p i (1 p )
Probabilit derreur mot:
i =2
Probabilit derreur bit : (majoration)

1er terme dominant si p petit


10
Exemple pour n=7

n i

1 n
n i
Peb (i + 1)Cni p i (1 p )
n i =2

-1

10

10

10

10

-2

avec codage hamming


sans codage

-3

-4

-5

-6

10
-3
10

21/11/2012

10
p

Thorie de linformation - Codage

-2

10

46

-1

Codage canal
Gnralits
Thorie de linformation:
Information mutuelle
Capacit
Thorme du codage canal

Codes en blocs

codage de Hamming

Codes cycliques
Codes convolutifs

algorithme de Viterbi

21/11/2012

Thorie de linformation - Codage

47

Codes cycliques
Codes linaires qui ont la proprit suivante: toute
permutation circulaire dun mot de code donne un autre mot
de code
Reprsentation polynomiale:
c = [cn-1 c1 c0] associ au polynme C(x)= cn-1 xn-1 ++c1 x + c0

Exemple: [ 1 1 0 1 ] C(x)=x3 +x2+1

Permutation circulaire dun bit gauche: xC(x) modulo xn+1


xC(x)= cn-1 xn + cn-2 xn-1 ++c1 x2 + c0 x
= cn-1 (xn +1) + cn-2 xn-1 ++c1 x2 + c0 x +cn-1
Reste de la division de xC(x) par xn+1 :
cn-2 xn-1 ++c0 x +cn-1 associ [cn-2 c0 cn-1]

Permutation de i bits gauche : xiC(x) modulo xn+1


21/11/2012

Thorie de linformation - Codage

48

Polynme gnrateur dun code


cyclique C(n,k)
Polynme gnrateur : g(x) de degr n-k qui divise xn+1 :
g(x) = xn-k + gn-k-1 xn-k-1 ++g1 x + g0
Exemple pour n=7 et k=4

x7 +1 = (x+1)(x3 +x2 +1)(x3 +x+1)


2 polynmes gnrateurs possibles

Polynme dinformation correspondant au mot dinformation


b= [bk-1 b1 b0] :
B(x)=bk-1 xk-1 ++b1 x + b0

Polynme du mot de code c associ x: C(x)=g(x)B(x)


Exemple pour n=7 et k=4 avec g(x) = (x3 +x2 +1)

b = [0 0 1 1 ] B(x)=x+1 C(x)=x4 +x2 +x +1 c=[0 0 1 0 1 1 1]

On peut dfinir le code cyclique par ce seul polynme


gnrateur
21/11/2012

Thorie de linformation - Codage

49

Matrice gnratrice dun code


cyclique C(n,k)
Les lignes de la matrice gnratrice (non systmatique)
sont :

xk-1 g(x)
xk-2 g(x)

x g(x)
g(x)

Exemple pour n=7 et k=4 avec g(x) = (x3 +x2 +1)

0
G =
0

21/11/2012

1 0 1 0 0 0

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

0 0 1 1 0 1
Thorie de linformation - Codage

50

Construction de codes systmatiques


Multiplier B(x) par xn-k
Exemple (7,4), b = [0 0 1 1 ] B(x)=x+1 : (x+1)x3 = x4 +x3

Diviser le rsultat par g(x) : B(x) xn-k = Q(x)g(x)+r(x)


Exemple avec g(x) = (x3 +x2 +1) : x4 +x3 = xg(x)+x

Ajouter le reste de la division r(x) B(x)xn-k pour obtenir C(x) :


C(x) = B(x) xn-k +r(x) = Q(x)g(x) qui est bien un mot de code
(multiple de g(x)) et dont les bits de poids fort recopient le mot
dinformation
Exemple: C(x)= x4 +x3 +x c = [0 0 1 1 0 1 0]

21/11/2012

Thorie de linformation - Codage

51

Codes cycliques dans les protocoles de


communication Cyclic Redundancy Check
Problme: la taille des PDU (trame ou paquet) est variable
(k et n non fixes)
On fixe le nombre de bits de parit cest dire n-k
On calcule ces bits de parit par la mthode prcdente:
reste de la division de B(x) xn-k par g(x)
Exemples:
Trame HDLC (champ Frame Check Sequence (FCS) de 2 bytes)

g(x) = x16 +x12 +x5 +1 : 16 bits de parit

Trame Ethernet (champ CRC de 4 bytes)

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

Le CRC sert dtecter les erreurs:


Division du polynme correspondant au mot reu par g(x).
Si le reste de cette division est nul cest quil ny a pas derreur (ou
que lerreur est un mot de code)
21/11/2012

Thorie de linformation - Codage

52

Codes BCH
Codes cycliques construits pour assurer une distance
minimale dmin =2t+1
Ils peuvent corriger t erreurs par mot de n bits
Codes de longueur n=2m - 1 avec k n mt
Les polynmes gnrateurs sont construits en sappuyant
sur la thorie des corps de Galois
On trouve des tables qui dfinissent ces polynmes pour
les valeurs successives de n (voir slide suivant)
Il existe des algorithmes de dcodage de ces codes

21/11/2012

Thorie de linformation - Codage

53

Table des codes BCH


Notation des polynmes gnrateur en octal:
Exemple: g(x) = x4 +x +1 [1 0 0 1 1] 23 en octal
n

g(x)

13

15

11

23

721

2467

26

45

21

3551

435561

31

255

247

21/11/2012

Thorie de linformation - Codage

54

Codage canal
Gnralits
Thorie de linformation:
Information mutuelle
Capacit
Thorme du codage canal

Codes en blocs

codage de Hamming

Codes cycliques
Codes convolutifs

algorithme de Viterbi

21/11/2012

Thorie de linformation - Codage

55

Codes convolutifs
Principe
Chaque bloc de n bits de sortie dpend des m blocs de k bits
dinformation prcdents (et non du seul bloc de k bits prcdents).
A chaque nouveau bloc de k bits dentre correspond un nouveau
bloc de n bits de sortie.
m blocs de k bits
k bits dentre
Combinaison logique

n bits de sortie

Caractristiques:

Taux (rendement) : k/n


Longueur de contrainte : m
Les n polynmes gnrateurs g(i) (i=1:n) qui expriment les
combinaisons des bits dentre pour obtenir les sorties
(i)
(i) b
Dans le cas k=1: cl = p=0:m-1 gp
l-p (lexpression a la forme
dune convolution)

21/11/2012

Thorie de linformation - Codage

56

Exemple de Code convolutif (n=2,k=1)


cl1=bl+ bl-1 + bl-2
bl bl-1 bl-2
cl2=bl+ bl-2

Polynmes gnrateurs:

g(1) (x)=x2+x+1 soit g(1)=[1 1 1] soit 7 en octal


g(2) (x)=x2+1 soit g(2) =[1 0 1] soit 5 en octal

Sa mmoire (m-1) ou longueur de contrainte (m)

Ici: m=3

Exemple: codage de b=[1001] en partant de bk-1 et bk-2=0

c1 (x) = g(1) (x) (x3 +1) = x5+ x4+ x3+ x2+ x+ 1


c2 (x) = g(2) (x) (x3 +1) = x5+ x3+ x2+ 1
c=[11 10 11 11 10 11] :les (m-1) dernires tapes correspondent la remise zro
du registre dcalage .

21/11/2012

Thorie de linformation - Codage

57

Treillis dun code convolutif (cas k=1)


Les bits cods cli dpendent de bl et de ltat (contenu de la
mmoire) linstant l : (bl-1 bl-2 bl-m+1).
On peut reprsenter cette volution par un treillis 2m-1 tats o :
les transitions sont notes par un trait diffrent suivant bl = 1 ou bl = 0
Les n bits de sortie figurent au dessus du trait de transition

Exemple (g1=7,g2=5) :
00
01
10

00
11 11
00
10
01 01

11

10
21/11/2012

Thorie de linformation - Codage

58

Distance libre
Cest la distance minimale (au sens de hamming) entre deux chemins
du treillis qui divergent et re-convergent.
Par linarit cest aussi le poids du chemin le plus court qui diverge du chemin touszros et le rejoint.
Cette distance dtermine les performances du code.

Exemple (g1=7, g2=5) :dlibre=5 (w=1)

00

00
11

11

00
11 11

01

10 00
01 01

10

10

Deux mots dentre distants de 1 bit donnent des squences codes


distantes de 5 bits
21/11/2012

Thorie de linformation - Codage

59

code convolutif rcursif systmatique (RSC)


La sortie dpend des sorties prcdentes
Les fonctions de transfert sont gales 1 et g(2)(x)/g(1)(x)
dans le cas k=1, n=2.
cls=bl
bl

fl

Avantages:

fl-1 fl-2
clp

Bit systmatique : identique celui dentre


Mots dentre de poids 1 donnent des squences codes de trs
grand poids
2 Mots dentre distants de 1 bit donnent des squences codes
trs distantes
Ces codes RSC sont les codes constituants des turbo-codes usuels.
21/11/2012

Thorie de linformation - Codage

60

Treillis de lencodeur convolutif rcursif systmatique


Le treillis dun code RS est le mme que celui du code NRNS
associ (mais ne correspond pas aux mmes bits entrants)
exemple (g1=7,g2=5):
dlibre=5 obtenue pour mot de poids w = 3 (1+x+x2)

00

00

00

00

11

11

11
00

11
00

01

01

10

10

10
01

Mot de poids w=2 (1+x3) donne distance d=6


21/11/2012

Thorie de linformation - Codage

61

Dcodage des squences codes au sens ML


(maximum de vraisemblance): cas k=1,n=2
Si on considre des squences de bits dinformation de L bits:
il y a 2L squences de bits possibles ( 2L chemins possibles dans le
treillis de longueur L).
Les squences codes sont de longueur 2L mais on note une squence
code c=[c1 c2 cl cL ] o cl =(cl1,cl2)

La squence reue est de la forme: r = c + w o w est un bruit


additif
On recherche de la squence b=[b1,b2,,bL] qui maximise la
probabilit dobserver la squence reue r=[r1,r2,,rL] .
Si le bruit est blanc p(r/b(p))= p(wl=rl-cl(p))

Sil est gaussien: il faut trouver la squence de bits b(p) qui minimise:
Dcum= lrl-cl(p) 2 o {cl(p)} est la squence en sortie du codeur pour
lentre b(p)
La recherche exhaustive est trs complexe puisquil y a 2L squences
possibles et pour chacune, le calcul de D ncessite celui de L distances.
21/11/2012

62

Algorithme de Viterbi
Cet algorithme permet davoir une complexit en L* 2(m-1) au lieu de L*2L
Algorithme de Viterbi:
chaque instant l, pour chaque tat Si , on garde le meilleur des 2k chemins
qui aboutissent cet tat.

( (

dcum (=
l , Si ) min dcum l 1, S j + d rl , c S j , Si
Sj

)))

c(Sj ,Si ) est la squence de 2 bits cods correspondant la transition Sj Si


d(rl , c(Sj ,Si )) est la distance locale ltape l qui peut tre prise comme
distance euclidienne (critre ML) ou distance de hamming.
Exemple

S1 (dcum=1)
S2(dcum=5)

l-1

00
11 11
10 00
01 01
10

S3

Exemple: signal reu yl=00


dcum(l,S3)=min(1+2,5+0)=3

A la fin on remonte le chemin optimal et on le traduit en squence


mise
21/11/2012

Thorie de linformation - Codage

63

Exemple pour Viterbi (dcum)

Squence mise 11 10 11 11
Squence reue 11 00 11 11

00
11

inf
inf
inf

00
11

inf
10
0
inf01

00

11

00

00

Squence dcode 1001

21/11/2012

01
10

Thorie de linformation - Codage

64

Vous aimerez peut-être aussi