Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parGwenaël Debray Modifié depuis plus de 9 années
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}
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.