FR 2849514 A1 20040702 FR 0304767 A 20030416 I La présente invention concerne les systèmes de communication dans lesquels, afin d'améliorer la fidélité de la transmission, les données à transmettre sont soumises à un codage de canal. Elle concerne plus particulièrement, d'une part, des procédés de codage, et d'autre part des 5 procédés de décodage ainsi que les dispositifs et appareils destinés à mettre en oeuvre ces procédés. On rappelle que le codage dit " de canal " consiste, quand on forme les " mots de code " envoyés au récepteur, à introduire une certaine redondance dans les données à transmettre. Plus précisément, on transmet, au 10 moyen de chaque mot de code, l'information initialement contenue dans un nombre prédéterminé k de symboles prélevés dans un " alphabet " de taille finie q; on calcule à partir de ces k symboles d'information un nombre n de symboles appartenant à cet alphabet, de manière à former des mots de code v = [v1,v2, ...,vnJ. L'ensemble des mots de code obtenus quand chaque 15 symbole d'information prend une valeur quelconque dans l'alphabet, constitue une sorte de dictionnaire appelé " code " de " dimension " k et de "longueur " n. Lorsque la taille q de l'alphabet est une puissance d'un nombre premier, on peut donner à cet alphabet une structure de corps, dit " corps de 20 Galois ", noté Fq, dont les éléments non-nuls peuvent être commodément identifiés comme étant chacun égal à y Au niveau du récepteur, le procédé de décodage associé exploite alors judicieusement cette redondance pour détecter d'éventuelles erreurs de transmission et si possible les corriger. Il y a erreur de transmission si la différence e entre un mot reçu r et le mot de code v correspondant envoyé par l'émetteur, est non-nulle. Plus précisément, le décodage se fait en deux étapes principales. La première étape consiste à associer au mot reçu r un " mot de code associé " v, qui est une estimation du mot de code v. Pour ce faire, le T T décodeur calcule d'abord le vecteur de " syndromes d'erreurs " H r = H e Si les syndromes sont tous nuls, on supposera qu'il n'y a pas eu d'erreur de transmission, et le " mot de code associé " v sera alors simplement pris égal 10 au mot reçu r. Si ce n'est pas le cas, on en déduit que certains symboles dans le mot reçu sont erronés, et l'on met alors en oeuvre un algorithme de correction destiné à estimer la valeur de l'erreur e; l'algorithme va ainsi fournir une valeur estimée e de manière à ce que v = r-e soit un mot de code, qui constituera alors le " mot de code associé ". La seconde étape consiste simplement à inverser le procédé de codage. Dans la situation idéale o toutes les erreurs de transmission ont été corrigées, on retrouve ainsi les symboles d'information initiaux. Un algorithme de correction d'erreurs a pour tâche d'associer au mot reçu le mot de code situé à la distance de Hamming la plus courte de ce mot 20 reçu, la " distance de Hamming " étant, par définition, le nombre d'emplacements o deux mots de même longueur possèdent un symbole différent. On appelle " distance minimale " d d'un code la plus petite distance de Hamming entre deux mots différents de ce code. C'est un paramètre important du code. Plus précisément, il est en principe possible de trouver la 25 position des erreurs éventuelles dans un mot reçu, et de fournir le symbole de remplacement correct (c'est-à-dire, identique à celui envoyé par l'émetteur) pour chacune de ces positions, chaque fois que le nombre de positions erronées est au plus égal à INT[(d- 1)/2] (o " INT " désigne la partie entière) pour un code de distance minimale d (pour certaines configurations d'erreurs, 30 on peut même parfois faire mieux). Dans tous les cas toutefois, il ne s'agit que d'une possibilité de principe, car il est souvent difficile de mettre au point un algorithme de décodage atteignant cette performance. On notera également que, lorsque l'algorithme choisi parvient à proposer une correction pour le mot reçu, cette correction est d'autant plus fiable (du moins, pour la plupart des canaux de transmission) qu'elle concerne un plus petit nombre de positions. Parmi les codes connus, on peut citer les " codes de ReedSolomon ", qui sont réputés pour leur efficacité (pour une définition des codes de ReedSolomon, on pourra se référer à l'ouvrage de R.E. Blahut intitulé " Theory and practice of error-control codes ", Addison-Wesley, Reading, Mass.,1983). Ces codes sont définis sur Fq, et leur distance minimale d est 10 égale à (n -k + 1). Pour leur décodage, on utilise habituellement un algorithme dit de " Berlekamp-Massey " pour la détection des positions erronées dans un mot reçu, et un algorithme dit de " Forney " pour la correction des symboles erronés correspondants (ces algorithmes sont décrits dans l'ouvrage mentionné ci-dessus). Dans les supports d'information modernes, par exemple dans les disques durs d'ordinateurs, les CD (" compacts discs ") ou encore les DVD (" digital video discs "), on cherche à accroître la densité d'information. Quand un tel support est affecté par un défaut physique tel qu'une éraflure, un nombre important de symboles d'information peuvent être rendus illisibles. On peut 20 toutefois remédier à ce problème en utilisant un code de très grande longueur. Or les codes de Reed-Solomon présentent la particularité que la longueur n des mots de code est nécessairement inférieure ou égale à la taille q de l'alphabet des symboles. Par conséquent, si l'on souhaite disposer d'un code de Reed-Solomon ayant des mots de code de grande longueur, on doit 25 envisager de grandes valeurs de q, ce qui conduit à des mises en oeuvre coteuses au niveau des calculs et de la mémorisation. De plus, de grandes valeurs de q sont parfois inadaptées à l'application technique envisagée. C'est pourquoi l'on a cherché à construire des codes offrant de manière naturelle une plus grande longueur de mots que les codes de Reed-Solomon. On a notamment proposé récemment des codes dits " codes de géométrie algébrique " ou " codes de Goppa géométriques " (voir par exemple " Algebraic Geometric Codes ", par J.H. van Lint, dans " Coding Theory and Design Theory", 1èr partie, IMA Volumes Math. Appi., volume 21, SpringerVerlag, Berlin, 1990). Ces codes, eux aussi définis sur un corps de Galois Fq, sont construits à partir d'une équation algébrique à deux inconnues X et Y. Les solutions de cette équation algébrique peuvent être considérées comme les 5 coordonnées (x,y) de points d'une " courbe algébrique ". Pour définir une matrice de parité, on constitue d'abord un ensemble ordonné, appelé " ensemble de localisation " (" locating set " en anglais), à partir de n tels points dont toutes les coordonnées sont finies; puis chaque ligne de la matrice de parité est obtenue en évaluant une fonction bien choisie de X et Y en 10 chaque élément de cet ensemble de localisation. On obtient ainsi un code de géométrie algébrique de longueur n. Un paramètre important d'une telle courbe est son " genre " g. Dans le cas particulier o la courbe est une simple droite (le genre g est alors nul), le code de géométrie algébrique se réduit à un code de Reed-Solomon. Dans 15 certains cas, les codes de géométrie algébrique permettent d'atteindre une longueur égale à (q+2g+/k), qui peut être très élevée; par exemple, avec une taille d'alphabet égale à 256 et un genre égal à 120, on obtient des mots de code de longueur 4096. On notera par ailleurs que les codes de géométrie algébrique possèdent une distance minimale d supérieure ou égale à (n-k+l-g). Les codes de géométrie algébrique sont avantageux quant à leur distance minimale et, comme on l'a dit, quant à la longueur des mots de code, mais ils présentent l'inconvénient de requérir des algorithmes de décodage assez complexes, et donc assez coteux en termes d'équipements (logiciel 25 et/ou matériel) et de temps de traitement. Cette complexité est en fait plus ou moins grande selon l'algorithme considéré, une plus grande complexité étant en principe le prix à payer pour accroître la capacité de correction d'erreurs du décodeur (voir par exemple l'article de Tom H0holdt et Ruud Pellikaan intitulé " On the Decoding of Algebraic-Geometric Codes ", IEEE Trans. Inform. 30 Theory, vol. 41 n0 6, pages 1589 à 1614, novembre 1995). Comme tous les codes, les codes de géométrie algébrique peuvent être " modifiés " et/ou " raccourcis ". On dit qu'un code donné Cmod est une version " modifiée " du code C s'il existe une matrice diagonale carrée nonsingulière A telle que chaque mot de Cmod est égal à vA avec v dans C. On dit qu'un code donné est une version " raccourcie " du code C s'il ne comprend que les mots de C dont, pour un nombre R de positions prédéterminées, les 5 composantes sont toutes nulles: ces positions étant connues du récepteur, on peut se dispenser de les transmettre, de sorte que le code raccourci est de longueur (n-R). En particulier, il est courant de raccourcir un code de géométrie algébrique en supprimant de l'ensemble de localisation, le cas échéant, un point, ou plusieurs points, dont la coordonnée x est nulle. L'invention a pour but, inter alia, de proposer un code permettant de corriger un nombre relativement élevé d'erreurs de transmission de manière économique, particulièrement lorsque les erreurs de transmission ont tendance à se produire en rafales (en anglais, " error burst ") durant la transmission des symboles codés (on rappelle qu'une rafale est une série d'erreurs de fréquence 15 élevée par rapport à la fréquence d'erreurs moyenne sur le canal considéré; on observe de telles rafales aussi bien sur certaines transmissions hertziennes que sur certains enregistrements sur disque dur). Or les auteurs de la présente invention se sont demandés si, quand on détermine les propriétés du code destiné à transmettre des informations sur 20 un canal donné, on ne pourrait pas prendre en compte les caractéristiques du canal envisagé pour choisir un code bien adapté. Notamment, lesdits auteurs se sont intéressés aux canaux dans lesquels les données à transmettre sont groupées en blocs de longueur prédéterminée, et dans lesquels le taux d'erreur de transmission par donnée transmise est essentiellement constant au sein 25 d'un même bloc; autrement dit, de tels canaux sont physiquement caractérisés en ce que, le plus souvent, les " bruits " de transmission affectent les données par bloc, et peuvent affecter différemment des blocs différents; ainsi, pour certains blocs, la probabilité d'erreur pourra être très faible ou même nulle, cependant que pour certains autres blocs la probabilité d'erreur pourra être 30 élevée et même proche de (q-1)1q. Pour de tels canaux, il est avantageux d'utiliser un système de communication à porteuses multiples connu sous le nom de " OFDM " (initiales des mots anglais " Orthogonal Frequency Division Multiplexing " signifiant " Multiplexage à Division de Fréquences Orthogonale "). L'OFDM est particulièrement utile dans les environnements o le signal reçu est la somme de multiples signaux émis qui ont subi diverses réflexions, et donc divers 5 déphasages et atténuations, sur leur trajet entre émetteur et récepteur. Il en résulte des effets d'interférence qu'il faut pouvoir corriger pour garantir une bonne qualité de réception. L'OFDM atteint cet objectif en divisant la bande passante totale en un certain nombre de portions affectées à des " sousporteuses " de fréquences différentes, de telle manière que le signal OFDM 10 résulte de la superposition des signaux individuels, orthogonaux entre eux, associés à ces sous-porteuses. Plus précisément, les données à transmettre sont d'abord exprimées, de manière classique, sous forme de " symboles élémentaires ", c'est-à-dire de nombres complexes définis conformément à un certain procédé 15 de modulation, par exemple de phase (en anglais, " Phase Shift Keying " ou " PSK "), ou bien de phase et d'amplitude en combinaison (en anglais, " Quadrature Amplitude Modulation " ou " QAM "). Dans un système OFDM, ces symboles élémentaires sont ensuite pris P par P (o P est un entier prédéterminé) et convertis, au moyen d'une transformation de Fourier discrète 20 dite inverse (en anglais, " Inverse Discrete Fourier Transform ", ou IDFT) en une série de K (o K est un entier prédéterminé) nombres complexes c, (r = 0,...,K-1) représentant autant de " porteuses ". Enfin, on émet la partie réelle du signal défini par: K-1 c(t) -exp(-jcot) Ecrh(t - rT), (1) r=O o la fonction h(t) est, par définition, égale à 1 dans l'intervalle 0 s t s T, et nulle en dehors de cet intervalle. Après réception du signal modulé, on met en oeuvre une transformation de Fourier discrète (en anglais, " Discrete Fourier Transform ", ou DFT) inverse de la précédente, ce qui restitue chacun des symboles 30 élémentaires individuels. Pour plus de détails sur I'OFDM, on pourra par exemple se référer au livre de R. van Nee et R. Prasad intitulé " OFDM for Wireless Multimedia Communications " (Artech House, Boston et Londres, 2000). Ainsi, le bruit affectant ce signal c(t) pendant sa transmission sur le 5 canal va affecter globalement le bloc de P symboles élémentaires dont il est issu, et par suite les MP éléments binaires correspondants, o 2M est le cardinal de la constellation de modulation. La présente invention concerne donc un code de canal apte à tirer parti d'une telle répartition du bruit sur un canal de transmission. En même 10 temps, on souhaite que ce code soit facile à décoder, et possède une distance minimale relativement élevée. L'invention concerne ainsi, selon un premier aspect, un procédé de codage de symboles d'information, comprenant une étape dans laquelle on associe à tout bloc de k symboles d'information appartenant à un corps de 15 Galois Fq, o q est un entier supérieur à 2 et égal à une puissance d'un nombre premier, un mot de code v de longueur n orthogonal à une matrice de parité H. Ce procédé de codage est remarquable en ce que l'élément Haó en position (o,f3) (o ax = 1,..., n-k, et D = 1,..., n) de ladite matrice de parité H est égal à la valeur prise par le monôme M, au point Pp, o - les monômes Ma, - X' YJ, o les entiers i et j sont positifs ou nuls, sont tels que si, parmi ces monômes, il en existe un associé à i > 0 et à j quelconque, alors il en existe aussi un associé à (i-1) et à j, et s'il en existe un associé à i quelconque et à j > 0, alors il en existe aussi un associé à i et à (j-1), et - lesdits points Pu sont des couples de symboles non-nuls de Fq qui ont été classés par agrégats: (Xl,Yl(xl)), (xl,Y2(xl)),..., (xl,Ykl(xl)) ; (x2,Yl(x2)), (x2,Y2(x2)),... J-I (x2YX2 (x2));... ; (xpyl(x)), (xp,,Y2(xp)), ..., (xg,yXp (xp)) (avec EXp =n). p=l Ainsi, selon l'invention, on range les colonnes de la matrice de parité 30 par " agrégats ", un " agrégat " étant défini comme étant un ensemble de couples de symboles appartenant à Fq qui présentent une valeur commune du premier élément de ces couples. Chaque mot de code v étant, par définition, orthogonal à la matrice de parité, il vérifie: La= H(xpvp = O 3=1 (pour cx = 1,..., n-k); il sera donc commode, dans le cadre de la présente invention, de remplacer l'indice: par le point Pp = (x,y) correspondant pour identifier une composante des mots de code, de sorte que l'on écrira: v = [v(x1,yl(xl)), -..,v(xl,yx, (xl)),...,v(x},,,yx, (x^,))]; de plus, lorsque des composantes de mots de code, indexées de la sorte par 10 des couples (x,y), sont telles que leurs indices ont une valeur commune de x, on dira commodément que ces composantes forment un " agrégat " de composantes. Comme les composantes appartenant à un même agrégat sont insérées en position adjacente dans le flux de données à transmettre, le procédé de codage selon l'invention est particulièrement efficace pour les 15 canaux o les erreurs tendent à se produire en rafales, à condition de mettre en oeuvre un procédé de correction d'agrégats plutôt que d'erreurs individuelles. Un procédé de correction de ce type est d'ailleurs divulgué plus bas. Selon des caractéristiques particulières applicables lorsque lesdits mots de code v sont destinés à être transmis sous forme de blocs de longueur 20 prédéterminée, - on met bout à bout les mots de code v successifs de manière à former une chaîne continue de données à transmettre, et - on découpe cette chaîne de données en blocs de ladite longueur prédéterminée. Dans ce cas, les composantes d'un agrégat seront, généralement, représentées dans le même bloc de données émises; par exemple, dans le cas de l'OFDM, les composantes de chaque agrégat seront représentées dans le même intervalle de durée KT. Selon des caractéristiques encore plus particulières applicables 30 lorsque les mots de code ne sont pas exactement divisibles en blocs, on complète chaque bloc incomplet par une séquence de données quelconque prédéterminée. En variante, lorsque les mots de code ne sont pas exactement divisibles en blocs, on complète chaque bloc incomplet en copiant la valeur des 5 données situées en un nombre de positions prédéterminées du mot de code correspondant égal au nombre de données à compléter. Il sera habituellement commode de copier des données situées dans le même bloc incomplet. Grâce à ces dispositions, on peut accélérer le processus de transmission des blocs, et aussi utiliser les données supplémentaires ainsi 10 insérées aux fins de synchronisation. Selon des caractéristiques particulières, d'une part, lesdits points Pu font partie des solutions d'une équation algébrique Xb+Cya + y cX'Y1= 0, o c (0) et les c j sont des éléments de Fq, a et b sont des entiers strictement 15 positifs et premiers entre eux, et o la somme ne porte que sur les entiers i et j qui satisfont a i + bj On bénéficie ainsi de la grande distance minimale garantie par les codes de géométrie algébrique. Selon des caractéristiques encore plus particulières, d'une part, lesdits monômes M, = X' Yi vérifient: ai+bj m, o m est un entier strictement positif prédéterminé, et d'autre part X(X) ,x} . Comme expliqué en détail plus bas, cette structure particulière de la matrice de parité permet d'associer à chaque mot de code un certain nombre de mots codés selon Reed-Solomon. La correction d'erreurs pour ces derniers sera avantageusement simple et rapide, comme il est bien connu concernant 30 les algorithmes adaptés aux codes de Reed-Solomon...DTD: Corrélativement, I'invention concerne, selon le même premier aspect, un procédé de décodage de données reçues, remarquable en ce que lesdites données reçues résultent de la transmission de données codées selon l'un quelconque des procédés de codage décrits succinctement ci-dessus. Les données reçues peuvent notamment résulter de la transmission de données codées conformément au procédé selon l'invention doté des caractéristiques encore plus particulières décrites ci-dessus. Dans ce cas, un mot r -[r(xl,y,(x)), ...,r(xl,yx1 (x1)),...,r(x,,yx[ (xp))], 10 de longueur n ayant été reçu, et un entier Smax vérifiant X( ) - 1 Comme on le voit, ce procédé de décodage manipule explicitement les symboles reçus par agrégats. Il est donc très sensible au nombre d'agrégats du mot reçu qui contiennent des erreurs, et peu sensible au nombre total de 15 symboles erronés dans le mot reçu. De ce fait, l'efficacité de la correction d'erreurs est optimisée, à condition que, pour un mot reçu comportant des erreurs de transmission, ces erreurs n'affectent qu'un nombre restreint d'agrégats, ce qui est généralement le cas. Un avantage supplémentaire de ce procédé de décodage est, grâce 20 à la souplesse offerte par le choix du paramètre smax, la possibilité de protection inégale contre les erreurs (en anglais, " Unequai Error Protection " ou U.E.P), comme expliqué en détail plus bas. On notera par ailleurs que l'on peut aisément généraliser les procédés de codage et décodage décrits succinctement ci-dessus au cas o la 25 matrice de parité H telle que décrite ci-dessus est remplacée par la matrice de parité HA = H A, o A est une matrice diagonale non-singulière: - on associe à tout mot reçu r le mot r- r. A1, - on applique audit mot rA un procédé de décodage tel que décrit succinctement ci-dessous, pour le code dont la matrice de parité est H, et - si cette application aboutit à une estimation vA, on prend v= _A4 A comme estimation du mot transmis correspondant audit mot reçu r De même, on notera que les mots de code v définis ci-dessus peuvent être obtenus, de manière tout à fait équivalente, en deux étapes au lieu 5 d'une, en partant d'une matrice de parité Hf obtenue en appliquant une permutation quelconque 7-1 aux colonnes d'une matrice H telle que décrite succinctement ci-dessus: on construit d'abord, à partir des symboles d'information, des mots v Il orthogonaux à Hz, puis l'on applique la permutation,n aux composantes de v a, de façon à obtenir les mots v destinés à être 10 transmis, dans lequel les composantes appartenant à un même agrégat sont adjacentes. Après réception du mot r correspondant à v, et la correction éventuelle des erreurs de transmission de manière à en obtenir une estimation v, il suffit d'appliquer à ce mot v la permutation 7c-1 pour obtenir l'estimation va du mot v ô. Pour la mise en oeuvre de l'invention, on peut par exemple choisir une équation algébrique dite " hyperelliptique ", dans laquelle l'exposant a de Y est égal à 2. Or on connaît, d'après l'article (en japonais) de S. Miura intitulé " Codes Hyperelliptiques Il " (12èm Symposium sur la Théorie de l'information et ses Applications -- SITA '89, Inuyama, Japon, décembre 1989) un procédé 20 de décodage conçu pour une famille de codes, également définis sur un corps de Galois Fq, que l'on appellera cidessous " codes de Miura ". Ces codes sont de longueur n paire, et sont caractérisés par une matrice de parité choisie astucieusement de manière à permettre, pour décoder un mot reçu, d'appliquer à deux mots de longueur n/2 déduits d'une certaine façon dudit mot reçu un 25 algorithme de décodage quelconque pour code de Reed-Solomon de longueur n12. Une première famille de codes de Miura, de longueur n = 2q, est définie par la matrice de parité suivante (par la suite, on désignera par y un élément primitif du corps de Galois Fq): H St H Y2 o -r est un entier strictement positif, H-2r tr - H et H sont des réalisations respectives pour u = 2r et u = r de la 5 matrice Hu à u lignes et q colonnes définie par _u = y (i-)/-}) (1 Mais ces codes de Miura ont pour inconvénient que leur distance 10 minimale, qui est égale à (2r + 1), est (pourvu que r soit supérieur à 8) inférieure à la distance minimale de certains codes de géométrie algébrique connus de même redondance (il s'agit de codes faisant appel à une équation hyperelliptique " attrayante ", c'est-à-dire possédant, quelle que soit la valeur x de X, exactement deux solutions (x,y1) et (x, y2) dans Fq et o, en outre, ces 15 valeurs Y, et Y2 de Y sont différentes l'une de l'autre). Ainsi qu'il est expliqué dans l'ouvrage de R.E. Blahut cité ci-dessus, il est plus simple de décoder un code de Reed-Solomon de longueur (q-l) défini sur Fq qu'un code de longueur q, toujours défini sur Fq. Comme le décodage des codes utilisés par l'invention fait appel à des algorithmes de décodage pour 20 codes de Reed-Solomon, il est utile, pour faciliter le décodage, de disposer de codes raccourcis à la longueur n = 2(q-1). On peut d'ailleurs définir une deuxième famille de codes de Miura, de longueur n = 2(q-1), par la matrice de parité suivante: ( H 2r H2r u=tu.r r25 o 2HrY Ho o - rest un entier strictement positif, - H2r et Hr sont des réalisations respectives pour u = 2r et u = r de la matrice Hu à u lignes et (q-1) colonnes définie par Huj = y( l>ff-) (1 5 i s u, 1 s j Ces codes de Miura de la seconde famille, ont pour inconvénient, comme ceux de la première famille, que leur distance minimale, qui est égale à (2r + 1), est (pourvu que r soit supérieur à 8) inférieure à la distance minimale de codes de géométrie algébrique connus de même redondance (qui font appel 10 à une équation hyperelliptique attrayante). Par comparaison, le code selon l'invention, dans le cas particulier o, d'une part, n = 2q ou n = 2(q-1), et o d'autre part n-k= 3r pour un quelconque entier r strictement positif, possède des propriétés analogues de " décomposition " en une paire de codes de Reed-Solomon que les codes de 15 Miura, mais peut posséder une distance minimale supérieure. On peut montrer par exemple que la distance minimale d'un tel code selon l'invention appliqué à une équation hyperelliptique attrayante est égale à (2r + 2); elle est donc supérieure d'une unité à la distance minimale du code de Miura correspondant. Un algorithme de décodage adapté pour un tel code est capable de corriger, 20 dans un mot reçu, r agrégats contenant des erreurs (dont la position et la valeur sont inconnues avant application de cet algorithme), même si lesdeux composantes de ces agrégats sont erronées, sauf dans le cas o certains agrégats sont tels que, non seulement les deux composantes d'un tel agrégat contiennent une erreur, mais en outre ces deux erreurs sont égales entre elles. 25 L'invention concerne également, selon le même premier aspect, un procédé de communication de données sous forme de blocs de longueur prédéterminée. Ce procédé de communication comprend les étapes suivantes: a) les données à transmettre sont codées conformément à l'un des procédés de codage décrits succinctement ci-dessus, b) lesdits blocs de données codées sont transmis par OFDM, et c) les données reçues sont décodées conformément à l'un des procédés de décodage décrits succinctement ci-dessus. Les avantages de ce procédé de communication sont essentiellement les mêmes que ceux des procédés de codage et de décodage correspondants exposés succinctement ci-dessus, avec en outre les avantages propres offerts par l'OFDM. Selon un deuxième aspect, I'invention concerne divers dispositifs. L'invention concerne ainsi, premièrement, un dispositif de codage comprenant une unité de calcul de mots de code apte à associer à tout bloc de k symboles d'information appartenant à un corps de Galois Fq, o q est un entier supérieur à 2 et égal à une puissance d'un nombre premier, un mot de 10 code v de longueur n orthogonal à une matrice de parité H. Ce dispositif de codage est remarquable en ce que l'élément Hcp en position (ax,A) (o a = 1,..., n-k, et ó = 1,..., n) de ladite matrice de parité H est égal à la valeur prise par le monôme M, au point Pp, o - les monômes M, =_ X'i Y, o les entiers i etj sont positifs ou nuls, sont 15 tels que si, parmi ces monômes, il en existe un associé à i > 0 et à j quelconque, alors il en existe aussi un associé à (i-1) et à j, et s'il en existe un associé à i quelconque et à j > 0, alors il en existe aussi un associé à i et à (j-1), et - lesdits points Pc sont des couples de symboles non-nuls de Fq qui ont 20 été classés par agrégats: (Xt,Yl(xl)), (xl,Y2(xl)),.... (XI,YXi(X1)); (X2,Yl(x2)), (X2,Y2(x2)),... (x2YX2 (x2));... ; (xp,Y1(XJ)), (xg,Y2(X1)), ..., (xp,yXt (X,,)) (avec y' p =n). p=l Selon des caractéristiques particulières, ce dispositif de codage comprend en outre une unité de formatage apte à mettre bout à bout les mots 25 v successifs de manière à former une chaîne continue de données à transmettre, et de découper cette chaîne de données en blocs de longueur prédéterminée. Selon des caractéristiques encore plus particulières applicables lorsque les mots de code ne sont pas exactement divisibles en blocs, ladite unité de formatage est capable de compléter chaque bloc incomplet par une séquence de données quelconque prédéterminée. Selon d'autres caractéristiques encore plus particulières applicables lorsque les mots de code ne sont pas exactement divisibles en blocs, ladite 5 unité de formatage est capable de compléter chaque bloc incomplet en copiant la valeur des données situées en un nombre de positions prédéterminées du mot de code correspondant égal au nombre de données à compléter. Par exemple, ces données copiées peuvent être commodément situées dans le même bloc incomplet. Deuxièmement, l'invention concerne un dispositif de décodage de données reçues résultant de la transmission de données codées selon l'un quelconque des procédés de codage succinctement décrits ci-dessus. Ce dispositif de décodage comprend: - une unité de correction d'erreurs apte à corriger les erreurs de 15 transmission desdites données codées, et une unité de calcul de symboles d'information. Dans le cas o les données reçues résultent de la transmission de données codées conformément au procédé selon l'invention doté des caractéristiques encore plus particulières décrites ci-dessus, un mot r [r(xly,(x)), ... ,r(xl,yx1 (xl)), .... r(x,,y (x,"))] de longueur n ayant été reçu, et un entier smax vérifiant ?(x) -1 Smax imax pour tout x = xl,x2,...,x^, ayant été prédéterminé, ladite unité de correction d'erreurs est, selon des caractéristiques particulières, apte à 25 - pour s = 0, ... ,smax * calculer le mot r, _r, (xl), r,(x2) sr, (X,,] de longueur yt, dans lequel, pour x = xI,x2, .,xp, chaque symbole XMx) r, (x) P1i (X)] r(x, yi (x) est effacé si au moins un des symboles r(x,yi(x)) est lui-même effacé, et * calculer le vecteur de syndromes d'erreurs ys Ht(s)rsT o --s' X- l t2 ' 1p XH X. ... X!L kI1 2 et o t(s) désigne le nombre de monômes Ma = X' Yi ayantj = s, essayer de calculer un mot %- [óo(xl),óo(x2) ....%(x)] en corrigeant le mot r_0 d'après le vecteur de syndromes d'erreurs -0 au moyen d'un algorithme de correction d'erreurs apte à tenir compte des effacements, pour s = 1,.... Smax * au cas o la tentative de correction précédente a abouti, effacer pour tout x 10 tel que O5_1(x) É rs_1(x), les symboles rp (x) pour p = s, ..... ,Smax, et ò essayer de calculer un mot [V5s(xl),Vs(x2), ...,vs(xp)] en corrigeant le mot rs d'après le vecteur de syndromes d'erreurs as au moyen d'un algorithme de correction d'erreurs apte à tenir compte des effacements, et - au cas o les (Smax +1) tentatives de correction ci-dessus ont abouti, 15 calculer, pour x=xl,x2,...,x!,, les symboles ó(x,yi), o i = 1,...,X(x) , qui sont respectivement les estimations des symboles émis correspondant aux symboles reçus r(x,yi), en résolvant le système de (Smax +1) équations: I(x) s(x)- _ [yi(x)]s (x,yi(x)) , pour s = 0, .... ,Smax. i=1..DTD: Selon des caractéristiques particulières applicables lorsque lesdits 20 mots de code v ont été transmis sous forme de blocs de longueur prédéterminée, le dispositif de décodage comprend en outre une unité de reformatage capable de mettre bout à bout lesdits blocs de données reçues après en avoir retiré, le cas échéant, les données ajoutées avant transmission pour compléter certains blocs, et d'identifier dans le flux de données ainsi 25 obtenues des séquences de longueur n formant des " mots reçus " r. Les avantages de ces dispositifs sont essentiellement les mêmes que ceux des procédés de codage et de décodage correspondants décrits succinctement ci-dessus. L'invention vise également: - un appareil d'émission de signaux numériques codés comprenant un dispositif de codage tel que décrit succinctement ci-dessus, des moyens pour moduler lesdits signaux numériques codés, et un émetteur de données modulées, - un appareil d'enregistrement de signaux numériques codés 10 comprenant un dispositif de codage tel que décrit succinctement ci-dessus, des moyens pour moduler lesdits signaux numériques codés, et un enregistreur de données modulées, - un appareil de réception de signaux numériques codés comprenant un dispositif de décodage tel que décrit succinctement ci-dessus, des moyens pour 15 démoduler lesdits signaux numériques codés, et un récepteur de données modulées, un appareil de lecture de signaux numériques codés comprenant un dispositif de décodage tel que décrit succinctement ci-dessus, des moyens pour démoduler lesdits signaux numériques codés, et un lecteur de données 20 modulées, - un système de télécommunication de données sous forme de blocs de longueur prédéterminée comprenant au moins un appareil d'émission de signaux numériques codés tel que décrit succinctement ci-dessus, et au moins un appareil de réception de signaux numériques codés tel que décrit 25 succinctement ci-dessus, - un système de stockage de masse comprenant au moins un appareil d'enregistrement de signaux numériques codés tel que décrit succinctement cidessus, au moins un support d'enregistrement, et au moins un appareil de lecture de signaux numériques codés tel que décrit succinctement ci- dessus, - un moyen de stockage de données inamovible comportant des instructions de code de programme informatique pour l'exécution des étapes de l'un quelconque des procédés de codage et/ou de décodage et/ou de communication succinctement exposés ci-dessus, - un moyen de stockage de données partiellement ou totalement amovible, comportant des instructions de code de programme informatique 5 pour l'exécution des étapes de l'un quelconque des procédés de codage et/ou de décodage et/ou de communication succinctement exposés ci-dessus, et - un programme d'ordinateur, contenant des instructions telles que, lorsque ledit programme commande un dispositif de traitement de données programmable, lesdites instructions font que ledit dispositif de traitement de 10 données met en oeuvre l'un des procédés de codage et/ou de décodage et/ou de communication succinctement exposés ci-dessus. Les avantages offerts par ces appareils d'émission, d'enregistrement, de réception ou de lecture, ces systèmes de télécommunication ou de stockage de masse, ces moyens de stockage de 15 données et ce programme d'ordinateur sont essentiellement les mêmes que ceux offerts par les procédés de codage, de décodage et de communication selon l'invention. D'autres aspects et avantages de l'invention apparaîtront à la lecture de la description détaillée ci-dessous de modes de réalisation particuliers, 20 donnés à titre d'exemples non limitatifs. La description se réfère aux dessins qui l'accompagnent, dans lesquels: - la figure 1 est un schéma synoptique d'un système de transmission d'informations selon un mode de réalisation de l'invention, - la figure 2 représente un appareil d'émission de signaux incorporant un 25 codeur selon l'invention, et - la figure 3 représente un appareil de réception de signaux incorporant un décodeur selon l'invention. La figure 1 est un schéma synoptique d'un système de transmission d'informations selon un mode de réalisation de l'invention. Ce système a pour fonction de transmettre des informations de nature quelconque à partir d'une source 100 vers un destinataire ou utilisateur 109. En premier lieu, la source 100 met ces informations sous la forme de symboles appartenant à un certain alphabet (par exemple des octets de bits dans le cas o la taille q de l'alphabet vaut 256), et transmet ces symboles à une unité de stockage 101, qui accumule les symboles de façon à former des ensembles contenant chacun k symboles. Ensuite, chacun de ces ensembles 5 est transmis par l'unité de stockage 101 à une unité de calcul des mots de code 102 qui construit un mot v orthogonal à la matrice de parité H. On va à présent illustrer les procédés de codage et de décodage selon l'invention à l'aide d'un exemple numérique. On notera que cet exemple ne constitue pas nécessairement un choix de paramètres préférentiel pour le codage 10 ou le décodage. Il n'est fourni ici que pour permettre à l'homme du métier de comprendre plus facilement le fonctionnement de l'invention. Considérons donc un code de géométrie algébrique de longueur 1020 et de dimension 918 défini comme suit. L'alphabet des symboles est constitué par les 28 éléments du corps de 15 Galois F256 (c'est-à-dire par des octets de symboles binaires) (ce corps peut être construit à l'aide du polynôme (X" + X4 + X3 + X2 + 1) défini sur F2). On considère alors la courbe algébrique de genre g = 24 dont les points (XY) sont les solutions dans F256 de l'équation à deux inconnues f(X, Y)= X17- Y-y=0 (1) Cette équation est dite " attrayante " car, pour toute valeur x prise par X dans F256, l'équation correspondante en Y présente X(x) = 4 solutions distinctes qui sont elles aussi dans F256. Chacun des 256 ensembles de 4 points ayant une valeur commune de X constitue un " agrégat " au sens de l'invention. Cette courbe comprend donc 1024 points de coordonnées finies (ainsi 25 qu'un point à l'infini P.). De préférence, on " raccourcira " le code en supprimant de cet ensemble les quatre solutions de l'équation pour lesquelles x = 0. L'ensemble des points Pu (o P = 1,...,1020) restants va ainsi constituer l'ensemble de localisation, chaque point Pp servant à identifier le S3ème élément de tout mot de code. Conformément à l'invention, on classe, au moyen du numéro 30 y, ces points de manière à ce que les points d'un même agrégat portent des valeurs successives du numéro P (ici, quatre valeurs distinctes pour chaque agrégat). Ensuite, on considère l'espace vectoriel L(mP.) de polynômes en X et Y à coefficients dans F256 dont les seuls pôles sont situés en P., et sont d'ordre inférieur ou égal à m, o m est un entier strictement positif (il s'agit donc d'un code de géométrie algébrique dit " à un point "). Cet espace vectoriel, qui est de 5 dimension supérieure ou égale à (m-g+1) (égale si m > 2g-2), possède une base constituée par les monômes (XY), o i est un entier positif ou nul, j est un entier compris entre 0 et 3, et: 4i + 17j De façon plus générale, on pourra avantageusement faire appel à une 10 équation algébrique f(X,Y) Xb+Cya + c, c Xi Yj = 0 (2) o c ( 0) et les c y sont des éléments de Fq, a et b sont des entiers strictement positifs et premiers entre eux, et o la somme ne porte que sur les entiers i etj qui satisfont a i + bj Pour une telle équation algébrique, on ne prend en considération que les monômes (XiY) o l'exposant j de Y est strictement inférieur à a, et l'on définit le poids d'un tel mon6me (X Y) par W(ij) = a i + b j. Dans ce mode de réalisation de l'invention, on se fixe un poids maximum m, de sorte que les monômes peuvent être classés dans des ensembles de monômes T(j)- {X' Yi0 0, j Dans le cas de l'équation (1), o a = 4 et b = 17, si l'on prend par exemple m = 125, on obtient 4 ensembles de monômes: T(0) _ { X'il 0 La base de l'espace vectoriel L(mP.) comprend alors: 32 + 28 + 23 + 19 = 102 30 monômes. Enfin, on définit une matrice de parité H de la manière suivante: les monômes M., = ^C^ (de poids inférieur ou égal à m, et o la valeur maximale jmax de j est strictement inférieure à a) sont rangés dans un ordre quelconque en fonction de i et de j, et l'élément en ligne ac (avec ac = 1,..., n - k) et colonne D 5 (avec D = 1,..., n) de la matrice H est égal au monôme M, évalué au point PP de la courbe algébrique. Ces points Pu correspondent à des solutions distinctes de l'équation algébrique (2), mais l'homme du métier décidera, en fonction de l'application envisagée, s'il est utile d'inclure toutes les solutions dans l'ensemble de localisation, ou si au contraire (comme on l'a fait dans l'exemple numérique ci10 dessus) il convient plutôt de sélectionner telle ou telle solution. En tout état de cause, chaque ensemble de points (x,yp) (o p = 1,..., X(x)) de l'ensemble de localisation constitue un agrégat au sens de l'invention, et naturellement X(x) a. On voit donc que les choix des entiers m et imax n-k= Zt(j) j=O sont liés. Ainsi, dans l'exemple numérique considéré: n-k = 102, etdonc: k =918. Dans ce mode de réalisation, on exigera de surcroît que la taille choisie pour chaque agrégat respecte la condition M(x) ..... ,x,, ), afin de pouvoir mettre en oeuvre le procédé de décodage décrit plus bas...DTD: L'unité de calcul des mots de code 102 construit, à partir de chaque ensemble de k symboles d'information, un mot v orthogonal à la matrice de parité H ainsi définie. Dans ce mode de réalisation de l'invention, l'unité de formatage 20 met bout à bout les mots v de manière à construire des blocs de la longueur prévue par le système de transmission. On peut considérer que les unités 101, 102 et 20 forment conjointement un " codeur " 30. Ce codeur 30 transmet lesdits blocs à un modulateur 103. Ce modulateur 103 associe à chaque groupe de M symboles binaires (" bits ") un symbole de modulation. Il pourra par exemple s'agir d'une amplitude complexe définie selon la constellation 4-QAM, ou 8-DPSK ou 16-QAM; on pourra en fait 5 être amené, le cas échéant, à limiter (si c'est permis) la taille de la constellation afin de limiter le nombre de données incluses dans chaque bloc de P symboles élémentaires (o, par exemple, P = 96), car une erreur de transmission affectant tout un bloc représentant un grand nombre de composantes de v pourrait s'avérer dépasser la capacité de correction du code. Mais on doit alors savoir comment résoudre le problème pratique qui se pose lorsque les mots de code ne sont pas exactement divisibles en blocs, c'est-à-dire lorsque la longueur des mots de code, exprimée en " bits ", n'est pas un multiple entier des MP " bits " représentés dans un bloc. Pour illustrer ce problème, reprenons notre exemple o les mots de 15 code sont de longueur 1020 octets (correspondant à q =256), soit 8160 " bits ", et prenons P = 96. On constate que 8160 n'est pas divisible par 96M, et cela que M soit égal à 2, à 3 ou à 4. Prenons, par exemple, M = 2: les " bits " d'un mot de code vont alors " remplir " 42 blocs représentant chacun 192 " bits ", mais il restera encore 96 " bits " à traiter, qui n'occupent qu'un 20 demi-bloc. Considérons d'abord le cas o les composantes des mots de code ne sont pas produites en continu par le codeur 30. Si l'on a commencé un premier bloc en même temps qu'un mot de code, alors le dernier bloc est à moitié incomplet, car la deuxième moitié de son contenu, qui pourrait " loger " 25 le début du mot de code suivant, n'est pas encore disponible. Cela cause un retard à la transmission qui peut être gênante pour le destinataire de la transmission. Pour résoudre ce problème, dans ce mode de réalisation, on complète le dernier bloc par une séquence quelconque prédéterminée, par 30 exemple une suite de zéros. En variante, on répète 96 " bits " lus en des positions prédéterminées du mot de code, par exemple les 96 derniers " bits " du mot de code représentés dans la première moitié du dernier bloc. On transmet ensuite le bloc ainsi complété sans attendre le mot de code suivant. Ces deux façons d'associer mots de code, et blocs à transmettre, peuvent être utiles également dans le cas o les composantes des mots de 5 code sont produites en continu par le codeur 30. En effet, l'une ou l'autre façon peut être commodément utilisée par le récepteur de la transmission à des fins de synchronisation, puisqu'il suffit à ce récepteur de détecter un bloc de données dont la seconde moitié contient, dans le premier mode de réalisation, une séquence prédéterminée, ou bien, dans le second mode de réalisation, une 10 répétition de données déjà reçues en certaines positions prédéterminées. Ensuite, ces symboles de modulation sont transmis à un émetteur (ou à un enregistreur) 104, qui insère les symboles dans un canal de transmission. Ce canal peut être par exemple une émission filaire ou non- filaire comme c'est le cas d'un lien radio. Il peut correspondre également à un 15 stockage sur un support adapté tel qu'un DVD ou une bande magnétique. Comme expliqué ci-dessus, il pourra avantageusement s'agir d'un émetteur OFDM transmettant une superposition de K (o, par exemple, K = 48, ou 64, ou encore 96) transformées de Fourier discrètes des P symboles élémentaires. Cette transmission, après avoir été affectée par un " bruit de transmission " dont l'effet est de modifier ou d'effacer, aléatoirement, certaines des données transmises, parvient à un récepteur ou à un lecteur 105. Il pourra avantageusement s'agir d'un récepteur OFDM qui applique une transformation de Fourier discrète, inverse de la précédente, à l'amplitude complexe reçue, de 25 manière à obtenir P symboles élémentaires. Le récepteur (ou lecteur) 105 transmet alors ces symboles élémentaires au démodulateur 106, qui les transforme en symboles de l'alphabet Fq. Ces symboles de Fq sont ensuite transmis à l'unité de reformatage 40. L'unité de reformatage 40 commence par supprimer dans chaque bloc successif les données supplémentaires, par exemple des suites de zéros, qui avaient été ajoutées dans les blocs de données pour " compléter " ces blocs, avant de les transmettre. Ensuite, elle identifie des séquences de n symboles successifs ainsi obtenus, chacune de ces séquences constituant un " mot reçu " Ce mot r est ensuite traité par une unité 107, qui met en oeuvre un 5 algorithme de correction d'erreurs adapté, de manière à fournir un " mot de code associé ". Avant de présenter un tel algorithme, il est utile de revenir un moment sur le codage selon le mode de réalisation, décrit ci-dessus, dans lequel on fait appel à une équation algébrique (2). On va présenter une formulation de l'appartenance au code qui est équivalente à la relation d'orthogonalité H vT = 0, et qui sera très commode au niveau du décodage des mots reçus. Pour tout mot de code v = [v(xl,y1l(x1)), ...,v(xl,y;, (x1)),....v(xp,yx (x))], on construit, pour chaque agrégat attaché à l'une des valeurs xl, x2, ....x1 de x, (jmax +1) On construit alors ( max +1) " mots s-agrégés " vs -= [Vs(Xl),Vs(X2) .... vs(xp), de longueur.i, à l'aide desquels la condition d'appartenance au code est ramenée à l'ensemble de (max +1) équations: Ht(s).vsT =0 o, par définition, Ht- XÀ 2: . (4) Xt-1 " x.. Xt-l1 L'intérêt de cette formulation est que la matrice Ht de l'équation (4) est une matrice de Vandermonde définie sur Fq; par conséquent, si on considère Ht(s) comme une matrice de parité définissant des mots de code vs, il s'agit, pour chaque valeur de s, d'un code de Reed-Solomon, pour lequel on 5 connaît des algorithmes de décodage aussi simples que performants; par exemple, on pourra utiliser l'algorithme de Berlekamp-Massey pour la localisation des symboles erronés, suivi de l'algorithme de Forney pour la correction de ces symboles erronés. Plus précisément, on pourra, selon un mode de réalisation de 10 I'invention, procéder comme suit pour corriger un mot reçu r - [r(xl,y,(x) ), ...,r(xl,y (xl,...r(xy (X))] (de longueur n) en tenant compte des effacements, c'est-à-dire de l'information selon laquelle la valeur du symbole est incertaine en telle ou telle position dans le mot reçu. On suppose qu'un entier Smax vérifiant (x) - 1 Tout d'abord, pour s = 0,. .. ,Smax' - on calcule le mot rs -[rs(xl),rs(x2) ...rs(xp)], de longueur yt, dans lequel, pour x = x1, x2,...,xp, chaque symbole X(x) rs(x)- U [yi(x)]Sr(xyi(x)) i=1 est effacé si au moins un des symboles r(x,yi(x)) est considéré comme douteux par le récepteur, et -on calcule le vecteur de syndromes d'erreurs cs = Ht(s)r Ts o HtL X1 X2... XI x 1 t2-I... Xt-1 et o t(s) désigne le nombre de monômes Ma = X' iY Jayant j = s. Ensuite, on essaye de calculer un mot %O [vo(xl),vO(x2),...,. O(x] en corrigeant le mot r0 d'après le vecteur de syndromes d'erreurs a. au 5 moyen d'un algorithme de correction d'erreurs apte à tenir compte des effacements, tel que la combinaison des algorithmes de Berlekamp-Massey et de Forney. Si cet algorithme n'a pas été capable de fournir un mot corrigé, on en conclut que les moyens mis en oeuvre ne permettent pas, en raison d'un 10 nombre trop important d'erreurs de transmission, de corriger ce mot reçu; la suite des opérations (par exemple, remplacement du mot par un mot prédéterminé tel que le mot nul) dépend des applications envisagées du procédé de décodage. Si en revanche l'algorithme de correction est capable de proposer un 15 mot v., on efface, pour tout x tel que v0(x) É ro(x), les symboles rp(x) pour p = 1,...,Smax. Ensuite, on essaye de calculer un mot vi =[PI(xJ),v1(x2),...,. i(xt)] en corrigeant le mot r, d'après le vecteur de syndromes d'erreurs (T au moyen d'un algorithme de correction d'erreurs apte à tenir compte des effacements, tel 20 que la combinaison des algorithmes de BerlekampMassey et de Forney. Si cet algorithme n'a pas été capable de fournir un mot corrigé, on en conclut que les moyens mis en oeuvre ne permettent pas, en raison d'un nombre trop important d'erreurs de transmission, de corriger ce mot reçu; la suite des opérations (par exemple, remplacement du mot par un mot 25 prédéterminé tel que le mot nul) dépend des applications envisagées du procédé de décodage. Si en revanche l'algorithme de correction est capable de proposer un mot 1, on efface pour tout x tel que O1(x) r1(x), les symboles rp(x) pour p = 2,...,Smax. On poursuit de manière analogue (si possible) la correction des mots rs jusqu'à s = smax. Enfin, au cas o les (Smax +1) tentatives de correction ci-dessus ont abouti, on calcule, pour x = xl,x2,...,x,, les symboles;(x,yi), o i= 1,.. .,.(x), qui sont respectivement les estimations des symboles émis correspondant aux symboles reçus r(x,yi), en résolvant le système de (Smax +1) équations X(x) (x) [yi (x)]s (x, yi(x)) , (5) i=l pour s = 0, ... ,Smax. Pour x donné, ce système d'équations est-il toujours soluble ? Remarquons d'abord que ce système a pour matrice 1 1..1 Y Y2'... Y, (6) smax ysmax.. . smax o les symboles YI,Y2,....Yx se réfèrent à l'agrégat considéré et sont tous distincts deux à deux: il s'agit donc d'une matrice de Vandermonde. De plus, comme indiqué plus haut, ?X(x) -1 Si X(x) = Smax + 1, la matrice (6) est carrée, et l'inversion du système (5) produit une, et une seule solution. Si en revanche X(x) Dans ce cas, on peut par exemple utiliser les X(x) premières équations du système (5) pour calculer les symboles v(x,yi), et utiliser les (smax + 1 - ;(x)) équations restantes, quand l'une au moins d'entre elles n'est pas satisfaite, à détecter des erreurs d'estimations sur les symboles sagrégés Cs(x). On voit 25 ainsi que, dans le cadre de l'algorithme de décodage selon l'invention, la correction des symboles appartenant à des petits agrégats peut être rendue plus fiable que celle des symboles appartenant à de grands agrégats. En conséquence, le procédé de décodage selon l'invention offre la possibilité de " protection inégale " contre les erreurs, qui est souhaitable dans certaines applications comme il est bien connu de l'homme du métier. Une fois la correction terminée, le mot de code associé v est transmis à une unité de calcul des symboles d'information 108, qui en extrait k symboles d'information en inversant la transformation mise en oeuvre par l'unité 102. Enfin, ces symboles d'information sont fournis à leur destinataire 109. On peut considérer que les unités 40, 107 et 108 forment 10 conjointement un " décodeur " 10. Le schéma synoptique de la figure 2 représente, de façon très schématique, un appareil d'émission de signaux 48 incorporant le codeur 30. Cet appareil 48 comprend un clavier 91 1, un écran 909, une source d'informations externe 100, un modulateur 103 et un émetteur de données 15 modulées 104, conjointement reliés à des ports d'entrée/sortie 903 d'un codeur qui est réalisé ici sous la forme d'une unité logique. Le codeur 30 comporte, reliés entre eux par un bus d'adresses et de données 902: - une unité centrale de traitement 900, 20 - une mémoire viveRAM 904, - une mémoire morte 905, et - lesdits ports d'entrée/sortie 903. Chacun des éléments illustrés en figure 2 est bien connu de l'homme du métier des micro-ordinateurs et des systèmes de transmission et, plus 25 généralement, des systèmes de traitement de l'information. Ces éléments connus ne sont donc pas décrits ici. On observe, cependant, que: - la source d'informations 100 pourrait être, par exemple, un périphérique d'interface, un capteur, un démodulateur, une mémoire externe ou un autre système de traitement de l'information (non représenté), et pourrait par 30 exemple fournir des séquences de signaux représentatifs de parole, de messages de service ou de données multimédia notamment de type IP ou ATM, sous forme de séquences de données binaires, et - l'émetteur 104 est adapté à émettre des signaux du système OFDM. La mémoire vive 904 conserve des données, des variables et des résultats intermédiaires de traitement, dans des registres de mémoire portant, dans la description, les mêmes noms que les données dont ils conservent les 5 valeurs. On observera, au passage, que le mot " registre " désigne, à travers la présente description, aussi bien une zone mémoire de faible capacité (quelques données binaires) qu'une zone mémoire de grande capacité (permettant de stocker un programme entier) au sein d'une mémoire vive ou d'une mémoire morte. La mémoire vive 904 comporte notamment les registres suivants: - un registre " symbolesinformation " dans lequel sont conservés les symboles d'information appartenant à Fq, - un registre " motscode ", dans lequel sont conservés les mots de code v, et - un registre " blocsdonnées " dans lequel sont conservés les blocs de données avant qu'ils ne soient soumis au modulateur 103. La mémoire morte 905 est adaptée à conserver, dans des registres qui, par commodité, possèdent les mêmes noms que les données qu'ils conservent: le programme de fonctionnement de l'unité centrale de traitement 900, dans un registre " programme ", - le cardinal du corps de Galois Fq servant d'alphabet pour le code utilisé, dans un registre " q ", - le nombre de symboles d'information servant à construire un mot de 25 code, dans un registre " k ", - la longueur des mots de code enregistrés, dans un registre " n ", - la matrice de parité du code, dans un registre " H ", et - la longueur des blocs de données transmises, dans un registre " longueurblocs ". Le schéma synoptique de la figure 3 représente, de façon très schématique, un appareil de réception de signaux 70 incorporant le décodeur 10. Cet appareil 70 comprend un clavier 711, un écran 709, un destinataire d'informations externe 109, un récepteur de données modulées 105 et un démodulateur 106, conjointement reliés à des ports d'entrée/sortie 703 du décodeur 10 qui est réalisé ici sous la forme d'une unité logique. Le décodeur 10 comporte, reliés entre eux par un bus d'adresses et de données 702: - une unité centrale de traitement 700, - une mémoire vive (RAM) 704, - une mémoire morte (ROM) 705, et - lesdits ports d'entrée/sortie 703. Chacun des éléments illustrés en figure 3 est bien connu de l'homme du métier des micro-ordinateurs et des systèmes de transmission et, plus généralement, des systèmes de traitement de l'information. Ces éléments connus ne sont donc pas décrits ici. On observe, cependant, que: - le destinataire d'informations 109 pourrait être, par exemple, un périphérique d'interface, un afficheur, un modulateur, une mémoire externe ou un autre système de traitement de l'information (non représenté), et pourrait être adapté à recevoir des séquences de signaux représentatifs de parole, de messages de service ou de données multimédia notamment de type IP ou 20 ATM, sous forme de séquences de données binaires, et - le récepteur 105 est adapté à recevoir des signaux du système OFDM. La mémoire vive 704 conserve des données, des variables et des résultats intermédiaires de traitement, dans des registres de mémoire portant, 25 dans la description, les mêmes noms que les données dont ils conservent les valeurs. La mémoire vive 704 comporte notamment les registres suivants: - un registre " blocsdonnées " dans lequel sont conservés les blocs de données issus du démodulateur 106, - un registre " motsreçus ", dans lesquels sont conservés les mots 30 reçus r, - un registre " motsassociés ", dans lequel sont conservés, le cas échéant, les mots v résultant de la correction de r, et - un registre " symbolesinformation ", dans lequel sont conservés les symboles calculés par l'unité 108. La mémoire morte 705 est adaptée à conserver, dans des registres qui, par commodité, possèdent les mêmes noms que les données qu'ils conservent: le programme de fonctionnement de l'unité centrale de traitement 700, dans un registre " programme ", - la longueur des blocs de données transmises, dans un registre " longueur blocs ", - le cardinal du corps de Galois Fq servant d'alphabet pour le code utilisé, dans un registre " q ", - la longueur des mots de code enregistrés, dans un registre " n ", - le nombre de symboles d'information servant à construire un mot de code, dans un registre " k ", et - la matrice de parité du code, dans un registre " H ". On notera que, dans certaines applications, il sera commode d'utiliser le même dispositif informatique (fonctionnant en mode multi-tâches) pour l'échange, c'est-à-dire à la fois l'émission et la réception, de signaux selon l'invention; dans ce cas, les unités 10 et 30 seront physiquement identiques. Pour terminer, on observera que, lorsque le codage fait appel à une équation algébrique (2) et lorsque le canal considéré produit à la fois des erreurs en rafale et des erreurs indépendantes au niveau des symboles (et non des agrégats), il est conseillé d'utiliser deux décodeurs en parallèle: le premier fera appel à l'algorithme de décodage selon l'invention, et le second fera appel 25 à un algorithme connu quelconque apte à corriger, pour un code de géométrie algébrique, les erreurs et/ou les effacements de symboles individuellement (par exemple l'algorithme dit de " Feng et Rao "). Si un seul de ces deux algorithmes est capable de fournir une estimation du mot transmis, ou si les deux algorithmes fournissent la même estimation, il sera naturel d'accepter 30 cette estimation; en revanche, si ces algorithmes fournissent deux estimations différentes, il faudra alors prévoir une méthode d'arbitrage prenant en compte, de préférence, les caractéristiques du canal considéré. On observera également que, même si l'on a décrit ci-dessus, à titre d'exemple de réalisation, une application de l'invention à la transmission de données sur un canal hertzien, les procédés selon l'invention peuvent tout aussi bien être appliqués au stockage de masse, par exemple au sein d'une mémoire 5 d'ordinateur; dans ce cas, par exemple, l'unité 104 pourra être un enregistreur et l'unité 105 un lecteur de données sur disque magnétique ou magnétooptique. Une telle application est d'autant plus appropriée que certains supports d'enregistrement de ce type sont sujets à des erreurs en rafale. REVENDICATIONS 1. Procédé de codage de symboles d'information, comprenant une étape dans laquelle on associe à tout bloc de k symboles d'information 5 appartenant à un corps de Galois Fq, o q est un entier supérieur à 2 et égal à une puissance d'un nombre premier, un mot de code v de longueur n orthogonal à une matrice de parité H, caractérisé en ce que l'élément H, en position (o,I3) (o ac = 1,...,n-k, et D = 1,..., n) de ladite matrice de parité H est égal à la valeur prise par le monôme M, au point Pc, o - les monômes M, - X'i Yi, o les entiers i et j sont positifs ou nuls, sont tels que si, parmi ces monômes, il en existe un associé à i > 0 et à j quelconque, alors il en existe aussi un associé à (i-1) et à j, et s'il en existe un associé à i quelconque et à j > 0, alors il en existe aussi un associé à i et à (j-1), et - - lesdits points Pu sont des couples de symboles non-nuls de Fq qui ont été classés par agrégats: (Xl,Yl(xl)), (xl,Y2(xl)), ..... (xYl(xll)) ; (x2,Yl(X2)), (x2,Y2(x2)) .... , (x2yX2 (x2));... ; (x,yl(Xj)), (xp,y2(x)), ..., (xp,yx (xp,)) (avec yXp =n). p=l 2. Procédé de codage selon la revendication 1, dans lequel lesdits 20 mots de code v sont destinés à être transmis sous forme de blocs de longueur prédéterminée, caractérisé en ce que - on met bout à bout les mots de code v successifs de manière à former une chaîne continue de données à transmettre, et - on découpe cette chaîne de données en blocs de ladite longueur 25 prédéterminée. 3. Procédé de codage selon la revendication 2, dans lequel les mots de code ne sont pas exactement divisibles en blocs, caractérisé en ce que l'on complète chaque bloc incomplet par une séquence de données quelconque prédéterminée. 4. Procédé de codage selon la revendication 2, dans lequel les mots de code ne sont pas exactement divisibles en blocs, caractérisé en ce que l'on complète chaque bloc incomplet en copiant la valeur des données situées en un nombre de positions prédéterminées du mot de code correspondant égal au nombre de données à compléter. 5. Procédé de codage selon la revendication 4, caractérisé en ce que lesdites données copiées sont situées dans le même bloc incomplet. 6. Procédé de codage selon l'une quelconque des revendications précédentes, caractérisé en ce que lesdits points Pu font partie des solutions 10 d'une équation algébrique Xb+Cya + E c,,X'Y'=O, o c (É 0) et les c y sont des éléments de Fq, a et b sont des entiers strictement positifs et premiers entre eux, et o la somme ne porte que sur les entiers i etj qui satisfont a i + b j 7. Procédé de codage selon la revendication 6, caractérisé en ce que lesdits monômes M, = X' Yi vérifient: ai+bj 5 m, o m est un entier strictement positif prédéterminé, et en ce que 20 (x) 5 jmax + 1 pour tout x=XIX2,.-XS, 8. Procédé de codage, caractérisé en ce que la matrice de parité du code est obtenue en post-multipliant une matrice de parité telle que définie dans un procédé selon l'une quelconque des revendications précédentes, par 25 une matrice diagonale non singulière. 9. Procédé de codage de symboles d'information, comprenant une étape dans laquelle on associe à tout bloc de k symboles d'information appartenant à un corps de Galois Fq, o q est un entier supérieur à 2 et égal à une puissance d'un nombre premier, un mot de code v I de longueur n 30 orthogonal à une matrice de parité HI, et une étape dans laquelle on applique une permutation prédéterminée 7i aux composantes de v 7 de façon à obtenir des mots v destinés à être transmis, caractérisé en ce que ladite matrice de parité Ho est obtenue en appliquant la permutation 7zaux colonnes d'une matrice de parité telle que définie dans un procédé selon l'une quelconque des revendications précédentes. 10. Procédé de décodage de données reçues, caractérisé en ce que lesdites données résultent de la transmission de données qui ont été codées conformément à un procédé selon l'une quelconque des revendications précédentes. 11. Procédé de décodage de données reçues résultant de la 10 transmission de données qui ont été codées conformément à un procédé selon la revendication 7, caractérisé en ce que, un mot r -= [ r(Xl, Y l ( X l) v,... r(x lyx (Xl)), ..., r(xp,yak (x,)) ], de longueur n ayant été reçu, et un entier smax vérifiant ( x) -1 . ,x, le symbole v(x) rs( X)rS (x)= - Ui (x)]S r(x,si (x)) i=l est effacé si au moins un des symboles r(x,yi(x)) est lui-même effacé, et * on calcule le vecteur de syndromes d'erreurs s - Ht(s)rsT, o Xl x2... xp x-I - I 1 2 et o t(s) dsignele ombre de monx2mes M = X Y ayant j s, et o t(s) désigne le nombre de monômes Ma = X' Y'H ayant j = s, - on essaye de calculer un mot -0 [%0(X1),'O(x2), ...,o(xp)] en corrigeant le mot r0 d'après le vecteur de syndromes d'erreurs 60 au moyen d'un algorithme de correction d'erreurs apte à tenir compte des effacements, -pour s = 1,...Smax: a au cas o la tentative de correction précédente a abouti, on efface pour tout x tel que Os_(x) rs_1(x), les symboles rp(x) pour p = s,..., Smax, et * on essaye de calculer un mot [(xl),(x2...,(x)] en corrigeant le mot rs d'après le vecteur de syndromes d'erreurs as au moyen d'un algorithme de correction d'erreurs apte à tenir compte des effacements, et - au cas o les (Smax + 1) tentatives de correction ci-dessus ont abouti, on calcule, pour x = xl,x2, ....xpI, les symboles O(x,yi), o i = 1, ...,; X(x), qui sont respectivement les estimations des symboles émis correspondant aux symboles reçus r(x,yi), en résolvant le système de (Smax + 1) équations (x) Os(x)- % [ye(x)]s (x, yi(x)) , pour s = 0, ... , smax. i=1..CLMF: 12. Procédé de communication de données sous forme de blocs de longueur prédéterminée, caractérisé en ce qu'il comprend les étapes suivantes: a) les données à transmettre sont codées conformément à un procédé de codage selon l'une quelconque des revendications 1 à 9, b) lesdits blocs de données codées sont transmis par OFDM, et c) les données reçues sont décodées conformément à un procédé selon la revendication 10 ou la revendication 11. 13. Dispositif de codage (30) comprenant une unité de calcul de mots de code (102) apte à associer à tout bloc de k symboles d'information 25 appartenant à un corps de Galois Fq, o q est un entier supérieur à 2 et égal à une puissance d'un nombre premier, un mot de code v de longueur n orthogonal à une matrice de parité H, caractérisé en ce que l'élément Ha en position (oc,3) (o o( = 1,....n-k, et D = 1,..., n) de ladite matrice de parité H est égal à la valeur prise par le monôme Ma au point Pc, o les monômes M, X' Yi, o les entiers i et j sont positifs ou nuls, sont tels que si, parmi ces monômes, il en existe un associé à i > 0 et à j quelconque, alors il en existe aussi un associé à (i-1) et à j, et s'il en existe un associé à i quelconque et à j > 0, alors il en existe aussi un associé à i et à (j-1), et - lesdits points Pp sont des couples de symboles non-nuls de Fq qui ont été classés par agrégats: (xl,Yl(xl)), (Xl,Y2(xl)), ..., (Xl,Y2Xi(xl)); (x2,Yl(X2)), (x2,Y2(X2)),... J-t (X2,y2(x2));..; (x,Yl(xpJ), (xp,,Y2(xJ)), ..., (xp,yp (x1)) (avec E2p =n). p=l 14. Dispositif de codage selon la revendication 13, caractérisé en ce qu'il comprend en outre une unité de formatage (20) apte à mettre bout à bout les mots v successifs de manière à former une chaîne continue de données à transmettre, et de découper cette chaîne de données en blocs de longueur prédéterminée. 15. Dispositif de codage selon la revendication 14, dans lequel les mots de code ne sont pas exactement divisibles en blocs, caractérisé en ce que ladite unité de formatage (20) est capable de compléter chaque bloc incomplet par une séquence de données quelconque prédéterminée. 16. Dispositif de codage selon la revendication 14, dans lequel les 20 mots de code ne sont pas exactement divisibles en blocs, caractérisé en ce que ladite unité de formatage (20) est capable de compléter chaque bloc incomplet en copiant la valeur des données situées en un nombre de positions prédéterminées du mot de code correspondant égal au nombre de données à compléter. 17. Dispositif de codage selon la revendication 16, caractérisé en ce que lesdites données copiées sont situées dans le même bloc incomplet. 18. Dispositif de décodage (10) de données reçues résultant de la transmission de données codées selon l'une quelconque des revendications 1 à 9, caractérisé en ce qu'il comprend: - une unité de correction d'erreurs (107) apte à corriger les erreurs de transmission desdites données codées, et - une unité de calcul de symboles d'information (108). 19. Dispositif de décodage de données reçues résultant de la 5 transmission de données codées selon la revendication 7, caractérisé en ce que, un mot r -= [ r(xl, y, (xl)), *, r(xlyRl (xl), .... r(x," yo 9 (xl, ) de longueur n ayant été reçu, et un entier Smax vérifiant ( x) -1 - Smax .,x,, chaque symbole X(x) rs (x) - [yi(x)]Sr(x, Yi(x)) i=1 est effacé si au moins un des symboles r(x,yi(x)) est lui-même effacé, et * calculer le vecteur de syndromes d'erreurs cs - Ht(S)rs T, O Ht-Xl x2 '"xp, Ht = X2... X:t-I I tY1 xI x2 '" x et o t(s) désigne le nombre de monômes Mt = X'i Y' ayantj = s, - essayer de calculer un mot 0- [=o(Xl)),o(x2) .....0(x,)] en corrigeant le mot ro d'après le vecteur de syndromes d'erreurs c0 au moyen d'un algorithme de correction d'erreurs apte à tenir compte des effacements, - pour s = 1,...,smax * au cas o la tentative de correction précédente a abouti, effacer pour tout x tel que 9s_1(x) É rs_1(x), les symboles rp(x) pour p = s,...,Smax, et * essayer de calculer un mot s [v9(xl),ós(x2),..., s(x)] en corrigeant le mot rs d'après le vecteur de syndromes d'erreurs as au moyen d'un algorithme de correction d'erreurs apte à tenir compte des effacements, et - au cas o les (Smax +1) tentatives de correction ci-dessus ont abouti, calculer, pour x=xl,x2,...,xp, les symboles ó(x,yi), o i = 1,...,I(x), qui sont respectivement les estimations des symboles émis correspondant aux symboles reçus r(x,yi), en résolvant le système de (Smax +1) équations: X(x) Cs(x)- % [yi(x)]s (x,yi(x)) , pours=, = ..... ,smax. i=1..CLMF: 20. Dispositif de décodage selon la revendication 18 ou la revendication 19, dans lequel lesdits mots de code v ont été transmis sous forme de blocs de longueur prédéterminée, caractérisé en ce qu'il comprend en outre une unité de reformatage (40) capable de mettre bout à bout lesdits blocs 15 de données reçues après en avoir retiré, le cas échéant, les données ajoutées avant transmission pour compléter certains blocs, et d'identifier dans le flux de données ainsi obtenues des séquences de longueur n formant des " mots reçus " r. 21. Appareil d'émission de signaux numériques codés (48), 20 caractérisé en ce qu'il comprend un dispositif de codage selon l'une quelconque des revendications 13 à 17, des moyens (103) pour moduler lesdits signaux numériques codés, et un émetteur de données modulées (104). 22. Appareil selon la revendication 21, caractérisé en ce que ladite modulation est conforme à l'OFDM. 23. Appareil d'enregistrement de signaux numériques codés (48), caractérisé en ce qu'il comprend un dispositif de codage selon l'une quelconque des revendications 13 à 17, des moyens (103) pour moduler lesdits signaux numériques codés, et un enregistreur de données modulées (104). 24. Appareil de réception de signaux numériques codés (70), caractérisé en ce qu'il comprend un dispositif de décodage selon l'une quelconque des revendications 18 à 20, des moyens (106) pour démoduler lesdits signaux numériques codés, et un récepteur de données modulées (105). 5 25. Appareil selon la revendication 24, caractérisé en ce que ladite démodulation est conforme à l'OFDM. 26. Appareil de lecture de signaux numériques codés (70), caractérisé en ce qu'il comprend un dispositif de décodage selon l'une quelconque des revendications 18 à 20, des moyens (106) pour démoduler 10 lesdits signaux numériques codés, et un lecteur de données modulées (105). 27. Système de télécommunication de données sous forme de blocs de longueur prédéterminée, caractérisé en ce qu'il comprend: - au moins un appareil d'émission de signaux numériques codés selon la revendication 21 ou la revendication 22, et - au moins un appareil de réception de signaux numériques codés selon la revendication 24 ou la revendication 25. 28. Système de stockage de masse, caractérisé en ce qu'il comprend: - au moins un appareil d'enregistrement de signaux numériques codés 20 selon la revendication 23, - au moins un support d'enregistrement, et - au moins un appareil de lecture de signaux numériques codés selon la revendication 26. 29. Moyen de stockage de données inamovible, caractérisé en ce 25 qu'il comporte des instructions de code de programme informatique pour l'exécution des étapes d'un procédé de codage selon l'une quelconque des revendications 1 à 9, et/ou d'un procédé de décodage selon la revendication 10 ou la revendication 11, et/ou d'un procédé de communication selon la revendication 12. 30. Moyen de stockage de données partiellement ou totalement amovible, caractérisé en ce qu'il comporte des instructions de code de programme informatique pour l'exécution des étapes d'un procédé de codage selon l'une quelconque des revendications 1 à 9, et/ou d'un procédé de décodage selon la revendication 10 ou la revendication 11, et/ou d'un procédé de communication selon la revendication 12. 31. Programme d'ordinateur, caractérisé en ce qu'il contient des 5 instructions telles que, lorsque ledit programme commande un dispositif de traitement de données programmable, lesdites instructions font que ledit dispositif de traitement de données met en oeuvre un procédé de codage selon l'une quelconque des revendications 1 à 9, et/ou un procédé de décodage selon la revendication 10 ou la revendication 11, et/ou d'un procédé de 10 communication selon la revendication 12.