Vous êtes sur la page 1sur 15

ESEN 2014/2015 Mastère Web Intelligence

Corrigé Exercice 0 :

Source d'entrée X Source de sortie Y


Alphabet : { 0 , 1 } Alphabet : { 0 , 1 }
1-p
0 0
p
p
1 1
1-p
Sources : entrée X d'alphabet { x1 = "0" , x2 = "1" } et p( x1 ) = p( x2 ) = 1/2 (caractères équiprobables).
sortie Y d'alphabet { y1 = "0" , y2 = "1" } et p( y1 ) = ? p( y2 ) = ?.

Probabilités conditionnelles p( y/x ): c'est une donnée du graphe.


p( y1/x1 ) = 1 – p
p( y2/x2 ) = 1 – p
p( y2/x1 ) = p
p( y1/x2 ) = p

Probabilités jointes entre les deux sources : calculées avec la loi de Bayes p( x , y ) = p( y/x ).p( x )
p( x1 , y1 ) = (1-p) 1/2
p( x2 , y1 ) = p 1/2
p( x1 , y2 ) = p 1/2
p( x2 , y2 ) = (1-p) 1/2

2
Probabilités marginales de la source Y : calculées à partir des probabilités jointes p( y j ) = ∑ p( xi , y j )
i =1
p( y1 ) = (1-p) 1/2 + p 1/2 = 1/2
p( y2 ) = p 1/2 + (1-p) 1/2 = 1/2

Probabilités conditionnelles p( x/y) : calculées à partir de la loi de Bayes p( x/y ) = p( x , y ) / p( y ) en utilisant le résultat
précédent.
p( x1/y1 ) = 1 – p
p( x1/y2 ) = p
p( x2/y1 ) = p
p( x2/y2 ) = 1 - p

Quantité d'information d'un caractère :


I( x1 ) = I( x2 ) = log2(2) = 1 bit
I( y1 ) = I( y2 ) = log2(2) = 1 bit

Entropie de chaque source:


H( X ) = 1 bit par symbole (= log2(K) avec K=2).
H( Y ) = 1 bit par symbole.

Entropie jointe: calcul direct à partir de probabilités jointes.


H( X , Y ) = (1/2) (1-p) log[ 2/(1-p) ] + (1/2) p log( 2/p ) + (1/2) p log( 2/p ) + (1/2) (1-p) log[ 2/(1-p) ]
= (1-p) log[ 2/(1-p) ] + p log( 2/p ) = (1-p) [ 1 - log( 1-p ) ] + p [ 1 - log( p ) ]
= 1 - (1-p) log( 1-p ) - p log( p )

Entropie conditionnelle moyenne:


H( Y/X ) = ∑ p( xi ) ∑ p( y j / xi ) log 1
p( y j / xi )
i j

= 1  ( 1-p ) log( 1 ) + p log( 1 )  + 1  ( 1-p ) log( 1 ) + p log( 1 ) 


2  1−p p  2  1−p p 
= - ( 1-p ) log( 1-p ) − p log( p )
Codage : Corrigé TD -1- R. Rhouma
ESEN 2014/2015 Mastère Web Intelligence

Etant donné la symétrie des relations, H( X /Y ) aura, dans ce cas particulier, la même expression.

Quantité d'information mutuelle:


1er calcul à partir de l'entropie jointe.
I( X , Y ) = H (X ) + H( Y ) - H( X , Y )
= 1 + (1-p) log( 1-p ) + p log( p )
2ème calcul à partir de l'entropie conditionnelle moyenne H( Y /X ):
I( X , Y ) = H( Y ) – H (Y /X ) = 1 + (1-p) log( 1-p ) + p log( p )
Toujours par symétrie, la troisième méthode de calcul à partir de H ( X /Y ) est identique au précédent.

