Académique Documents
Professionnel Documents
Culture Documents
Marc Chaumont
Introduction
Sources
The Art of Correcting Coding, Robert H. Morelos-Zaragoza, 2002 Cours de Pierre Abbrugiati, Universit e de Nice, Cours de Marc Uro, INT Evry.
Marc Chaumont
Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Plan
1
Introduction Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice Les codes lin eaires en blocs D enition Matrice g en eratrice et de v erication de parit e Exercice Le poids = la distance !
Marc Chaumont
Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Par codes, on peut entendre plusieurs concepts distincts : les codes pour la cryptographie, les codes pour la compression, les codes pour la correction derreur. Dans ce cours, nous nous interessons uniquement aux codes correcteurs derreurs.
Marc Chaumont
Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Constat
Dans la grande majorit e des cas, une transmission de donn ees se fait en utilisant une voie de communication qui nest pas enti` erement able : le canal de communication. Autrement dit, les donn ees, lorsquelles circulent sur cette voie, sont susceptibles d etre alt er ees. Bref, il faut des m ecanismes de d etection et de correction de ces erreurs...
Marc Chaumont
Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Marc Chaumont
Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Technique de codage : Pour un bit dinformation, 3 bits sont envoy es (cad cod es) tels que : 0 000 1 111 Technique de d ecodage : Le d ecodage se fait par vote majoritaire. Par exemple, si le mot re cu est 001, alors on d eduit que le bit emis etait 0.
Marc Chaumont
Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Un bon code doit avoir : un bon rendement (taux) cest-` a-dire un grand nombre de bits dinformation par rapport aux bits cod es. une bonne capacit e de d etection et correction derreurs, une proc edure de d ecodage (et de codage) susamment simple et rapide. Tout le probl` eme de la th eorie des codes correcteurs derreurs est l` a : construire des codes qui d etectent et corrigent le plus derreurs possible, tout en allongeant le moins possible les messages, et qui soient faciles ` a d ecoder.
Marc Chaumont
Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Plan
1
Introduction Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice Les codes lin eaires en blocs D enition Matrice g en eratrice et de v erication de parit e Exercice Le poids = la distance !
Marc Chaumont
Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Un alphabet est un ensemble ni non vide, ses el ements sont appel es lettres ou symboles. Dans le cas binaire lalphabet est lensemble {0, 1} que lon notera F2 . Un message ou un mot dinformation ou vecteur dinformation ou bloc dinformation ou code source est une suite ` a valeur dans un alphabet, il correspond ` a une suite de symboles. ... exemple de mot appartenant ` a F2 4 : 0011. ... dit autrement, dans le cas binaire, un mot est une suite de 0 et de 1 ou une suite de bits ! Fn : espace vectoriel de dimension n sur le corps ni F.
Marc Chaumont
Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Principe g en eral
Cadre du cours : nous nous limiterons au cas binaire (alphabet F2 ).
Principe Tous les codes correcteurs derreur (ECC) reposent sur le m eme principe : de la redondance est ajout ee ` a de linformation. Principe g en eral (codage en blocs) Un message est d ecoup e en blocs de k bits (codage en blocs), et un m eme algorithme est appliqu e sur chaque bloc : ou bien on ajoute des bits de contr ole ` a la n de chaque bloc, ou bien on modie compl` etement les blocs mais on evite que deux blocs di erents soient transform es en un m eme bloc.
Marc Chaumont
Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Figure: Formation dun mot de code par ajout de redondance (code en blocs)
Marc Chaumont Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Marc Chaumont
Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Le plus simple des ECC est le code binaire de r ep etition de longueur 3. Il consiste ` a r ep eter chaque bits dinformation trois fois; un 0 est cod e (000) et un 1 est cod e (111). La distance de Hamming entre les mots de code (000) et (111) est 3. Puisquil ny a que deux mots de code pour ce code, la distance minimale vaut egalement 3.
Marc Chaumont
Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Code [n, k , dmin ] La notation [n, k , dmin ] sera utilis ee pour d enoter les param` etres dun code en bloc de taille n, qui code k bits et poss` ede une distance minimale dmin . Remarque : Le taux du code (rendement) est de bits dinformation par bits cod es.
k n
Marc Chaumont
Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Plan
1
Introduction Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice Les codes lin eaires en blocs D enition Matrice g en eratrice et de v erication de parit e Exercice Le poids = la distance !
Marc Chaumont
Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Marc Chaumont
Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Sphere de Hamming
Sphere de Hamming Une sph` ere de Hamming St (x ), de rayon t et centr e en x Fn 2 est lensemble des vecteurs ` a une distance de x plus petite ou egale ` at St (x ) = {y Fn 2 |dH (x , y ) t }
Marc Chaumont
Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Figure: Les 2 sph` eres de rayon 1 autour des deux mots de code du code binaire ` a r ep etition [3,1,3]
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Capacit e de correction
Capacit e de correction dun code C La capacit e t de correction derreur dun code C est le plus grand rayon des sph` eres de Hamming pour tous les mot de code tels que pour toute les paires x , y C di erentes, les sph` eres soient disjointes : t = max {l |Sl (x ) Sl (y ) = , x = y }
(x , y ) C
Capacit e de correction et distance minimale dun code C Un code de distance minimale dmin est suceptible de corriger t = (dmin 1)/2 erreurs. Plus pr ecis ement, si le mot y re cu apr` es transmission comporte au plus t composantes erronn ees, il est possible de d eterminer sans ambigu t e le mot de code emis c .
Marc Chaumont Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Codage : 0 000 1 111 La distance minimum est dmin = 3, Le nombre derreur maximum d etectable est de dmin 1 = 2 erreurs. Le nombre derreur maximum corrigeable est de t = (dmin 1)/2 = 1 erreur.
D erouler les = cas...
Marc Chaumont
Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Dans le cadre g en eral, il est pratiquement impossible de d eterminer k k k la distance minimale : il y a (2 1)+(2 2)+(2 3)+ ... +1 = 2k (2k + 1) 1/2 (2k + 1)2 1/2 2k + 1/2 distances ` a calculer. Pour k = 50, cela fait 633825300114114137798398181376 distances ` a calculer. Lavantage des code lin eaires, cest que pour calculer dmin cela n ecessite seulement de calculer les poids de Hamming des 2k 1 mot-de-code = 0! Avec k=50 cela fait seulement 1125899906842623 calculs !
Marc Chaumont
Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Plan
1
Introduction Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice Les codes lin eaires en blocs D enition Matrice g en eratrice et de v erication de parit e Exercice Le poids = la distance !
Marc Chaumont
Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Marc Chaumont
Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
La concat enation de u (linformation) et v (la redondance) donne un mot de code de longueur n = k + r . mot de code = code Lensemble de tous les mots obtenus (de longueur n par concat enation de u et v ) de cette fa con forme un code en blocs de longueur n et de dimension k . La fonction d etermine le codage.
Marc Chaumont
Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Le codage consiste ` a faire correspondre ` a chaque groupe de k symboles dinformation, un mot de code particulier.
Marc Chaumont
Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Soit u = (u1 , u2 , u3 , u4 ) un bloc de 4 bits ` a prot eger. Trois symboles de contr ole sont adjoints ` a u pour former un mot de code. Les symboles de contr oles sont calcul es comme ceci (fonction ): v1 = u2 + u3 + u4 v2 = u1 + + u3 + u4 v3 = u1 + u2 + u4 en eectuant les additions modulo 2.
Marc Chaumont
Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Rappel sur laddition modulo 2 0+0 0+1 1+0 1+1 mod mod mod mod 2=0 2=1 2=1 2=0
ce qui revient ` a faire un OU EXCLUSIF en logique bool eenne. Rappel sur la soustraction modulo 2 a + b mod 2 = a b mod 2
Marc Chaumont
Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Linformation u = (u1 , u2 , u3 , u4 ) et la redondance v = (v1 , v2 , v3 ) = (u ) permettent dobtenir le mot de code c = (c1 , c2 , c3 , c4 , c5 , c6 , c7 ) = (u1 , u2 , u3 , u4 , v1 , v2 , v3 ).
Marc Chaumont
Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Exercice : Questions
1 2
Enum erer lensemble des mots de code, Donner la dimension, la longueur et la distance minimum du code, Donner le taux de ce code, Donner la capacit e de d etection, Donner la capacit e de correction. Un mot y re cu apr` es une transmission est y = (1000110). Ya-t-il eu erreur de transmission ? Donner la valeur du syndrome.
3 4 5 6
Marc Chaumont
Introduction
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
Correction :
1
Enum erer lensemble des mots de code, 2k = 24 = 16 mots de codes (lister les mots de codes), Donner la dimension (=4), la longueur (=7) et la distance minimum du code (soul` eve la question du nombre de distance ` a calculer 2k (2k + 1) 1/2 (2k + 1)2 1/2 2k + 1/2 = 120 calculs ...) remarque : dmin = 3, Donner le taux de ce code (4/7 0.57), Donner la capacit e de d etection (dmin 1 = 2), Donner la capacit e de correction ( (dmin 1)/2 = 1), Un mot y re cu apr` es une transmission est y = (1000110). Ya-t-il eu erreur de transmission ? Donner la valeur du syndrome.
Marc Chaumont Introduction
3 4 5 6
Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice
correction
Un mot y re cu apr` es une transmission est y = (1000110). Ya-t-il eu erreur de transmission ? Linformation de redondance calcul ee sur le code re cu est w = (y1 , y2 , y3 , y4 ) = (1000) = 011. Linformation de redondance re cue est v = (y5 , y6 , y7 ) = (110). Donc, il y a eu une erreur de transmission (w = v ). Le syndrome s = v w mod 2 = 110 011 = 101.
Marc Chaumont
Introduction
Plan
1
Introduction Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice Les codes lin eaires en blocs D enition Matrice g en eratrice et de v erication de parit e Exercice Le poids = la distance !
Marc Chaumont
Introduction
D enition
Code lin eaire Un code lin eaire C de longueur n est un sous-espace vectoriel de Fn . Cela signie que le codage peut etre r ealis e par des multiplications matricielles. Code lin eaire : D enition bis Un code C [n, k , dmin ] est dit lin eaire sil existe une matrice G de dimension k n dont les coecients sont dans F tels que lensemble des mots de code soient obtenus par le produit matriciel entre les mots de source u et G. Pour Fn 2 : C = {y |y = u .G , u {0, 1}k }
Marc Chaumont
Introduction
Remarque
Le code de Hamming [7, 4, 3] que nous avons vu dans lexercice pr ec edent est un code lin eaire. Une matrice G (k n) de ce code 1 0 0 0 1 0 G = 0 0 1 0 0 0 est (` a red emontrer chez soi): 0 0 1 1 0 1 0 1 0 1 1 0 1 1 1 1
Marc Chaumont
Introduction
Circuit imprim es
Circuits imprim es Un codeur et un d ecodeur (lin eaire en blocs) peut etre r ealis ee par utilisation de quelques portes ET et OU exclusif. Rappel sur laddition modulo 2 et le produit modulo 2 0+0 0+1 1+0 1+1 mod mod mod mod 2=0 2=1 2=1 2=0 0.0 0.1 1.0 1.1 mod mod mod mod 2=0 2=0 2=0 2=1
Laddition revient ` a faire un OU EXCLUSIF en logique bool eenne. Le produit revient ` a faire un ET en logique bool eenne.
Marc Chaumont
Introduction
Plan
1
Introduction Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice Les codes lin eaires en blocs D enition Matrice g en eratrice et de v erication de parit e Exercice Le poids = la distance !
Marc Chaumont
Introduction
Un code lin eaire [n, k , dmin ] est un sous-espace vectoriel de dimension k Soit C un code lin eaire (en blocs) [n, k , dmin ]. Puisque C est un sousespace vectoriel de dimension k , il poss` ede une base (de vecteurs) {v0 , v1 , ..., vk 1 }, telle que chaque mot de code c C peut etre repr esent e comme une combinaison lin eaire des el ements dans la base : c = u0 v0 + u1 v1 + ... + uk 1 vk 1 o` u ui {0, 1}, 0 i < k 1.
Marc Chaumont
Introduction
Matrice g en eratrice
Sous forme matricielle, cela peut se r e- ecrire: c = uG o` u G = v0 v1 . . . vk 1 en eratrice. Cette matrice est appel ee matrice g
Marc Chaumont Introduction
v 0 ,0 v0 ,1 v 1 ,0 v 1,1 = ... ... vk 1 ,0 v k 1 ,1 ... v0,n1 ... v1,n1 . ... ... ... vk 1,n1
Puisque C est un espace vectoriel de dimension k , il existe un espace dual C , g en er e` a partir des lignes de la matrice H , appel ee matrice de v erication de parit e telle que : GH t = 0 o` u H t d enote la transpos ee de H . c C , cH t = 0
Marc Chaumont
Introduction
Matrice Hsys
Calcul de la matrice de contr ole Hsys ` a partir de Gsys Puisque le produit de la matrice g en eratrice G et de la matrice de v erication de parit e transpos ee H t egale z ero (G .H t = 0), il est simple dobtenir la matrice de contr ole Hsys ` a partir de Gsys . SiGsys = (Ik |P ) Hsys = (P t |Ink ) = (P t |Ink )
t = (I |P ).( P ) = P + P = 0. D emo : Gsys .Hsys k Ink
Marc Chaumont
Introduction
Matrice sous forme syst ematique (permutation de la deuxi` eme et quatri` eme colonne) : 1 0 1 1 Gsys = 0 1 1 0 La sous-matrice de v erication de parit e vaut alors: P= 1 1 1 0
La matrice de v erication de parit e (sous forme syst ematique (Hsys = (P t |Ink )): 1 1 1 0 Hsys = 1 0 0 1
Marc Chaumont Introduction
Donc les bits de contr oles u .P sont tels que : c2 = u0 + u1 c3 = u0 bits d information mot de code (00) (0000) (01) (0110) (10) (1011) (11) (1101)
Marc Chaumont Introduction
Plan
1
Introduction Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice Les codes lin eaires en blocs D enition Matrice g en eratrice et de v erication de parit e Exercice Le poids = la distance !
Marc Chaumont
Introduction
Donner la matrice g en eratrice de ce code (sous forme syst ematique), Donner la matrice de contr ole, Donner le r esultat du codage de u = (1010), Calculer le produit de y = (1000110) par H t . Quen d eduisezvous de y ?, Combien de sommes et de produits n ecessite le produit matriciel (codage) ? Cela vous parait-il exag er e (complexit e) ?
Marc Chaumont
Introduction
0 1 1 1 1 0 0 = (P t |Ink ) = 1 0 1 1 0 1 0 1 1 0 1 0 0 1
Marc Chaumont Introduction
Donner la matrice g en eratrice de ce code (sous forme syst ematique), Donner la matrice de contr ole, Donner le r esultat du codage de u = (1010), 1010101 Calculer le produit de y = (1000110) par H t . Quen d eduisezvous de y ?, y .H t = 101, Le mot y nest pas un mot de code. Combien de sommes et de produits n ecessite le produit matriciel (codage) ? n k sommes, et n k produit. Cela vous parait-il exag er e (complexit e) ? Pas tant que cela, mais on peut faire mieux. En codage syst` ematique, il est par exemple possible d eviter les calculs de recopie des bits dinformations.
Marc Chaumont
Introduction
Plan
1
Introduction Pr eambule Les 3 principaux param` etres : longueur, dimension, distance Capacit e de d etection et de correction des erreurs Exercice Les codes lin eaires en blocs D enition Matrice g en eratrice et de v erication de parit e Exercice Le poids = la distance !
Marc Chaumont
Introduction
Poids de Hamming Le poids de Hamming w (x ) dun vecteur x de F2 n est le nombre de composantes non nulles de x. Il est donc imm ediat que x F2 n , wH (x ) = dH (x , 0)
Marc Chaumont
Introduction
x = (1110100), w (x ) = 4 y = (0101100), w (y ) = 3
Marc Chaumont
Introduction
Le poids = la distance !
Pour les codes binaires lin eaires : dH (x , y ) = dH (x + y , 0) = wh (x + y ) Par lin earit e, x + y C do` u: Une jolie propri et e des codes lin eaires Calculer la distance minimum de Hamming est equivalent ` a calculer le poids minimum de Hamming de tous les mots de code non nuls (il y a 2k 1 mots de code).
Marc Chaumont
Introduction
Marc Chaumont
Introduction