GEL-7064 : Théorie et pratique des codes

publicité
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
GEL-7064 : Théorie et pratique des codes
correcteurs
Codes cycliques
Notes de cours
Jean-Yves Chouinard
Département de génie électrique et de génie informatique
Université Laval
[email protected]
12 février 2013
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Plan de la présentation
1
Codes cycliques linéaires
Représentation polynômiale des codes cycliques linéaires
Idéals
2
Propriétés des codes cycliques linéaires
3
Codage et décodage des codes cycliques linéaires
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
4
Codes cycliques linéaires systématiques
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Représentation polynômiale des codes cycliques linéaires
Idéals
Définition des codes cycliques linéaires
Définition (code cyclique linéaire) :
Un code bloc linéaire C(n, k) est dit code cyclique linéaire si
pour tout mot-code c = (c0 , c1 , . . . , cn−1 ), il existe un motcode c′ = (cn−1 , c0 , . . . , cn−2 ).
Dans un code cyclique linéaire C, toutes les permutations
(circulaires) cycliques d’un mot-code sont aussi des mot-codes.
Par exemple, si le vecteur x = (1, 0, 0, 0, 1, 1, 0) est un mot-code
dans C, alors toutes ses versions décalées sont aussi des mot-codes
du code cyclique linéaire :
(1, 0, 0, 0, 1, 1, 0), (0, 0, 0, 1, 1, 0, 1), (0, 0, 1, 1, 0, 1, 0), . . . , (0, 1, 0, 0, 0, 1, 1) ∈ C
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Représentation polynômiale des codes cycliques linéaires
Idéals
Représentation polynômiale des codes cycliques linéaires
Soit f (x) = a0 + a1 x + a2 x 2 + . . . + an−1 x n−1 + an x n où les
coefficients ai sont des éléments (scalaires) d’un corps fini. Le degré
du polynôme f (x) est la plus grande valeur de n telle que an 6= 0.
Un polynôme de degré n est appelé polynôme monique si le
coefficient an = 1 :
f (x) = a0 + a1 x + a2 x 2 + . . . + an−1 x n−1 + x n
Les éléments des mot-codes peuvent être exprimés comme les
coefficients d’un polynôme mot-code :
c(x) = c0 + c1 x + c2 x 2 + . . . + cn−2 x n−2 + cn−1 x n−1
où l’exposant i de x i indique la position de l’élément dans le
mot-code c(x), i.e. c.
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Représentation polynômiale des codes cycliques linéaires
Idéals
Représentation polynômiale des codes cycliques linéaires
En utilisant cette notation polynômiale, les décalages circulaires (ou
cycliques) d’un mot-code c, peuvent s’exprimer en multipliant le
polynôme mot-code c(x) par x i où i indique le nombre de
décalages circulaires vers la droite, et en réduisant le polynôme
résultant modulo x n − 1.
décalage
circulaire
i
mot-code
c
polynôme mot-code
c(x)
0
1
2
..
.
n−1
(c0 , c1 , c2 , . . . , cn−1 )
(cn−1 , c0 , c1 , . . . , cn−2 )
(cn−2 , cn−1 , c0 , . . . , cn−3 )
..
.
(c1 , c2 , c3 , . . . , c0 )
c(x) = c0 + c1 x + c2 x 2 + . . . + cn−1 x n−1
x c(x) = cn−1 + c0 x + c1 x 2 + . . . + cn−2 x n−1
x 2 c(x) = cn−2 + cn−1 x + c0 x 2 + . . . + cn−3 x n−1
..
.
n−1
x
c(x) = c1 + c2 x + c3 x 2 + . . . + c0 x n−1
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Représentation polynômiale des codes cycliques linéaires
Idéals
Représentation polynômiale des codes cycliques linéaires
Considérons un autre polynôme de la forme :
a(x) = a0 + a1 x + . . . + an−1 x n−1 ∈ CG(q)[x]/x n − 1
(La notation CG(q)[x]/f (x) dénote un anneau de polynômes
CG(q)[x] réduits modulo f (x).) En multipliant le polynôme
mot-code c(x) par ce polynôme a(x) :
a(x) · c(x) = a0 · c(x) + a1 x · c(x) + . . . + an−1 x n−1 · c(x)
on obtient une combinaison linéaire des versions décalées
(cycliques) du polynôme mot-code original c(x). Le polynôme
produit a(x)c(x) est donc un autre polynôme du code, ou
mot-code valide, du code linéaire cyclique C, c’est-à-dire :
a(x)c(x) ∈ C où a(x) ∈ CG(q)[x]/x n − 1 et c(x) ∈ CG(q)[x]/x n − 1
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Représentation polynômiale des codes cycliques linéaires
Idéals
Idéals
Un anneau R est un ensemble d’éléments tels que :
1 R est un groupe commutatif sous l’addition, c’est-à-dire :
1
2
3
4
2
3
(a + b) + c = a + (b + c), ∀a, b, c ∈ R (associativité),
a + 0 = 0 + a = a, 0 ∈ R (élément identité),
∀a ∈ R, il existe un élément unique a−1 ∈ R tel que
a + a−1 = a−1 + a = 0 : (inverse unique),
∀a ∈ R, ∀b ∈ R : a + b = b + a (commutativité).
L’opération de multiplication est associative :
(a · b) · c = a · (b · c), ∀a, b, c ∈ R.
L’opération de multiplication est distributive sur l’addition :
a · (b + c) = (a · b) + (a · c), ∀a, b, c ∈ R.
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Représentation polynômiale des codes cycliques linéaires
Idéals
Idéals
Si l’opération de multiplication est commutative, i.e.
a · b = b · a, ∀a, b ∈ R, et qu’elle possède un élément identité, 1,
alors l’anneau R est un anneau commutatif avec identité.
L’ensemble de tous les polynômes q-aires CG(q)[x] forme un
anneau commutatif avec identité.
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Représentation polynômiale des codes cycliques linéaires
Idéals
Définition d’un idéal
Définition (idéal) :
Un sous-ensemble non vide I ⊆ R, où R est un anneau, est un
idéal si :
1
2
le sous-ensemble I forme un groupe sous l’addition dans
l’anneau R, et
a · r = b ∈ I pour tous les a ∈ I et r ∈ R.
Par exemple, l’ensemble I = {0, 4, 8, 12} est un idéal dans l’anneau
R = {0, 1, 2, 3, . . . , 15} sous les opérations addition et
multiplication modulo 16.
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Représentation polynômiale des codes cycliques linéaires
Idéals
Définition d’un idéal principal
Définition (idéal principal) :
Un idéal I ⊆ R est un idéal principal si il existe un élément
g ∈ I tel que chaque élément c ∈ I peut s’exprimer par :
c = mg
Jean-Yves Chouinard
pour m ∈ R.
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Représentation polynômiale des codes cycliques linéaires
Idéals
Exemple (idéal principal)
Considérons les éléments du corps de Galois CG(8) et les
polynômes minimaux dans CG(2)[x]. On peut construire le corps
de Galois CG(8) à l’aide du polynôme primitif :
p(α) = α3 + α + 1 = 0
⇒ α3 = α + 1
représentation exponentielle représentation polynômiale
0
0
1
1
α
α
α2
α2
α3
α
+1
α4
α2 +α
α5
α2 +α
+1
α6
α2
+1
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Représentation polynômiale des codes cycliques linéaires
Idéals
Exemple (idéal principal)
Les classes de conjugués sont :
β = 0 : =⇒ {0}
β = 1 : 1, 12 = 1 =⇒ {1}
3
2
β = α : α, α2 , α2 = α4 , α2 = αα =⇒ {α, α2 , α4 }
β = α3 : α3 , (α3 )2 = α6 , (α3 )4 = α12 = α5 =⇒ {α3 , α5 , α6 }
et les polynômes minimaux correspondants sont :
classes de conjugués
{0}
{1}
{α, α2 , α4 }
{α3 , α5 , α6 }
polynômes minimaux
M∗ (x) = x
M0 (x) = x + 1
M1 (x) = (x + α)(x + α2 )(x + α4 )
M1 (x) = x 3 + x + 1
M3 (x) = (x + α3 )(x + α5 )(x + α6 )
M3 (x) = x 3 + x 2 + 1
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Représentation polynômiale des codes cycliques linéaires
Idéals
Exemple (idéal principal)
Le polynôme x 7 − 1 = x 7 + 1 peut être factorisé par l’ensemble des
polynômes minimaux :
x 7 + 1 = M0 (x) · M1 (x) · M3 (x)
x 7 + 1 = (x + 1) · (x 3 + x + 1) · (x 3 + x 2 + 1)
Les idéaux principaux dans CG(2)[x]/x 7 − 1 sont :
h0i, hx + 1i, hx 3 + x + 1i, hx 3 + x 2 + 1i,
h(x + 1)(x 3 + x + 1)i, h(x + 1)(x 3 + x 2 + 1)i,
h(x 3 + x + 1)(x 3 + x 2 + 1)i,
h(x + 1)(x 3 + x + 1)(x 3 + x 2 + 1)i
Il y a donc 8 idéaux principaux incluant les deux idéaux triviaux :
h0i et hx 7 + 1i (i.e. h(x + 1)(x 3 + x + 1)(x 3 + x 2 + 1)i).
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Représentation polynômiale des codes cycliques linéaires
Idéals
Théorème (idéal)
Théorème (idéals dans CG(q)[x]/x n − 1) :
Si I est un idéal dans CG(q)[x]/x n − 1, alors :
1
2
3
Il existe un polynôme unique monique g (x) ∈ I de degré
minimal,
I est un idéal principal ayant un polynôme générateur
g (x),
le polynôme générateur g (x) divise le polynôme x n − 1
dans CG(q)[x].
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Propriétés des codes cycliques linéaires
1
Dans l’ensemble des polynômes mot-codes {c(x)} ∈ C, il
existe un polynôme unique g (x) :
g (x) = g0 + g1 x + g2 x 2 + . . . + gr −1 x r −1 + x r
2
de degré minimal r < n. Ce polynôme g (x) est le polynôme
générateur du code C.
Tout polynôme mot-code {c(x)} ∈ C peut être exprimé de
manière unique par :
c(x) = m(x)g (x)
3
où m(x) est un polynôme de degré inférieur à (n − r ) dans
CG(q)[x].
Le polynôme générateur g (x) ∈ C est un facteur de (x n − 1)
dans CG(q)[x]
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Propriétés des codes cycliques linéaires
Le polynôme m(x) représente le message, un bloc d’information, de
degré plus petit ou égal à n − r − 1, c’est-à-dire de (n − r ) éléments.
Le choix des polynômes générateurs des codes cycliques linéaires
est limité aux polynômes diviseurs du polynôme x n − 1.
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Exemple (sélection des polynômes générateurs)
Supposons que l’on désire trouver les polynômes générateurs pour
un code linéaire cyclique binaire de longueur n = 15. Alors g (x)
doit diviser x 15 − 1.
Nous avons vu que le polynôme x 15 − 1 est le produit de polynômes
minimaux, obtenus des classes de conjugués, c’est-à-dire :
2
3
4
β, β q , β q , β q , β q , . . .
avec q = 2, m = 4 pour x q
m −1
− 1.
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Exemple (sélection des polynômes générateurs)
Les classes de conjugués sont :
β = 1 : 1, 12 = 1 =⇒ {1}
2
3
4
β = α : α, α2 , α2 = α4 , α2 = α8 , α2 = α16 = α =⇒
{α, α2 , α4 , α8 }
β = α3 : α3 , (α3 )2 = α6 , (α3 )4 = α12 , (α3 )8 = α24 =
α9 , (α3 )16 = α48 = α3 =⇒ {α3 , α6 , α9 , α12 }
β = α5 : α5 , (α5 )2 = α10 , (α5 )4 = α20 = α5 =⇒ {α5 , α10 }
β = α7 : α7 , (α7 )2 = α14 , (α7 )4 = α28 = α13 , (α7 )8 = α56 =
α11 , (α7 )16 = α112 = α7 =⇒ {α7 , α11 , α13 , α14 }
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Exemple (sélection des polynômes générateurs)
Les polynômes minimaux sont obtenus des classes de conjugués :
classes de conjugués
{1}
polynômes minimaux
M0 (x) = x + 1
2
4
8
{α, α , α , α }
M1 (x) = (x + α)(x + α2 )(x + α4 )(x + α8 )
M1 (x) = x 4 + x + 1
{α3 , α6 , α9 , α12 }
M3 (x) = (x + α3 )(x + α6 )(x + α9 )(x + α12 )
M3 (x) = x 4 + x 3 + x 2 + x + 1
{α5 , α10 }
M5 (x) = (x + α5 )(x + α10 )
M5 (x) = x 2 + x + 1
{α7 , α11 , α13 , α14 }
M7 (x) = (x + α7 )(x + α11 )(x + α13 )(x + α14 )
M7 (x) = x 4 + x 3 + 1
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Exemple (sélection des polynômes générateurs)
Donc le polynôme x 15 − 1 = x 15 + 1 peut de décomposer en
produit des polynômes minimaux suivants :
x 15 + 1 = M0 (x) · M1 (x) · M3 (x) · M5 (x) · M7 (x)
x 15 + 1 = (x + 1) · (x 4 + x + 1) · (x 4 + x 3 + x 2 + x + 1) ·
(x 2 + x + 1) · (x 4 + x 3 + 1)
Maintenant, à l’aide des facteurs du polynôme x 15 + 1, c’est-à-dire
l’ensemble des polynômes minimaux, on peut construire des
polynômes générateurs de codes cycliques, g (x), de n’importe quel
degré.
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Exemple (sélection des polynômes générateurs)
degré
polynômes générateurs
1
g (x) = M0 (x)
g (x) = x + 1
2
g (x) = M5 (x)
g (x) = x 2 + x + 1
3
g (x) = M0 (x) · M5 (x)
g (x) = (x + 1) · (x 2 + x + 1)
g (x) = x 3 + 1
4
g (x) = M1 (x)
g (x) = x 4 + x + 1
g (x) = M3 (x)
g (x) = x 4 + x 3 + x 2 + x + 1
g (x) = M7 (x)
g (x) = x 4 + x 3 + 1
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Exemple (sélection des polynômes générateurs)
degré
5
polynômes générateurs
g (x) = M0 (x) · M1 (x)
g (x) = (x + 1) · (x 4 + x + 1)
g (x) = x 5 + x 4 + x 2 + 1
g (x) = M0 (x) · M3 (x)
g (x) = (x + 1) · (x 4 + x 3 + x 2 + x + 1)
g (x) = x 5 + 1
g (x) = M0 (x) · M7 (x)
g (x) = (x + 1) · (x 4 + x 3 + 1)
g (x) = x 5 + x 3 + x + 1
6
g (x) = M5 (x) · M1 (x)
g (x) = (x 2 + x + 1) · (x 4 + x + 1)
g (x) = x 6 + x 5 + x 4 + x 3 + 1
g (x) = M5 (x) · M3 (x)
g (x) = (x 2 + x + 1) · (x 4 + x 3 + x 2 + x + 1)
g (x) = x 6 + x 4 + x 3 + x 2 + 1
g (x) = M5 (x) · M7 (x)
g (x) = (x 2 + x + 1) · (x 4 + x 3 + 1)
g (x) = x 6 + x 3 + x 2 + x + 1
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Exemple (sélection des polynômes générateurs)
degré
7
polynômes générateurs
g (x) = M0 (x) · M5 (x) · M1 (x)
g (x) = (x + 1) · (x 2 + x + 1) · (x 4 + x + 1)
g (x) = x 7 + x 3 + x + 1
g (x) = M0 (x) · M5 (x) · M3 (x)
g (x) = (x + 1) · (x 2 + x + 1) · (x 4 + x 3 + x 2 + x + 1)
g (x) = x 7 + x 6 + x 5 + x 2 + x + 1
g (x) = M0 (x) · M5 (x) · M7 (x)
g (x) = (x + 1) · (x 2 + x + 1) · (x 4 + x 3 + 1)
g (x) = x 7 + x 6 + x 4 + 1
8
g (x) = M1 (x) · M3 (x)
g (x) = (x 4 + x + 1) · (x 4 + x 3 + x 2 + x + 1)
g (x) = x 8 + x 7 + x 6 + x 4 + 1
g (x) = M1 (x) · M7 (x)
g (x) = (x 4 + x + 1) · (x 4 + x 3 + 1)
g (x) = x 8 + x 7 + x 5 + x 4 + x 3 + x + 1
g (x) = M3 (x) · M7 (x)
g (x) = (x 4 + x 3 + x 2 + x + 1) · (x 4 + x 3 + 1)
g (x) = x 8 + x 4 + x 2 + x + 1
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Exemple (sélection des polynômes générateurs)
degré
9
polynômes générateurs
g (x) = M0 (x) · M1 (x) · M3 (x)
g (x) = (x + 1) · (x 4 + x + 1) · (x 4 + x 3 + x 2 + x + 1)
g (x) = x 9 + x 6 + x 5 + x 4 + x + 1
g (x) = M0 (x) · M1 (x) · M7 (x)
g (x) = (x + 1) · (x 4 + x + 1) · (x 4 + x 3 + 1)
g (x) = x 9 + x 7 + x 6 + x 3 + x 2 + 1
g (x) = M0 (x) · M3 (x) · M7 (x)
g (x) = (x + 1) · (x 4 + x 3 + x 2 + x + 1) · (x 4 + x 3 + 1)
g (x) = x 9 + x 8 + x 5 + x 4 + x 3 + 1
10
g (x) = M5 (x) · M1 (x) · M3 (x)
g (x) = (x 2 + x + 1) · (x 4 + x + 1) · (x 4 + x 3 + x 2 + x + 1)
g (x) = x 10 + x 8 + x 5 + x 4 + x 2 + x + 1
g (x) = M5 (x) · M1 (x) · M7 (x)
g (x) = (x 2 + x + 1) · (x 4 + x + 1) · (x 4 + x 3 + 1)
g (x) = x 10 + x 5 + 1
g (x) = M5 (x) · M3 (x) · M7 (x)
g (x) = (x 2 + x + 1) · (x 4 + x 3 + x 2 + x + 1) · (x 4 + x 3 + 1)
g (x) = x 10 + x 9 + x 8 + x 6 + x 5 + x 2 + 1
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Exemple (sélection des polynômes générateurs)
degré
11
polynômes générateurs
g (x) = M0 (x) · M5 (x) · M1 (x) · M3 (x)
g (x) = (x + 1) · (x 2 + x + 1) · (x 4 + x + 1) · (x 4 + x 3 + x 2 + x + 1)
g (x) = x 11 + x 10 + x 9 + x 8 + x 6 + x 4 + x 3 + 1
g (x) = M0 (x) · M5 (x) · M1 (x) · M7 (x)
g (x) = (x + 1) · (x 2 + x + 1) · (x 4 + x + 1) · (x 4 + x 3 + 1)
g (x) = x 11 + x 10 + x 6 + x 5 + x + 1
g (x) = M0 (x) · M5 (x) · M3 (x) · M7 (x)
g (x) = (x + 1) · (x 2 + x + 1) · (x 4 + x 3 + x 2 + x + 1) · (x 4 + x 3 + 1)
g (x) = x 11 + x 8 + x 7 + x 5 + x 3 + x 2 + x + 1
12
g (x) = M1 (x) · M3 (x) · M7 (x)
g (x) = (x 4 + x + 1) · (x 4 + x 3 + x 2 + x + 1) · (x 4 + x 3 + 1)
g (x) = x 12 + x 9 + x 6 + x 3 + 1
13
g (x) = M0 (x) · M1 (x) · M3 (x) · M7 (x)
g (x) = (x + 1) · (x 4 + x + 1) · (x 4 + x 3 + x 2 + x + 1) · (x 4 + x 3 + 1)
g (x) = x 13 + x 12 + x 10 + x 9 + x 7 + x 6 + x 4 + x 3 + x + 1
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Exemple (sélection des polynômes générateurs)
degré
polynômes générateurs
14
g (x) = M5 (x) · M1 (x) · M3 (x) · M7 (x)
g (x) = (x 2 + x + 1) · (x 4 + x + 1) · (x 4 + x 3 + x 2 + x + 1) · (x 4 + x 3 + 1)
g (x) = x 14 + x 13 + x 12 + x 11 + x 10 + x 9 + x 8 + x 7 + x 6 + x 5 + x 4 + x 3 + x 2 + x + 1
15
g (x) = M0 (x) · M5 (x) · M1 (x) · M3 (x) · M7 (x)
g (x) = (x + 1) · (x 2 + x + 1) · (x 4 + x + 1) · (x 4 + x 3 + x 2 + x + 1) · (x 4 + x 3 + 1)
g (x) = x 15 + 1
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Exemple (sélection des polynômes générateurs)
À partir de ces tableaux, on peut construire un code linéaire cyclique de
degré r = 1 avec le polynôme générateur g (x) = x + 1. L’ensemble des
messages possibles {m(x)} comprends tous les 214 = 16 384 vecteurs
binaires de 14 bits. Chacun de ces message est codé par un mot-code de
15 bits :
c(x)
=
m(x)g (x)
De la même manière, si on choisit le polynôme générateur
g (x) = x 2 + x + 1, on peut coder 213 = 8 192 messages distincts de 13
bits en mot-codes de 15 bits, et ainsi de suite. À la limite, on peut coder
de courts messages d’un seul bit en l’un de deux mot-codes de 15 bits en
utilisant le polynôme générateur g (x) de degré 14 :
g (x)
=
x 14 + x 13 + x 12 + x 11 + x 10 + x 9 + x 8 + x 7 + x 6 + x 5 + x 4 + x 3 + x 2 + x + 1
Il s’agit d’un simple code de répétition C(n, k) = C(15, 1).
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Codage des codes cycliques linéaires
Le processus de codage à l’aide de codes cycliques linéaires est
effectué en multipliant le polynôme message m(x) de degré
(n − r − 1) avec le polynôme générateur du code g (x) de degré r
conduisant ainsi à un polynôme mot-code c(x) de degré (n − 1)
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Codage des codes cycliques linéaires
Message :
m(x)
=
m0 + m1 x + m2 x 2 + . . . + mn−r −1 x n−r −1
Générateur du code :
g (x)
=
g0 + g1 x + g2 x 2 + . . . + gr x r
Mot-code :
c(x)
=
c0 + c1 x + c2 x 2 + . . . + cn−1 x n−1
c(x)
=
m(x) · g (x)
c(x)
=
(m0 + m1 x + m2 x 2 + . . . + mn−r −1 x n−r −1 ) · g (x)
c(x)
=
c(x)
=
m0 g (x) + m1 xg (x) + m2 x 2 g (x) + . . . + mn−r −1 x n−r −1 g (x)


g (x)


xg (x)




x 2 g (x)
m0 m1 m2 . . . mn−r −1 · 



.
..


n−r
−1
x
g (x)
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Codage des codes cycliques linéaires
En remplaçant les polynômes par des vecteurs et une matrice génératrice :
m
c
=
=
m0
c0
m1
c1
m2
mn−r −1
...
c2
...
cn−1
m1
...
mn−r −1
on représente le codage cyclique par :
c0
c1
...
cn−1
c
=
=
m·G
m0

g0
 0

 0

 .
 ..

 0
0
Jean-Yves Chouinard
g1
g0
0
.
.
.
0
0
g2
g1
g0
.
.
.
0
0
···
···
···
..
.
···
···
gr
gr −1
gr −2
.
.
.
···
···
Codes cycliques
·
0
gr
gr −1
.
.
.
···
···
···
···
···
..
.
···
···
0
0
0
.
.
.
gr
gr −1
0
0
0
.
.
.
0
gr









Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Codage des codes cycliques linéaires
La matrice génératrice du code cyclique est donc :





G=



g0 g1 g2
0 g0 g1
0 0 g0
..
..
..
.
.
.
0 0 0
0 0 0
···
···
···
..
.
···
···
gr
0
gr −1 gr
gr −2 gr −1
..
..
.
.
···
···
···
···
Jean-Yves Chouinard
···
···
···
..
.
0
0
0
..
.
···
···
gr
gr −1
Codes cycliques
0
0
0
..
.








