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

Présentations similaires


Présentation au sujet: "Codes cycliques Hypothèse sur V = vocabulaire source"— 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 : e0, e1, a+b, -a, a*b, a/b  V Possible ssi |V| = pm avec p premier Soit q = pm : V est alors isomorphe à GFq Exemple: V= {0,1} ; V={mots de 32 bits} Implantation GFq 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 G = V corps => Vn est un espace vectoriel
Déf : code linéaire  sev de dim k de Vn l Si x=[x0, …, x n-1] C, y=[y0, …, y n-1] C => x+y =[x0+y0,…, 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 01 10

5 Décodage d’un code linéaire
Il existe G génératrice = [Idk | A ] Codage( [s0, …, sk-1] ) =[c0,…, ck-1 , ck…, cn-1] [ck…, cn-1] = [s0, …, sk-1].A = [c0, …, ck-1].A Donc: [c0, …, ck-1].A - [ck…, cn-1].Idn-k = 0 Soit [-At | Idn-k ].ct = H .ct = 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.yt = 0 Syndrome d’erreur : s = H .yt s  0 => il y eu erreur de transmission

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

8 Distance d’un code linéaire
d = Min { dH( x , y) ;  x,y  C } = Min { wH(x - y) ;  x,y  C } = Min { wH( 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 : ( [c0…, cn-1] ) = [cn-1,c0…, cn-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=[c0 , …, cn-k-1 , cn-k=1, 0 …, 0] Ex: code binaire (7,4) engendré{ }

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

12 Codage/décodage code cyclique
Codage : P[a.G] = g(X).Pa mod Xn –1 Tout mot de code est un multiple de g mod Xn –1 Tout multiple de g mod Xn –1 est un mot de code Détection : on reçoit y = Py Si Py n’est pas multiple de g mod Xn –1 => erreur Syndrome d’erreur: Pe = Py 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 Xn –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 = 2m n = 2m - 1 Xn-1x= 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"

Présentations similaires


Annonces Google