Movatterモバイル変換


[0]ホーム

URL:


Aller au contenu
Wikipédial'encyclopédie libre
Rechercher

Code de Hamming

Un article de Wikipédia, l'encyclopédie libre.
Page d’aide sur l’homonymie

Pour les articles homonymes, voirHamming.

Uncode de Hamming est uncode correcteurlinéaire. Il permet la détection et la correction automatique d'une erreur si elle ne porte que sur une lettre du message.

Un code de Hamming estparfait : pour une longueur de code donnée il n'existe pas d'autre code plus compact ayant la même capacité de correction. En ce sens son rendement est maximal.

Il existe une famille de codes de Hamming ; le plus célèbre et le plus simple après lecode de répétition binaire de dimensiontrois et de longueurun est sans doute le codebinaire de paramètres[7,4,3]. Pour chaque alphabet ayant pour nombre de lettres une puissance d'unnombre premier et pour chaque longueurl de code il existe un code de Hamming utilisant cet alphabet et de longueur au moins égal àl.

Plusieurs méthodes permettent de construire un code de Hamming. Une approche consiste à rechercher lescodes cycliques dedistance minimale égale à trois, le code apparait alors comme un cas particulier decode BCH. Il est aussi possible d'utiliser uniquement les outils de l'algèbre linéaire et particulièrement la théorie desmatrices.

Histoire

[modifier |modifier le code]

Depuis 1946Richard Hamming(1915-1998) travaille sur un modèle decalculateur àcarte perforée de faible fiabilité. Si, durant la semaine, des ingénieurs pouvaient corriger les erreurs, les périodes chômées comme la fin de semaine voient les machines s'arrêter invariablement sur desbugs. La frustration[1] de Hamming le conduit à inventer le premier code correcteur véritablement efficace.

Cette période correspond à la naissance de lathéorie de l'information.Claude Shannon(1916, 2001) formalise cette théorie comme une branche des mathématiques[2]. Hamming développe[3] les prémisses de la théorie des codes et décrit sa solution comme un exemple.

En 1960, deux mathématiciens R. C. Bose, D. K. Ray-Chaudhuri montrent[4] que des idéaux de l'anneau des polynômes sur les corps finis decaractéristique deux sont particulièrement adaptés. La théorie est généralisée[5] par le mathématicien A. Hocquenghem et donne naissance à la famille decodes BCH. Les codes de Hamming binaires apparaissent immédiatement comme des codes BCH.

Contexte

[modifier |modifier le code]

Code correcteur

[modifier |modifier le code]
Article détaillé :Code correcteur.

L'objectif d'un code correcteur est la détection ou la correction d'erreurs après la transmission d'unmessage. Cette correction est permise grâce à l'ajout d'informations redondantes. Le message estplongé dans un ensemble plus grand, la différence de taille contient la redondance, l'image du message par le plongement est transmise. En cas d'altération du message, la redondance est conçue pour détecter ou corriger les erreurs. Un code de Hamming procède de cette logique, la redondance permet exactement la correction d'une altération sur une unique lettre du message.

Rappelons les éléments de base de la formalisation. Il existe un ensembleE constitué desuites de longueurk à valeurs dans un alphabet de tailled, c’est-à-dire qu'à partir du rangk, 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 uneapplication φinjective deE à valeurs dansF, l'espace des suites de longueurn et à valeurs dans un alphabet. La fonction φ est appeléeencodage, φ(E) aussi notéC est appelé lecode, un élément de φ(E)mot du code,k la longueur du code etn la dimension du code. Ces notations sont utilisées dans tout l'article.

Code linéaire

[modifier |modifier le code]
Article détaillé :Code linéaire.

Uncode linéaire dispose d'unestructurealgébrique plus riche que celle du cadre général des codes correcteurs.

Les alphabetsA etA' sont identifiés et munis d'une structure decorps fini. Le cas le plus fréquent consiste à choisir le corpsF2 ou l'une de sesextensions finies, on parle alors d'alphabetbinaire.

