• Aucun résultat trouvé

Codes polynomiaux

Dans le document Introduction `a la th´eorie des codes (Page 31-53)

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 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, doncP0 (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 doncQ00)

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 doncQ00)

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 doncQ00)

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 doncQ00)

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 siKFq

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ăkcjiqjqpαmqn´1´i ř

0ďjăkcjαmpn´1qř

0ďiănj´mqiq “ř

0ďjăkcjαmpn´1q pααj´mj´mq´1n´10.

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

Dans le document Introduction `a la th´eorie des codes (Page 31-53)

Documents relatifs