Codes polynomiaux
Principe : Identifiermotset polynˆomes via l’isomorphisme canonique Kn ÝÑ„ Kn´1rXs
`m1m2. . .mn
˘ ÞÑ m1Xn´1`m2Xn´2` ¨ ¨ ¨ `mn
Code polynomial
Un code C ĂKn»Kn´1rXsest polynomial si il existeg PKn´1rXstel que
C “ tP PKn´1rXs : g |Pu
g est lepolynˆome g´en´erateurdu code C; ses param`etres sontn et k “n´degpgq, et
C “ tg Q : QPKk´1rXsu
Codes polynomiaux
Principe : Identifiermotset polynˆomes via l’isomorphisme canonique Kn ÝÑ„ Kn´1rXs
`m1m2. . .mn
˘ ÞÑ m1Xn´1`m2Xn´2` ¨ ¨ ¨ `mn
Code polynomial
Un code C ĂKn»Kn´1rXsest polynomial si il existeg PKn´1rXstel que
C “ tP PKn´1rXs : g |Pu
g est lepolynˆome g´en´erateurdu code C; ses param`etres sontn et k “n´degpgq, et
C “ tg Q : QPKk´1rXsu
Codes polynomiaux : encodages
Message m Ø polynˆome Q PKk´1rXs Encodage naturel :Q ÞÑg Q
Encodage syst´ematique : Q ÞÑXn´kQ´RQ avecRQ le reste de la division euclidienne deXn´kQ par g.
Exemple avecg “X3`X `1 (Ø 1011) etn “7 Encodage naturel : matrice
g´en´eratrice
¨
˚
˚
˝
1 0 1 1 0 0 0
0 1 0 1 1 0 0
0 0 1 0 1 1 0
0 0 0 1 0 1 1
˛
‹
‹
‚
lignes correspondent `aX3g,X2g, Xg et g
Encodage syst´ematique : matrice g´en´eratrice standard
¨
˚
˚
˝
1 0 0 0 1 0 1
0 1 0 0 1 1 1
0 0 1 0 1 1 0
0 0 0 1 0 1 1
˛
‹
‹
‚
on retrouve un code de Hamming p4,7q
Codes polynomiaux : encodages
Message m Ø polynˆome Q PKk´1rXs Encodage naturel :Q ÞÑg Q
Encodage syst´ematique : Q ÞÑXn´kQ´RQ avecRQ le reste de la division euclidienne deXn´kQ par g.
Exemple avecg “X3`X `1 (Ø 1011) etn “7 Encodage naturel : matrice
g´en´eratrice
¨
˚
˚
˝
1 0 1 1 0 0 0
0 1 0 1 1 0 0
0 0 1 0 1 1 0
0 0 0 1 0 1 1
˛
‹
‹
‚
lignes correspondent `aX3g,X2g, Xg et g
Encodage syst´ematique : matrice g´en´eratrice standard
¨
˚
˚
˝
1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 0 0 1 0 1 1
˛
‹
‹
‚
on retrouve un code de Hamming p4,7q
Syndrˆ omes
Soit C un code polynomial de param`etre pk,nq, engendr´e par g. Message re¸cu m Ø polynˆome P.
m est un mot du code ðñ g |P
Deux v´erifications / calculs de syndrˆomes possibles :
prendre pour σpPq le reste de la division euclidienne deP par g si g est scind´e `a racines simples x1, . . . ,xn´k prendre
σpPq “ pPpx1q, . . . ,Ppxn´kqq
(peut ˆetre int´eressant mˆeme si lesxi sont dans une extension)
Codes cycliques
Un code C PKn est cyclique s’il est invariant par rotation des coordonn´ees :
`m1 m2 . . . mn´1 mn˘
PC ðñ `
m2 m3 . . . mn m1˘
PC
Th´eor`eme
Un code C PKn est cyclique si et seulement si il est polynomial, de g´en´erateur g qui diviseXn´1.
Tr`es utilis´es CRC (cyclic redundancy check) souvent utilis´e comme synonyme de “bits de contrˆole”
Preuve : sensðvient du fait que sur les polynˆomes, tourner d’un cran revient `a fairePÞÑXPmodXn´1
Codes cycliques
Un code C PKn est cyclique s’il est invariant par rotation des coordonn´ees :
`m1 m2 . . . mn´1 mn˘
PC ðñ `
m2 m3 . . . mn m1˘
PC
Th´eor`eme
Un code C PKn est cyclique si et seulement si il est polynomial, de g´en´erateur g qui diviseXn´1.
Tr`es utilis´es CRC (cyclic redundancy check) souvent utilis´e comme synonyme de “bits de contrˆole”
Preuve : sensðvient du fait que sur les polynˆomes, tourner d’un cran revient `a fairePÞÑXPmodXn´1
Codes cycliques
Un code C PKn est cyclique s’il est invariant par rotation des coordonn´ees :
`m1 m2 . . . mn´1 mn˘
PC ðñ `
m2 m3 . . . mn m1˘
PC
Th´eor`eme
Un code C PKn est cyclique si et seulement si il est polynomial, de g´en´erateur g qui diviseXn´1.
Tr`es utilis´es CRC (cyclic redundancy check) souvent utilis´e comme synonyme de “bits de contrˆole”
Preuve : ñ: on prendw le mot de code non nul commen¸cant par le plus de z´eros,g le polynˆome (unitaire) correspondant, etk “n´degpgq. En faisant tourner w, on obtient les polynˆomesg,Xg, . . . ,Xk´1g qui sont tous dansC, doncC est polynomial engendr´e par g. On tourne encore un cran, on obtient Xkg ´Xn`1PC, qui doit ˆetre un multiple deg, d’o`ug |Xn´1.
Section 5
Introduction aux codes de Reed-Solomon
La borne de Singleton
Les param`etresk,n et d (etq) doivent satisfaire d’autres contraintes, en plus de la borne de Hamming
Th´eor`eme (borne de Singleton)
Soit C unpk,nq-code lin´eaire. Alors dpCq ďn´k`1.
Preuve : quitte `a permuter les coordonn´ees (ce qui ne modifie pask,nou dpCq),C a une matrice g´en´eratrice de la formeG “ pIkPqavecPPMk,n´kpKq.
Les lignes de G sont des mots du code non nuls de poids de Hamming plus petit ou ´egal `a n´k`1, doncdpCq ďn´k`1.
Les codes tels que dpCq “n´k`1 sont appel´es codes MDS (maximal distance separable).
Exercice : montrer que les seuls codes MDS non triviaux sur F2 sont le codes par r´ep´etition et bits de parit´e.
La borne de Singleton
Les param`etresk,n et d (etq) doivent satisfaire d’autres contraintes, en plus de la borne de Hamming
Th´eor`eme (borne de Singleton)
Soit C unpk,nq-code lin´eaire. Alors dpCq ďn´k`1.
Preuve : quitte `a permuter les coordonn´ees (ce qui ne modifie pask,nou dpCq),C a une matrice g´en´eratrice de la formeG “ pIkPqavecPPMk,n´kpKq.
Les lignes de G sont des mots du code non nuls de poids de Hamming plus petit ou ´egal `a n´k`1, doncdpCq ďn´k`1.
Les codes tels que dpCq “n´k`1 sont appel´es codes MDS (maximal distance separable).
Exercice : montrer que les seuls codes MDS non triviaux sur F2 sont le codes par r´ep´etition et bits de parit´e.
Codes de Reed-Solomon d’un point de vue interpolation
Codes de Reed-Solomon
Soient k,n PNtels quek ďn. Soient x1, . . . ,xnPK distincts. Le code de Reed-Solomon associ´e `a ces param`etres est
C “ tpPpx1q,Ppx2q, . . . ,Ppxnqq | P PKrXs, degpPq ăku (Ceci implique #Kěn Kdoit ˆetre un corps fini de taille suffisante.) Encodage syst´ematique ? pour encoderpy1, . . . ,ykq PKk
1 calculer le polynˆome d’interpolation de Lagrange P correspondant (i.e. l’uniqueP PKk´1rXstel que Ppxiq “yi pour tout 1ďi ďk)
2 un mot du code estpy1, . . . ,yk,Ppxk`1q, . . . ,Ppxnqq.
Codes de Reed-Solomon d’un point de vue interpolation
Codes de Reed-Solomon
Soient k,n PNtels quek ďn. Soient x1, . . . ,xnPK distincts. Le code de Reed-Solomon associ´e `a ces param`etres est
C “ tpPpx1q,Ppx2q, . . . ,Ppxnqq | P PKrXs, degpPq ăku (Ceci implique #Kěn Kdoit ˆetre un corps fini de taille suffisante.) Encodage syst´ematique ?pour encoderpy1, . . . ,ykq PKk
1 calculer le polynˆome d’interpolation de Lagrange P correspondant (i.e. l’uniqueP PKk´1rXstel que Ppxiq “yi pour tout 1ďi ďk)
2 un mot du code estpy1, . . . ,yk,Ppxk`1q, . . . ,Ppxnqq.
Param` etres des codes de Reed-Solomon
Th´eor`eme
Soit C “ tpPpx1q,Ppx2q, . . . ,Ppxnqq |P PKk´1rXsu un code de Reed-Solomon.
Alors C est pk,nq-code MDS, i.e. dpCq “n´k`1.
Preuve : C est l’image deKk´1rXspar l’applicationPÞÑ pPpx1q. . . ,Ppxnqq, donc dimpCq ďk, et l’existence d’un encodage syst´ematiqueKk ÑC montre que dimpCq ěk.
Pour tout mot du code w “ pPpx1q, . . . ,Ppxnqq, sihpwq ďn´k alorsPpxiq “0 pour au moinsk indicesiPJ1,nK, doncP a au moinsk racines, doncP“0 (et w “0).
Ainsi des mots du code non nuls ont un poids de Hamming au moins ´egal `a n´k`1, donc dpCq ěn´k`1.
Mais la borne de Singleton donne dpCq ďn´k`1, d’o`u l’´egalit´e.
Introduction aux codes de Reed-Solomon
Un d´ ecodeur pour Reed-Solomon
Capacit´e de correction t“tn´k2 u
Transmis : c “ pPpx1q, . . . ,Ppxnqqavec degP ďk´1, re¸cu : c1 “ py1, . . . ,ynq.
1 Trouver deux polynˆomesQ1,Q0 tels que : degQ1 ăn´t´k`1, degpQ0q ăn´t, et@ 1ďi ďn, Q0pxiq ´yiQ1pxiq “0.
inconnues (coefficients des polynˆomes)
ñ il existe au moins une solutionpQ0,Q1q non triviale, donc avec Q1 ‰0 (sinonQ0`a trop de racines doncQ0“0)
2 Si pas d’erreur en positioni, alorsyi “Ppxiq donc Q0pxiq ´PpxiqQ1pxiq “0 :xi est racine de Q0´PQ1
3 Donc si au plust erreurs,Q0´PQ1 a au moinsn´t racines, or degpQ0´PQ1q ăn´t, donc Q0´PQ1“0 etP “Q0{Q1.
Complexit´e ?
Introduction aux codes de Reed-Solomon
Un d´ ecodeur pour Reed-Solomon
Capacit´e de correction t“tn´k2 u
Transmis : c “ pPpx1q, . . . ,Ppxnqqavec degP ďk´1, re¸cu : c1 “ py1, . . . ,ynq.
1 Trouver deux polynˆomesQ1,Q0 tels que : degQ1 ăn´t´k`1, degpQ0q ăn´t, et@ 1ďi ďn, Q0pxiq ´yiQ1pxiq “0.
inconnues (coefficients des polynˆomes)
ñ il existe au moins une solutionpQ0,Q1q non triviale, donc avec Q1 ‰0 (sinonQ0`a trop de racines doncQ0“0)
2 Si pas d’erreur en positioni, alorsyi “Ppxiq donc Q0pxiq ´PpxiqQ1pxiq “0 :xi est racine de Q0´PQ1
3 Donc si au plust erreurs,Q0´PQ1 a au moinsn´t racines, or degpQ0´PQ1q ăn´t, donc Q0´PQ1“0 etP “Q0{Q1.
Complexit´e ?
Introduction aux codes de Reed-Solomon
Un d´ ecodeur pour Reed-Solomon
Capacit´e de correction t“tn´k2 u
Transmis : c “ pPpx1q, . . . ,Ppxnqqavec degP ďk´1, re¸cu : c1 “ py1, . . . ,ynq.
1 Trouver deux polynˆomesQ1,Q0 tels que : degQ1 ăn´t´k`1, degpQ0q ăn´t, et@ 1ďi ďn, Q0pxiq ´yiQ1pxiq “0.
Syst`emelin´eairede n´equations `apn´tq ` pn´t´k`1q ěn`1 inconnues (coefficients des polynˆomes)
ñ il existe au moins une solutionpQ0,Q1q non triviale, donc avec Q1 ‰0 (sinonQ0`a trop de racines doncQ0“0)
2 Si pas d’erreur en positioni, alorsyi “Ppxiq donc Q0pxiq ´PpxiqQ1pxiq “0 :xi est racine de Q0´PQ1
3 Donc si au plust erreurs,Q0´PQ1 a au moinsn´t racines, or degpQ0´PQ1q ăn´t, donc Q0´PQ1“0 etP “Q0{Q1.
Un d´ ecodeur pour Reed-Solomon
Capacit´e de correction t“tn´k2 u
Transmis : c “ pPpx1q, . . . ,Ppxnqqavec degP ďk´1, re¸cu : c1 “ py1, . . . ,ynq.
1 Trouver deux polynˆomesQ1,Q0 tels que : degQ1 ăn´t´k`1, degpQ0q ăn´t, et@ 1ďi ďn, Q0pxiq ´yiQ1pxiq “0.
Syst`emelin´eairede n´equations `apn´tq ` pn´t´k`1q ěn`1 inconnues (coefficients des polynˆomes)
ñ il existe au moins une solutionpQ0,Q1q non triviale, donc avec Q1 ‰0 (sinonQ0`a trop de racines doncQ0“0)
2 Si pas d’erreur en positioni, alorsyi “Ppxiq donc Q0pxiq ´PpxiqQ1pxiq “0 :xi est racine de Q0´PQ1
3 Donc si au plust erreurs,Q0´PQ1 a au moinsn´t racines, or degpQ0´PQ1q ăn´t, donc Q0´PQ1“0 etP “Q0{Q1. Complexit´e ?
Codes de Reed-Solomon comme codes polynomiaux
On choisit px1,x2, . . . ,xnq “ p1, α, . . . , αn´1qavec αPK˚ d’ordren impose n|q´1 siK“Fq
C “ code de Reed-Solomon de param`etrepk,nq associ´e.
Proposition
C est un code polynomial, de polynˆome g´en´erateur g “śn´1
m“kpX ´αmq Preuve : Soitw “ pPp1q, . . . ,Ppαn´1qqun mot du code, avecP“ř
0ďjăkcjXj. Le polynˆome associ´e `aw estQ“ř
0ďiănPpαiqXn´1´i. Alors pour tout k ďmďn´1,Qpαmq “ř
0ďiănpř
0ďjăkcjpαiqjqpαmqn´1´i “ ř
0ďjăkcjαmpn´1qř
0ďiănpαj´mqiq “ř
0ďjăkcjαmpn´1q pααj´mj´mq´1n´1“0.
Doncg |Q, d’o`uC inclus dans le code engendr´e parg; on conclut par ´egalit´e des dimensions.
Point de vue polynomial : un autre d´ ecodeur
Soit Q PKn´1rXsle polynˆome correspondant au message transmis, Q˜“Q`E celui correspondant au message re¸cu.
Polynˆome d’erreur E “ř
iPIciXi avecI ensemble des positions des erreurs.
Syndrˆome :σpQ˜q “σpEq “ pQ˜pαkq, . . . ,Qpα˜ n´1qq PKn´k Propri´et´e
La s´equence pQpα˜ kq, . . . ,Qpα˜ n´1qqv´erifie une relation de r´ecurrence lin´eaire d’ordre|I|, de polynˆome caract´eristique ś
iPIpX ´αiq Ce polynˆome s’appelle lepolynˆome localisateur
si |I| ďt “tpn´kq{2u, on peut le retrouver `a partir desn´k valeurs ˜Qpαkq, . . . ,Qpαn´1q
une fois connu on peut facilement trouverI puis corriger les erreurs
Point de vue polynomial : un autre d´ ecodeur
Soit Q PKn´1rXsle polynˆome correspondant au message transmis, Q˜“Q`E celui correspondant au message re¸cu.
Polynˆome d’erreur E “ř
iPIciXi avecI ensemble des positions des erreurs.
Syndrˆome :σpQ˜q “σpEq “ pQ˜pαkq, . . . ,Qpα˜ n´1qq PKn´k Propri´et´e
La s´equence pQpα˜ kq, . . . ,Qpα˜ n´1qqv´erifie une relation de r´ecurrence lin´eaire d’ordre|I|, de polynˆome caract´eristique ś
iPIpX ´αiq Ce polynˆome s’appelle lepolynˆome localisateur
si |I| ďt “tpn´kq{2u, on peut le retrouver `a partir desn´k valeurs ˜Qpαkq, . . . ,Qpαn´1q
une fois connu on peut facilement trouverI puis corriger les erreurs