Les ensemblesE etF sont naturellement munis d'une structure d'espace vectoriel de dimension respectivesk etn. SiFd désigne lecorps fini de cardinaldd est une puissance d'unnombre premierp, alors l'espace vectoriel finiF est généralement identifié àFdn.

F est muni d'unedistance qui dérive dupoids de Hamming. La distance entre deux points deF correspond au nombre de coordonnées non nulles de la différence entre les deux points, dans labase canonique. Un code se décrit par trois paramètres, noté [n,k, δ],n est la longueur du code,k la dimension du code et δ la distance minimale entre deux mots du code. Enfin, l'application d'encodage φ est choisielinéaire, le code est donc unsous-espace vectoriel.

Un code de Hamming est un code linéaire, dont la distance minimale δ est égale àtrois. Ces notations sont utilisées dans le reste de l'article.

Code parfait

[modifier |modifier le code]
Article détaillé :Code parfait.

Usuellement, on considère que le mot de code émis est celui se trouvant le plus près du mot reçu, ce qui revient à supposer que le minimum de lettres a été modifié. Ce procédé conduit à une erreur de décodage chaque fois que l'erreur est supérieure à la capacité corrective du code. La question naturelle est celle de la valeur det correspondant au nombre maximum d'erreurs corrigibles.

Une interprétation géométrique donne un élément de réponse. Lesboules fermées de rayont centrées sur les mots de code doivent être disjointes. La capacité de correction d'un code correspond au plus grand entiert vérifiant cette propriété, c'est aussi le plus grand entier strictement plus petit que δ/2, ce qui donne une valeur égale àun dans le cas d'un code de Hamming. Elle permet de définir une première majoration, appeléeborne de Hamming :

1+n.(d1)dnk{\displaystyle 1+n.(d-1)\leq d^{n-k}}

Il existe une configuration idéale, correspondant au cas où les boules fermées de rayonun et de centre les mots du code forment unepartition de l'espaceF. Si la transmission ne produit jamais plus d'une altération, alors l'erreur est corrigible. Il n'existe aucune redondance inutile, le code est le plus compact possible pour garantir la correction certaine d'une erreur. Pour de tels codes, la majoration de la borne de Hamming est une égalité. Ils sont ditsparfaits. Ce qui donne lieu à la définition suivante :

  • Uncode de Hamming est un code linéaireparfait de distance minimale égale àtrois.

Paramètres du code

[modifier |modifier le code]

Détermination

[modifier |modifier le code]

Un code est parfait, si et seulement si la borne de Hamming est atteinte. Cette propriété permet la détermination des paramètres possibles pour un code de Hamming. Notonsm la valeur den -k. On dispose alors des égalités :

1+n(d1)=dmdoncn=dm1d1{\displaystyle 1+n\cdot (d-1)=d^{m}\quad {\text{donc}}\quad n={\frac {d^{m}-1}{d-1}}}

L'égaliték =n -m et le fait que la distance minimale d'un code de Hamming est égal à trois démontre la propriété suivante :

  • Pour tout code de Hamming sur un corps fini de cardinald, il existe un entierm supérieur ou égal à deux, tel que les paramètres du code soient :
[dm1d1,dm1d1m,3]{\displaystyle \left[{\frac {d^{m}-1}{d-1}},{\frac {d^{m}-1}{d-1}}-m,3\right]}

La propriété correspond à une condition nécessaire. Cependant, pour toute valeur ded et dem, la suite de l'article démontre qu'il existe un unique code de Hamming, à une équivalence près. La condition est donc aussi suffisante.

Polynôme énumérateur des poids

[modifier |modifier le code]
Article détaillé :Identité de Mac Williams.

Le polynôme énumérateur des poidsP[X] est le polynôme dont le coefficientpi du monômeXi est égal au nombre de mots du code de poids de Hamming égal ài. L'identité de Mac Williams permet son calcul(cf article détaillé). Il est égal à :

P[X]=1dm((1+(d1)X)n+(dm1)(1+(d1)X)ndm1(1X)dm1){\displaystyle P[X]={\frac {1}{d^{m}}}{\Bigg (}{\Big (}1+(d-1)X{\Big )}^{n}+(d^{m}-1){\Big (}1+(d-1)X{\Big )}^{n-d^{m-1}}(1-X)^{d^{m-1}}{\Bigg )}\;}

Exemple : code de répétition

[modifier |modifier le code]
Article détaillé :code de répétition.

Le cas le plus simple est sans conteste celui oùd est égal àdeux, c’est-à-dire celui où le code est binaire etm est aussi égal à deux. On obtient un code de paramètre [3,1,3].

Les messages sont constitués d'une lettre, par exemple0, les codes d'une triple répétition de la lettre soit000 dans l'exemple. Comme l'alphabet ne contient que deux lettres, deux au moins sur trois des lettres d'un élément deF sont semblables, en conclusion tout mot deF est à distance deun d'un mot du code. De plus, un mot deF n'est à une distance d'au plusun que d'un unique mot du code, ce qui démontre que ce code estparfait.

Cette propriété tombe si le code contient plus de deux lettres, en effet il existe des éléments deF constitués de trois lettres différentes et donc à distance dedeux de trois mots différents du code et à distance deun d'aucun mot du code. On remarque aussi que la formule des paramètres, sid est différent de deux n'est plus vérifiée.

Exemple : le cas binaire de longueur quatre

[modifier |modifier le code]
Article détaillé :Code de Hamming (7,4).
Description du code de Hamming binaire de paramètre [7,4,3]

Les codes correcteurs réellement utilisés dans l'industrie sont plus complexes que les précédents. Le plus simple est celui de paramètres [7,4,3].

C'est un code de dimensionsept, c’est-à-dire que le récepteur reçoitseptbits, de longueurquatre c’est-à-dire qu'une fois décodé, le message contientquatre lettres et la distance minimale entre chaque mot de code esttrois.

La figure de droite est une représentation graphique de ce code. Le message est le motd1d2d3d4. Le mot du code est constitué de troissommes de contrôlesp1p2p3, puis des quatre lettres du mot du message. La valeur depi est égale àzéro si la somme des trois lettres du message incluses dans son cercle sur la figure est paire etun sinon.

On remarque que la somme des éléments de chaque cercle est paire si et seulement si l'élément est un mot du code. De plus, chaque élément deF est à une distance deun d'un mot du code. En conséquence, ce code est parfait et possède une capacité maximale de correction d'une erreur.

Cet exemple, le plus simple présentant une solutionnon évidente, présente une approche à même de démontrer l'existence et l'unicité d'une solution pour toutes les valeurs dem dans le cas d'un code binaire.

Approche linéaire

[modifier |modifier le code]

Matrice de parité

[modifier |modifier le code]
Article détaillé :Matrice de contrôle.

Il existe une application linéairesurjective deF dans un espace de dimensionn -k ayant pour noyau exactement le code :

  • Unematrice de contrôle d'un code φ(E) est une matriceH de dimensionnx(n -k) tel que :
xφ(E)H.tx=0{\displaystyle x\in \varphi (E)\Leftrightarrow H.^{t}x=0}

Cette application est essentielle à la fois sur le plan de l'implémentation, car elle permet une détection et une correction simple (cfdécodage par syndrome) et sur celui de la construction d'un code.

Il existe une relation directe entre la matrice de contrôle et la distance minimale du code :

  • La distance minimale δ d'un code linéaire est égale à la dimension du plus petit sous-espace vectorielS deF généré par des éléments de la base canonique et tel que la restriction de la matrice de contrôle àS soit noninjective.

La distance minimale est donc supérieure ou égale à trois si, et seulement si, deuxvecteurs colonnes quelconques sontlibres. Cette propriété permet de résoudre le cas binaire pour toutes les valeurs dem.

Remarque :Pour le reste de l'articleH désigne la matrice de parité.

Exemple : cas binaire de paramètres [15,11,4]

[modifier |modifier le code]

Matrice de contrôle

[modifier |modifier le code]

