Réseaux et Protocoles - Université de Strasbourg

Université de Strasbourg Licence 3 Informatique
UFR Mathématique et Informatique Année 2010/2011
Réseaux et Protocoles
TD05 : Codes correcteurs et détecteurs
Exercice 1
On considère un code Cde répétition c’est-à-dire un code (mk, k)où chaque groupe de kbits est répété m
fois.
1. Quelle est la distance minimale entre deux mots de code?
2. Pour qu’un code soit 2-correcteur, quelle doit être la valeur minimale de m? On considère dans la
suite un tel code.
3. Quel est son rendement ?
4. Combien d’erreurs peuvent être détectées ? Ecrire en pseudo-code l’algorithme de décodage pour
détecter un nombre maximal d’erreurs mais n’en corriger aucune. Le résultat sera un booléen ayant
pour valeur vrai si aucune erreur n’a été détectée. L’entrée de l’algorithme est un code cdonné sous
la forme d’un tableau de n=mk entiers.
5. Combien d’erreurs peuvent être corrigées ? Ecrire en pseudo-code l’algorithme de décodage pour
corriger un nombre maximal d’erreur. Le résultat sera le mot λtrouvé après correction.
Exercice 2
Un numéro de sécurité sociale comporte 15 chiffres. Il est d’abord composé d’un entier Kde 13 chiffres :
1 chiffre indiquant le sexe (1 ou 2), 2 chiffres pour l’année de naissance, 2 autres chiffres pour le mois de
naissance, 2 chiffres pour le numéro de département, 3 chiffres pour l’identifiant de la commune et les 3
derniers pour le rang de naissance dans le mois. Cet entier est suivi d’une clef Cà 2 chiffres servant à une
vérification informatique et correspondant au complément à 97 du reste modulo 97 de l’entier de 13 chiffres.
Ainsi l’entier K+Cest un multiple de 97.
1. Calculer la clef du numéro 2850567482101 (482 correspond à Strasbourg).
2. Quel est le rendement de ce code ?
3. Combien d’erreurs de chiffres la clef peut-elle permettre de détecter?
Exercice 3
On considère le code linéaire dont la matrice génératrice est :
G=
1 0 0 1 1 0
0 1 0 0 1 1
0 0 1 1 0 1
1
1. Par combien de bits d’information et de contrôle est constitué ce code?
2. Avec ce code, comment est encodée la suite de bits 011001010101110001 ?
3. Calculer la matrice de parité Hde ce code.
4. Quelles sont les images par Hdes mots 100000, 010000, 001000, 000100, 000010, 000001. Que
pouvez-vous déduire sur le pouvoir de correction de ce code ?
Exercice 4
On considère le code Hamming (7, 4).
1. Calculez les matrices génératrice et de parité de ce code.
2. Encodez la suite de bits 100101001010
3. Décodez la suite de bits 1110110011010101110001100111
(on suppose qu’il y a au plus une erreur sur 7 bits consécutifs).
Exercice 5
On considère le code polynomial généré par le polynôme X8+X4+X3+X2+ 1.
1. On suppose que la longueur du code est 16 bits. Encodez la suite de bits 1010001000111101.
2. Y a-t-il une erreur dans la suite de bits 1010101001010101 ?
Exercice 6
On considère un code polynomial (8,5) généré par le polynôme G(X) = X3+X+ 1. Un mot à encoder
peut se présenter sous la forme P(X) = a4X4+a3X3+... +a0X0.
1. Exprimez la valeur des bits de contrôle en fonction des ai.
2. En déduire les matrices génératrice et de parité de ce code.
3. Les codes polynomiaux sont des codes linéaires dont l’encodage et le décodage peuvent être réalisés
sans multiplication de matrices mais en utilisant un circuit séquentiel contenant un registre à décalage.
Dessinez un tel circuit pour G(X).
4. Dans un tableau indiquez les valeurs contenues dans les bascules à chaque étape pour le décodage de
11010111.
Exercice 7
On considère le code constitué de 7 bits d’information et un bit de contrôle de parité paire.
1. Ce code est-il un code linéaire ? Si oui donner sa matrice génératrice, son poids minimal et en déduire
ses capacités de détection et de correction d’erreur.
2. Même question pour le code à contrôle de parité impaire.
3. Montrer qu’un polynôme p(X)à coefficients dans Z2est divisible par 1 + Xsi et seulement si la
somme des coefficients vaut 0 modulo 2.
2
4. Le code à parité paire est-il polynomial? Si oui donner son polynôme générateur.
5. Même question pour le code à parité impaire.
Exercice 8
1. Montrer qu’une condition nécessaire et suffisante pour qu’un code polynomial détecte toute erreur
portant sur un unique bit est que son polynôme générateur admette au moins deux monômes.
2. Montrer que si la somme des coefficients du polynôme générateur d’un code est nulle, alors toute
erreur portant sur un nombre impair de bits est détectée.
3. Montrer que si le polynôme générateur d’un code admet au moins 2 monômes ainsi qu’un facteur
irréductible de degré d, alors il détecte tout paquet d’erreurs (c’est-à-dire des erreurs consécutives)
portant sur au plus d1bits.
Exercice 9
Pour leur pouvoir détecteur d’erreur et leur rapidité de décodage, les codes polynomiaux sont souvent em-
ployés dans les réseaux locaux (taux d’erreur généralement très faible). En cas d’erreur, l’émetteur procède
à une retransmission. Dans les réseaux sans fil, le bruit est plus important et les temps de transmission plus
long. Aussi, des codes correcteurs sont utilisés bien qu’ils nécessitent un plus grand débit car de nombreuses
informations de contrôle doivent être combinées à l’information utile.
FIGURE 1 – Diagramme de codage et décodage
source : wireless communications and network, W. Stallings, Prentice Hall
Dans ce type de transmission, on trouve principalement des codes convolutifs. Un code convolutif est défini
par un triplet (n, k, K)kest le nombre de bits utiles traités, nle nombre de bits d’un mot du code, et Kla
3
longueur de contrainte, elle correspond aux nombres de bits intervenant dans la génération des mots du code.
Considérons un code (2,1,3) défini par vn1=unun1un2et vn2=unun2. On remarque
qu’il ne s’agit pas d’un code systématique (les bits d’informations ne sont pas présents en sortie du codeur).
Pour coder la suite 01101, on ajoute deux 0au début pour correspondre aux un1et un2du 1er bit de la
suite. Chaque bit d’information intervient dans le calcul de son code mais aussi dans celui des codes sui-
vants, ce bit information est donc contenu dans plusieurs codes, c’est cela qui donne le pouvoir correcteur
de ce code. Pour que le dernier bit intervienne également dans plusieurs codes, deux 0fictifs sont ajoutés
à la suite (ils seront à supprimer au décodage). Ainsi, la suite (00)01101(00) est codée 00 11 01 01 00 10 11.
Le diagramme de la figure 1a correspond au codage précédent. La figure 1b représente la machine à états
finis de ce code.
Pour comprendre le décodage, la machine à états finis est généralement déployée en un diagramme appelé
treillis (cf. figure 2). Le code de l’exemple précédent suit le chemin : a-a-b-d-c-b-c-a.
FIGURE 2 – Treillis de décodage
source : wireless communications and network, W. Stallings, Prentice Hall
Un code reçu doit correspondre à un chemin dans le treillis. Si aucun chemin ne convient, les différents
chemins possibles sont envisagés, ne sont conservés que ceux qui possèdent une distance de Hamming mi-
nimale. La figure montre le décodage d’un mot selon l’algorithme de Viterbi qui procède en b+ 1 étapes où
best une taille de fenêtre choisie au préalable. On voit sur ce schéma que le chemin aboutit à une correction
du premier code, 10, en 11.
4
FIGURE 3 – Décodage selon l’algorithme de Viterbi
source : wireless communications and network, W. Stallings, Prentice Hall
Algorithme de Viterbi :
Etape 0 : désigné par 0
Etape i+ 1 : pour chaque état eau temps i+ 1, tous les chemins actifs conduisant à esont déterminés. Si
plusieurs chemins conduisent sur e, ceux qui minimisent la distance de Hamming sont conservés.
Etape b: si un état est étiquet par une distance minimale et que le chemin pour y parvenir est unique, le
code est corrigé selon ce chemin.
1. Le schéma de la figure 4 représente un codeur convolutif (3,1,3).
Représentez le diagramme de ce codeur.
2. Représentez le treillis de ce codeur. Quel sera le trajet suivi par le mot 01011 ? En déduire le code
produit en sortie .
FIGURE 4 – Code convolutif
5
1 / 6 100%

Réseaux et Protocoles - Université de Strasbourg

La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !