FR 2027235 A1 19700925 FR 6945099 A 19691226 69 45099 1 2027235 La présente invention se rapporte à -un montage correcteur d'erreurs pour transmission de donnée, comprenant un codeur destiné à coder des blocs d'information en mots codés, les mots codés appartenant à un code de bloc (n, k) dans lequel 5 les mots codés comportent k chiffres d'informations et n-k chiffres correcteurs d1 erreurs. Les codes comportent également une possibilité de correction d'erreurs aléatoires dans laquelle k/n (b-1)/b et b est un entier. Le besoin d'une transmission et d'un traite-10 ment précis des données numériques est bien connu dans les domaines tels que la télégraphie, 1a. téléphonie et la technique des ordinateurs et de 1'automatisation.Diverses méthodes ont été proposées pour améliorer la précision de la transmission. Ces procédés vont depuis le simple circuit de détection d'erreurs à un bit requérant 15 l'adjonction d'un bit unique à chaque caractère ou mot de données à transmettre jusqu'à des circuits de correction d'erreurs plus élaborés requérant "le nombreux bits de contrôle de parité dispersés entre les bits d'information. Des montages ont été proposés pour corriger 20 les erreurs aléatoires (erreurs se produisant d'une manière aléatoire dans les données transmises), les erreurs impulsionnelles ou les deux à la fois. Etant donné que les lignes de transmission téléphoniques sont sujettes à la fois à des erreurs aléatoires et impulsionnelles, un intérêt considérable s'est manifesté pour 25 trouver des montages de correction d'erreurs efficaces pour les deux types d'erreurs indiqués plus haut. Les montages antérieurs pour corriger soit des erreurs impulsionnelles,soit les erreurs aléatoires et impulsionnelles à 1a. fois, requièrent une grande capacité d'emmagasinage de données. Ceci en raison du fait que 30 ces montages requièrent généralement un espace de gardé relativement grand de chiffres exempts d'erreurs entre les impulsions d'erreurs afin de corriger les chiffres erronés. En conséquence, une grande quantité de données reçues doivent normalement être emmagasinées avant d'être décodées. Jusqu'à présent tous les montages 35 pour corriger soit les erreurs impulsionnelles, soit les erreurs aléatoires e+ impulsionnelles à la fois, requéraient l'emmagasinage d'un nombre de chiffres au moins égal à l'espacement de garde requis par le montage. La présente invention a pour but de résoudre bad original^ 69 45099 2 202723S ce problème. Elle comprend une mémoire pour emmagasiner plusieurs des mots codés le plus récemment et un additionneur connecté au codeur et à la mémoire pour ajouter les k chiffres d'information d'un mot codé antérieurement au mot codé le plus récemment afin 5 de corriger les impulsions d'erreurs. Dans le récepteur, les chiffres correcteurs d'erreurs sont restitués et utilisés pour corriger les erreurs aléatoires, c'est-à-dire un nombre d'erreurs égal ou inférieur à r dans xm mot. Les chiffres correcteurs d'erreurs sont également 10 utilisés pour détecter plus de r erreurs dans un mot et donc pour détecter des impulsions d'erreurs. Lorsque des impulsions d'erreurs sont détectées, les indications des mots comportant plus de r erreurs sont emmagasinées et la transmission subséquente des chiffres d'information restitués à partir du mot subséquent aux-15 quels ces mots sont ajoutés, sont utilisas pour replacer les chiffres d'information ayant subi des impulsions d'erreurs. Dans un exemple de forme de réalisation de l'invention, l'extrémité émettrice comprend un codeur qui est agencé pour coder des blocs de caractères d'information provenant 20 d'une source d'information en mots codés d'un codé de bloc (n,k) -ayant une certaine possibilité de correction d'erreurs aléatoires,, dans laquelle, en général k/n Chaque séquence reçue est décodée afin de déterminer si le nombre d'erreurs dans la séquence se trouve dans 35 la gamme de correction possible choisi pour le codé. Dans l'affirmative, les erreurs sont corrigées (s'il y en a)d'uhe manière tra-ditionnellé et les blocs de caractères d'information' corrigés sont emmagasinés. Si le nombre"d'erreurs que contient la séquence reçue est supérieur à la gamme de correction possible du code gAD ORIGINAL 69 45099 3 2027235 (c 'est-à-dire une erreur impulsionnélle), les "blocs exempts d Erreurs transmis antérieurement et/ou ultérieurement sont utilisés pour dériver un bloc d'information afin de remplacer le bloc erroné. Les blocs d'information corrigés sont alors appliqués '5 à un circuit d'utilisation de données. L'espacement de garde requis dans le montage ci-dessus est de (b-1)nl caractères et la capacité d'emmagasinage du poste récepteur est de ^f(b-1 )2/b_=7nl+ n caractèreScOn voit que la capacité d'emmagasinàge est bien inférieure à l'espacement de 10 garde. L'invention apparaîtra plus clairement à la lecture de la description détaillée qui va suivre, faite en regard des dessins joints dans lesquels ; Les figures 1 et 2 sont des schémas fonction-15 nels de l'extrémité émettrice et de l'extrémité réceptrice, respectivement, d'un système de correction d'erreurs selon l'invention; Les figures 3 et 4 illustrent une forme de réalisation spécifique d'un système correction d'erreurs uti-20 lisant un code de bloc cyclique abrégé (10,5); La figure 5 est un tableau montrant les syndromes qui indiquent les erreurs pouvant être corrigées correspondant au code utilisé par le système représenté sur les figures -3 et 4; 25 Les figures 6 et 7 sont des tableaux montrant des représentations d'exemple de blocs de données codés et'transmis. Avant de décrire en détailsles dessins énu-> mérés ci-dessus, il peut être utile de rappeler brièvement la re-30 présentation algébrique des codes et des procédés de codage. En général, line séquence d'information de k caractères peut être représentée par un polynome de la forme suivante : A(X) = aQ + a^x + ... + a^^x ' . Dans le cas binaire, les coefficients aQ, a^,.... représen- 35 tent soit un 1, soit un O. Par exemple, la séquence binaire 101101 2 3 5 peut être représentée par le polynome 1+x + x + x . Avec une telle représentation, les bits d'information correspondant aux coefficients d'ordre élevé sont considérés comme étant transmis en premier lieu. 69 45099 4 2027235 Un code cyclique (n,k) peut être désigné sous la forme d'un polynome G(x) de degré n-k. Le mot de données de k caractères ©sfr codé en divisant le mot de données auquel est ajouté n-kzéro /"représenté par xn"k A(x)J7 Par le polynome G(x). 5 Le" reste R(x) de cette division représente la séquence de parité ou les caractères de parité/taoïvent alors être ajoutés au mot de données xn~1A(x)„ L'information codée peut donc être représentée par 10 C(x) = xn"kA(x) + R(x)0 Les procédés de codage et les représentations de code sont décrits en détailsians l'ouvrage intitulé " Error Cor-recting Codes" par W.W.Peterson, purviié par M.I.T. Press and John Wiley and Sons, 1961 15 Un exemple de description algébrique de la présente invention sera donné .ci-après en utilisant les représentations décrites ci-dessus. Comme indiqué plus haut, des blocs ou séquences de caractères d'information sont codés en un code de bloc (n,k) ayant une certaine possibilité de correction d'erreurs 20 aléatoires, dans lequel k/n = (b-l)/b et b est un entier. Le sym- - bole I.(x) est utilisé pour représenter le je bloc dé caractè- res d'information. On supposera que le bloc d'information I(b_iji(x) doit être codé, les blocs antérieurs. Iq(x), ... , I(b 2)l^x^ ®yant codés. Cela est réalisé comme indiqué 25 plus haut, en divisant xn~kI(k„i )]Jx) Par le polynome G(x) du code afin d'obtenir un reste mot codé est alors °(b-Di(x) = xn"kl(b-Di^ + R ZY"*n""kl(i,.Ji)i(x)_7/G(x>-7- 20 Des parties de claqua Ie bloc d'information parmi les (b-1)l blocs d'information codés antérieurement sont alors ajoutées à afin d'obtenir IvI (b-1 )1^X^ = C(b-l)l^ + I(b-2)l^x^ 2 "b 1 + I ("b-3)l^x^ + °°* + xo 35 où 1^ ^(x) représente le ieme groupe de k/(b-1) bits du bloc d'information I^(x)..Le bloc ®Cb„i )i(x") es-t alors transmis vers un poste récepteur par l'intermédiaire d'une voie de communication. Le bloc reçu est représenté par le symbole indiquant qu'il peut contenir des erreurs. 69 45099 5 2027235 A l'extrémité réceptrice, le bloc est reçu et enregistré. Les (b-1)1 blocs transmis antérieurement ont également été reçus, emmagasinés et traités afin de déterminer si le nombre d'erreurs dans les blocs dépas- 5 sait le nombre d'erreurs aléatoires pouvant être corrigé, correspondant au code. Si un bloc s'était avéré contenir plus d'erreurs que le nombre pouvant être corrigé, une mémoire aurait emmagasiné une indication selon laquelle le bloc était incorrect . Par 10 contre, si un bloc s'avère de pas contenir plus d'erreurs que le nombre pouvant être corrigé, le bloc est corrigé et une indication se trouve emmagasinée, selon laquelle le bloc est correct. * . . Sx, en recevant le bloc M (-b„-])iCx)s la mémoire indique que chaque Ie bloc d'information parmi les 15 blocs d'information reçus antérieurement, *("b„.2)l^x^ *(b 3)1^ • • .• I^Cx) , est correcte, des parties de ces blocs 12 b -i I (x) + I /, 0\,(x)'+ ... + In~'(x), sont soustraites du (b-1 )i v.b=3;l 0 bloc afin d'obtenir )]_(x). G(-b..1 )i(x) est alors 20 décodé de la manière usuelle. Si le nombre d'erreurs dans C(b_i)i(x) ne dépasse pas le nombre d{erreurs aléatoires pouvant être corrigées, est corrigé et la partie d'information ^■e ®(b-1)l^x^f c 'es"k~à.~dire, ^(b-1)l^x^ est emmagasinée dans le récepteur. Si l'on détermine lors du décodage que le nombre d'er~ 25 reursdans dépasse le nombre d'erreurs aléatoires pouvant être corrigés, une indication est emmagasinée dans la mémoire afin d'indiquer que le bloc I^ ^^(x) est incorrect. La correction de j-^(x) est alors effectuée, comme décrit d'une manière générale ci-dessous. 30 Si l'un des blocs d'information l(t,tJ2)l^x^ * ï(b-3)i(x) » • ♦ * » es^ ^correct, ce qu'indique la mémoire, le processus suivant est entamé. On supposera, par exemple, que le bloc d'information If, ,\t(x) est incorrect. On divise d'abord M ^ i)^\x) Par le polynome G(x) afin d'obtenir un reste ou syn-35 drome« Des parties des blocs d'information reçus et emmagasinés (sauf le bloc erroné), l(ij„2)i^x^ + ^(b-^Jl^^ + *" + 1(x), sont soustraites du reste afin d.'obtenir une résul-tante. Celle-ci, qui est une version correcte de 1^ codé originellement, est alors substituée à la version emmagasi- 69 45099 0 2027235 2 née de )]_(*) • Les autres parties du bloc d information in correct I('b.>3)i^x^ s0511' obtenues d'une manière similaire à partir de blocs d'information reçus antérieurement et reçus ultérieurement. Afin de corriger, dans un bloc d'information 5 reçu, des erreurs qui dépassent le nombre d'erreurs pouvant être corrigé , chaque 1 bloc parmi les.(b-l)l blocs d'information reçus antérieurement doit pouvoir être corrigé par le processus de correction d'erreurs aléatoires et chaque 1® bloc d'information parmi les (b-l)l blocs reçus ultérieurement doit être exempt 10 d'erreurs. L'espacement de garde requis pour corriger des impulsions d'erreurs jusqu'à 1 blocs de longueur, est de (b~1)l blocs. Les figures 1 et 2 illustrent d'une façon générale une forme de réalisation permettant de réaliser le processus décrit ci-dessus pour le code décrit.Des blocs de carac-15 tères.d'information provenant d'une source 104 sont appliqués à un codeur 112 dans "lequel les blocs d'information sont codés en un code de bloc (n,k). Les mots de code consistent en k caractères d'information et n-k caractères de contrôle de parité. Les blocs d'information sont également appliqués à une mémoire 20, 116 pouvant emmagasiner 1 blocs de k caractères, 1 étant un entier quelconque. Les caractères d'information sont -appliqués par le codeur 112 à Un émetteur 124, par l'intermédiaire d'un additionneur 120, l'émetteur transmettant les caractères à ma poste récepteur par l'intermédiaire d'une voie 128. Les caractères de 25 contrôle de parité engendrés par les codeurs 112 sont alors appliqués à 1'additionneur 120 dans lequel ils sont modifiés par addition de diverses partiés des blocs d'information transmis antérieurement, qui sont emmagasinées dans la mémoire 116. Ces parties sont appliquées à l'additionneur 120 à l'instant correct 30 en réponse à une horloge 108. Les parties qui sont ajoutées sont, 4 V» *1 comme on l!à;-vu plus haut, .2)i(x) + ... + Iq (x). Le résultat de cette addition est alors appliqué à l'émetteur 124 dans lequel il est transmis au poste récepteur par 1'intermédiaire de la voie de communication 128. 35 - Les données transmises sont reçues par le récepteur 204 qui applique les blocs d'information reçus à une mémoire 212 ayant une capacité de kl caractères et à un décodeur 216. Les blocs de contrôle de parité oucaracfcères de contrôle de 69 45099 7 2027235 parité"sont également appliqués au décodeur 216. Cela est effectué en réponse à des impulsions d'horloge engendrées par l'horloge 208. Si un des Ie blocs d:information parmi les (b-1)l blocs d'information reçus antérieurement est incorrectP ce qui 5 est indiqué par la mémoire 228, le décodeur 216 engendre le syndrome du bloc de données qui vient d'être reçu, Cela peut être fait d'une manière traditionnelle quelconque telle que décrite par exemple dans l'ouvrage de Peterson cité plus haut. Ce syndrome est alors appliqué par le décodeur .216 à un circuit 10 de logique 224. En réponse à une indication provenant de la mémoire- 228, selon laquelle le bloc est incorrect2 le circuit de logique 224 soustrait- des parties spécifiques de chaque Ie bloc parmi les (b~1)l blocs d'information antérieurs emmagasinés dans la mémoire de caractères 212 (à 1'exception du bloc incorrect) 15 à partir du syndrome fourni par le décodeur 216 et il substitue la résultante de cette soustraction à une partie du bloc incorrect dans la mémoire de caractères 212. Les autres parties du bloc incorrect sont engendrées d'une manière similaire à partir des blocs de données reçus antérieurement ou ultérieurement jus-20 qu'à ce que le bloc incorrect tout entier ait été replacé et corrigé. Les blocs d'information corrects sont alors envoyés par la mémoire de caractères 212 à un circuit d'utilisation 232. Les figures 3 et 4 illustrent un exemple spécifique de forme de réalisation d'un système selon l'inven-25 tion. Cette forme de réalisation utilise un code cyclique abrégé binaire (10, 5)avec 1 - 2. Le polynome du code est G(x) = x^ + x^ + x + 1. Le système est capable de corriger des erreurs aléatoires simples, de détecter des erreurs aléatoires doubles .et de corriger des erreurs impulsionnelles qqùi occupent deux 30 blocs de 10 bits à condition qu'elles soient détectables et que les deux blocs de 10 bits suivants soient exempts d'.erreurs. En admettant que les erreurs impulsionnelles sont corrigées d'une autre manière, les impulsions qui occupent un bloc unique de 10 bits peuvent être corrigées à condition que le deuxième bloc 35 de 10 bits suivant est exempt d'erreurs» Dans le montage selon la figure 3f une source d'information 304* en réponse à une horloge 308, applique des blocs d'information de 5 bits à une'mémoire de caractères 312, à un additionneur modulo-2 328 et à un émetteur 340 par 1 ' in-40 termédiaire d'un commutateur 324 lorsque celui-ci se trouve dans 69 45099 6 2027235 la position A. Tandis qu'un bloc d'information est appliqué à l'additionneur 32#» un commutateur 332 se trouve dans la position par laquelle est établie une voie de rétroaction dans un registre à décalage 336 de manière à engendrer un mot de parité 5 de 5 bits.Après qu'un bloc d'information de 5 bits ait été appliqué au registre à décalage 336, le commutateur 332 est ouvert, le commutateur 324 est placé dans la position B et le contenu du registre à décalage 336 est appliqué à l'additionneur 328,Celui-ci additionne le mot de parité provenant du registre 10 à décalage 336 à un bloc d'information transmis précédemment qui se trouve emmagasiné dans la moitié droite de la mémoire 316'. Lë bloc d'information auquel est ajouté le mot de parité est un bloc qui a été transmis deux blocs avant le bloc d'information qui est en train d'être codé. Afin d'illustrer ce processus d'une 15 manière plus claire, on supposera que le bloc d'information que l'on ajoute aux bits de parité provenant du registre à décalage 336, est le bloc d'information Iq et que le bloc d'information suivant Iq, emmagasiné en ce moment dans la moitié gauche de la mémoire 316, est 1^ et que le bloc d'information qui est en 20 train d'être codé et emmagasiné dans la mémoire 312 est I2. Il est clair alors que le bloc d'information Iq est ajouté aux bits de parité du bloc d'information I2. Le bloc résultant de cette addition est appliqué à l'émetteur 340, par l'intermédiaire du commutateur 324» de manière à être transmis sur la voie de 25 communication 3^4. Chaque bloc d'information est donc ajouté aux bits de parité de chaque deuxième bloc d'information suivant. Le bloc transmis consiste en un bloc d'information de 5 bits et un bloc de parité de 5 bits qui a été modifié par addition à celui-ci d'un bloc d'information transmis antérieurement. 30 On soulignera que la génération des bits de parité par des registres à décalage tel que le registre 336 est décrite en détails dans l'ouvrage de Peterson cité précédemment. Il est donc inutile d'aborder cette question d'une manière plus approfondie. Chaque bloc de 10 bits codé et transmis est reçu par un récepteur 404 sur la figure 4. On supposera que les blocs d'information Iq et 1^, avec leurs bits de parité appropriés, ont été reçus par le récepteur 404 et traites par le décodeur ^36. Ce traitement, que l'on décrira plus loin, consiste 69 45099 9 2027235 à déterminer si les blocs d'information I et I1 sont corrects 0 ou non.S*il a été déterminé que Iq est correct, un B0" est emmagasiné dans la partie droite de la mémoire 440. S'il a été déterminé que le bloc d'information Iq est incorrect, un "1" est em-5 magasiné dans cette position. D'une manière similaire, un "0" ou "1" est emmagasiné dans la partie gauche de la mémoire 440 selon que le bloc d'information 1^ est correct ou non. On supposera que le bloc d'information I2, ainsi que les bits de parité appropriés, onfcété reçusjjar le récepteur 404* le bloc d'information I2 est 10 alors appliqué à une mémoire 412 ayant une capacité de 5 bits et à un additionneur modulo-2 432 que comprend un registre à décalage 428, puis introduit dans le registre à décalage 428. Si le bloc d'information Ig qui est emmagasiné dans la partie droite de la mémoire 420 s'est avéré être correct, ce qui est indiqué par un 15 "0" emmagasiné dans la mémoire 440, le bloc d'information Iq est transmis à une porte ET 430 par l'intermédiaire d'une porte ET 444. lorsque le bloc d'information Iq est appliqué à une entrée de la porte ET 430 en même temps que des impulsions d.'horloge appropriées sont appliquées par une horloge 408 à l'autre entrée de la porte 20 ET 430, celle-ci est ouverte et le bloc d'information Iq se trouve appliqué à 1'additionneur inodulo-2 432 dans lequel il est ajouté aux bits de parité du bloc I2 qui lui est apppliqué par le récepteur 404.(Dans la description générale qui précède, on a dit que les blocs d'information étaient soustraits mais, en fait, une 25 addition est la même opération qii'une soustraction en opération binaire). La résultante de cette addition est introduite dans le registre à décalage 428. Pendant que ce décalage a lieu ainsi que pendant que le décalage antérieur du code d'information I2 a lieu dans le registre 428, un commutateur 444 est maintenu en position 30 fermée, connectant de la sorte la voie de rétroaction du registre à décalage 428. Il en résulte la génération d'un syndrdme ou reste du bloc de données contenant I2. Ce syndrome est alors appliqué au circuit de vérification 424 dans lequel il est traité afin de déterminer combien d'erreurs se sont produites dans le 35 bloc qui vient d'être reçu, lequel contient le bloc I2. S'il est déterminé qu'une seule erreur s'est produite, un mot d'erreur engendré par le circuit de vérification 424 est appliqué à l'additionneur modulo-2 416 par l'intermédiaire d'une porte ET 426; dans l'additionneur, ce mot est ajouté au bloc d'information I2 69 45099 10 2027235 appliqué par la mémoire 412. (La porte ET est ouverte par la présence d'un signal binaire "0" dans la partie droite de la mémoire 440.) Il en résulte qu'une erreur simple quelconque, existant dans le bloc d'information Ig? est corrigée et un bloc 5 d'information correct est appliqué à la partie gauche de la mémoire de caractères 420. Le processus qui vient d'être décrit, c'est-à-dire l'addition d'un mot d'erreur au bloc d'information I2 > est le processus de correction d'une erreur aléatoire simple quel-10 conque qui se produit dans un bloc de données transmis. Une telle' correction d'erreur aléatoire est bien connuedans la technique de la transmission des données et elle est décrite en détails dans l'ouvrage de Peterson cité précédemment. Si, à partir du traitement du syndrome par 15 le circuit de vérification de 424, il est déterminé que plus d'une erreur simple s'est produit dans le bloc de données reçu , le circuit 424 enregistre un "1" dans la partie gauche de la mémoire 440 et introduit le bit qui se trouve déjà dans cette position, dans la partie droite de cette mémoire. Le bloc d'information Ig 20 est alors appliqué à la mémoire 420 par l'intermédiaire de l'ad-- ditionneur modulo~2 416 et le bloc d'information Iq est appliqué à un circuit d'utilisation de données 456 par l'intermédiaire de la porte ET 444, d'une porte ET 450 et d'une porte OU 452. Si le bloc d'information Iq s'avère être 25 incorrect, un "1" se trouve introduit dans la partie droite de la mémoire 440. Dans ce cas, les bits de parité du bloc d'information Ig-, après avoir été reçus dans le récepteur 404, sont appliqués au registre à décalage 428 par l'intermédiaire de l'additionneur modulo-2 432 et à la mémoire 412 ayant une capacité 30 de 5 bits. L'introduction de ces bits de parité dans le registre à décalage 428 lorsque le commutateur 434 se trouve dans la position fermée (et le commutateur 438 dans la position ouverte ) donne lieu à la génération du syndrome du bloc de données contenant I2. On se rappellera que lors du codage du bloc d'informa-35 tion I2, le bloc d'information Iq a été ajouté aux bits de parité .du bloc d'information Ig avant d'être transmis . La génération du syndrome du bloc de données reçu, contenant Igf- donne donc lieu à la génération du bloc d'information In (à condition, évi-demment, qu'aucune erreur/se soit produite dans le bloc de données 69 45099 n 2027235 contenant I2 ). Ainsi donc, lorsque I2 + E/"(x^I2)/Gr(x)_7 + Iq est divisé par le polynome Cr(x), le reste ou syndrome est Iq„ le contenu du registre à décalage 428, qui est le bloc d'information Iq, est alors appliqué à une porte ET 448 par l'intermédiaire 5 du commutateur 438 qui est alors fermé» La porte ET 448 est ouverte par la présence d'un "1" dans la partie droite de la mémoire 440, transférant Iq à la porte OU 452 et au circuit d'utilisation de données 456. De cette manière, le bloc d'information Iq, qui avait été détecté antérieurement comme étant incorrect, est corrigé 10 en utilisant le bloc de données contenant I2, transmis ultérieurement . On va décrire à présent le fonctionnement du système représenté sur les figures 3 et 4 à l'aide d'un exemple.. On supposera que les blocs d'information Iq, 1^, I^ et I^ , in-15 diqués dans la partie A de la figure 5, doivent être transmis. La source d'information 304 applique d'abord le bloc d'information Iq comprenant les bits 00001 au registre à décalage 336. Le bit "1".est d'abord appliqué au registre à décalage 336 de telle sorte que se trouve engendré le mot 11010 dans le registre. Lorsque le 20 bit suivant du bloc Iq, c'est-à-dire, le bit "0", se trouve appliqué, le mot 01101 est engendré. D'une manière similaire, l'application des autres "0" au registre à décalage 336 donne lieu à la génération des bits de parité indiqués dans la partie B de la figure 5. Ces bits de parité sont alors ajoutés dans la moitié droi.» 25 te du contenu de la mémoire 316, laquelle, à ce moment, contient tousdes "0" puisqu'aucun bloc d'information n'a été transmis antérieurement. Le bloc résultant Mq , indiqué dans la partie D de la figure 5, est alors appliqué à l'émetteur 340 afin d'être transmis sur la voie de communication 344= Les autres blocs d'in-30 formation 1^, I2 et I^ sont codés, d'une manière similaire. Les diverses étapes du processus de codage pour chaque bloc d'information est indiqué dans le tableau de la figure 5» Les bits de parité P sont indiqués pour chaque bloc d'information dans la partie B de la figure 5 tandis que les blocs de code C comprenant les 35 blocs d'information et les bits de parité, sont indiqués pour chaque bloc d'information,dans la partie C de la figure 5* Les blocs de données transmis M , comprenant les blocs de code plus les blocs d'information transmis antérieurement, sont indiqués dans la partie D de la figure 5. bad origjnae/ 69 45099 12 2027235 Oi^ supposera à présent que les blocs de données transmis Mg à M^reçus dans le récepteur 404 sur la figure 4 avec les erreurs indiquées dans le tableau de la figure 6. Par exemple, le bloc de données Mq est reçu avec sept erreurs, 5 le bloc de données avec une erreur, etc.c.Dans ce ta.bleau, les bits erronés sont indiqués da.ns un rectangle. Les astérisques servent à distinguer, des blocs transmis,les blocs reçus qui peuvent contenir des erreurs» Après que le récepteur 404 ait reçu le 10 bloc Mq, le récepteur applique les cinq premiers bits reçus, c'est-à-dire le bloc d'information I , à la mémoire 412 ayant une capacité de cinq bits, et au registre à décalage 428. Le * récepteur 404 applique alors les cinq autres bits du bloc Mq, c'est-à-dire les bits de parité, à l'additionneur modulo-2 432 15 et au registre à décalage 428» Comme aucun bloc de données n'a été reçu antérieurement, la mémoire 440 emmagasine des "0" et le contenu dont la moitié droite de la mémoire 420 est ajouté a.ux bits de parité du bloc de données Mq dans l'additionneur modulo~2 432» Comme les contenus sont des "0", les bits de parité 20 ne sont pas affectés» L'introduction du bloc de données Mq dans ' le registre à décalage 428 lorsque le commutateur 434 est fermé, donne lieu à 1a. génération du syndrome 01011. Comme ce syndrome ne se trouve pas parmi les syndromes qui indiquent des" erreurs pouvant être corrigées, telles qu'indiquées dans 1a. partie A du 25 ta.bleau de la. figure 7, le circuit de vérification 424 détermine que les erreurs ne peuvent être corrigées et que le bloc d'information Iq est incorrect. Le circuit de vérification 424 emmagasine alors un "1" dans 1a. partie gauche de 1a. mémoire 440 afin d'indiquer que le bloc d'information Iq est incorrect. Le bloc 30 d'information Iq est alors appliqué par la. mémoire 412 à la moitié gauche de la mémoire 420. * Le bloc de donnees M^ est alors reçu et . le bloc d'information 1^ est appliqué à la. mémoire 412 et a.u registre à décalage 428» Les bits de parité du bloc de données 35 ^1 sont alors appliqués à l'additionneur modulo-2 432. Comme 1a. position de droite de la. mémoire 440 contient un "0", le contenu de la moitié gauche de la mémoire 420 est ajouté a.ux bits de pa.rité du bloc de données M* avant d'appliquer Ces bits a.u registre à décalage 428. Les bits de parité ne sont cependant pas 69 45099 13 2027235 affectés puisque se sont tous des "0" qui sont emmagasinés dans 1a. moitié droite de 1a. mémoire 420. L'application des bits de parité du bloc au registre à décalage 428 lorsque le commutateur 434 est fermé, provoque la. génération du syndrome du bloc * 5 de données M-j comme précédemment. Le syndrome engendré est 00111 qui est alors appliqué au circuit de vérification 424 dans lequel il est traité afin de déterminer s'il correspond à l'un de ceux qui indique une erreur pouvant être corrigée. En se reportant à 1a. partie A du tableau de la. figure 7, on voit que ce syn-10 drome correspond à l'un de ceux qui indique qu'une- erreur peut être corrigée et l'on voit dans la partie.D de ce ta.blea.u que la position du bit erroné est la position 1„ En fait, on voit dans le ta.blea.u de la figure. 6 que le bit se trouvant dans la position * 1 du bloc est errone. Le mot d'erreur 00001 est alors engendré 15 par le circuit de vérification 424 et appliqué à l'additionneur modulo-2 416 dans lequel il est ajouté au bloc d'information 1^ reçu de la mémoire 412. La résultante de cette addition est introduite dans la mémoire 420 et le bloc d'information Iq, qui se trouvait dans la. moitié gauche de la mémoire 420, est décalé 20 dans la moitié droite de cette mémoire» Le circuit de vérification de 424 applique également un "0" à la. mémoire 440, décalant ainsi dans 1a. position droite, le signal "1 " qui se trouvait dans la position de gauche. L'état du poste décodeur à ce moment est tel que le bloc d'information Iq est emmagasiné dans la moitié 25 droite de 1a. mémoire 420, que le bloc d'information 1^ est emmagasiné dans la. moitié gauche de cette mémoire, qu'un "1" est emmagasiné dans la position de droite de la. mémoire 440 et qu'un "0" est emmagasiné dans la position gauche de la mémoire 440. Le bloc de donnéeë> l/U est alors reçu par 30 le récepteur 404 et le bloc d'information I2 se trouve a-ppliqué à 1a. mémoire 412 et au registre de décalage 428. Les bits de pa-rité du bloc M2 sont alors appliqués à l'additionneur modulo-2 432. Comme un "1" est emmagasiné dans la position de droite de 1a. mémoire 440, le contenu de 1a. moitié droite de la mémoire 420 35 n'est pas appliqué pendant ce temps. Les bits de pa.rité sont introduits dans le registre à décalage 428 et le syndrome du bloc Mg se trouve engendré. Le syndrome engendré est 00001 qui est le même que la version correcte du bloc d'information Iq (voir figure 5). Après que ce syndrome ait été engendré, le commutateur 69 45099 14 2027235 434 est ouvert, le commutateur 438 est fermé et le syndrome est envoyé au circuit d'utilisation de données par l'intermédiaire de la porte ET 448 et de la porte OU 452, en lieu et place du bloc d'information incorrect IQ qui est emmagasiné dans la 5 moitié droite de la mémoire 420. Le bloc d'information Iq emmagasiné est simplement extrait de la mémoire 420 et éliminé. De cette manière, les erreurs impulsionnelles qui se sont produites dans le bloc d'information In, se trouvent corrigées. , * Le bloc de donnees est enfin reçu dans 10 le récepteur 404 et appliqué au décodeur 436 dans lequel il est traité comme décrit plus haut. Dans ce casK le bloc d'information 'I1 qui se trouve à présent dans la. moitié droite de la mémoire 420, est ajouté a.ux bits de parité du bloc et la résultante de cette addition est appliquée au registre à décalage 428. Dès 15 lors, le commutateur 434 étant fermé, le syndrome 11010 se trouve engendré. On voit sur la figure 7 que ce syndrome indique qu'une seule erreur s'est produite dans la. cinquième position du bloc d'information I^ reçu. Sur la figure 6 on voit qu'une erreur s'est effectivement produite dans la. cinquième position 20 de bits. Cette erreur est corrigée dans le bloc d'information „ I^ comme on l'a décrit plus haut, et appliqué à la mémoire 420. De 1a. manière décrite ci-dessus dans le cas de la forme de réalisation représentée à titre d'exemple par les figures 3 et 4, des erreurs aléatoires simples peuvent être cor-25 rigées tout comme des erreurs impulsionnelles qui occupent deux blocs de données de 10 "bits à condition que les deux blocs de données de 10 bits suivants aoient exempts d'erreurs. Cette correction est effectuée avec une capacité d'emmagasinage minimale dans le décodeur. En fait, 1a. capacité d'emmagasinage est infé-30 rieure à l'espacement de garde requis du système. La capacité d'emmagasinage est de 15 bits tandis que l'espacement de garde est de 20 bits. Des circuits détaillés n'ont pas été représentés pour les organes 308 et 340 sur la figure 3 et pour 35 les organes 404,408 et 424 sur la. figure 4 étant donné que de tels circuits sont considérés comme étant de la compétence ordinaire de l'homme de l'art. On soulignera également que le commutateur 324 sur 1a. figure 3 et les commutateurs 434 et 438 sur 1a. figure 4 peuvent être actionnés par des horloges ou autres dispositifs logiques de commande même si cela n'a pas été repré 45099 15 2027235 sente sur les dessins. Les commutateurs ont été représentés comme de simples commutateurs à deux positions afin de simplifier la description. Enfin, il est entendu que les montages décrits ci-dessus ne sont que des exemples d'application des principes de l'invention. D'autres montages et de nombreuses modifications peuvent être conçus par l'homme de l'art sans pour autant s'écarter de l'esprit de l'invention. N'importe quel code de cor-rection d'erreurs aléatoires qui satisfait aux exigences éta.blies dans la. description qui précède peut être utilisé et des procédés de correction d'erreurs aléatoires classiques peuvent être utilisés. LEGEHDE DES FIGUBES 5.6 et 7 Figure 5 : a blocs d'information à transmettre b bits de parité engendrés pour les blocs d'information c code de blocs d blocs de données transmis Figure 6 : a blocs de données reçus Figures 7 : a syndromes qui indiquent une erreur pouvant être corrigée b position de l'erreur indiquée par le syndrome. 69 45099 16 2027235 REVENDICATIONS. • 1.- Montage de correction d'erreurs pour système de transmission de données, comprenant un codeur pour coder des blocs d'information en mots de code, les mots de code appartenant à un 5 code de bloc (n, k) dans lequel les mots de code comportent k chiffres d'information et (n-k) chiffres de correction d'erreur, le code de bloc ayant une possibilité de corriger r erreurs aléatoires, avec k/n^(b-l)/b et b est un entier, caractérisé en ce qu'il comprend une mémoire pour emmagasiner plusieurs des mots 10 codés les plus récents, et un additionneur connecté au codeur et à la mémoire pour additionner les k chiffres d'information d'un mot codé antérieurement au mot codé le plus récent afin de corriger les impulsions d'erreurs. 2.- Montage selon la revendication 1, caractérisé en ce 15 que la mémoire est prévue pour emmagasiner (b-l)l des blocs d'information codés les plus récents, 1 étant un entier, et en ce que l'additionneur ajoute des parties de chaque Ie bloc d'information emmagasiné au mot codé le plus récent. 3.- Montage selon la revendication 1, caractérisé en ce 20 qu'il comprend un récepteur répondant à l'information codée, ce récepteur comprenant des moyens pour emmagasiner plusieurs des chiffres d'information reçus le plus récemment, appartenant aux mots reçus, un circuit correcteur et détecteur propre à corriger un nombre d'erreurs aléatoires inférieur ou égal à r et à détec-25 ter un nombre d'erreurs supérieur à r dans les mots reçus, et un dispositif de substitution répondant au circuit correcteur et détecteur afin de substituer les chiffres correctifs aux chiffres d'information des mots reçus dans lesquels sont détectés des erreurs dont le nombre est supérieur à r. 30 4.- Montage selon la revendication 3» caractérisé en ce que le circuit correcteur et détecteur comprend un dispositif-pour emmagasiner une indication des mots reçus le plus récemment qui contiennent un nombre d'erreurs supérieur à r et de ceux qui contiennent un nombre d'erreurs inférieur ou égal à r, un dispo-35 sitif pour soustraire du mot reçu le plus récemment, des données dérivées des chiffres d'information reçus antérieurement lorsque l'indication emmagasinée indique qu'un des blocs reçus le plus récemment contient un nombre d'erreurs inférieur ou égal à r, des circuits correcteurs pour corriger un nombre d'erreurs aléa-40 toires inférieur ou égal à r dans la résultante de la soustraction» 2027235 et des circuits correcteurs pour détecter un nombre d'erreurs supérieur à r dans la résultante de la soustraction afin d'emmagasiner une indication dans les moyens d'emmagasinage d'indications, selon laquelle un nombre d'erreurs supérieur à r a été 5 détecté. 5.- Montage selon la revendication 4» caractérisé en ce que le dispositif de substitution répond à une indication contenue dans les moyens d'emmagasinage d'indications, selon laquelle 10 un des 1 blocs parmi les (b-l)l blocs d'information reçus le plus récemment, contient un nombre d'erreurs supérieur -à r afin de décoder le bloc reçu le plus récemment en vue d'obtenir le syndrome de ce bloc, et en ce -qu'il comprend un dispositif pour soustraire dudit syndrome, des données dérivées de parties de 15 chaque Ie bloc parmi les (b-l)l blocs d'information reçus le plus récemment à l'exception des chiffres du bloc reçu qui est indiqué comme contenant un nombre d'erreurs supérieur à r, et des circuits pour substituer aux chiffres d'information du mot contenant un nombre d'erreurs supérieur à r, des données dérivée 20 de la différence obtenue du dispositif soustracteur. 69 45099