Dans le cas binaire avec pour valeur demquatre, la matrice de contrôle est de dimension 15x4, c’est-à-dire qu'elle contient quinze colonnes et quatre lignes. Pour obtenir une distance minimale au moins égale à trois, chaque colonne doit être différente. En effet, une colonne correspond au syndrome d'un vecteur de labase canonique deF, c’est-à-dire à un message depoidsun. Si deux colonnes sont semblables, alors le messagem, de poids deux dont les coordonnées valentzéro partout sauf pour les deux colonnes égales où les coordonnées valentun, vérifieHtm = 0. En effet, dans un corps binaire 1 + 1 est égal à 0. Il existerait alors un mot du code de poidsdeux, en conséquence la distance minimale ne peut être égale àtrois. De même, aucun vecteur colonne ne peut être nul, sinon, un vecteur de la base canonique de poidsun serait élément du code.

Or, il n'existe quequinze vecteurs dans l'ensemble d'arrivée de la matrice de contrôle. À l'ordre près, il n'existe donc qu'une unique matrice de contrôle possible pour ce cas, correspondant à la suite des nombres deun à quinze en binaire. SiH est choisi de telle manière à représenter un code systématique alors on obtient :

H=(000011111111000011100011110100101101100110010110110101010001){\displaystyle H={\begin{pmatrix}0\quad 0\quad 0\quad 0\quad 1\quad 1\quad 1\quad 1\quad 1\quad 1&1\quad 1\quad 0\quad 0\quad 0\\0\quad 1\quad 1\quad 1\quad 0\quad 0\quad 0\quad 1\quad 1\quad 1&1\quad 0\quad 1\quad 0\quad 0\\1\quad 0\quad 1\quad 1\quad 0\quad 1\quad 1\quad 0\quad 0\quad 1&1\quad 0\quad 0\quad 1\quad 0\\1\quad 1\quad 0\quad 1\quad 1\quad 0\quad 1\quad 0\quad 1\quad 0&1\quad 0\quad 0\quad 0\quad 1\end{pmatrix}}}

L'analyse précédente montre qu'il est nécessaire qu'une matrice de contrôle d'un code de distance minimale égale à trois ait cette forme. Réciproquement cette forme est suffisante pour garantir que la distance minimale soit effectivement égale à trois. En effet, aucun message de poidsun n'est élément du code (un message de poidsun est un élément de la base canonique) car leurs images parH est un vecteur non nul. Et aucun message de poidsdeux (un message de poidsdeux est la somme de deux éléments de la base canonique) n'est élément du code. En effet, ils auraient même image parH car deux vecteurs sont colinéaires si et seulement s'ils sont égaux dans le cas d'un corps binaire, or les vecteurs colonnes sont tous différents.

Matrice génératrice

[modifier |modifier le code]
Article détaillé :Matrice génératrice.

La matrice de contrôle définit totalement la géométrie du code, il suffit donc, pour terminer l'implémentation de trouver une matrice génératriceG deE dansF. L'application linéaire associée doit vérifier deux conditions : elle estinjective, et son image est lenoyau deH. Il suffit donc de trouver une matrice de rang 11 tel queH.G = 0 La construction de la matriceG est simplifiée dans le cas oùH représente un code systématique, siIdq lamatrice identité d'ordreq :

G=(IdkC)H=(CIdnk)H.G=(CIdnk)(IdkC)=0nkk{\displaystyle G={Id_{k} \choose C}\quad \quad H=(-C\;Id_{n-k})\Rightarrow H.G=(-C\;Id_{n-k})\,{Id_{k} \choose C}=0_{n-kk}}

En remarquant que dans un corps binaire les opérations + et - sont les mêmes, on obtient :

