Professional Documents
Culture Documents
Leur tude a t initie par Shannon il y a une cinquantaine d'annes avec la thorie de
l'information. Les thormes de Shannon ont montr l'existence de codes optimaux
(correcteurs d'erreurs et compression), et Varshamov et Gilbert ont montr la mme poque
l'existence de codes ayant un taux de transmission optimal par rapport la fiabilit.
Nous allons tout d'abord dfinir les outils utiliss puis tudier quelques exemples de codes de
contrle.
Code
Commenons par dfinir mathmatiquement quelques termes :
mot...............k-uplet
vocabulaire.....ensemble A de mots,
code..............application injective :
, k tant fixe
(A, B vocabulaires)
Exemples de codes :
langues et traduction
Ces deux exemples de codes ne sont pas des applications injectives.
Alphabets utiliss
Un code efficace ncessite des relations entre les symboles, donc des alphabets numriques
qui permettent d'effectuer des oprations mathmatiques sur les symboles.
Les oprations les plus simples, l'addition et la multiplication, sont dfinies dans un corps. Un
corps est un ensemble muni de deux oprations, qui doivent vrifier quelques proprits,
notamment la stabilit (toute combinaison d'lments du corps avec ses oprations doit donner
un rsultat qui appartient au corps) et la symtrisation des lments (chaque lment doit
avoir un inverse et un oppos dans le corps).
Par ailleurs un alphabet fini implique un corps fini, que l'on munit des addition et
multiplication modulo p (on ne garde que le reste de la division euclidienne du rsultat par le
cardinal p du corps).
De plus, si F est un corps, l'ensemble des mots de k symboles F^k est un espace-vectoriel. Les
mots sont alors des vecteurs, ce qui permet d'utiliser toutes les ressources de l'algbre linaire.
De nombreux codes sont linaires, ce sont donc des applications linaires qui ont une matrice
associe, utile pour les calculs.
On utilisera dsormais l'alphabet binaire {0,1} muni des addition et multiplication modulo 2
(ainsi 1+1 = 0).
Code de contrle
On caractrise un code par trois nombres : code [n,k,d]
Le code de Hamming
Le code de Hamming est une code [7,4,3]. Il prend donc en entre des mots de 4 bits de
donnes, et ajoute 3 bits de contrle pour donner des mots de 7 bits.
Plus prcisment : (u1 ,u 2,u3 ,u4 ) -> (u1 ,u2 ,u3 ,u4,u 5 ,u6,u7 ) o :
u5 = u1 + u 2 + u3
u6 = u2 + u 3 + u4
u7 = u1 + u 2 + u4
Les bits de donne 1, 3 et 4 apparaissent dans deux quations, le bit de donne 2 dans trois, et
les bits de contrle 5, 6 et 7 dans une seule.
On peut alors vrifier que l'on a bien d = 3 : en modifiant un bit de donne, intervenant dans
deux ou trois quations, il faut modifier deux ou trois bits de contrle pour que les quations
soient vrifies, ce qui signifie que le nombre minimal de bits diffrents entre deux mots est 3.
Il permet donc bien de corriger une erreur dans le mot.
Pour le dcodage on est confront plusieurs cas :
Une quation fausse : seuls les bits de contrles n'interviennent que dans une quation,
c'est donc le bit de contrle en cause qui est erron.
Trois quations fausses : seul le bit de donne 2 intervient dans les trois quations,
c'est lui qui est erron.
Le codage de Hamming reste cependant mdiocre par rapport aux critres de Varshamov et
Gilbert, c'est pourquoi de nouveaux codes ont t recherchs et sont en train de voir
effectivement le jour.
Conclusion
Les codes correcteurs d'erreurs sont donc encore un sujet de recherche active, visant
principalement une mise en oeuvre efficace. Ils sont peu connus mais trs utilis, car la
fiabilit des transmissions et du stockage est une ncessit.