Code cyclique - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Code cyclique et code parfait

Distance minimale et code binaire

Le Minitel 1, sorti en 1982

Dans le cas des codes binaires, les polynômes cyclotomiques d'indice n à coefficients dans F2 engendrent des codes cycliques parfaits, de distance minimale égale à trois. Ce type de code est adapté pour les petites perturbations relativement fréquentes. Chaque mot peut comporter une unique erreur, elle sera corrigée. Un code de cette nature est, par exemple utilisé pour le minitel, c'est un code BCH sur 17 octets.

La théorie de Galois assure que l'extension Fn de F2 possède un élément primitif α, et donc Fn est égal à F2[α]. L'élément α est générateur du groupe multiplicatif, son polynôme minimal est donc un polynôme cyclotomique Φn[X] d'indice n sur Fd. Son degré est égal à m car α est un élément primitif.

Ce polynôme remplit les conditions d'optimalité.

De plus :

  • L'idéal C engendré par Φn[X] possède les paramètres suivant [2m - 1, 2m - m - 1, 3].

Le code associé est donc un code binaire de Hamming. Ce résultat est vrai uniquement parce que le code est binaire. Considérons par exemple F27 = F3[α] où α est un générateur primitif de l'extension. L'ordre de α est égal à 26, donc α13 est une racine carrée de l'unité, différente de 1. α13 est donc égal à -1. Le polynôme X13 - 1 admet α pour racine, c'est donc un multiple de son polynôme cyclotomique et il est élément du code. Pourtant son poids est égal à deux.

Ce sont donc les spécificités de la caractéristique 2 qui assurent la véracité de la proposition.

  • L'idéal C engendré par Φn[X] est code parfait.

Dans le cas général, la borne de Singleton (cf code linéaire) n'est pas atteinte. Considérons en effet, le cas où m est égal à 7. La longueur n du code est égale à 127, la dimension k du code à 120 et la distance minimale δ à trois. On en déduit:

n - k = 7 \neq \delta + 1 = 4\;

Code BCH

Si le contexte précédent possède de nombreuses applications industrielles, il présente néanmoins des limitations justifiant l'utilisation d'autres méthodes.

La solution précédente s'appuie sur les propriétés de la caractéristique 2. Il peut être utile d'utiliser d'autres corps finis que ceux multiple de deux. Cette contrainte est d'importance relativement faible dans l'industrie, les codes binaires sont en effet largement répandus.

En revanche, une telle approche ne permet que la résolution d'une unique erreur dans un mot. Cette limitation n'est pas compatible avec, par exemple, le cahier des charges des disques compacts. Un disque compact peut subir des rayures ou être localement recouvert d'une poussière. Une suite de lettres erronées peut posséder une longueur égale à 4.096.

La théorie des corps finis permet néanmoins de proposer une solution MSD c’est-à-dire qui atteint la borne de Singleton. Elle se fonde sur un calcul réalisé la première fois par le mathématicien Vandermonde pour résoudre l'équation cyclotomique dans le cas de la caractéristique zéro. Ce calcul reste d'actualité pour les corps finis.

Dans la suite du paragraphe Δ désigne un entier tel que 1 < Δ < n + 1 et β désigne un élément de Fn+1 tel que ses Δ premières puissances soit toutes distinctes

  • Un polynôme à coefficients dans Fd dont Δ puissances successives et distinctes de β sont racines et sans racine multiple, engendre un code cyclique C dont la distance minimale δ est supérieure ou égale à Δ + 1.

Remarque:La propriété du paragraphe précédent est une conséquence de cette proposition. En effet, les propriétés de l'automorphisme de Frobenius démontre que si α est racine du polynôme cyclotomique, alors α2 l'est aussi dans le cas des corps binaires.

Cette proposition est à la base d'une famille de codes dit code BCH (pour Bose, Ray-Chaudhuri, Hocquenghem)

  • Un Code BCH de longueur prescrite Δ est un code cyclique à coefficients dans Fd et de longueur n tel qu'il existe un entier b et dont le polynôme générateur G vérifie l'égalité suivante. Si b est égal à un 1 le code est dit BCH au sens strict.