G=(Id11C)avecC=(00001111111011100011111011011001111011010101){\displaystyle G={Id_{11} \choose C}\quad avec\quad C={\begin{pmatrix}0\quad 0\quad 0\quad 0\quad 1\quad 1\quad 1\quad 1\quad 1\quad 1&1\\0\quad 1\quad 1\quad 1\quad 0\quad 0\quad 0\quad 1\quad 1\quad 1&1\\1\quad 0\quad 1\quad 1\quad 0\quad 1\quad 1\quad 0\quad 0\quad 1&1\\1\quad 1\quad 0\quad 1\quad 1\quad 0\quad 1\quad 0\quad 1\quad 0&1\end{pmatrix}}}

Le code est donc composé du message et de quatresommes de contrôle permettant de corriger exactement une erreur.

Cas binaire

[modifier |modifier le code]

Théorème d'existence

[modifier |modifier le code]

La méthode précédente se généralise pour tous les codes de Hamming binaires. Les paramètres du code recherchés sont maintenant [2m - 1, 2m -m - 1, 3]. On peut citer comme exemple d'utilisation de code de cette nature, celui duminitel[6] qui a choisi la valeursept pourm. Ainsi, pour un message de longueur cent vingt,sept sommes de contrôle permettent de corriger toute erreur sur un unique bit.

La matrice de contrôle est de dimensionmx2m - 1. Unecondition nécessaire et suffisante pour que la distance minimale associée soit égale à trois est que tous les vecteurs soit libres deux à deux. C'est le cas s'ils sont non nuls et tous différents. Un espace vectoriel binaire de dimensionm contient exactement 2m - 1 vecteurs non nuls différents. À l'ordre près, il n'existe donc qu'une unique matrice de contrôle associée à une distance minimale égale à trois.

Il est toujours possible de réordonner la matrice de contrôle pour lui donner la forme d'un code systématique. Cette forme permet simplement de calculer la matrice génératrice systématique associée.

  • Sim est un entier supérieur ou égal à deux, il existe un seul code binaire, de paramètres [2m - 1, 2m -m - 1, 3], à une équivalence près. Ces codes forment l'ensemble des codes binaires de Hamming, ils sont parfaits.

Code de Hamming généralisé (dit également 'étendu')

[modifier |modifier le code]

Deux raisons poussent à généraliser le code. Une dimension égale à 2m - 1 n'est pas idéale, en terme industriel. Il est en effet plus commode d'utiliser une dimension de la forme 2m. De plus un tel code corrige une erreur, mais si deux erreurs se produisent, non seulement le code ne le détecte pas, mais en plus il en ajoute une troisième.

Ces deux raisons amènent en général à ajouter une dernière somme de contrôle validant la parité des 2m - 1 premières lettres du code. Une deuxième erreur est alors détectée, même si elle ne peut être corrigée sans nouvelle transmission.

  • Lecode de Hamming généralisé (dit également 'étendu'), de paramètre [2m, 2m -m - 1, 4] correspond à un code de Hamming classique [2m - 1, 2m -m - 1, 3] auquel a été ajouté un bit de parité portant sur les 2m -1 lettres du mot du code.

Corps fini quelconque

[modifier |modifier le code]

Corps fini

[modifier |modifier le code]
Article détaillé :corps fini.

L'utilisation d'autres corps que binaires n'est pas une préoccupation uniquement théorique. Ils sont utilisés pour corriger des effacements qui peuvent être importants. Ils sont utilisés par exemple pour la lecture desdisques compacts pouvant corriger jusqu'à 4096 effacements consécutifs[7].

Tous les corps finis possèdent un cardinal de la formepqp est un nombre premier. L'industrie utilise souvent la valeurp égale à deux. Le code est encore transmis sous forme de bits, la table d'addition reste inchangée, en revanche la multiplication n'est plus la même. On obtient, par exemple pour le corpsF8 à huit éléments la table suivante :

+000001010011100101110111
000000001010011100101110111
001001000011010101100111110
010010011000001110111100101
011011010001000111110101100
100100101110111000001010011
101101100111110001000011010
110110111100101010011000001
111111110101100011010001000
.000001010011100101110111
000000000000000000000000000
001000001010011100101110111
010000010100110011001111101
011000011110101111100001010
100000100011111110010101001
101000101001100010111011110
110000110111001101011010100
111000111101010001110100011

