Вы находитесь на странице: 1из 10

Master 1 ST section A- 2018

Codage et Compression

Travaux Dirigés N°3 : Codage Canal – Codes correcteurs


Exercice 1 :

Soit un BSC de probabilité d’erreur p, nous envisageons d’utiliser le code par répétition
consistant à tripler chaque symbole des messages. Le code se fait à la majorité dans le
bloc reçu.

En fonction de p, quelle est la probabilité pb d’erreur par bit en sortie pour un tel
système de communication.

Exercice 2 : Code de répétition

On utilise un code de répétition. Les bits sont envoyés 5 fois avec chaque fois une
probabilité p d'être mal transmis.

1/ Dans un tel paquet de 5 bits (c.a.d. 5 répétitions du bit de signal)

a. Quelle est la probabilité que 0, 1, 2,..., ou 4 de ces 5 bits sont changés lors de la
transmission?
b. Quelle est la probabilité que l'erreur de transmission soit détectée ?
c. Quelle est la probabilité que l'erreur soit transmise sans être détectée ?
2/ Coder le message suivant : 01110

3/ Décoder le message suivant : 00100111110001011001

4/ Quel est le taux de transmission (rendement) d'un tel code ?

Pour améliorer la fiabilité, on décide d'utiliser un code avec 9 répétitions.


5/ Quel est le taux de transmission d'un tel code ?

6/ Quelle est la probabilité de faire 5 erreurs ?

7/ Montrer que pour p=0,001, la probabilité de faire 6 erreurs est beaucoup plus
petite que celle de faire 5 erreurs (c'est pourquoi les cas de faire 6, 7, 8, ou 9 erreurs
ne jouent pas de rôle et peuvent être négligés par rapport au cas de 5 erreurs).

8/ Pour p=0,001, évaluer la probabilité qu'une erreur soit transmise sans être
détectée ?

9/ Comparer les résultats des codes avec 5 et 9 répétitions.

Exercice 3 : Code par répétition

On considère un code correcteur d'erreur (n, k) pour lequel k = 2 et n est un entier pair
tel que n ≥ 6, et dont les mots-codes y sont obtenus à partir des mots d'informations u =
(u1, u2) en les répétant (n/2- 1) fois. En d'autres termes, le mot-code obtenu à partir de
u = (u1, u2) où (u1, u2) appartient à {0,1}2 s'écrit y = (u1, u2, u1, u2, …., u1, u2)
(α)

Par exemple, si n = 8, le mot-code obtenu à partir de (1, 0) est (1, 0, 1, 0, 1, 0, 1, 0).

1. Donnez une matrice génératrice G de ce code Cn,2 (où, pour rappel, n est un entier
pair supérieur ou égal à 6).

2. Donnez une matrice de contrôle H de ce code Cn,2

3. Quel est le nombre maximal q de bits erronés que ce code garantit de pouvoir
toujours détecter ?

4. On compare à présent ce code Cn,2 dont les mots-codes sont construits par
répétition du mot d'information, comme décrit par (α), avec un autre code Cn,2 qui
associe au mot d'information u = (u1, u2) le mot-code y0 = (u1, u2,u1  u2,u1 u2,
… ,u1  u2,u1  u2) (β). Par exemple, si n = 8, le mot-code obtenu à partir de (1, 0)
est (1, 0, 1, 1, 1, 1, 1, 1). Lequel de ces deux a les meilleures propriétés détectrices et
correctrices d'erreur ? Justifiez rigoureusement votre réponse.

5. Parmi tous les codes linéaires Cn,2 avec n ≥ 6 et n pair, peut-on trouver un code qui
offre une garantie de détection d'un plus grand nombre q d'erreurs que le code Cn,2
obtenu par répétition du mot d'information, et défini par (α) ? Si oui, donnez un
exemple d'un tel code (spécifiez une matrice génératrice pour une valeur paire de n
≥ 6 particulière), sinon, expliquez pourquoi le code défini par (α) est le code Cn,2
offrant la meilleure garantie de détection d'erreur.

Exercice 4 :

