Professional Documents
Culture Documents
Un canal bruit, un CD ray, ou bien un trou lu ou non lu sur une carte perfore dans les annes
50, l'poque o Richard Hamming travaillait sur un calculateur de faible fiabilit produisent des
erreurs qui se manifestent par le changement d'un tat 0 en un 1 ou d'un 1 en un 0 lors
d'une transmission de donnes numriques. Il existe des mthodes de codage qui permettent de
dtecter la prsence d'une ou plusieurs erreurs dans un mot : il s'agit des codes dtecteurs
d'erreurs. Les mthodes de codages tudies ici permettent la dtection mais aussi la correction
d'erreurs se produisant lors de la transmission de donnes. Nous verrons plus exactement :
Le compte rendu du TP est dposer sur campus la fin de la sance. Le barme des rponses
rdiger est signal en marge du protocole et les questions thoriques (*) sont prparer avant la
sance. Ce barme est conditionn par les validations ponctuelles.
I. CODAGE DE HAMMING
CODAGE (7,4) Dune manire gnrale on associe un message de m bits, k bits de contrle de parit, ce qui
ET CONVENTIONS totalise m+k bits transmettre. Dans lhypothse dune seule erreur par mot de (m+k) bits il faut
SOUS MATLAB distinguer (m+k) possibilits ainsi que labsence derreur. Par consquent, il faut choisir k de sorte
que :
2k m+k+1.
Pour un message M de m=4 bits (b1,b2,b3,b4) il faut donc au moins k=3 bits de parit pour
distinguer m+k=7 occurrences derreur et 1 absence derreur.
b2 b4
Le code associ au message M peut alors sexprimer
par une relation matricielle de la forme : b3
C= tG.M o :
Lopration daddition est ralise modulo 2 h1
h2 b1
M est le vecteur message de m=4 lignes
C est le vecteur code de n=7 lignes
G une matrice (mxn)
1 1
GENERATION Q0*. Dterminer lexpression thorique de la matrice G
DUN CODE qui gnre le code C partir du message M: C= tG.M.
CORRECTION PAR Q5. Nous souhaitons ici tabuler la position dune erreur dans les lignes dune matrice P(n+1,n) dont la
TABLE DE DECODAGE premire ligne, compose uniquement de zros indiquera naturellement labsence derreur.
4 pts Excuter le programme ci-contre et relever les
valeurs du scalaire z10. Comparer ces rsultats aux
valeurs de chaque colonne de Zn convertie en
binaire. (Se reporter la rubrique de help sur bi2de(.))
Relever la matrice T en sortie de la fonction
syndtable(.) de MATLAB. Comparer ce rsultat avec P. Frag5: Tabulation de syndromes
10
vn 11 11
de lalgorithme de
dcodage. bn-1 bn-2 bn bn-1
Structure du codeur NRNSC (7,5) muni des polynmes
gnrateurs : G(x)=x2+x+1 et G(x)=x2+1 Modlisation en treillis du codeur NRNSC (7,5)
2 2
Q7*. Sur la structure du codeur, un et de vn dsignent les bn bn-1 bn-2 un vn
bits de contrle lordre n associs aux trois 0 0 0
derniers bits du message coder : bn, bn-1 et bn-2. 0 0 1
Ecrire lexpression de un et de vn en fonction des 0 1 0
chantillons bn, bn-1 et bn-2 du message coder.
0 1 1
Justifier le caractre Convolutif Non-Rcursif et Non-
1 0 0
Sparable de ce code.
Dresser la table de vrit de un et de vn. Comparaison 1 0 1
avec la modlisation en treillis. 1 1 0
Calculer le code thorique associ M=[1 0 0 1]. 1 1 1
Q8. La fonction poly2trellis() de MATLAB assure la conversion de la description mathmatique du code (polynmiale) en
treillis, plus facilement manipulable.
Relever les sorties de la fonction treillis=poly2trellis(3,[7,5]) dans la fentre de commande.
Relever de la mme manire treillis.outputs. Comparer les sorties du treillis celle du codeur (figure ci-dessus)?
Examiner dans la fentre de commande les messages derreur en sorties des fonctions : treillis=poly2trellis(2,[7,5])
et treillis=poly2trellis(4,[7,5]). Quelle est la longueur de contrainte du code ? Comment sont dfinis les polynmes
gnrateurs pour la fonction poly2trellis()?
Egalement 00
disponible
Etat
en ligne initial
01
10
11
EXERCICE SUR UN Q11. Quel est le code thorique associ un message tel
MESSAGE PLUS LONG que : M=[1 1 1 0 0 0 0] ? (voir le cours).
3 pts Relever les sorties de frag9 et noter lemplacement
des erreurs dans le vecteur codefaux.
Justifier le rsultat du dcodage par application de
lalgorithme de Viterbi : Dvelopper le treillis
(utiliser le modle ci-dessous) en faisant apparaitre
les distances de Hamming entre chaque branche et Frag9:
Codage convolutif et dcodage par la mthode de Viterbi
les symboles un,vn reus squentiellement.
COMPLEMENT : Q12. Modifier le programme de Q9 pour le codage/dcodage NRNSC(7,6) du mme message. Relever les sorties de ce
CODAGE NRNSC (7,6) programme et justifier ces rsultats en sappuyant sur :
ET DECODAGE La structure du codeur ainsi que ses polynmes gnrateurs.
Le diagramme en treillis du codeur.
POUR EN http://en.wikipedia.org/wiki/Hamming_code
SAVOIR PLUS http://www2.rad.com/networks/1994/err_con/hamming.htm
ET http://fr.wikipedia.org/wiki/Code_correcteur
http://www.cnam.fr/elau/publi/leruyet/Cours/viterbi_animation.pdf
http://wcours.gel.ulaval.ca/2008/h/64486/default/7references/codage_convolutif.pdf
3 3