Si la logique linéaire reste la même, en revanche, la modification de la table de multiplication engendre une complexité supplémentaire à l'encodage et au décodage. Le terme précis n'est plus somme de contrôle mais decontrôle de redondance cyclique ou encore CRC.

Exemple: le cas de paramètres [9, 7, 3]

[modifier |modifier le code]

Étudions surF8 le cas oùm est égal àdeux. Il correspond aux paramètres [9, 7, 3]. La matrice de contrôle est de dimension 2x9. Le théorème sur la relation entre la distance minimale et la matrice de contrôle montre que pour bâtir ce code, il suffit de trouverneuf vecteurs dans un espace de dimensiondeux, libres deux à deux. La logique précédente ne s'applique plus, deux vecteurs distincts peuvent être colinéaires, par exemple:

(001,011)=011.(010,001){\displaystyle (001,011)=011.(010,001)\;}

Une matrice de dimension 2x9 est associée à une distance minimale égale à trois si et seulement si chaque vecteur colonne est choisi dans uneclasse de l'espace projectif deF82 différente. Chaque classe d'équivalence de l'espace projectif contientsept éléments (le cardinal du corps moinsun), et l'espace projectif est une partition de l'espace des syndromes sans le vecteur nul, c’est-à-dire un ensemble de cardinal soixante trois. Il existe exactement neuf éléments dans l'espace projectif, exactement le nombre de colonnes dans la matrice de contrôle. La matrice de contrôle est donc encore unique, à l'ordre près et à unehomothétie près pour chaque vecteur colonne. On peut choisir par exemple :

H=(001010100011110101111001000001001001001001001001000001){\displaystyle H={\begin{pmatrix}001&010&100&011&110&101&111&001&000\\001&001&001&001&001&001&001&000&001\end{pmatrix}}}

La même logique que précédemment permet de déterminer la matrice génératrice :

G=(Id7C)avecC=(001001010001100001011001110001101001111001){\displaystyle G={\begin{pmatrix}Id_{7}&C\end{pmatrix}}\quad avec\quad C={\begin{pmatrix}001&001\\010&001\\100&001\\011&001\\110&001\\101&001\\111&001\end{pmatrix}}}

Le code est donc composé du message et deux contrôles de redondance cyclique permettant de corriger exactement une erreur.

Si l'on compte en termes de bit, trois bits sont nécessaires pour coder une lettre. Le code est donc dune longueur 27 bits avec 6 bits de CRC. Si on le compare au code de Hamming binaire de longueur 26 avec 5 bits de parité, le gain n'est pas clair. En pratique, l'utilisation de corps plus vastes est surtout l'objet de codes offrant des redondances beaucoup plus importantes comme ceux deReed-Solomon.

Existence et unicité dans le cas général

[modifier |modifier le code]

Le cas général est proche de l'exemple précédent. L'existence et l'unicité d'un code de Hamming sur un corps de cardinald et pour la valeurm dépend du cardinal de l'espace projectif d'un espace vectoriel sur le corpsFd. L'espace vectorielS des syndromes est de dimensionm. Il contientdm - 1 vecteurs non nuls, le corps contientd - 1 éléments non nuls, l'espace projectif deS est donc de cardinaldm - 1/d - 1. C'est exactement la dimension deF, l'espace des codes. À un ordre près et à une homothétie près sur chaque vecteur de la base canonique deF, il n'existe donc qu'une unique matrice de contrôle. En conclusion :

  • Sid est une puissance d'un nombre premier etm un entier supérieur àdeux, à une équivalence près, il existe un et un seul code de Hamming de paramètres :
[dm1d1,dm1d1m,3]{\displaystyle \left[{\frac {d^{m}-1}{d-1}},{\frac {d^{m}-1}{d-1}}-m,3\right]}

Sa construction est analogue à celle utilisée pour l'exemple précédent.

Code cyclique

[modifier |modifier le code]
Article détaillé :Code cyclique.

