Académique Documents
Professionnel Documents
Culture Documents
B. Rouzeyre
Bibliographie
n
Introduction
Introduction
n
n
n
n
n
n
n
n
Codage
Correction
Dtection
Correction
Information
Introduction
n
Rappel
n=10, p=0,01
0,1
r
1
10
Introduction
n
Codes systmatiques
Codage : construction du mot de code en ajoutant la
suite des k bits d'information i1,i2,,ik, s=(n-k) bits l1,..,ls
bits appels bits de contrle formant la cl de contrle
on obtient c1,..ck,,cn = i1,i2,,ik,l1,..,ls
si idem : ok
sinon erreur
Remarques
code parit => code dtecteur d'un nombre impair d'erreurs mais ne permet pas
de corriger des erreurs
p err = 0,57
Pour p = 0,01
p det = 0,0746 => 97% des messages errons sont dtects
p err = 0,0772
a1,2
a1,3
a1,4
a1,5
a1,6
a1,7
a1,8
a2,1
a2,2
a2,3
a2,4
a2,5
a2,6
a2,7
a2,8
aL,1
aL,2
aL,3
aL,4
aL,5
aL,6
aL,7
aL,8
aL+1,1
aL+1,2
aL+1,3
aL+1,4
aL+1,5
aL+1,6
aL+1,7
Dcodage
a1,1
a1,2
a1,3
a1,4
a1,5
a1,6
a1,7
a1,8
a2,1
a2,2
a2,3
a2,4
a2,5
a2,6
a2,7
a2,8
aL,1
aL,2
aL,3
aL,4
aL,5
aL,6
aL,7
aL,8
aL+1,1
aL+1,2
aL+1,3
aL+1,4
aL+1,5
aL+1,6
aL+1,7
aL+1,8
n
n
n
Rappels mathmatiques
n
0 1
0 1
0 1 et 0 0 0
1 0
1 0 1
Notations :
. x
Rappels mathmatiques
n
ex :
(1 0 1 0 1 1) + (1 1 1 0 0 1) = (0 1 0 0 1 0)
(1 0 1 0 1 1) - (1 1 1 0 0 1) = (0 1 0 0 1 0)
produit scalaire
Rappels
Soit E un e.v. de dimension n,
Soit F un s.e.v. de E de dimension k
Soit F le s.e.v orthogonal F cd F = {vE/ <v,u>=0,uF}
n
dim F = n-k
Notations
n
n
n
{0,1}n
{0,1}k
{0,1}n
Codes
Codes
Codage
Transmission
Blocs d'information
Codes
Dfinition
{0,1}n
Capacit de correction
Soit c1,c2, .les mots du code. Soit c le code mis, m le mot reu.
Soit une "boule" de centre un code, de rayon d/2.
c
c1
e
m
c1
m
c2
c1
m c1
t=(d-1)/2
Notations
Un code de dimension k de longueur n de distance minimale
d est not C(n,k,d)
Un code qui corrige jusqu' t erreurs est appel t-correcteur
w(v)
000
000000
001
110110
010
011101
011
101011
100
100101
101
010011
110
111000
111
001110
Poids minimum W=3 => d=3, on peut corriger jusqu' (d-1)/2 = 1 erreur
C = {u V / u = Ga, a=(a1,a2,.,ak)t [GF(2)]k } o G est la nxk matrice dont les colonnes sont les
gi de la base de C
par exemple
101
011
010
G=
111
001
110
0
0 =
1
1
1
0
1
1
0
u = Ga
000
000000
001
110110
010
011101
011
101011
100
100101
101
010011
110
111000
111
001110
Structure de codeur
a1 a2 a3
v1
v2
101
011
010
G=
111
001
110
v3
v4
v5
v6
101
011
010
G=
111
001
110
e1 e2 e3
u = Ga
u = G'a
000
000000
000
000000
001
110110
001
001110
010
011101
010
101011
011
101011
011
100101
100
100101
100
011101
101
010011
101
010011
110
111000
110
110110
111
001110
111
111000
*
*
010
100
111
G'=
101
011
110
e2 e2
+
e3
e1
+
e2
+
e3
Principe de la dtection d'erreurs : dtecter que le mot reu appartient bien au code cd
qu'il appartient bien au sous espace vectoriel pas de composantes dans le s.e.v
orthogonal.
n
n
De mme C peut tre dfini comme le noyau d'un application linaire de [GF(2)]n dans [GF
(2)]n-k de matrice H
Construction de H
101
011
010
111
001
110
H=
110
111
001
010
011
100
v3
v4
v6
remarques :
Un autre choix de variables donnerait une autre base de solutions et donc une autre
matrice de contrle
Structure de contrleur
H=
110
111
001
010
011
100
Ht =
110001
110110
011010
v1 v2 v3 v4 v5 v6
Code C
n
u = Ha
w(v)
000
000000
001
011010
010
110110
011
101100
100
110001
101
101011
110
000111
111
011101
Code tendu
n
Le cas le plus classique est vn+1= f(v) = vi : parit, tous les codes de C'
ont un poids pair. La matrice de contrle H' est obtenue en ajoutant H
une ligne de 1 et une colonne de 0
110001
H= 110110
011010
1100010
H' = 1 1 0 1 1 0 0
0110100
1111111
Code tronqu
n
101
011
010
G=
111
001
110
en supprimant la
deuxime coordonne
101
010
G'= 1 1 1
001
110
v = G'a
w(v)
000
00000
001
10110
010
01101
011
11011
100
10101
101
00011
110
11000
111
01110
Forme systmatique
n
I k
G = o Ik est la matrice identit de dimension k, et P une matrice (n-k)xk
P
10
n
Dfinition : Deux codes C(n,k) et C'(n,k) sont dits quivalents ssi il existe
une permutation S qui transforme tout mot de code de C en un mot de
code de C', c--d :
G'= G.S et H'= H.S
11
Forme systmatique
n
P
I n -k I n -k
Dem : par combinaisons linaires des colonnes de G on peut trouver une matrice
identit d'ordre k (puisque le rang est k), ce qui ne change pas le sous-espace
vectoriel. Par une permutation des lignes on peut placer la matrice identit dans
les k premires colonnes (ce qui change le sev) => G'. Les lignes de H' sont
orthogonales aux lignes de G'. Comme elles sont linairement indpendantes
alors H' peut tre considr comme la matrice de contrle de C'.
Exemple 1
101
011
010
G=
111
001
110
100
011
G'= 0 1 0
110
001
111
Ik
P
011
111
H'= 1 0 1
100
010
001
-Pt
In-k
1000
0100
0010
G=
0001
1111
H=
11111
Codage de l'information c = Ga
Dcodage la rception : Hv
c v = c+e s = Hv = H(c+e) = H(c) + H(e) = 0 + H(e) = H(e)
Dfinitions
les mots du code, de syndrome nul, forment une classe qui possde 2k lments.
toutes les classes ont mme cardinal :
H(u) = H(v) H(u)+H(v) =0 H(u+v) =0 ce qui implique que (u+v) appartient au code.
En rsum :
Correction :
1/ on calcule le syndrome du mot reu m,
2/ puisque le syndrome de la somme de 2 vecteurs de
mme syndrome est nulle (la somme est donc un mot du
code), on ajoute un mot d'erreur ec qui a ce syndrome
pour obtenir un "bon" code
3/ Le mot d'erreur choisir ec est un mot :
n
n
Tableau standard
n
v1
v2
vj
vN
u1+C
u1
u1+v1
u1+v2
u1+vj
u1+vN
ui+C
ui
ui+v1
ui+v2
ui+vj
ui+vN
uM
uM+v1
uM+v2
uM+vj
uM+vN
uM+C
Algorithme de correction
n
A l'arrive du message m, son syndrome est calcul par H(m) => classe
de m
Dans cette classe, un vecteur de poids minimum est pris comme vecteur
de correction ec (dcodage distance minimum)
Le message est corrig en : (m+ec)
Remarque :
101
soit v' le vecteur reu, calculer son syndrome H(v').
011
dterminer le reprsentant ui du syndrome
010
G=
dcoder v' par v'-ui
111
001
Exemple prcdent
110
110001
H= 110110
011010
000000
110110
011101
101011
100101
010011
111000
001110
u1+C
100000
010110
111101
001011
000101
110011
011000
101110
u2+c
010000
100110
001101
111011
110101
000011
101000
011110
u3+C
001000
111110
010101
100011
101101
011011
110000
000110
u4+C
000100
110010
011001
101111
100001
010111
111100
001010
u5+C
000010
110100
011111
101001
100111
010001
111010
001100
u6+C
000001
110111
011100
101010
100100
010010
111001
001111
u7+C
001001
111111
010100
100010
101000
011010
110001
000111
mot de code envoy 100101, et soit une erreur sur le cinquime bit -> mot
reu 100111
1/ Calcul du syndrome
1
110001 0
0
0
H(100111)t = 1 1 0 1 1 0 1 = 1
1
011010 1
1
n
n
Tableau standard
n
C + C + ..... + C 2
Exemple
10
01
11
01
1110
0101
Classe 0 : (0 0 0 0) (1 0 1 0) (0 1 1 1) (1 1 0 1)
Base
Classe 1 :
soit m=(0 0 0 1), m n'appartient pas au code
n
1110
H(m) = 0 1 0 1
0
0
0
1
0
1
Classe 2
soit m= (0 0 1 0), H(m) = (1 0)
Classe 3
soit m = (0 1 0 0) , H(m) = (1 1)
Syndromes
S0 = (0 0)
S1 = (0 1)
S2 = (1 0)
S3 = (1 1)
ec
(0 0 0 0)
(0 0 0 1)
(0 0 1 0)
(0 1 0 0)
classes
1110
0101
1
0
1
1
0
1
Quelques codes
n
n
n
Efficacit de la correction
n
n
dn-k+1
Majoration de d : dmonstration
Soit k'=n-k+1 et soit [GF(2)]k' un s.e.v. de [GF(2)]n.
Chaque vecteur v de ce s.e.v. peut tre considr comme un vecteur dont les n-k'=k-1
premires composantes sont nulles : v=(00v1v2.vk')
C et [GF(2)]k' sont 2 s.e.v., ils ont donc le vecteur nul en commun
S'ils n'avaient que le vecteur nul en commun, leurs dimensions vrifieraient k'+k n.
En effet, soit (ej) une base de C et (e'k) une base de [GF(2)]k' et soit une combinaison
linaire nulle des ej et e'k :
e + e'
j j
Si C [GF(2)]k' = 0, alors
= 0 cd j e j = k e'k
e =
j j
e'k = 0
D'o, j : j = 0 et k, k =0, donc (ej),(e'k) est une famille libre, d'o k'+k n
Or k+k' = k + (n-k+1) = n+1 > n.
Donc il existe au moins un vecteur non nul de C qui appartient galement [GF(2)]k' .
Son poids est au plus gal k (puisque ses k-1 premires composantes sont nulles)
Donc la distance minimale de C est infrieure ou gale k'=n-k+1
Minoration de d
n
Minoration de d
n
Dem :
a/ supposons que toutes les ensembles de w colonnes
soient libres
Il n'existe donc aucune relation de la forme Hj1 + +
Hjw=0, donc pas de mot mis de poids w. Or si un
ensemble est libre, tous les sous-ensembles le sont
galement, il n'existe donc pas de mot de code w-1, w-2,
etc.., cd pas de mot de code de poids infrieur w.
Donc d w+1
b/ rciproque , soit d w+1
aucun mot non nul n'est de poids w, il n'existe donc pas
de relation du type Hj1 + + Hjw=0, tous les sousensembles de w colonnes de H sont donc libres.
n
n
d n-k+1 = redondance +1
d (w+1) tout sous-ensemble de w vecteurs colonnes de
H est libre
Codes parfaits
n
n
Cnk p k (1 p) n k
k =0
Code parfait : Un code de capacit de correction t est dit parfait, si tout message ayant plus
de t erreurs est coup sur incorrectement corrig
t
pexa = Cnk p k (1 p) n k
k =0
Si l'erreur est de poids infrieur ou gale 2, message bien corrig coup sur
Mot de code
Mot distance 1
Mot distance 2
code linaire
n
corrigeant toutes les erreurs de poids 1 (de faon fiable)
n
de rendement = k/n maximum pour une redondance fixe m = n-k
Thorme
Codes de Hamming
n
n
n
n = 2m-1
k = n-m
2
3
1
3
7
4
4
15
11
5
31
26
6
63
57
7
127
120
codes
H(3,1)
H(7,4)
H(15,11)
H(31,26)
H(63,57)
H(127,120)
rendement
0,33
0,57
0,73
0,83
0,90
0,94
Codes de Hamming
n
Proprits
1/ distance minimale 3
2/ capacit de correction 1
3/ parfait cd toute erreur distance 1 (cd une erreur sur
un seul bit) d'un code est corrige
dem
1/ d3 puisque t1. Tous les vecteurs de [GF(2)]m
formant les colonnes de H, la somme de deux vecteurs
colonnes est donc une colonne de H. Il existe donc 3
colonnes linairement lis cd telles que Hi+Hj+Hk=0. Il
existe donc des mots de code de poids 3, donc d=3.
2/ vident
Codes de Hamming
n
dem 3/
soit B(c,d/2) les boules ayant pour centre un mot c du
code et un rayon gal d/2.
Chaque boule contient tous les messages distance 1
de son centre. Il y en a n.
Les 2k boules en contient donc n*2k = (2m-1)*2k.
Le nombre de messages errons est gal
(2n-2k) = 2k (2n-k-1) = (2m-1)* 2k
si m a une erreur de poids 1, il se trouve dans la boule b
(c,3/2), la distance 1; il est coup sur corrig
exactement
si m a une erreur de poids suprieur 1, il est coup sur
inexactement corrig.
v1
V := v2
v3
V' :=
v0
v1
v2
v3
Pour k = 3, on considre que c'est un mot de longueur 4 ,dont le premier bit v0 est fix
une valeur quelconque, par exemple 0 (en d'autres termes {0,1}3 est considr comme
un s.e.v de {0,1}4).
On effectue le codage sur la nouvelle forme, puis on fixe dans l'expression des bits de
code la valeur de v0 choisie.
H := 1
v0
v1
v2
G.V'=C' =
v3
v1 + v2 + v3
v0 + v2 + v3
v0 + v1 + v3
v0= 0
G :=
v1
v2
v3
C=
v1 + v2 + v3
v2 + v3
v1 + v3
v1
V :=
v2
v3
v1
v2
v3
v1 + v2 + v3
v2 + v3
v1 + v3
v1
V := v2
v3
v1
v2
v3
v1 + v2 + v3
v2 + v3
v1 + v3
G :=
G :=
H := 1
c1
c2
c3
c4
c5
c6
c1 + c2 + c3 + c4
c2 + c3 + c5
c1 + c3 + c6
c1
c2
c3
c4
c5
c6
0 c1 + c2 + c3 + c4
0 c2 + c3 + c5
1 c1 + c3 + c6
H := 0
v0 = 1111
(il y a 1 vecteur : 1 = CM0 )
vi est compos de 2i-1 "zros" suivis de 2i-1 "uns" suivis de 2i-1 "zros" etc
. , pour i=1,,M
(il y a M vecteurs : M = CM1 )
Proprit : La distance minimum d est 2M-r (intressant pour les canaux trs
bruits). dm par rcurrence.
Codes RM(r,4)
M=4 => n = 24 = 16
v0 = 1111111111111111
v4 = 0000000011111111
v3 = 0000111100001111 r=1
v2 = 0011001100110011 (k=5)
v1 = 0101010101010101
r=2
v43=v4v3 = 0000000000001111
(k=11)
v42=v4v2 = 0000000000110011
v32=v3v2 = 0000001100000011
r=3
v41=v4v1 = 0000000001010101
(k=15)
v31=v3v1 = 0000010100000101
v21=v2v1 = 0001000100010001
v432=v4v3v2 = 0000000000000011
v431=v4v3v1 = 0000000000000101
v421=v4v2v1 = 0000000000010001
v321=v3v2v1 = 0000000100000001
r=4
(k=16)
v4321=v4v3v2v1 = 00000000000000001
Vecteurs de la base des sev => matrices gnratrices : G(RM(1,4)) =
Codes RM proprits
n
Codes RM proprits
On a :
y0 = a0
y1 = a0+a1
y2 = a0+a2
y3 = a0+a2+a1+a21
y4 = a0+a3
y5 = a0+a3+a1+a31
y6 = a0+a3+a2+a32
y7 = a0+a3+a2+a1+a32+a31+a21
y8 = a0+a4
y9 = a0+a4+a1+a41
y10 = a0+a4+a2+a42
y11 = a0+a4+a2+a1+a42+a41+a21
y12 = a0+a4+a3+a43
y13 = a0+a4+a3+a1+a43+a41+a31
y14 = a0+a4+a3+a2+a43+a42+a32
y15 = a0+a4+a3+a2+a1+a43+a42+a41+a32+a31+a21
a31 = y0+y1+y4+y5
= y2+y3+y6+y7
= y8+y9+y12+y13
= y10+y11+y14+y15
y'8 = a0+a4
y'9 = a0+a4+a1
y'10 = a0+a4+a2
y'11 = a0+a4+a2+a1
y'12 = a0+a4+a3
y'13 = a0+a4+a3+a1
y'14 = a0+a4+a3+a2
y'15 = a0+a4+a3+a2+a1
CODES de BERGER
n
n
n
CODES POLYNOMIAUX
n
Ex : 1011 x3+x+1
Division polynomiale
P(x) = D(x).Q(x)+R(x) avec R(x)=0 ou deg(R)<deg(D)
exemple x3+x2+x=(x+1)(x2+1)+1
Codes polynomiaux
n
Dfinition :
code linaire /
tous les mots de code sont des multiples de l'un d'eux
not g(x) (au sens produit de polynmes)
Codes polynomiaux
n
Fonction de codage
Polynme gnrateur
n
Codage
n
Exemple : C(5,3)
n
000
0 0
00000
001
1 x2+x
00110
010
x x3+x2
01100
011
100
x+1 x3+x
x2 x4+x3
01010
11000
101
x2+1 x4+x3+x2+x
11110
110
x2+x x4+x2
10100
111
x2+x+1 x4+x
10010
Les polynmes de code obtenu forment un base du code, sousespace vectoriel de dimension k de Pn-1, chacun reprsente une des
k colonnes d'une matrice gnratrice G(g) que l'on peut crire
((
Les colonnes de G sont les vecteurs forms par les coef. des polys
Si g(x)= xn-k+gk+1.xn-(k+1)++gn-1.x+gn,
numrotation coefs
il vient :
gn gk+1 1
0 .gk+1
0.0 gn
Coefficients du
poly gnrateur
gn = 0
gn-1 = gk+1 = 1
100
110
011
001
000
clef de contrle
soit c(x) = xn-k i(x) + a(x) avec a(x) =0 ou deg(a(x)) < (n-k) avec
a(x) (poly associ la clef de contrle).
Codage
1/ calculer le produit xn-k.i(x) (cela revient dcaler les coef.
de i(x) vers la gauche de n-k positions)
2/ calcul de la clef de contrle a(x)
il faut que xn-k i(x) + a(x) soit un mot du code i.e. de la
forme i*(x).g(x) avec i*(x) Pk-1
ce qui implique xn-k i(x) = i*(x).g(x) + a(x)
n
n
i(x)
x2.i(x)
=(x2+x) Q(x)
+a(x)
a(x)
000
=(x2+x) 0
001
x2
=(x2+x) 1
+x
010
x3
=(x2+x) (x+1)
+x
011
x+1
x3+x2
=(x2+x) x
100
x2
x4
=(x2+x) (x2+x+1) +x
101
x2+1
x4+x2
=(x2+x) (x2+x)
110
x2+x
x4+x3
=(x2+x) x2
111
x2+x+1
x4+x3+x2
=(x2+x) (x2+1)
+x
x2.i(x)
a(x)
c(x)=x2.i(x)+a(x) c
000
0+0
00000
001
x2
x2+x
00110
010
x3
x3+x
01010
011
x3+x2
x3+x2
01100
100
x4
x4+x
10010
101
x4+x2
x4+x2
10100
110
x4+x3
x4+x3
11000
111
x4+x3+x2 x
x4+x3+x2+x
11110
000
00000
001
00110
010
01100
011
01010
100
11000
101
11110
110
10100
111
10010
Dtection d'erreurs
n
n
Fonction syndrome
Capacit de dtection
n
n
Capacit de dtection
n
Erreurs de poids 2
Capacit de dtection
Codage :
par multiplication :
n
c(x) = i(x).g(x)
c(x) = xn-k.i(x) + R(x) avec R(x)= Reste (xn-k.i(x) / g(x))
Contrle :
par division par g(x)
par matrice de contrle
algbre des poly modulo un poly p(x) de degr n g(x)
n
n
si p(x) = g(x)*(x)
g(x)*(x) =0 mod p(x) c(x) appartient au code
Dtection derreur
dpend de la nature du poly. gnrateur
Correction
capacit de correction dpend de la distance, difficile
dterminer
particulariser p(x) pour valuer rapidement la capacit de
correction => codes cycliques
choisir g(x) pour obtenir une capacit de correction
minimum garantie => codes BCH
CRC exemples
n
Exemples:
CRC-12
= x12+x11+x3+x2+x+1
CRC-16
= x16+x15+x2+1
CRC-CCITT = x16+x12+x5+1
CRC-16 et CRC-CCITT (tlphonie sans fil) dtectent
n
n
n
n
n
CRC usuels
Nom
CRC-1
CRC-4-ITU
CRC-5-EPC
CRC-5-ITU
CRC-5-USB
CRC-6-ITU
CRC-7
CRC-8-CCITT
CRC-8-Dallas/Maxim
CRC-8
CRC-8-SAE J1850
CRC-8-WCDMA
CRC-10
CRC-11
CRC-12
CRC-15-CAN
CRC-16-IBM
Polynme gnrateur
x + 1 (Bit de parit)
x4 + x + 1 (ITU-T G.704)
x5 + x3 + 1 (Gen 2 RFID)
x5 + x4 + x2 + 1 (ITU-T G.704)
x5 + x2 + 1 (USB token packets)
x6 + x + 1 (ITU-T G.704)
x7 + x3 + 1 (telecom systems, ITU-T G.707, ITU-T G.832, MMC,SD)
x8 + x2 + x + 1 (ATM HEC), ISDN Header Error Control and Cell Delineation ITU-T I.432.1 (02/99)
x8 + x5 + x4 + 1 (1-Wire bus)
x8 + x7 + x6 + x4 + x2 + 1
x8 + x4 + x3 + x2 + 1
x8 + x7 + x4 + x3 + x + 1[
x10 + x9 + x5 + x4 + x + 1 (ATM; ITU-T I.610)
x11 + x9 + x8 + x7 + x2 + 1 (FlexRay)
x12 + x11 + x3 + x2 + x + 1 (telecom systems)
x15 + x14 + x10 + x8 + x7 + x4 + x3 + 1
x16 + x15 + x2 + 1 (Bisync, Modbus, USB, ANSI X3.28, many others; also known as CRC-16 and CRC-16-ANSI)
CRC-16-CCITT
x16 + x12 + x5 + 1 (X.25, HDLC, XMODEM, Bluetooth, SD, many others; known as CRC-CCITT)
CRC-16-T10-DIF
CRC-16-DNP
CRC-16-DECT
CRC-24
CRC-24-Radix-64
CRC-30
CRC-32-IEEE 802.3
x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1 (V.42, MPEG-2, PNG[19], POSIX cksum)
CRC-32C (Castagnoli)
x32 + x28 + x27 + x26 + x25 + x23 + x22 + x20 + x19 + x18 + x14 + x13 + x11 + x10 + x9 + x8 + x6 + 1 (iSCSI & SCTP, G.hn payload)
CRC-32K (Koopman)
CRC-32Q
CRC-64-ISO
x32 + x30 + x29 + x28 + x26 + x20 + x19 + x17 + x16 + x15 + x11 + x10 + x7 + x6 + x4 + x2 + x + 1
x32 + x31 + x24 + x22 + x16 + x14 + x8 + x7 + x5 + x3 + x + 1 (aviation; AIXM[)
x64 + x4 + x3 + x + 1 (HDLC ISO 3309, Swiss-Prot/TrEMBL; considered weak for hashing
CRC-64-ECMA-182
x64 + x62 + x57 + x55 + x54 + x53 + x52 + x47 + x46 + x45 + x40 + x39 + x38 + x37 + x35 + x33 + x32 + x31 + x29 + x27 + x24 + x23 + x22 + x21 + x19 +
x17 + x13 + x12 + x10 + x9 + x7 + x4 + x + 1 (as described in ECMA-182 )
Sans intrt
Syndrome
= Reste
Remarques :
- on n'a besoin que 6 bits de rsultats intermdiaire,
le dividende peut tre rentr en srie
- si le bit de poids fort du reste intermdiaire est
0 : on dcale le reste intermdiaire en incluant un bit
de plus du dividende
1 : on dcale de reste intermdiaire en incluant un bit
de plus du dividende et enlve (i.e. ajoute) le diviseur
i0.... ik
x0
x1
x2
x3
x4
Remarques :
- si le bit de poids fort = 0, dcalage
- si le bit de poids fort =1, dcalage et addition du diviseur (cd soustraction)
xn
i0.... ik
a0
a1
x0
ai
an-2
x1
an-1
xn-2
la connexion existe si ai = 1
la connexion n'existe pas si ai = 0
xn-1
an
c(x) = i(x).g(x)
i0.... i3
ABC
Sortie
000
i3 =1
100
i2=1
110
i1=0
011
i0=1
101
010
001
000
x6
x5
x4
x3
x2
x1
x0
i0.... i3
Autre implantation
A
i0.... i3