0 
gr
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Codage des codes cycliques linéaires
La figure ci-dessous montre un codeur cyclique non systématique.
...
...
+
c
c
Jean-Yves Chouinard
...
+
c
Codes cycliques
c
c
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Exemple de codage avec un code cyclique
Dans cet exemple, on veut former un code cyclique binaire de
longueur n = 7. Le polynôme générateur du code g (x) doit être un
facteur de x 7 − 1 dans l’ensemble CG(2)[x]. Reprenons le polynôme
primitif p(x) = x 3 + x + 1. α3 = α + 1 est racine du polynôme
primitif. On obtient le corps de Galois
CG (8) = {0, 1, α, α2 , α3 , α4 , α5 , α6 }. Les classes de conjugués
sont : {0}, {1}, {α, α2 , α4 } et {α3 , α5 , α6 }. Les polynômes
minimaux correspondants sont : M0 (x) = x + 1,
M1 (x) = x 3 + x + 1 et M3 (x) = x 3 + x 2 + 1. Ils factorisent x 7 − 1 :
x 7 + 1 = (x + 1) · (x 3 + x + 1) · (x 3 + x 2 + 1)
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Exemple de codage avec un code cyclique
Choisissons, par exemple le polynôme générateur :
g (x) = M0 (x) · M1 (x) = (x + 1) · (x 3 + x + 1) = x 4 + x 3 + x 2 + 1
Le degré maximal du polynôme message, m(x), est le degré
maximal du polynôme mot-code moins le degré du polynôme
générateur, c.-à-d. 6-4=2. Le code cyclique comprendra donc 8
messages de 3 bits. Choisissons le message m(x) = x 2 + 1, ou [101]
sous forme de vecteur. La matrice génératrice correspondant au
polynôme générateur g (x) = x 4 + x 3 + x 2 + 1 est donc :


