8.4.3 Correction d'erreur

La détection d'erreur peut parfois s'accompagner d'une correction d'erreur. Pour arriver à une expression analytique des erreurs qui peuvent être corrigées, il convient de disposer d'une table reliant la valeur du syndrome à l'erreur $ \overrightarrow{e}$ correspondante.

On obtient cette table en construisant une table à double entrée comprenant tous les mots codés possibles ainsi que toutes les vecteurs d'erreur (voir le tableau 8.3). Chaque ligne contient un vecteur d'erreur ainsi que le résultat de la superposition de ce message d'erreur sur l'ensemble des mots de code.


Tableau 8.3: Ensemble des combinaisons de mots codés et de vecteurs d'erreur.
  $ \overrightarrow{c}_{{1}}^{}$ ... $ \overrightarrow{c}_{{i}}^{}$ ... $ \overrightarrow{c}_{{2^{k}}}^{}$
$ \overrightarrow{e}_{{1}}^{}$ $ \overrightarrow{c}_{{1}}^{}$ + $ \overrightarrow{e}_{{1}}^{}$ ... $ \overrightarrow{c}_{{i}}^{}$ + $ \overrightarrow{e}_{{1}}^{}$ ... $ \overrightarrow{c}_{{2^{k}}}^{}$ + $ \overrightarrow{e}_{{1}}^{}$
$ \overrightarrow{e}_{{2}}^{}$ $ \overrightarrow{c}_{{1}}^{}$ + $ \overrightarrow{e}_{{2}}^{}$ ... $ \overrightarrow{c}_{{i}}^{}$ + $ \overrightarrow{e}_{{2}}^{}$ ... $ \overrightarrow{c}_{{2^{k}}}^{}$ + $ \overrightarrow{e}_{{2}}^{}$
$ \vdots$ $ \vdots$   $ \vdots$   $ \vdots$
$ \overrightarrow{e}_{{j}}^{}$ $ \overrightarrow{c}_{{1}}^{}$ + $ \overrightarrow{e}_{{j}}^{}$ ... $ \overrightarrow{c}_{{i}}^{}$ + $ \overrightarrow{e}_{{j}}^{}$ ... $ \overrightarrow{c}_{{2^{k}}}^{}$ + $ \overrightarrow{e}_{{j}}^{}$
$ \vdots$ $ \vdots$   $ \vdots$   $ \vdots$
$ \overrightarrow{e}_{{2^{n-k}}}^{}$ $ \overrightarrow{c}_{{1}}^{}$ + $ \overrightarrow{e}_{{2^{n-k}}}^{}$ ... $ \overrightarrow{c}_{{i}}^{}$ + $ \overrightarrow{e}_{{2^{n-k}}}^{}$ ... $ \overrightarrow{c}_{{2^{k}}}^{}$ + $ \overrightarrow{e}_{{2^{n-k}}}^{}$


Au total, le tableau contient 2n n-uples de l'espace vectoriel à n dimensions. Un calcul simple permet d'obtenir les syndromes de toutes ces combinaisons vectorielles. En effet, soit le vecteur $ \vec{{r}}\,$ = $ \left(\vphantom{\overrightarrow{c}_{i}+\overrightarrow{e}_{j}}\right.$$ \overrightarrow{c}_{{i}}^{}$ + $ \overrightarrow{e}_{{j}}^{}$$ \left.\vphantom{\overrightarrow{c}_{i}+\overrightarrow{e}_{j}}\right)$ obtenu à la réception. Le syndrome de ce vecteur vaut

$\displaystyle \overrightarrow{s}$ = $\displaystyle \left(\vphantom{\overrightarrow{c}_{i}+\overrightarrow{e}_{j}}\right.$$\displaystyle \overrightarrow{c}_{{i}}^{}$ + $\displaystyle \overrightarrow{e}_{{j}}^{}$$\displaystyle \left.\vphantom{\overrightarrow{c}_{i}+\overrightarrow{e}_{j}}\right)$HT = $\displaystyle \overrightarrow{c}_{{i}}^{}$HT + $\displaystyle \overrightarrow{e}_{{j}}^{}$HT (8.30)

Mais comme $ \overrightarrow{c}_{{i}}^{}$ est un mot codé, $ \overrightarrow{c}_{{i}}^{}$HT = $ \underline{{0}}$. Dès lors,

$\displaystyle \overrightarrow{s}$ = $\displaystyle \left(\vphantom{\overrightarrow{c}_{i}+\overrightarrow{e}_{j}}\right.$$\displaystyle \overrightarrow{c}_{{i}}^{}$ + $\displaystyle \overrightarrow{e}_{{j}}^{}$$\displaystyle \left.\vphantom{\overrightarrow{c}_{i}+\overrightarrow{e}_{j}}\right)$HT = $\displaystyle \overrightarrow{e}_{{j}}^{}$HT (8.31)

Autrement dit, le syndrome dépend de l'erreur et non pas de la valeur de message. De plus, cette relation montre que tous les éléments d'une même ligne du tableau 8.3 ont un syndrome identique. De cette manière, il y a une correspondance entre un syndrome et un vecteur d'erreur. On en déduit l'algorithme de correction d'erreur suivant:

  1. Calcul du syndrome $ \overrightarrow{s}$ = $ \overrightarrow{r}$HT sur base du signal reçu.
  2. Détermination du vecteur d'erreur $ \overrightarrow{e}_{{j}}^{}$ correspondant.
  3. Estimation du mot codé réel au moyen de $ \overrightarrow{c}$ = $ \overrightarrow{r}$ $ \oplus$ $ \overrightarrow{e}_{{j}}^{}$.


Marc Van Droogenbroeck. Tous droits réservés.
2004-06-11