Quelques remarques :
1. si p = 0 ce qui veut dire pas d'erreur de transmission alors I( X , Y ) = 1. Similitude parfaite entre les deux sources, la
transmission se passe bien. H( X , Y ) = 1.
2. si p = ½, pagaille complète lors de la transmission. Dans ce cas I( X , Y ) = 0, plus du tout de similitude entre les deux
sources. H( X , Y ) = H( X ) + H( Y ) = 2. Tout se passe comme si les deux sources étaient indépendantes.
3. si p = 1, à nouveau I( X , Y ) = 1. Les deux sources sont à nouveau tout à fait semblables. Le fait qu'il y a dans ce cas
permutation du "0" et du "1" n'ayant pas d'importance.

Corrigé Exercice 1
1)
F 6 6 6 9 12 21
E 5 5 6 6 9
D 4 4 5 6
C 3 3 4
B 2 3
A 1
2)

F
D
E
C

B
A

3)
Longueur probabilité
Symbole Codage
nk pk
F 00 2 6 21
E 10 2 5 21
D 11 2 4 21
C 010 3 3 21
B 0110 4 2 21
A 0111 4 1 21

4) Entropie de la source:
1
H( X ) = ∑ p k log 2 ( ) = 2.3983 bits/ symbol
k pk
5) Longueur moyenne du code
R = ∑ n k p k = 2,4286 bits/ symbol
k

Codage : Corrigé TD -2- R. Rhouma


ESEN 2014/2015 Mastère Web Intelligence

H(X )
6) Efficacité : η huffman = × 100 = 98.75%
R
R
7) Rapport de compression : × 100 = 30%
8
8)
F 6 0 0
E 5 0 1
D 4 1 0
C 3 1 1 0
B 2 1 1 1 0
A 1 1 1 1 1
MSB LSB
9) Les deux codes ont même taux d’efficacité puisqu’ils partagent les meme longeurs nk et les mêmes
H(X )
probabilités. η fano − shanon = × 100 = 98.75% = η huffman
R
Longueur probabilité
Symbole Codage
nk pk
F 00 2 6 21
E 01 2 5 21
D 10 2 4 21
C 110 3 3 21
B 1110 4 2 21
A 1111 4 1 21

Corrigé Exercice 2
1)
G 7 7 7 9 12 16 28
F 6 6 6 7 9 12
E 5 5 6 6 7
D 4 4 5 6
C 3 3 4
B 2 3
A 1

2)

G F
E D C

B A

3) probabilité
Longueur
Symbole Codage
nk pk
G 01 2 7 28

Codage : Corrigé TD -3- R. Rhouma


ESEN 2014/2015 Mastère Web Intelligence

F 10 2 6 28
E 000 3 5 28
D 001 3 4 28
C 110 3 3 28
B 1110 4 2 28
A 1111 4 1 28
4) Entropie de la source:
1
H( X ) = ∑ p k log 2 ( ) = 2.61 bits/ symbol
k pk
5) Longueur moyenne du code
R = ∑ n k p k = 2,64 bits/ symbol
k
H(X )
6) Efficacité : η huffman = × 100 = 98.76%
R
R
7) Rapport de compression : × 100 = 33%
8
8)

G 7 0 0
F 6 0 1
E 5 1 0 0
D 4 1 0 1
C 3 1 1 0
B 2 1 1 1 0
A 1 1 1 1 1
MSB LSB

Longueur probabilité
Symbole Codage
nk pk
G 00 2 7 28
F 01 2 6 28
E 100 3 5 28
D 101 3 4 28
C 110 3 3 28
B 1110 4 2 28
A 1111 4 1 28

9) Les deux codes ont même taux d’efficacité puisqu’ils partagent les meme longeurs nk et les mêmes
H(X )
probabilités. η fano − shanon = × 100 = 98.75% = η huffman
R
Corrigé Exercice 3

Codage : Corrigé TD -4- R. Rhouma


ESEN 2014/2015 Mastère Web Intelligence

1 0 0 1 0
 
H = 0 1 0 1 1
0 0 1 0 1
 
1) n =5 et k=2

2)
1 0 0
 
0 1 0
- m1 H = (11101) 0
T
0 1  ≠ (0 0 0) ⇒ donc m1 n’est pas un mot de code
 
1 1 0
 
0 1 1

1 0 0
 
 0 1 0