Il est possible d'enrichir lastructure algébrique deF d'une structure d'anneau. Cet enrichissement a pour objectif de construire des codes ayant de bonnes propriétés d'optimalité. Les codesBCH ainsi que ceux de Reed-Solomon sont les exemples principaux. Dans le cas binaire, un code de Hamming apparait comme un code cyclique de type BCH.

Pour comprendre cette structure d'anneau, une première remarque est nécessaire. L'extension deF2 de cardinal 2m possède comme groupe multiplicatif ungroupe cyclique d'ordre 2m - 1, on retrouve ici la dimensionn d'un code binaire de Hamming. Tout élément de l'extension est donc racine dupolynômeP[X] =Xn - 1. Un polynôme à coefficients dansF2,K[X] définit une fonction sur l'extension de cardinal 2m. Il existe un et un seul polynômeR[X] de degré strictement inférieur àn et ayant les mêmes valeurs sur cette extension queK[X]. En effet, la division euclidienne donne l'égalité suivante sidR[X] désigne le degré du polynômeR[X] :

K[X]=Q[X].P[X]+R[X]avecdR[X]<n{\displaystyle K[X]=Q[X].P[X]+R[X]\quad avec\quad d\,R[X]<n\;}

La structure d'anneau choisie est alors celle du quotientFd/P[X]. Les codes associés sont lesidéaux de cet anneau.

  • Soitm un entier strictement positif etn un entier défini parn = 2m - 1. Un code linéaire surFd est ditcyclique si l'espace vectoriel est muni de la structure d'anneauFd/P[X], avecP[X] =Xn - 1 et que le code est un idéal deF.

Dire que le code est un idéal revient à dire qu'il est cyclique, c’est-à-dire qu'il vérifie la propriété suivante :

(xn1,xn2,,x1,x0)C(xn2,xn3,,x0,xn1)C{\displaystyle \forall (x_{n-1},x_{n-2},\cdots ,x_{1},x_{0})\in C\quad (x_{n-2},x_{n-3},\cdots ,x_{0},x_{n-1})\in C}

Soit Φn[X] un polynôme cyclotomique d'ordren la dimension du code, et à coefficient dansF2. C'est un polynôme de degrém (cf l'articlePolynôme cyclotomique), de plus :

  • L'idéalC engendré par Φn[X] est un code cyclique de longueurk =n -m.

Il possède labonne distance minimale :

  • L'idéalC engendré par Φn[X] possède une distance minimale égale àtrois.

Ce code cyclique est donc un code binaire de Hamming et tout code binaire de Hamming admet une représentation cyclique.

Les démonstrations se trouvent dans l'article associé.

Notes et références

[modifier |modifier le code]
  1. Présentation du code de Hamming par l'Ecole Polytechnique fédérale de Lausanne
  2. Claude ShannonA mathematical theory of communicationBell System Technical Journal, vol. 27, pp. 379-423 et 623-656, Juil et Oct 1948
  3. Richard HammingError-detecting and error-correcting codes Bell Syst. Tech. J. 29 pp 147 à 160 1950
  4. R. C. Bose and D. K. Ray-ChaudhuriOn a class of error-. correcting. binary group codes Inform. Control, vol. 3, pp. 68-79, Mars 1960
  5. A. HocquenghemCodes correcteurs d'erreurs Chiffre 1959
  6. P. ArnoultMinitel, codage de l'information et corps finis Pour la science N°125 Mars 1988
  7. J.P. ZanottiCodage d'un signal audionumérique sur un support à lecture optique, erreurs au décodage et codes M.S.D Mémoire de D.E.A. Université d'Aix Marseille, 1992

Voir aussi

[modifier |modifier le code]

Bibliographie

[modifier |modifier le code]

Liens externes

[modifier |modifier le code]
v ·m
Articles sur lathéorie des codes en rapport avec lescodes correcteurs
Ce document provient de « https://fr.wikipedia.org/w/index.php?title=Code_de_Hamming&oldid=220396107 ».
Catégories :
Catégories cachées :

[8]ページ先頭

©2009-2025 Movatter.jp