You are on page 1of 12

7

Codes reprsentatifs

Chapitre

es codes forment de cet ouvrage lobjet dtude le plus familier tous les lecteurs. On manipule les codes au quotidien, et leur comprhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabtique, auquel la civilisation moderne doit son dveloppement rapide. Les nombres aussi sont reprsents par des codes, et ces codes sont forms par des chiffres. Il existe dailleurs de multiples codes pour reprsenter les nombres, cest ainsi que lon peut reprsenter vingt par les symboles graphiques XX ou 20. Nous verrons dans ce chapitre diffrents types de codes, que nous avons classs en reprsentatifs (les codes alphanumriques) et analytiques (reprsentant des quantits numrales). Les systmes numriques que conoivent ou utilisent les ingnieurs manipulent pour la plupart ces codes.

7.1 Codes
On entend le mot code dans sa dfinition reprsentative, associant un objet un symbole. Nous manipulons les codes au quotidien. Remarquons que 123 nest pas cent vingt trois, de la mme faon que oie nest pas lanimal. Ce ne sont que des reprsentations des objets laide de symboles (codes). Et lassociation entre lobjet et ce qui le reprsente est concevable compter du moment que la codification est admise. Ainsi, oca ne signifie rien pour nous puisque nous ne ladmettons pas comme un code valide. Ce nest pourtant quune autre reprsentation (cest le mot italien) de oie. Dans notre cas, nous considrons les codes sous une reprsentation binaire. Cest dire que nous reprsenterons tout code avec un ensemble de 0 et de 1. Ces deux symboles reprsentent les formes possibles dun bit.

7.1.1 Bit
Bit : Le mot fut utilis pour la premire fois par Claude Shannon dans un article publi en 1948. On attribue cependant son origine John Wilder Tukey, mathmaticien amricain, qui inventa galement le mot software. Bit est une contraction des mots binary digit, ou galement binary unit. Un bit peut prendre deux valeurs possibles, 0 ou 1. Il est la base des codes que nous allons prsenter.

7.1.2 Mot
Un mot est un ensemble de bits agencs de sorte reprsenter un objet dans un code. Le mot 0011000 reprsente le caractre 0 (zro) en code Ascii (voir section suivante), ou le nombre 48 dans la reprsentation dite binaire naturel des entiers (voir section sur les codes analytiques). 139

2 - C O D E S

R E P R S E N T A T I F S

E T

A N A L Y T I Q U E S

7.2 Codes reprsentatifs


7.2.1 Code Ascii
On dsigne par code reprsentatif un ensemble de mots binaires utiliss pour reprsenter des objets non analytiques, cest--dire non numraux. Le Code ASCII (acronyme de Amrican Standard Code for Information Interchange) est lun des plus anciens et certainement le plus largement utilis. Le tableau suivant illustre quelques exemples de mots du code ASCII Caractre
0 1 2 3 4 5 6 7 8 9 A B C D E F G H

Code
0110000 0110001 0110010 0110011 0110100 0110101 0110110 0110111 0111000 0111001 1000001 1000010 1000011 1000100 1000101 1000110 1000111 1001000

Caractre
I J K L M N O P Q R S T U V W X Y Z

Code
1001001 1001010 1001011 1001100 1001101 1001110 1001111 1010000 1010001 1010010 1010011 1010100 1010101 1010110 1010111 1011000 1011001 1011010

Caractre
a b c d e f g h i j k l m n o p q r

Code
1100001 1100010 1100011 1100100 1100101 1100110 1100111 1101000 1101001 1101010 1101011 1101100 1101101 1101110 1101111 1110000 1110001 1110010

Caractre
s t u v w x y z

Code
1110011 1110100 1110101 1110110 1110111 1111000 1111001 1111010

