La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Codes cycliques Hypothèse sur V = vocabulaire source Code linéaire - caractérisation Codage et décodage d’un code linéaire Code cyclique – caractérisation.

Présentations similaires


Présentation au sujet: "Codes cycliques Hypothèse sur V = vocabulaire source Code linéaire - caractérisation Codage et décodage d’un code linéaire Code cyclique – caractérisation."— Transcription de la présentation:

1 Codes cycliques Hypothèse sur V = vocabulaire source Code linéaire - caractérisation Codage et décodage d’un code linéaire Code cyclique – caractérisation Distance d’un code cyclique Code de Reed-Solomon

2 Hypothèse sur le vocabulaire V du canal V est un corps fini : soient a,b  V : e 0, e 1, a+b, -a, a*b, a/b  V Possible ssi |V| = p m avec p premier Soit q = p m : V est alors isomorphe à GF q –Exemple: V= {0,1} ; V={mots de 32 bits} Implantation –GF q isomorphe à (Z/pZ[x])/Q(x) avec Q polynôme irréductible de degré m à coefficients dans Z/pZ –avec p= 2: facile registre à décalage !

3 Code linéaire V corps => V n est un espace vectoriel Déf : code linéaire  sev de dim k de V n l –Si x=[x 0, …, x n-1 ]  C, y=[y 0, …, y n-1 ]  C => x+y =[x 0 +y 0,…, x n-1 +y n-1 ]  C C est engendré par une matrice génératrice G C=Im(G) G = n lignes k colonnes

4 Exemple V = {a=00, b=01, c=10, d=11} Code (7,4) engendré par G 011011101100 101110000110 011110111001 1011 1001 G =

5 Décodage d’un code linéaire Il existe G génératrice = [Id k | A ] Codage( [s 0, …, s k-1 ] ) =[c 0,…, c k-1, c k …, c n-1 ] [c k …, c n-1 ] = [s 0, …, s k-1 ].A = [c 0, …, c k-1 ].A Donc: [c 0, …, c k-1 ].A - [c k …, c n-1 ].Id n-k = 0 Soit [-A t | Id n-k ].c t = H.c t = 0 H = Matrice de contrôle : (n-k, n)

6 Détection d’erreurs On émet x et on reçoit y; y est un mot de code  H.y t = 0 Syndrome d’erreur : s = H.y t s  0 => il y eu erreur de transmission

7 Correction d’erreurs Corriger  trouver x=y-c Or: s = H.y t = H.y t - H.c t = H.x t Le syndrome donne toute l’info pour corriger x non unique : pour chaque s on choisit le x s de poids minimal, stocké dans un tableau Cor[s]= x s Ex: V= {0,1}, n=64 k=52 : 2 64 erreurs possibles mais tableau de taille seulement 2 12 =4096

8 Distance d’un code linéaire d = Min { d H ( x, y) ;  x,y  C } = Min { w H (x - y) ;  x,y  C } = Min { w H ( z ) ;  z  C } Borne de singleton : d  n-k+1 Prop: d = nbre minimal de cols indép. de H  k colonnes quelconques de H sont indépendantes

9 Bon codes Facile et efficace à implémenter –Codes cycliques Etant donné un taux de correction, pouvoir facilement construire un code (n,k,d) qui donne ce taux de correction: –Codes de Reed-Solomon

10 Codes cycliques Décalage :  ( [c 0 …, c n-1 ] ) = [c n-1,c 0 …, c n-2 ] Déf: Code cyclique  code linéaire stable par  Description simple, de coût O(n-k=r): –Un code (n,k) est engendré par un mot de code m=[c 0, …, c n-k-1, c n-k =1, 0 …, 0] –Ex: code binaire (7,4) engendré{1011000}

11 Caractérisation Mot de code  polynôme de V[X] [c 0, …, c n-1 ]  P c =  i=0 n-1 c i.X i  (c) associé au polynôme : X. P c mod X n –1 m=[c 0, …, c k-2, c k-1 =1, 0 …, 0] associé à un polynôme: g(X) =  i=0 k-1 c i.X i Prop. g est un diviseur unitaire de X n –1de degré r

12 Codage/décodage code cyclique Codage : P [a.G] = g(X).P a mod X n –1 –Tout mot de code est un multiple de g mod X n –1 –Tout multiple de g mod X n –1 est un mot de code Détection : on reçoit y = P y –Si P y n’est pas multiple de g mod X n –1 => erreur –Syndrome d’erreur: P e = P y mod g Correction: à partir du syndrome (algorithme de Meggitt)

13 Distance minimale d’un code cyclique Théorème BCH ( n premier avec q) –Soit  racine primitive de X n –1 dans GF(q) –Soit g =  i  S (X –  i ) –Si il existe a entier tq {a+1, a+2, …, a+s}  S d( C )  s+1 C est au moins s-détecteur et [s/2]-correcteur

14 Codes de Reed-Solomon q = 2 m n = 2 m - 1 X n-1 x=  a  GF(q)* (X – a) Il suffit de prendre  générateur de GF(q)* et g =  i=s. s+r-1 (X –  i ) de degré r Code cyclique (n=k+r, k, r+1) Optimal, car atteint la borne de Singleton Ex. Galileo : RS(255,233) sur V={octets}


Télécharger ppt "Codes cycliques Hypothèse sur V = vocabulaire source Code linéaire - caractérisation Codage et décodage d’un code linéaire Code cyclique – caractérisation."

Présentations similaires


Annonces Google