- m 2 H T = (11010) 0 0 1  = (0 0 0) ⇒ donc m2 est un mot de code
 
1 1 0
0 1 1
 
1 1 0 1 0
3) G = (P I 2 ) =  
0 1 1 0 1
4) Tous les mots de codes

mi Ci wi
00 00000 0
01 01101 3
10 11010 3
11 10111 4

5) Distance minimale par trois méthodes :

- Méthode 1 : d min = min{wi } = 3 d’après le tableau de 4)


wi ≠ 0

- Méthode 2 : d min = min{d ij } = 3 (voir tableau suivant)


i, j

Distance entre
C i et C j Valeur

d12 3
d 13 3
d14 4
d 23 4
d 24 3
d 34 3

- Méthode 3 : nombre minimale de colonnes de H linéairement liés est 3.

Codage : Corrigé TD -5- R. Rhouma


ESEN 2014/2015 Mastère Web Intelligence

Preuve : colonne4 + colonne1 + colonne2 = 0 ⇒ d min = 3

Corrigé Exercice 4
g(x) = 1 + x2 + x3

1) deg(g(x))= n-k = 3. et on a n=7 donc k=4

1 0 1 1 0 0 0  ← L1
 
0 1 0 1 1 0 0  ← L2
2) G* = 
0 0 1 0 1 1 0  ← L3
 
0 0 0 1 0 1 1  ← L4

3) En effectuant les opérations suivantes sur les lignes de G * :

L1 ← L1
L2 ← L1 + L2
L3 ← L3 + L2 + L1
L4 ← L4 + L3 + L2
On trouve la matrice systématique G :

1 0 1 1 0 0 0
 
1 1 1 0 1 0 0
G=
1 1 0 0 0 1 0
 
0 1 1 0 0 0 1 

1 0 0 1 1 1 0
 
4) H =  0 1 0 0 1 1 1 
 0 0 1 1 1 0 1
 
1 0 0
 
0 1 0
0 0 1
 
5) C m ⋅ H T = (1 0 1 1 1 0 0 ) ⋅  1 0 1  ≠ (0 0 0 )
1 
 1 1
1 1 0
 
0 1 1

C m est donc n’est pas un mot de code.


Ou d’une autre manière :
C m ( x) = 1 + x 2 + x 3 + x 4
Le reste de la division euclidienne de C m ( x) par g(x) est x 2 + x + 1 ≠ 0
Donc C m ( x) n’est pas un mot de code.

Codage : Corrigé TD -6- R. Rhouma


ESEN 2014/2015 Mastère Web Intelligence

6) D’après la formule suivante :


x 7 + 1 = (x 3 + x 2 + 1)( x + 1)( x 3 + x + 1)
14243 1442443
g ( x) h( x)

On voit bien que g(x) divise x 7 + 1 , donc g(x) qui est de degré 3 peut être un polynôme générateur d’un
code (7,4)

7) Soit m=(1101)
m( x) = 1 + x + x 3
m( x) ⋅ x 3 = x 3 + x 4 + x 6
m( x) ⋅ x 3 / g ( x) donne :

x6 + x4 + x3 x3 + x 2 + 1
x6 + x5 + x3
x5 + x4 x3 + x2
x5 + x4 + x2
x 2 = r ( x)

D’où
C m ( x ) = m( x ) ⋅ x 3 + r ( x )
= x6 + x 4 + x3 + x 2

Finalement C m = (0011101)

8) Ym ( x) = x 5 + x 3

S m ( x) = Ym ( x) mod g ( x) ⇒

x5 + x3 x3 + x 2 + 1
x5 + x4 + x2 x2 + x
x4 + x3 + x2
x4 + x3 + x
x 2 + x = S m ( x)

Table de décodage :
position Erreur syndrome
0 1 1
1 x x
2 x2 x2
3 x3 x2 +1
4 x4 x2 + x +1
5 x5 x +1
6 x6 x2 + x

D’après la table de décodage, le syndrome x 2 + x = S m ( x) correspond à l’erreur x 6 = E m* ( x)