Le code ASCII a t cr pour reprsenter les caractres alphanumriques usuels de langlais. Cette reprsentation premire, initie par la compagnie amricaine Bell, comportait 7 bits par mot. Ceci permettait donc 27 = 128 mots possibles. Des versions standardises et rendues internationales suivirent, aboutissant une reprsentation sur 8 bits, permettant dobtenir 28 = 256 mots possibles. Nanmoins, avec le dveloppement des technologies de linformation, des reprsentations plus volues ont vu le jour, dont le code Unicode, comportant 16 bits, pour un total de 65 536 mots possibles et permettent de reprsenter diffrents caractres des nombreux alphabets utiliss un peu partout dans le monde. Le code ASCII sest depuis pli au bonheur des artistes, donnant naissance ce quon appelle le Art-ASCII. Ainsi, on dessine des choses simples du type :
(__) (oo) /-------\/ / | || * ||----|| ~~ ~~ Vache

__ /o)\ \(o/ Yin/Yang

O /|\ / \ Personne

140

2 - C O D E S

R E P R S E N T A T I F S

E T

A N A L Y T I Q U E S

Ou des choses plus compliques comme cette amusante figure :


Oooo$$$$$$$$$$$$oooo oo$$$$$$$$$$$$$$$$$$$$$$$$o oo$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$o o$ $$ o$ o $ oo o$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$o $$ $$ $$o$ oo $ $ "$ o$$$$$$$$$ $$$$$$$$$$$$$ $$$$$$$$$o $$$o$$o$ "$$$$$$o$ o$$$$$$$$$ $$$$$$$$$$$ $$$$$$$$$$o $$$$$$$$ $$$$$$$ $$$$$$$$$$$ $$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$ $$$$$$$$$$$$$$ """$$$ "$$$""""$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ "$$$ $$$ o$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ "$$$o o$$" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$o $$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" "$$$$$$ooooo$$$$o o$$$oooo$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ o$$$$$$$$$$$$$$$$$ $$$$$$$$"$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$"""""""" """" $$$$ "$$$$$$$$$$$$$$$$$$$$$$$$$$$$" o$$$ "$$$o """$$$$$$$$$$$$$$$$$$"$$" $$$ $$$o "$$""$$$$$$"""" o$$$ $$$$o o$$$" "$$$$o o$$$$$$o"$$$$o o$$$$ "$$$$$oo ""$$$$o$$$$$o o$$$$"" ""$$$$$oooo "$$$o$$$$$$$$$""" ""$$$$$$$oo $$$$$$$$$$ """"$$$$$$$$$$$ $$$$$$$$$$$$ $$$$$$$$$$" "$$$""

7.2.2 Code BCD


Le code BCD est un autre code reprsentatif trs en usage. Il permet de reprsenter des nombres sous leur criture dcimale. Lacronyme BCD est pour Binary Coded Decimal, en franais dcimal, cod binaire. Il sagit de coder les chiffres de 0 9 en binaire. Le code 8421 est le plus rpandu. Le tableau suivant en rsume la correspondance : Chiffre 0 1 2 3 4 Bits 0000 0001 0010 0011 0100 Chiffre 5 6 7 8 9 Bits 0101 0110 0111 1000 1001

Code BCD : 8421

On appelle ce code 8421 car les 4 bits pondrent les nombres 8, 4, 2 et 1 respectivement. Ainsi, 0111 correspond 7 puisque 7 = 0 x 8 + 1 x 4 + 1 x 2 + 1 x 1. Cela permet dcrire 123 : 0001 0010 0011.

141

2 - C O D E S

R E P R S E N T A T I F S

E T

A N A L Y T I Q U E S

Dautres codes BCD existent, certains fonctionnant selon le mme principe de pondration, comme le code 2421 ou le code 5421, dont les tables suivent : Chiffre 0 1 2 3 4 Bits 0000 0001 0010 0011 0100 Chiffre 5 6 7 8 9 Bits 1011 1100 1101 1110 1111

Code BCD : 2421

Chiffre 0 1 2 3 4

Bits 0000 0001 0010 0011 0100

Code BCD : 5421

Chiffre 5 6 7 8 9

Bits 1000 1001 1010 1011 1100

Il existe galement des codes non bass sur la pondration, dont lexemple le plus connu est certainement le code-barres. Pour linstant, il suffit de retenir du code BCD son but utilitaire, savoir la reprsentation des chiffres 0 9 en code binaire, et noter que lcriture la plus rpandue est le code BCD 8421. Le grand intrt du systme BCD pour llectronicien est la possibilit de manipuler les chiffres en base dix pour diffrentes fins, notamment laffichage, comme ce sera illustr dans les chapitres subsquents.

7.2.3 Code de Gray


Comme nous aurons le temps de lapprcier plus tard, un des problmes importants des systmes numriques tient dans la synchronisation des diffrents signaux numriques. Lorsque lon conoit un compteur, ce problme devient important car dans la reprsentation binaire des nombres entiers, il arrive souvent que plusieurs bits changent en mme temps. Dans ce cas, il est possible que des nombres non dsirs apparaissent dans le compte. Considrons lexemple suivant. Nous voulons concevoir un compteur trois bits, en faisant varier trois signaux, v0, v1, v2 :

142

2 - C O D E S

R E P R S E N T A T I F S

E T

A N A L Y T I Q U E S

Lorsque le compteur passe de 001 010, il doit modifier deux bits. Si il y a un problme de synchronisation entre les bits v1 et v0, le nombre 011 saffiche pendant un court laps de temps, bien que ce ne soit pas le rsultat recherch. Pour remdier ce problme il est possible dutiliser le code de Gray, invent aux Bell Labs par Frank Gray et brevet en 1953. Le code de Gray encode les entiers de telle faon que le passage dun nombre au suivant ne change quun seul bit la fois, comme lillustre le tableau suivant o les entiers ont t encods sur 4 bits :
Dcimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Binaire 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 Gray 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 0110 0111 0101 0100

Le code de gray rgle le problme de compte que nous avons vu prcdemment, comme lillustre la figure suivante :

On construit le code de Gray en recopiant les bits de faon symtrique (effet miroir) et en procdant de faon itrative jusquau bit dsir.
0 1 0 0 1 1 0 1 1 0 0 0 0 0 1 1 1 1 00 01 11 10 10 11 01 00

Itration 1

Itration 2 143

Itration 3

2 - C O D E S

R E P R S E N T A T I F S

E T

A N A L Y T I Q U E S

Le code de Gray est encore trs utilis, notamment dans les ordinateurs o le compteur de programme utilise le code de Gray pour minimiser sa consommation dnergie. On le retrouve galement dans certains systmes de tlcommunication pour la correction derreur. Mentionnons aussi que le code de Gray a t utilis pour trouver une solution au problme des tours de Hanoi.

7.3

Dtection derreurs

Les systmes de communication numriques souffrent du bruit ambiant autant que leur pendant analogique. Le bruit est un signal parasitaire non dsir dont on ne peut prvoir le comportement. Trs tt, les ingnieurs ont t confronts ce problme et ont du dfinir des outils leur permettant dassurer lintgrit des messages envoys. On part de la problmatique gnrale suivante :

On dispose dune source mettrice (appele lmetteur) et dun dispositif pour la rception (appel le rcepteur). Pour transfrer les donnes de lmetteur au rcepteur, on utilise un canal de communication. Ces trois lments se retrouve trs frquemment dans les systmes numriques modernes. Les exemples ne manquent pas. Citons titre dexemple (metteur, canal, rcepteur) : Souris dordinateur, fil, ordinateur ; tlcommande, lien infrarouge, tlvision ; modem, cable RJ45, ordinateur ; guichet automatique, fil tlphonique, central de la banque ; etc. Le bruit vient altrer linformation transmise. Cela signifie quil peut altrer les bits envoys de telle sorte quun 0 devient 1 et inversement. Il est cependant possible, en utilisant un protocole appropri, de retrouver linformation mme si elle a t modifie par le bruit. Pour bien comprendre la problmatique, supposons que nous disposions dun code utilisant deux bits dinformation, et que ce code soit form des mots : {00, 01, 10, 11}. Si lmetteur envoie le mot 00, et que le rcepteur obtient 01 (altration du bit le moins significatif), il est clair que le rcepteur est incapable didentifier linformation reue aprs intervention du bruit.

7.3.1 Distance de Hamming


Dans lexemple prcdent, la difficult rencontre dans lidentification des mots reus rside dans le fait que modifier un bit dun mot du code revient gnrer un nouveau mot du code. Supposons maintenant que nous disposions du code form des mots : {0000, 0011, 1100, 1111}. Il est vident que dans ce cas, si lmetteur envoie 0000, et que le bruit vient altrer un des bits de sorte que le rcepteur reoive 0100, 144

2 - C O D E S

R E P R S E N T A T I F S

E T

A N A L Y T I Q U E S

le rcepteur est en mesure que le mot reu nexiste tout simplement pas dans le code, et il demandera que le message soit retransmis nouveau. Il existe une mtrique qui va nous permettre de mesurer la capacit limmunisation face au bruit dun systme de communication. Cette mtrique sappelle la distance de Hamming. La distance de Hamming, qui tient son nom dun informaticien clbre qui a particip au projet Manhattan, est la mesure entre deux mots dans un code. Pour cela, elle considre le nombre de bits qui a chang de valeur entre le premier mot et le second. Reprenons lexemple du paragraphe prcdent. Les mots 0000 et 0011 ont une distance de Hamming de 2, car les deux derniers bits ont chang quand les mots passaient de 0000 0011. Dans un code, on parlera de distance minimale, que nous noterons M. La distance de Hamming minimale dun code est la plus petite distance entre deux mots diffrents du code. Pour les deux exemples prcdents, on aura : 00 01 10 11 00 - 1 1 2 01 1 - 2 1 10 1 2 - 1 11 2 1 1 Distance minimale : 1 0000 0011 1100 1111 0000 0011 1100 1111 2 2 4 2 4 2 2 4 2 4 2 2 Distance minimale : 2

7.3.2 Thorie de la dtection derreurs


Grce aux dveloppements qui vont suivre, nous allons tre en mesure dvaluer la capacit dun systme de communication dtecter une erreur, et mme de pouvoir la corriger. cet effet, la thorie de la dtection derreur stipule que : M1=D+C o : M est la distance minimale dun code ; D est le nombre de bits pouvant tre dtect ; C est le nombre de bits pouvant tre corrigs, sachant que C D, cest--dire que toute erreur corrige doit ncessairement tre dtecte au pralable. Considrons ici lexemple du code form des mots {0000, 0011, 1100, 1111}, dont la distance minimale M est 2. Sachant que M=2, on trouve M 1 = 1, ce qui signifie D=1 et C = 0, puisque C D. Ce rsultat signifie quil est possible de dtecter une erreur sur un bit lorsquelle survient car D = 1 (si lmetteur envoie 0000, et qu la rception, le mot apparaisse comme tant 0100, on sait quil y a erreur), mais quil est alors incapable de corriger lerreur dtecter car C = 0 (lorsque le rcepteur reoit 0100, il est en mesure de savoir que le mot nappartient pas au code, mais il ne sait pas pour autant si le mot envoy tait 1100 ou 0000). On comprend de ce qui prcde quil est ncessaire de garantir M = 3 communication soit en mesure de dtecter une erreur sur 1 bit, et de la corriger : pour quun systme de

M = 3 => M 1 = 2 => C+D = 2 => (D = 2 et C = 0 ) ou (D = 1 et C = 1) 145

2 - C O D E S

R E P R S E N T A T I F S

E T

A N A L Y T I Q U E S

Ce qui prcde signifie : si il y a deux bits errons, le systme va dtecter lerreur, mais ne sera pas en mesure de corriger lerreur. Cependant, si il y a un seul bit erron, le systme dtectera lerreur et sera en mesure de la corriger. La difficult rside dans le fait dtre en mesure de trouver un code qui permette dobtenir une distance minimale M valant 3. Dans ce qui suit, nous allons montrer des mthodes systmatiques permettant datteindre ce niveau de scurit.

7.3.3 Quantit dinformation


Nous allons nous outiller dune autre mtrique qui rfre la quantit dinformation dun code. Supposons que nous utilisions un code qui comporte n mots, et quil soit possible de reprsenter N mots diffrents en utilisant lcriture utilise par ce code, la quantit dinformation1, not I, est gale I = log2(N/n). Plus cette valeur sapproche de 0, et plus le codage est optimal. Supposons que lon veuille reprsenter de faon binaire les 26 lettres de lalphabet. Pour ce faire, on utilise 5 bits : 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 Ici : n = 26, N = 25 = 32 : I = log2(N/n) = log2(32/26) = log2(1,230) = 0,2988 I 0,3 A B C D E F G H I J 01010 01011 01100 01101 01110 01111 10000 10001 10010 10011 K L M N O P Q R S T 10100 10101 10110 10111 11000 11001 U V W X Y Z

On appelle I quantit dinformation car elle quantifie linformation supplmentaire (bits) utilise pour porter linformation globale ncessaire. Dans lexemple de lalphabet, la valeur est proche de 0 (mais non nulle) car des certains mots du code (6 au total) existent sans quil y ait de symbole qui leur soit associ.

146

2 - C O D E S

R E P R S E N T A T I F S

E T

A N A L Y T I Q U E S

7.3.4 Encodage avec redondance


Le premier type dencodage est lencodage avec redondance. Nous avions vu que rpter un bit deux fois permettait davoir M = 2. Il est possible de montrer que si lon rpte chaque bit n fois, on aura M = n. Ainsi, pour obtenir un code avec M = 3, il suffit de rpter chaque bit du code 3 fois. Par exemple, pour un code comportant {00, 01, 10, 11}, on peut le modifier de sorte ce que les mots du codes correspondent respectivement {000000, 000111, 111000, 111111}. Dans ce cas l, on trouve que la distance minimale M est 3 : 000000 000111 111000 111111 000000 3 3 6 000111 3 6 3 111000 3 6 3 111111 6 3 3 Distance minimale : M = 3 Il est intressant de connatre le cot dun tel encodage. Dans notre cas, la quantit dinformation I vaut : I = log2(26/22) = log2(24) = 4. Notons que cette valeur est gale au nombre de bits ajouts. Cela est d au fait que le code de dpart possdait une quantit dinformation nulle.

7.3.5 Encodage avec bit de parit


Il est possible dajouter un bit de parit au mot dun code avant de le transmettre. Supposons que nous disposions de n bits, bi, en ajoute un bit p pour la parit : bn-1bn-2b2b1b0 => bn-1bn-2b2b1b0p Le bit p est tel que : p=1 si le nombre de bits 1 est pair (le plus frquemment utilis) p=1 si le nombre de bits 0 est pair p=1 si le nombre de bits 1 est impair p=1 si le nombre de bits 0 est impair Nous utiliserons dans la suite de louvrage le premier de ceux-l. En ajoutant un bit de parit, on ajoute 1 M, la distance de Hamming minimale du code. Prenons lexemple du code {00, 01, 10, 11}, nous aurons le code {000, 011, 101, 111}. Et comme prvu, on trouve M : 000 011 101 110 000 2 2 2 011 2 2 2 101 2 2 2 110 2 2 2 Distance minimale : M = 2 Dans ce cas, un systme de communication sera en mesure de dtecter une erreur sur un bit, mais ne sera pas en mesure de la corriger. Si nous reprenons la mesure logarithmique tablie plus tt, nous aurons dans ce cas : log2(24/23) = log2(2) = 1. Cette valeur ne change pas quelle que soit le nombre de bits transmis.

147

2 - C O D E S

R E P R S E N T A T I F S

E T

A N A L Y T I Q U E S

7.3.6 Encodage avec parit orthogonale


La parit orthogonale est une technique permettant dobtenir M = 3. Pour ce faire, un considre un code de longueur fixe (n) et un nombre de mots envoyer en bloc (m). On ajoute aux m x n bits, m+n+1 bits de parit. Pour ce faire, on utilise une matrice de parit orthogonale. Afin de bien comprendre la technique, considrons lexemple suivant, o nous prendrons n = 4, m = 3 : 0001 1 1101 1 0100 1 1000 1 Les mots envoyer sont ici : 0001, 1101 et 0100. Sur chaque lige, on calcule le bit de parit. On calcule ensuite le bit de parit sur chaque colonne, et finalement, en ligne ou en colonne le bit de parit des bits de parit obtenus (en ligne ou en colonne, la valeur sera identique). On trouve toujours I = m + n + 1 et M = 3. Lavantage de la mthode tient surtout dans la facilit avec laquelle le systme est en mesure de corriger lerreur sur un bit si jamais elle survient. Considrons nouveau lexemple prcdent. Nous voulons envoyer les mots 0001, 1101 et 0100. Pour ce faire, on utilise la parit orthogonale et envoyons 4 (m) mots de 5 bits (n+1) : 00011, 11011, 01001 et 10001. Supposons maintenant quun des bits de cette squence soit affect par le bruit du canal de communication, et qu la rception, nous obtenions 00111, 11011, 01001 et 10001. Le rcepteur reconstruit la matrice avec les bits reus : 0011 1 1101 1 0100 1 1000 1 Que ce soit sur la troisime colonne ou la premire ligne, on constate que les bits de parit ne correspondent pas au rsultat attendu. Il y a donc erreur (dtection derreur). Pour corriger lerreur, il faut retrouver le bit qui se trouve lintersection de la ligne et la colonne o la parit nest pas respecte : 0011 1 1101 1 0100 1 1000 1 Il suffit alors dinverser la valeur de ce bit : 0001 1 1101 1 0100 1 1000 1 Ce qui permet de retrouver le message transmis : 0001, 1101 et 0100. 148

2 - C O D E S

R E P R S E N T A T I F S

E T

A N A L Y T I Q U E S

7.3.7 Code de Hamming


Hamming a propos une mthode systmatique permettant de crer un code o M = 3. Supposons un code de longueur fixe n, Hamming propose dajouter p bits de parit, de sorte respecter lingalit suivante : n + p + 1 2p Nous obtenons la table (incomplte) suivante : n p 1 2 2 3 3 3 4 3 5 4 6 4 7 4 8 4 9 4 10 4 11 4 12 5 13 5 14 5 15 5 16 5

Les codes sont forms de la faon suivante : 1. Pour chaque mot du code de longueur n, on forme un nouveau mot de longueur n+p. 2. Chaque bit de parit porte un index i qui dbut par 1 (p1, p2, p3, p4) 3. Les bits du nouveau mot (de longueur n+p) sont indexs selon j et on dbute par 1 (b1, b2, b3, b4) 4. Chaque bit de parit (dindex i) prend la position de bit dont lindex j est une puissance de 2 (1, 2, 4, 8) de sorte que j = 2 i 1 5. Les bits du mot de dpart sont placs dans les espaces libres restant 6. Chaque bit de parit dindex i positionn au bit de position j ( j = 2 i 1 ) mesure la parit dune suite de bits qui dbutent lindex j, de telle sorte que lon prend i bits, puis saute i bits, puis prend i bits et ainsi de suite Le cas particulier qui nous concerne ici est celui o n = 4. Les rgles prcdentes deviennent : 1. 2. 3. 4. Pour chaque mot du code de longueur 4, on forme un nouveau mot de longueur 7. Chaque bit de parit porte un index i qui dbut par 1 (p1, p2, p3) Les bits du nouveau mot sont indexs selon j et on dbute par 1 (b1, b2, b3, b4, b5, b6, b7) Chaque bit de parit (dindex i) prend la position de bit dont lindex j est une puissance de 2 (1, 2, 4) de sorte que j = 2 i 1 5. Les bits du mot de dpart sont placs dans les espaces libres restant dindex 3, 5, 6, 7 6. Chaque bit de parit dindex i positionn au bit de position j ( j = 2 i 1 ) mesure la parit dune suite de bits qui dbutent lindex j, de telle sorte que lon prend i bits, puis saute i bits, puis prend i bits et ainsi de suite Ce qui donne p1 = parit(b1, b3, b5, b7) = parit(b3, b5, b7) p2 = parit(b2, b3, b6, b7) = parit(b3, b6, b7) p3 = parit(b4, b5, b6, b7) = parit(b5, b6, b7)

Regardons lexemples suivant. On veut envoyer le mot 0110 : 1. On forme un nouveau mot de longueur 7 : 0 0 0 0 0 0 0 2. Chaque bit de parit porte un index i qui dbut par 1 (p1, p2, p3) 3. Les bits du nouveau mot sont indexs selon j et on dbute par 1 (b1, b2, b3, b4, b5, b6, b7) 0 0 0 0 0 0 0 b7 b6 b5 b4 b3 b2 b1

149

2 - C O D E S

R E P R S E N T A T I F S

E T

A N A L Y T I Q U E S

4. Chaque bit de parit (dindex i) prend la position de bit dont lindex j est une puissance de 2 (1, 2, 4) de sorte que j = 2 i 1 0 0 0 p3 0 p2 p1 b7 b6 b5 b4 b3 b2 b1 5. Les bits du mot de dpart sont placs dans les espaces libres restant dindex 3, 5, 6, 7 0 1 1 p3 0 p2 p1 b7 b6 b5 b4 b3 b2 b1 6. Chaque bit de parit dindex i positionn au bit de position j ( j = 2 i 1 ) mesure la parit dune suite de bits qui dbutent lindex j, de telle sorte que lon prend i bits, puis saute i bits, puis prend i bits et ainsi de suite Ce qui donne : p1 = parit(b1, b3, b5, b7) = parit(b3, b5, b7) = parit(0, 1, 0) = 1 p2 = parit(b2, b3, b6, b7) = parit(b3, b6, b7) = parit(0, 1, 0) = 1 p3 = parit(b4, b5, b6, b7) = parit(b5, b6, b7) = parit(1, 1, 0) = 0 0 1 1 0 0 1 1 b7 b6 b5 b4 b3 b2 b1 Le code de Hamming permet dobtenir M = 3 de sorte pouvoir dtecter et corriger une erreur sur un bit. Pour ce faire, un nombre binaire C de longueur p est cr. Dans notre cas, ce nombre est form des bits c1 = parit(b1, b3, b5, b7) c2 = parit(b2, b3, b6, b7) c3 = parit(b4, b5, b6, b7) Le nombre C = c3c2c1 donne lindex j du bit qui a t altr. Si C = 0, on prsume quaucun bit na t modifi. Si C est diffrent de 0, on inverse le bit dindex j = C. Reprenons lexemple prcdant. Nous voulons envoyer le mot 0110. Pour cela, on forme le mot 0110011. Le rcepteur reoit 0100011. Le rcepteur forme le nombre C en calculant la valeur des bits : c1 = parit(b1, b3, b5, b7) = parit(1, 0, 0, 0) =1 c2 = parit(b2, b3, b6, b7) = parit(1, 0, 1, 0) =0 c3 = parit(b4, b5, b6, b7) = parit(0, 0, 1, 0) =1 C = 101(2) = 5(10). On inverse b5 et on trouve : 0110011 qui est le mot envoy par lmetteur.

150

You might also like