Next: Programmation.
Up: Correction d'erreurs de transmission:
Previous: La parité.
La PCE.
La méthode précédente permet de savoir avec certitude qu'une
transmission s'est mal passée si la parité n'est pas respectée,
mais elle ne permet pas de corriger une erreur. La méthode décrite
dans cette section permet de corriger une erreur (en faisant
l'hypothèse que la transmission a engendré au plus 2 erreurs).
Cette fois-ci on regroupe l'information à transmettre par paquets de 15
octets (de parité paire) et on ajoute un 16ème octet (dont on
ajuste aussi la parité). On va maintenant expliquer comment on
calcule ce 16ème octet en fonction des 15 précédents.
Soit
. Étant donnés 15 octets
, ...,
de parité paire, on calcule le polynôme:
(le terme de plus bas degré est donc de degré au moins 7:
obtenu pour
).
On calcule ensuite le reste de la division euclidienne de
par
ce qui donne un polynôme
de degré 6, l'octet
est alors
l'octet correspondant à
(plus précisément tel que
coinncide avec
sauf pour le terme de degré
7).
A l'autre extrémité, le récepteur reçoit 16 octets
et forme le polynôme
![$\displaystyle \tilde{C}(X)= \sum _{j=1}^{15} P_{\tilde{o}_j}(X) X^{8j-1}
+ a_6 X^6+...+a_1 X +a_0,$](img99.png)
où
Si la transmission s'est bien passée,
donc
est divisible par
(car
dans
).
Réciproquement, si tous les octets
sont de parité
paire et si
est divisible par
alors soit la transmission
s'est bien passée soit le nombre d'erreurs est supérieur ou égal à 2.
S'il y a une erreur de transmission et une seule, alors il exixste
un entier
tel que:
que détermine à l'aide du reste de la division euclidienne
de
par
et de la parité des
.
Programmez un algorithme mettant en oeuvre cette procédure et
testez la en créant des erreurs de manière aléatoire.
Next: Programmation.
Up: Correction d'erreurs de transmission:
Previous: La parité.
2001-01-19