Brevet FR2885708A1 — publié le 20061117

DISPOSITIF ET PROCEDE POUR DETERMINER UNE POSITION D'UNE ERREUR D3 BIT DANS UNE SEQUENCE DE BITS Description Dispositif et procédé pour déterminer une position d'une erreur de bit dans une séquence de bits. La présente invention concerne le domaine technique de l'électrotechnique et la présente invention concerne, en particulier, un dispositif et un procédé pour déterminer une position d'une erreur de bit dans une séquence de bits. Les erreurs qui se produisent lors de la transmission de données ou de la mémorisation de données doivent être corrigées si possible. Souvent, on peut se baser sur le fait qu'il est relativement rare qu'il se produise des erreurs. Dans ce cas, il est approprié de mettre en oeuvre un algorithme de codage qui puisse corriger le plus possible d'erreurs d'un bit dans une unité de données déterminée. Le problème de l'aptitude à la correction d'erreurs d'un bit est habituellement résolu par la mise en oeuvre d'un algorithme de codage approprié. Il y est en grande partie utilisé des codes linéaires. Ceux-ci peuvent être mis en oeuvre de manière particulièrement aisée en matériel. Dans un code systématique, k bits d'informations ala2...ak sont complétés par n-k bits de contrôle, ou check bits, ak+la ak+2...an, pour générer un mot de code c = aia2...an de longueur n. Il en résulte c = Âlââ3...Âkak+ lak+2"'an bits d'information bits de contrôle Le jeu C de tous les mots de code est un sous-espace de F2'', F2 = {0,1} définissant le champ binaire. Si C c Fz est un sous-espace linéaire de Fz à la dimension k, on parle d'un code (n, k) (binaire systématique) linéaire. Ici, seuls les codes binaires sont expliqués. En particulier, une attention particulière est prêtée à de tels codes dans lesquels n et k sont arbitraires. Pour des raisons de représentation, il est utilisé un exemple de code (n, k) linéaire avec n = 7 et k = 4. Un code (n, k) l _éare peut être décrit de manière univoque par sa matrice de contrôle de parité H. La matrice de contrôle de parité H est une matrice (n-k) x n binaire de rang n-k. Elle a la forme H = (A, In-k), In-k désignant la matrice unitaire (n-k) x (n-k). La matrice unitaire a des uns sur la diagonale principale et sinon des zéros. Le vecteur de ligne c E F; est un mot de code lorsque, et seulement lorsque, l'équation (1) HcT =0 (1) est d'application. eT désigne ici la transposée de c. Au cas où c est un vecteur de ligne, cT est un vecteur de colonne. Ci-après est reprise la nomenclature habituelle. Si v = (vo, vl,... , vni) est un vecteur de ligne, la transposée vT de v désigne le vecteur de colonne correspondant. A cet égard sont d'application v E Fz et vT E F2". Par ailleurs est d'application, lorsque A est une matrice mxn, le fait que la transposée de A, désignée par AT, est la matrice nxm dont la j-ième colonne est la 20 transposée de la ligne j de A pour 1 s j m. Par exemple, si A = X110 il est d'application AT = 11 011, X01, Par ailleurs, il est utilisé, dans cette description, le signe comme caractérisation d'une opération XOR. Cela signifie que sont d'application 0+0=0, 0+1=1, 1+0=1 et 1+1=0. Comme exempte, il est utilisé un code (7,4) linéaire qui est caractérisé par sa matrice de contrôle de parité dans l'équation (2) vT p1011 100 H = 1 1101 010 0110 001 Il v a lieu de noter ici que les quatre premières colonnes de H sont formées par la matrice A, les trois dernières colonnes, par contre, étant formées par la matrice unitaire I3. On voit que c = (1, 1,0,0,1,0,0) est un mot de code, étant donné que HcT = (0,0,0)T donne le vecteur zéro. Le codage d'un code linéaire peut alors être réalisé comme suit. Si H = (A, In_k) est la matrice de contrôle de parité d'un code (n, k) binaire linéaire, la matrice kxn. G = (Ik, AT) est appelée matrice génératrice canonique du code. Le codage d'un message a = ala2...ak dans le mot de code correspondant c = ala2... akak+i...a,- est réalisé par l'intermédiaire d'une multiplication de matrice aG=c De manière équivalente vaut également: ala,...ak AT = ak+ l.. .an bits d'information bits de contrôle Cela est expliqué plus en détail à l'aide l'exemple continu. Pour la matrice de contrôle de parité H de l'équation (2), la matrice 4x7 correspondante 1000 111 G = 0100 011 0010 101 0001 110, peut être déterminée comme matrice génératrice appropriée. Le message (al, a2, a3, a4) e F2 est codé par c = (al, a2, a3, a4) G = (al, a2, a3, a4, al + a3 + a4, al + a2 + a3, ai + a2 + a3), pour obtenir le mot de code c. (2) 2885708 4 De manière équivalente, à des bits d'information a2a2a3a4 donnés, les bits de contrôle correspondants peuvent être calculés selon 111; 011 =(aI-a, 1 bits d'[nicr nar.d,. 110)a,,a, -a_ +a,,ai +a, +a,) . bits de ccntrdle Il y a lieu de noter ici que la matrice de contrôle de parité H de l'équation (2) a un nombre identique de uns dans chacune de ses trois lignes. Cette caractéristique est souhaitable pour une mise en oeuvre en matériel efficace du plan de codage. Cela résulte du fait que le calcul de chacun des n-k bits de contrôle requiert un nombre identique d'opérations XOR (c'est-à-dire qu'il a la même profondeur logique). Une autre propriété souhaitée est que H soit "faiblement occupée". Une matrice binaire est appelée "faiblement occupée" lorsqu'elle contient relativement peu de uns. Par ailleurs, le décodage peut être décrit comme suit, x et y représentant deux vecteurs binaires. La distance de Hamming d(x, y) entre x et y est le nombre de coordonnées dans lesquelles x et x sont différents. Le poids de Hamming w(x) de x est le nombre de coordonnées de x qui ne sont pas zéro. Il est évident qu'il est, de ce fait, d'application w(x) = d(x,0) et d(x, y) = w(x - y). Par exemple, lorsque x = (0,1,0,0,0,1) est d'application, w(x) = 2. Définition. Supposons que C soit un code. Le nombre d=mind(u,v) n, vEc est appelé distance minimale de C. Lemme 1. La distance minimale d'un code linéaire C est le poids de Hamming le plus petit de tous les mots de code non zéro. Il s'ensuit que d=minw(c) o cEC 2885708 5 Théorème 1. Si H est la matrice de contrôle de parité d'un code linéaire, le code a la distance minimale d lorsque, et seulement lorsque, chacune des colonnes d- -1 est linéairement indépendante et quelques colonnes d sont linéairement dépendantes de H. En d'autres termes, la distance minimale d es i égale au nombre le plus petit de colonnes de H qui, additionnées, donnent O. L'exemple ci-dessus est repris ici: il est considéré la matrice de contrôle de parité H de l'équation (2). Trois colonnes quelconques de H sont linéairement indépendantes, tandis que quatre colonnes doivent, par contre, être linéairement dépendantes. De cette manière, le code linéaire correspondant a une distance minimale d=4. Théorème 2. Un code linéaire à distance minimale d paire peut simultanément corriger (d - 2)/2 erreurs et reconnaître d/2 erreurs. Supposons qu'un message a e F; soit codé pour obtenir un mot de code a e F2 qui est alors transmis par un canal perturbé (ou mémorisé dans une mémoire). Il est reçu le vecteur y e F; . S'il se produit pendant la transmission (ou la mémorisation) moins de [(d - 1)/2] erreurs, le mot de code c correct peut être reconstruit à partir de y. Le soi-disant syndrome de y est utile ici. Définition. Supposons que H soit la matrice de contrôle de parité d'un code (n, k) linéaire C. Le vecteur de colonne S(y) = HyT de longueur n-k est alors appelé syndrome de y e F2. Par la définition de la matrice de contrôle de parité H (cf. équation (l)) , y e F; est un mot de code lorsque, et seulement lorsque, S(y) est le vecteur zéro. Théorème 3. Pour un code binaire, le syndrome est égal à la somme des colonnes de H dans lesquelles se sont produites les erreurs. De ce fait, S(y) est appelé syndrome, étant donné qu'il donne les symptômes d'erreurs. Il y a lieu d'expliquer en particulier la correction d'une erreur unique. Dans ce cas, Le théorème ci-dessus adopte une forme simple: 2885708 6 Théorème 4> Une erreur d'un seul bit se produit lorsque, et seulement lorsque, le syndrome est égal à une colonne de H. La position de cette colonne correspond à la position d'erreur. Cela est à nouveau démontré à l'aide de l'exemple continu: il est à nouveau considéré le code linéaire (7,4) qui est défini par la matrice de contrôle de parité 1011 100' H = 1101 010 X1110 001 Supposons que soit reçu le vecteur y = (1,0,1,0,0,0,1). Le syndrome se calcule comme suit: (0 s(y)=HyT= 1 "1J Le syndrome S(y) coïncide avec le deuxième vecteur de colonne de H et indique ainsi que la deuxième coordonnée de y est erronée. Le mot de code correct c = (1,1,1,0,0,0,1) et le bit d'information peuvent être déterminés pour obtenir 1110. La mise en oeuvre la plus directe et aussi la plus économique en matériel d'un code linéaire a lieu par voie de la soi-disant matrice de contrôle (matrice de contrôle de parité) du code. Les entrées de matrice sont des bits. Pour une correction d'erreur d'un seul bit, il est possible de construire la matrice de sorte que chaque colonne de la matrice contienne, par exemple, exactement trois uns, sinon des zéros. Seules les dernières colonnes de la matrice de contrôle, qui constituent de préférence une matrice unitaire et ne doivent contenir, chacune, qu'un un, constituent une exception. Les approches conventionnelles de la correction d'erreurs d'un seul bit présentent toutefois l'inconvénient qu'à l'aide du syndrome et de la matrice de contrôle doit avoir lieu une comparaison de la colonne de la matrice de contrôle qui coïncide avec le syndrome, afin de pouvoir 2885708 7 déterminer à partir Ce cela la position de l'erreur de bit qui s'est produite. Aussi, c'est l'objet de la présente invention que de créer un plan qui permette de déterminer la position d'une erreur de bit dans une séquence de bits reçue de manière plus simple par rapport à l'état de la technique, c'est-à-dire de manière plus efficace du point de vue matériel et/ou plus simple numériquement. La présente invention crée un dispositif pour déterminer une position d'une erreur de bit dans un séquence de bits à l'aide d'une matrice de contrôle, la matrice de contrôle présentant un nombre de lignes prédéfini et un nombre de colonnes prédéfini, la matrice de contrôle comportant une pluralité de matrices partielles carrées qui ont un nombre de lignes de matrice partielle et un nombre de colonnes de matrice partielle, le nombre de lignes de matrice partielle correspondant au nombre de lignes prédéfini ou le nombre de colonnes de matrice partielle correspondant au nombre de colonnes prédéfini de la matrice de contrôle, chaque matrice partielle comportant des entrées de matrice partielle, qui sont disposées de manière circulante par rapport à une première ligne de matrice partielle ou une première colonne de matrice partielle, dans chaque ligne de matrice partielle ou dans chaque colonne de matrice partielle étant disposés un bit et un groupe de bits et le bit et le groupe de bits étant disposés, dans une première matrice partielle, selon un premier rapport prédéterminé entre eux, et le bit et le groupe de bits étant disposés, dans une deuxième matrice partielle, selon un deuxième rapport prédéterminé entre eux, le premier rapport prédéterminé différant du deuxième rapport prédéterminé, et le dispositif pour déterminer comprenant les caractéristiques suivantes: un dispositif destiné à recevoir une séquence de bits; un dispositif destiné à déterminer un syndrome à l'aide de la matrice de contrôle et de la séquence de bits reçue; et un dispositif destiné à constater une position d'une erreur de bit dans la séquence de bits reçue, le dispositif destiné à constater étant 2885708 8 réalisé de manière à ic'.entifier dans le syndrome un bit de syndrome et un groupe de bits de syndrome, et le dispositif destiné à constater étant, par ailleurs, réalisé de manière déterminer, à l'aide d'une information sur une position du bi de syndrome ou du groupe de bits de syndrome dans le syndrome, d'une information sur un rapport entre le bit de syndrome et le groupe de bits de syndrome et le nombre de lignes de matrice partielle ou le nombre de colonnes de matrice partielle, la position de l'erreur de bit de la séquence de bits reçue. Le dispositif destiné à constater est, de préférence, réalisé de manière à identifier le groupe de bits de syndrome de sorte que le groupe de bits de syndrome corresponde au groupe de bits dans une ligne de matrice partielle ou à un groupe de bits dans une colonne de matrice partielle. Le dispositif a, de préférence, un dispositif destiné à corriger une erreur de bit à la position déterminée (r) dans la séquence de bits (y) reçue. Le dispositif destiné à constater est, de préférence, réalisé, par ailleurs, de manière à déterminer, à l'aide du syndrome (S(y)), s'il s'est produit une pluralité (l'erreurs de bit dans la séquence de bits (y) . Le premier et le deuxième rapport prédéterminé entre le bit et le groupe de bits se situent, de préférence, à une distance entre le bit et le groupe de bits, le dispositif destiné à constater étant réalisé de manière à déterminer, pour recevoir l'information sur le rapport entre le bit de syndrome et le groupe de bits de syndrome, une distance entre le bit de syndrome et le groupe de bits de syndrome dans le syndrome (S(y)). Le bit dans chacune des matrices partielles (Ao, ..., A3) est, de préférence, disposé dans la diagonale principale, le dispositif (106) destiné à constater étant réalisé de manière à déterminer comme position r d'une erreur de bit qui s'est produite la position qui résulte de l'application de la formule r=kÉ1+j, 2885708 9 k étant une variable qui se réfère à la distance entre le bit de syndrome et le groupe de bits de syndrome, 1 étant une variable qui se réfère au nombre de lignes de matrice partielle ou au nombre de colonnes de matrice partielle d'une matrice partielle et j étant une variable qui se réfère à une distance entre le bit de syndrome et un premier bit du syndrome. De préférence, un bit du groupe de bits dans chacune des matrices partielles est disposé sur la diagonale principale, le dispositif destiné à constater étant réalisé de manière à déterminer comme position d'une erreur de bit qui s'est produite la position r qui résulte de l'application de la formule r=(k-1)É1+j, k étant une variable qui se réfère à une distance entre le bit de syndrome et le groupe de bits de syndrome, 1 étant une variable qui se réfère au nombre de lignes de matrice partielle ou au nombre de colonnes de matrice partielle d'une matrice partielle (Ao, ..., A3) et j étant une variable qui se réfère à une distance entre un premier bit du groupe de bits de syndrome et le début du syndrome. Par ailleurs, la présente invention crée un procédé pour déterminer une position d'une erreur de bit dans une séquence de bits à l'aide d'une matrice de contrôle, la matrice de contrôle présentant un nombre de lignes prédéfini et un nombre de colonnes prédéfini, la matrice de contrôle comportant une pluralité de matrices partielles carrées qui ont un nombre de lignes de matrice partielle et un nombre de colonnes de matrice partielle, le nombre de lignes de matrice partielle correspondant au nombre de lignes prédéfini ou le nombre de colonnes de matrice partielle correspondant au nombre de colonnes prédéfini de la matrice de contrôle, chaque matrice partielle comportant des entrées de matrice partielle qui sont disposées de manière circulante par rapport à une première ligne de matrice partielle ou une première colonne de matrice partielle, dans chaque ligne de matrice partielle ou dans chaque colonne de matrice partielle étant disposés un bit et un 2885708 10 groupe de bits et le bit et le groupe de bits étant, dans une première matrice partielle, disposés selon un premier rapport prédéterminé entre eux et le bit et le groupe de bits étant, dans une deuxième matrice partielle, disposés selo e. un deuxième rapport prédéterminé entre eux, le premier rapport prédéterminé différant du deuxième rapport prédéterminé et le procédé pour déterminer comportant les étapes suivantes consistant à : recevoir une séquence de bits; déterminer un syndrome à l'aide de la matrice de contrôle et de la séquence de bits reçue; et constater une position d'une erreur de bit dans la séquence de bits reçue de sorte que soient identifiés dans le syndrome un bit de syndrome et un groupe de bits de syndrome, pour déterminer, à l'aide d'une information sur une position du bit de syndrome ou du groupe de bits de syndrome dans le syndrome, d'une information sur un rapport entre le bit de syndrome et le groupe de bits de syndrome et du nombre de lignes de matrice partielle ou du nombre de colonnes de matrice partielle, la position de l'erreur de bit de la séquence de bits reçue. Par ailleurs, la présente invention crée un dispositif pour préparer une matrice de contrôle pour déterminer une position d'une erreur de bit dans une séquence de bits, aux caractéristiques suivantes: un dispositif destiné à déterminer une première matrice partielle carrée, la première matrice partielle présentant, dans chaque ligne de matrice partielle ou dans chaque colonne de matrice partielle, un bit et un groupe de bits, la matrice partielle comportant des entrées de matrice partielle qui sont disposées de manière circulante par rapport à une première ligne de matrice partielle ou une première colonne de matrice partielle et le bit et le groupe de bits étant disposés selon un premier rapport prédéterminé entre eux un dispositif destiné à déterminer une deuxième matrice partielle carrée, la deuxième matrice partielle présentant, dans chaque ligne de matrice partielle ou dans chaque colonne de matrice partielle, un bit et 2885708 11 un groupe de bits, la deuxième matrice partielle comportant des entrées de matrice partielle qui sont disposées de manière circulante par rapport à une première ligne de matrice partielle ou une première colonne de matrice partielle et le bit et le groupe de bits étant disposés selon un deuxième rapport prédétermine entre eux, le premier rapport prédéterminé différant du deuxième rapport prédéterminé ; et un dispositif destiné à assembler la première et la deuxième matrice partielle, pour obtenir une matrice de contrôle, la matrice de contrôle comportant un nombre de lignes qui correspond au nombre de lignes de matrice partielles de la première ou de la deuxième matrice partielle ou la matrice de contrôle comportant un nombre de colonnes qui correspond à un nombre de colonnes de matrice partielle de la première ou de la deuxième matrice partielle. Par ailleurs, la présente invention crée un procédé pour préparer une matrice de contrôle pour déterminer une position d'une erreur de bit dans un séquence de bits, aux étapes suivantes consistant à : déterminer une première matrice partielle carrée, de sorte que la première matrice partielle présente dans chaque ligne de matrice partielle ou dans chaque colonne de matrice partielle un bit et un groupe de bits, la matrice partielle comportant des entrées de matrice partielle qui sont disposées de manière circulante par rapport à une première ligne de matrice partielle ou une première colonne de matrice partielle et le bit et le groupe de bits étant disposés selon un premier rapport prédéterminé entre eux; déterminer une deuxième matrice partielle carrée, de sorte que la deuxième matrice partielle présente dans chaque ligne de matrice partielle ou dans chaque colonne de matrice partielle un bit et un groupe de bits, la deuxième matrice partielle comportant des entrées de matrice partielle qui sont disposées de manière circulante par rapport à une première ligne de matrice partielle ou une première colonne de matrice partielle et le bit et le groupe de bits étant disposés selon un 2885708 12 deuxième rapport prédéterminé entre eux, le premier rapport prédéterminé différant du deuxième rapport prédéterminé ; et assembler la première et la deuxième matrice partielle, pour former une matrice de contrôle. la matrice de contrôle comportant un nombre de lignes qui correspond à un nombre de lignes de matrice partielle de la première ou de la deuxième matrice partielle ou la matrice de contrôle comportant un nombre de colonnes qui correspond à un nombre de colonnes de matrice partielle de la première ou de la deuxième matrice partielle. Enfin, la présente invention crée une matrice de contrôle destinée à déterminer une position d'une erreur de bit dans une séquence de bits, présentant les caractéristiques suivantes: une première matrice partielle carrée, la première matrice partielle présentant dans chaque ligne de matrice partielle ou dans chaque colonne de matrice partielle un bit et un groupe de bits, la matrice partielle comportant des entrées de matrice partielle qui sont disposées de manière circulante par rapport à une première ligne de matrice partielle ou une première colonne de matrice partielle et le bit et le groupe de bits étant disposés selon un premier rapport prédéterminé entre eux; une deuxième matrice partielle carrée, la deuxième matrice partielle présentant dans chaque ligne de matrice partielle ou dans chaque colonne de matrice partielle un bit et un groupe de bits, la deuxième matrice partielle comportant des entrées de matrice partielle qui sont disposées de manière circulante par rapport à une première ligne de matrice partielle ou une première colonne de matrice partielle et le bit et le groupe de bits étant disposés selon un deuxième rapport prédéterminé entre eux, le premier rapport prédéterminé différant du deuxième rapport prédéterminé ; et la première matrice partielle et la deuxième matrice partielle étant disposées dans la matrice de contrôle de sorte que la matrice de contrôle présente un nombre de lignes qui correspond à un nombre de 2885708 13 lignes de matrice partielle de la première ou de la deuxième matrice partielle ou que la matrice de contrôle présente un nombre de colonnes qui correspond à un nombre de colonnes de matrice partielle de la première ou de deuxième matrice partielle. La présente invention se base sur la connaissance du fait que, par une réalisation particulière de la matrice de contrôle, la position d'une erreur de bit produite dans un séquence de bits peut déjà être calculée à partir d'une disposition de bits et/ou de groupes de bits dans le syndrome, sans déterminer, par une comparaison numérique ou complexe du point technique de matériel du syndrome avec la matrice de contrôle, la colonne ou la ligne de la matrice de contrôle qui coïncide avec le syndrome. Si la matrice de contrôle est alors réalisée de sorte que la détermination de l'erreur de bit et/ou de la position d'erreur de bit dans la séquence de bits puisse déjà être identifiée à partir du syndrome, cette position d'erreur de bit peut, par exemple, être déterminée par l'application d'une formule simple comportant une multiplication et une addition. A cet effet, il y a lieu d'utiliser, de préférence, la position d'un bit de syndrome ou d'un premier bit d'un groupe de bits de syndrome, une information sur un rapport entre le bit de syndrome et le groupe de bits de syndrome ainsi qu'une information sur un nombre de colonnes de matrice partielle ou un nombre de lignes de matrice partielles. La présente invention présente l'avantage qu'il n'est maintenant plus requis de grand déploiement numériquement ou de grand déploiement du point de vue technique de matériel, pour déterminer la colonne de matrice de contrôle qui coïncide avec le syndrome, afin de déterminer à partir de celle-ci la position de l'erreur de bit dans une séquence de bits reçue. Il peut plutôt être utilisé la seule connaissance du syndrome, c'est-àdire la connaissance d'une position du bit de syndrome dans le syndrome ou d'un premier bit du groupe de bits de syndrome, d'un rapport, de préférence d'une distance, entre le bit de syndrome et le groupe de bits de syndrome et d'une information sur un 2885708 14 nombre de lignes ou de colonnes d'une matrice partielle de la matrice de contrôle, pour obtenirdirectement comme résultat de calcul, par exemple, par l'application d'une simple équation avec une addition et une multiplication, la position à laquelle s'est produite l'erreur de bit. Cela résulte, en particulier, du fait que la matrice de contrôle est réalisée de manière favorable. Ci-après sont expliqués plus en détail des exemples de réalisation préférés de la présente invention, en référence aux dessins joints en annexe, dans lesquels: la figure 1 est un schéma-bloc d'un exemple de réalisation du dispositif selon l'invention pour déterminer une position d'une erreur de bit; la figure 2 un premier exemple de réalisation d'une matrice de contrôle selon l'invention; et la figure 3 un deuxième exemple de réalisation d'une matrice de contrôle selon l'invention. Dans les réalisations suivantes, des éléments identiques ou similaires sont désignés par des numéros de repère identiques ou similaires, une description répétée de ces éléments étant omise. La figure 1 illustre un schéma-bloc d'un exemple de réalisation du dispositif selon l'invention pour déterminer la position d'une erreur de bit dans une séquence de bits. Le dispositif comporte un dispositif 102 destiné à recevoir une séquence de bits, un dispositif 104 destiné à déterminer un syndrome S(y) ainsi qu'un dispositif 106 destiné à constater une position d'une erreur de bit dans une séquence de bits reçue. Le dispositif 102 destiné à recevoir une séquence de bits peut recevoir d'un canal d'informations ou d'une mémoire une séquence de bits et amener cette séquence de bits y au dispositif 104 destiné à déterminer un syndrome S{y). Le dispositif 104 destiné à déterminer peut déterminer, à l'aide de la séquence de bits y reçue du dispositif 102 destiné à recevoir et de la matrice de contrôle H, le syndrome S(y). A partir de ce syndrome S(y), le dispositif 106 destiné à constater peut 2885708 15 ensuite déterminer la position de l'erreur de bit en évaluant uniquement le syndrome S(y) tel qu'il sera encore décrit plus en détail ci-après. Comme résultat, le dispositif 106 peut alors sortir une position r qui caractérise la position dans la séquence de bits y qui est erronée. En ce qui concerne la construction des matrices de contrôle, il y a lieu de noter qu'il est nécessaire, pour l'aptitude à la correction d'erreurs d'un seul bit que les colonnes (ou lignes) dans la matrice de contrôle soient différentes entre elles par paire. Pour la correction d'erreur, il est calculé à partir du vecteur de bit reçu ou à contrôler, à l'aide de la matrice de contrôle, le soi-disant vecteur de syndrome (ou, en bref, le syndrome). Si le syndrome contient simplement des zéros, il ne s'est pas produit d'erreur. Si le syndrome est identique à une colonne de la matrice de contrôle, il s'est produit précisément une erreur. La position de la colonne de la matrice de contrôle identique au vecteur de syndrome est également la position de l'erreur d'un seul bit qui s'est produite. Pour la correction d'erreur, il doit alors être déterminé, en premier lieu, si le syndrome reçu est identique à une colonne de la matrice de contrôle et, dans J'affirmative, être détecté, en deuxième lieu, la position de cette colonne. Cette approche connue en soi peut alors être étendue, selon l'invention, en ce que les colonnes de la matrice de contrôle ou de la matrice de contrôle de parité sont placées de manière spéciale dans lafamille proposée de codes linéaires corrigeant les erreurs d'un seul bit. La matrice de contrôle de parité y est subdivisée en matrices partielles carrées (ou sous-matrices) en regroupant un nombre approprié de colonnes de H. Les matrices partielles carrées qui en résultent sont circulantes (ou cycliques). Une matrice circulante de l'ordre n est une matrice nXn carrée qui est complètement déterminée par sa première ligne (ou sa première colonne) . Dans chaque ligne suivante, les éléments sont déplacés d'une position vers la droite, un aménagement ayant lieu, lorsqu'une fin de la matrice est atteinte, de sorte que les premiers éléments dans cette ligne 2885708 16 soient remplis par les valeurs déplacées. Un exemple d'une matrice circulante est reproduit ci-après: (abcde, eabcd Z deabc cdeab bcdea) cette matrice étant une matrice circulante de l'ordre 5. Chaque code de la famille de codes proposée est défini par une matrice H de contrôle de parité (n-k) x n dont les colonnes contiennent toutes exactement trois uns, sauf les dernières n-k colonnes qui ne contiennent qu'un seul un. Il est rappelé une fois de plus que la matrice de contrôle de parité H a la forme H = (A, In-k), A étant une matrice (n-k) x k et In_k étant la matrice unitaire (n-k) x (n-k). En d'autres termes, les premières k colonnes de H ont un poids de Hamming de 3, les n-k colonnes restantes ont un poids de Hamming de 1. Les colonnes doivent être univoques, c'est-à-dire que la même colonne ne peut pas se présenter deux fois dans H. Des codes de ce type sont connus dans la littérature comme codes de Hsiao [M.Y. Hsiao: A class of Optimal Minimum Odd-Weight-Column SEC-DED Codes, IBM J. Res. Dev. 14, 395 à 401 (1970) ; C.L. Chen, M. Y, Hsiao: Error-Correcting Codes for SemiConductor Memory Applications: A State-of-the-Art Review, IBM J. Res. Dev. 28, 124 à 134 (1984). Le fait que les colonnes de la matrice de contrôle de parité sont univoques et ont un poids de Hamming de 1 ou 3 garantit déjà que le nombre le plus petit de colonnes, qui, additionné, donne 0, est 4, donc que le code a une distance minimale de 4. Par conséquent, le code peut corriger chaque erreur d'un seul bit. Dans un exemple de réalisation de la présente invention, il est utilisé comme colonnes dans la matrice de contrôle de parité non 2885708 17 seulement des colonnes univoques avec la distance de Hamming de 3, mais également (i) des colonnes dont les bits répondent à un échantillon simple, et où (ii) le placement des colonnes est réalisé dans un ordre canonique. Ces mesures fac litent le processus de (i) identification de s'il s'est produit ou non une erreur d'un seul bit, et de (ii) détermination de la position à laquelle s'est produite l'erreur. Il est considéré, à titre d'exemple, la matrice de contrôle de parité qui est représentée à la figure 2 et qui est une matrice 8x40. La matrice Hi définit un code linéaire (40, 32, 4). La longueur de chaque mot de code est de 40, le bloc de message a une longueur de 32 et le code a une distance minimale de 4. Les huit premières colonnes de Hi forment une matrice 8x8 circulante Ao. Toutes les colonnes de Ao ont en commun qu'elles ont trois uns successifs Chaque colonne est considérée de manière circulaire, c'est-à-dire que, par exemple, la colonne 7 a également trois uns successifs. Le successeur des deux uns à la fin est le un qui apparaît à la première ligne. Les colonnes numéros 9 à 16 forment une autre matrice 8x8, c'est-à-dire Al. Toutes les colonnes de Ai ont en commun qu'elles contiennent un un isolé qui est suivi d'un zéro, lequel, à son tour, est suivi de deux uns successifs. Les colonnes numéros 17 à 24 forment une autre matrice circulante A2. Les colonnes de A2 ont en commun qu'un un isolé est suivi de deux zéros, lesquels sont suivis, à leur tour, de deux uns successifs. Les colonnes numéros 25 à 32 forment une matrice circulante A3 dont les colonnes ont en commun qu'un un isolé est suivi de trois zéros, lesquels sont suivis, à leur tour, de deux uns. 2885708 18 Les colonnes 33 à 40 forment la matrice unitaire. Chaque colonne contient un seul un et sept zéros. Par ailleurs, il est supposé qu'il est donné un tupie de 40 bits v. Le syndrome s(v) = HvT est ensuite calculé. Si S(v) = 0 est d'application, il peut être conclu qu'il ne s'est pas produit d'erreur. Supposons qu'il en résulte un syndrome de la forme S (v) _ Dans ce cas, on peut immédiatement voir que le vecteur de syndrome remplit la règle qui a été utilisée pour former les colonnes de la matrice de contrôle de parité. Le un isolé est suivi d'un zéro, d'où il peut être conclu que le vecteur de colonne S(v) apparaît dans la sous-matrice Al. Le un isolé apparaît à la ligne numéro 3, d'où il peut être conclu que S(v) est la troisième colonne de Al. Il s'ensuit que le vecteur de colonne S(v) est identique au numéro de colonne 1 É8+3= 11 de la matrice de contrôle de parité HI. Cela signifie que le onzième bit de v est erroné et doit être corrigé. De manière générale, la règle d'identification d'erreur est comme suit: si le syndrome a une forme dans laquelle un un isolé se trouve dans la ligne j (avec (1 2885708 19 Si le syndrome est un vecteur qui n'a qu'un seul un dans la ligne j, la position d'erreur r est donnée par r = O2 j. L'idée de base de la présente invention consiste donc en ce qu'une formule de position d erreur utilisée de préférence peut être convertie simplement en matériel par une logique simple en conséquence. Cela doit permettre une mise en oeuvre en matériel simple, pour calculer le syndrome et (dans le cas d'une erreur d'un seul bit) la correction de cette erreur dans un cycle de CPU (= unité centrale de traitement). D'autres exemples peuvent être donnés en ce qui concerne la matrice de contrôle de parité Hi à la figure 2. Par exemple, on peut considérer le tuple à 40 bits x = 00011000 10000001 01100100 01010000 10111010. Le syndrome correspondant est alors calculé pour obtenir ( 0' 0 0 H,xT = S(x) _ 0)/ Comme conclusion, il en résulte qu'il ne s'est pas produit d'erreur. Par ailleurs, on peut considérer, par exemple, le tuple à 40 bits y = 00011000 10000001 01000100 01010000 10111010. Le 20 syndrome correspondant est calculé pour obtenir 0 0 2885708 20 7ov1 0 1 0 Hy' = S (y) -i 0 pli Le syndrome a la forme "correcte" la position d'erreur est r = 2 É 8 + 3 = 19. Le numéro de bit 19 dans y est incorrect. Le tuple à 40 bits corrigé est donc c = 00011000 10000001 01100100 01010000 10111010. Par ailleurs, on peut, par exemple, considérer le tuple à 40 bits z = 0001100010100001011001000001000010111010. Le syndrome correspondant est calculé pour obtenir (0^ 1 1 0 1 0 1 0J Le syndrome a un poids de Hamming de 4, ce qui signifie que plus d'un seul bit est erroné. Par ailleurs, on peut considérer, par exemple, le tuple à 40 bits W = 00000000 01000000 01000000 01000000 11000000. Le syndrome correspondant est calculé pour obtenir H,zT =S(z)= (1l '0 11 H1w' =SCw)= 0 10 Bien que le syndrome ait un poids de Hamming de 3, il n'a pas la forme requise d'un un isolé suivi de 0, 1, 2 ou trois zéros, lesquels sont suivis, à leur tour, de deux uns successifs et, sinon, uniquement des zéros dans le syndrome. Cela signifie qu'il s'est produit une erreur de bits multiples. Comme deuxième exemple d'application, on peut considérer la matrice de contrôle (ou matrice de contrôle de parité) H2 à la figure 3. La matrice de contrôle (matrice de contrôle de parité) y illustrée définit un code linéaire (40, 30, 4). La longueur de code est de 40, la longueur de message de 30 et la distance minimale de 4. La matrice H2 a 10 lignes et 40 colonnes. Les 10 dernières colonnes définissent la matrice unitaire. Les 30 premières colonnes contiennent, chacune, trois uns. Les 30 colonnes ont en commun ce qui sut: on y retrouve les séquences partielles 101 (les colonnes doivent toujours être lues du haut vers le bas et sont cycliques, c'est-à-dire que le successeur de la dixième entrée de colonne est la première entrée de colonne). Après la séquence partielle 101 suivent un ou deux ou trois zéros, ensuite vient le troisième un. Dans les colonnes dans le premier bloc, c'est-à-dire les colonnes 1 à 10, un zéro suit après 101. Dans les colonnes du deuxième bloc, les colonnes 11 à 20, deux zéros suivent la séquence 101. Dans les colonnes du troisième bloc, c'est-à-dire les colonnes 21 à 30, trois zéros suivent 101. Si j est la position du premier un de la séquence 101 (1 j s 10) et que k est le nombre de zéros entre 101 et le 2885708 22 troisième un (k = 1, 2, 3), la position r de la colonne est obtenue par la formule r = (k - 1) ' 10+j Si une colonne ne contient qu'un un et que celui-ci se trouve 5 dans la j- ième ligne, la position de cette colonne dans H2 est donnée par r = 30 + j. Par exemple, il peut être supposé que pour un vecteur v à contrôler résulte le syndrome 1 0 0 Dans ce cas, j=3 et k==2. Il s'ensuit qu'est d'application r = 10 + 3 = 13. Le syndrome est identique à la 13ème colonne de la matrice 112. En d'autres termes, cela signifie que le 13ème bit de v est erroné. Par ailleurs, il peut être supposé que le syndrome est égal à (0\ Ici, j=8 et k=3, d'où résulte comme position pour le bit erroné une position de r = 20 + 8 = 28. 2885708 23 Par ailleurs, il peut être supposé que le syndrome donne une valeur de SV = Ici, j=7 et la position d'erreur r = 30 + j = 37. Le syndrome est identique à la 37ème colonne de la matrice H2. Alternativement, des lignes et des colonnes de la matrice de contrôle peuvent également être interchangées et le syndrome peut être considéré comme vecteur de ligne, d'où est alors nécessaire une adaptation analogue des prescriptions de calcul respectives (permutation des lignes et colonnes et opérations de multiplication de matrice adaptées en conséquence), pour pouvoir effectuer la correction d'erreur d'un seul bit correspondante. En fonction des circonstances, les procédés selon l'invention peuvent être mis en oeuvre en matériel ou en logiciel. La mise en oeuvre peut avoir lieu sur un support de mémoire numérique, en particulier une disquette ou un CD à signaux de commande pouvant être lus électroniquement, lequel peut coopérer avec un système d'ordinateur programmable de sorte que soit réalisé le procédé correspondant. L'invention consiste donc généralement aussi en un programme d'ordinateur avec un code de programme mémorisé sur un support pouvant être lu en machine pour l'exécution du procédé selon l'invention, lorsque le programme d'ordinateur est exécuté sur un ordinateur. En d'autres termes, l'invention peut donc être réalisée sous forme de programme d'ordinateur avec un code de programme pour 2885708 24 l'exécution du procédé, lorsque le programme d'ordinateur est exécuté sur un ordinateur. Liste de numéros de repère 102 Dispositif destiné à recevoir 104 Dispositif destiné à déterminer 106 Dispositif destiné à constater y Séquence de bits reçue Hi, H2 Matrices de contrôle S(y) Syndrome r position du bit erroné dans la séquence de bits Ao, .. , A3 Matrices partielles 2885708 25 REVENDICATIONS 1. Dispositif pour déterminer une position (r) d'une erreur de bit dans un séquence de bits (y) à l'aide d'une matrice de contrôle (H), la matrice de contrôle (Hi présentant un nombre de lignes prédéfini et un nombre de colonnes prédéfini, la matrice de contrôle (H) comportant une pluralité de matrices partielles carrées (Ao, Ai, A2, A3), qui ont un nombre de lignes de matrice partielle et un nombre de colonnes de matrice partielle, le nombre de lignes de matrice partielle correspondant au nombre de lignes prédéfini ou le nombre de colonnes de matrice partielle correspondant au nombre de colonnes prédéfini de la matrice de contrôle (H), chaque matrice partielle (Ao, Ai, A2, A3) comportant des entrées de matrice partielle qui sont disposées de manière circulante par rapport à une première ligne de matrice partielle ou à une première colonne de matrice partielle, dans chaque ligne de matrice partielle ou dans chaque colonne de matrice partielle étant disposés un bit et un groupe de bits et le bit et le groupe de bits étant, dans une première matrice partielle (Ao), disposés selon un premier rapport prédéterminé entre eux, et le bit et le groupe de bits étant, dans une deuxième matrice partielle (A1), disposés selon un deuxième rapport prédéterminé entre eux, le premier rapport prédéterminé différant du deuxième rapport prédéterminé, et le dispositif pour déterminer comportant les caractéristiques suivantes: un dispositif (102) destiné à recevoir une séquence de bits (y) ; un dispositif (104) destiné à déterminer un syndrome (S(y)) à l'aide de la matrice de contrôle (H) et de la séquence de bits reçue (y) ; et un dispositif (106) destiné à constater une position (r) d'une erreur de bit dans la séquence de bits reçue (y), le dispositif (106) destiné à constater étant réalisé de manière à identifier dans le syndrome (S(y)) un bit de syndrome et un groupe de bits de syndrome, et le dispositif destiné à constater étant, par ailleurs, réalisé de manière à déterminer, à l'aide d'une information sur une position du bit de syndrome ou du groupe de bits de syndrome dans le syndrome (S(y)), 2885708 26 d'une information sur un rapport entre le bit de syndrome et le groupe de bits de syndrome et du nombre de lignes de matrice partielle ou du nombre de colonnes de matrice partielle, la position (r) de l'erreur de bit de la séquence de bits reçue (y). 2. Dispositif selon la revendication 1, dans lequel le dispositif (106) destiné à constater est réalisé de manière à identifier le groupe de bits de syndrome de sorte que le groupe de bits de syndrome corresponde au groupe de bits dans une ligne de matrice partielle ou à un groupe de bits dans une colonne de matrice partielle. 3. Dispositif pour déterminer selon la revendication 1 ou 2, comportant, par ailleurs, la caractéristique suivante: un dispositif pour corriger une erreur de bit à la position (r) déterminée dans la séquence de bits reçue (y). 4. Dispositif selon l'une des revendications 1 à 3, dans lequel le dispositif (106) destiné à constater est, par ailleurs, réalisé de manière à déterminer, à l'aide du syndrome (S(y)), s'il s'est produit une pluralité d'erreurs de bit dans la séquence de bits (y). 5. Dispositif selon l'une des revendications 1 à 4, dans lequel le premier et le deuxième rapport prédéterminé entre le bit et le groupe de bits consiste en une distance entre le bit et le groupe de bits, le dispositif (106) destiné à constater étant réalisé de manière à déterminer, pour obtenir l'information sur le rapport entre le bit de syndrome et le groupe de bits de syndrome, une distance entre le bit de syndrome et le groupe de bits de syndrome dans le syndrome (S(y)). 6. Dispositif selon la revendication 5, dans lequel le bit dans chacune des matrices partielles (Ao, ..., A3) est disposé dans la diagonale principale, le dispositif (106) destiné à constater étant réalisé de manière à déterminer, comme position r d'une erreur de bit qui s'est produite, la position qui résulte de l'application de la formule r=k.l+j, k étant une variable qui se réfère à la distance entre le bit de syndrome et le groupe de bits de syndrome, 1 étant une variable qui se réfère au 2885708 2 nombre de lignes de matrice partielle ou au nombre de colonnes de matrice partielle d'une matrice partielle et j étant une variable qui se réfère à une distance entre le bit de syndrome et un premier bit du syndrome. 7. Dispositif selon la revendication 5, dans lequel un bit du groupe de bits dans chacune des matrices partielles est disposé dans la diagonale principale, le dispositif (106) destiné à constater étant réalisé de manière à déterminer, comme position d'une erreur de bit qui s'est produite, la position r qui résulte de l'application de la formule r-(k-1) Él+j, k étant une variable qui se réfère à une distance entre le bit de syndrome et le groupe de bits de syndrome, 1 étant une variable qui se réfère au nombre de lignes de matrice partielle ou au nombre de colonne de matrice partielle d'une matrice partielle (Ao, ..., A3) et j étant une variable qui se réfère à une distance entre un premier bit du groupe de bits de syndrome et le début du syndrome. 8. Procédé pour déterminer une position (r) d'une d'erreur de bit dans un séquence de bits (y) à l'aide d'une matrice de contrôle (H), la matrice de contrôle (1-I) présentant un nombre de lignes prédéfini et un nombre de colonnes prédéfini, la matrice de contrôle (H) comportant une pluralité de matrices partielles carrées ( Ao, A1, A2, A3) qui ont un nombre de lignes de matrice partielle et un nombre de colonnes de matrice partielle, le nombre de lignes de matrice partielle correspondant au nombre de lignes prédéfini ou le nombre de colonnes de matrice partielle correspondant au nombre de colonnes prédéfini de la matrice de contrôle (H), chaque matrice partielle (Ao, Ai, A2, A3) comportant des entrées de matrice partielle qui sont disposées de manière circulante par rapport à une première ligne de matrice partielle ou une première colonne de matrice partielle, un bit et un groupe de bits étant disposés dans chaque ligne de matrice partielle ou dans chaque colonne de matrice partielle et lei bit et le groupe de bits étant disposés, dans une première matrice partielle (Ao), selon un premier rapport prédéterminé 2885708 28 entre eux, et le bit et le groupe de bits étant disposés, dans une deuxième matrice partielle (AI), selon un deuxième rapport prédéterminé entre eux le premier rapport prédéterminé différant du deuxième rapport prédéterminé, et le procédé pour déterminer comportant les étapes suivantes consistant à : recevoir une séquence de bits (y) ; déterminer un syndrome (S(y)) à l'aide de la matrice de contrôle (H) et de la séquence de bits reçue (y) ; et constater une position (r) d'une erreur de bit dans la séquence de bits reçue (y) de sorte que dans le syndrome (S(y)) soient identifiés un bit de syndrome et un groupe de bits de syndrome, pour déterminer, à l'aide d'une information sur une position du bit de syndrome ou du groupe de bits de syndrome dans le syndrome (S(y)), d'une information sur un rapport entre le bit de syndrome et le groupe de bits de syndrome et du nombre de lignes de matrice partielle ou du nombre de colonnes de matrice partielle, la position (r) de l'erreur de bit de la séquence de bits reçue (y). 9. Dispositif pour préparer une matrice de contrôle pour déterminer une position (r) d'une erreur de bit dans un séquence de bits (y), aux caractéristiques suivantes: un dispositif pour déterminer une première matrice partielle carrée (Ao), la première matrice partielle présentant dans chaque ligne de matrice partielle ou dans chaque colonne de matrice partielle un bit et un groupe de bits, la matrice partielle comportant des entrées de matrice partielle que sont disposées de manière circulante par rapport à une première ligne de matrice partielle ou une première colonne de matrice partielle et le bit et le groupe de bits étant disposés selon un premier rapport prédéterminé entre eux; un dispositif pour déterminer une deuxième matrice partielle carrée (A1), la deuxième matrice partielle présentant dans chaque ligne de matrice partielle ou dans chaque colonne de matrice partielle un bit et un groupe de bits, la deuxième matrice partielle comportant des 2885708 29 entrées de matrice partielle qui sont disposées de manière circulante par rapport à une première ligne de matrice partielle ou une première colonne de matrice partielle et le bit et le groupe de bits étant disposés selon un deuxième rapport prédéterminé entre eux, le premier rapport prédéterminé différant du deuxième rapport prédéterminé ; et un dispositif destiné à assembler la première et la deuxième matrice partielle, pour obtenir une matrice de contrôle (H), la matrice de contrôle (H) comportant un nombre de ligne qui correspond à un nombre de lignes de matrice partielle de la première ou de la deuxième matrice partielle ou la matrice de contrôle (H) comportant un nombre de colonnes qui correspond à un nombre de colonnes de matrice partielle de la première ou de la deuxième matrice partielle. 10. Procédé pour préparer une matrice de contrôle pour déterminer une position (r) d'une erreur de bit dans une séquence de bits (y), aux étapes suivantes consistant à : déterminer une première matrice partielle carrée (Ao) de sorte que la première matrice partielle présente dans chaque ligne de matrice partielle ou dans chaque colonne de matrice partielle un bit et un groupe de bits, la matrice partielle comportant des entrées de matrice partielle qui sont disposées de manière circulante par rapport à une première ligne de matrice partielle ou à une première colonne de matrice partielle et le bit et le groupe de bits étant disposés selon un premier rapport prédéterminé entre eux; déterminer une deuxième matrice partielle carrée (Al) de sorte que la deuxième matrice partielle présente dans chaque ligne de matrice partielle ou dans chaque colonne de matrice partielle un bit et un groupe de bits, la deuxième matrice partielle comportant des entrées de matrice partielle qui sont disposées de manière circulante par rapport à une première ligne de matrice partielle ou à une première colonne de matrice partielle et le bit et le groupe de bits étant disposés selon un deuxième rapport prédéterminé entre eux, le premier rapport prédéterminé différant du deuxième rapport prédéterminé ; et 2885708 30 assembler la première et la deuxième matrice partielle, pour obtenir une matrice de contrôle (H), la matrice de contrôle (H) comportant un nombre de lignes qui correspond à un nombre de lignes de matrice partielle de la première ou de la deuxième matrice partielle ou la matrice de contrôle (H) comportant un nombre de colonnes qui correspond à un nombre de colonnes de matrice partielle de la première ou de la deuxième matrice partielle. 11. Matrice de contrôle pour déterminer une position (r) d'une erreur de bit dans une séquence de bits (y), présentant les caractéristiques suivantes: une première matrice partielle carrée (Ao), la première matrice partielle (Ao) présentant dans chaque ligne de matrice partielle ou dans chaque colonne de matrice partielle un bit et un groupe de bits, la matrice partielle comportant des entrées de matrice partielle qui sont disposés de manière circulante par rapport à une première ligne de matrice partielle ou à une première colonne de matrice partielle et le bit et le groupe de bits étant disposés selon un premier rapport prédéterminé entre eux; une deuxième matrice partielle carrée (A1) , la deuxième matrice partielle présentant dans chaque ligne de matrice partielle ou dans chaque colonne de matrice partielle un bit et un groupe de bits, la deuxième matrice partielle comportant des entrées partielles de matrice qui sont disposées de manière circulant par rapport à une première ligne de matrice partielle ou à une première colonne de matrice partielle et le bit et le groupe de bits étant disposés selon un deuxième rapport prédéterminé entre eux, le premier rapport prédéterminé différant du deuxième rapport prédéterminé ; et la première matrice partielle (Ao) et la deuxième matrice partielle (Ai) étant disposées dans la matrice de contrôle (H) de sorte que la matrice de contrôle (H) présente un nombre de lignes qui correspond à un nombre cle lignes de matrice partielle de la première ou de la deuxième matrice partielle ou que la matrice de contrôle (H) présente un nombre de colonnes qui correspond à un nombre de colonnes de matrice partiel de la première ou de la deuxième matrice partielle. 12. Prog:amme d'ordinateur à code de programme pour la mise en oeuvre du procédé selon la revendication 8 ou 10 lorsque le programme d'ordinateur est exécuté sur un ordinateur.