Quelle est la capacité de correction d’un code { coefficients binaires dont une matrice
génératrice est :

1 0 0 1 0 1
 
G  0 1 1 1 0 1
1 1 0 1 1 0
 

Même question pour :

 1 0 1 0 1
G   
 0 1 1 1 1

1 0 0 0 0 1 0 1 0
 
0 1 0 0 0 1 1 0 0
G  0 0 1 0 0 0 1 0 1
 
0 0 0 1 0 1 1 1 1
0 1 
 0 0 0 1 0 0 1

Pour la dernière matrice génératrice, donner une matrice de vérification H pour le code
linéaire.
Exercice 5:

1 1 1 0 1 0 0
 
Soit une matrice de vérification H   0 1 1 0 0 1 0  .
0 0 1 1 0 0 1
 

Quelle est la distance minimale de cette matrice de vérification. Combien d’erreurs ce


code peut-il corriger ?

Le mot z=1001101 est-il un mot de code ?

Quel était le message originel si vous recevez 101011001 et si la matrice de vérification


du code est

1 1 0 1 0 1 0 0 0
 
0 1 1 1 0 0 1 0 0
H 
1 0 0 1 1 0 0 1 0
 
0 1 
 0 1 1 1 0 0 0

Quelle est la distance minimale de cette matrice de vérification. Combien d’erreurs ce


code peut-il corriger ?

Exercice 6 :

Soit la matrice génératrice G d’un code linéaire ( { préciser) et H la matrice de


vérification associée.

1 0 0 0 0 1 0 1 0
 
0 1 0 0 0 1 1 0 0
G  0 0 1 0 0 0 1 0 1
 
0 0 0 1 0 1 1 1 1
0 1 
 0 0 0 1 0 0 1

1) Coder le code source 0101000110000101011110101

2) On suppose que nous avons eu des perturbations qui ont affecté les bits dont les
rangs sont 2, 10, 17 et 28

3) Quelle est la distance minimale de cette matrice de vérification. Combien


d’erreurs ce code peut-il corriger ?

4) Est-il possible de corriger les erreurs ? Justifiez et étayez votre réponse. Décodez
le code.

Exercice 7 :

Réaliser le code de correction d’erreurs de mots de 5 bits utilisant le bit de parité.


Donner la matrice génératrice. Coder la même séquence source de l’exo. 4.

En supposant que nous ayons des erreurs aux bits de rang : 2, 6, 18 et 24.
Exercice 8 : Contrôle de parité

a. Montrer qu'un code C3,2 obtenu par parité paire est linéaire tandis qu'un code
C3,2 obtenu par parité impaire ne l'est pas
b. Que peut-on dire d'un code de longueur quelconque n obtenu par parité paire,
par parité impaire ?

Exercice 9 : Contrôle de parité

a. Combien d'erreurs peuvent-elles être détectées grâce à un contrôle simple de


parité? Est-il possible de corriger ces erreurs ?
b. Coder les messages suivants à l'aide d'un bit de parité :
o 1101011001
o 100
o 11111000111001111
c. Quels sont les taux de transmission (rendement) des trois messages ci-dessus ?

Exercice 10 : Contrôle de parité

a. Soit un code de parités croisées pour des mots d'information de longueur r = KxL,
que l'on, range dans un tableau à L lignes et K colonnes. En considérant come mot
de code le bloc d'information suivi des bits de parité :

c = i1, i2, iLxK, k1,.., kL, kL+1,….,kL+K+1, montrer qu'il s'agit d'un code linéaire
systématique.

b. Pour K=L=2, donner la matrice génératrice du code.

Exercice 11 : Matrice de contrôle et matrice génératrice

101100
 
Un code linéaire a pour matrice de contrôle H   1 1 0 0 1 0 
010001
 

a. Préciser la longueur n des mots de code et la longueur k des mots d'information.


b. Les messages suivants sont-ils des mots du code ?
o m1 = (1 1 1 0 1 1)
o m2 = (1 0 0 1 1 0)
c. Donner la matrice génératrice du code et le codage de chaque mot d'information.

Exercice 12 : Code systématique

Soit le code linéaire C7,4 qui au vecteur d'information i = (i1,i2,i3,i4) associe le mot de code
c= (i1,i2,i3,i4,c5,c6,c7) avec c5 = i1+i3+i4, c6 = i1+i2+i3, et c7 = i2+i3+i4.

a. Donner la matrice génératrice et la matrice de contrôle de ce code


b. Soit i = (1 0 1 0), quel est le mot de code associé ?
c. Soit le message m = (1 1 1 1 0 0 1). Est-il un mot du code ?
Exercice 13 : Code systématique
On considère un code en bloc linéaire (6,3), de matrice génératrice G.

1. Un code sous forme systématique est tel que les mots de code sont composés par les k
bits d’information suivis par (n −k) bits de redondance.

Ecrire la matrice génératrice du code permettant d’obtenir la forme systématique du


code.

2. Donner tous les mots de code.

3. En déduire la distance minimale dmin de ce code. Combien d’erreurs peut-il corriger ?

4. Déterminer la matrice de contrôle du code, à partir de la matrice génératrice sous


forme systématique.