⇒ C m* ( x) = Ym ( x) + E m* ( x) = x 6 + x 5 + x 3
Codage : Corrigé TD -7- R. Rhouma
ESEN 2014/2015 Mastère Web Intelligence

⇒ C m* = (0001011)

Finalement m* = (1011)

Corrigé Exercice 5
1)
x6 +1 x2 + x +1
x6 + x5 + x4 x4 + x3 + x + 1
x5 + x4 + 1
x5 + x4 + x3
x3 + 1
x3 + x2 + x
x2 + x +1
0
On vérifie bien que x 2 + x + 1 divise x 6 + 1

2)

Message m(x) Mot de code C(x)


0 0
1 1+ x + x2
x 1 + x3
1+ x x + x2 + x3
x2 x + x4
1+ x2 …
x + x2 …
1+ x + x2
x3
1 + x3
x + x3
1 + x + x3
x2 + x3
1 + x2 + x3
x + x2 + x3
1 + x + x2 + x3
3)
1 1 1 0 0 0  ← L1
 
0 1 1 1 0 0  ← L2
G* = 
0 0 1 1 1 0  ← L3
 
0 0 0 1 1 1  ← L4

4)
En effectuant les opérations suivantes sur les lignes de G*, on trouve une matrice systématique G.

Codage : Corrigé TD -8- R. Rhouma


ESEN 2014/2015 Mastère Web Intelligence

L1 ← L1 1 1 1 0 0 0
 
L2 ← L1 + L2 1 0 0 1 0 0
⇒ G=
L3 ← L3 + L2 0 1 0 0 1 0
 
L4 ← L4 + L3 + L1 1 1 0 0 0 1 

5)
 1 0 1 1 0 1
H =  
 0 1 1 0 1 1

6) d min = 2

Corrigé exercice 6
1) Question de cours.
2)
2.a) Pour un code (6,2), les messages possibles sont :

m1 ( x) = 0
m2 ( x) = 1
m3 ( x ) = x
m4 ( x) = 1 + x
2.b) on a la formule suivante :
X6+1 = (1+X2) (1+X+X2) (1+X+X2)
Deux polynômes générateurs sont des possibles candidats pour un code (6,2). Les polynômes générateurs
doivent être de degré 6 – 2=4.

g1 ( x) = (1 + x 2 ) ⋅ (1 + x + x 2 ) = 1 + x + x 3 + x 4
g 2 ( x) = (1 + x + x 2 ) ⋅ (1 + x + x 2 ) = 1 + x 2 + x 4
Le polynôme générateur choisi est g ( x) = g 2 ( x) = 1 + x 2 + x 4 puisqu’il contient moins de terme que g1 ( x) .
2.c)
Message m(x) Bits de contrôle r(x) Mot de code C m ( x)
0 0 0
1 x +1
2
x + x2 + 1
4

x x3 + x x5 + x3 + x
1+x x3 + x2 + x + 1 x5 + x4 + x3 + x2 + x + 1
3)
3.a)
Le syndrome est la quantité avec laquelle le récepteur vérifie s’il y a eu des erreurs de transmissions.
Le récepteur calcule le syndrome S m ( x) à partir du mot de code reçu selon deux méthodes :
- Méthode 1 : S m ( x) = Ym ( x) mod g ( x)
Si le récepteur travaille avec la méthode 1 alors la table de décodage doit être remplie selon la formule
suivante : S m ( x) = E m ( x) mod g ( x)
- Méthode 2 : S m' ( x) = Ym ( x) ⋅ h( x) mod( x 6 + 1)
Si le récepteur travaille avec la méthode 2 alors la table de décodage doit être remplie selon la formule
suivante : S m' ( x) = E m ( x) ⋅ h( x) mod( x 6 + 1)

Codage : Corrigé TD -9- R. Rhouma


ESEN 2014/2015 Mastère Web Intelligence

Dans cet exercice, le code est (6,2) c'est-à-dire que le nombre des bits du syndrome est 6 – 2 = 4 bits.

Table de décodage (erreur simple) selon méthode 1 :

