Théorie et pratique des codes correcteurs Codes

publicité
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
GEL-7064 : Théorie et pratique des codes
correcteurs
Codes Reed-Solomon
Notes de cours
Jean-Yves Chouinard
Département de génie électrique et de génie informatique
Université Laval
[email protected]
26 février 2013
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Plan de la présentation
1
Codes Reed-Solomon
2
Construction des codes Reed-Solomon
3
Propriétés des codes Reed-Solomon
4
Décodage des codes Reed-Solomon
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
5
Bibliographie
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Codes Reed-Solomon
Définition (code Reed-Solomon) :
Un code Reed-Solomon est un code BCH q m −aire de longueur
n = q m − 1.
Définition (classe cyclotomique) :
Le partitionnement de l’ensemble des entiers modulo n en sousensembles disjoints de la forme :
o
n
Ci =
a, aq, aq 2 , aq 3 , . . . , aq d−1
dans le corps de Galois CG(q), donne les classes cyclotomiques
q−aires modulo n.
Remarque : à chaque classe cyclotomique corresponds une classe
de conjugués.
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Exemple (classes cyclotomiques d’un corps de Galois) :
Considérons le corps de Galois CG(32) = CG(25 ) pour lequel nous
désirons déterminer les classes cyclotomiques. Les classes de
conjugués sont :
2
3
4
β, β q , β q , β q , β q , . . .
Pour le corps de Galois CG(32), nous avons :
β
β
β
β
β
β
β
β
=0
=1
=α
= α3
= α5
= α7
= α11
= α15
=⇒ {0}
=⇒ {1}
=⇒ {α, α2 , α4 , α8 , α16 }
=⇒ {α3 , α6 , α12 , α17 , α24 }
=⇒ {α5 , α9 , α10 , α18 , α20 }
=⇒ {α7 , α14 , α19 , α25 , α28 }
=⇒ {α11 , α13 , α21 , α22 , α26 }
=⇒ {α15 , α23 , α27 , α29 , α30 }
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Exemple (classes cyclotomiques d’un corps de Galois) :
Les classes cyclotomiques correspondantes sont obtenues en
déterminant les séquences modulo n suivantes (ici les séquences
modulo 31) :
a, aq, aq 2 , aq 3 , aq 4 , . . .
La première classe cyclotomique est la classe (triviale) :
C0 : 0 =⇒ {0}
La seconde classe cyclotomique est :
C1 : 1, 1 · 2 = 2, 1 · 22 = 4, 1 · 23 = 8, 1 · 24 = 16, 1 · 25 =
32 ≡31 1 =⇒ {1, 2, 4, 8, 16}
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Exemple (classes cyclotomiques d’un corps de Galois) :
Les autres classes cyclotomiques sont :
C3 : 3, 3 · 2 = 6, 3 · 22 = 12, 3 · 23 = 24, 3 · 24 = 48 ≡31
17, 3 · 25 = 96 ≡31 3 =⇒ {3, 6, 12, 17, 24}
C5 : 5, 5 · 2 = 10, 5 · 22 = 20, 5 · 23 = 40 ≡31 9, 5 · 24 =
80 ≡31 18, 5 · 25 = 160 ≡31 5 =⇒ {5, 9, 10, 18, 20}
C7 : 7, 7 · 2 = 14, 7 · 22 = 28, 7 · 23 = 56 ≡31 25, 7 · 24 =
112 ≡31 19, 7 · 25 = 224 ≡31 7 =⇒ {7, 14, 19, 25, 28}
C11 : 11, 11 · 2 = 22, 11 · 22 = 44 ≡31 13, 11 · 23 = 88 ≡31
26, 11 · 24 = 176 ≡31 21, 11 · 25 = 352 ≡31 11 =⇒
{11, 13, 21, 22, 26}
C15 : 15, 15 · 2 = 30, 15 · 22 = 60 ≡31 29, 15 · 23 = 120 ≡31
27, 15 · 24 = 240 ≡31 23, 15 · 25 = 480 ≡31 15 =⇒
{15, 23, 27, 29, 30}
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Exemple (classes cyclotomiques d’un corps de Galois) :
De ces classes cyclotomiques on forme les polynômes minimaux :
classes cyclotomiques modulo 31
polynômes minimaux
C0 = {0}
M0 (x) = x + 1
C1 = {1, 2, 4, 8, 16}
M1 (x) = x 5 + x + 1
C3 = {3, 6, 12, 17, 24}
M3 (x) = x 5 + x 4 + x 3 + x 2 + 1
C5 = {5, 9, 10, 18, 20}
M5 (x) = x 5 + x 4 + x 2 + x + 1
C7 = {7, 14, 19, 25, 28}
M7 (x) = x 5 + x 3 + x 2 + x + 1
C11 = {11, 13, 21, 22, 26}
M11 (x) = x 5 + x 4 + x 3 + x + 1
C15 = {15, 23, 27, 29, 30}
M15 (x) = x 5 + x 3 + 1
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Construction des codes Reed-Solomon
La première étape dans la construction de ces codes BCH
q m −aires, c’est-à-dire les codes Reed-Solomon, consiste à
construire le corps de Galois CG(q m ). Du corps de Galois, on peut
former les classes cyclotomiques modulo q m − 1, ou de manière
équivalente les classes de conjugués, afin de déterminer les
polynômes minimaux.
Étant donné que l’on s’intéresse au corps de Galois CG(q m ), les
classes cyclotomiques seront de la forme :
a, aq m , a(q m )2 , a(q m )3 , a(q m )4 , . . .
où a = 1, 2, 3, 4, . . ., et les opérations sont effectuées modulo
n = q m − 1.
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Construction des codes Reed-Solomon
Les éléments des classes cyclotomiques sont de la forme :
a(q m )i modulo(q m − 1)
avec i = 0, 1, 2, . . .. Pour i = 0, on a :
a(q m )0 modulo(q m − 1)
=
a
De même, pour i = 1,
a(q m )modulo(q m − 1)
m
a(q )modulo(q
m
− 1)
=
[a(q m − 1) + a] modulo(q m − 1)
=
a
et pour i = 2 :
a(q m )2 modulo(q m − 1)
=
[a(q m )(q m )] modulo(q m − 1)
− 1)
=
a(q m )2 modulo(q m − 1)
=
[a(q m − 1) + a] · [1(q m − 1) + 1] modulo(q m − 1)
a(q m − 1)2 + a(q m − 1) + a(q m − 1) + a modulo(q m − 1)
=
a
m 2
a(q ) modulo(q
m 2
a(q ) modulo(q
m
m
− 1)
Les classes cyclotomiques sont alors des singletons (ensemble ne comportant qu’un
seul élément) de la forme : {a} pour a = 0, 1, 2, . . . , q m − 1.
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Construction des codes Reed-Solomon
Nous savons (du théorème sur la borne des codes BCH) que pour un
code BCH t−correcteur, il faut que les 2t puissances consécutives de
l’élément αb soient des zéros du polynôme générateur g (x). Ceci
implique que le polynôme générateur g (x) d’un code Reed-Solomon (i.e.
codes BCH q m −aire) est de la forme :
g (x) = x − αb · x − αb+1 · . . . · x − αb+2t−1
En choisissant l’exposant b = 1, on obtient un polynôme générateur au
sens strict :
g (x) = (x − α) · x − α2 · . . . · x − α2t
ou encore :
g (x) =
2t
Y
i=1
Jean-Yves Chouinard
x − αi
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Exemple (code Reed-Solomon de longueur n = 7) :
On désire construire un code Reed-Solomon 8−aire de longueur
n = 7. Ici, n = q m − 1 avec q = 2 et m = 3. On peut former le
corps de Galois CG(23 ) à l’aide du polynôme primitif binaire
p(x) = x 3 + x + 1 :
p(α) = α3 + α + 1 = 0 =⇒ α3 = α + 1
élément de GF(8)
représentation polynômiale
0
1
α
α2
α3
α4
α5
α6
Jean-Yves Chouinard
0
1
α
α2
α
α2 +α
α2 +α
α2
+1
+1
+1
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Exemple (code Reed-Solomon de longueur n = 7) :
Les classes cyclotomiques modulo n = 7 sont :
a, a(q m ), a(q m )2 , a(q m )3 , a(q m )4 , . . .
a, a(23 ), a(23 )2 , a(23 )3 , a(23 )4 , . . .
c’est-à-dire
C0 : 0 =⇒ {0}
C1 : 1, 1 · 8 = 8 ≡7 1, 1 · 82 = 64 ≡7 1 =⇒ C1 = {1}
C2 : 2, 2 · 8 = 16 ≡7 2, 2 · 82 = 128 ≡7 2 =⇒ C2 = {2}
qui sont des singletons comme prévu.
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Exemple (code Reed-Solomon de longueur n = 7) :
Les classes cyclotomiques modulo 7 définies sur le corps de Galois
CG(8) sont les singletons suivants :
classes cyclotomiques modulo 7
polynômes minimaux
C0 = {0}
M0 (x) = x − 1
C1 = {1}
M1 (x) = x − α
C2 = {2}
M2 (x) = x − α2
C3 = {3}
M3 (x) = x − α3
C4 = {4}
M4 (x) = x − α4
C5 = {5}
M5 (x) = x − α5
C6 = {6}
M6 (x) = x − α6
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Exemple (code Reed-Solomon de longueur n = 7) :
Le polynôme générateur g (x) du code Reed-Solomon est alors
donné par :
g (x) =
g (x) =
x − αb · x − αb+1 · . . . · x − αb+2t−1
2t Y
x − αb+i−1
i=1
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Exemple (code Reed-Solomon de longueur n = 7) :
Code de correction d’erreurs simples Reed-Solomon (t = 1) :
Un code correcteur d’erreurs simples (t = 1) Reed-Solomon de
longueur n = 7 aura le polynôme générateur (sens strict b = 1)
g (x) suivant :
g (x) = (x − α) · x − α2
g (x) = x 2 + x −α − α2 + α3
g (x) = x 2 + x α + α2 + α3
car le corps de Galois CG(8) = CG(23 ) est une extension de
CG(2) et :
g (x) = x 2 + α4 x + α3
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Exemple (code Reed-Solomon de longueur n = 7) :
Code de correction d’erreurs simples Reed-Solomon (t = 1) :
Les coefficients du polynôme générateur g (x) sont des coefficients
8−aires du corps de Galois CG(8). Les polynômes mot-codes
seront de la forme :
c(x) = m(x) · g (x)
c(x) =
m0 + m1 x + . . . + mk−1 x k−1 · (g0 + g1 x + . . . + gr x r )
c(x) = c0 + c1 x + . . . + cn−1 x n−1
avec n = 7, r = 2 et k = 5. L’ensemble des polynômes messages
comprend donc tous les 5-uples (vecteurs de longueur 5) 8−aires.
Le code Reed-Solomon RS(7, 5) consistera donc en
85 = 215 = 32 768 mot-codes de 7 symboles 8−aires.
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Exemple (code Reed-Solomon de longueur n = 7) :
Code de correction d’erreurs doubles Reed-Solomon (t = 2) :
Le code Reed-Solomon de capacité de correction t = 2, c’est-à-dire
pouvant corriger jusqu’à deux symboles 8−aires sur les 7 symboles
8−aires d’un mot-code, est caractérisé par le polynôme générateur
(toujours avec b = 1) :
g (x) = (x − α) · x − α2 · x − α3 · x − α4
g (x) = x 2 + α4 x + α3 · x + α3 · x + α4
g (x) = x 3 + x 2 α4 + α3 + x α7 + α3 + α6 · x + α4
g (x) = x 3 + α6 x 2 + αx + α6 · x + α4
g (x) = x 4 + x 3 α6 + α4 + x 2 α + α10 + x α6 + α5 + α10
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Exemple (code Reed-Solomon de longueur n = 7) :
Code de correction d’erreurs doubles Reed-Solomon (t = 2) :
Le polynôme générateur est donc :
g (x) = x 4 + α3 x 3 + x 2 + αx + α3
Le degré du polynôme générateur g (x) étant égal à r = 4, ce code
Reed-Solomon C est un code 8−aire de longueur n = 7 et constitué
de (q m )n−r = 83 = 512 mot-codes. On pourra donc coder 512
messages 8−aires de longueur k = 3, il s’agit donc d’un code
Reed-Solomon RS(7, 3).
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Distance minimale d’un code linéaire
Théorème (distance minimale d’un code linéaire) :
Soit C(n, k) un code linéaire ayant une matrice de contrôle H. La
distance minimale du code, dmin , est égale au nombre minimal de
colonnes de la matrice de contrôle H pour lesquelles la combinaison
linéaire est égale à zéro.
Représentons la matrice de contrôle (n − k) × n, H, par n vecteurs
colonnes :
d0 d1 . . . dn−1
H =
Un mot-code c sera un mot-code valide dans le code C si cHT = 0,
ou de manière équivalente :
T
c0 c1 . . . cn−1 · d0 d1 . . . dn−1
cHT =
cHT
= c0 d0 + c1 d1 + . . . + cn−1 dn−1
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Distance minimale d’un code linéaire
Si le mot-code c est de poids w , i.e. qu’il consiste en w éléments
non-nuls, alors le produit cHT sera une combinaison linéaire de w
colonnes différentes de la matrice de contrôle H. Or la distance
minimale d’un code linéaire est égale au poids du mot-code non-nul
de plus petit poids.
Théorème (borne de Singleton) :
La distance minimale dmin d’un code linéaire C(n, k) est bornée
par :
dmin ≤ n − k + 1
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Distance minimale d’un code linéaire
Considérons la matrice de contrôle H d’un code

 
h0
h0,0
h0,1

  h1,0
h
h
1
1,1

 
H = 
=
..
..
..

 
.
.
.
h(n−k−1)
hn−k−1,0 hn−k−1,1
linéaire C(n, k) :
...
...
..
.
h0,n−1
h1,n−1
..
.
. . . hn−k−1,n−1
qui est une matrice (n − k) × n de rang (n − k) car les (n − k)
rangées sont linéairement indépendantes. Toute combinaison de
(n − k + 1) colonnes sera linéairement dépendante.
Jean-Yves Chouinard
Codes Reed-Solomon





Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Distance minimale d’un code linéaire
1
Un code Reed-Solomon RS(n, k) étant un code q m −aire, la borne
de distance des codes BCH s’applique pour un code Reed-Solomon
t−correcteur :
dmin
≥
δ = 2t + 1
Le degré du polynôme générateur g (x) est r = n − k, ce qui
implique que la distance apparente (ou distance de conception)
(δ − 1) = r = n − k et donc :
dmin
2
≥ n−k +1
La borne de Singleton indique que la distance minimale d’un code
(n, k) a une borne supérieure donnée par :
dmin
Jean-Yves Chouinard
≤ n−k +1
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Distance minimale d’un code linéaire
Donc si pour les codes Reed-Solomon, dmin ≥ n − k + 1 et
dmin ≤ n − k + 1, alors :
dmin = n − k + 1
Théorème (distance minimale d’un code Reed-Solomon) :
Un code Reed-Solomon RS(n, k) a une distance minimale
dmin = n − k + 1
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Algorithme de décodage de Peterson, Gorenstein et Ziergler :
L’algorithme de décodage de Peterson permet de décoder à partir
du calcul de syndrômes les codes BCH binaires. Cet algorithme
détermine la position des erreurs dans le polynôme vecteur reçu
r (x) et corrige ces erreurs en inversant les bits de r (x) pour
récupérer le polynôme mot-code c(x) en autant que la capacité de
correction t du code BCH binaire ne soit pas dépassée.
Pour les codes BCH non-binaires et pour les codes Reed-Solomon,
on doit déterminer en plus de la position des erreurs leurs poids
respectifs afin de pouvoir les corriger. Plusieurs algorithmes de
décodage de codes Reed-Solomon existent. Parmi ceux-ci, il y a
l’algorithme de Berlekamp-Massey, l’algorithme d’Euclide, les
méthodes fréquentielles et l’algorithme de Peterson, Gorenstein et
Ziergler.
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Algorithme de décodage de Peterson, Gorenstein et Ziergler :
La méthode de Peterson, Gorenstein et Ziergler est en fait une
généralisation effectuée par Gorenstein et Ziergler des algorithmes
de décodage de codes BCH binaires de Peterson et de Berlekamp.
Nous nous intéresserons à celle-ci.
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Algorithme de Peterson, Gorenstein et Ziergler :
1
Calculer du polynôme reçu r (x) les 2t syndrômes :
Sj
2
3
= r (αj ),
Construire la matrice

S1
 S2

 S3


A =  S4
 ..
 .

 St−1
St
j = 1, 2, . . . , 2t.
de syndrômes A :
S2
S3
S4
S5
..
.
S3
S4
S5
S6
..
.
S4
S5
S6
S7
..
.
...
...
...
...
..
.
St−1
St
St+1
St+2
..
.
St
St+1
St+2
St+3
..
.
St
St+1
St+1
St+2
St+2
St+3
...
...
S2t−3
S2t−2
S2t−2
S2t−1
Calculer le déterminant de la matrice de syndrômes A : si le
déterminant est non nul, i.e. |A| =
6 0, aller à l’étape 5.
Jean-Yves Chouinard
Codes Reed-Solomon











Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Algorithme de Peterson, Gorenstein et Ziergler :
4
5
Construire une nouvelle matrice de syndrômes A0 en éliminant la
dernière colonne et la dernière rangée de la matrice A et retourner à
l’étape 3.
Résoudre le système d’équations pour obtenir le polynôme
localisateur d’erreur Λ(x) :

AΛ
6
=










S1
S2
S3
S4
.
.
.
St−1
St
S2
S3
S4
S5
.
.
.
St
St+1
S3
S4
S5
S6
.
.
.
St+1
St+2
S4
S5
S6
S7
.
.
.
St+2
St+3
...
...
...
...
..
.
...
...
St−1
St
St+1
St+2
.
.
.
S2t−3
S2t−2
St
St+1
St+2
St+3
.
.
.
S2t−2
S2t−1
Λt
  Λt−1
  Λ
  t−2
  Λ
  t−3
·
.
 
 
.
 
.
 
Λ2
Λ1
 












=








−St+1
−St+2
−St+3
−St+4
.
.
.
−S2t−1
−S2t
Trouver les racines du polynôme localisateur d’erreur Λ(x). Si Λ(x)
n’a pas de racines distinctes ou tout simplement pas de racines alors
aller à l’étape 10.
Jean-Yves Chouinard
Codes Reed-Solomon











Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Algorithme de Peterson, Gorenstein et Ziergler :
7
Calculer la matrice B et déterminer le

X1 X2 . . . Xν
 X12 X22 . . . Xν2

Be =  .
..
..
..
 ..
.
.
.
X1ν
X2ν
...
Xνν
poids des
 
e i1
  e i2
 
 ·  ..
  .
erreurs :
 
S1
  S2
 
 =  ..
  .
e iν
Sν





8
Soustraire du polynôme reçu, r (x), le polynôme d’erreur e(x).
9
Le mot-code est corrigé correctement (fin de l’algorithme).
10
L’algorithme de décodage ne peut pas corriger le polynôme reçu
r (x) (fin de l’algorithme).
On peut alors décoder le polynôme mot-code c(x) en le divisant
par le polynôme générateur du code Reed-Solomon g (x) et ainsi
décoder le polynôme message m(x).
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Exemple (décodage d’un code Reed-Solomon) :
Reprenons l’exemple du code Reed-Solomon 8−aire de longueur
n = q m − 1 = 23 − 1 = 7 formé avec le polynôme primitif binaire
p(x) = x 3 + x + 1 et de capacité de correction t = 2. Son
polynôme générateur est :
g (x) = x 4 + α3 x 3 + x 2 + αx + α3
Ce code Reed-Solomon RS(7, 3) transforme les vecteurs messages
8−aires de longueur k = 3 en vecteurs mot-codes 8−aires de
longueur n = 7.
Le code RS(7, 3) comprend (q m )n−r = 512 mot-codes. Cependant,
à la sortie du canal de transmission les vecteurs 8−aires reçus
pourront être l’un des (q m )n = 87 = 2 097 152 vecteurs 8−aires
possibles de longueur 7 (il y a 2 097 152 séquences d’erreurs
8−aires de longueur 7).
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Exemple (décodage d’un code Reed-Solomon) :
1er cas : r (x) = x 4 + x 2 + αx + α3
Supposons que l’on reçoive du canal de transmission le vecteur
8−aire suivant :
r (x) = x 4 + x 2 + αx + α3
Le décodeur Reed-Solomon doit en premier lieu calculer les
syndrômes : {Sl } = {r (αl )}l=1,2,...,2t .
S1 = r (α) = α4 + α2 + α(α) + α3
S1 = (α2 + α) + α2 + α2 + (α + 1) = α2 + 1
S1 = α 6
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Exemple (décodage d’un code Reed-Solomon) :
S2
= r (α2 ) = (α2 )4 + (α2 )2 + α(α2 ) + α3
S2
= α8 + α4 + α3 + α3 = α + (α2 + α)
S2
= α2
S3
= r (α3 ) = (α3 )4 + (α3 )2 + α(α3 ) + α3
S3
= α12 + α6 + α4 + α3 = α5 + α6 + α4 + α3
S3
=
S3
= α5
S4
= r (α4 ) = (α4 )4 + (α4 )2 + α(α4 ) + α3
S4
= α16 + α8 + α5 + α3 = α2 + α + α5 + α3
S4
= α2 + α + (α2 + α + 1) + (α + 1) = α
(α2 + α + 1) + (α2 + 1) + (α2 + α) + (α + 1) = α2 + α + 1
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Exemple (décodage d’un code Reed-Solomon) :
La matrice des syndrômes A est alors :
6
S1 S2
α α2
A =
=
S2 S3
α2 α5
et son déterminant |A| est :
6
α α2 |A| = 2
α α5 |A| = (α6 · α5 ) − (α2 · α2 ) = α11 − α4 = α4 − α4
|A| = 0
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Exemple (décodage d’un code Reed-Solomon) :
Le déterminant |A| de la matrice des syndrômes étant nul, ceci
implique que la matrice et son déterminant A est singulière (elle
n’est pas de plein rang). Le rang de la matrice est donc égal à 1
(ν = 1). On construit alors une nouvelle matrice de syndrômes A0
en éliminant la dernière colonne et la dernière rangée de la matrice
originale A :
A0 = [S1 ] = α6
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Exemple (décodage d’un code Reed-Solomon) :
On peut alors déterminer le polynôme localisateur d’erreur, Λ(x),
en résolvant :
A0 Λ = −S
[S1 ] [Λ1 ] = −Sν+1
α6 Λ1 = −S2 = −α2 = α2
α2
= α−4 = α3
Λ1 =
α6
et le polynôme localisateur d’erreur est :
Λ(x) = Λ1 x + Λ0 = α3 x + 1
et le localisateur (d’erreur simple) est : X1 = α3 . Donc, il n’y a
qu’une seule erreur dans le vecteur reçu r (x) et elle est située à la
position 3.
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Exemple (décodage d’un code Reed-Solomon) :
Le vecteur d’erreur e(x) est :
e(x) = e0 + e1 x + e2 x 2 + e3 x 3 + e4 x 4 + e5 x 5 + e6 x 6
avec e0 = e1 = e2 = e4 = e5 = e6 = 0 et e3 6= 0, i.e.
e3 ∈ CG(8) − {0}. On doit déterminer le poids de l’erreur à la
quatrième position (i.e. e3 ) dans le vecteur reçu r (x). On calcule la
matrice de localisateur d’erreur B :
B = [X1 ] = α3
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Exemple (décodage d’un code Reed-Solomon) :
En multipliant la matrice de localisateur d’erreur B avec le vecteur
d’erreur comportant l’erreur, ici e, on obtient le syndrôme
correspondant :
Be = A0
[X1 ] e3 = [S1 ]
α 3 e3 = α 6
α6
= α3
e3 =
α3
et le polynôme d’erreur (estimé) est :
e(x) = e3 x 3 = α3 x 3
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Exemple (décodage d’un code Reed-Solomon) :
Le polynôme mot-code estimé, c(x) est alors :
c(x) = r (x) − e(x)
c(x) = (x 4 + x 2 + αx + α3 ) − (α3 x 3 )
c(x) = x 4 − α3 x 3 + x 2 + αx + α3
c(x) = x 4 + α3 x 3 + x 2 + αx + α3
Le polynôme message (estimé), m(x), est :
m(x) =
c(x)
x 4 + α3 x 3 + x 2 + αx + α3
= 4
=1
g (x)
x + α3 x 3 + x 2 + αx + α3
Le message m(x) = 1 car le polynôme mot-code est ici le polynôme
générateur du code RS(7,3).
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Exemple (décodage d’un code Reed-Solomon) :
2ème cas : r (x) = α2 x 6 + α2 x 4 + x 3 + α5 x 2
Supposons maintenant que nous recevions plutôt le polynôme
suivant du canal de transmission :
r (x) = α2 x 6 + α2 x 4 + x 3 + α5 x 2
Les 2t syndrômes correspondant à ce nouveau vecteur reçu sont :
S1 = r (α) = α2 (α)6 + α2 (α)4 + (α)3 + α5 (α)2
S1 = α 8 + α 6 + α 3 + α 7 = α + α 6 + α 3 + 1
S1 = α + (α2 + 1) + (α + 1) + 1 = α2 + 1
S1 = α 6
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Exemple (décodage d’un code Reed-Solomon) :
S2
=
r (α2 ) = α2 (α2 )6 + α2 (α2 )4 + (α2 )3 + α5 (α2 )2
S2
=
α14 + α10 + α6 + α9 = 1 + α3 + α6 + α2
S2
=
1 + (α + 1) + (α2 + 1) + α2 = α + 1
S2
=
α3
S3
=
r (α3 ) = α2 (α3 )6 + α2 (α3 )4 + (α3 )3 + α5 (α3 )2
S3
=
α20 + α14 + α9 + α11 = α6 + 1 + α2 + α4
S3
=
(α2 + 1) + 1 + α2 + (α2 + α) = α2 + α
S3
=
α4
S4
=
r (α4 ) = α2 (α4 )6 + α2 (α4 )4 + (α4 )3 + α5 (α4 )2
S4
=
α26 + α18 + α12 + α13 = α5 + α4 + α5 + α6
S4
=
α4 + α6 = (α2 + α) + (α2 + 1) = α + 1
S4
=
α3
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Exemple (décodage d’un code Reed-Solomon) :
La matrice des syndrômes A est maintenant :
6
S1 S2
α α3
A =
=
S2 S3
α3 α4
Le déterminant de |A| est :
6
α α3 |A| = 3
α α4 |A| = (α6 · α4 ) − (α3 · α3 )
|A| = α10 − α6 = α3 − α6
|A| = (α + 1) − (α2 + 1) = α2 + α
|A| = α4 6= 0
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Exemple (décodage d’un code Reed-Solomon) :
Cette fois-ci le déterminant de la matrice A est différent de zéro et
celle-ci est donc non singulière. On peut maintenant déterminer le
polynôme localisateur d’erreur Λ(x).
AΛ = −S
Λ2
−S3
=
Λ1
−S4
4 α3
Λ2
−α4
α
=
=
α4
Λ1
−α3
α3
S1 S2
S2 S3
α6
α3
qui est un système de deux équations à deux inconnues :
α6 Λ2 + α3 Λ1 = α4
3
4
α Λ2 + α Λ1 = α
(1)
3
Jean-Yves Chouinard
(2)
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Exemple (décodage d’un code Reed-Solomon) :
De la seconde équation, (2), on peut exprimer Λ2 en fonction de
Λ1 :
α3 Λ2 = α4 Λ1 + α3
α4
α3
Λ2 =
Λ
+
1
α3
α3
Λ2 = αΛ1 + 1
Jean-Yves Chouinard
(3)
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Exemple (décodage d’un code Reed-Solomon) :
En remplaçant Λ2 par αΛ1 + 1 dans (1) :
α6 (αΛ1 + 1) + α3 Λ1 = α4
α 7 Λ1 + α 6 + α 3 Λ1 = α 4
(1 + α3 )Λ1 = α4 + α6
(1 + α + 1)Λ1 = (α2 + α) + (α2 + 1)
αΛ1 = α + 1 = α3
Λ1 =
Jean-Yves Chouinard
α3
= α2
α
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Exemple (décodage d’un code Reed-Solomon) :
En remplaçant Λ1 par α2 dans (2) :
α 3 Λ2 + α 4 Λ1 = α 3
α3 Λ2 + α4 α2 = α3
α 3 Λ2 = α 3 + α 6
α3 Λ2 = (α + 1) + (α2 + 1)
α 3 Λ2 = α + α 2 = α 4
Λ2 =
Jean-Yves Chouinard
α4
=α
α3
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Exemple (décodage d’un code Reed-Solomon) :
Le polynôme localisateur d’erreur Λ(x) est un polynôme du second
ordre :
Λ(x) = Λ2 x 2 + Λ1 x + Λ0
Λ(x) = αx 2 + α2 x + 1
Le polynôme localisateur d’erreur Λ(x) a deux racines : on dénote
par α1 et α2 l’inverse de celles-ci. On peut exprimer Λ(x) sous
forme d’un produit de polynômes du premier ordre :
Λ(x) = (α1 x + 1) · (α2 x + 1)
Λ(x) = (α1 α2 )x 2 + (α1 + α2 )x + 1
Λ(x) = αx 2 + α2 x + 1
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Exemple (décodage d’un code Reed-Solomon) :
Il faut donc que α1 α2 = α et que α1 + α2 = α2 . En cherchant
dans la table du corps de Galois CG(8), on note que :
α3 · α5 = α8 = α et que α3 + α5 = (α + 1) + (α2 + α + 1) = α2 .
On peut donc choisir : α1 = α3 et α2 = α5 .
Λ(x) = (α3 x + 1) · (α5 x + 1)
Les localisateurs d’erreurs sont donc X1 = α3 et X2 = α5 indiquant
des erreurs dans le polynôme reçu r (x) aux positions i1 = 3 et
i2 = 5. Le polynôme d’erreur (i.e. vecteur d’erreur) e(x) est :
e(x) = e0 + e1 x + e2 x 2 + e3 x 3 + e4 x 4 + e5 x 5 + e6 x 6
avec ei1 = e3 6= 0 et ei2 = e5 6= 0 :
e(x) = e3 x 3 + e5 x 5
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Exemple (décodage d’un code Reed-Solomon) :
Il reste à déterminer le poids de ces deux erreurs dans CG(8) à
l’aide de la matrice B de rang ν = 2.
B
=
X1
X12
X2
X22
=
α3
(α3 )2
α5
(α5 )2
=
α3
α6
α5
α10
=
α3
α6
α5
α3
On doit maintenant résoudre le système : Be = S
3
α α5
ei1
S1
=
α6 α3
ei2
S2
3
6 5
α α
e3
α
=
6
3
α α
e5
α3
α3 e3 + α5 e5 = α6
6
3
α e3 + α e5 = α
(1)
3
Jean-Yves Chouinard
(2)
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Exemple (décodage d’un code Reed-Solomon) :
De (2), on peut exprimer e3 en fonction de e5 :
α6 e3 = α3 e5 + α3
α3
α3
e5 + 6 = α−3 e5 + α−3
e3 =
6
α
α
4
e3 = α e5 + α4
Jean-Yves Chouinard
Codes Reed-Solomon
(3)
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Exemple (décodage d’un code Reed-Solomon) :
Dans (1), en substituant e3 par α4 e5 + α4 on obtient :
α3 (α4 e5 + α4 ) + α5 e5 = α6
α7 e5 + α7 + α5 e5 = α6
e5 + 1 + α5 e5 = α6
(α5 + 1)e5 = α6 + 1
((α2 + α + 1) + 1)e5 = (α2 + 1) + 1
(α2 + α)e5 = α2
α4 e5 = α2
e5 = α2 α−4 = α−2
e5 = α 5
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Exemple (décodage d’un code Reed-Solomon) :
Maintenant, en remplaçant e5 par α5 dans (2) :
α6 e3 + α3 e5 = α3
α6 e3 + α3 (α5 ) = α3
α6 e3 = α8 + α3
α6 e3 = α + (α + 1)
e3 = α−6
e3 = α
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Exemple (décodage d’un code Reed-Solomon) :
Enfin, le polynôme d’erreur e(x) est :
e(x) = e0 + e1 x + e2 x 2 + e3 x 3 + e4 x 4 + e5 x 5 + e6 x 6
t
X
e(x) =
eil x logα Xi
l=1
e(x) = ei1 x logα X1 + ei2 x logα X2
3
e(x) = e3 x logα α + e5 x logα α
5
e(x) = αx 3 + α5 x 5
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Exemple (décodage d’un code Reed-Solomon) :
Le polynôme reçu r (x) est corrigé en y additionnant le polynôme
d’erreur e(x) :
c(x) = r (x) + e(x)
c(x) = (α2 x 6 + α2 x 4 + x 3 + α5 x 2 ) + (αx 3 + α5 x 5 )
c(x) = α2 x 6 + α5 x 5 + α2 x 4 + (1 + α)x 3 + α5 x 2
c(x) = α2 x 6 + α5 x 5 + α2 x 4 + α3 x 3 + α5 x 2
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Exemple (décodage d’un code Reed-Solomon) :
Le message m(x) est décodé en divisant le polynôme mot-code
(estimé) c(x) par le polynôme générateur g (x) du code RS(7,3) :
m(x) =
α2 x 6 + α5 x 5 + α2 x 4 + α3 x 3 + α5 x 2
c(x)
=
g (x)
x 4 + α3 x 3 + x 2 + αx + α3
Le polynôme message est donc :
m(x) = α2 x 2
ou sous forme de vecteur 8−aire :
m = (0, 0, α2 )
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
Algorithme de décodage de Peterson, Gorenstein et Ziergler
Exemple de décodage de code Reed-Solomon
Codes Reed-Solomon en pratique :
Les codes Reed-Solomon sont employés dans les systèmes suivants :
Sonde spatiale Voyager : code Reed-Solomon RS(255, 223)
dans CG(28 )
polynôme primitif : p(x) = 1 + x + x 2 + x 7 + x 8 et,
Q143
polynôme générateur : g (x) = i=112 x − α11·i .
Normes WiMAX, ADSL, etc : code Reed-Solomon
RS(255, 239) dans CG(28 )
polynôme primitif : p(x) = 1 + x 2 + x 3 + x 4 + x 8 et,
Q15
polynôme générateur : g (x) = i=0 x + αi .
Norme ETSI DVB-T : code raccourci Reed-Solomon
RS(204, 188) dans CG(28 )
polynôme primitif : p(x) = 1 + x 2 + x 3 + x 4 + x 8 et,
Q15
polynôme générateur : g (x) = i=0 x + αi .
Jean-Yves Chouinard
Codes Reed-Solomon
Codes Reed-Solomon
Construction des codes Reed-Solomon
Propriétés des codes Reed-Solomon
Décodage des codes Reed-Solomon
Bibliographie
E.R. Berlekamp.
Key Papers in the Development of Coding Theory.
IEEE Press, New-York, 1974.
E.R. Berlekamp.
Algebraic Coding Theory.
Aegean Park Press, Laguna Hills, Californie, 1984.
(revised 1984 edition).
R.E. Blahut.
Theory and Practice of Error Control Codes.
Addison-Wesley, Reading, Massachusetts, 1984.
R.C. Bose and D.K. Ray-Chaudhuri.
Further Results on Error Correcting Binary Group Codes.
Information and Control, 3 :279–290, septembre 1960.
R.C. Bose and D.K. Ray-Chaudhuri.
On a Class of Error Correcting Binary Group Codes.
Information and Control, 3 :68–79, mars 1960.
A. Hocquenghem.
Codes correcteurs d’erreurs.
Chiffres, 2 :147–156, septembre 1959.
Jean-Yves Chouinard
Codes Reed-Solomon
Téléchargement