Exercice 14 : Correction

1 0
 
Soit le code linéaire C3,2 de matrice génératrice G  0 1 
1 0
 

a. Construire le tableau standard des syndromes des vecteurs de {0,1}3.


b. Donner les transformés de tous les messages reçus possibles dans la correction
automatique par syndromes.
c. Cette transformation est-elle unique ?

Exercice 15: Code de Hamming

Considérons le code de Hamming avec r = 4. Donner la matrice de vérification et une


matrice génératrice.

5) Coder le code source 0101000110000101011110101000

6) On suppose que nous avons eu des perturbations qui ont affecté les bits dont les
rangs sont 2, 6, 11, 24, 26.

7) Quelle est la distance minimale de cette matrice de vérification. Combien


d’erreurs ce code peut-il corriger ?

8) Est-il possible de corriger les erreurs ? Justifiez et étayez votre réponse. Décodez
le code.
Exercice 16: Code de Hamming

 1 1 0 0 1 0 1
 
Soit le code linéaire Cn,r de matrice de contrôle H   0 0 1 1 1 0 1
 1 0 1 0 0 1 1
 

a. Donner la longueur des mots d'information et celle des mots de code.


b. Soit m un message dont tous les bits sont égaux à 1. Est-ce un mot du code?
c. Montrer que le code est un code de Hamming. Que peut-on dire de la correction
des messages ayant e erreurs, 1 ≤e≤7 ?
d. Si p est la probabilité d'erreur sur un bit et si les erreurs par bit sont
indépendantes, exprimer en fonction de p la probabilité qu'un message erroné
devienne, après correction automatique, un mot de code différent du mot émis.
Donner une valeur approchée pour p=0,1.

Exercice 17 : Code de Hamming

Lors d'un transfert de données, vous recevez les messages suivants codés grâce au code
Hamming(7,4). Des erreurs s'y sont insérées. Retrouvez-les et corrigez-les.

 0101000
 1110010
 1100011
 1011011
 1101011
 1000011

Exercice 16 : Code de Hamming

On considère un code de Hamming(7,4).


a. Coder le message suivant : 010110010111
b. Décoder le message suivant : 010001110010101101001

Exercice 18 : Code de Hamming étendu (8,4)


On considère le code linéaire en blocs défini par une matrice de contrôle

obtenue en rajoutant à la matrice de contrôle du code de Hamming (7,4,3) une colonne


de zéros puis une ligne de uns.

a. Quelles sont la longueur n et la dimension k de ce code ?


b. A quoi correspond pratiquement la modification du code de Hamming ?
c. Mettre la matrice H sous forme systématique.
d. Trouver une matrice génératrice G de ce code.
e. Montrer que ce code détecte toutes les configurations de deux erreurs et corrige
toutes les configurations d’une erreur.
Exercice 19 :Taille de paquets et taux de transfert (rendement)

L'objet de cet exercice est de comparer les taux de transmission et la fiabilité d'un code
par répétition et un code de Hamming. Le but est de démontrer que dans le cas d'un
canal bruité, émettre des paquets longs est plus efficace qu'émettre des paquets courts.
On désire transmettre un message de 10000 bits à travers un canal bruité. On considère
une probabilité d'erreur p = 0,01.

Codage par répétition : Chaque bit est émis trois fois. Le décodage se fait par un vote à la
majorité.

a. Quel est le taux de transmission ?


b. Quelle est la probabilité que le décodage soit incorrect ?
c. Combien des 10000 bits du message ne sont pas correctement transmis ?

Paquets de 9 bits : On considère un code Hamming(9,3). Le message est envoyé sous


forme de paquets de 9 bits, de la forme (s1, s2, s3, t1, t2, t3, t4, t5, t6). Les trois premiers
bits s1, s2, s3 constituent le message original, les six suivants t1, ... , t6 sont les bits de
contrôle.

d. Quel est le taux de transmission ?


e. Combien y a-t-il de configuration possible de 0 , 1 , ou 2 erreurs dans un tel
paquet de 9 bits ?
f. Supposons qu'il existe un codage tel que les 6 bits de contrôle puissent localiser
toutes les configurations jusqu'à deux erreurs. Quelle est alors la probabilité
qu'un tel paquet de 9 bits ne soit pas décodé correctement ?
g. Combien des 10000 bits du message ne sont pas transmis correctement ?

Conclusion Expliquer pourquoi transmettre un message en longs paquets est plus


efficace que de le transmettre en paquets courts. Pourquoi la répétition n'est-elle pas
une bonne idée ?

Exercice 20 :Code polynomial ou cyclique

11
 