position E m ( x) S m ( x)
Pas d’erreur 0 0
0 1 1
1 x x
2 x2 x2
3 x3 x3
4 x4 x2 +1
5 x5 x3 + x
3.b)
Si on reçoit le mot de code Ym = 010111 qui correspond au polynôme Ym ( x) = x + x 3 + x 4 + x 5
⇒ Le syndrome se calcule par : S m ( x) = Ym ( x) mod g ( x) comme suit :

x5 + x4 + x3 + x x4 + x2 +1
x5 + x3 + x x +1
x4
x4 + x2 +1
x2 + 1 = S m ( x)

Le syndrome calculé est donc S m ( x) = x 2 + 1 ce qui correspond à l’erreur simple dans la position 4 de la
table de décodage ⇒ E m* ( x) = x 4 ⇒ Le mot de code correct est C m* ( x) = E m* ( x) + Ym ( x) = x + x 3 + x 5 ⇒
le message correct est m * ( x) = x

3.c)
Ym1 = 111000 et Ym 2 = 010010
Les syndromes associés sont :
S m1 ( x) = Ym1 ( x) mod g ( x) = 1 + x + x 2
S m 2 ( x) = Ym1 ( x) mod g ( x) = 1 + x + x 2

⇒ On constate qu’il ya un seul syndrome pour deux erreurs différentes. Ceci veut dire qu’il y a des erreurs
détectables et non-corrigeables.

Corrigé Exercice 7
1.a)

n=3
mi mi-1 mi-2 C(t)
m(t) q-1 q-1
1.b)

Codage : Corrigé TD - 10 - R. Rhouma


ESEN 2014/2015 Mastère Web Intelligence

K= 3
Si le message est de longueur L alors la longueur du mot de code est : n*(L+K-1) =3 * (L + 2)

1.c)
m= [1011] ⇒ m( x) = 1 + x 2 + x 3
et on a : g1(x)= 1+x2
g2(x)= 1+x
g3(x)= 1+x+x2
C(1)(x) = g(1)(x).m(x) = 1 + x 3 + x 4 + x 5 -> C1= 100111
C(2)(x) = g(2)(x).m(x) = 1 + x + x 2 + x 4 -> C2= 111010
C(3)(x) = g(3)(x).m(x) = 1 + x + x 5 -> C3= 110001

Donc C= 111 011 010 100 110 101

2) 2.a)
Combinaisons d'entrée [ g0(1) g1(1) g2(1) ] = [ 1 0 1 ] [ g0(2) g1(2) g2(2) ] = [ 1 1 0 ] [ g0(3) g1(3) g2(3) ] = [ 1 1 1]
[ mj mj-1 mj-2 ] Cj(1) Cj(2) Cj(3)
0 0 0 0 0 0
0 0 1 1 0 1
0 1 0 0 1 1
0 1 1 1 1 0
1 0 0 1 1 1
1 0 1 0 1 0
1 1 0 1 0 0
1 1 1 0 0 1

2.b)
K=3 ⇒ 2K-1 = 4 états internes. Les états sont repérés par des lettres : a → (00), b → (01), c → (10), d → (11). L'état présent
est constitué par les deux bits de droite de la combinaison d'entrée active et l'état suivant sera caractérisé par les deux bits de
gauche. La "sortie" correspondant au passage de l'un à l'autre est constituée de l'indication des colonnes Cj(1) Cj(2) Cj(3).
Etat suivant Combinaisons d'entrée Etat présent g(1) = [ 1 0 1 ] g(2) =[ 1 1 0 ] g(3) = [ 1 1 1]
[ mj mj-1 mj-2 ] Cj(1) Cj(2) Cj(3)
a 0 0 0 a 0 0 0
a 0 0 1 b 1 0 1
b 0 1 0 c 0 1 1
b 0 1 1 d 1 1 0
c 1 0 0 a 1 1 1
c 1 0 1 b 0 1 0
d 1 1 0 c 1 0 0
d 1 1 1 d 0 0 1

0 000 101 011 110


a a b b

a b c d

