DĂ©codage par syndrome
Le décodage par syndrome est une méthode de décodage destinée aux codes linéaires. Il utilise une table, appelée tableau standard, pour effectuer le décodage. Il est utilisable lorsque la redondance du code n'est pas trop grande : la taille de la table est exponentielle en la redondance.
Le principe est le suivant : à la réception d'un mot x, la matrice de contrÎle permet de déterminer si une altération a été commise. Si tel est le cas, la matrice de contrÎle fournit une quantité appelée syndrome ; le tableau standard offre une correspondance entre ce syndrome et la correction e à apporter. Le message corrigé est alors égal à x - e.
Contexte
Code correcteur
Un code correcteur possÚde pour objectif la détection ou la correction d'erreurs aprÚs la transmission d'un message. Cette correction est permise grùce à l'ajout d'informations redondantes. Le message est plongé dans un ensemble plus grand, la différence de taille contient la redondance, l'image du message par le plongement est transmis. En cas d'altération du message, la redondance est conçue pour détecter ou corriger les erreurs. Un exemple simple est celui du code de répétition, le message est, par exemple, envoyé trois fois, le décodage se fait par vote. Ici, l'ensemble plus grand est de dimension triple à celle du message initial.
Code linéaire
Rappelons les Ă©lĂ©ments de base de la formalisation. Il existe un espace vectoriel E constituĂ© de suites Ă valeurs dans un corps fini Fd et de longueur k, câest-Ă -dire qu'Ă partir du rang k, toutes les valeurs de la suite sont nulles. Ces Ă©lĂ©ments sont l'espace des messages que l'on souhaite communiquer. Pour munir le message de la redondance souhaitĂ©e, il existe une application linĂ©aire Ï injective de E Ă valeurs dans F, l'espace des suites de longueur n Ă valeurs dans Fd. La fonction Ï est appelĂ©e encodage, Ï(E) aussi notĂ© C est appelĂ© le code, un Ă©lĂ©ment de Ï(E) mot du code, n la longueur du code et k la dimension du code. Ces notations sont utilisĂ©es dans tout l'article.
Capacité de correction
Distance de Hamming
La distance de Hamming est l'outil de base de la correction des erreurs. Elle s'exprime comme une distance issue d'une pseudo-norme. Le poids de Hamming, qui à un code associe le nombre de coordonnées non nulles, joue ici le rÎle de pseudo-norme.
- Si Ï dĂ©signe le poids de Hamming pour un code linĂ©aire C, alors la distance de Hamming d est dĂ©finie par la formule suivante:
La linéarité de la structure sous-jacente introduit une propriété directe:
- La distance minimale ÎŽ entre deux points du code est Ă©gale au minimum du poids des mots du code non nuls.
Pour s'en convaincre, il suffit de remarquer que si x et y sont deux mots du code, alors leur différence est aussi un mot du code.
Ainsi, si un message reçu x n'est pas un mot de code, alors des altérations se sont produites durant la transmission. L'objectif est de trouver l'élément e de F de plus petit poids de Hamming, tel que x - e est un mot du code. Si la probabilité de recevoir p erreurs lors d'une transmission est une fonction décroissante de p, alors la correction est la plus probable.
Code parfait
Le nombre maximum d'erreurs assurĂ©ment corrigibles t dĂ©coule directement de la distance minimale ÎŽ. En effet, t est le plus grand entier strictement infĂ©rieur Ă ÎŽ/2. La situation idĂ©ale est celle oĂč les boules fermĂ©es de centre les mots du code et de rayon t forment une partition de F. On parle alors de parfait.
Si le message reçu contient plus de t erreurs, une alternative se présente :
- Dans la mesure du possible, par exemple pour la téléphonie mobile une demande de retransmission est faite en temps masqué.
- Sinon, par exemple dans le cas du disque compact, un mot du code proche et aléatoirement choisi est sélectionné.
Fonctionnement détaillé
Décodage et linéarité
La linéarité simplifie grandement le décodage. Pour s'en rendre compte, le plus simple est d'étudier un exemple. Considérons un code utilisé par le minitel, binaire de longueur 127 de dimension 120 et de distance minimale 3 et parfait. Si un message m est codé puis envoyé au récepteur, un élément x de F est reçu, susceptible d'erreur.
Le nombre t d'erreurs maximales assurĂ©ment corrigibles est le plus grand entier strictement infĂ©rieur Ă 3/2 câest-Ă -dire t = 1. Comme le code est parfait, les boules fermĂ©es de centre les mots du code et de rayon un forment une partition de F. En consĂ©quence, x s'Ă©crit de maniĂšre unique sous la forme c + e oĂč c est un mot du code et e un Ă©lĂ©ment de F de poids infĂ©rieur ou Ă©gal Ă un. Si la probabilitĂ© d'obtenir p erreurs durant la transmission est une fonction dĂ©croissante de p, c est probablement Ă©gal Ï(m).
L'ensemble des valeurs possibles de e est relativement faible, ici comme le code est binaire, soit e est le vecteur nul, et aucune correction n'est Ă apporter, soit e est de poids un, câest-Ă -dire que e est le message ne contenant que des zĂ©ros sauf sur une des 127 coordonnĂ©es qui vaut un. Il n'existe finalement que 128 cas d'erreurs dans un espace contenant 2127 Ă©lĂ©ments.
La linéarité permet de se limiter à la connaissance de l'unique boule fermée de centre zéro et de rayon t, soit dans l'exemple à une boule de 128 points. Dans le cas général, une boule fermée de rayon t a pour cardinal Vt (cf borne de Hamming):
Implémentation
La théorie des codes correcteurs affirme l'existence d'une application linéaire surjective de F dans un espace de dimension n - k dont la matrice H est appelée matrice de contrÎle et dont le noyau est le code. En conséquence, on dispose des égalités suivantes :
Dans le cas d'un code parfait, la restriction de H à la boule fermée de centre le vecteur nul et de rayon t est une bijection. Ici, la matrice H est identifiée à son application linéaire. Dans le cas du minitel, la boule unité contient 128 points, l'ensemble d'arrivée de H est un espace de dimension 7 et donc aussi de cardinal 128.
- L'élément H.tx est appelé syndrome du point x de F.
La donnée d'une table, dite tableau standard associant à chaque syndrome son unique antécédent par H dans la boule de centre le vecteur nul et de rayon t, permet le décodage. La correction d'erreurs consiste à soustraire l'antécédent e à l'élément de F reçu. Le mot du code recherché est c = x - e. L'implémentation informatique de cette méthode utilise une table de hachage et constitue une méthode rapide de décodage.
Dans le cas général, en plus de la valeur t du nombre maximal d'erreur assurément corrigibles, il est nécessaire de considérer la plus petite valeur s tel que les boules fermées de centre les points du code et de rayon s forment un recouvrement de F. Un code est parfait si et seulement si s est égal à t. H possÚde alors les propriétés suivantes :
- La restriction de H Ă la boule de centre le vecteur nul et de rayon t est injective, la restriction de H Ă la boule de centre le vecteur nul et de rayon t est surjective.
Il existe alors deux mĂ©thodes de dĂ©codages si H.tx n'admet pas d'antĂ©cĂ©dent dans la boule fermĂ©e de rayon t, soit une nouvelle demande de transmission est rĂ©alisĂ©e, soit un antĂ©cĂ©dent est choisi alĂ©atoirement dans la boule fermĂ©e de rayon s, et la mĂ©thode reste la mĂȘme. Dans tous les cas, le tableau standard contient dn-k entrĂ©es oĂč d est le cardinal du corps fini.
Limite de l'approche
L'approche du dĂ©codage par syndrome est adaptĂ©e aux petits codes, câest-Ă -dire ceux oĂč le nombre t d'erreurs assurĂ©ment corrigibles n'est pas trop important. On peut citer par exemple certains protocoles utilisĂ©s par internet comme le TCP ou encore le minitel qui utilise un code parfait de longueur 127 et de distance minimale Ă©gale Ă 7.
En revanche, un code possĂ©dant une redondance forte, et capable de rĂ©sister Ă des effacements importants, ne peut utiliser cette technique de dĂ©codage. La norme utilisĂ©e par la sociĂ©tĂ© Philips pour le code des disques compacts est Ă mĂȘme de restituer 4096 bits manquants. La capacitĂ© de stockage d'un lecteur est largement trop faible pour stocker les syndromes. D'autres techniques, essentiellement fondĂ©es sur l'Ă©tude des polynĂŽmes formels Ă coefficients dans un corps fini reprĂ©sentent les approches les plus utilisĂ©es par l'industrie.
Voir aussi
Liens externes
- Code Linéaire par G. Zemor, université de Bordeaux
- Cours de code par Christine Bachoc, université de Bordeaux
- Code correcteur par M. Coste, A. Paugam, R. Quarez, université de Lille
Bibliographie
- (en) Jessie MacWilliams et Neil Sloane, The Theory of Error-Correcting Codes, North-Holland, 1977, (ISBN 978-0-444-85009-6)
- A. SpÄtaru, Fondements de la thĂ©orie de la transmission de l'information, - (Ă©d. PPUR, 1987) - (ISBN 978-2-88074-133-4)