Page 33 - CCM_numerique
P. 33
Comment ça marche ?
Radio-club F6KRK
Les transmissions radio numériques
14 – Correction des erreurs.
Après avoir vu la détection des erreurs de transmission, nous allons maintenant aborder
les principales méthodes employées pour les corriger.
PRÉSENTATION DU PROBLÈME
Nous avons vu que les transmissions numériques se
faisaient par blocs de données et qu’une seule erreur
dans le bloc suffisait pour, soit l’ignorer, soit en demander
la répétition. Dans le cas où peu d’erreurs surviennent,
il peut être plus rentable d’ajouter quelques données
supplémentaires pour corriger ces erreurs, en particulier
pour une transmission du type « Radiodiffusion ».
On utilise alors des algorithmes de détection et de
correction dont les performances se mesurent au rapport Figure 1 : Organigramme logiciel d’un encodage
entre le nombre d’erreurs corrigées et le nombre d’octets de Hamming {12,8}
ajoutés.
Les habitués de la programmation sur microcontrôleur
LES CODES DE HAMMING
n’auront aucun mal à implanter cet algorithme dans
Un code correcteur d’erreur permet de reconstituer le leur langage. Noter que le résultat est sur 12 bits car le
message émis même si des erreurs (en nombre limité) deuxième quartet de AH reste toujours à zéro.
ont altéré le message, constitué ici de bits {0,1}. La figure 2 montre l’organigramme de la routine du
Chaque mot de longueur m est codé par un mot de décodage.
longueur n avec n > m. Parmi les n bits du mot-codé, m
bits reproduisent le mot-source, les n-m autres sont les
bits de correction.
Le rendement est égal à n/m et l’efficacité est égale à
(n-m) / m.
Les codes de Hamming pour lesquels n = 2 -1 et
k
m = n-k, permettent de corriger une erreur. Avec k=3,
nous avons le code 7-4, avec k=4, le code 15-11 et avec
k=5 le code 31-26. Le rendement est respectivement de
57 %, 73 % et 84 %. Mais bien sûr, plus m est grand et plus Figure 2 : Organigramme logiciel du décodage de
il risque d’y avoir plusieurs erreurs. Hamming {12,8}
Un bon compromis consiste à prendre k=4.
A la sortie de la routine, le registre DL contient les
Les données informatiques sont organisées en blocs 4 bits du syndrome. Si ce dernier vaut zéro, alors il
d’octets comportant donc 8 bits. Il est alors plus simple n’y a aucune erreur dans le mot de 12 bits et les 8 lsb
(1)
pour k=4 de prendre un code 12-8 , composé d’un octet constituent l’octet de la donnée. Sinon, la valeur du
de donnée plus un quartet de contrôle. Le rendement syndrome va donner la position du bit erroné dans le mot
passe de 73 % à 67 %, ce qui n’est pas trop cher payé. de 12 bits. Après correction de l’erreur dans le fichier des
Exemple de mise en œuvre (code 12-8) : données reçues, on effectue un second décodage et si le
syndrome n’est toujours pas nul, c’est qu’il y a plus d’une
Elle comprend trois parties : l’encodage, le décodage et erreur. Alors on remet le mot original dans le fichier en
la correction éventuelle d’une erreur. espérant que les erreurs soient dans les 4 bits du mot
La figure 1 montre l’organigramme de la routine de codage. C’est le contrôle final du bloc à l’aide d’un
d’encodage. CRC qui tranchera. La figure 3 montre l’organigramme
logiciel de la correction d’erreur selon cet algorithme.
33