G[X]=ppcm(\Phi_b[X], \Phi_{b+1}[X],\cdots ,\Phi_{b+\Delta-2}[X])\;

Ici Φi[X] désigne le polynôme cyclotomique ayant αi pour racine.

Un code BCH ne permet pas, en général, la génération de codes parfaits. Considérons l'extension binaire de dimension 7 et le code BCH au sens strict de longueur prescrite 5. Son polynôme générateur est le produit de deux polynômes de degré 7, celui ayant α comme racine (et donc aussi α2 et α4) et celui ayant α3. Il corrige effectivement deux erreurs, mais la boule de centre 0 et de rayon 2 contient 1 + 127 + (127*126)/2 soit 8 129 points, alors qu'un supplémentaire du code est isomorphe à l'espace des polynômes de degré strictement inférieur à 14 soit 16 384. Les redondances sont plus de deux fois plus vastes que la boule de rayon deux.

Certains code BCH sont néanmoins parfaits. Considérons par exemple l'extension quadratique de F3. Sa boule unité contient 1 + 26 éléments soit 27. Le polynôme cyclotomique de racine α contient α3 comme deuxième racine, celui contenant α2 contient α6 comme deuxième racine et le produit des deux polynômes engendre un code de distance minimale 4 et peut donc corriger une unique erreur. Un supplémentaire est isomorphe à l'espace des polynômes de degré inférieur ou égal à 3, et contient donc 27 éléments, autant que la boule unité, le code est donc parfait.

Code de Reed-Solomon

Les CD utilisent un code de Reed-Solomon capable de corriger jusqu'à 4.096 bits erronés consécutifs

Si la propriété précédente ne permet pas d'obtenir assurément des codes MDS, l'approche BCH peut être enrichie pour pallier cette difficulté. Considérons par exemple le corps F64. Il peut être vu comme l'extension quadratique de F8. Alors d est égal à 8 et m à 2. L'espace vectoriel associé est un espace de dimension d m égal 63 sur F8, soit une longueur de 189 en code binaire. Si α désigne un élément primitif du corps F8, alors le polynôme G[X], défini par :

G[X]=X^8-1=(X-\alpha).(X-\alpha^2).(X-\alpha^3).(X-\alpha^4).(X-\alpha^5).(X-\alpha^6).(X-\alpha^7).(X-1)\;

est un diviseur de X63 - 1. L'idéal associé est donc un code cyclique C. Le théorème précédent montre que ce code possède une distance minimale de 9. Il admet comme paramètres [63, 55, 9]. C'est un code satisfaisant l'égalité de la borne du singleton (cf le paragraphe Borne du singleton et code MDS de l'article Code linéaire). Considéré comme un code binaire, il corrige jusqu'à 12 erreurs consécutives sur un code de dimension 189 et de longueur 175. Cette idée est à la base du code de Reed-Solomon.

  • Un Code de Reed-Solomon de distance construite Δ avec 1 < Δ < n est un code BCH sur un corps Fn+1 de dimension n généré par un polynôme G[X] défini par:
G[X]=(X-\alpha^b).(X-\alpha^{b+1}).\cdots .(X-\alpha^{b+\Delta-2})\quad avec \; b\in \mathbb N^*\;

La proposition du paragraphe précédent montre que :

  • Un Code de Reed-Solomon de distance construite Δ sur Fn+1 possède pour paramètres [n, n - Δ + 1, Δ]. Un tel code est MDS.

Le code est MDS pour Minimum Distance Séparable si et seulement si la borne du singleton est atteinte.

Pour permettre de larges redondances avec une bonne optimalité, trois autres méthodes peuvent être ajoutées, le code raccourci, le code démultiplié et l'entrelacement. Le Code CIRC utilisé pour le disque compact est un code de Reed-Solomon sur le corps F256 utilisant ces trois outils.

Page générée en 0.328 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise