Brevet FR2651942A1 — publié le 19910315

La présente invention se rapporte à un dispositif de codage/décodage correcteur d'erreur pour installation de transmission numérique, en particulier par faisceau hertzien, ce dispositif utilisant un code correcteur d'erreur de WYNER-ASH. L'introduction d'un codage correcteur d'erreur dans les faisceaux herztiens numériques utilisés dans les transmissions civiles a pour but de corriger les erreurs isolées qui proviennent par exemple des dispositifs d'allumage des véhicules automobiles. Le code de WYNER-ASH est un code convolutif systématique qui permet de corriger une erreur et une seule dans toute la longueur de contrainte, quelle que soit la position qu'elle occupe dans un bloc. Ses trois paramètres : k (nombre de bits d'information à l'entrée du codeur), n (nombre de bits en sortie de ce codeur), et m ( ordre de la mémoire que comporte ce codeur) sont définis par les relations suivantes k = 2P - 1 n=k+l m=p+l où p est un nombre entier. Ce code est par exemple décrit dans l'ouvrage de l'auteur russe ALEXANDRU SPATARU "Fondements de la théorie de la transmission de l'information", publié en France par les "PRESSES POLYTECHNIQUES ROMANDES", 1987, pages 132 à 136. En utilisant une notation polynomiale, un bloc entrant dans un codeur convolutif, pris dans un cas général, à un instant donné est par définition exprimé sous la forme X(D) = X1(D), X2(D),....., Xk(D) où D est la variable temporelle indéterminée représentant le retard. Ce même bloc s'exprime, en sortie du décodeur sous la forme Z (D) = Z1 (D), Z2 (D),......, Zk (D), Zk+l (D) On définit par ailleurs la matrice génératrice du code G(D) 1 0 .....0 gl(D) 0 1 .....0 g2(D) 0 0 0 g3(D) ................ 0 0 1 gk(D) et les k "polynômes générateurs" peuvent s'écrire sous la forme générale suivante gj(D) = gj,0+gj,1D+gj,2D2+..+gj,m-1Dm-1 (1-1) où j varie entre 1 et k. Le bloc sortant codé Z(D) est alors relié au bloc entrant X(D) par la relation Z(D) =X(D).G(D) soit Z (D) = X1 (D) , X2 (D) r Xk (D) , Y (D) où Y(D) est la "séquence de parité" Y(D) = Somme de j=l à j=k de Xj(D).gi (D) (1-2) Le terme "convolutif" se justifie alors par le fait que la séquence de parité résulte d'une convolution de séquences d'entrée avec les polynômes générateurs correspondants. A la réception, coté décodeur, le bloc de séquences binaires codés R(D) reçues est défini par la relation suivante R(D) = R1(D), R2(D),.....Rk(D), Rk+1(D) La "séquence de syndrome" S(D), qui va permettre la détection et la correction de l'erreur éventuelle est définie par la relation S(D) = R(D).HT(D) où HT(D)est la matrice de contrôle de parité. g1(D) g2(D) gk(D) 1 On en déduit, sous forme analytique S(D) = Y'(D)+ Rk+1(D) où Y' (D) est obtenue en remplaçant, dans la forme (1-2) précédente, Xj(D) par Rj(D). Ainsi, la formation du syndrome revient à effectuer un recodage des séquences d'information reçues, suivi d'une addition modulo 2 à la séquence de parité Rk+l(D) reçue. Le principe de fonctionnement du décodeur est alors basé sur la connaissance du syndrome et des propriétés algébriques (polynôme générateur) du code utilisé. Le code de WYNER-ASH, quant à lui, est caractérisé par - giro = 1 avec j variant entre 1 et k - le fait que les autres termes des polynômes générateurs gj(D) s'identifient aux coefficients de la représentation binaire du nombre entier "j". Dans ce cas, en écrivant la relation précédente (1-2) sous la forme Y(D) = Yi+Yi+1D+Yi+lD2+... on en déduit d'après la relation (1-1) On en déduit un schéma théorique du codeur sous la forme parallèle, représenté sur la figure 1 jointe, où i représente le temps. Sur cette figure, les k bits (Xi,l 1 Xi,2 ,...;Xi,k) qui entrent dans le codeur à l'instant i sont placés sur la gauche du dessin, tandis que les (k+l) bits qui en sortent à ce même instant i se trouvent sur la droite de ce dessin. Le bit de contrôle Yi est la sortie d'un additionneur binaire So qui reçoit lui-même les k bits d'entrée, affectés chacun respectivement d'un coefficient défini par le polynôme générateur gir or et qui reçoit par ailleurs la sortie d'une bascule de comptage B1. Cette bascule de comptage B1 reçoit elle-même la sortie d'un autre sommateur binaire S1. Les entrées de ce sommateur S1 sont elles-aussi constituées par, d'une part, les k bits d'entrée, affectés chacun d'un coefficient respectif défini par le polynôme générateur gj l, et par, d'autre part, la sortie d'une bascule de comptage B2, et ainsi de suite jusqu a l'additionneur "modulo 2" 5m-lr dont la sortie attaque la bascule de comptage Bm-1, et qui reçoit pour sa part uniquement les k bits d'entrée, affectés d'un coefficient respectif défini par le polynôme générateur gj,m-l. De même, en écrivant la séquence de syndrome sous la forme S(D) = Si +Si+1D+Si+2D+...... on montre que, si dans toute la longueur de contrainte, une seule erreur apparaît dans le ième bloc en position j, on a alors Si = 1 Si+l = Si+2 = gj,2 ........... Si+m-1 = gj,m-1 et par conséquent, le vecteur Si+l , Si+2,...., Si+m-l est la représentation binaire de la position de l'erreur j. De ce qui précède on déduit le schéma théorique du décodeur, qui est représenté à la figure 2 jointe. Sur cette figure, la référence 1 désigne un codeur identique à celui utilisé à l'émission, mais suivi en plus de (m-l) cellules de retardement sur chacun des k trains de données qu'il reçoit Ri+m-l,l Ri+m-1,2 (données reçues à l'instant : i+m-l) Ri+m-1,3 Ri+m-l,k de sorte que l'on retrouve, au même coup d'horloge, en sorties du circuit 1 : le bloc Ri, i Ri,2 Ri,3 Ri,m ; et le bit de contrôle Y'i+,l "recalculé" par le circuit 1. le "bit du syndrome" 5i+m-1 à cet instant (i+m-l) est obtenu dans l'additionneur binaire 2 par la relation binaire Si+m-l = Y'i+m-i + Ri+m-llk+l où (Ri±irk+i) est le bit de contrôle reçu à ce même instant (i+m-l) La séquence de syndrome ainsi formée est entrée dans un registre à décalage 3 de longueur égale à (m-l). On sait que si, à l'instant i, le bit de syndrome calculé par l'additionneur 2 est égal à 1, cela signifie qu'il y a une erreur dans le bloc reçu à l'instant i, et que par ailleurs, les (m-l) bits de syndrome qui suivent vont donner la position de l'erreur. En conséquence, si le bit Si en sortie 4 du registre à décalage 3 est égal à 1, le circuit doit opérer une correction sur le bit dont la position est donnée par le nombre représenté, en binaire par les entrées de toutes les bascules de ce registre 3. Le signal Si en 4 valide en conséquence un convertisseur binaire/décimal 5 par la commande de validation 6, ce convertisseur 5 recevant toutes les entrées des bascules du registre à décalage 3. Le convertisseur 5 délivre, sur celle de ses sorties 7 qui correspond au nombre décimal correspondant, un signal 1 qui est appliqué à celui des additionneurs binaires de sortie 8 qui reçoit la sortie (Ri,1 à Ri,k) sur laquelle il y a une erreur à l'instant i, ce qui corrige cette erreur : les sorties du décodeur de la figure 2 Xi,1,...Xi,k, sont par suite les sorties corrigées de l'erreur qui se trouvait dans le bloc. La sortie Si en 4 est aussi appliquée à un circuit 9, qui remet à zéro, après cette correction, tous les bits de syndrome se trouvant dans le registre 3, avant l'arrivée du bloc suivant. Dans le domaine des transmissions numériques, l'information se présente sous une forme série. Afin donc d'éviter une conversion série-parallèle à l'entrée du codeur ou décodeur et une conversion parallèle-série à la sortie du codeur ou décodeur on doit pouvoir réaliser un traitement série de manière à conserver les équations de codage et de décodage. En remplaçant donc les k séquences d'information Xj(D), 1 x(d) = ... x(i-l)n+nd-l + xin+l + xin+2d + ... + xin+kdk-1 + xin+ndk + x (i+1) n+1dk+l + ... Le résultat du codage est conservé en écrivant que Yi = Xin+n = Yi, o + yi-1,1 + ... + Yi-m+lrm-1 avec Yi,o = Xni+l + Xni+2 + ... + Xni+k Yi,i = Xni+l gl, 1 + Xni+2 g2, 1 + ... + Xni+k gk,i Yirm-1 = Xni+l gl,m-1 + ... + Xni+k gk,m-l La sortie du codeur peut alors s'exprimer sous la forme z(d) = ... Yi-1d-1 + xni+l + xni+2d + ... + xni+kdk-1 + Yidk + ... Sous cette forme, le circuit de réalisation du codeur d'un tel code comporterait - m registres à décalages de longueur n en cascade pilotés par une horloge au rythme du débit binaire, - m portes XOR dont les sorties sont reliées à une autre porte XOR générant la séquence de parité : les k premières sorties des bascules du (C+l)ième registre à décalage sont reliées au (C+l)ième XOR si elles correspondent à un coefficient g,f de la matrice génératrice du code (0 Quant au circuit décodeur, il devrait comporter un plus entre les k dernières bascules du dernier registre à décalage, des additionneurs dont les secondes entrées proviendraient des k sorties du convertisseur binairedécimal. Le problème qui limite l'utilisation d'un tel circuit est lié à la complexité de sa mise en oeuvre. En effet, lorsque k est élevé (k = 15, 31, 63,...) - le nombre de bascules des registres à décalage est très élevé (n.m), - le temps de propagation à travers les portes XOR devient prohibitif, ce qui n'autorise que des applications à faible débit. En outre, ce codeur est figé dans sa taille et n'est pas utilisable pour un autre code de WYNER-ASH, raccourci ou non. L'invention vise à remédier à ces inconvénients. Elle se rapporte à cet effet à un dispositif de codage/décodage correcteur d'erreur de WYNER-ASH pour installation de transmission numérique, ce dispositif étant quasi-universellement applicable aux codes correcteurs d'erreur de WYNER-ASH dont les paramètres sont k k (nombre de bits par bloc à l'entrée du codeur) = 2P-1, avec p.entier, n n (nombre de bits par bloc en sortie du codeur) = k+l, n m (ordre de la mémoire de retard) = p+l. et étant également quasi-universellement applicable à leurs codes raccourcis de la forme (n-a, k-a, m), avec a entier. Ce dispositif comporte - pour ltutilisation de ce dispositif en codeur (côté émission) des moyens pour aiguiller les données entrantes vers une mémoire élastique pour en accélérer le rythme dans k+1 un rapport k ;; un générateur d'horloges apte à fournir outre les rythmes nécessaires, un signal de synchronisation-bloc (SYNC) tous les n bits des moyens pour appliquer les données accélérées sortant de cette mémoire élastique à un "générateur de parité" apte à élaborer le "bit de contrôle" (Yi), et des moyens activés par ledit signal de synchronisation-bloc (SYNC) pour insérer ce bit de contrôle (Yi) dans le train de données accélérées pour en sortir le train de données finalement codé, ce générateur de parité comportant m "bascules JK" qui reçoivent toutes en parallèles lesdites données accélérées sur leurs entrées JK reliées respectives, toutes ces bascules JK fonctionnant elles-aussi audit rythme accéléré et étant périodiquement remises à zéro par le signal de synchronisation bloc (SYNC), les (m-l) sorties d'un compteur binaire auxiliaire à (m-l) bascules, qui fonctionne au rythme des impulsions d'horloge accélérées et qui est périodiquement remis à zéro par le signal de synchronisation-bloc (SYNC), étant par ailleurs respectivement appliquées aux entrées respectives d'autorisation de fonctionnement des (m-l) dernières bascules JK, ce qui en valide finalement le fonctionnement selon les coefficients (gj,irgj,2r... rgj,m- 2rGj,m-l) du polynôme générateur du code de WYNER-ASH utilisé, les données (Yi,o,Yi,l,Yi,2r ... rYi,m-l) ainsi élaborées en sorties de ces bascules JK étant toutes appliquées à un même circuit OU EXLUSIF après avoir chacune subi un retard qui est nul pour la sortie de la première bascule JK, qui est égal à la valeur d'un bloc pour la sortie de la seconde bascule JK, qui est égal à deux fois la valeur d'un bloc pour la sortie de la troisième bascule JK, et ainsi de suite jusqu'à la sortie de la mième bascule JK dont la sortie est retardée de (m-l) fois la valeur d'un bloc. le signal en sortie de ce circuit OU EXLUSIF étant le bit de contrôle Yi recherché ; et - pour l'utilisation de ce même dispositif en décodeur correcteur d'erreur (côté réception) associé au codeur précédent des moyens pour appliquer les données reçues au générateur de parité précité, avec compteur binaire associé, pour en extraire, pour chaque bloc, un bit de contrôle recalculé ;; des moyens pour calculer pour addition modulo 2, les bits de syndrome successifs à chaque bloc reçu et pour les appliquer à un registre à décalage de syndrome apte à emmagasiner, au rythme du signal de synchronisation (SYNC), m bits de syndrome successifs des moyens pour comparer bit à bit les sorties du compteur binaire précité, toujours activé et remis à zéro de la même manière que pour le fonctionnement du dispositif en codeur aux (m-l) premières sorties de ce registre à décalage de syndrome et pour émettre, lorsque ces sorties sont respectivement identiques et lorsque la dernière sortie est à 1, un signal de commande de correction, ce signal remettant d'une part à zéro ce registre à décalage et étant appliqué d'autre part à un additionneur modulo 2 qui reçoit sur son autre entrée le bit erroné à corriger ce dernier étant fourni par passage des données non corrigées entrantes dans un circuit de retard fonctionnant toujours au rythme accéléré de celles-ci. une autre mémoire élastique qui reçoit les données corrigées en sortie de ce dernier additionneur modulo k 2 et qui en réduit le rythme dans un rapport k+l de façon à en sortir les données (corrigées) au rythme d'origine ; ledit générateur d'horloge (17) étant en outre apte à récupérer, côté réception le signal de synchronisation-bloc SYNC, à partir d'un signal de divergence de syndrome émis par le registre à décalage de syndrome par exemple par décalage de sa base de temps jusqu'à recevoir des signaux de divergence de syndrome correspondant à des zéros, dans une forte proportion. Avantageusement, ce codeur/décodeur comporte des moyens de paramétrage du registre à décalage de syndrome, pour lui permettre d'être utilisable pour tous les codes de WYNER-ASH, raccourcis ou non, jusqu'au code dont le paramètre m est égal au nombre de bascules de ce registre à décalage. Avantageusement encore, le circuit de retard précité comporte des moyens de paramétrage pour le rendre utilisable pour tous les codes de WYNER-ASH, raccourcis ou non. De toute façon, l'invention sera bien comprise, et ses avantages et autres caractéristiques ressortiront, lors de la description suivante d'un exemple non limitatif de réalisation, en référence au dessin schématique annexé dans lequel - Figure 3 est un schéma synoptique de ce codeur/décodeur correcteur d'erreur de WYNER-ASH ; - Figure 4 est un schéma synoptique du générateur de parité équipant ce même codeur/décodeur correcteur d'erreur ; - Figure 5 est un schéma synoptique de son registre à décalage de syndrome paramétrable ; et - Figure 6 est un schéma synoptique de son circuit de retard paramétrable. Le codeur/décodeur qui va être décrit est applicable à tous les codes de WYNER-ASH, de la forme (n, k, m), avec n = 2P p : nombre entier k = n-l m = p+l avec, de préférence mais non limitativement, p inférieur ou égal à 6, et il est également applicable à leurs codes raccourcis, de la forme (n-a, k-a, m) ; a étant un nombre entier. Ce seul et même codeur/décodeur peut couvrir, en choisissant de préférence la longueur de contrainte m la plus faible possible, toute la gamme des codes de WYNER ASH (n, n-l) avec n inférieur ou égal à 64. En se reportant à la figure 3, qui représente le synoptique général de ce codeur/décodeur, la référence 10 désigne un démultiplexeur d'entrée qui reçoit les données (à coder si le dispositif fonctionne en codeur, à décoder et corriger s'il fonctionne en décodeur), sur son entrée 11. Sur son entrée de commande 12 est appliqué le signal de démultiplexage qui commande - soit la liaison directe de l'entrée 11 à la sortie 13 si ce signal est celui qui commande le fonctionnement du dispositif en codeur ; - soit, à contrario, la liaison directe de l'entrée 11 à la sortie 14 si ce signal de démultiplexage est celui qui commande le fonctionnement du dispositif en décodeur. Supposons tout d'abord que l'on soit en émission et que le circuit de la figure 3 soit alors un codeur, les données non codées entrant en 11, à leur rythme d'horloge H, sans qu'une place ne soit prévue à ce stade pour le bit de contrôle à insérer dans le train entre chaque bloc. Ces données sortent donc sur la sortie 13 du démultipleur 10. Elles sont appliquées, avec leur horloge H, à l'entrée d'une mémoire élastique 15, constituée par exemple par une pile FIFO. De cette mémoire élastique sort, en 16, à un rythme plus rapide commandé par une horloge H', ce même train dans lequel figurent des "trous" créés par le signal de synchronisation SYNC qui est appliqué à cette mémoire-tampon 15. Cette horloge H' et ce signal de synchronisation SYNC sont engendrés par un générateur d'horloge 17. Ce générateur d'horloge comporte, de manière en soit très classique, une boucle à verrouillage de phase, avec oscillateur commandé en tension ou V.C.O, qui engendre une horloge H' dont la fréquence par rapport à celle de l'horloge bit H des données entrantes, est de la forme ce générateur d'horloge 17, ou base de temps, fournit également un signal (impulsion) de synchronisation-bloc SYNC tous les n bits. Le train sortant en 16 a donc subi une augmentation de débit, avec des trous qui ont été rajoutés et positionnés par le signal SYNC. Le codage proprement dit est alors réalisé de la façon suivante Ces bits sortant de la mémoire élastique 16 sont appliqués à la première entrée 18 d'un multiplexeur 19, qui est commandé en 20 par le même signal de sélection émission/réception que celui appliqué en 12. Ils sortent donc en 21 et sont appliqués à l'entrée 22 d'un générateur de parité 23, fonctionnant lui-aussi au rythme accéléré de l'horloge H'. De ce générateur de parité (qui sera décrit ciaprès) sort en 24 un signal de parité qui est synchronisé en 25 par le signal de synchronisation-bloc SYNC précité. Ce signal de parité doit être inséré dans le train sortant en 16 de la mémoire élastique 15, aux emplacements libres déterminés par le signal SYNC. Cette insertion est réalisée par un multiplexeur 26, qui est activé en 27 par les impulsions SYNC, et qui reçoit sur ses deux entrées les signaux, en provenance de 16 d'une parut, et de 24 d'autre part. Les données codées sortent alors du multiplexeur sur sa sortie 28, au rythme accéléré de l'horloge H'. Elles repassent par un multiplexeur 29, en étant appliquées sur sa première entrée 30, qui est reliée à sa sortie 31 par le fait que ce multiplexeur reçoit en 32 le même signal de commande émission/réception E/R que les circuits 10 et 19 précités. Cette sortie 31 est donc la sortie du codeur de la figure 3. Le générateur de parité 23 sera maintenant décrit en référence à la figure 4. Il utilise un compteur binaire 33 à (m-l) bits (également représenté à la figure 3). Par exemple, si n = 64, il s'agit d'un compteur à 6 bits. Ce compteur fonctionne à la fréquence d'horloge H' du train qui a subi l'augmentation de débit précitée, les impulsions d'horloge étant appliquées sur son entrée de comptage 34. Ce compteur 33 est remis à zéro, sur son entrée de remise à zéro 35, par le signal de synchronisation SYNC précité. I1 génère, comme on l'expliquera ci-après, les coefficients de génération du code g; 1 à j m-l (c'est à dire g; 1 à g; 6 dans cet exemple) précités gjfsur ses m- 1 = 6 sorties parallèles 36 A à 36 F. Il convient à ce stade de rappeler que les polynômes gj sont constitués par la représentation binaire du nombre entier j, j variant entre 1 et k : en conséquence, le compteur binaire 33 génère cette suite de 9j,#. En revenant maintenant au générateur de parité 23 qui a pour rôle de générer le terme Yi (voir la figure 1) appelé "bit de contrôle", et en faisant abstraction tout d'abord des problèmes de raccourcissement de code, c'est à dire en supposant bien qu'il s'agisse d'un code (64, 63), les 6 bits en sorties 36 du compteur 33 sont alors tous utilisés, les données en provenance de 21 sont donc appliquées sur l'entrée 22 de ce générateur de parité. Il convient, dans ce générateur de parité, de réaliser l'addition modulo 2 de tous les bits, avec affectation de coefficients giro à girm-i comme expliqué précédemment en référence à la figure 1 (à laquelle on se référera en permanence pour la claire compréhension des explications qui vont suivre). Ceci est réalisé par un ensemble de m = 7 "bascules JK" 37 à 43 qui reçoivent toutes en parallèle les données entrantes en 22 sur leurs entrées JK respectives 37 E à 43 E, les entrées "J" et "K" de chacune de ces bascules étant reliées l'une à l'autre dans chacune de celles-ci. Il convient à ce sujet de rappeler qu'une "bascule JK" dont les entrées J et K sont ainsi reliées a la propriété suivante Si J et K valent 0, l'état de la bascule est inchangé ; Si J et K valent 1, l'état de la bascule est inversé. Ces bascules JK fonctionnent au rythme de l'horloge H', qui est appliquée sur leurs entrées d'horloge respectives 37 H à 43 H, et à chaque coup d'horloge, si l'entrée qui se présente est un 0, la bascule correspondante garde son état, et si cette entrée est un 1, l'état de cette même bascule sur sa sortie (37S à 435 respectivement) est inversé, ce qui revient bien à effectuer une addition binaire ou addition modulo 2. Toutes les bascules JK sont remises à zéro par le signal de synchronisation SYNC, appliqué simultanément sur leurs entrées respectives de remise à zéro "R" 37 R à 43 R. La bascule 37 réalise donc la somme correspondante au "Yi,o" précité sur tout un bloc. Après sa remise à zéro par le signal SYNC, cette bascule 37 est préparée pour un nouveau contrôle de parité. Les sorties 36 A à 36 F du compteur (c'est à dire les coefficients giri à go,6) sont appliquées aux entrées d'autorisation de fonctionnement "EN" 38 A à 43 A des six autres bascules 38 à 43 : lorsque cette entrée d'autorisation de fonctionnement EN reçoit un 0, l'état de la bascule correspondante reste inchangé quoi qu'il en soit, et cet état n'est autorisé à pouvoir changer que si cette entrée d'autorisation de fonctionnement EN reçoit un 1. Le fonctionnement de la bascule 38 est donc validé (par le compteur binaire 33) un coup d'horloge H' sur deux (21), celui de la bascule 39 deux coups d'horloge H' sur quatre (22), celui de la bascule 40 quatre coups d'horloge H' sur huit (23), celui de la bascule 41 huit coups d'horloge sur seize (24), celui de la bascule 42 seize coups d'horloge H' sur trente-deux (25), et finalement celui de la bascule 43 trente deux coups d'horloge H' sur soixante-quatre (26 ou autrement dit 2m-1). Pour faire le calcul, il est nécessaire que les résultats des additions effectuées par les bascules 38 à 43 soient chacune retardés d'un bloc par rapport au précédent. Ces retards respectifs - Rd (retard d'un bloc) pour le résultat fourni par la bascule 38 - 2 Rd pour le résultat fourni par la bascule 39 - 5 Rd pour le résultat fourni par la bascule 42 - 6 Rd, soit (m-l)Rd, pour le résultat fourni par la bascule 43 sont réalisés par les "bascules D" 44 à 49 qui sont activées toutes en parallèle par le signal de synchronisation SYNC (qui fonctionne bien au rythme-bloc). Toutes ces données - Vir0 en sortie de la "bascule JK" 37 ~ Yi 1 en sortie de la "bascule D" 44 - ................................... - Yi m-ls c'est à dire Yi,6r en sortie de la bascule D 49 sont, conformément à la nécessité du cordage, additionnées dans l'additionneur binaire, constitué par le circuit OU EXCLUSIF (ou XOR) 50 pour obtenir finalement en sortie 24 de ce circuit XOR, le bit de contrôle Yi qu'il ne reste plus qu a insérer dans le train de données qui sort en 16 de la mémoire élastique 15 (figure 3), ce qui est réalisé, comme expliqué précédemment en référence à la figure 3, par le multiplexeur 26, activé en 27 par le signal SYNC, le train codé sortant en 28. On observe donc bien que le circuit de la figure 4 réalise ainsi, en série et non pas en parallèle, le codage tel quril est défini sur la figure 1. Si on a fait le choix d'un autre code d'ordre inférieur, toujours non raccourci, par exemple le code (32, 31) et non pas le code (64, 63), le compteur six bits 33 ne va compter que jusqu a 32, puisqu' il est remis à zéro par l'accès SYNC sur son entrée de remise à zéro 35. Le dernier coefficient sur 36 F reste donc toujours à zéro quoi qu'il en soit, de sorte que la dernière bascule 43 reste toujours inhibée, et n'est donc jamais utilisée, et son signal de sortie 43S, même retardé par la bascule 49, n'a aucun effet sur le circuit XOR 50. Le circuit de codage selon les figures 3 et 4 fonctionne donc aussi pour les codes d'ordre inférieur à (64, 63). Si maintenant on a affaire à un code raccourci, par exemple à un code (29, 28), les 29 premiers bits étant rentrés et donnant un certain résultat, il faudrait, pour ce code raccourci, opérer comme si, par rapport au code non raccourci immédiatement supérieur (32, 31), l'on rajoutait trois "zéros" pour arriver à 32. Or, ceci est inutile, car ces trois "zéros" qui seraient rajoutés n'auraient aucune influence sur les bascules JK. (Un "zéro" qui rentre n' a aucune influence sur une bascule JK). Le dispositif fonctionne donc également pour les codes raccourcis. On vient ci-dessus d'expliquer le fonctionnement du dispositif de la figure 3 placé du côté émission, c'est à dire en codeur correcteur d'erreur de WYNER-ASH, ce codeur étant un codeur série et fonctionnant de façon quasi-universelle, théoriquement sans limites, mais pratiquement pour des codes jusqu'à (64, 63) pour des raisons pratiques dues aux retards à mettre en oeuvre comme on le verra ci-après. Ce même dispositif de la figure 3 est aussi apte à fonctionner, côté réception, en décodeur-correcteur d'erreur associé au codeur précité. Pour ceci, le signal de commutation émission/réception E/R qui est appliqué respectivement en 12, 20 et 32, au démultiplexeur 10 et aux démultiplexeurs 19 et 29, est commandé sur l'autre position, de sorte que 11 est reliée à 14 21 est reliée à la deuxième entrée 51 du multiplexeur 19 ; et 31 est reliée à la deuxième entrée 52 du multiplexeur 29. Le rythme des données codées reçues sur l'entrée 11 est le rythme accéléré de l'horloge H'. Ce signal reçu attaque trois entrées différentes le générateur de parité 23 sur son entrée 22, dont le signal de parité, ou bit de contrôle, recalculé en 24 est appliqué en 53 à une première entrée d'un générateur de syndrome 54, qui effectue simplement l'addition modulo 2 du bit de contrôle recalculé et du bit reçu, le résultat de cette addition binaire sortant en 55 à chaque coup d'horloge H' sous forme d'un bit de syndrome SYNDR ; la deuxième entrée 56 de ce générateur de syndrome 54 ; et l'entrée 57 d'un circuit de retard paramétrable 58 qui sera explicité ci-après. Le signal SYNDR est appliqué sur l'entrée 59 d'un registre à décalage "de syndrome" 60, qui n'est validé que lorsqu'il reçoit le signal d'échantillonnage, SYNC, récupéré par le générateur d'horloge 17, sur son entrée de validation 61 : ce sont donc bien les véritables bits de syndromes, et eux-seuls, qui sont entrés dans le registre à décalage 60. Ce registre à décalage 60, qui emmagasine donc tous les bits de syndromes successifs (ce qui est nécessaire, comme on l'a vu ci-dessus en référence à la figure 2 pour détecter une erreur et la corriger), est paramétrable par un paramètre p, tel que figuré par l'entrée de paramétrage 62 sur la figure 3, de la même façon que le générateur d'horloge 17 est paramétrable par le paramètre k (pour obtenir fH' = k+1 fH),ce paramètre p k étant obtenu de la façon suivante : pour toute valeur de k, le paramètre p est le coefficient p du code non raccourci correspondant. Si l'on est par exemple en code (32, 31), le paramètre p vaut 5. Si l'on est en code raccourci tel que (29, 28), le paramètre p vaut toujours 5. Si l'on passe en revanche au code raccourci (34, 33), le paramètre p vaut celui du code supérieur non raccourci (64, 63) et vaut alors 6. Ceci est réalisé sans difficulté par un circuit 63 de logique combinatoire, qui est conçu pour calculer à partir du paramètre k appliqué sur son entrée 64, la table de vérité binaire suivante k k5 k4 k3 k2 kl ko P2 P1 Po 1 -- -- -- -- -- 1 1 0 0 1 -- -- -- -- 1 0 1 O O 1 -- -- ~~ 1 0 0 O O 0 1 -- -- O 1 1 O O O 0 1 -- O 1 0 O O O O 0 1 O 0 1 O O O O O O O O O Le circuit logique 63 comporte donc un bus d'entrée 6 voies et un bus de sortie à trois voies. Le registre à décalage de syndrome 60 doit être paramétré pour la raison suivante Lorsque l'on est par exemple dans la série des codes (64, 63), on a besoin d'un registre à décalage 60 à sept bits de syndrome soit à 7 bascules, pour détecter l'erreur et la corriger alors que l'on est par exemple dans la série des codes (32, 31), on a besoin d'un registre à décalage à six bits de syndrome, soit à 6 bascules : on a donc bien besoin d'un paramètre pour avoir le registre à décalage adéquat, selon le code utilisé (prévoir autant de registres à décalage que de séries de codes, et un système de commutation approprié, alourdirait considérablement le dispositif). Ce registre à décalage de syndrome 60 est représenté plus en détails à la figure 5, sur laquelle on reconnaît les entrées précitées 59(signal SYNDR), 61, (signal SYNC), et 62 (paramètre p exprimé en binaire). Les bits de syndrome sont appliqués en 59 à un démultiplexeur 65 qui est paramétrable par le paramètre p sur son entrée de commande 62. Ce démultiplexeur relie l'entrée 59 à une et une seule de ses sorties 71 à 76 en fonction de la valeur du paramètre p : si p = 1, le signal SYNDR est dirigé vers 71, et ainsi de suite. Par tailleurs, ce démultiplexeur est tel qu'alors un "zéro" soit positionné sur toutes les sorties non sélectionnées. La réalisation d'un démultiplexeur de ce type relève de la technique courante en logique combinatoire. Ce registre à décalage 60 comporte sept bascules successives 81 à 87. Chacune de ces bascules par exemple la bascule 81 possède une entrée 66, une sortie 67, une entrée de commande de décalage 68 qui reçoit le signal SYNC reçu, et récupéré comme on le verra ci-après, et une entrée de remise à zéro 69 qui reçoit le signal CORR, dont il sera question ci-après, appliqué en 97. La première bascule 81 a son entrée reliée à la sixième sortie 76 (correspondant à p = 6) du démultiplexeur 65. La sortie de cette première bascule 81 est reliée à l'entrée de la seconde bascule 82 par l'intermédiaire d'un circuit "OU" 70, qui reçoit sur son autre entrée la sortie 75 du démultiplexeur 65. De même, la sortie de la deuxième bascule 82 est reliée à l'entrée de la troisième bascule 83 (non représentée) par un circuit "OU" 176 qui reçoit sur son autre entrée de sortie 74 (relative à p= 4) de ce multiplexeur, et ainsi de suite jusqu'à la dernière bascule 87 en amont de laquelle se trouve un sixième circuit "OU" 77 dont la deuxième entrée est reliée à la sortie 71 (relative à p = 1). Pour p =6, toutes les sorties 71 à 75 présentent un zéro, de sorte que tout se passe comme si les six circuits "OU" 70, 76, etc..., n'existaient pasr et l'on est alors en présence d'un registre à décalage à sept bascules 81 à 87, qui fonctionne au rythme du signal SYNC : on sort de ce registre les 7 bits de syndrome SOT S1...S6 sur ses sorties 90 à 96. Si, par exemple, p n'est égal qu'à 4, les signaux SYNDR sortent en 74, et les cinq autres sorties 71, 72, 73, 75, 76 présentent toutes un zéro. Les deux premières bascules ne reçoivent alors rien, et le signal SYNDR est rentré, par l'intermédiaire du circuit "OU 76, directement dans la troisième bascule : tout se passe comme si les deux premières bascules 81 et 82 n'existaient pas, et l'on obtient alors un registre à décalage à cinq bascules 83 à 87. I1 en est de même pour les autres valeurs de p, de sorte que l'on obtient toujours finalement un registre à décalage à (p+l) bascules. Dans ce qui suivra, il ne sera pris alors en compte que les (p+l) dernières sorties du registre 60, sachant que toutes celles qui précèdent sont forcément à zéro. L'accès CORR vient effacer, comme dans le cas de la figure 2, le registre à décalage 60 dès que l'on a effectué une correction. Rappelons que lorsque le bit de syndrome SO passe à 1, c'est qu'il y a une erreur dans le bloc, et que les bits de syndrome suivants (par exemple S1 à S6 pour un code maximal) indiquent la position de l'erreur en notation binaire. En revenant à la figure 3, pour déterminer l'instant où l'on peut effectuer la correction, on utilise les sorties 36 du compteur binaire 33 que l'on relie en 78 à un circuit comparateur 79 qui effectue une comparaison bit à bit de ces sorties 36 avec les six premières sorties 96 à 91 du registre 60 qu'il reçoit sur ses entrées de comparaison 80. Par tailleurs, ce comparateur bit à bit 79 est validé par application du signal SO (liaison 90) sur son entrée de validation 88 (la validation a lieu lorsque SO est à 1). Lorsque, le signal SO étant à 1, il y a égalité entre les sorties respectives 36 A à 36 F du compteur binaire 3 et les sorties respectives 96 à 91 du registre 60, un signal de correction CORR est émis en sortie 89 du circuit 79. Le signal CORR est d'une parut, comme mentionné précédemment, appliqué au registre à décalage 60 en 97 pour le remettre à zéro, et il est d'autre part appliqué en 99 à un circuit de correction d'erreur 98, qui n' est autre qu'un additionneur modulo 2 recevant sur son autre entrée 100 le bit erroné à corriger. Encore faut-il que ce bit erroné soit le bon, ce que permet d'obtenir le circuit de retard 58, de N bits, sur lequel on reviendra ci-après. Le bit corrigé (ainsi que tous les autres bits, retardés par 58) sortent du circuit OU EXCLUSIF 98 en 101 au rythme accéléré H', qui n'est pas le bon, puisque l'on doit recevoir les données au rythme normal H. Ce train de bits en 101 est donc appliqué à une autre mémoire élastique 102, validée par le signal SYNC récupéré, semblable à la mémoire élastique 15 mais recevant l'horloge H' sur son côté d'entrée des données, et l'horloge H sur son côté de sortie des données : ces dernières en sortent en 103 corrigées au rythme d' origine H. Elles se retrouvent finalement en sortie 31 du circuit, après passage dans le démultiplexeur de sélection 29. A noter que le signal SYNC, qui est élaboré sans problèmes à l'émission, doit être récupéré du côté réception. Ceci est effectué par exemple tel que décrit dans la demande de Brevet Français déposée par la demanderesse le 23 mars 1989 sous le nO 89.03834, selon le principe suivant (qui ne fait pas en soi partie de la présente invention) Le registre à décalage de syndrome 60 est apte à émettre en 104 un signal DS dit "divergence de syndrome" qui lui donne l'état des bits qu il calcule, signal qui est transmis au générateur d'horloge 17. A partir de l'état de ce signal DS, lorsque les syndromes sont souvent égaux à 1, on décale la base de temps, jusqu'à ce que ce ne soit plus le cas et qu'en conséquence la synchronisation soit déclarée retrouvée. En revenant au circuit de retard de N bits 58, il faut, dans le cas d'un code non raccourci, un retard de N=nxm m étant l'ordre de la mémoire et n le nombre de bits codés. Dans le cas de codes raccourcis, ce circuit se complique un peu. Le retard de n x m est alors réalisé à l'aide d'un circuit de retard paramétrable 58 qui est détaillé sur la figure 6 à laquelle on se référera maintenant. Ce circuit comporte sept circuits de retard 111 à 117 qui sont chacun programmables entre 0 et 64 bascules de retard. Cette programmation est effectuée par le paramètre k, appliqué sur un bus à 6 bits, tel que le bus 105 par exemple. Si k vaut par exemple 63, on réalise dans le circuit correspondant, par exemple 111, un retard de (k+l) bascules, donc de 64 bascules. Si k vaut 10, on réalise un retard de 11 bascules, etc..., et ceci pour chacun des retards programmables 111 à 117. On obtient ainsi 7 retards identiques de n = k+l bits, alors qu'en fait on a besoin de m x n bits de retard. On utilise dans ce but un multiplexeur 106 qui, à l'instar du démultiplexeur 65, est paramétrable par le paramètre p, pouvant varier entre 0 et 6. Les sorties respectives 121 à 126 des circuits de retard 111 à 116 sont reliées d'une part à l'entrée associée (respectivement p = 0 à p = 5) du multiplexeur 106 ; et d'autre part à l'entrée, respectivement 132 à 137, du circuit de retard suivant, respectivement 112 à 117. La sortie 127 du dernier circuit de retard 117 est reliée uniquement à la dernière entrée (p=6) du multiplexeur 106. Ainsi, si p vaut 6, seule la sortie 127 est prise par le multiplexeur 106, et le train sortant en 107 est retardé de celui correspondant à la somme totale des bascules des circuits 111 à 117. En revanche, si p vaut 5, on ne passe en série que par les six premiers retards 111 à 116, etc... : on réalise donc ainsi un retard n x m paramétrable grâce à k, ce qui est le but recherché. A noter que le grand nombre de bascules utilisé dans ce dispositif 58 est l'élément qui tend, bien que ce ne soit pas obligatoire, à limiter le présent codeur/décodeur à un code maximal (64, 63). En revenant maintenant plus en détails au générateur d'horloge 17, ce dernier est programmable en émission ou réception par l'entrée de commande 108. Lorsqu'on est en émission, il génère une horloge H' sur sa sortie 109 à partir d'une horloge d'entrée égale à H et appliquée sur son entrée 110, cette horloge H' ayant pour fréquence le paramètre k lui étant appliqué en 118. Il génère par ailleurs, toujours à l'émission, un signal SYNC tous les k bits sur sa sortie 119. Du côté réception, ce circuit 17 génère, à partir de l'horloge entrante en 110, et qui est l'horloge H' reçue, une nouvelle horloge H ayant pour fréquence cette nouvelle horloge H sortant en 120. Par ailleurs, comme mentionné ci-dessus, il retrouve le signal SYNC (qu'il émet en 119) à partir du signal DS de divergence de syndrome qu'il reçoit en 128 en provenance de 104, par décalage de sa base de temps jusqu'à ne recevoir par DS que des zéros. Lorsque le signal SYNC est émis en réception il valide le fonctionnement de la mémoire élastique 102, et les données corrigées commencent seulement alors à sortir en 31. Il peut aussi avantageusement émettre en 129 un signal vers l'extérieur signalant le début de fonctionnement du décodage de correction d'erreur. Comme il va de soi, l'invention n'est pas limitée à l'exemple de réalisation qui vient d'être décrit, mais elle s'applique bien au contraire à de nombreux modes de réalisation équivalents. REVENDICATIONS 1 - Dispositif de codage/décodage correcteur d'erreur de WYNER-ASH pour installation de transmission numérique, ce dispositif étant quasi-universellement applicable aux codes correcteurs d'erreur de WYNER-ASH dont les paramètres sont k (nombre de bits par bloc à l'entrée du codeur) = 2P-1, avec p entier n (nombre de bits par bloc en sortie du codeur) = k+l m (ordre de la mémoire de retard) = p+l, et étant également quasi-universellement applicable à leurs codes raccourcis de la forme (n-a, k-a, m) avec a entier, caractérisé en ce qu'il comporte - pour l'utilisation de ce dispositif en codeur (côté émission) des moyens (10) pour aiguiller les données entrantes (11) vers une mémoire élastique (15) pour en k+i accélérer le rythme dans un rapport k un générateur d'horloges (17) apte à fournir, outre les rythmes (H,H') nécessaires, un signal de synchronisation-bloc (SYNC) tous les n bits ;; des moyens (19) pour appliquer les données accélérées sortant de cette mémoire élastique à un "générateur de parité" (23) apte à élaborer le "bit de contrôle" (Yi), et des moyens (26) activés par ledit signal de synchronisation-bloc (SYNC) pour insérer ce bit de contrôle (Yi) dans le train de données accélérées pour en sortir le train de données finalement codé, ce générateur de parité (23) comportant m "bascules JK" (37 à 43) qui reçoivent toutes en parallèles lesdites données accélérées sur leurs entrées JK reliées respectives (37 E à 43 E), toutes ces bascules JK (37 à 43) fonctionnant elles-aussi au dit rythme accéléré (H') et étant périodiquement remises à zéro pour le signal de synchronisation-bloc (SYNC), les (m-l) sorties (36 A à 36 F) d'un compteur binaire auxiliaire (33) à (m-l) bascules, qui fonctionne au rythme des impulsions d'horloge (H') et qui est périodiquement remis à zéro par le signal de synchronisation-bloc (SYNC), étant par ailleurs respectivement appliquées aux entrées respectives (38 A à 43 A) d'autorisation de fonctionnement des (m-l) dernières bascules JK (38 à 43), ce qui en valide finalement le fonctionnement selon les coefficients (gel ; gj,2 ; ;9j,m~2 ; gj,m-l) du polynôme générateur du code de WYNER-ASH utilisé, les données (yi,OrYi,ltYi,21 rYi,nl) ainsi élaborées en sorties (37S à 43S) de ces bascules JK (37 à 43) étant appliquées à un même circuit OU EXCLUSIF (50) après avoir chacune subi un retard qui est nul pour la sortie (37S) de la première bascule JK (37), qui est égal à la valeur (Rd) d'un bloc (dispositif de retard 44) pour la sortie (38S) de la seconde bascule JK (38), qui est égal à deux fois (2Rd) la valeur d'un bloc (dispositif de retard 45) pour la sortie (39S) de la troisième bascule JK (39), et ainsi de suite jusqu'à la sortie de la mième bascule JK (43) dont la sortie (43S) est retardée de (m-l) fois la valeur d'un bloc (dispositif de retard 49), le signal en sortie (24) de ce circuit OU EXCLUSIF (50) étant le bit de contrôle Yi recherché ; et - pour l'utilisation de ce même dispositif en décodeur correcteur d'erreur (côté réception) associé au codeur précédent des moyens (10,19) pour appliquer les données reçues sur l'entrée (22) du décodeur au générateur de parité précité (23), avec compteur binaire associé (33), pour en extraire, pour chaque bloc, un bit de contrôle recalculé ;; . des moyens (54, 61) pour calculer, par addition modulo 2, les bits de syndrome successifs relatifs à chaque bloc reçu et pour les appliquer à un registre à décalage de syndrome (60) apte à emmagasiner, au rythme du signal de synchronisation (SYNC), m bits de syndrome successifs ;; . des moyens (79), pour comparer bit à bit les sorties 36 du compteur binaire précité (33), toujours activé (34, H') et remis à zéro (35, SYNC) de la même manière que pour le fonctionnement du dispositif en codeur, aux (m-l) premières sorties (96 à 91) de ce registre à décalage de syndrome (60) et pour émettre, lorsque ces sorties sont respectivement identiques et lorsque la dernière sortie (90) est à 1, un signal (CORR) de commande de correction, ce signal (CORR) remettant d'une part à zéro ce registre à décalage (60) et étant appliqué d'autre part à un additionneur modulo 2 (98) qui reçoit sur son autre entrée (100) le bit erroné à corriger, ce dernier étant fourni par passage des données non corrigées entrantes (en 11 et donc 14) dans un circuit de retard (58) fonctionnant toujours au rythme accéléré (H') de celles-ci. . une autre mémoire élastique (102) qui reçoit les données corrigées en sortie de ce dernier additionneur modulo 2 (98) et qui en réduit le rythme k dans un rapport k+l' de façon à en sortir les données (corrigées) au rythme d'origine (H) ; ledit générateur d'horloge (17) étant en outre apte à récupérer, côté réception le signal de synchronisation-bloc SYNC, à partir d'un signal de "divergence de syndrome" (DS) émis par le registre à décalage de syndrome (60), par exemple par décalage de sa base de temps jusqu'à ne recevoir que des signaux de divergence de syndrome (DS) correspondant à des zéros. 2 - Codeur/décodeur correcteur d'erreur selon la revendication 1, caractérisé en ce qu'il comporte des moyens (65, 70 à 77) de paramétrage du registre à décalage de syndrome (60), pour lui permettre d'être utilisable pour tous les codes de WYNER-ASH, raccourcis ou nonr jusqu'au code dont le paramètre m est égal au nombre de bascules (81, 82,...87) de ce registre à décalage (60). 3 - Codeur/décodeur correcteur d'erreur selon la revendication 1 ou la revendication 2, caractérisé en ce que ledit circuit de retard (58) comporte des moyens de paramétrage (106) pour le rendre utilisable pour tous les codes de WYNER-ASH, raccourcis ou non.