Soit le code linéaire C3,2 de matrice génératrice G  0 1 
1 0
 

a. Montrer qu'il s'agit d'un code polynomial


b. Donner les matrices génératrices caractéristique et normalisée (forme
systématique) du code.
c. Décrire tous les codes polynomiaux C3,2
Exercice 21 : Code polynomial

Soit C un code polynomial obtenu par codage systématique, de générateur :

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

a. Donner la longueur de la clé de contrôle des mots du code


b. Donner la matrice génératrice normalisée G5,2 du code C5,2 de générateur g(x).
c. Donner les matrices génératrices des codes C6,3 et C7,4 ayant le même générateur
g(x).

Exercice 22 : Code polynomial

Soit C5,3 le code polynomial engendré par le polynôme g(x) = x2+1.

a. Construire le code par codage systématique

Exercice 23 :Code polynomial

Soit C5,3 le code polynomial engendré par le polynôme g(x) = x 2.

a. Construire le code par codage systématique.


b. Tout polynôme de code s'écrivant :
montrer que les erreurs de poids 1 situées sur les bits c4 et c5 sont détectées et
que les autres erreurs de poids 1 ne peuvent l'être.
c. Quelles erreurs de poids 2 peut-on détecter ?

Exercice 24 :Code polynomial

Soit g(x) = x3+x+1 le polynôme générateur d'un code polynomial de longueur 6.

a. Quelle est la longueur des mots d'information ?


b. Evaluer le pourcentage de messages erronés reconnus comme tels parmi tous les
messages erronés pour des erreurs par bit de probabilité p = 0,1

Exercice 25 : Code polynomial

Soit un code polynomial de longueur 5 de polynôme générateur g(x) = x3+x2+x+1.

a. Montrer que le message m(x)= x4+x3+x2+x est un polynôme de code. Avec quelle
probabilité a-t ‘il été correctement transmis ?
b. si il est accepté comme correct, bien qu'il soit erroné, que peut-on dire du poids
de son erreur ?
c. Donner l'ensemble des mots du code, préciser leur poids et retrouver les
résultats de la question précédente
d. De quel mot de code émis, le message (01111), s'il est erroné, peut 'il provenir et
avec quelle probabilité ?
Exercice 26 :

Considérons le code convolutionnel, dont le codeur est décrit par le diagramme suivant :

Coder le mot u=10110. Combien de zéros devez-vous introduire à la fin. Que vaut (n, k,
r) du code convolutionnel.

Quelle est la matrice génératrice de ce code ?

(a) Combien de blocs F y a-t-il ?


(b) Quelle est la taille de chaque bloc F : ?×? ?
(c) Donnez tous les blocs F.

Donner la représentation en treillis de ce code. Donnez le code l’entrée : 11100.

Comment est décodée la séquence : 1011101011111101101001100010.

Quelle est sa distance minimale du codeur ?

Exercice 27 :

Considérons le code linéaire binaire dont la partie parité est engendrée par les
équations:

z5 = s2 + s3 + s4
z6 = s1 + s2 + s3
z7 = s1 + s2 + s4
z8 = s1 + s3 + s4
le mot de source étant composé des bits (u1, u2, u3, u4) et le message codé : (z1, z2, z3,
z4, z5, z6, z7, z8).

a– Quelle est la matrice génératrice de ce code (sous forme systématique) ?


b– Coder la séquence 010110010111.
c– Quelle est la matrice de vérification de ce code ?
d– Montrer que la distance minimale de ce code est 4.
e– Combien d’erreurs sur le mot transmis ce code peut-il corriger au maximum?
Combien
peut-il corriger de schémas d’erreur différents (c.-à-d. combien a-t-il de syndromes
différents)?
f– On envisage l’utilisation de ce code sur un canal symétrique binaire. Pour cela les 15
schémas
d’erreur { corriger choisis sont les 15 schémas d’erreur les plus probables. Écrire
la table de correction (c.-à-d. la table donnant pour chaque syndrome la correction à
appliquer).
g– À l’aide de la table précédente, décoder 1111110000001100.

Exercice 28 :

Considérons le système de codage convolutif suivant, émettant 3 bits pour tout bit du
message à coder:

Comment est codée la séquence 1011 ? et la séquence 11111 ?

2. Donner la forme matricielle équivalente au codage d’une séquence de 3 bits, c.-à-d. la


matrice G telle que X = u.G.
3. Dessiner le treillis pour des messages d’entrée de 4 bits.
4. Décoder 111111101010100011 et 000101100010110011.
5. Quelle est la distance minimale de ce code ? Combien peut-il corriger d’erreurs au
maximum?

Вам также может понравиться