ERROR CORRECTION SYSTEM FOR DIGITAL SIGNALS CODED IN REED-SOLOMON CODES

Abstract: Method for decoding data coded in Reed-Solomon code with correction of errors, wherein the code words are represented by bits forming a polynomial degree (n-1) comprised of m symbols of information and k control symbols with m+k = n-1, the control symbols being formed by words of 2<p> bits, said words forming the elements of a finite body of Gallois CG (2<p>) comprising the following steps: (i) dividing a packet of bits to be coded by a code generator polynomial of order k, and as a result the portion of the division provides the m information symbols and the remainder of the division be k control symbols; (ii) calculating the syndromes of the polynomial representative of a code word for certain roots of the code generator polynomial, those syndromes being eight and being related by a system of four linear equations of which the coefficients ( sigma 1 - sigma 4) are the locations of the errors in the code word; and resolving those localizing equations.

Description: SYSTEME DE CORRECTION D'ERREURS DE SIGNAUX NUMERIQUES CODES EN CODE DE REED-SOLOMON La présente invention concerne une méthode de codage et de décodage de données numériques par un code correcteur d'erreurs ainsi qu'un codeur et un décodeur mettant en oeuvre ladite méthode. Plus précisément, l'invention concerne-une methode de codage et de decodage de données par le code de Reed-Solomon et les codeurs et décodeurs qui appliquent cette méthode. Le code de Reed-Solomon est décrit par exemple dans l'ouvrage "The Theory of Error-Correcting Codes" par F.J. MacWilliams et N.J.A. Sloane, North Holland Publishing Company, 1981, Chapitre 10. On rappelle qu'un code de Reed-Solomon dans un corps ou champ fini de Gallois CG(q) est un code de Bose, Chaudhuri, Hocquenhem (BCH) de longueur N - q-l. Les codes BCH sont des codes dont le polynôme générateur est par définition le suivant G(x) = (x-amo) (x-amo+1).... (x-amo+#-2) où 6 est la distance désignée. Avec 6-2 =2t+1 si t désigne le nombre d'erreurs à corriger. Les racines de G(x) sont donc les puissances successives d'un élément primitif appartenant à CG (2). Cela veut dire que dans un mot de code : V(x) = yn-1xn-1 + ... y n-1 xn-i + Yn-i a deux valeurs possibles 0 ou 1 ; et xn-i détermine la position de yn-i. Dans un code de Reed-Solomon, la caractéristique du corps n'est plus 2 mais un entier premier quelconque b donnant lieu à un corps CG (bp). . Chaque Yn i n'a plus deux formes possibles mais q = bP formes. Le coefficient yn-i est un symbole du code. On définit ainsi des polynômes dont les coefficients sont non plus seulement des entiers O ou 1 (base 2) mais des éléments de CG (bP) qui seront exprimés par p éléments binaires. Par exemple, si mo = 0, q = 23 et si le polynôme caractéristique 3 2 qui génère les éléments du corps est égal à x + x + L, chaque coefficient va s'exprimer sous la forme d'un mot de 3 bits. 2 a ai 0 0 l 0 10 a 2 1 0 0 a 3 2 1 0 1 a =i+a 1 1 1 a4 = a + a3 = 1 + a +a2 0 1 1 a5 = a + a2 + 1 + a2= 1 + a 6 2 1 1 O a6 =a + a2 0 0 1 a7 = a2 + a3 = a2 + a2 + 1 = 1 On définit alors, comme pour le cas binaire, les racines des polynômes et pour mO = O, le polynôme générateur de code est : G(x) = (x-1) (x-a) .... (x-a#-2) Le polynôme générateur doit avoir un nombre de racines égal à 2 fois le nombre t d'erreurs à corriger. En effet, la racine a la puissance la plus élevée a#-2 = a2t+1-2 = a2t-1 Les racines du polynôme générateur sont donc : #, 2, a2, ... a2t-1. Comme on a pris q - 8, les mots du code ont une longueur de N = 7 symboles. Un code C (7,4) contient quatre symboles d'information et trois symboles de contrôle de chacun trois bits. Le mot de code s'écrit par exemple : EMI2.1 oti I(x) designe les symboles d'information et R(x) les symboles de contrôle constitués par le reste de la division I(x) par G(x). Une erreur est caractérisée par sa valeur et sa position dans un mot de code donne. Dans le cas d'un code binaire, il suffit de determiner la position de l'erreur, sa valeur étant obtenue en complementant la valeur erronée à la position calculee. Donc corriger deux erreurs à l'aide d'un code binaire revient à résoudre un système de deux équations à deux ln- connues. Par contre, dans le cas d'un code de Reed-Solomon, un symbole du code représente un paquet de p éléments binaires. Dans ce cas, deux erreurs sont caractérisées par quatre paramètres, respectivement leurs deux valeurs et positions. L'invention tant en ce qui concerne la méthode de codage que le codeur et le décodeur de code Reed-Solomon, va être maintenant décrite en détail en relation avec les dessins annexés, dans lesquels : - la Fig. 1 représente sous la forme d'un diagramme de blocs le codeur pour code de Reed-Solomon conforme à l'invention ; - la Fig. 2 représente le décodeur pour code de Reed-Solomon conforme à l'invention ; et - la Fig. 3 représente l'algorithme de décodage. 1 - CODAGE Ainsi qu'on l'a dit dans l'entrez en matière, les symboles du code sont des éléments du champ fini de 2P éléments. Chaque symbole du code comporte p éléments Binaires. Les symboles de contrôle sont obtenus en divisant le message informationnel I(x) par le polynôme générateur G(x). Le code comporte m symboles d'information et k symboles de contrôle. On désigne le code par C(m + k, m). Une méthode de codage bien connue consiste à prémultiplier I(x) par xk, k étant le degré le plus élevé du polynôme générateur et à diviser le produit ainsi obtenu par G(x), soit : x I(x) G(x) od G(x) a la forme polynomiale précédemment indiquée avec k n m + 6-1. Le code décrit est un code C(255, 247) avec 2P " 28, d'où G(x) = x8 + Ax7 + Bx6 + Cx5 + Dx4 + Ex3 + Fx2 + Gx + H (20) Les coefficients A, B, C, D, E, F, G et H sont des mots de huit bits. Lorsque le premier symbole apparaît à l'entrée du système, les restes partiels précédents sont nuls. Soit S1, ce premier symbole. Le circuit 2 stocke temporairement S1 le temps que le circuit 3 fournisse le résultat de la multiplication S1 par chacun des termes du polynôme générateur. Ces restes partiels sont stockés dans le circuit 1 dans un ordre qui est une caractéristique du système. Quand le deuxième symbole S2 se présente à l'entrée du système, on additionne modulo 2, S2 avec le reste partiel précédent de degré le plus élevé. Le résultat de cette opération est stocké dans 2. Ensuite, le circuit 3 effectue les multiplications avec les restes partiels précédents et le processus continue, jusqu'à ce que le 247ième symbole d'information soit rentré dans le système. Le circuit 1 est une mémoire vive de k mots de p bits. Les circuits 2 et 3 sont des unités de stockage de p bits. Le circuit 4 est un additionneur modulo 2 de p bits. Quant au circuit 5, il est constitué d'une table inaltérable qui, adressée par < S. + R .) fournit respectivement les produits de i pi (S. + R .) par chacun des coefficients de G(x). i pi Avec S. désignant le symbole informationnel d'ordre i et Rpi, le reste partiel d'ordre i de même degré que Si. Lorsque tous les symboles d information constituant I(x) sont entrés dans le système, le circuit 1 contient les 8 symboles de contrôle rangés dans un certain ordre. Symboles qu'il suffit d'appeler en ligne d la suite de k I(x) pour finir de constituer le mot de code. 2 - DECODAGE La méthode de décodage conforme à l'invention utilise un système unique pour calculer - les syndromes d'erreurs ; - les coefficients du polynôme localisateur d'erreurs ; - les racines du polynôme localisateur d'erreurs ; - les diagrammes d'erreurs correspondant aux positions d'erreur calculées ; - les corrections. CALCUL RELATIF A LA CORRECTION DE QUATRE ERREURS. CALCUL DES SYNDROMES V(x) étant un mot de code, s'il y a des erreurs, il s'écrit V'(x) = V(x) + E(x). E(x) étant la configuration d'erreurs apparue au cours de la transmission. Min de déceler les erreurs a la réception, il faut soit vérifier que les mots reçus sont divisibles ou non par le polynôme générateur, soit vérifier que chaque mot de code admet pour racines les racines du polynôme générateur. Cette deuxième solution est celle utilisée pour le décodage de la présente invention. Un mot de code V(x) s'écrit sous la forme d un polynôme de la manière suivante, ainsi qu'on l'a vu précédemment V (x) = yn-1 xn-1 + yn-2 xn-2 + ... yn-i xn-i + ... + yo xo (1) Si V(x) admet a3 pour racine, cela s'écrit : V(aj) = yn-i(aj)n-1 + yn-2(aj)n-2 + ... + yn-i(aj)n-i + ... + yo(aj)o EMI5.1 S'il y a une erreur, on reçoit non plus le mot de code mais le mot de code V'(aj) = V(aj) + E(aj) = Sj puisque V(aj) = O. S. est le syndrome d'erreur d'ordre j, il faut calculer les a syndromes S. avant de pouvoir déterminer la position et la valeur des a erreurs. Si on reçoit un mot erroné, il y a donc une certaines configuration d'erreurs E(x) dont chacune peut être repérée par un couple xi, Yi (position et valeur). CALCUL DES COEFFICIENTS DU POLYNOME LOCALISATEUR D'ERREURS A PARTIR DES SYNDROMES Si on veut corriger t erreurs, le polynôme localisateur d'erreurs s'écrit : Xit + #l XIt-1 + #2 XIt-2 + ... #jXIt-j + ... #t = 0 (3) Les coefficients ai, #2 ... at sont obtenus en résolvant le système suivant St + #1 St-1 + #2 St-2 + .... #j St-j + ... + #t So = O St+1 + #1 St + #2 St-1 + .................. + #t S1 = O S2t-1 + #1 S2t-2 + ........................ + #t St-1 = O Soit # le déterminant principal du système, il est égal à EMI6.1 <SEP> St-1 <SEP> St-2 <SEP> ..... <SEP> St-i............ <SEP> So <tb> #= <SEP> St <SEP> <SEP> St-1 <SEP> ..... <SEP> St-i+1 <SEP> .........S1 <tb> <SEP> S2t-2 <SEP> S2t-3 <SEP> ... <SEP> S2t-i-1 <SEP> ........St-1 <tb> En appliquant les règles sur la résolution des systèmes d'équation linéaires, il vient : #i = #i/# où EMI6.2 <tb> <SEP> St-1 <SEP> St-2 <SEP> ..... <SEP> St <SEP> ............... <SEP> So <tb> #i <SEP> <SEP> = <SEP> St <SEP> St-1... <SEP> St+1 <SEP> ............ <SEP> Si <tb> <SEP> S2t-2 <SEP> S2t-3 <SEP> S2t-1 <SEP> St-1 <tb> Les coefficients de polynôme localisateur d'erreurs ont donc pour valeurs respectives les valeurs suivantes = #t / # ..... #i = #i / # .... #1 = #1 / # (4) CALCUL DES RACINES DU POLYNONE LOCALISATEUR D'ERREURS L'équation (3) n'étant résoluble que si elle est au plus du quatrième degré, le système peut corriger jusqu'à quatre erreurs. Les positions des quatre erreurs sont donc solutions de : X4 + #1 X3 + #2 X2 +#3 X + #4 = O (3') Cette équation peut aussi se mettre sous la forme bicarrée (X2 + Avec EMI7.1 <tb> #1 <SEP> <SEP> = <SEP> # <SEP> + <SEP> #' <tb> #2 <SEP> = <SEP> <SEP> + <SEP> ' <SEP> +##'# <tb> #3 <SEP> = <SEP> # ' <SEP> <SEP> + <SEP> #' <SEP> <SEP> (6) <tb> #4 <SEP> = <SEP> ' <tb> Pour localiser les erreurs, il suffit de déterminer les valeurs de A, #', et ', puis les racines de chacune des équations du second degré. Pour résoudre le système (6), deux cas se présentent suivant que #1 est nul ou non nul, en effet : Le système (6) devient pour #1 = 0 EMI7.2 <tb> <SEP> # <SEP> <SEP> + <SEP> #'= <SEP> <SEP> O <tb> <SEP> #2 <SEP> <SEP> = <SEP> <SEP> + <SEP> <SEP> +#2# <tb> <SEP> #3 <SEP> <SEP> = <SEP> # <SEP> <SEP> ( <SEP> + <SEP> ') <SEP> (7) <tb> <SEP> #4 <SEP> <SEP> = <SEP> ' <tb> d'où <SEP> : : <tb> <SEP> #3 <tb> <SEP> #2 <SEP> <SEP> = <SEP> +#2 <tb> <SEP> ## <SEP> (8) <tb> <SEP> #3 <SEP> <SEP> + <SEP> #2#+ <SEP> <SEP> #3 <SEP> <SEP> = <SEP> O <tb> Cette équation est du troisième degré en # et fournit une recine #1- Les quantités p et ' sont solution d'une équation du second degré, sachant que + '=#3/#1 ' = #4 et ' sont racines de 2 + (#3/#1) +#4 = O (9) Pour #1 + O, on a en posant al = X + #' @ = ##'(10) On aboutit à une équation du troisième degré en #, soit @e + (ó1 ó3 +ó22) @ + ó12 ó4 + ó32 + ó1 ó2 ó3 =0 (11) On en tire une racine @1 par exemple. D' où # et #' sont solution d'une équation du second degré, soit + ó1 # + @1 =0 (12) Le système (6) permet alors de déduire les valeurs de- et de '. RESOLUTION D'UNE EQUATION DU TROISIEME DEGRE DE TYPE (8) ou (11) Ces deux équations sont de la forme : y3 + Vy + T = 0 (13) Cette équation peut se mettre sous la forme canonique (coefficient de y égal à l'unité) en posant : z=y/V1/2 et Q=t/V3/2 ce qui donne : z3 + z + Q =0 (14) Si p est pair, deux cas se présentent pour trouver une racine cubique dans le corps 1) Si v =0 L'équation (13) devient : y3 + T = O est donné par une table y3 = t1/3 Ensuite y1 +y2 +y3 =0 y1 y2 y3 =t y1 et y2 sont alors solution de : y2 + y3 y +t/y3 =0 (15) Equation qui se met sous la forme canonique suivante : Y2 + Y3 +R=0 (16) avec Y =y/y3 R=t/y33 =1 2) Si V# 0, il faut alors résoudre l'équation (14). z3 est obtenu par une table adressée par Q. Les racines z1 et z2 sont obtenues par une méthode identique à celle qu'on vient de voir pour v = O et R# 1. La Fig. 3 représente l'algorithme de décodage. Le nombre d'erreurs que l'on s'impose de corriger est de quatre, trois ou deux. La phase 101 représente le calcul des syndromes qui dans notre cas, seront au nombre de 8, S7 à So. La phase 102 représente le calcul de (#) 4' (#)3, (#)2' déterminant principal dans le cas de 4, 3 ou 2 erreurs, ainsi que celui de #i' i variant de I à 4, soit A r #2, #3. #4. Si (A4) est différent de zéro (phase 103), on en déduit qu'il y a 4 erreurs, et on va vers la phase 104 où l'on calcule ó1, ó2, ó3, ó4, définis par les équations (4). Si a1 # O (phase 105), on passe à la phase 106 de calcul des 3 racines de l'équation en p (équation (11)), puis à la phase 107 de calcul des racines #, #' de l'équation (12), enfin à la phase 108 de calcul des p et ' par les équations (6). On passe ensuite à la résolution de l'équation (5) (phase 109), ce qui donne X1, X2, X3, X4 et on déduit l'adresse de l'erreur à l'aide de la formule (17). Enfin, phase 110, on calcule Y1 à y4 par la formule (18). Si (phase 105), on a a1 = O, les phases (106-108) sont remplacées par les phases (111-112) qui correspondent respectivement à la résolution de l'équation en #3 (équation (8)) et à la résolution de l'équation en p2 (équation (9)). L'algorithme de la Fig. 3 représente également les phases de décodage dans le cas de la correction de trois erreurs et de deux erreurs. Dans ces deux cas, l'équation (3') devient : trois erreurs : X3 + #1X2+#2 X + #3 = 0 (3'') deux erreurs : X2 + #1 X + #2 = 0 (3''') L'équation (3") peut être mise sous la forme canonique et une des racines est obtenue par la formule de Cardan (phase (206)). Les deux autres racines sont obtenues en résolvant une équation du second degré en X (phase 207). On voit sur la Fig. 3 qu'il y a équivalence entre les phases ayant pour numéros de centaines 1, 2, 3, 4 et les memes numéros d'unités et de dizaines. Dans tous les cas de figures à la valeur des coefficients près, on est ramené à la résolution d'une équation du troisième degré ou du deuxième degré mise sous forme canonique. La position effective des erreurs est déterminée de la façon suivante : Sachant que Xi est de forme Xi = aji (aji étant un élément CG (2p)), j caractérise la position de l'erreur, d'où : ji = Loga (Xi) (17) La détermination des Xi permet alors de calculer les diagrammes d'erreurs yi correspondants. EMI10.1 <tb> = <SEP> - <SEP> Y1 <SEP> + <SEP> Y2 <SEP> + <SEP> Y3 <SEP> + <SEP> Y4 <SEP> ) <SEP> <tb> S1 <SEP> = <SEP> Y1 <SEP> X1 <SEP> + <SEP> Y2 <SEP> X2 <SEP> + <SEP> Y3 <SEP> X3 <SEP> + <SEP> Y4 <SEP> X4 <SEP> ) <tb> <SEP> ) <tb> <SEP> S2 <SEP> = <SEP> Y1 <SEP> X2 <SEP> + <SEP> Y2 <SEP> X22 <SEP> + <SEP> Y3 <SEP> X32 <SEP> + <SEP> Y4 <SEP> X42 <SEP> ) <SEP> (18) <tb> <SEP> ) <tb> S4 <SEP> = <SEP> Y1 <SEP> X13 <SEP> + <SEP> Y2 <SEP> X23 <SEP> + <SEP> Y3 <SEP> X33 <SEP> + <SEP> Y4 <SEP> X43 <SEP> ) <tb> : 1 1 1 1 : D = : X1 X2 X3 X4 : : X12 X22 X32 X42 : : X13 X23 X33 X43 : : S0 1 1 1 : : S1 X2 X3 X4 : Dy1 = : S2 X22 X32 X42 : : S3 X23 X33 X43 : : 1 S0 1 1 : : X1 S1 X3 X4 : Dy2 = : X12 S2 X32 X42 : : X13 S3 X33 X43 : : 1 1 S0 1 : : X1 X2 S1 X4 : Dy3 = : X12 X22 S2 X42 : : X13 X23 S33 X43 : : 1 1 1 S0 : : X1 X2 X3 S1 : Dv4 = : X2 X2 X2 S : i 2 3 : X13 X23 X33 S3 : D'où on tire Dy1 Dy2 Dy3 Dy4 Y1 = ; Y2 = : Y3 = ; Y4 = D D D D En se référant à la Fig. 2, au fur et à mesure de l'arrivée des symboles, le décodeur calcule S. conformément à l'équation (2) pour une valeur de j donnée. Cette opération est réalisée autant de fois que G(x) a de racines. Le circuit 11 calcule pour un symbole de l'ordre # y# (sj)# pour une racine xj =aj. Ce résultat est alors stocké temporairement dans le circuit 12. Le décodeur appelle la somme des (n-#) termes précédents, stockée dans le circuit 10, le circuit 11 étant transparent. Le circuit 13 effectue la somme EMI12.1 Le calcul de cette opération transite à travers l'unité de stockage 14 et le circuit 15 qui est transparent pour être stocké dans le circuit 10 jusqu'à l'arrivée du symbole suivant et l'opération décrite se renouvelle jusqu'à l'arrivée du dernier symbole. Les différents syndromes sont stockés dans le circuit 10. Le décodeur est formé de trois unités de stockage - le circuit 10 qui est une mémoire vive de u mots de p bits, u étant une caractéristique du système, - les circuits 12 et 14 qui sont des unités de stockage de p bits. Un circuit 13 qui, lors du calcul des syndromes, fonctionne en additionneur modulo 2. Un circuit 11 qui est une table dont une zone réservée multiplie le symbole présent à son entrée par les racines du polynôme générateur dans un ordre que le système définit à l'avance. Un circuit 15 qui est une table dont on utilise une zone transparente lors de cette opération. Les opérations nécessaires pour calculer les différents déterminants sont la multiplication et l'addition modulo 2. La multiplication de deux éléments du champ d'extension CG (2p) est remplacée par l'addition modulo (2P-1) des logarithmes a base a de ces deux nombres, a étant un élément primitif du champ CG CAS DE MULTIPLICATION La valeur d'un syndrome stocké dans le circuit 10 transite dans le circuit 11 qui en donne logarithme. Ce résultat est stocké dans le circuit 12. En utilisant le même processus, on calcule par exemple le logarithme d'un autre syndrome. A ce moment, les sorties des circuits 11 et 12 attaquent le circuit 13 fonctionnant dans ce cas bien précis en additionneur modulo (2P-1). Le résultat de l'addition des deux logarithmes est stocké dans le circuit 14. A cet instant, le circuit 15 fournit l'antilogarithme du résultat issu de 14, résultat qui prend place dans une zone réservée du circuit 10. CAS DE L'ADDITION Dans ce cas, les circuits 11 et 15 sont transparents et le circuit 13 fonctionne en additionneur modulo 2. Les coefficients #1, #2 .... #i ..... #t calculés par la méthode ci-dessus sont stockés dans les zones bien définies du circuit 10. Exemple Soit x8 + x4 + x3 + x2 + 1 le polynôme caractéristique qui peut se mettre sous la forme d'un polynôme générateur de code G(x) = (x-1) (x-a) ... (x-a7) Comme ainsi qu'on l'a vu, il faut que le polynôme générateur ait un nombre de racine double du nombre d'erreurs à corriger, et comme il y a ici huit racines, on peut corriger quatre erreurs. Il y a donc huit syndromes SO à S7 et ces syndromes sont calculés en remplaçant aj par successivement l, a, a2, a3, a4, a5, a6, a7 et en faisant n-1 = 255. On suppose que les syndromes aient les valeurs suivantes 3 - a = a5 = a7 9 53 = a il S4 = a@ S5 = a13 S = a15 a 17 S7 = a@ On suppose en outre qu'il y ait une erreur ayant pour position a2 et pour valeur a3 où a2 et a3 sont des éléments du corps de Gallois CG(28). Le déterminant principal A qui permet la résolution des inconnues #1 à #4 (déterminant qui est d'ordre 4 pour quatre erreurs) s'écrit EMI14.1 <tb> <SEP> S3 <SEP> S2 <SEP> S1 <SEP> S0 <tb> <SEP> S4 <SEP> S3 <SEP> S2 <SEP> S1 <tb> <SEP> #(4) <SEP> = <SEP> S5 <SEP> S4 <SEP> S3 <SEP> S2 <SEP> = <SEP> 0 <tb> <SEP> S6 <SEP> S5 <SEP> S4 <SEP> S3 <tb> Ce déterminant est nul. Il y a donc au plus trois erreurs. On forme alors le déterminant principal. EMI15.1 <tb> <SEP> S3 <SEP> S2 <SEP> S1 <tb> #(3) <SEP> <SEP> = <SEP> S4 <SEP> S3 <SEP> S2 <SEP> = <SEP> 0 <tb> <SEP> S5 <SEP> S4 <SEP> S3 <tb> - Ce déterminant est nul. Il y a donc au plus deux erreurs. On forme alors le déterminant principal. EMI15.2 <tb> <SEP> S3 <SEP> S2 <tb> #(2) <SEP> = <SEP> = <SEP> 0 <tb> <SEP> S4 <SEP> S3 <tb> Ce déterminant est nul. Il y a donc une seule erreur. On forme alors #(1) = S3 = S3 et le déterminant #1 = S4 = S4 On a alors (équation (4)) #1 = #1 / #(1) = S4 / S3 = a11/ a9 = a2. L'équation (3') se réduit à a X + #1 = 0 d'où X = #1 = a2 ce qui vérifie l'hypothèse faite pour la position de l'erreur. L'erreur corrigée est la quantité y1 qui est calculée par l'équation (2). On trouve : y1 = S0 = a3

Claims: REVEND I CAT I ON S 1 - Procédé de décodage de données codées en code de Reed-Solomon avec correction d'erreurs dans lequel les mots de code sont représentés par des bits formant un polynôme de degré (n-l) composé de m symboles d'information et k symboles de contrôle avec m+k = n-l; les symboles de contrôle étant formés de mots de 2P bits, lesdits mots constituent les éléments d'un corps fini de Gallois CG (2p) comprenant les stades suivants diviser un paquet de bits coder par un polynôme générateur de code d'ordre k, d'où il résulte que le quotient de la division fournit les m symboles d'information et le reste de la division les k symboles de contrôle ; I calculer les syndromes du polynôme représentatif d'un mot de code pour certaines des racines du polynôme générateur de code, ces syndromes étant au nombre de huit et étant reliés par un systeme de quatre équations linéaires dont les coefficients sont les localisations des erreurs dans le mot de code ; ; caractérisé en ce qu'on forme le déterminant A(4) dudit système de quatre équations linéaires, et s'il est nul le déterminant A(3) du système de trois équations, et s'il est nul le déterminant A(2) du système de deux équations, et s'il est nul le déterminant A(1) d'une équation unique, le nombre d'erreurs étant de 4, 3, 2 ou 1 selon que respectivement les déterminants A(4), A(3), A(2), A sont nuls ; et la correction de l'erreur ou des erreurs aux localisations trouvées en résolvant un système d'équations donnant les valeurs des syndromes auxdites localisations. 2 - Système de codage en code de Reed-Solomon permettant d'effectuer le calcul des symboles de contrôle adjoindre-aux symboles d'informatison, caractérisé en ce qu'il comporte une table (5), trois unités de stockage (1, 2, 3) et un additionneur modulo 2 (4), le tout permettant d'effectuer des multiplications d'une part et d'additionner modulo 2 des termes de degrés identiques, de les stocker dans une unité (1) telle qu on puisse les reconnaître à chaque étape de la division d'autre part, ledit système du codage permettant de calculer des symboles de contrôle des codes de Reed-Solomon dont les symboles sont dans un champ fini CG (2P), p pouvant avoir une valeur quelconque. 3 - Système de calcul des syndromes d'erreurs dans un code de Reed-Solomon permettant de calculer k syndromes dterreurs, caractérisé en ce qu'il comprend trois unités de stockage (10, 12, 14), le circuit (10) étant une mémoire vive de u mots de p bits, u étant une caractéristique du système, les circuits (12) et (14) étant des unités de stockage de p éléments binaires, un circuit (13) qui lors du calcul des syndromes; fonctionne en additionneur modulo 2, un circuit (11) qui est une table dont une zone réservée multiplie le symbole présent son entrée par les racines du polynôme générateur dans un ordre que le système définit à l'avance, et un circuit(15) qui est une table dont on utilise une zone transparente lors de cette opération. 4 - Système conforme la revendication 2 permettant en outre de calculer les t coefficients de p bits du polynôme localisateur d'erreurs, caractérisé en ce qu'un circuit (16) teste successivement la valeur des déterminants (A)4,(A)3,(A)2 ... (#)1 jusqu'à l'instant où il trouve (A). 9C O et à ce moment et suivant la valeur de i, le circuit (16) délivre une information qui indique le nombre d'erreurs rencontrées d'une part et permet au système de calculer les coefficients a. correspondant au nombre d'erreurs à corriger d'autre part. 5 - Système conforme aux revendications 2 et 3, caractérisé en ce que le circuit (10) détecte le type d'opération à effectuer afin de l'indiquer au circuit (13) qui, suivant le cas, se positionne en additionneur modulo 2 ou modulo (2p-1) et que les circuits (11) et (15) sont des tables dont certaines zones fournissent respectivement Loga (a1) et Loga-1 (ai), ai étant un élément de CG (2p), et qu'en outre, le système possède au travers du circuit (16) un détecteur de configurations d'opérations interdites telles que Loga (O), le système permet de réaliser le calcul a1 8 4. 6 - système conforme aux revendications 2, 3 et 4, caractérisé en ce que le circuit (16) permet, 9 la suite de tests successifs, de déterminer le nombre d'erreurs apparues, et que dans le cas où il y a quatre erreurs, le système en calcule les positions à partir d'équations du troisième degré mises sous forme canonique, et qu'en outre, le circuit (15) est constitué de manière telle qu'il détecte les cas où l'équation du troisième degré n'a pas de solutions afin d'adapter la procédure de poursuite des calculs. 7 - Système conforme aux revendications 2, 3, 4 et 5, caractérisé en ce que le circuit (15) est une table inaltérable dont certaines zones fournissent les racines d'une équation du troisième et du second degré mises sous forme canonique. 8 - Système conforme aux revendications 2 à 6, caractérisé en ce que la conjonction des circuits (15) et (16) évite d'ajouter des erreurs supplémentaires lorsqu'il apparaît plus de quatre erreurs. 9 - Système conforme aux revendications 2 Åa 7, caractérisé en ce que le circuit (10) à partir des informations qui y sont stockées, permet de corriger les symboles erronés aux positions déterminées par le calcul.

Inventors: BERTIN, PIERRE, CATREVAUX, ALAIN R.
Applicants: ETABLISSEMENT PUBLIC DE DIFFUSION DIT  "TELEDIFFUSION DE FRANCE"
Application year: 1984
Main classification: H03M13
IPC codes: H03M13