1 c c d d
111 010 100 001
Codage : Corrigé TD - 11 - R. Rhouma
ESEN 2014/2015 Mastère Web Intelligence

2.c) Treillis

- Phase initiale
a 000 000 a

111 111
b

011

100
- cellule élémentaire
000 d
a a
101
111
b b
010
011

c 110 c

100
001
d d

- phase finale 000


a 000 a
101
101

011
2.d) c 110
000

d a

111
101

011

b
c

010

110
100

Codage : Corrigé TD - 12 - R. Rhouma


d

001
ESEN 2014/2015 Mastère Web Intelligence

2.e) Vérification du résultat avec l’un des graphes


3°) Décodage
3.a) Algorithme de viterbi. Voir cours
3.b)
Mot de code reçu est : code [111 110 110 010 011 101]
Code reçu → 111 3 110
5
a

2
b

0
4
c

1
d

Phase centrale :
Code reçu → 111 110 110
3 5 7 Code reçu → 111 110 110
a
4 a
4
2
6 2
b 1 Survivants
b 1
0 4 6 0
c 3
c 3
1
5 1
d 4
d 4

111 110 110 010 111 110 110 010


5
a 4 a
4 4
2 2
4 Survivants 4
b 5 b
1 1
0 0
6
c 1 c
3 1
3
1 1
5 5
d 6 d
4 6

Phase finale

111 110 110 010 011


6
a 5
4
2
1
b 7
1 4
0
c
3 1
1
d
5

Codage : Corrigé TD - 13 - R. Rhouma


ESEN 2014/2015 Mastère Web Intelligence

111 110 110 010 011

a 5
4
2
1
Survivants b
1 4
0
c
3 1
1
d

111 110 110 010 011 101


7
a 1
4 5
2
b
1 4 1
0
c
3 1
1
d

111 110 110 010 011 101

a 1
101
Survivants
b 111
1 010 011 1
0 110
c 100
1
1
d

Le mot de correct est donc 111 100 110 010 011 101
Le message correspondant est 1 1 0 1

Corrigé Exercice 8

1 0 0 1 0 1 1
 
H =  0 1 0 1 1 1 0
 0 0 1 0 1 1 1
 
1)
1 1 0 1 0 0 0
 
0 1 1 0 1 0 0
G=
1 1 1 0 0 1 0
 
1 0 1 0 0 0 1 

2)

Codage : Corrigé TD - 14 - R. Rhouma


ESEN 2014/2015 Mastère Web Intelligence

Message m Mot de code C m Poids w


0000 0000000 0
0001 1010001 3
0010 1110010 4
0011 0100011 3
0100 0110100 3
0101 1100101 4
0110 1000110 3
0111 0010111 4
1000 1101000 3
1001 0111001 4
1010 0011010 3
1011 1001011 4
1100 1011100 4
1101 0001101 3
1110 0101110 4
1111 1111111 7

{{wi } = 3
D’après le tableau ci-dessus, d min = min
wi ≠ 0

 d − 1
⇒ eC = E  min  =1
 2 
Le nombre des erreurs corrigeables est 1.

3)
CH T = 0

4) les erreurs doubles et triples et plus vont passer inaperçues parce que le pouvoir détecteur ne dépasse
pas les erreurs simples.
Preuve :
Le syndrome est codé sur 3 bits donc il ya 2 3 possibilités qu’on peut dédier aux différents type
d’erreurs.
On a le cas de « pas d’erreur’ S m = 000
Et avec Les 7 cas d’erreurs simples, les codes des syndromes ont été totalement exploités et ne reste
aucune possibilité pour coder les erreurs doubles ou plus. Donc ils devront passer inaperçues pour le
récepteur.

5) différents codes d’erreurs = table de décodage

Position Erreur Syndrome


Pas d’erreur 0000000 000
0 1000000 100
1 0100000 010
Erreurs
2 0010000 001
simples
3 0001000 110
4 0000100 011
5 0000010 111
6 0000001 101

Codage : Corrigé TD - 15 - R. Rhouma

Vous aimerez peut-être aussi