• Aucun résultat trouvé

Introduction `a la th´eorie des codes

N/A
N/A
Protected

Academic year: 2022

Partager "Introduction `a la th´eorie des codes"

Copied!
53
0
0

Texte intégral

(1)

Vanessa VITSE

Universit´e Grenoble Alpes

M1 Maths 2021

(2)

Transmission sur un canal

Bob Alice

bruit

Encodage

Decodage message initial m

message envoy´e M

message re¸cuM1

message finalm1

(3)

Bob Alice

bruit

Encodage

Decodage message initial m

message envoy´e M

message re¸cuM1

message finalm1

redondance

(4)

Section 1

Codes lin´ eaires

(5)

Cadre des codes lin´ eaires

Soit Kun corps fini.

D´efinition

Un code lin´eaireC de taillepk,nq est un sous-espace vectoriel de dimension k deKn.

Un mot du codeest un ´el´ement deC.

Dans les applications K“F2 ouF2d : les mots du code sont repr´esent´es comme des s´equences de bits.

Un encodageest une application lin´eaire injectiveφ:Kk ÑKn; son image Impφq est unpk,nq-code.

(6)

Cadre des codes lin´ eaires

Soit Kun corps fini.

D´efinition

Un code lin´eaireC de taillepk,nq est un sous-espace vectoriel de dimension k deKn.

Un mot du codeest un ´el´ement deC.

Dans les applications K“F2 ouF2d : les mots du code sont repr´esent´es comme des s´equences de bits.

Un encodageest une application lin´eaire injectiveφ:Kk ÑKn; son image Impφq est unpk,nq-code.

(7)

Matrice g´ en´ eratrice

Convention : repr´esentation en ligne des ´el´ements de Kn etKk

Une matrice g´en´eratrice d’unpk,nq-codeC est une matrice kˆn dont les lignes forment une base de C.

Exemple : code par bit de parit´e C “ tw PFn2 |w a un nombre pair de 1u

C’est un pn´1,nq-code ; matrice g´en´eratrice :

¨

˚

˚

˚

˚

˝

1 0 . . . 0 1

0 . .. ... ... ...

... . .. ... 0 ...

0 . . . 0 1 1

˛

‚ (Prouvez-le !)

(8)

Encodage syst´ ematique

Proposition

Soit C unpk,nq-code. `A permutation pr`es des coordonn´ees, C a une matrice g´en´eratrice de la formepIk|Pq avec P PMk,n´kpKq.

(´Elimination gaussienne.)P est appel´eematrice de parit´ede C.

Soit C donn´e par la matrice g´en´eratrice pIk|Pq, l’encodage syst´ematique est donn´e par

φ: Kk Ñ Kn

m ÞÑ m.pIk|Pq Ainsi φpm1. . .mkq “ pm1. . .mk mk`1. . .mnq;

les pn´kq symboles suppl´ementairesmk`1, . . . ,mnPKsont appel´es symboles (bits) de contrˆoleet introduisent la redondance

Exercice : d´ecrire l’encodage syst´ematique du code par bit de parit´e

(9)

Syndrˆ omes

Proposition

Soit C unpk,nq-code. Il existe une application lin´eaire σ:KnÑKn´k telle que C “kerσ.

On appelleσpwqle syndrˆomedew PKn.

Ceci permet de calculer efficacement siw est un mot du code : w PC ðñ σpwq “0

Soit C donn´e par sa matrice g´en´eratricepIk|Pq, alors une telle application est donn´ee par

σ:w ÞÑw.

ˆ´P In´k

˙

(exercice : `a v´erifier !)

La matrice H“ ˆ´P

In´k

˙

est appel´ee matrice decontrˆole.

(10)

Syndrˆ omes

Proposition

Soit C unpk,nq-code. Il existe une application lin´eaire σ:KnÑKn´k telle que C “kerσ.

On appelleσpwqle syndrˆomedew PKn.

Ceci permet de calculer efficacement siw est un mot du code : w PC ðñ σpwq “0

Soit C donn´e par sa matrice g´en´eratricepIk|Pq, alors une telle application est donn´ee par

σ:w ÞÑw.

ˆ´P In´k

˙

(exercice : `a v´erifier !)

La matrice H“ ˆ´P

In´k

˙

est appel´ee matrice decontrˆole.

(11)

Section 2

D´ ecodage

(12)

Transmission et r´ eception

Pour transmettre un message, il faut

le convertir en une s´equence d’´el´ements de Kk (blocs) pour chaque bloc m, envoyer le mot de code correspondant

w “φpmq PC

R´eception :

pour chaque bloc re¸cuc1, v´erifier si c’est un mot du code en calculant son syndrˆome

si c1 PC, il n’y a (probablement) pas d’erreur de transmission si c1 RC, alors il y a erreur de transmission

