AccueilđŸ‡«đŸ‡·Chercher

Code de Hadamard

Le code de Hadamard est un code correcteur, nommĂ© d'aprĂšs Jacques Hadamard, Ă  taux de transfert extrĂȘmement faible mais Ă  grande distance, couramment utilisĂ© pour la dĂ©tection et la correction d'erreurs lors de la transmission de messages sur des canaux trĂšs bruyants ou peu fiables.

Matrice du code de Hadamard augmenté [32, 6, 16] pour le code de Reed-Muller (1, 5) de la sonde spatiale Mariner 9 de la NASA

Dans la notation standard de la thĂ©orie du codage pour les codes en bloc, le code de Hadamard est un code , c'est-Ă -dire un code linĂ©aire sur un alphabet binaire, a une longueur de bloc de , la longueur (ou la dimension) du message , et une distance minimale . Bien que la longueur du bloc soit trĂšs grande par rapport Ă  la longueur du message, les erreurs peuvent ĂȘtre corrigĂ©es mĂȘme dans des conditions extrĂȘmement bruyantes.

Ce code étant localement déchiffrable, c'est-à-dire qu'il est possible de récupérer des parties du message original avec une forte probabilité, tout en ne disposant que d'une petite fraction du message reçu, il possÚde de nombreuses applications dans la théorie de la complexité des calculs et en particulier dans la conception de preuves vérifiables par probabilité. De plus, comme la distance relative du code de Hadamard est de 1/2, il est en théorie possible de récupérer des messages avec au maximum 1/4 de bits erronés. Cependant, en utilisant le décodage par liste, il est possible de calculer une courte liste de messages candidats possibles tant que moins de des bits du message reçu ont été corrompus.

Grùce à ses propriétés mathématiques uniques, les codes Hadamard sont intensément étudiés dans des domaines tels que la théorie du codage, les mathématiques et l'informatique théorique, outre ses applications dans de nombreuses technologies et industries.

Histoire

Bien que Jacques Hadamard n'ait pas inventĂ© le code lui-mĂȘme, il a dĂ©fini la matrice de Hadamard vers 1893, bien avant que le premier code correcteur, le code de Hamming, ne soit dĂ©veloppĂ© dans les annĂ©es 1940.

Le code de Hadamard est basĂ© sur des matrices de Hadamard, et bien qu'il y ait beaucoup de matrices de Hadamard diffĂ©rentes qui pourraient ĂȘtre utilisĂ©es, normalement seulement la construction de Sylvester des matrices de Hadamard est utilisĂ©e pour obtenir les mots de code du code de Hadamard.

James Joseph Sylvester a développé sa construction, similaire aux matrices d'Hadamard, en 1867, ce qui est de fait antérieur aux travaux d'Hadamard sur les matrices d'Hadamard. Le nom de code de Hadamard est donc contesté et parfois le code est appelé code Walsh, en l'honneur du mathématicien américain Joseph Leonard Walsh.

Constructions

Normalement, les codes Hadamard sont basés sur la construction de matrices Hadamard par Sylvester, mais le terme " code de Hadamard " est également utilisé pour désigner les codes construits à partir de matrices Hadamard arbitraires, qui ne sont pas nécessairement de type Sylvester. Le lien entre les matrices Hadamard et la théorie de la construction du code a été trouvé pour la premiÚre fois par R. C. Bose et S. S. Shrikhande en 1959[1].

Si est la taille de la matrice Hadamard, le code a les paramÚtres , ce qui signifie que c'est un code binaire pas nécessairement linéaire avec des mots de code de longueur de bloc et de distance minimale .

Les constructions et schémas de décodage décrits ci-dessous s'appliquent pour le général, mais la propriété de linéarité et l'identification avec les codes Reed-Muller exigent que soit une puissance de 2 et que la matrice Hadamard soit équivalente à la matrice construite par la méthode

Construction utilisant des produits scalaires

Lorsqu'il reçoit un message binaire de longueur , le code de Hadamard encode le message en un mot de code à l'aide d'une fonction d'encodage Cette fonction utilise le produit scalaire de deux vecteurs , qui est défini comme suit:

Ensuite, l'encodage Hadamard de est défini comme la séquence de produits scalaires tous avec :

Construction utilisant une matrice de générateur

Le code de Hadamard est un code linĂ©aire, et tous les codes linĂ©aires peuvent ĂȘtre gĂ©nĂ©rĂ©s par une matrice de gĂ©nĂ©rateur . Cette matrice est telle que est valable pour tous les , oĂč le message est vu comme un vecteur ligne et le produit vecteur-matrice est compris dans le espace vectoriel sur le champ fini. . En particulier, une maniĂšre Ă©quivalente d'Ă©crire la dĂ©finition interne du produit pour le code de Hadamard consiste Ă  utiliser la matrice du gĂ©nĂ©rateur dont les colonnes sont constituĂ©es de chaĂźnes de caractĂšres " toutes " de longueur , c'est-Ă -dire,

oĂč est le -iĂšme vecteur binaire dans ordre lexicographique. Par exemple, la matrice gĂ©nĂ©ratrice pour le code de Hadamard de dimension est:

La matrice est une matrice et donne lieu à l'opérateur linéaire .

Une autre façon de définir le code de Hadamard est en termes de matrice de contrÎle de parité : la matrice de contrÎle de parité du code de Hadamard est égale à la matrice de génération du code de Hamming.

Construction utilisant des matrices Hadamard générales

