FR 2583240 A1 19861212 FR 8508481 A 19850605 PROCEDE DE TRANSMISSION EN BLOCS DE MOTS D'INFORMATION NUMERIQUE La présente invention a pour objet un procédé de transmission en blocs de mots d'information numé- rique. Elle concerne plus particulièrement une technique de codage et de décodage dans laquelle on forme des blocs d'émission composés chacun d'une suite de mots d'information numérique et de mots de redondance associés, ces mots de redondance étant construits de manière à détecter et à corriger, à la réception, des paquets d'erreurs de grande longueur, telles que celles rencontrées en enregistrement numérique sur bande magnétique. De manière classique, dans le domaine de l'enregistrement numérique sur bande magnétique, l'information à enregistrer est organisée en trames comprenant chacune un mot de synchronisation, un mot d'identification, un ou plusieurs mots d'infor- mation et un code détecteur d'erreur. Ce code détecteur d'erreur peut ne pas détecter toutes les erreurs. Pour améliorer les capacités de détection et de correction des erreurs, il est connu de regrouper les trames en ensembles de trames et de relier les informations homologues (i. e. les bits de même rang) des trames d'un même ensemble par des relations mathématiques simples telles que la parité de la somme des bits homologues. Il est également connu de formerun bloc d'émission en entrelaçant les suites de trames de plusieurs ensembles liés de façon à rendre les probabilités d'erreurs sur les trames d'un même ensemble indépendantes les unes des autres. 2 2583240 L'article "Improved two channel PCM tape recorder for professional use" de K. Tanaka et aI présenté au 64ème congrès de la Société des Ingénieurs Audio, New-York,Novembre 1979 décrit un tel procédé de transmission en blocs de mots d'information numérique. L'enregistrement est réalisé sur une bande magnétique à 8 pistes dont 6 sont affectées aux mots d'information et 2 aux mots de redondance reliant les informations homologues des trames d'un même ensemble. Ces mots de redondance sont obtenus à l'aide d'un code du type Reed-Solomon. Ce procédé connu n'est pas pleinement satisfaisant car le code de ReedSolomon est un code complexe. La détection et la correction des erreurs au moyen de ce code demandent donc des calculs longs et compliqués. Par ailleurs, la capacité de correction du procédé décrit, c'est-à-dire la proba- bilité d'avoir une erreur non corrigeable, est proportionnelle à p3 lorsque la probabilité d'avoir une erreur est égale à p. Cette capacité de correction n'est pas très élevée. Le rapport performance à complexité apparaît donc très moyen. On connait des-procédés de transmission dans lesquels la probabilité d'erreur non corrigeable est proportionnelle à p. Un tel procédé est décrit dans la demande de brevet français n 2 467 510 inti- tuLée "Procédé et dispositif de transmission d'une séquence de mots d'information numérique". Dans ce procédé, les mots d'information sont séparés en une séquence de mots d'information pairs et une séquence de mots d'information impairs. Ces séquences sont codées et transmises avec un décalage temporel. Cette technique permet d'éviter 3 2583240 qu'un défaut affectant le canal de transmission, ou le support d'enregistrement, ne provoque une erreur sur deux mots d'information consécutifs. Un mot d'in- formation reconnu erroné peut ainsi être corrigé ou, si la correction n'est pas possible, interpolé à partir du mot d'information précédent et du mot d'in- formation suivant. Cette interpolation n'a évidemment un sens que si les mots d'information successifs sont corrélés, ce qui est notamment le cas en enregistrement numérique d'un signal sonore. Dans ce procédé, le format de transmission ou d'enregistrement présente une structure glissante c'est-à-dire que l'entrelacement des trames est tel qu'il est impossible de définir des blocs indépendants comme c'est le cas dans l'article cité. Ceci a pour conséquence une complication lors du montage éLec-' tronique de programmes sonores> notamment due aufait que les structures glissantes sont brisées au point de montage, ce qui induit une perte de capacité de correction. L'invention a notamment pour but de remédier aux inconvénients des procédés de transmission connus. L'invention a pour objectif un procédé de transmission en blocs indépendants, afin de pouvoir faire du montage facilement, en particulier du montage élec- tronique. L'invention a également pour objectif un procédé de transmission apte à résister à une perte d'informations survenant sur toute la largeur d'une bande magnétique sur une longueur de 5 à 10 mm environ, dans le cas o l'enregistrement est effectué en parallèle sur plusieurs pistes magnétiques,et apte à résister à la perte complète d'une piste magnétique lorsque Les informations sont réparties par exemple sur quatre pistes magnétiques. L'invention a aussi pour objectif un procédé de transmission permettant de corriger au moins 3 erreurs, c'est-à-dire un procédé de trans- mission dans lequel La probabilité d'erreur non cor- rigibLe est proportionnelle à p, Lorsque la probabi- lité d'avoir une erreur est égale à p. L'invention a enfin pour objectif de détecter et de corriger des erreurs non détectées par les codes détecteur d'erreur protégeant Les mots d'information et de redondance. De manière précise, l'invention a pour objet un procédé de transmission en blocs de mots d'information ayant une Longueur de n1 bits dans lequel on associe, à chaque suite de n2-k (n2>k) mots d'information consécutifs, k mots de redondance de n1 bits chacun dans lesqueLs, pour chaque rang i (1i ensemble Lié étant indépendants. Les mots de redondance sont obtenus de préférence par un code de Hamming étendu, c'est-à-dire de la forme (2, 2-m-1), o m est un entier. Mais il est également possible d'utiliser un code de Hamming normal de la forme (2 m-1, 2m-m-1). Dans les deux cas, le code peut être raccourci. IL est alors respectivement de la forme (2m-p, 2N-m-1-p) ou de la forme 2m-1-p, 2m-m-1-p). Ce raccourcissement consiste -2583240 à forcer la valeur de p bits de chaque mot d'information à une valeur binaire particulière, en général la valeur "0". De manière préférée, un bloc transmis comporte plusieurs ensembles liés entrelacés. Les mots homo- logues de chaque ensemble forment un groupe. Ces mots homologues sont répartis dans une ou plusieurs trames munies chacune d'un code détecteur d'erreur, par exemple d'un mot de code de type CRC. De manière avantageuse, pour produire les k bits de redondance associés à n2-k bits d'information, on utilise une matrice de Hamming à n2 lignes et k colonnes dont tous les vecteurs colonne sont de parité impaire. Les caractéristiques et avantages de l'invention ressortiront mieux de la description qui va suivre, donnée à titre illustratif mais non limitatif, en référence aux dessins annexés, sur lesquels: - la figure I illustre le format d'un bloc d'émission obtenu selon le procédé de transmission de l'invention, - la figure 2 représente un mode de réali- sation d'un dispositif de codage pour la mise en oeuvre du procédé de l'invention, - les figures 3 et 4 illustrent deux modes de rangement des groupes d'un bloc sur un support d'enregistrement à 4 pistes, - la figure 5 illustre un mode de réalisation de l'étage de reconnaissance des trames valides du dispositif de décodage mettant en oeuvre le procédé de l'invention, - la figure 6 illustre un mode de réalisation de l'étage de calcul du syndrome du dispositif de dé- codage associé au procédé de l'invention, et - la figure 7 illustre un mode de réalisation de l'étage de correction d'erreur du dispositif de décodage associé au procédé de l'invention. On va tout d'abord décrire en référence à la figure 1 la structure d'un bloc d'émission produit au moyen du procédé de l'invention. Un bloc constitue une entité indépendante. Il se compose d'une suite de n2 groupes G1, G2,.... Gn2. Chaque groupe contient un nombre déterminé de mots qui sont soit des mots d'information, soit des mots de redondance. Pour diminuer les risques d'erreurs, ces groupes sont organisés en trames. A titre d'exemple, dans la représentation de la figure 1, chaque groupe est constitué d'une suite de 8 trames T1, T2,... T8, chaque trame comprenant un mot de synchronisation SY, un mot d'identification ID notant le numéro de la trame dans Le groupe et le numéro du groupe dans le bloc, une suite de 16 mots M1, M2,.. . M16 et un mot de code détecteur d'erreur. Ce mot d'identification peut éventuellement être étendu pour porter diverses informations associées aux mots M1 à M16 de la trame, tel qu'un facteur d'échelle. Ce bloc contient 8 ensembles liés formés chacun d'une suite de n2-k trames de 16 mots d'infor- mation et de k trames de 16 mots de redondance. Les éLéments (bit, mot ou trame) d'un ensemble lié sont répartis à raison d'un éLément par groupe, ces éléments occupant des positions homologues dans chaque groupe. Les n2-k premiers groupes contiennent par exemple les n2-k mots d'information de chaque ensemble lié et les k derniers groupes les mots de redondance associés. Le nombre de mots par trame, de trames par groupe et de groupes par bloc sont fonction du canal de transmission ou du support d'enregistrement utilisé. Dans le cas o la transmission s'effectue par paquets, 7 2583240 il-peut être avantageux de faire correspondre trame et paquet. Dans le cas de l'enregistrement sur une bande magnétique, deux types principaux d'erreurs peuvent se produire: des erreurs Longues dues à de gros incidents mécaniques affectant la bande magnétique sur une Longueur d'environ 5 à 10 mm, et des erreurs courtes dues à une poussière ou un défaut magnétique affectant La bande sur une longueur de l'ordre du dixième de miLLimètre. De préférence, chaque trame a une longueur de l'ordre du dixième de millimètre pour éviter de perdre un groupe complet lorsqu'il y a une erreur courte. Le nombre de trames par groupe dépend des capacités de correction souhaitées. Par exemple, pour n2 = 16, on a k = 5 (code de Hamming étendu (16, 11)) et on peut corriger des erreurs longues s'étendant sur 5 groupes consécutifs, comme on le verra dans la suite de la description. Dans ce cas, chaque groupe doit avoir une longueur de 1 à 2 mm, ce qui représente une dizaine de trames par groupe. Comme il est décrit dans la demande de brevet français n0 2 467 510 déjà citée, il est avantageux, dans le cas de l'enregistrement de mots d'information correspondant à un signal sonore, de séparer géogra- phiquement les mots d'information pairs et les mots d'information impairs. Ceci peut être réalisé dans le cadre du procédé de l'invention en plaçant les trames de redondance en milieu de bloc, entre trames de mots d'information pairs et les trames de mots d'informations impairs. On a représenté sur la figure 2 un mode de réalisation d'un dispositif de transmission pour la mise en oeuvre du procédé de l'invention. Ce dispo- sitif utilise un code de Hamming étendu (16, 11) pour associer 5 mots de redondance à chaque suite de 11 mots d'information. Ce dispositif comprend un ensemble de 11 registres à décaLage 21., 22,... 211 de N bits connectés en série, un circuit de codage 4 à 11 entrées reliées chacune à une sortie d'un registre à décalage 21, 22,..., 211 et à 5 sorties, un ensemble de 16 registres du type premier entré-premier sorti 61, 62,... 616, les 11 premiers étant reliés en entrée chacun à l'un des registres à décalage 21,_,211 et les 5 autres étant reliés en entrée chacun à l'une des 5 sorties du circuit de codage, un ensemble de 16 moyens de mise en trame 81, 82,... 816 reliés chacun à l'un des registres 61, 62,... 616 et un moyen de multiplexage et de brassage 10. Le dispositif reçoit des suites de 11xN bits sur l'entrée du registre à décalage 21. Ces 11xN bits chargent les registres à décalage 21, 22,... 211 de N bits chacun. De préférence, N est un multiple de La longueur n1 des mots d'informations. Ainsi, chaque registre contient, à la fin du chargement, un nombre entier de mots. Par exemple, on a N = 256 et n1 = 16. Après l'opération de chargement, 11 bits sont disponibles en parallèle, un à la sortie de chaque registre 21, 22,... 211. Ces 11 bits sont des bits homologues, i.e. de même rang, de 11 mots d'information différents. Le circuit de codage 4 réalise, au moyen d'un ensemble de portes OUEXCLUSIF, le calcul des bits de redondance associéspar codage de Hamming 9 2583240 à ces 11 bits d'information. Ces 5 bits de redondance et ces 11 bits d'information forment un ensemble de 16 bits liés qui sont stockés, à raison d'un bit par registre, dans les registres 61, 62,... 616. Le codage de Hamming des 11 bits d'infor- mation est représenté par une matrice de Hamming à 16 colonnes et 5 lignes. Cette matrice est choisie en fonction du format de transmission ou d'enregistrement des blocs. En choisissant une matrice dont Les vecteurs colonnes sont de parité impaire, on est certain que tout triplet de vecteurs colonne forme un système linéairement indépendant. Ceci permet de corriger dans tous les cas au moins trois erreurs, si les codes détecteur d'erreur des trames ont détecté trois trames erronées. Dans le cas o les codes détecteur d'erreur des trames ont détecté toutes les trames erronées, la matrice peut être optimisée pour corriger jusqu'à erreurs portant sur des éléments liés consécutifs (jusqu'à k dans le cas général, o k est Le nombre de mots de redondance). Les vecteurs colonne de la matrice peuvent également être choisis en fonction du format d'enre- gistrement du bloc sur le support d'enregistrement ou du format de transmission du bloc dans le canal de transmission. Par exemple, dans le cas de L'enre- gistrement d'un bloc sur une bande magnétique comportant P pistes en parallèle, il est avantageux de choisir les vecteurs colonne tels que les vecteurs d'indice i, i+P, i+2P,... forment un système linéairement indépendant (ou 1 % i. P). Ceci permet d'assurer la correction d'une piste parmi P, pour P suffisamment grand. Dans le cas du code de Hamming étendu (16, 11), choisi à titre d'exemple, on peut prendre la matrice de Hamming suivante: 1i01Oî010010000J 1 1011 1 01100101000 0 1 0 1 1 1 0 1 1 0 0 1 0 1 0 00 H l1 11 0 0 00 10 0 00 Cette matrice est telle que: - tout triplet de vecteurs colonne forme un système linéairement indépendant; il est possible de corriger tout triplet de trames reconnues erronées par les codes détecteur d'erreur de chaque trame, - tout quintuplet de vecteurs colonne consé- cutifs forme un système linéairement indépendant; il est possible de corriger la perte de 5 trames liées consécutives reconnues erronées par les codes détecteur d'erreur de chaque trame, - les vecteurs colonne de rang (1, 5, 9, 13), (2, 6, 10, 14), (3, 7, 11, 15) ou (4, 8, 12, 16) forment des systèmes linéairement indépendants; il est possible de corriger la perte d'une piste parmi 4 si les trames liées consécutives d'un bloc sont enregistrées de manière cyclique sur 4 pistes magnétiques. Revenant sur la figure 2, l'opération de codage est répétée N fois pour chacun des N ensembles de 11 bits contenus en parallèle dans les registres à décalage 21, 22,... 2I Les registres 61, 62,... 616 contiennent alors chacun N bits. Chaque ensemble de N bits est transmis à un moyen de mise en trame qui délivre au moyen 10 une trame contenant un mot de synchronisation, un mot d'identification de trame, N bits d'information ou de redonrdance et un code détecteur d'erreur, par exemple un mot de code de type CRC. il 2583240 L'ensemble des 16 trames délivrées par les moyens de mise en trame constitue un ensemble lié. Le moyen de multiplexage et de brassage 10 peut former un bloc d'émission en multiplexant simplement ces trames. Le bloc comprend alors un seul ensemble lié et chacun des 16 groupes du bloc contient une seule trame. De préférence, le moyen 10 est doté de moyens de mémorisation pour stocker plusieurs ensembles liés et de moyens de brassage ou d'entrelacement pour entrelacer les trames des ensembles liés afin de délivrer un bloc dont chaque groupe comprend plusieurs trames. Cet entrelacement a pour but de séparer géogra- phiquement les trames d'un même ensemble lié de manière à limiter la probabilité de perdre plusieurs trames d'un même ensemble lié. Ces méthodes d'entrelacement sont bien connues de l'homme de l'art. Le bloc produit par le dispositif de la figure 2 et dont la structure a été décrite en réfé- rence à la figure 1 est transmis sur un canal de transmission ou enregistré sur un support d'enregis- trement. Le support d'enregistrement peut comprendre une ou plusieurs pistes en parallèle. Dans le cas o le support d'enregistrement comprend une seule piste, il est analogue à un canal de transmission. Le bloc est enregistré linéairement suivant le format de la figure 1. Dans le cas o le support d'enregistrement est une bande magnétique, il comprend en général plusieurs pistes en parallèle. Chaque ensemble lié du bloc est alors de préférence réparti sur plusieurs pistes de la bande magnétique. On a représenté sur la figure 3 un format d'enregistrement de 4 blocs G, H, J, K comportant 12 2583240 respectivement Les groupes G1 à G16, H1 à H16, J1 à J16 et K1 à K16. Les groupes successifs d'un même bloc sont disposés séquentieltement dans le sens longitudinal de la bande et avec un décalage cyclique d'une piste dans Le sens transversal de La bande. Ainsi, pour chaque ensemble lié, composé de 11 mots d'information et de 5 mots de redondance répartis dans les 16 groupes d'un bloc, 4 mots apparaissent sur chaque piste. Ces mots sont liés à des vecteurs colonnes indépendants si le codage de chaque bloc est obtenu avec La matrice H indiquée plus haut. Dans ce cas, Les 4 mots d'un ensemble lié enregistrés sur la même piste peuvent être perdus simultanément sans dépasser La capacité de correction d'erreur, c'est-àdire que ces 4 mots peuvent être corrigés par les 12 mots de l'ensemble lié répartis sur les 3 autres pistes. Les blocs G, H, J et K étant indépendants, Le codage de l'invention permet de corriger une piste dont toutes les informations ont été perdues. L'ensemble des 4 blocs G, H, J, K a des limites définies sur le support d'enregistrement. Cet ensemble constitue Lui-même un bloc. La structure en blocs consécutifs indépendants dur Le support d'enregistrement est donc préservée, ce qui permet de faire facilement du montage électronique. La propriété de correction est liée au fait que les mots d'un ensemble lié qui sont enregistrés sur une même piste sont associés à des vecteurs linéairement indépendants de la matrice de Hamming. Cette propriété peut être obtenue de différentes façons. A titre d'exemple, une autre possibilité consiste à utiliser un bloc unique dont chaque groupe est scindé en un nombre de trames p premier avec le nombre de pistes de la bande magnétique et en enregistrant 13 2583240 les trames successives seLon la direction transversale de la bande. Un tel format est représenté sur la figure 4 pour un bloc de 16 groupes G1 à G16 comprenant chacun trois trames T1, T2 et T3 enregistrées sur une bande magnétique à 4 pistes. Les 16 mots formant un ensemble lié sont répartis dans les 16 groupes à raison d'un mot par groupe; chaque mot occupant une position homologue dans chaque groupe est contenu dans une trame de même indice. Avec la matrice H choisie, en parti- culier, les vecteurs colonne de rang (1, 5, 9, 13) sont linéairement indépendants. Ceci permet de corriger notamment les trames GT1, G5T1, G9T1 et G13T 1 partir des trames T1 des autres groupes. Plus préci- sément, la matrice choisie et le format d'enregistrement de la figure 4 permettent de corriger complètement l'information d'une piste à partir des trois autres pistes. On va maintenant décrire une stratégie de détection et de correction des erreurs à la lecture d'un bloc. Cette restitution des mots d'information transmis ou enregistrés se fait en trois étapes: - une étape de reconnaissance de trames valides; ceci est réalisé principalement par le code détecteur d'erreur, - une étape de calcul des syndromes associés à chaque ensemble de n2-k bits liés, chaque bit occupant une position homologue dans n2-k trames différentes, - une étape de détection des erreurs non détectées par les codes détecteur d'erreur et de correction des mots d'information en fonction du résultat des syndromes. 14 2583240 Ces trois étapes sont mises en oeuvre dans trois circuits constituant un dispositif de décodage. Un mode de réalisation de chacun de ces circuits est représenté sur les figures 5 à 7. Pour une meilleure compréhension de l'invention, on va décrire d'abord le procédé de l'invention en considérant successivement les différents cas d'erreurs possibles. Cette descrip- tion est faite pour un codage de Hamming étendu (16, 11) défini par la matrice H dont on rappelle la valeur: 1 0 1 0 l i 1 0 l 0 1 0 0 0 0 1i 0 11 101 10 1 0 0 000 1 1 1 1 0 0 0 0 1 1 1 0 0 1 0 0 I =1 0 1 O O O O0l 1 10 01 1 01 10100100 ILOOI iOlIOlOOOi 00 Le procédé de décodage de l'invention permet au moins de corriger les erreurs suivantes: - 3 erreurs sur 3 bits quelconques d'un en- semble de bits liés reconnus invalides par les codes détecteur d'erreur de chaque trame, - 5 erreurs sur 5 bits liés consécutifs (i.e. associés à 5 vecteurs colonne consécutifs de la matrice H) d'un ensemble de bits liés reconnus invalides par les codes détecteur d'erreur de chaque trame, - une erreur sur un bit d'un ensemble lié, lorsqu'aucun bit de l'ensemble n'a été invalidé par les codes détecteur d'erreur, - une erreur sur un bit d'un ensemble lié, lorsqu'un seul autre bit de cet ensemble a été invalidé par un code détecteur d'erreur. Ce procédé permet également, avec la matrice H choisie, de corriger un nombre important de configurations dans lesquelles 4 ou 5 bits quelconques (consécutifs ou non) d'un ensemble lié ont été invalidés par les codes détecteur d'erreur. Les taux de configurations d'erreurs 2583240 corrigibles sont respectivement de 93 % et de 66 % des cas pour 4 et 5 erreurs. On note a, a2,... al les bits liés ou bits homologues de mots d'information d'un ensemble lié. Supposons que les valeurs transmises a3, a4, a5, a6 eta7 n'ont pas été validées par Les codesdétecteur d'erreur de trame, c'est-à-dire qu'elles sont susceptibles d'être erronées et notons a'3, a'4, a'5, a'6 et a'7 les valeurs reçues et (e3, e4, e5, e6, e7):le vecteur d'erreur. On a: 3! e a4 4 4 (:3 aX5 ( e a* + e5 a'i6 a6 e6 a7 Considérons la matrice H' formée des vecteurs colonne de rang 3, 4, 5, 6 et 7 de la matrice H: 01011 /11101 H'= 11000 1 01 1 1 \0011 0/ On a la relation: e3 1 :4 e6/ s e 16 2583240 o (s1, s2, s3, s4, s5) est le syndrome défini par a'1 a' 5 5) H')-l' La correctiondu vecteur re2u(a'a' ' '4'a 5' a'.5, a'7) pour obtenir Le vecteur transmis (a3, a4, a5, a6, a7) se ramène donc au calcu[ de l'inverse de la matrice H'. Cette matrice inverse n'existe que si J es vecteurs colonne de tt sont linéairement indé- pendants.Dans l'exemple choisi, la matrice R' a4 54 est inversible et on a: /,,,o, \ -1 1o0110 101aa Il est donc possible de corriger les 5 erreurs a4 a4's a5 = a5 (H')-l.s3 a6 a' s 6 64 dtecties c ontenues dansle vecteur reçu.(La capacit de ai6, a '7, pour obtenir Le vecteur transmis (a 3, a4, a5, a6 aco7) se ramène dction s'arrte L; i n'est pas possible de La matcorriger H. Cette matrice inverse n'existe que si dtLes vecteur d'erreurcoonne de H sont Linéairement indé- pendants. Dans L'exempLe choisi, La matrice H' est inversibLe et on a HI' = 10110 10111 IL est donc possibLe de corriger Les 5 erreurs détectées contenues dans Le vecteur reçu. La capacité de correction s'arrête Là; iL n'est pas possibLe de corriger des erreurs non détectées par Les codes détecteur d'erreur de trame. 17 2583240 Lorsque La matrice H' n'est pas inversible, les bits manquants peuvent être estimés par des techniques de masquage connues telles que par interpolation entre des mots d'information consécutifs. Dans le cas o 4 bits d'un ensemble ié n'ont pas été validés par les codes détecteur d'erreur de trame, la correction s'effectue sensiblement de La même manière que dans le cas précédent. Supposons que les bits de rang 8, 9, 10 et 11 sont invalidés. On considère La matrice H' composée des colonnes de rang 8, 9, 10 et 11 de La matrice H, soit: 1 010 H' = 0111 et on a e9 Hl e1 t S3 On cherche H" telle que: /lOQO O /e 0100 e; /9 * 10 =H 3 \0001 e11 \000 \ooo? V / s Le calcul donne: H = 11110 O 0 1 1 0 La dernière équation du système, soit O = s1 + s3 + s5 est une équation de compatibilité. Lorsque cette équation de compatibilité n'est pas vérifiée, c'est que les codes détecteur d'erreur- de trame n'ont pas détecté toutes Les erreurs. Dans ce cas, il n'est pas possible de corriger Les mots reçus. Les bits erronés peuvent alors être estimés par des techniques de masquage. Ces techniques de masquage sont également utilisées Lorsque la matrice H" n'existe pas. Les cas o 3, 2 ou 1 bits d'un ensemble lié sont invalidés se traitent de la même manière que le cas o 4 bits d'un ensemble lié sont invalidés, la seule différence étant que pour 3 bits, 2 bits ou 1 bit, il y a respectivement 2, 3 et 4 équations de compatibilité qui doivent être satisfaites. Le procédé de l'invention permet également de corriger une erreur non détectée par les codes détecteur d'erreur dans un ensemble de bits liés, lorsqu'aucune erreur n'a été détectée par ces codes détecteur d'erreur de trame. Cette situation s'avère lorsque tous les bits d'un ensemble lié sont validés et que le syndrome associé n'est pas nul. La localisation de l'erreur dans les bits de l'ensemble lié est déterminée par la valeur du syndrome. Si l'erreur non détectée est unique, ce qui est le cas le plus probable, le syndrome est égal au vecteur colonne de la matrice H dont le rang est le même que celui du bit erroné. Le procédé de l'invention permet enfin de corriger une erreur non détectée par les codes détecteur d'erreur de trame alors qu'un bit de l'ensemble de bits liés a été invalidé. 19 2583240 Deux cas se présentent selon que le bit non validé est juste ou faux. Cescas sont distingués par la parité du syndrome. Si le nombre de bits à "1" du syndrome est impair, le bit non validé est juste et le syndrome est égal au vecteur colonne de la matrice H dont le rang est identique à celui du bit erroné non détecté. Si le nombre de bits à "1" du syndrome est pair, le bit non validé est faux et le syndrome est égal à la somme des vecteurs colonne associés au bit non validé et au bit erroné non détecté. Par exemple, si le syndrome est (1, 1, 0, 0, O) et si le bit de rang 2 est non validé et erroné, le vecteur colonne de la matrice H associé au bit erroné non détecté est d Q+ 9=Q 1!l} 0 Le bit erroné non détecté est donc celui de rang 11. On va maintenant décrire un mode de réali- sation du dispositif de décodage mettant en oeuvre le procédé de décodage de l'invention. Ce dispositif comprend trois circuits représentés respectivement sur les figures 5 à 7. Le circuit de la figure 5 est un circuit de reconnaissance des trames valides dans les trames reçues. Ce circuit a une structure classique. Il comprend en entrée un moyen de démodu- lation et d'extraction de synchronisation 12 recevant successivement les différentes trames d'un bloc. L'opération de démodulation permet de détecter le mot de synchronisation de trame dans le cas o celui-ci 2583240 est transmis par violation de code. Une telle technique est particulièrement intéressante dans le cas d'une Longue interruption du signal reçu, comme c'est Le cas lorsqu'un défaut affecte une bande magnétique, car elle permet une resynchronisation très rapide du moyen 12 sur Les trames reçues. Le moyen 12 délivre le mot d'identification de trame à un moyen de reconnaissance d'indice 14, Les informations nécessaires à la détection d'erreurs de trame à un moyen de test 16 et les N bits des mots d'information ou de redondance à un tampon 18. L'entrée des données dans les moyens 14, 16 et dans le tampon 18 est rythmé par des signaux d'horloge produits de manière connue par Le moyen 12. Les bits d'information utile de la trame sont validés par un moyen de validation 20 si Le mot d'identification est reconnu par Le moyen 14 et si Le code détecteur d'erreur indique l'absence d'erreurs. Le moyen de validation peut en outre décider de L'invalidation d'une trame en fonction d'autres informations qui peuvent être communiquées par le moyen 12 telles qu'une longueur de trame anormale ou une violation de code pour Les bits d'information utile. Dans ce circuit, La trame est considérée comme une entité indivisible en ce qui concerne sa validité. Si Le code détecteur d'erreur d'une trame détecte une erreur, la trame est considérée invalide et tous Les bits de cette trame sont marqués. Selon une variante de réalisation, le code détecteur d'erreur invalide uniquement les bits de la trame considérés comme erronés. Le traitement 21 2583240 de détection et de correction des erreurs au moyen des mots de redondance est aLors un traitement bit à bit, c'est-à-dire que ce traitement affecte des ensembles de n2 bits, dont n2-k d'information et k de redondance, extraits de n2 trames liées, et que ce traitement est répété pour chaque ensemble de * n2 bits qui occupe un rang donné dans lesdites trames. On a indiqué précédemment que ce traitement comporte notamment une étape d'inversion de matrice. On comprend que le traitement bit à bit d'une trame peut être long. Il est donc en général préférable de valider ou d'invalider simultanément tous les bits de la trame. Ainsi, une même matrice est utilisée pour chaque ensemble de n2 bits; il n'y a dans ce cas qu'un seul calcul de matrice inverse par ensemble de trames liées.Il en résulte une vitesse de trai- tement beaucoup plus importante. De plus, il faut noter que ce traitement par trames est tout à fait adapté à la probabilité d'erreur sur le support d'en- registrement puisque, ainsi qu'on l'a indiqué précé- demment, la longueur d'une trame est choisie du même ordre de grandeur que les erreurs courtes (environ 1/10 de millimètre) sur le support d'enre- gistrement. Revenons maintenant à la figure 5. Lorsqu'une trame est validée, elle est mémorisée dans l'une des 16 mémoires 221, 222,... 2216. Ces mémoires sont représentées distinctes pour une meilleure compréhension. En pratique, ce sont des zonesd 'une même mémoire de travail. Ces mémoires sont adressées par un bus d'adresses 24 par le moyen de validation 20. Une ligne de donnée 26 relie la sortie de donnée du tampon 18 aux entrées des mémoires 221 à 2216; l'émission de 22 2583240 données en série sur cette ligne de données est commandée par une connexion 28 reLiant Le moyen de validation 20 au tampon 18. L'adressage des mémoires 221 à 2216 est fait de manière à mémoriser Les trames Liées dans le même ordre que dans Les moyens de mise en trame du dispositif de transmission de La figure 2. Le circuit de La figure 5 comprend enfin un registre 30 relié au bus d'adresse 24. Ce registre est vidé avant la réception d'un bloc par le circuit. Ceci est réalisé par le moyen de validation 20 par un signal de commande émis sur une connexion 32. Ensuite, pour chaque trame reçue, le moyen de validation 20 émet vers Ledit registre 30 une donnée pour m-arquer les trames valides reçues. Le contenu des mémoires associées aux trames non valides est indifférent pour la correction tant que Les capacités de correction ne sont pas dépassées. Au-deLà, la stratégie de chargement des mémoires est Liée aux méthodes de masquage éventuellement appliquées à l'information transmise. Dans le cas de transmission par paquet, un paquet erroné ou perdu sera considéré indifféremment comme une trame invalide. Le circuit représenté sur la figure 5 correspond au cas o le signal reçu provient d'un seul canal de transmission ou d'un support d'enregis- trement à une seule piste. Dans le cas par exemple d'un support d'enregistrement à plusieurs pistes, il faut prévoir pour chaque piste un ensemble constitué des moyens 12, 14, 16, 18 et 20. Les mémoires 221 à 2216 sont accédées en écriture par le circuit de reconnaissance de trames de la figure 5. Elles sont également accédées en lecture par le circuit de calcul du syndrome de la - figure 6. Plusieurs solutions connues existent pour réaLiser ce double accès. Une première solution consiste à prévoir deux jeux de mémoires 221 à 2216 et deux registres 30, un jeu étant accessible en lecture et L'autre en écriture pendant la réception d'un bloc, le rôle des deux jeux étant permuté après chaque bloc. Une autre solution est d'utiliser des mémoires à plusieurs ports organisées en pages, chaque page étant affectée aux trames d'un bloc. Cette solution permet également d'assurer la fonction de désentrelacement lorsque les trames liées sont entrelacées avec d'autres trames, comme c'est le cas dans le format de la figure 1. Le circuit représenté sur la figure 6 calcule les syndromes associés aux ensembles de 16 bits liés reçus. Il compare ces syndromes à zéro et est apte à mémoriser deux syndromes non nuls différents. La possibilité de mémoriser deux syndromes différents ne couvre pas tous les cas. Cette valeur particulière de deux syndromes mémorisables est choisie ici car elle est suffisante pour détecter une erreur non détectée par les codes détecteur d'erreur de trame et car la probabilité d'avoir deux erreurs non détectées par les codes détecteur d'erreur est très improbable. Sur le circuit de la figure 6, on a reproduit les mémoires 221 à 2216 dont l'accès est partagé avec le circuit de reconnaissance des trames valides de la figure 5. Chaque mémoire comprend une sortie de données unique qui est reliée à une entrée d'un moyen de calcul de syndrome 34 à 16 entrées E1, E2,..., E16. Ce moyen déLivre sur 5 sorties S1, S2, S3, S4 et S5 Le syndrome défini par Le produit entre La matrice de Hamming H et le vecteur des 16 bits Liés reçu. Une porte OU 36 dont les entrées sont reliées aux sorties du moyen 34 permet de détecter si le syndrome est nuL. Le circuit comprend également deux bascules de type D 38, 40 en série, chaque bascuLe contenant 5 bits, la bascuLe 38 étant reLiée à la sortie du moyen 34 par un bus de données 42. Les deux bascules sont chargées simultanément par Le signal de sortie d'une porte ET 44 dont une entrée est reliée à La sortie de la porte OU 36 et dont l'autre entrée est reliée à La sortie d'un moyen de comparaison 46 qui délivre un signal au niveau haut Lorsque Les syndromes délivrés par le moyen 34 et la bascule 38 sont différents. Cet ensembLe,dans Lequel les bascules sont initialisées à zéro en début de bloc, permet de mémoriser le premier syndrome non nuL d'un bloc dans la bascule 38 et, Lorsqu'un second syndrome non nuL est détecté, de décaler Le premier syndrome de la bascule 33 à La bascule 40 et de mémoriser Le second syndrome dans la bascule 38. Si un troisième syndrome non nul est détecté, iL y a un nouveau décalage du contenu des bascuLes 38 et 40 et Le premier syndrome est perdu. De manière générale, Les bascules 38 et 40 mémorisent Les deux derniers syndromes non nuLs d'une trame. Tous Les syndromes calculés, qu'ils soient nuLs ou non nuLs, sont réintroduits dans les mémoires 2212 à 2216en rempLacement des bits de redondance 12 16 correspondants. Ceci est réaLisé par L'intermédiaire du bus de données 42 dont chaque Ligne de donnée est reLiée à une entrée de donnée des mémoires 2212 à 2216. A La fin du calcuL des syndromes d'un ensemble de mots Liés, trois cas peuvent se présenter: - tous les syndromes sont nuls; les bascules 38 et 40 contiennent des valeurs nulles, - un unique syndrome est non nul; il est contenu dans la bascule 38, - au moins deux syndrones différents sont non nuls; deux d'entre eux sont contenus dans les bascules 38 et 40. Ainsi qu'on l'a expliqué précédemment, la valeur du syndrome associé à un ensemble de bits liés et l'état de validité des trames contenant chacune un de ces bits liés permet de corriger l'ensemble de bits liés reçus pour retrouver l'ensemble de bits liés transmis. Cette correction est mise en oeuvre dans le circuit de correction dont un exemple de réalisation est donné sur la figure 7. Sur cette figure, on a reproduit les mémoires 221 à 2216, le registre 30 et les bascules 38 et 40 qui contiennent respectivement des ensembles de trames liées, des bits de validation de trame et, le cas échéant, des syndromes non nuls. Le circuit représenté sur la figure 7 comprend un multiplexeur 48 dont les entrées sont reliées aux sorties des mémoires 221 à 22 11 contenant des bits d'information. La sortie de ce multiplexeur est reliée à une entrée d'un opérateur de parité 50 de type OU-EXCLUSIF. Pour chaque mémoire 2212 à 2216 contenant les bits du syndrome, la sortie de données est reliée à l'entrée d'une porte ET 5212 à 5216 dont la sortie est appliquée sur une entrée de l'opérateur de parité 50. La deuxième entrée de chaque porte ET est alimentée par un bit d'un masque de 5 bits contenu dans une mémoire vive (RAM) 54. Le circuit comprend également un moyen de calcuL, tel qu'un microprocesseur 56, pour calculer ce masque en fonction du contenu du registre 30 et des bascules 38 et 40. Le microprocesseur 56 est synchronisé avec un séquenceur 58 qui assure la sélection des données en entrée du multiplexeur 48 et dans la mémoire vive 54. Le traitement effectué par Le microprocesseur 56 porte sur un ensemble complet de trames liées et comprend deux étapes successives: la recherche de trames erronées non détectées par les codes détecteur d'erreur de trame, et le calcul des coefficients de correction formant le masque appliqué sur les deuxièmes entrées des portes ET 5212 à 5216. Dans une première étape, le microprocesseur lit le contenu du registre 30 pour déterminer le nombre de trames invaLides détectées, c'est-à-dire le nombre de bits liés invalidés parmi les 16 bits d'un ensemble liés. Si ce nombre de trames invalides est supérieur à 5 (nombre de bits de redondance), la correction est impossible et les 11 bits d'information de l'ensemble de bits liés sont estimés par des techniques de masquage. Dans le cas o le nombre de trames déclarées invalides par le registre 30 est égal à 0 ou 1, le microprocesseur examine les syndromes K1 et K2 contenus dans les bascules 38 et 40 pour détecter une éventuelle trame fausse qui n'aurait pas été invalidée par son code détecteur d'erreur. L'observation des syndromes K1 et K2 permet de détecter, dans certains cas, deux trames fausses non invalidées par les codes détecteur d'erreur. Cette éventualité est très peu probable et n'est pas prise en compte ici. 27 2583240 Si aucune erreur n'a été détectée par les codes détecteur d'erreur, trois cas sont possibles: a) les syndromes K1 et K2 sont nuls; aucune trame n'est erronée, le microprocesseur 56 inscrit dans la mémoire RAM 54, pour chaque trame, un masque constitué de 5 "O". Ce masque est appliqué sur les entrées des portes ET 5212 à 5216: l'opérateur de parité 50 est transparent pour les mots série délivrés par le multiplexeur 48. b) le syndrome K1 présente un nombre impair de "1"' et le syndrome K2 est nul. Il existe alors une trame invalide non détectée par son code détecteur d'erreur. Cette trame est celle qui est associée au vecteur colonne égal au syndrome K1. c) le syndrome K1 présente un nombre pair de "1" ou le syndrome K2 n'est pas nul. Il y a alors plus d'une trame invalide non détectée par les codes détecteur d'erreur; la correction n'est pas entreprise (ce cas est très peu probable). Considérons maintenant le cas o une erreur a été détectée par un code détecteur d'erreur. Quatre cas se présentent: a) les syndromes K1 et K2 sont nuls. On considère alors que l'erreur détectée par le code détecteur d'erreur porte sur des bits de la trame autres que des bits liés, par exemple des bits du code détecteur d'erreur, b) le syndrome K1 comporte un nombre impair de "1" et le syndrome K2 est nul. Si le syndrome K1 correspond à la trame déjà détectée par le code détecteur d'erreur, i.e. si le syndrome K1 est égal au vecteur colonne de la matrice de Hamming dont Le rang est le même que celui de La trame invalide dans l'ensemble des trames liées, il n'y a pas d'erreur supplémentaire. En revanche, si le syndrome K1 correspond une autre trame, on considère que cette autre trame est invalide, c) les syndromes K1 et K2 sont non nuls. cl) si les syndromes sont impairs, ils correspondent à deux trames invalides différentes. La correction n'est entreprise que si l'une de ces deux trames invalides est celle détectée par le code détecteur d'erreur, c2) si les syndromes sont de parité diffé- rentes, le syndrome ayant un nombre impair de "1" résulte d'une erreur sur la trame associée, i.e. dont le rang correspond au vecteur colonne de la matrice égal au syndrome, et le syndrome ayant un nombre pair de "1" résulte d'une erreur sur deux trames différentes. La deuxième trame invalide est associée au vecteur colonne égal à K1 + K2. La correction n'est entreprise que si l'une des deux trames trouvées invalides par les syndromes K1 et K2 est égale à la trame détectée invalidée par le code détecteur d'erreur, d) dans les autres cas, il y a plus d'une erreur non détectée par les codes détecteur d'erreur et la correction n'est pas entreprise. Il faut noter qu'il s'agit ici d'une stratégie particulière qui est liée au fait que la probabilité que deux erreurs n'ont pas été détectées par les codes détecteur d'erreur est très faible. Cependant, du seul point de vue mathématique, la correction reste possible, dans ce cas, dans un certain nombre de - configurations d'erreurs. L'observation des syndromes K1 et K2 permet donc de modifier, si nécessaire, Le contenu du registre 30 contenant l'état de validité de chaque trame. L'étape suivante consiste pour le micropro- cesseur 56, à former la matrice H' à c (c aux c trames invalidées classées par rang croissant. Cette matrice H' est transformée de manière classique, par exemple par triangulation, pour produire une matrice H'- à 5 colonnes et 5 lignes. Si cette opération n'est pas possible, ce qui peut se produire lorsqu'il y a 4 ou 5 erreurs, la correction n'est pas entreprise. Dans le cas ou l'opération est possible, on obtient une relation reliant les erreurs des c trames erronées aux 5 trames de syndromes. Cette relation s'exprime, pour chaque trame, par un jeu de 5 coefficients binaires de correction qui constituent une ligne de la matrice H'-1 ou H". Pour les trames validées, les coefficients de correction sont égaux à "0". Le séquenceur 58 commande simultanément le multiplexeur 48 et la mémoire RAM 54 pour délivrer à l'opérateur de parité 50 un bit d'une trame et le mot de correction associé, ce mot étant égal au syndrome multiplié par le masque formé par les 5 coefficients binaires de correction. REVENDICATIONS 1. Procédé de transmission en blocs de mots d'information numérique, chaque mot d'information ayant une Longueur de n1 bits, caractérisé en ce qu'on associe, à chaque suite-de n2-k (n2>k) mots d'information consécutifs, k mots de redondance de n1 bits chacun dans lesquels, pour chaque rang i (o 1 associés à chaque mot d'un ensemble lié étant indépen- dants. 2. Procédé selon la revendication 1, caracté- risé en ce qu'on utilise un code de Hamming étendu. 3. Procédé selon l'une quelconque des reven- dications 1 et 2, caractérisé en ce que, pour produire les k bits de redondance associés à n2-k bits d'infor- mation, on utilise une matrice de Hamming à n2 lignes et k colonnes dont tous Les vecteurs colonne sont de parité impaire. 4. Procédé selon l'une quelconque des revendi- cations 1 à 3, caractérisé en ce que, pour produire les k bits de redondance associés à n2-k bits d'information, on utitise une matrice de Hamming à n2 lignes et k colonnes dont toute suite de k vecteurs colonne consé- cutifs forme un système linéairement indépendant. 5. Procédé selon l'une quelconque des revendi- cations 1 à 4, caractérisé en ce que, après avoir associé k mots de redondance à n2-k mots d'information pour former un ensemble de mots liés, on entrelace 31 2583240 Les mots de n3 ensembles Liés pour former un bloc d'émis- sion composé de n2 groupes, chaque groupe contenant un mot de chaque ensemble lié et au moins un code détec- teur d'erreur. 6. Procédé selon la revendication 5, caracté- risé en ce que les groupes contenant des mots de redon- dance sont placés en milieu de bloc, entre les groupes contenant les-mots d'information pairs et les groupes contenant les mots d'information impairs. 7. Procédé selon l'une quelconque des revendi- cations 1 à 6, caractérisé en ce que chaque mot d'un ensemble lié est contenu dans une trame, chaque trame comprenant un mot de synchronisation, au moins un mot d'information ou de redondance et un code détecteur d'erreur. 8. Procédé selon l'une quelconque des revendi- cations 1 à 7, pour l'enregistrement d'un bloc sur un support d'information comprenant P pistes d'enregistre- ment en parallèle, caractérisé en ce qu'on répartit les n2 mots d'un ensemble lié sur les P pistes tel que les mots enregistrés sur une même piste sont associés à des vecteurs colonne de la matrice associée au code de Hamming qui forment un système linéairement indépen- dant. 9. Procédé selon la revendication 8, pour l'enregistrement d'un bloc dont chaque groupe comporte p trames, o p est premier avec le nombre de pistes P, caractérisé en ce qu'on enregistre le bloc trame par trame, les trames de chaque ensemble de P trames consé- cutives du bloc étant disposées en parallèle sur les P pistes. 10. Procédé selon la revendication 1, carac- térisé en ce que, en outre, à la réception, on détermine la validité de chaque bit d'information ou de redondance en liaison avec les codes détecteur d'erreur associés aux mots d'information ou de redondance, on calcule, pour 32 2583240 chaque ensemble de n2 bits liés, le syndrome associé à cet ensemble, on déduit dudit syndrome et des infor- mations de validité relatives à chaque bit un vecteur d'erreur en relation avec le code de Hamming utilisé et on corrige chaque vecteur de n2-k bits reçu par ce vecteur d'erreur. 11. Procédé selon la revendication 10, carac- térisé en ce que, pour calculer le vecteur d'erreur d'un vecteur de n2-k bits liés, on définit une matrice réduite (H') constituée par les vecteurs colonne de la matrice de Hamming (H) utilisée à l'émission dont les rangs sont égaux à ceux des bits liés invalidés par les codes détecteur d'erreur, et on en déduit une autre matrice (H'-1, H") telle que le produit de cette autre matrice par le syndrome soit égal au vecteur d'erreur. 12. Procédé selon l'une quelconque des revendi- cations 10 et 11, caractérisé en ce que, pour chaque ensemble de bits liés, on utilise le syndrome, lorsqu'il n'est pas nul, pour détecter des bits erronés non inva- lidés par les codes détecteur d'erreur. 13. Procédé selon la revendication 10, dans lequel les mots d'information et de redondance sont émis en trame, caractérisé en ce qu'on détecte la vali- dité d'une trame reçue en relation avec son code détec- teur d'erreur, et en ce que, pour chaque ensemble de -trame liées, on définit une matrice réduite (H') cons- tituée par les vecteurs colonne de la matrice de Hamming (H) utilisée à l'émission dont les rangs sont égaux à ceux des trames liées invalidées par les codes détecteur d'erreur, et on déduit une autre matrice (H'-1, H") unique pour chaque ensemble de trames liées telle que le produit de cette autre matrice par un syndrome non nul est égal au vecteur d'erreur. 33 2583240 14. Procédé selon la revendication 13, carac- térisé en ce qu'on mémorise au moins certains syndromes non nuls associés à des ensembles de bits liés des trames liées, et en ce qu'on utilise lesdits syndromes non nuls pour détecter des trames erronées non invali- dées par les codes détecteur d'erreur.