Le but du d´ecodage est de trouver mtel queφpmq est le plus “proche”

de c1

(13)

Transmission et r´ eception

Pour transmettre un message, il faut

le convertir en une s´equence d’´el´ements de Kk (blocs) pour chaque bloc m, envoyer le mot de code correspondant

w “φpmq PC

R´eception :

pour chaque bloc re¸cuc1, v´erifier si c’est un mot du code en calculant son syndrˆome

si c1 PC, il n’y a (probablement) pas d’erreur de transmission si c1 RC, alors il y a erreur de transmission

Le but du d´ecodage est de trouver mtel queφpmq est le plus “proche”

de c1

(14)

Distance de Hamming

Poids de Hamming et distance de Hamming

Soit w PKn, sonpoids de Hamminghpwqest le nombre de coordonn´ees non nulles de w.

La distance de Hammingentre deux motsw1,w2PKn est dpw1,w2q “hpw1´w2q.

Exemples : hp01001100q “3,dp10011000,10010001q “2.

La distance de Hamming compte combien de symboles on doit modifier pour transformer w1 en w2.

Dans notre contexte : combien d’erreurs de transmission pour transformer le message envoy´e w1 en le message re¸cuw2.

(15)

Distance de Hamming

Poids de Hamming et distance de Hamming

Soit w PKn, sonpoids de Hamminghpwqest le nombre de coordonn´ees non nulles de w.

La distance de Hammingentre deux motsw1,w2PKn est dpw1,w2q “hpw1´w2q.

Exemples : hp01001100q “3,dp10011000,10010001q “2.

La distance de Hamming compte combien de symboles on doit modifier pour transformer w1 en w2.

Dans notre contexte :combien d’erreurs de transmission pour transformer le message envoy´e w1 en le message re¸cuw2.

(16)

Distance minimale

La distance minimale d’un code lin´eaire La distance minimaled’un code lin´eaireC est

dpCq “minthpwq | w PC,w ‰0u

De fa¸con ´equivalente,dpCq “mintdpw1,w2q | w1,w2PC,w1 ‰w2u.

Th´eor`eme

Soit C un code lin´eaire, w PC un message envoy´e, w1 le message re¸cu, et e “dpw,w1q le nombre d’erreurs de transmission

si e ădpCq, alors w1 n’est pas un mot du code, donc les erreurs sont d´etect´ees

si e ď

ZdpCq ´1 2

^

, alorsw est le mot du code le plus proche dew1 (pour la distance de Hamming), donc les erreurs peuvent ˆetre corrig´ees.

(17)

Distance minimale

La distance minimale d’un code lin´eaire La distance minimaled’un code lin´eaireC est

dpCq “minthpwq | w PC,w ‰0u

De fa¸con ´equivalente,dpCq “mintdpw1,w2q | w1,w2PC,w1 ‰w2u.

Th´eor`eme

Soit C un code lin´eaire, w PC un message envoy´e, w1 le message re¸cu, et e “dpw,w1q le nombre d’erreurs de transmission

si e ădpCq, alors w1 n’est pas un mot du code, donc les erreurs sont d´etect´ees

si e ď

ZdpCq ´1 2

^

, alorsw est le mot du code le plus proche dew1 (pour la distance de Hamming), donc les erreurs peuvent ˆetre corrig´ees.

(18)

Capacit´ e de d´ etection / correction

E( 2 d!1)

E( 2 d!1)

e w’

w d

v d()e

trouver le plus mot du code le plus proche w1 (d´ecoder) peut ˆetre difficile !

(19)

D´ ecodage ` a l’aide du syndrˆ ome

D´etection et correction d’erreur

Etant donn´´ e un message re¸cuw1, le but du d´ecodage est de trouver le mot du code w PC tel que dpw,w1q “hpw1´wq est minimal

Soit e “w1´w levecteur d’erreur; alors σpeq “σpw1q (o`u σ = application syndrˆome).

Donc d´ecoderw1 ðñ trouver le plus court vecteur e PKn tel que σpeq “σpw1q.

Il est possible de lister les vecteurs d’erreurs les plus courts correspondant

`

a chaque syndrˆome, mais uniquement si n´k (etq) sont suffisamment petits.

Autrement d´ecoder peut ˆetre tr`es difficile

(20)

D´ ecodage ` a l’aide du syndrˆ ome

D´etection et correction d’erreur

Etant donn´´ e un message re¸cuw1, le but du d´ecodage est de trouver le mot du code w PC tel que dpw,w1q “hpw1´wq est minimal

Soit e “w1´w levecteur d’erreur; alors σpeq “σpw1q (o`u σ = application syndrˆome).

Donc d´ecoderw1 ðñ trouver le plus court vecteur e PKn tel que σpeq “σpw1q.

