Vanessa VITSE
Universit´e Grenoble Alpes
M1 Maths 2021
Transmission sur un canal
Bob Alice
bruit
Encodage
Decodage message initial m
message envoy´e M
message re¸cuM1
message finalm1
Bob Alice
bruit
Encodage
Decodage message initial m
message envoy´e M
message re¸cuM1
message finalm1
redondance
Section 1
Codes lin´ eaires
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.
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.
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 !)
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
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.
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.
Section 2
D´ ecodage
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
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
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.
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.
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.
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.
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 !
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
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
Section 3
Codes de Hamming
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
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
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
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
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
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
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
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´` P˘
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)
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´` P˘
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)
Section 4
Codes polynomiaux
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
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 !)