Les codes Hadamard généralisés sont obtenus à partir d'un matrice de Hadamard . En particulier, les mots de code du code sont les lignes de et les lignes de . Pour obtenir un code sur l'alphabet , le mapping , , ou, de maniÚre équivalente, , est appliqué aux éléments de la matrice. Le fait que la distance minimale du code soit découle de la propriété de définition des matrices de Hadamard, à savoir que leurs lignes sont mutuellement orthogonales. Cela implique que deux lignes distinctes d'une matrice Hadamard diffÚrent exactement par leurs positions , et, comme la négation d'une ligne n'affecte pas l'orthogonalité, que toute ligne de diffÚre de toute ligne de par ses positions également, sauf lorsque les lignes correspondent, auquel cas elles diffÚrent par leurs positions .

Distance

La distance d'un code est le minimum distance de Hamming entre deux mots de code distincts, c'est-à-dire le nombre minimum de positions auxquelles deux mots de code distincts diffÚrent. Comme le code de Hadamard est un code linéaire, la distance est égale au minimum poids de Hamming entre tous ses mots-codes non nuls.

Dans les lignes qui suivent, nous allons demonstrer que a un poids Ă©gal Ă  . ConsidĂ©rons un message . Soit sa iĂšme entrĂ©e est codĂ© comme , oĂč est la reprĂ©sentation binaire de , c'est-Ă -dire qu'il contient tous les vecteurs de . Notez Ă©galement que le -iĂšme bit des mots de code c est . Regrouper toutes les colonnes de la matrice du gĂ©nĂ©rateur en paires de sorte que (c'est-Ă -dire que v et u sont les mĂȘmes sauf en position iĂšme). Notez que cela partitionne toutes les colonnes en paires disjointes . Ensuite,

Ainsi, nous avons exactement celui de et est 1. Comme le choix de la paire était arbitraire, nous avons prouvé que pour tout mot de code c non nul tel que .

Localement déchiffrable

Un code localement dĂ©chiffrable est un code qui permet de rĂ©cupĂ©rer un seul bit du message original avec une forte probabilitĂ© en ne regardant qu'une petite partie du mot reçu. Plus formellement, le problĂšme de dĂ©chiffrement local peut ĂȘtre dĂ©crit comme :

DĂ©chiffrement local : Soit un code et la carte de codage soit . Étant donnĂ© et tel que pour quelques . Trouve .

Une question naturelle à se poser serait si on doit le faire tourner pendant le temps ? Et la réponse à cette question est non. Pour pouvoir répondre à cette question, nous allons mesurer la complexité d'un algorithme de déchiffrement basé sur le nombre d'emplacements interrogés par l'algorithme à partir du mot entré/reçu.

Selon le modÚle d'accÚs aléatoire, c'est-à-dire que l'accÚs à un emplacement donné dans un mot reçu est compté comme une opération. Nous définirons une classe de codes décodables basée sur le nombre d'emplacements auxquels un algorithme doit accéder afin de récupérer un emplacement donné d'un message et une fraction des erreurs qu'il peut tolérer.

Définition (()-code déchiffrement localement). , avec une carte de codage , est (t,)-code localement déchiffrable s'il existe un algorithme tel que pour tous les messages , et tel que ,

et accÚde au maximum aux coordonnées de à partir de .

Algorithme

  1. Choisissez uniformément au hasard
  2. RequĂȘte Ă  la position marquĂ©e par et
  3. Sortie

Analyse

Une fois reçue la sortie de l'algorithme ci-dessus, nous pouvons obtenir :

mod

mod

mod

S'il n'y a pas d'erreur aux positions et , alors il est possible de récupérer le bit de . Puisque , la probabilité d'erreur à une seule position est . Par l'Inégalité de Boole, la probabilité d'obtenir une erreur à et n'est pas supérieure à la somme des probabilités des deux événements, dans ce cas particulier étant . Au total, la probabilité de déterminer le bit par du message est supérieure au complément d'obtention d'une erreur, c'est-à-dire .

Optimalité

Pour les codes Hadamard linéaires se sont avérés optimaux dans le sens de la distance minimale[2].

Applications réelles

Le 14 novembre 1971, le vaisseau spatial Mariner 9 est entré en orbite autour de Mars et a commencé à prendre des photos. Un code de Hadamard amélioré a été utilisé pendant la mission pour corriger les erreurs de transmission des images. Les mots de données utilisés au cours de cette mission étaient de 6 bits, ce qui représentait 64 valeurs de niveaux de gris. En raison des limites de la qualité de l'alignement de l'émetteur à ce moment-là (à cause des problÚmes de la boucle de poursuite du Doppler), la longueur maximale des données utiles était d'environ 30 bits. Au lieu d'utiliser un code de répétition, une code de Hadamard a été utilisé.

Notes et références

  1. Richard Hamming error-detecting and error-correcting codes Bell System Technical Journal 29(2):147-160, 1950
  2. Iliya Bouyukliev et David B. Jaffe, « Optimal binary linear codes of dimension at most seven », Discrete Mathematics, vol. 226, no 1,‎ , p. 51–70 (ISSN 0012-365X, DOI 10.1016/S0012-365X(00)00125-4, lire en ligne, consultĂ© le )

Liens externes

Bibliographie

  • (en) Amadei M., Manzoli U. et Merani, M.L. On the assignment of Walsh and quasi-orthogonal codes in a multicarrier DS-CDMA system with multiple classes of users, IEEE, 2002, (ISBN 0-7803-7632-3)
  • (en) Arora S. et Barak B., Computational Complexity: A Modern Approach, Cambridge University Press, 2009, (ISBN 9780521424264)
Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.