Il est possible de lister les vecteurs d’erreurs les plus courts correspondant

`

a chaque syndrˆome, mais uniquement si n´k (etq) sont suffisamment petits.

Autrement d´ecoder peut ˆetre tr`es difficile

(21)

Section 3

Codes de Hamming

(22)

Bande passante versus distance minimale

Un “bon” code correcteur d’erreur

a une grande distance minimale : capacit´e de corriger des grosses erreurs

a un petit ration{k : meilleure gestion de la bande passante ë incompatibilit´e :un compromis doit ˆetre trouv´e

Deux cas extrˆemes sur F2

Code par r´ep´etition :p1,nq-codeC1“ t00. . .0, 11. . .1u.

Code par bit de parit´e :pn´1,nq-code C2 “ tw PFn2 |hpwq is pairu.

Exercice : trouver leur distance minimale et leur capacit´e de correction

(23)

Bande passante versus distance minimale

Un “bon” code correcteur d’erreur

a une grande distance minimale : capacit´e de corriger des grosses erreurs

a un petit ration{k : meilleure gestion de la bande passante ë incompatibilit´e :un compromis doit ˆetre trouv´e

Deux cas extrˆemes sur F2

Code par r´ep´etition :p1,nq-codeC1“ t00. . .0, 11. . .1u.

Code par bit de parit´e :pn´1,nq-code C2 “ tw PFn2 |hpwq is pairu.

Exercice : trouver leur distance minimale et leur capacit´e de correction

(24)

La borne de Hamming

Borne de Hamming

Soit un pk,nq-code C de distance minimale d sur un corps fini `aq

´

el´ements,

tpd´1q{2u

ÿ

i“0

ˆn i

˙

pq´1qi ďqn´k

Preuve : Il y aqk ´el´ements dansC, et les boules de rayontpd´1q{2ucentr´ees en les mots du code doivent ˆetre disjointes. Le nombre d’´el´ements dans de telles boules estřtpd´1q{2u

i“0

`n

i

˘pq´1qi, doncqkřtpd´1q{2u i“0

`n

i

˘pq´1qiď#pFnqq “qn.

Ceci donne une borne sup surd connaissantk et n.

Un code parfaitest un code pour lequel l’´egalit´e est satisfaite

(25)

La borne de Hamming

Borne de Hamming

Soit un pk,nq-code C de distance minimale d sur un corps fini `aq

´

el´ements,

tpd´1q{2u

ÿ

i“0

ˆn i

˙

pq´1qi ďqn´k

Preuve : Il y aqk ´el´ements dansC, et les boules de rayontpd´1q{2ucentr´ees en les mots du code doivent ˆetre disjointes. Le nombre d’´el´ements dans de telles boules estřtpd´1q{2u

i“0

`n

i

˘pq´1qi, doncqkřtpd´1q{2u i“0

`n

i

˘pq´1qiď#pFnqq “qn.

Ceci donne une borne sup surd connaissantk et n.

Un code parfaitest un code pour lequel l’´egalit´e est satisfaite

(26)

Codes de Hamming

Tr`es peu de codes parfaits : code trivial, certains codes par r´ep´etitions, codes de Hamming, et les deux cas tr`es sp´eciaux des codes de Golay Code de Hamming “code parfait avecd “3

Si C est un tel code, alors tout motw1 qui n’est pas un mot du code est `a distance de Hamming 1 d’un unique mot du code

ðñ pour tout syndrˆome non nuls PKn´k, il existe un unique vecteur d’erreur e de poids de Hamming 1 tel que σpeq “s

Orσpeq “e.H (o`u H “est la matrice de contrˆole) ;

si e est de poids 1, alorse.H est simplement un multiple d’une ligne de H Donc les lignes de H sont tous les ´el´ements de Kn´kzt0u, `a une constante multiplicative pr`es,

i.e. (les repr´esentants) de tous les ´el´ements de l’espace projectif Pn´k´1pKq

(27)

Codes de Hamming

Tr`es peu de codes parfaits : code trivial, certains codes par r´ep´etitions, codes de Hamming, et les deux cas tr`es sp´eciaux des codes de Golay Code de Hamming “code parfait avecd “3

Si C est un tel code, alors tout motw1 qui n’est pas un mot du code est `a distance de Hamming 1 d’un unique mot du code

ðñ pour tout syndrˆome non nuls PKn´k, il existe un unique vecteur d’erreur e de poids de Hamming 1 tel que σpeq “s

Orσpeq “e.H (o`u H “est la matrice de contrˆole) ;

si e est de poids 1, alorse.H est simplement un multiple d’une ligne de H Donc les lignes de H sont tous les ´el´ements de Kn´kzt0u, `a une constante multiplicative pr`es,

i.e. (les repr´esentants) de tous les ´el´ements de l’espace projectif Pn´k´1pKq

(28)

Codes de Hamming

Tr`es peu de codes parfaits : code trivial, certains codes par r´ep´etitions, codes de Hamming, et les deux cas tr`es sp´eciaux des codes de Golay Code de Hamming “code parfait avecd “3

Si C est un tel code, alors tout motw1 qui n’est pas un mot du code est `a distance de Hamming 1 d’un unique mot du code

ðñ pour tout syndrˆome non nuls PKn´k, il existe un unique vecteur d’erreur e de poids de Hamming 1 tel que σpeq “s

Orσpeq “e.H (o`u H “est la matrice de contrˆole) ;

si e est de poids 1, alorse.H est simplement un multiple d’une ligne de H Donc les lignes de H sont tous les ´el´ements de Kn´kzt0u, `a une constante multiplicative pr`es,

i.e. (les repr´esentants) de tous les ´el´ements de l’espace projectif Pn´k´1pKq

(29)

Construction de codes de Hamming binaires

1 Choisir un param`etre `

2 Lister tous les mots non nuls de F`2, en terminant par 100. . .00, 010. . .00, . . . , 000. . .01

3 Faire de cette liste une matrice H de taille p2`´1q ˆ`telle que H “

ˆP I`

˙

PM2`´1,`pF2q

4 G´en´erer une matrice deC :G “`

I2`´1´`

PM2`´1´`,2`´1pF2q Les param`etres du code sontn“2`´1 etk “2`´1´`, correspondant

`

a un code parfait avec d “3.

Exemple :k “3 donne le code de Hamming classique de taille p4,7q; une matrice de g´en´eratrice possible estG “

¨

˚

˝

1 0 0 0 1 1 1

0 1 0 0 1 1 0

0 0 1 0 1 0 1

0 0 0 1 0 1 1

˛

‚ (Exercice : d´ecoder les messages 1010101 et 0111110)

(30)

Construction de codes de Hamming binaires

1 Choisir un param`etre `

2 Lister tous les mots non nuls de F`2, en terminant par 100. . .00, 010. . .00, . . . , 000. . .01

3 Faire de cette liste une matrice H de taille p2`´1q ˆ`telle que H “

ˆP I`

˙

PM2`´1,`pF2q

4 G´en´erer une matrice deC :G “`

I2`´1´`

PM2`´1´`,2`´1pF2q Les param`etres du code sontn“2`´1 etk “2`´1´`, correspondant

`

a un code parfait avec d “3.

Exemple :k “3 donne le code de Hamming classique de taille p4,7q; une matrice de g´en´eratrice possible estG “

¨

˚

˝

1 0 0 0 1 1 1

0 1 0 0 1 1 0

0 0 1 0 1 0 1

0 0 0 1 0 1 1

˛

‚ (Exercice : d´ecoder les messages 1010101 et 0111110)

(31)

Section 4

Codes polynomiaux

(32)

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

(33)

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

(34)

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

(35)

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

(36)

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)

(37)

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

(38)

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

(39)

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.

(40)

Section 5

Introduction aux codes de Reed-Solomon

(41)

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.

(42)

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.

(43)

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.

(44)

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.

(45)

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.

(46)

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 ?

(47)

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 ?

(48)

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.

(49)

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 ?

(50)

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.

(51)

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

(52)

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

(53)

Remarques

Les codes de Reed-Solomon sont tr`es courants : utilis´es dans les CD, DVD, QR codes, ADSL,...

Avec le choix dex1, . . . ,xn le rendant polynomial, on obtient un cas particulier de codes BCH (Bose–Ray-Chaudhuri–Hocquenghem), dont la proc´edure de d´ecodage est celle que l’on vient d’esquisser

Trouver le polynˆome minimal d’une suite r´ecurrente lin´eaire d’ordre n peut se faire enOpn2q avec l’algorithme de Berlekamp-Massey (utile aussi pour cryptanalyse LFSR !)

Références

Documents relatifs

Pour nir, la caractérisation résiduelle des formes traces permet de retrouver la dimension de l'espace ω n V des n-formes abéliennes (i.e. de trace nulle) sur une

[r]

[r]

More worryingly, in ergodic theory, the notion of conditionally weakly mixing systems is well-established (see e.g. [Tao08]), but if one where to conceive a notion of conditional

• Le CO 2 contenu dans l'air se dissout dans la solution ; on peut raisonnablement supposer que la quantité est proportionnelle au volume de solution de soude (dissolution

[r]

Sur une classe d'dquations aux d~riv~es partielles du second ordre et sur la g~ndralisation du probl~me de Dirichlet.. t~ber Systeme yon linearen partiellen

womit miser Satz bewiesen ist. Wie man also auch die Abel'sche Gruppe durch eine Basis dar- stellen mag, die Gradzahlen der Elemente dieser Basis sind stets