1 0 1 1 1 0 0
G= 0 1 0 1 1 1 0 
0 0 1 0 1 1 1
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Exemple de codage avec un code cyclique
La figure montre le codeur cyclique (non-systématique) résultant.
m0 m1 m2
r0
r1
c0
c1
+
r2
c2
+
r3
c3
+
r4
r5
r6
c4
c5
c6
La séquence de codage est illustrée aux figures suivantes.
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Exemple de codage avec un code cyclique
1
0
1
0
0
c0
c1
+
Jean-Yves Chouinard
0
c2
+
0
c3
Codes cycliques
+
0
0
0
c4
c5
c6
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Exemple de codage avec un code cyclique
1
0
1
0
c0
c1
+
Jean-Yves Chouinard
1
c2
+
1
c3
Codes cycliques
+
1
0
0
c4
c5
c6
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Exemple de codage avec un code cyclique
1
0
1
c0
c1
+
Jean-Yves Chouinard
0
c2
+
1
c3
Codes cycliques
+
1
1
0
c4
c5
c6
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Exemple de codage avec un code cyclique
1
0
c0
c1
+
Jean-Yves Chouinard
0
c2
+
1
c3
Codes cycliques
+
0
1
1
c4
c5
c6
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Exemple de codage avec un code cyclique
+
1
0
c0
c1
c2
1
0
0
Jean-Yves Chouinard
0
+
1
+
0
1
1
c3
c4
c5
c6
1
0
1
1
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Exemple de codage avec un code cyclique
La séquence codée est [1001011] ou encore :
c(x) = x 6 + x 5 + x 3 + 1
On vérifie que :
c(x) = m(x) · g (x)
c(x) = x 2 + 1 · x 4 + x 3 + x 2 + 1
c(x) = x 6 + x 5 + x 3 + 1
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Au décodeur, un polynôme de contrôle h(x) est employé pour
décoder les mot-codes reçus (et possiblement corrompus par le
canal). Pour tout polynôme générateur g (x) de degré r , il existe un
polynôme de contrôle h(x) de degré k = (n − r ) tel que :
g (x)h(x) = x n − 1
ou encore :
g (x)h(x) = 0 modulo (x n − 1)
Le polynôme mot-code c(x) étant un multiple du polynôme
générateur g (x), i.e. c(x) = m(x)g (x), alors :
c(x)h(x) = m(x)g (x)h(x)
c(x)h(x) = m(x) · 0 modulo (x n − 1)
c(x)h(x) = 0 modulo (x n − 1)
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Un mot-code c(x) transmis dans un canal de transmission bruité
sera vraisemblablement affecté par celui-ci et le polynôme reçu,
r (x), sera différent, i.e. r (x) 6= c(x).
r (x)h(x) = s(x) modulo (x n − 1)
Le polynôme s(x) = s0 + s1 x + s2 x 2 + . . . + sn−k−1 x n−k−1 est le
polynôme syndrôme de degré (n − k − 1). Ce polynôme syndrôme
s(x) est obtenu en divisant le polynôme reçu r (x) par le polynôme
générateur du code cyclique, g (x). Le reste de la division est le
polynôme syndrôme :
r (x) = a(x)g (x) + s(x)
où le degré du polynôme syndrôme est plus petit que le degré du
polynôme générateur : deg[s(x)] < deg[g (x)].
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Si r (x) = c(x), alors :
r (x) = c(x) = a(x)g (x)
et le message décodé est : m̂(x) = a(x). La figure montre le circuit
de division cyclique.
a 0 a1
... an-1
g0
g1
+
+
d0
gr-1
...
d1
Jean-Yves Chouinard
q0q1
+
dr-2
Codes cycliques
dr1
... qj-1
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Exemple de décodage avec circuit de division
Reprenons l’exemple du code cyclique binaire de longueur n = 7 de
polynôme générateur du code g (x) = x 4 + x 3 + x 2 + 1. Le circuit
de division cyclique est donné à la figure ci-dessous.
g0= 1
a0 a1 a2 a3 a4 a5 a6
g 1= 0
+
g 2= 1
r0
r1
d0
d1
+
g 3= 1
r2
d2
Supposons que la séquence codée reçue du canal est
r (x) = x 6 + x 5 + x 3 + 1.
Jean-Yves Chouinard
Codes cycliques
+
r3
d3
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Exemple de décodage avec circuit de division
g0= 1
a0 a 1 a2 a 3 a4 a 5 a6
g1= 0
+
g2= 1
r0
r1
d0
d1
Jean-Yves Chouinard
+
Codes cycliques
g3= 1
r2
d2
+
r3
d3
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Exemple de décodage avec circuit de division
g0= 1
1 0
0 1
0 1
1
g1= 0
+
g2= 1
+
0
0
d0
d1
Jean-Yves Chouinard
Codes cycliques
g3= 1
0
d2
+
0
d3
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Exemple de décodage avec circuit de division
g0= 1
1 0
0 1
0 1
g1= 0
+
g2= 1
+
1
0
d0
d1
Jean-Yves Chouinard
Codes cycliques
g3= 1
0
d2
+
0
d3
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Exemple de décodage avec circuit de division
g0= 1
1 0
0 1
0
g1= 0
+
g2= 1
+
1
1
d0
d1
Jean-Yves Chouinard
Codes cycliques
g3= 1
0
d2
+
0
d3
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Exemple de décodage avec circuit de division
g0= 1
1
0 0
1
g1= 0
+
g2= 1
+
0
1
d0
d1
Jean-Yves Chouinard
Codes cycliques
g3= 1
1
d2
+
0
d3
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Exemple de décodage avec circuit de division
g0= 1
1 0
0
g1= 0
+
g2= 1
+
1
0
d0
d1
Jean-Yves Chouinard
Codes cycliques
g3= 1
1
d2
+
1
d3
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Exemple de décodage avec circuit de division
g0= 1
1
0
g1= 0
+
g2= 1
+
1
1
d0
d1
Jean-Yves Chouinard
Codes cycliques
g3= 1
1
d2
+
0
d3
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Exemple de décodage avec circuit de division
g0= 1
1
g1= 0
+
g2= 1
+
0
1
d0
d1
Jean-Yves Chouinard
Codes cycliques
g3= 1
1
d2
+
1
d3
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Exemple de décodage avec circuit de division
g0= 1
g1= 0
+
g2= 1
+
0
0
d0
d1
Jean-Yves Chouinard
Codes cycliques
g3= 1
0
d2
+
0
d3
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Exemple de décodage avec circuit de division
g1 = 0
g 0= 1
+
g2 = 1
0
0
0
0
Jean-Yves Chouinard
+
g3 = 1
0
0
Codes cycliques
+
1010000
0
0
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codage des codes cycliques linéaires
Décodage des codes cycliques linéaires
Exemple de décodage avec circuit de division
Le résultat de la division du mot-code reçu, r (x), par le polynôme
générateur g (x) est donc :
r (x) = a(x)g (x) + s(x)
r (x) = x 2 + 1 · x 4 + x 3 + x 2 + 1 + 0
Le syndrome s(x) = 0 indique donc que le mot-code reçu r (x) est
un mot-code valide et le message est : m(x) = a(x) = x 2 + 1 .
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codes cycliques linéaires systématiques
En général, le codage cyclique résultant du produit des polynômes
message et générateur c(x) = m(x)g (x) ne conduit pas à des
codes systématiques. Un code systématique C est de la forme :
c = (c0 , c1 , . . . , cn−k−1 , cn−k , . . . , cn−1 )
c = (c0 , c1 , . . . , cn−k−1 , m0 , . . . , mk−1 )
|
{z
}
message
où m = (m0 , . . . , mk−1 ) est le message de longueur k. Sous forme
polynômiale, on a :
c(x)
=
c0 + c1 x + c2 x 2 + . . . + cn−k−1 x n−k−1 + cn−k x n−k + . . . + cn−1 x n−1
c(x) = c0 + c1 x + c2 x 2 + . . . + cn−k−1 x n−k−1 + m0 x n−k + . . . + mk−1 x n−1
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codes cycliques linéaires systématiques
Le vecteur mot-code c peut être représenté par une somme de deux
vecteurs :
c = (c0 , c1 , . . . , cn−k−1 , cn−k , . . . , cn−1 )
c = (0, 0, . . . , 0, m0 , . . . , mk−1 ) + (−d0 , −d1 , . . . , −dn−k−1 , 0, . . . , 0)
ou encore sous forme polynômiale :
c(x) = x n−k m(x) − d (x)
où d (x) = d0 + d1 x + . . . + dn−k−1 x n−k−1 .
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codes cycliques linéaires systématiques
La figure ci-dessous montre le circuit de multiplication cyclique.
...
...
0
0
Jean-Yves Chouinard
...
+
0
Codes cycliques
m
m
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codes cycliques linéaires systématiques
Or le polynôme mot-code c(x) doit aussi être un multiple du
polynôme générateur g (x) de degré r :
c(x) = q(x)g (x)
avec
g (x) = g0 + g1 x + . . . + gr x r
q(x) = q0 + q1 x + . . . + qn−r −1 x
et
n−r −1
Étant donné que c(x) = x n−k m(x) − d (x) et que
c(x) = q(x)g (x), alors :
x n−k m(x) = q(x)g (x) + d (x)
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codes cycliques linéaires systématiques
Le polynôme d (x) est donc le reste de la division du polynôme
x n−k m(x) par le polynôme générateur g (x). On peut donc former
le mot-code c(x) avec les polynômes m(x) et d (x) :
c(x) = −d0 − d1 x − . . . − dn−k−1 x n−k−1 + m0 x n−k + . . . + mk−1 x n−1
a 0 a1
... an-1
g0
g1
+
+
d0
gr-1
...
d1
Jean-Yves Chouinard
q0q1
+
dr-2
Codes cycliques
dr1
... qj-1
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codes cycliques linéaires systématiques
Algorithme de codage cyclique systématique :
Multiplication : x n−k m(x).
Division par g (x) : x n−k m(x) = q(x)g (x) + d (x).
Soustraction : c(x) = x n−k m(x) − d (x).
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Codes cycliques linéaires systématiques
La figure ci-dessous montre un codeur cyclique systématique.
g0
gr-1
g1
-
+
m0
+
...
m1
...
+
mk-1
-d0
-d1
c0
c1
Jean-Yves Chouinard
...
...
-dn-k-1 m0
m1
cn-k-1 cn-k cn-k+1
Codes cycliques
...
...
mk-1
cn-1
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Circuit de multiplication (entrée inversée)
Circuit de multiplication de deux polynômes avec les entrées
inversées.
1
+
( )
- .
+
−
+
1
+
!
( )
/ 0
"
( ( ) ) = ($ + (%) + (# ) # + , + (& )&
* ( ) ) = *$ + *%) + *# ) # + , + *' )'
+( )) = ( ( )) ⋅ *( ))
+ ( ) ) = +$ + +%) + +# ) # + , + +& + ' −%)& + ' −% + +& + ' )& + '
+ ( ) ) = ( ($ *$ ) + ( (%*$ + ($ *% ) ) + ( (# *$ + (%*% + ($ *# ) ) # + , + ( (& *' −% + (& −%*' ) ) & + ' + ( (& *' ) )& + '
Jean-Yves Chouinard
Codes cycliques
Codes cycliques linéaires
Propriétés des codes cycliques linéaires
Codage et décodage des codes cycliques linéaires
Codes cycliques linéaires systématiques
Circuit de multiplication (entrée non inversée)
Circuit de multiplication de deux polynômes avec entrées non
inversées.
+
=<
( )
H I
2
L
+
;:
2
+
98
L
+
76 −5
2
( )
J K
43
2
C ( D ) = C? + C@D + C> D > + G + CA DA
E ( D ) = E? + E@D + E> D > + G + EB DB
F( D) = C ( D) ⋅ E( D)
F ( D ) = F? + F@D + F> D > + G + FA + B −@DA + B −@ + FA + B DA + B
F ( D ) = ( C? E? ) + ( C@E? + C? E@ ) D + ( C> E? + C@E@ + C? E> ) D > + G + ( CA EB −@ + CA −@EB ) D A + B + ( CA EB ) DA + B
Jean-Yves Chouinard
Codes cycliques
Téléchargement