Brevet FR2850500A1 — publié le 20040730

H=HHs HsM2 H=HtM1 HtM2 PROCEDE ET DISPOSITIF DE CALCUL DU SYNDROME NOTAMMENT POUR DES CODES HYPERELLIPTIQUES La présente invention se rapporte à un procédé et à un dispositif de 5 calcul du syndrome notamment pour des codes hyperelliptiques, mais s'appliquant également à d'autres types de codes. L'invention appartient au domaine du codage correcteur d'erreurs, utilisé pour détecter et/ou corriger des erreurs survenues dans la transmission et la réception d'un message dans un système de communication numérique, 10 ou lors de la lecture ou l'écriture d'un message dans un moyen de stockage. Lors de la transmission, on ajoute des symboles redondants au message d'origine et ces symboles supplémentaires sont utilisés à la réception pour détecter et/ou corriger les erreurs éventuellement survenues. Parmi les codes correcteurs d'erreurs, on trouve les codes en blocs. 15 Un code (NK) transforme un message M de K symboles successifs en un mot de code C de N symboles appartenant à un corps de Galois, avec N > K. La correspondance entre le mot de code et le message est la relation C = M.G, o C est sous la forme d'un vecteur ligne à N éléments, M est sous la forme d'un vecteur ligne à K éléments et G est une matrice de dimension KxN appelée 20 matrice génératrice. La matrice de vérification de parité (en anglais "parity-check matrix") est la matrice H de dimension (N-K)xN telle que pour tout mot de code C, H.CT = 0, le signe T indiquant la transposition et 0 étant ici un vecteur colonne avec N-K zéros. On notera que la matrice de vérification de parité H est liée à la 25 matrice génératrice G par la relation G.HT = 0, o 0 est la matrice nulle de dimension Kx(N-K). Un syndrome S est un vecteur de N-K symboles obtenu en multipliant la matrice de vérification de parité et le mot reçu, qui est un mot de code éventuellement entaché d'erreur. Soit R le mot reçu. Ainsi, S = H.RT. 30 Lorsque, dans le système de transmission considéré, la réception est effectuée en mettant en oeuvre un algorithme à décision binaire, le mot reçu est aussi formé d'éléments du corps de Galois mentionné ci-dessus. Il en résulte qu'on peut considérer le mot reçu R comme un mot de code C additionné d'un mot d'erreur E, soit R = C + E. En vertu des propriétés du corps de Galois, S = H.RT = H.CT + H.ET = H.ET. Le syndrome caractérise donc l'erreur. Pour chaque syndrome, il existe plusieurs mots d'erreur. Pour 5 respecter le critère du maximum de vraisemblance, le décodeur recherche le mot d'erreur de poids le plus faible compatible avec le syndrome, car il est le plus probable. Ce mot, une fois trouvé, permet d'obtenir le mot de code par l'opération C = R + . En effet, la soustraction et l'addition sont des opérations identiques dans un corps de Galois de caractéristique 2. Ainsi, le décodage d'un code en bloc comporte en particulier les opérations suivantes: - un calcul de syndrome, - l'établissement du mot d'erreur à partir du syndrome, - la restitution du mot de code par addition du mot reçu et du mot 15 d'erreur. A titre d'exemples de codes en blocs, on peut citer les codes de Hamming et BCH (Bose, Chaudhuri et Hocqenghem), dont les plus usuels sont les codes binaires. Un code est dit cyclique si toute permutation circulaire d'un mot de 20 code est aussi un mot de code. Il en résulte que le mot de code C associé à K-1 tout mot d'information M qu'on peut écrire m(x) = Ymkxk peut être représenté k=O sous forme polynomiale par c(x) = g(x)m(x), o g est appelé le polynôme générateur du code. Ce polynôme est de degré N-K et divise xN + 1. La relation entre la matrice génératrice G et ce polynôme g est mise en évidence lorsqu'on 25 met G sous une forme qui fait apparaître les coefficients du polynôme générateur sur sa première ligne et les permutations circulaires de cet ensemble de coefficients sur ses lignes suivantes. Un polynôme de vérification de parité h existe et est tel que h(x)g(x) = xN + 1. On donne maintenant quelques notions sur la représentation des 30 éléments d'un corps de Galois. Pour engendrer le corps GF(2M), un polynôme de GF(2) irréductible de degré M doit être choisi. On rappelle qu'un polynôme irréductible de GF(2) n'est pas divisible par un autre polynôme de GF(2) de degré moindre que M et supérieur à zéro. Le polynôme choisi est dit polynôme générateur du corps. En prenant une racine y de ce polynôme choisi alors l'ensemble {Y0, yI, ,2, .., YM-1} 5 forme une base pour le corps GF(2M) vu comme un espace vectoriel sur GF(2) . Cette base est dite polynomiale ou canonique. On peut alors représenter les éléments du corps sur cette base suivant une notation vectorielle. Ainsi, dans GF(24), la base est {y , y1, Y2 y3} pour le polynôme x4+x+l. L'élément Y7 est représenté dans la base polynomiale par le vecteur (1011) , le poids de y( étant 10 à droite. Quant à la réalisation matérielle des opérations d'addition et de multiplication, on donne les indications ci-après. Les circuits addition sont simplement des portes "ou exclusif' appliquées bit à bit sur les représentations sous forme de vecteurs. Ainsi, dans 15 GF(24) engendré par le polynôme x4+x+1, Y7+y1 s'écrit (1011)+(0010) et vaut (1001) qui correspond à y14 On distingue deux cas de multiplication: la multiplication générale et la multiplication par une constante. La multiplication par une constante intervient lorsqu'une des 20 opérandes est définie par avance. Les circuits multiplication par une constante sont une suite de portes "ou exclusif' organisées sur les M bits en fonction des M bits représentant la constante. La multiplication est considérée comme une suite d'additions. Par exemple, le multiplicateur étant y5 dans GF(24), le résultat se traduit par les attributions suivantes aux bits A0 à A3 du produit, B (bits B0 à 25 B3) étant le multiplicande: A0 ≤ B2 XOR B3 A1 ≤ B0 XOR B2 A2≤ B0 XOR B1 XOR B3 A3 ≤ B1 XOR B2 o XOR désigne l'opérateur "ou exclusif". Les matrices ci-dessous donnent un exemple de cellule de multiplication générale C=A.B, c'est-à-dire si ni A ni B ne sont définis d'avance: on peut exprimer dans GF(2) le calcul de la multiplication C=A.B dans GF(16) en utilisant la notation matricielle CO AO A3 A2 AI BO C C A1 A0+A3 A2+A3 Al+A2 B1 C2 A2 A1 A0 + A3 A2 + A3 B2 C3 A3 A2 A1 A0 + A3 B3 L'addition se traduit par une porte "ou exclusif' et la multiplication ou 5 juxtaposition par une porte "et" (car ici le corps considéré est GF(2)). La complexité d'une addition générale est environ M fois plus grande que celle d'une multiplication par une constante. Les codes de Reed-Solomon (N,K) sont obtenus en utilisant comme générateur un polynôme parmi les polynômes possibles de la forme N-K-1 g(x)= FI (x+ya+i); les mots de code sont de longueur N; le nombre a est i=o arbitrairement choisi; en général, a = 1. La valeur maximale de N est liée au facteur d'extension du corps de Galois GF(2P) utilisé, par la relation N = 2P-1. Ainsi, dans GF(256) = GF(28), on a au plus N = 255. La classe de codes à laquelle s'applique la présente invention se 15 définit par une extension des codes de Reed-Solomon. On peut en effet définir un code par une matrice de vérification de parité construite sur deux matrices de vérification de parité de codes de Reed-Solomon, de forme H:Hs "s1 HtM1 HtM2 o Hs est une matrice ayant s lignes et N colonnes, Ht est une matrice ayant t 20 lignes et N colonnes, et M1 et M2 sont deux matrices diagonales. Une sous-classe de ces matrices se définit par la création d'une matrice de vérification de parité formée à partir d'une courbe dans GF(2M) d'équation à deux inconnues u(X,Y) = 0. En choisissant une courbe telle que pour toute valeur x substituée à l'inconnue X, il existe 2 valeurs y1 et Y2 de Y 25 satisfaisant l'équation u(X,Y) = 0 o u(X,Y) représente un polynôme à deux variables irréductible sur GF(2M), on peut alors créer une matrice dont les éléments sont les évaluations des monômes X'Yj pour différentes valeurs de X. Si la courbe admet N valeurs de X, on prend les 2N-2-2K premiers monômes ordonnés suivant une fonction poids p(X'Yi) = bi+ aj, a étant le maximum des exposants de X et b le maximum des exposants de Y. Ce code est dit hyperelliptique. Dans une autre sous-classe, définissant des codes non hyperelliptiques, on peut choisir comme matrice M1 la matrice identité Id, et comme matrice M2, la matrice yld, voire la matrice nulle. On cherche à trouver la méthode et le circuit les plus efficaces pour calculer le syndrome d'un code appartenant à la classe des codes présentée ci10 dessus. Les codes de Reed-Solomon, de par leur structure, admettent une méthode plus simple, pour obtenir le syndrome, que la multiplication de la matrice de vérification de parité avec le mot reçu. En effet, les codes de Reed-Solomon sont cycliques. On peut donc 15 réaliser le décodage sous forme de la division polynomiale par le calcul du reste de la division xN-Km(x) par g(x). La division polynomiale peut être réalisée facilement du point de vue matériel, au moyen de groupes de registres à décalage et de portes "ou exclusif". On peut aussi calculer facilement le syndrome en évaluant le polynôme associé au mot de code reçu pour les 20 différentes valeurs des racines du polynôme générateur du code. Pour plus de détails sur ce point, on se reportera utilement à l'ouvrage de Richard E. BLAHUT intitulé "Theory and Practice of errorcontrol codes", Addison-Wesley, Reading, Mass., 1983. Le circuit utilisé est alors simplifié. Ce circuit est illustré sur la figure 1. Le circuit comporte N-K registres de mémoire 101, ..., 1 ON-K de dimension M, dont les entrées sont, d'une part, alimentées par une horloge (représentée par "clk" sur le dessin) et, d'autre part, respectivement reliées aux sorties de N-K multiplieurs 121, ..., 12N-K. Les sorties des registres de mémoire 101, ..., 1ONK sont respectivement reliées aux entrées de N-K additionneurs 30 141, ... 14N-K. Les additionneurs 141, ... 14N-K reçoivent par ailleurs en entrée les symboles codés du mot reçu, codés sur M bits. Les sorties des additionneurs 141, ... 14N-K sont respectivement reliées aux entrées des multiplieurs 121, ..., 12N-K, dont les autres entrées sont respectivement alimentées par chacune des racines du polynôme générateur du code, notées h à N-K-1+h L'algorithme de Horner est utilisé pour effectuer l'évaluation du 5 polynôme associé au mot de code reçu pour les différentes valeurs des racines du polynôme générateur du code. On rappelle que l'algorithme de Horner K-1 consiste à écrire un polynôme m(x) = Y-mkxk récursivement, sous la forme k=0 m(x) = (...((mkx + mk-1)x + ... )x + mo. Pour former la ibème valeur du syndrome, les symboles du message 10 reçu sont donc multipliés par la racine ième après avoir été additionnés au résultat précédent qui est mémorisé dans le registre parallèle mémorisant M éléments binaires. La méthode élémentaire de calcul du syndrome pour les codes hyperelliptiques est la multiplication du mot reçu R par la matrice de vérification 15 de parité H. La réalisation matérielle de cette méthode est illustrée sur la figure 2. Le circuit comporte 2xN+(s+t) registres de mémoire identiques au registre 20, (2N-2)x(s+t) multiplieurs identiques au multiplieur 22 et (2N-3)x(s+t) 20 additionneurs identiques à l'additionneur 24. Les symboles codés sur M bits du mot reçu arrivent en série et sont continuellement mis en mémoire sur les 2N registres de mémoire. Le ième syndrome est calculé par l'addition successive, au moyen d'additionneurs du type 24, des symboles reçus modifiés par un multiplieur du type 22, qui est un 25 multiplieur par une constante, cette constante étant l'élément Hi,j de la matrice de vérification de parité. Ainsi, du point de vue de la complexité de calcul, cette réalisation nécessite (2N-2)x(s+t) multiplications par une constante et (2N-3)x(s+t) additions, ainsi que 2xN+(s+t) registres de mémoire. L'opération est effectuée 30 en 2N coups d'horloge, lorsque le dernier symbole du mot reçu a été pris en compte. Comme mentionné plus haut, on cherche à obtenir des algorithmes moins complexes pour calculer le syndrome dans le cas des codes hyperelliptiques, en définissant la complexité soit comme le nombre d'opérations à effectuer lorsque le calcul est mis en oeuvre suivant un 5 programme, soit comme le nombre de portes logiques lors du calcul par un circuit intégré. Dans ce but, la présente invention propose un procédé de calcul du syndrome S = H.RT, o T désigne la transposition, d'un mot de code reçu R = (T U), o T et U sont des vecteurs lignes de longueur N, N étant un entier 10 strictement positif, après passage dans un canal de transmission, ce mot de code R appartenant à un code ayant pour matrice de vérification de parité une matrice de la forme H = [H M H M de dimension (2N)x(s+t), o Hs est une matrice de dimension sxN, Ht est une matrice de dimension txN, o s et t sont des entiers strictement positifs, et o Mi et M2 sont des matrices diagonales de 15 dimension NxN, remarquable en ce qu'il comporte des étapes consistant à calculer les s premiers symboles du syndrome S en évaluant le polynôme associé à la matrice T+U aux racines du polynôme générateur de la matrice Hs, et à calculer les t symboles suivants du syndrome S en évaluant le polynôme associé à la matrice T.M1+U.M2 aux racines du polynôme générateur de la 20 matrice Ht. On montre ci-après que la complexité de l'opération de calcul de syndrome est ainsi réduite de façon appréciable, sans conséquence dommageable sur la vitesse de calcul. Selon une caractéristique particulière, les étapes d'évaluation 25 mentionnées ci-dessus mettent en oeuvre l'algorithme de Horner. Selon une caractéristique particulière, le code auquel s'applique l'invention est un code hyperelliptique. Néanmoins, l'invention peut aussi s'appliquer à d'autres codes, qui ne sont pas hyperelliptiques. Dans le même but de réduction de la complexité, la présente 30 invention propose également un dispositif de calcul du syndrome S = H.RT, o T désigne la transposition, d'un mot de code reçu R = (T U), o T et U sont des vecteurs lignes de longueur N, N étant un entier strictement positif, après passage dans un canal de transmission, ce mot de code R appartenant à un code ayant pour matrice de vérification de parité une matrice de la forme H=[HsM HH] de dimension (2N)x(s+t), o Hs est une matrice de dimension sxN, Ht est une matrice de dimension txN, o s et t sont des entiers strictement positifs, et o M1 et M2 sont des matrices diagonales de dimension NxN, remarquable en ce qu'il comporte: - un compteur de coups d'horloge, - des première et seconde mémoires mortes, reliées au compteur et 10 représentant respectivement les N éléments de la diagonale des matrices M1 et M2e - un premier multiplieur, relié à la sortie de la première mémoire morte, multipliant la sortie de la première mémoire morte avec un symbole du mot reçu, - un deuxième multiplieur, relié à la sortie de la seconde mémoire morte, multipliant la sortie de la seconde mémoire morte avec un symbole du mot reçu retardé de N coups d'horloge, - un premier additionneur, relié à la sortie des premier et deuxième multiplieurs et fournissant en sortie des symboles correspondant à T.M1+U. M2, 20 - un deuxième additionneur, fournissant en sortie des symboles correspondant à U+T, - un premier circuit mettant en oeuvre l'algorithme de Horner, relié à la sortie du deuxième additionneur, pour calculer les s premiers éléments du syndrome, et - un second circuit mettant en oeuvre l'algorithme de Horner, relié à la sortie du premier additionneur, pour calculer les t derniers éléments du syndrome. Dans un mode particulier de réalisation, les première et seconde mémoires mortes sont deux tables de consultation. Dans une première variante, les première et seconde mémoires mortes sont deux multiplexeurs. Dans une deuxième variante, les première et seconde mémoires mortes sont des circuits combinatoires. Le choix de l'un ou l'autre des trois modes de réalisation précédents est lié au type de technologie mis en oeuvre dans le circuit physique utilisé. Par 5 exemple, si ce circuit est un FPGA (tableau de portes programmable par l'utilisateur, en anglais "Field Programmable Gate ArraV'), on choisira des tables de consultation. Si le circuit est un ASIC (circuit intégré dédié, en anglais "Application Specific Integrated Circuit') synchrone, on choisira plutôt des multiplexeurs. Dans le cas d'une logique asynchrone, il sera préférable d'opter 10 pour des circuits combinatoires. Toujours dans le même but, la présente invention propose en outre un procédé de décodage comportant des étapes mettant en oeuvre un procédé de calcul du syndrome tel que ci-dessus. Toujours dans le même but, la présente invention propose aussi un 15 dispositif de décodage comportant un dispositif de calcul du syndrome tel que ci-dessus. La présente invention vise aussi un appareil de traitement de signaux numériques, comportant des moyens adaptés à mettre en oeuvre un procédé de calcul du syndrome tel que ci-dessus. La présente invention vise aussi un appareil de traitement de signaux numériques, comportant un dispositif de calcul du syndrome tel que cidessus. La présente invention vise aussi un réseau de télécommunications, comportant des moyens adaptés à mettre en oeuvre un procédé de calcul du syndrome tel que ci-dessus. La présente invention vise aussi un réseau de télécommunications, comportant un dispositif de calcul du syndrome tel que ci-dessus. La présente invention vise aussi une station mobile dans un réseau de télécommunications, comportant des moyens adaptés à mettre en oeuvre un procédé de calcul du syndrome tel que ci-dessus. La présente invention vise aussi une station mobile dans un réseau de télécommunications, comportant un dispositif de calcul du syndrome tel que ci-dessus. La présente invention vise aussi une station de base dans un réseau de télécommunications, comportant des moyens adaptés à mettre en oeuvre un procédé de calcul du syndrome tel que ci-dessus. La présente invention vise aussi une station de base dans un réseau 5 de télécommunications, comportant un dispositif de calcul du syndrome tel que ci-dessus. L'invention vise aussi - un moyen de stockage d'informations lisible par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique, 10 permettant la mise en oeuvre d'un procédé de calcul du syndrome tel que cidessus, et - un moyen de stockage d'informations amovible, partiellement ou totalement, lisible par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique, permettant la mise en oeuvre d'un 15 procédé de calcul du syndrome tel que ci-dessus. L'invention vise aussi un produit programme d'ordinateur comportant des séquences d'instructions pour mettre en oeuvre un procédé de calcul du syndrome tel que ci-dessus. Les caractéristiques particulières et les avantages du dispositif de 20 calcul du syndrome, du procédé et du dispositif de décodage, des différents appareils de traitement de signaux numériques, des différents réseaux de télécommunications, des différentes stations mobiles, des différentes stations de base, des différents moyens de stockage et du produit programme d'ordinateur étant similaires à ceux du procédé de calcul du syndrome selon 25 l'invention, ils ne sont pas rappelés ici. D'autres aspects et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit de modes particuliers de réalisation, donnés à titre d'exemple non limitatif. La description se réfère aux dessins qui l'accompagnent, dans lesquels: - la figure 1, déjà décrite, illustre de façon schématique un circuit connu de calcul du syndrome pour des codes de Reed-Solomon; il - la figure 2 déjà décrite, illustre de façon schématique un circuit connu de calcul du syndrome pour des codes hyperelliptiques; - la figure 3 illustre de façon schématique un circuit de calcul du syndrome pour des codes hyperelliptiques conforme à la présente invention, dans un mode particulier de réalisation; - la figure 4 est un organigramme illustrant les principales étapes d'un procédé de calcul du syndrome pour des codes hyperelliptiques conforme à la présente invention, dans un mode particulier de réalisation; - la figure 5 représente sous une forme schématique simplifiée un 10 réseau de télécommunications conforme à la présente invention; et - la figure 6 illustre schématiquement la constitution d'une station de réseau ou station d'émission informatique adaptée à mettre en oeuvre un procédé de calcul du syndrome conforme à la présente invention. On montre que la matrice de vérification de parité H d'un code 15 hyperelliptique peut se décomposer sous la forme suivante: H= Hs Hsl HtM[ HtM2] o H est une matrice de dimension (2N)x(s+t), Hs est une matrice de dimension sxN, Ht est une matrice de dimension txN, o N, s et t sont des entiers strictement positifs, et o Ml et M2 sont des matrices diagonales de dimension 20 NxN. Soit R un mot de code reçu après passage dans un canal de transmission. Ecrivons R sous la forme R = (T U), o T et U sont des vecteurs lignes de longueur N. Par définition, le syndrome S est obtenu par le produit suivant: H.RT Hs Hs TT Hs(TT+U) LHtMl HtM2][l=[Ht(MITT +M2UT)j On peut alors remplacer le calcul des s premiers symboles du syndrome par l'évaluation du polynôme associé à la matrice U+T aux racines du polynôme générateur de H.. On peut aussi remplacer le calcul des t symboles suivants du syndrome par l'évaluation du polynôme associé à la 30 matrice TM1+UM2 aux racines du polynôme générateur de Ht. Cela conduit à appliquer un algorithme tel qu'illustré par l'organigramme de la figure 4. On commence par initialiser un indice i à 0 (étape 40). Lorsque le message R constitué de 2N symboles a été reçu, une première étape (étape 5 42) consiste à créer un vecteur (c'est-à-dire un tableau, dans le cas de l'élaboration d'un programme informatique) A et un vecteur B de longueur N tels que A(i) = R(i)+R(i+N) et B(i) = Ml(i)R(i)+M2(i)R(i+N). Tant que i n'a pas atteint la valeur N (test 44 négatif), on incrémente l'indice i d'une unité (étape 46) et on réitère l'étape 42. Il y a s+t syndromes à calculer. Les s premiers syndromes sont calculés par l'application de l'algorithme de Horner pour l'évaluation des polynômes sur A et les t derniers, par l'application de l'algorithme de Horner pour l'évaluation des polynômes sur B, l'évaluation se faisant aux racines des polynômes générateurs GI et G2 respectivement associés à Hs et Ht. Ainsi, pour le calcul des s premiers syndromes, on initialise une variable k à la valeur h (étape 48) et une variable i à la valeur 0 (étape 50), puis on attribue à la kème composante du syndrome S(k) la valeur S(k).yk + A(i) (étape 52). Tant que la variable i n'a pas atteint la valeur N (test 54 négatif), on incrémente la variable i d'une unité (étape 56) et on réitère l'étape 52. Ensuite, 20 on incrémente la variable k d'une unité (étape 58) et on vérifie si la variable k a atteint la valeur s+h. Tant que ce n'est pas le cas (test 60 négatif), on reprend l'algorithme à l'étape d'initialisation 50. Pour le calcul des t syndromes suivants, on initialise une variable k' à la valeur h' (étape 62) et une variable i' à la valeur 0 (étape 64), puis on attribue 25 à la (k'+2t)ème composante du syndrome la valeur S(k'+2t). yk + B(i') (étape 66). Tant que la variable i' n'a pas atteint la valeur N (test 68 négatif), on incrémente la variable i' d'une unité (étape 70) et on réitère l'étape 66. Ensuite, on incrémente la variable k' d'une unité (étape 72) et on vérifie si la variable k' a atteint la valeur t+h'. Tant que ce n'est pas le cas (test 74 négatif), on reprend 30 l'algorithme à l'étape d'initialisation 64. La réalisation matérielle peut alors se faire sous une forme simplifiée, comme l'illustre la figure 3. Un compteur CPT 300 adresse deux tables de mémoire morte LUT, 302 et LUT2 304. Ces deux tables contiennent respectivement les N éléments de la diagonale des matrices M2 et M1. Ces mémoires ont donc M fils d'adresse et leurs sorties sont les valeurs codées sur M bits des symboles correspondant aux ibèes lignes des matrices quand l'adresse vaut i. La sortie de la mémoire LUT2 304 est multipliée par la recopie de l'entrée du système retardée de N coups d'horloge, au moyen d'un multiplieur 308, quand la sortie de la mémoire LUT1 302 est multipliée par l'entrée du système, qui est un symbole du mot reçu, au moyen d'un multiplieur 306. Les 10 deux résultats sont additionnés au moyen d'un additionneur 310. De cette façon, les symboles correspondant à T.M1+U.M2 sont calculés. Une autre branche permet, par une addition au moyen d'un additionneur 312, de créer les symboles correspondant à U+T. Ces symboles sont alors présentés à un circuit Cs identique à celui décrit plus haut à l'aide de 15 la figure 1, qui calcule les s premiers éléments du syndrome. Les symboles correspondant à T.M1+U.M2 sont quant à eux également présentés à un circuit Ct identique à celui de la figure 1, qui calcule les t derniers éléments du syndrome. Cette mise en oeuvre nécessite (s+t) multiplications par une 20 constante et (s+t)+2 additions, ainsi que N+(s+t) registres de mémoire. L'opération est effectuée en 2xN coups d'horloge, lorsque le dernier symbole du mot reçu a été pris en compte. Il faut ajouter néanmoins 2 tables de consultation (en anglais "look-up tables") et un compteur de zéro à N, ainsi que deux multiplications par des valeurs quelconques. Les tables de consultation ne sont pas de grandes consommatrices de transistors: en effet, suivant le choix de la courbe sur laquelle est construit le code hyperelliptique, on peut avoir une répétition cyclique des symboles, ce qui simplifie la construction de la table de consultation. Par exemple, pour le corps de Galois GF(16), pour un code hyperelliptique, la diagonale de la 30 matrice M1 vaut ( Y5,yY2,y5,,y,2, 'y5,y,y2,y5,Y, y2,y5,y,y2)et la diagonale de la matrice M2 vaut (,y4, 8, l0, Y 8 Y 10 14 Y8 lO Y4 Y8 y", y4 y8) L'homme du métier comprendra que la table de consultation est simple dans ce cas, car les mêmes symboles sont utilisés 5 fois. Il n'est donc pas nécessaire d'utiliser une mémoire morte de dimension 15; une mémoire de dimension 3 suffit pour l'exemple sur GF(24). Pour GF(28), une mémoire de dimension 15 est suffisante. Dans de tels cas, le compteur engendre les adresses cycliquement 5 et donc, ne compte pas de 0 à N-1, mais par exemple de 0 à 2 pour GF(24) et de 0 à 14 pour GF(28). Une variante aux tables de consultation peut être l'utilisation de deux multiplexeurs pilotés par le compteur et choisissant les éléments formant les matrices diagonales M1 et M2, dont les valeurs sont obtenues directement en 10 reliant directement les voies de données des multiplexeurs aux valeurs logiques O ou 1. Dans une autre variante, au vu des faibles dimensions de la mémoire morte pour certains corps, il est possible de remplacer les tables de consultation par des circuits combinatoires simples. Par exemple, dans GF(24), 15 pour la table de consultation LUT1 302, les vecteurs associés à 5y, y et 72 doivent être engendrés. Soit B = (B3, B2, BI, BO) le vecteur de sortie de la table. Celui-ci vaut respectivement (0110), (0010) , (0100), etc. Les fils d'adresses A= (Ai, AO) valent cycliquement (00), (01), (10), (00), (01), etc. Une mise en oeuvre des tables de Karnaugh,bien connues de l'homme du métier, 20 permet d'obtenir les équations suivantes: BO =0 B= Ai B2 =A.AO B3 =0 o le signe désigne l'inversion logique. On appréciera l'extrême simplicité de la mise en oeuvre dans ce cas, puisque 3 inverseurs et une porte "et" sont suffisants. Ainsi, les possibilités de conception sont multiples pour les mémoires LUT1 302 et LUT2 304, mais quel que soit le corps de Galois considéré, leur réalisation est économique. Dans le cas, évoqué en introduction, o la matrice M1 est égale à la matrice identité et M2 à la matrice yld ou même 0, le circuit est réalisé sans table de consultation et sans compteur. Le calcul du syndrome ne fait plus intervenir qu'une ou deux multiplications par une constante. Le tableau ci-dessous met en évidence la réduction de la complexité du calcul du syndrome obtenue grâce à la présente invention, en nombre d'opérations, par rapport au calcul direct effectué dans l'art antérieur. Calcul direct Invention Multiplications par une (2N-2)x(s+t) s+t constante Additions (2N-3)x(s+t) s+t+2 Cellules de stockage s+t+2N-2 N-1 + s+t Multiplications 0 2 Tables de consultation 0 2 Compteur O 1 Par exemple, pour N = 255 et s+t = 30, et pour un code (N',K') = (510,480), le tableau ci-dessus devient: Calcul direct Invention Multiplications par une 510x30 = 15300 30 constante Additions 509x30= 15270 32 Cellules de stockage 30+510 = 540 285 Multiplications O 2 Tables de consultation 0 2 Compteur O 1 Il est à noter que la réduction de la complexité n'a pas de conséquence néfaste sur la vitesse de calcul, puisque dans le cas d'un calcul direct comme dans le cas de la présente invention, le calcul du syndrome est 15 effectué en 2N coups d'horloge. Comme le montre la figure 5, un réseau de télécommunications selon l'invention est constitué d'au moins une station dite station de base SB désignée par la référence 64, et de plusieurs stations périphériques dites terminaux mobiles SPi, i = 1, ..., M, o M est un entier supérieur ou égal à 1, 5 respectivement désignées par les références 661, 662, ...., 66M. Les stations périphériques 661, 662, ..., 66M sont éloignées de la station de base SB, reliées chacune par une liaison radio avec la station de base SB et susceptibles de se déplacer par rapport à cette dernière. La station de base 64 peut comporter des moyens adaptés à mettre 10 en oeuvre un procédé de calcul du syndrome conforme à l'invention. En variante, la station de base 64 peut comporter un dispositif de calcul du syndrome conforme à l'invention. De façon similaire, au moins un des terminaux mobiles 66j peut comporter des moyens adaptés à mettre en oeuvre un procédé de calcul du syndrome conforme à l'invention ou comporter un dispositif de 15 calcul du syndrome conforme à l'invention. Dans le mode particulier de réalisation de la figure 5, l'invention s'applique à un réseau sans fil. Néanmoins, l'invention est adaptée à s'appliquer à tout système de communication, indépendamment du caractère filaire ou sans fil du réseau de télécommunications. La figure 6 illustre schématiquement la constitution d'une station de réseau ou station d'émission informatique, sous forme de schéma synoptique. Cette station comporte un clavier 911, un écran 909, une source d'information externe 910, un émetteur hertzien 906, conjointement reliés à un port d'entrées/sorties 903 d'une carte de traitement 901. La carte de traitement 901 comporte, reliés entre eux par un bus d'adresses et de données 902: - une unité centrale de traitement 900; une mémoire vive RAM 904; - une mémoire morte ROM 905; et - le port d'entrées/sorties 903. Chacun des éléments illustrés en figure 6 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 communs ne sont donc pas décrits ici. On observe, cependant, que: - la source d'information 910 est, par exemple, un périphérique d'interface, un capteur, un démodulateur, une mémoire externe ou un autre 5 système de traitement d'information (non représenté), et est de préférence adaptée à fournir des séquences de signaux représentatifs de parole, de messages de service ou de données multimédia, sous forme de séquences de données binaires, et que - l'émetteur hertzien 906 est adapté à mettre en oeuvre un protocole 10 de transmission par paquets sur un canal non filaire, et à transmettre ces paquets sur un tel canal. On observe en outre que le mot "registre" utilisé dans la description désigne, dans chacune des mémoires 904 et 905, aussi bien une zone mémoire de faible capacité (quelques données binaires) qu'une zone mémoire 15 de grande capacité (permettant de stocker un programme entier). 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 valeurs. La mémoire vive 904 comporte notamment: - un registre "mot reçu", dans lequel sont conservés les symboles du mot de code reçu, dont on cherche à calculer le syndrome. 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 "program". L'unité centrale de traitement 900 est adaptée à mettre en oeuvre un procédé de calcul du syndrome tel qu'illustré par l'organigramme de la figure 4. REVENDICATIONS 1. Procédé de décodage pour un code défini sur un corps de Galois et dont la matrice de vérification de parité, de dimension (s+t)x(2N), o s, t et N 5 sont des entiers strictement positifs, est de la forme H = Hs H8 1; o Hs LHtMl HtM2] est une matrice de dimension sxN, Ht est une matrice de dimension txN, et Ml et M2 sont des matrices diagonales de dimension NxN, caractérisé en ce que, un mot R de longueur 2N ayant été reçu après être passé dans un canal de transmission, il comporte les étapes suivantes: on calcule les s premiers symboles du syndrome S = H.RT, o T désigne la transposition, en évaluant le polynôme associé à la matrice T+U, o T et U sont des vecteurs ligne de longueur N composant ledit mot reçu R = (T U), aux racines du polynôme générateur de la matrice Hs, et - on calcule les t symboles suivants dudit syndrome S en évaluant le 15 polynôme associé à la matrice T.M1+U.M2 aux racines du polynôme générateur de la matrice Ht. 2. Procédé selon la revendication 1, caractérisé en ce que lesdites étapes d'évaluation mettent en oeuvre l'algorithme de Horner. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce que ledit 20 code est un code hyperelliptique. 4. Dispositif de décodage pour un code défini sur un corps de Galois et dont la matrice de vérification de parité, de dimension (s+t)x(2N), o s, t et N sont des entiers strictement positifs, est de la forme H = Hs Hs lo H, HtMl HtM2 j est une matrice de dimension sxN, Ht est une matrice de dimension txN, et M1 25 et M2 sont des matrices diagonales de dimension NxN, caractérisé en ce qu'il comporte: - un compteur de coups d'horloge (300), - des première et seconde mémoires mortes (302, 304), reliées au compteur (300) et représentant respectivement les N éléments de la diagonale 30 des matrices M1 et M2, - un premier multiplieur, relié à la sortie de la première mémoire morte (302), multipliant ladite sortie de la première mémoire morte avec un symbole d'un mot reçu R de longueur 2N, un deuxième multiplieur, relié à la sortie de la seconde mémoire morte 5 (304), multipliant ladite sortie de la seconde mémoire morte avec un symbole dudit mot reçu R retardé de N coups d'horloge, - un premier additionneur, relié à la sortie des premier et deuxième multiplieurs et fournissant en sortie des symboles correspondant à T.M1+U. M2, o T et U sont des vecteurs lignes de longueur N composant le mot reçu 10 R=(TU), un deuxième additionneur, fournissant en sortie des symboles correspondant à U+T, - un premier circuit mettant en oeuvre l'algorithme de Horner, relié à la sortie du deuxième additionneur, pour calculer les s premiers éléments du 15 syndrome S = H.RT, o T désigne la transposition, et - un second circuit mettant en oeuvre l'algorithme de Horner, relié à la sortie du premier additionneur, pour calculer les t derniers éléments dudit syndrome. 5. Dispositif selon la revendication précédente, caractérisé en ce que 20 lesdites première et seconde mémoires mortes (302, 304) sont deux tables de consultation. 6. Dispositif selon la revendication 4, caractérisé en ce que lesdites première et seconde mémoires mortes (302, 304) sont deux multiplexeurs. 7. Dispositif selon la revendication 4, caractérisé en ce que lesdites 25 première et seconde mémoires mortes (302, 304) sont des circuits combinatoires. 8. Appareil de traitement de signaux numériques, caractérisé en ce qu'il comporte des moyens adaptés à mettre en oeuvre un procédé de décodage selon la revendication 1, 2 ou 3. 9. Appareil de traitement de signaux numériques, caractérisé en ce qu'il comporte un dispositif de décodage selon l'une quelconque des revendications 4 à 7. 10. Réseau de télécommunications, caractérisé en ce qu'il comporte des moyens adaptés à mettre en oeuvre un procédé de décodage selon la revendication 1, 2 ou 3. 11. Réseau de télécommunications, caractérisé en ce qu'il comporte un dispositif de décodage selon l'une quelconque des revendications 4 à 7. 12. Station mobile dans un réseau de télécommunications, caractérisée en ce qu'elle comporte des moyens adaptés à mettre en oeuvre un procédé de décodage selon la revendication 1, 2 ou 3. 13. Station mobile dans un réseau de télécommunications, 10 caractérisée en ce qu'elle comporte un dispositif de décodage selon l'une quelconque des revendications 4 à 7. 14. Station de base dans un réseau de télécommunications, caractérisée en ce qu'elle comporte des moyens adaptés à mettre en oeuvre un procédé de décodage selon la revendication 1, 2 ou 3. 15. Station de base dans un réseau de télécommunications, caractérisée en ce qu'elle comporte un dispositif de décodage selon l'une quelconque des revendications 4 à 7.