Académique Documents
Professionnel Documents
Culture Documents
Codage FC2
Codage FC2
Codage
source
Codage
canal
Emetteur
Modulateur
Canal
utilisateur
Dcodage
Source
Dcodage
canal
bruit
Rcepteur
Dmodulateur
21/11/2012
Gnralits
Information mutuelle capacit Thorme du codage canal
Codes en blocs codage de Hamming
Codes convolutifs algorithme de Viterbi
21/11/2012
Objectif principal
Meilleure efficacit possible: minimiser le dbit binaire transmettre
Compromis dbit/distorsion
distorsion
Ides :
dbit
Minimiser la distorsion pour les donnes les plus probables (quantification optimale)
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
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
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 :
21/11/2012
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
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
21/11/2012
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
00
010
0110
0111
10
11
1
0
0
1
1
1
21/11/2012
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
21/11/2012
0
1
0
1
J
B
11
Exemple de lalphabet
21/11/2012
12
21/11/2012
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
14
Algorithme de codage
Notations
Remarques:
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
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
16
Algorithme de dcodage
21/11/2012
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
(BBN)B
(BB)B
0
18
avec <1
21/11/2012
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
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
21
21/11/2012
22
bruit
Codage
canal
TX
Canal
RX
Pb(nc)
Dcodage
canal
21/11/2012
23
010011
Dcodage
canal
10
-2
10
Pb avec codage
Pb sans codage (=p)
-4
10
-6
10 -3
10
-2
-1
10
10
10
21/11/2012
24
21/11/2012
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
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
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.
21/11/2012
28
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)
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)
29
1-pe
pe
1-pe
Y
0
1
21/11/2012
30
21/11/2012
31
32
5
4
3
2
1
0
-2
2
4
Eb/No en dB
21/11/2012
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
34
2 k Mots de code
2n Mots de n bits
35
21/11/2012
36
w={0,2}
dmin =2
Thorie de linformation - Codage
37
38
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
1
0
0
1
39
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
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 1 pk1 pk 2 pk ( n k )
41
21/11/2012
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
43
21/11/2012
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
21/11/2012
45
P = Cni p i (1 p )
Probabilit derreur mot:
i =2
Probabilit derreur bit : (majoration)
n i
1 n
n i
Peb (i + 1)Cni p i (1 p )
n i =2
-1
10
10
10
10
-2
-3
-4
-5
-6
10
-3
10
21/11/2012
10
p
-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
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
48
49
xk-1 g(x)
xk-2 g(x)
x g(x)
g(x)
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
21/11/2012
51
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
53
g(x)
13
15
11
23
721
2467
26
45
21
3551
435561
31
255
247
21/11/2012
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
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:
21/11/2012
56
Polynmes gnrateurs:
Ici: m=3
21/11/2012
57
Exemple (g1=7,g2=5) :
00
01
10
00
11 11
00
10
01 01
11
10
21/11/2012
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.
00
00
11
11
00
11 11
01
10 00
01 01
10
10
59
fl
Avantages:
fl-1 fl-2
clp
60
00
00
00
00
11
11
11
00
11
00
01
01
10
10
10
01
61
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
)))
S1 (dcum=1)
S2(dcum=5)
l-1
00
11 11
10 00
01 01
10
S3
63
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
21/11/2012
01
10
64