FR2785742A1 - Coding method that takes into account predetermined integer equal to or greater than 2, number greater than or equal to 1 of sequences of binary data representing physical quantity - Google Patents

Coding method that takes into account predetermined integer equal to or greater than 2, number greater than or equal to 1 of sequences of binary data representing physical quantity Download PDF

Info

Publication number
FR2785742A1
FR2785742A1 FR9814084A FR9814084A FR2785742A1 FR 2785742 A1 FR2785742 A1 FR 2785742A1 FR 9814084 A FR9814084 A FR 9814084A FR 9814084 A FR9814084 A FR 9814084A FR 2785742 A1 FR2785742 A1 FR 2785742A1
Authority
FR
France
Prior art keywords
polynomial
equal
sequence
sequences
integer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
FR9814084A
Other languages
French (fr)
Inventor
Philippe Piret
Dantec Claude Le
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to FR9814084A priority Critical patent/FR2785742A1/en
Priority to EP98403283A priority patent/EP0928071B8/en
Priority to DE69837077T priority patent/DE69837077T2/en
Priority to CNB981259502A priority patent/CN1213541C/en
Priority to KR1019980062589A priority patent/KR100341266B1/en
Priority to US09/222,849 priority patent/US6370670B1/en
Priority to JP00024199A priority patent/JP4124893B2/en
Publication of FR2785742A1 publication Critical patent/FR2785742A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding

Abstract

Coding method takes into account preset integer equal or greater than 2, number, greater than or equal to 1, of binary data sequences of physical quantities. Each sequence has polynomial being multiple of preset polynomial and several binary data equal to product of any integer number M and integer NO, smallest integer so that given polynomial is divisible by each of the other polynomials.

Description

<Desc/Clms Page number 1> <Desc / Clms Page number 1>

La présente invention concerne un dispositif de codage, un procédé de codage, un dispositif et un procédé de décodage et des systèmes les mettant en #uvre.  The present invention relates to a coding device, an encoding method, a device and a decoding method and systems implementing them.

Elle s'applique aussi bien au codage de données représentatives d'une grandeur physique, au codage de données sous forme de codes susceptibles de moduler une grandeur physique, au décodage de signaux modulés en données, qu'au décodage de données représentatives de grandeurs physiques. Ces données peuvent, par exemple, représenter des images, des sons, des données informatiques, des grandeurs électriques, des données mémorisées.  It applies both to the coding of data representative of a physical quantity, to the coding of data in the form of codes capable of modulating a physical quantity, to the decoding of data modulated signals, and to the decoding of data representative of physical quantities. . These data can, for example, represent images, sounds, computer data, electrical quantities, stored data.

L'invention trouve une application dans le domaine des codes convolutifs. Lorsqu'on utilise ces derniers pour mettre en oeuvre un décodage itératif, ces codes sont fortement améliorés lorsque leurs codeurs contiennent un dispositif de permutation. Dans ce cas, ils sont habituellement appelés "turbocodes" et le décodeur itératif correspondant est appelé "turbodécodeur".  The invention finds application in the field of convolutional codes. When these are used to implement iterative decoding, these codes are greatly improved when their encoders contain a permutation device. In this case, they are usually called "turbocodes" and the corresponding iterative decoder is called "turbodecoder".

Sur ces sujets, des documents qui servent de référence sont, d'une part, l'article de MM. C. BERROU, A. GLAVIEUX et P. THITIMAJSHIMA intitulé "Near Shannon limit error-correcting coding and decoding : turbocodes" publiés avec les compte-rendus de la conférence "ICC'93", 1993, pages 1064 à 1070, et d'autre part, l'article de MM. C. BERROU et A. GLAVIEUX intitulé "Near Optimum error-correcting coding and decoding : turbo-codes" publié par IEEE Transactions on Communication, Volume COM-44, pages 1261 à 1271, en octobre 1996.  On these subjects, documents which serve as reference are, on the one hand, the article of MM. C. BERROU, A. GLAVIEUX and P. THITIMAJSHIMA entitled "Near Shannon limit error-correcting coding and decoding: turbocodes" published with the proceedings of the conference "ICC'93", 1993, pages 1064 to 1070, and of on the other hand, the article by MM. C. BERROU and A. GLAVIEUX entitled "Near Optimum error-correcting coding and decoding: turbo-codes" published by IEEE Transactions on Communication, Volume COM-44, pages 1261 to 1271, October 1996.

<Desc/Clms Page number 2> <Desc / Clms Page number 2>

Cependant, la formation des dispositifs de permutation est loin d'être parfaitement maîtrisée. En général ce dispositif utilise des matrices carrées ou rectangulaires dans lesquelles on écrit une ligne après l'autre et on lit une colonne après l'autre. Ces matrices sont généralement très grandes, par exemple de dimension 256 x 256.  However, the formation of permutation devices is far from being perfectly controlled. In general, this device uses square or rectangular matrices in which one line is written after the other and one column is read after the other. These matrices are generally very large, for example 256 x 256.

Selon une autre méthode, dans un article intitulé "Weight distributions for turbo-codes using random and nonrandom permutations" publié

Figure img00020001

par le Jet Propulsion Laboratory, avec'TDA Progress Report", numéro 42-122, le 15 août 1995, MM. DOLINAR et DIVSALAR considèrent les permutations qui, en numérotant les k positions d'information entre 0 et k-1, déplacent les informations binaires placées en une position i jusqu'à une position e i + f, pour des valeurs "bien choisies" de e et de f. According to another method, in an article entitled "Weight distributions for turbo-codes using random and nonrandom permutations" published
Figure img00020001

by the Jet Propulsion Laboratory, with 'TDA Progress Report', number 42-122, on August 15, 1995, Messrs DOLINAR and DIVSALAR consider the permutations which, by numbering the k information positions between 0 and k-1, move the binary information placed in a position i to a position ei + f, for "well-chosen" values of e and f.

Dans ce document, ils ne donnent qu'un exemple où k est une puissance de 2. De plus, ils ne discutent pas l'influence réciproque possible du choix du dispositif de permutation et de celui des codeurs convolutifs élémentaires (2,1) à utiliser pour générer les séquences codées produites par le turbocodeur (3,1).  In this document, they give only one example where k is a power of 2. Moreover, they do not discuss the possible reciprocal influence of the choice of the permutation device and that of the elementary convolutional encoders (2.1) to use to generate the coded sequences produced by the turbo encoder (3.1).

L'évaluation du turbocode correspondant consiste à simuler son utilisation sur un canal de transmission avec différentes valeurs de rapport signal/bruit et à mesurer la valeur minimum de ce rapport pour laquelle une valeur prédéterminée de probabilité d'erreur sur les valeurs binaires est atteinte.  The evaluation of the corresponding turbocode consists in simulating its use on a transmission channel with different signal / noise ratio values and in measuring the minimum value of this ratio for which a predetermined value of error probability on the binary values is reached.

Cependant, l'usage des simulations comme outil d'évaluation peut mener à quelques problèmes.  However, the use of simulations as an evaluation tool can lead to some problems.

Considérons, par exemple, le dispositif de permutation avec k = 65536 = 256 x 256, évoqué plus haut, et choisissons une probabilité d'erreur prédéterminée égale à 10-5 pour simuler les performances d'un turbocode utilisant ce dispositif. En conséquence, le nombre moyen d'erreurs sur les valeurs binaires par bloc de 256 x 256 sera proche de 1, mais nous ne saurons pas si chaque information binaire possède la même probabilité d'erreur. Cette probabilité d'erreur pourrait être assez élevée pour des valeurs binaires possédant une  Consider, for example, the permutation device with k = 65536 = 256 x 256, discussed above, and choose a predetermined error probability equal to 10-5 to simulate the performance of a turbocode using this device. As a result, the average number of errors on binary values per block of 256 x 256 will be close to 1, but we will not know if each binary information has the same probability of error. This probability of error could be quite high for binary values with a

<Desc/Clms Page number 3><Desc / Clms Page number 3>

position "malheureuse" dans le dispositif de permutation et cette probabilité pourrait être beaucoup plus petite pour des positions plus "heureuses".  "unfortunate" position in the permutation device and this probability could be much smaller for more "happy" positions.

Une voie possible pour remédier à cette situation est de réaliser une conception harmonieuse et conjointe du dispositif de permutation et des deux codeurs convolutifs pour garantir une uniformité raisonnable du taux d'erreur sur les valeurs binaires après décodage, en fonction de la position de l'information binaire dans le dispositif de permutation.  A possible way to remedy this situation is to achieve a harmonious and joint design of the permutation device and the two convolutional encoders to ensure a reasonable uniformity of the error rate on the binary values after decoding, depending on the position of the binary information in the permutation device.

Un autre problème concerne le manque d'outils algébriques pour spécifier les dispositifs de permutation. Il serait utile de disposer de moyens permettant de spécifier une sélection de dispositifs de permutation possédant des performances représentatives du jeu de tous les dispositifs de permutation.  Another problem is the lack of algebraic tools for specifying permutation devices. It would be useful to have means for specifying a selection of permutation devices having performance representative of the set of all permutation devices.

L'invention concerne principalement la transmission d'information représentée par des séquences de symboles binaires :

Figure img00030001

u = (uo, U1, Uk-1), appelées "séquences d'information", que l'on va coder en un triplet de séquences binaires,
Figure img00030002

v = (a, b, cl, chacune de ces séquences a, b et c, étant, à elle seule, représentative de la séquence u. The invention mainly relates to the transmission of information represented by sequences of binary symbols:
Figure img00030001

u = (uo, U1, Uk-1), called "information sequences", which will be coded into a triplet of binary sequences,
Figure img00030002

v = (a, b, cl, each of these sequences a, b and c being, by itself, representative of the sequence u.

Dans la suite de la description, on utilise indifféremment pour

Figure img00030003

représenter une séquence u, la forme u = (UO, U1, ..., Uk-1), et la forme polynomiale associée : u(x) = uo x + u1 x' + ... + Uk-1 x-'. In the rest of the description, it is used indifferently for
Figure img00030003

represent a sequence u, the form u = (UO, U1, ..., Uk-1), and the associated polynomial form: u (x) = uo x + u1 x '+ ... + Uk-1 x- .

Des notations équivalentes seront utilisées pour les séquences a, b et c. En utilisant cette seconde représentation, il est connu pour déterminer le

Figure img00030004

triplet v = (a, 6, 0 : - de choisir a(x) = u(x) ; - de choisir b(x) = u(x).hi(x) lg(x), où g(x) est un polynôme, par exemple g(x) = + x + x3, correspondant, selon la représentation en séquence, à la séquence (1, 1, 0, 1) ;
Figure img00030005

et hi(x) est un polynôme, par exemple hJ(x) = 1 + x + x2 + X3@ correspondant à la séquence (1, 1, 1, 1) ; et Equivalent notations will be used for sequences a, b and c. Using this second representation, he is known to determine the
Figure img00030004

triplet v = (a, 6, 0: - choose a (x) = u (x); - choose b (x) = u (x) .hi (x) lg (x), where g (x) is a polynomial, for example g (x) = + x + x3, corresponding, in the sequence representation, to the sequence (1, 1, 0, 1);
Figure img00030005

and hi (x) is a polynomial, for example hJ (x) = 1 + x + x2 + X3 @ corresponding to the sequence (1, 1, 1, 1); and

<Desc/Clms Page number 4><Desc / Clms Page number 4>

- en appelant a* une séquence formée par permutation des données binaires de la séquence a, de choisir c(x) = a*(x).h2(x) / g(x) où h2(x) est un polynôme, par exemple h2(x) = (1 + x2 + x3) correspondant à la séquence (1, 0, 1, 1).  by calling a sequence formed by permutation of the binary data of the sequence a, to choose c (x) = a * (x) .h2 (x) / g (x) where h2 (x) is a polynomial, by example h2 (x) = (1 + x2 + x3) corresponding to the sequence (1, 0, 1, 1).

Tout choix des polynômes g(x), hi(x), h2(x) et de la permutation spécifiant l'entrelaceur qui associe la séquence permutée a* à la séquence a, spécifie un codeur que nous appèlerons "turbocodeur". L'ensemble des séquences que peut produire un turbocodeur spécifié sera appelé "turbocode".  Any choice of the polynomials g (x), hi (x), h2 (x) and the permutation specifying the interleaver that associates the permuted sequence a * with the sequence a, specifies an encoder that we will call "turbo encoder". The set of sequences that a specified turbocharger can produce will be called "turbocode".

Dans la suite de la description, on appelle "premier codeur", le codeur convolutif récursif élémentaire qui produit la séquence b et "deuxième codeur", celui qui produit la séquence c.  In the following description, the term "first encoder", the elementary recursive convolutional encoder that produces the sequence b and "second encoder", the one that produces the sequence c.

Les divisions polynomiales mises en #uvre sont du type division suivant les puissances croissantes, bien connue de l'homme du métier. Elles utilisent l'arithmétique modulo 2. Les séquences a, b et c sont des séquences binaires et dans le cas général les divisions qui définissent b et c présentent un reste.  The polynomial divisions implemented are of the division type according to the increasing powers, well known to those skilled in the art. They use the modulo 2 arithmetic. The sequences a, b and c are binary sequences and in the general case the divisions which define b and c have a remainder.

Ce type de méthode de codage présente l'avantage de se prêter à un décodage itératif performant, peu complexe et peu coûteux.  This type of coding method has the advantage of being suitable for iterative decoding that is efficient, inexpensive and inexpensive.

Pour le mettre en #uvre, plusieurs questions se posent :

Figure img00040001

I/ Comment choisir les polynômes g(x), h1(x) et h2(x) ?
III Comment choisir la permutation des termes de la séquence a qui produit la séquence a* ? Parmi les choix proposés, trois exemples d'entrelaceurs, c'est-à-dire d'opérateurs qui permutent les termes de la séquence a, pour former la séquence a*, sont donnés ci-dessous :
A) dans le premier exemple, après avoir rangé les termes de a dans un tableau rectangulaire, successivement ligne par ligne et, pour chaque ligne, de gauche à droite, on forme la séquence a* en prélevant dans ce tableau successivement les termes colonne après colonne et, pour chaque colonne, de haut en bas. Par exemple, dans le cas de séquences de six termes et d'utilisation d'un tableau de deux lignes de trois To implement it, several questions arise:
Figure img00040001

I / How to choose the polynomials g (x), h1 (x) and h2 (x)?
III How to choose the permutation of the terms of the sequence to which the sequence a *? Among the choices proposed, three examples of interleavers, that is to say operators that permute the terms of the sequence a, to form the sequence a *, are given below:
A) in the first example, after arranging the terms of a in a rectangular array, successively line by line and, for each line, from left to right, the sequence a * is formed by taking in this array successively the terms column after column and, for each column, from top to bottom. For example, in the case of sequences of six terms and use of an array of two lines of three

<Desc/Clms Page number 5><Desc / Clms Page number 5>

colonnes, l'entrelaceur transforme la séquence a = (ao, a1, a2, a3, a4, a5) en la séquence a* = (ao, a3, a1, a4, a2, a5).  columns, the interleaver transforms the sequence a = (ao, a1, a2, a3, a4, a5) into the sequence a * = (ao, a3, a1, a4, a2, a5).

B) dans un deuxième exemple, le /-ième terme (i = 0, 1, 2, ...) a*j de la séquence a* est choisi comme étant le terme a, de la séquence a, avec j = s.i + t calculé modulo le nombre de termes de la séquence a, s et t étant des entiers. Par exemple, si le nombre de termes de la séquence a est six et si s = 5 et t = 3, l'entrelaceur transforme la séquence a = (ao, a1, a2, a3, a4, a5) en la séquence a* = (a3, a2, a1, ao, a5, a4).  B) in a second example, the second term (i = 0, 1, 2, ...) a * j of the sequence a * is chosen as the term a, of the sequence a, with j = si + t calculated modulo the number of terms of the sequence a, s and t being integers. For example, if the number of terms of the sequence a is six and if s = 5 and t = 3, the interleaver transforms the sequence a = (ao, a1, a2, a3, a4, a5) into the sequence a * = (a3, a2, a1, ao, a5, a4).

C) dans le troisième exemple, la permutation choisie est aléatoire.  C) in the third example, the permutation chosen is random.

NI/ Comment éviter que la division définissant b(x) ne présente un reste ? et
IV/ Comment éviter que la division définissant c(x) ne présente un reste ?
Répondre à ces deux dernières questions revient à résoudre un problème fréquemment mentionné dans la littérature sur les turbocodes qui est celui du "retour à l'état zéro" des codeurs convolutifs élémentaires définissant b et c. Puisque les turbocodeurs possèdent deux codeurs récursifs élémentaires dont le deuxième utilise une permutation a* de la séquence a, on désire garantir que les polynômes a(x) et a*(x) représentant la séquence d'information u(x) soient simultanément divisibles par g(x). Assurer cette condition de divisibilité de a(x) est simple car il suffit de construire a(x) à partir de u(x) en complétant u(x) par des symboles de bourrage en nombre égal au degré de g(x) et dont la seule fonction est de garantir l'absence de reste dans la division servant à produire b(x) à partir de a(x).
NI / How to avoid that the division defining b (x) has a remainder? and
IV / How to avoid that the division defining c (x) presents a remainder?
Answering these last two questions amounts to solving a problem frequently mentioned in the turbocode literature which is that of the "return to the zero state" of the elementary convolutional encoders defining b and c. Since the turbochargers have two elementary recursive coders, the second of which uses a permutation a * of the sequence a, it is desired to guarantee that the polynomials a (x) and a * (x) representing the information sequence u (x) are simultaneously divisible. by g (x). To assure this condition of divisibility of a (x) is simple because it is enough to build a (x) starting from u (x) by completing u (x) by stuffing symbols in number equal to the degree of g (x) and whose sole function is to guarantee the absence of remainder in the division used to produce b (x) from a (x).

Choisir une permutation produisant a*(x) à partir de a(x) qui garantisse à la fois la divisibilité de a*(x) par g(x) et de bonnes performances de correction d'erreur pour le turbocode ainsi spécifié est, en revanche, plus difficile.  Choosing a permutation producing a * (x) from a (x) which guarantees both the divisibility of a * (x) per g (x) and good error correction performance for the turbocode thus specified is, on the other hand, more difficult.

Ce problème peut entraîner des disparités entre les probabilités d'erreurs après décodage des différents bits constituant u(x).  This problem can lead to disparities between the error probabilities after decoding the different bits constituting u (x).

Dans un article paru dans le volume 31, No. 1 de la revue "Electronics Letters" le 5 janvier 1995, MM. BARBULESCU et PIETROBON  In an article published in Volume 31, No. 1 of the journal "Electronics Letters" on January 5, 1995, MM. BARBULESCU and PIETROBON

<Desc/Clms Page number 6><Desc / Clms Page number 6>

exposent qu'un entrelaceur peut être décrit en rangeant successivement et cycliquement les termes de la séquence a dans un nombre de séquences égal au degré du polynôme g(x) incrémenté de un, et que, dans ce cas, des permutations internes à chacune des séquences ainsi formées entraînent une égalité entre le reste de la division définissant la séquence b et celui de la division définissant la séquence c.  state that an interleaver can be described by successively and cyclically ordering the terms of the sequence a in a number of sequences equal to the degree of the polynomial g (x) incremented by one, and that, in this case, permutations internal to each of the sequences thus formed result in equality between the rest of the division defining the sequence b and that of the division defining the sequence c.

Toutefois, et contrairement à ce qui est dit dans cet article, cette

Figure img00060001

affirmation n'est vraie que si le polynôme g(x) est de la forme 11=0 à m 1. However, and contrary to what is said in this article, this
Figure img00060001

affirmation is only true if the polynomial g (x) is of the form 11 = 0 to m 1.

Dans un article intitulé "Turbo-block-codes" et publié avec les comptes-rendus du séminaire "turbo coding" organisé par l'Institut de Technologie de Lund (Suède) (Département d'électronique appliquée) en août 1996, MM. C. BERROU, S. EVANO et G. BATTAIL exposent que, en rangeant les termes de la séquence u, cycliquement, dans un nombre de colonnes égal à un multiple du degré NO du polynôme de type xn - 1 de plus faible degré strictement positif qui soit divisible par g(x), des permutations internes à chacune des colonnes ainsi formées entraînent que la somme du reste de la division définissant la séquence b et de celui de la division définissant la séquence c est nulle, si bien que la concaténation des séquences est divisible par g.  In an article entitled "Turbo-block-codes" and published with the proceedings of the seminar "turbo coding" organized by the Institute of Technology Lund (Sweden) (Department of Applied Electronics) in August 1996, MM. C. BERROU, S. EVANO and G. BATTAIL expose that, by arranging the terms of the sequence u, cyclically, in a number of columns equal to a multiple of the degree NO of the polynomial of the type xn-1 of lower degree strictly positive which is divisible by g (x), permutations internal to each of the columns thus formed cause that the sum of the remainder of the division defining the sequence b and that of the division defining the sequence c is zero, so that the concatenation of the sequences is divisible by g.

Ce document, tout comme le précédent, restreint donc le choix des entrelaceurs à des formes particulières travaillant indépendamment sur des sous-ensembles des termes de la séquence a en leur appliquant des permutations internes. Il ne garantit toutefois pas que individuellement a(x) et a*(x) soient divisibles par g(x). Seule est garantie la divisibilité par g(x) du polynôme représentant la concaténation (a, a*), consistant à mettre bout à bout les deux séquences a et a*.  This document, like the previous one, therefore restricts the choice of interleavers to particular forms working independently on subsets of the terms of the sequence a by applying to them internal permutations. It does not guarantee, however, that individually a (x) and a * (x) are divisible by g (x). Only the divisibility by g (x) of the polynomial representing the concatenation (a, a *) of putting the two sequences a and a * end to end is guaranteed.

Il s'ensuit une possible perte d'efficacité du décodeur puisque celui-ci n'est pas informé de l'état qu'avait le codeur à l'instant marquant la fin du calcul de b et le début du calcul de c.  It follows a possible loss of efficiency of the decoder since it is not informed of the state that had the encoder at the moment marking the end of the calculation of b and the beginning of the calculation of c.

Aucun des articles cités ne proposent un choix effectif d'entrelaceur.  None of the cited articles offer an effective choice of interleaver.

<Desc/Clms Page number 7> <Desc / Clms Page number 7>

La présente invention entend remédier à ces inconvénients en proposant, d'une part, des familles d'entrelaceurs qui garantissent le retour à zéro à la fin de la séquence c, lorsque la séquence b retourne à zéro et, d'autre part, en proposant un choix d'entrelaceurs plus large que celui proposé par les articles cités ci-dessus.  The present invention intends to remedy these drawbacks by proposing, on the one hand, families of interleavers which guarantee the return to zero at the end of the sequence c, when the sequence b returns to zero and, on the other hand, proposing a wider choice of interlacers than the one proposed by the articles cited above.

A cet effet, selon un premier aspect, la présente invention vise un procédé de codage caractérisé en ce que : 1/ilil prend en compte : - un entier prédéterminé M1, égal ou supérieur à 2, - un nombre K, supérieur ou égal à 2, de séquences a, (i=1,...,K) de données binaires représentatives d'une grandeur physique, chaque séquence a, possédant : # une représentation polynomiale a,(x) multiple d'un polynôme g,(x) prédéterminé, et # un nombre de données binaires égal au produit d'un nombre entier M quelconque par l'entier NO, plus petit

Figure img00070001

entier tel que le polynôme V +1 soit divisible par chacun des polynômes g,(x) ; 2/ il comporte une première opération de production d'un nombre K*M1 de
Figure img00070002

séquences dites permutées , a,*, (i=1,...,K ; j=1,...,M1), chaque séquence a,,* - étant obtenue par une permutation de la séquence a, correspondante, ladite permutation étant, dans une représentation où les données binaires de chaque séquence a, sont écrites, ligne par ligne, dans un tableau à NO colonnes et M lignes, la résultante d'un nombre quelconque de permutations dites élémentaires qui, chacune : # soit a la propriété de transformer le code cyclique de longueur NO et de polynôme générateur g,(x) en un code
Figure img00070003

cyclique équivalent de polynôme générateur g,j{x) pouvant être égal à g,(x), et agit par permutation sur les NO colonnes du tableau représentant a,, For this purpose, according to a first aspect, the present invention aims a coding method characterized in that 1 / ilil it takes into account: - a predetermined integer M1, equal to or greater than 2, - a number K, greater than or equal to 2, of sequences a, (i = 1, ..., K) of binary data representative of a physical quantity, each sequence a, having: # a polynomial representation a, (x) multiple of a polynomial g, ( x), and # a number of binary data equal to the product of any integer M by the integer NO, smaller
Figure img00070001

integer such that the polynomial V +1 is divisible by each of the polynomials g, (x); 2 / it comprises a first operation of producing a number K * M1 of
Figure img00070002

sequences said permuted, a, *, (i = 1, ..., K; j = 1, ..., M1), each sequence a ,, * - being obtained by a permutation of the sequence a, corresponding, said permutation being, in a representation where the binary data of each sequence a, are written, line by line, in an array with NO columns and M lines, the resultant of any number of so-called elementary permutations which, each: # is a the property of transforming the cyclic code of length NO and generator polynomial g, (x) into a code
Figure img00070003

cyclic equivalent of generator polynomial g, j {x) may be equal to g, (x), and acts by permutation on the NO columns of the array representing a,

<Desc/Clms Page number 8><Desc / Clms Page number 8>

# soit est une permutation quelconque des symboles d'une colonne dudit tableau ; et - possédant, en conséquence, une représentation polynomiale a,,*(x) qui est égale à un produit polynomial c,,(x)g,,(x), - au moins une séquence permutée aij* étant différente de la séquence a, correspondante, 3/ il comporte une deuxième opération de production de M1 séquences

Figure img00080001

redondantes dont la représentation polynomiale est égale à E f,,(x) cij(x), pour j=1,...,M9, chaque polynôme f,,(x) étant un polynôme de degré au plus égal au degré du polynôme g,J(x) de mêmes indices i et j. # is any permutation of the symbols of a column of that array; and - having, accordingly, a polynomial representation a ,, * (x) which is equal to a polynomial product c ,, (x) g ,, (x), - at least one permuted sequence aij * being different from the sequence a, corresponding, 3 / it comprises a second operation of production of M1 sequences
Figure img00080001

redundant whose polynomial representation is equal to E f ,, (x) cij (x), for j = 1, ..., M9, each polynomial f ,, (x) being a polynomial of degree at most equal to the degree of polynomial g, J (x) of the same indices i and j.

Ci-dessus ont été introduites, dans une représentation où les données binaires de la séquence a sont classées dans un tableau de NO colonnes et de M lignes, les successions de permutations prises dans l'ensemble de permutations comportant, d'une part, les automorphismes du code cyclique binaire de longueur NO et de polynôme générateur g(x), permutant entre elles au moins deux des NO colonnes du tableau et, d'autre part, les permutations travaillant uniquement sur des données d'une même colonne et permutant entre elles au moins deux desdites données.  Above are introduced, in a representation where the binary data of the sequence a are classified in a table of NO columns and M lines, the succession of permutations taken in the set of permutations comprising, on the one hand, the automorphisms of the binary cyclic code of length NO and of generator polynomial g (x), permuting between them at least two of the NO columns of the array and, on the other hand, permutations working only on data of the same column and permutating between they at least two of said data.

Les inventeurs ont découvert que toutes ces successions de permutations et seulement celles-là, garantissent que pour tout polynôme a(x) dont la division par g(x) laisse un reste nul, le polynôme permuté a*(x) ait la même propriété.  The inventors have discovered that all these permutations, and only these, guarantee that for every polynomial a (x) whose division by g (x) leaves a zero remainder, the permuted polynomial a * (x) has the same property. .

Pour l'étude des conditions régissant le choix des g,,, le lecteur pourra se reporter à la page 234 du livre de Mme F. J. MAC WILLIAMS et M. N. J.A. SLOANE "The theory or error-correcting codes" publiée par l'éditeur North-Holland en 1977 et dont la septième impression a eu lieu en 1992).  For the study of the conditions governing the choice of g ,,, the reader will be able to refer to the page 234 of the book of Mrs. FJ MAC WILLIAMS and MNJA SLOANE "The theory or error-correcting codes" published by the publisher North-Holland in 1977 and whose seventh printing took place in 1992).

L'ensemble des choix décrits dans la présente invention comporte les entrelaceurs exposés dans les deux articles mentionnés ci-dessus. Ainsi les performances exprimées en termes de taux d'erreur en fonction du rapport signal/bruit peuvent être améliorées sans augmenter la complexité du turbocodeur ni celle du turbodécodeur.  All the choices described in the present invention include the interleavers exposed in the two articles mentioned above. Thus the performance expressed in terms of error rate as a function of the signal / noise ratio can be improved without increasing the complexity of the turbo encoder or that of the turbo decoder.

<Desc/Clms Page number 9> <Desc / Clms Page number 9>

Selon un deuxième aspect, la présente invention vise un procédé de codage caractérisé en ce que : 1/ilil prend en compte : - un entier prédéterminé M1, égal ou supérieur à 2,

Figure img00090001

- un nombre K, supérieur ou égal à 2, de séquences a, (i=1,...,K) de données binaires représentatives d'une grandeur physique, chaque séquence a, possédant : # une représentation polynomiale a,(x) multiple d'un polynôme g,(x) prédéterminé et sans facteurs polynomiaux multiples, et # un nombre de données binaires égal au produit d'un nombre entier impair M quelconque par l'entier NO, plus petit entier tel que le polynôme xN0+1 soit divisible par chacun des polynômes g,(x) ; 2/ il comporte une première opération de production d'un nombre K*M1 de
Figure img00090002

séquences dites permutées , a,,*, (i=1,...,K ; j=1,...,M9), chaque séquence a,,* possédant une représentation polynomiale égale à a,,*(x)=a,*(xe) modulo (x"+1), où - n est le produit du nombre M par l'entier NO, - e,, est un nombre relativement premier avec n
Figure img00090003

- cI} est le quotient de a,,*(x) par g,J(x), - le polynôme g,,(x) est le polynôme générateur du plus petit code cyclique de longueur NO contenant le polynôme g1(xeIJ) modulo (xN0+1), au moins une séquence permutée aIJ* étant différente de la séquence a, correspondante ; 3/ il comporte une deuxième opération de production de M1 séquences redondantes dont la représentation polynomiale est égale à E f,,(x) c,,(x), pour j=1,...,M1, chaque polynôme f,,(x) étant un polynôme prédéterminé de degré au plus égal au degré du polynôme g,,(x) de mêmes indices i et j. According to a second aspect, the present invention aims at a coding method characterized in that: 1 / it takes into account: a predetermined integer M1, equal to or greater than 2,
Figure img00090001

a number K, greater than or equal to 2, of sequences a, (i = 1, ..., K) of binary data representative of a physical quantity, each sequence a, having: # a polynomial representation a, (x ) multiple of a predetermined polynomial g, (x) and without multiple polynomial factors, and # a number of binary data equal to the product of an odd integer M by the integer NO, smaller integer such that the polynomial xN0 +1 is divisible by each of the polynomials g, (x); 2 / it comprises a first operation of producing a number K * M1 of
Figure img00090002

sequences called permuted, a ,, *, (i = 1, ..., K; j = 1, ..., M9), each sequence a ,, * having a polynomial representation equal to a ,, * (x) = a, * (xe) modulo (x "+1), where - n is the product of the number M by the integer NO, - e ,, is a relatively prime number with n
Figure img00090003

- cI} is the quotient of a ,, * (x) by g, J (x), - the polynomial g ,, (x) is the generating polynomial of the smallest cyclic code of length NO containing the polynomial g1 (xeIJ) modulo (xN0 + 1), at least one permuted sequence aIJ * being different from the corresponding sequence a; 3 / it comprises a second operation of production of M1 redundant sequences whose polynomial representation is equal to E f ,, (x) c ,, (x), for j = 1, ..., M1, each polynomial f ,, (x) being a predetermined polynomial of degree at most equal to the degree of the polynomial g ,, (x) of the same indices i and j.

On observe ici que l'on dit, alors, que e appartient au cycle de 2, modulo M.NO.  We observe here that we say, then, that e belongs to the cycle of 2, modulo M.NO.

<Desc/Clms Page number 10> <Desc / Clms Page number 10>

Grâce à ces dispositions, la plupart des colonnes du tableau peuvent être déplacées par permutation, d'une part, et, dans ce choix restreint, la distance minimale du turbocode est plus facilement analysable et donc peut être optimisée, d'autre part.  With these provisions, most of the columns of the table can be moved by permutation, on the one hand, and in this restricted choice, the minimum distance of the turbocode is more easily analyzable and therefore can be optimized, on the other hand.

Ce deuxième aspect de l'invention présente les mêmes avantages que le premier aspect.  This second aspect of the invention has the same advantages as the first aspect.

Les inventeurs ont observé que la mise en oeuvre du procédé de la présente invention, dans chacun de ses aspects, tels qu'ils sont exposé cidessus, avait pour avantage que toute estimation d'erreur par le décodeur correspondant converge. Le cas où l'estimation d'erreur ne converge pas est donc exclus par la mise en #uvre de la présente invention.  The inventors have observed that the implementation of the method of the present invention, in each of its aspects, as described above, had the advantage that any error estimation by the corresponding decoder converges. The case where the error estimation does not converge is therefore excluded by the implementation of the present invention.

Selon des caractéristiques particulières, au cours de la première opération de production, toutes les valeurs des exposants eIJ possédant la même valeur de l'indice j sont identiques.  According to particular characteristics, during the first production operation, all the values of the exponents eIJ having the same value of the index j are identical.

Grâce à ces dispositions, le procédé de codage visé par la présente invention permet d'effectuer tous les entrelacements à j fixé de la même façon. Il est donc de réalisation simple.  Thanks to these provisions, the coding method targeted by the present invention makes it possible to carry out all the interleaving operations that are fixed in the same way. It is therefore simple realization.

Selon des caractéristiques particulières, au cours de la première opération de production, toutes les valeurs des exposants eIJ sont égales à une puissance de 2.  According to particular characteristics, during the first production operation, all the exponent values eIJ are equal to a power of 2.

Grâce à cette disposition, les polynômes gIJ sont tous identiques.  With this arrangement, the polynomials gIJ are all identical.

Selon des caractéristiques particulières, le procédé de codage visé par la présente invention, tel que succinctement exposé ci-dessus comporte une opération de transmission d'une part des séquences a , et, d'autre part, d'un sous-ensemble des données des autres séquences.  According to particular features, the coding method targeted by the present invention, as succinctly described above, comprises a transmission operation on the one hand of the sequences a, and, on the other hand, a subset of the data. other sequences.

Grâce à ces dispositions, le rendement du procédé est augmenté.  Thanks to these provisions, the efficiency of the process is increased.

Selon un troisième aspect, la présente invention vise un dispositif de codage caractérisé en ce qu'il comporte un moyen de traiement adapté à : 1/ prendre en compte : - un entier prédéterminé M1, égal ou supérieur à 2,  According to a third aspect, the present invention aims a coding device characterized in that it comprises a means of processing adapted to: 1 / take into account: a predetermined integer M1, equal to or greater than 2,

<Desc/Clms Page number 11> <Desc / Clms Page number 11>

Figure img00110001

- un nombre K, supérieur ou égal à 2, de séquences a, (i=1,...,K) de données binaires représentatives d'une grandeur physique, chaque séquence a, possédant : # une représentation polynomiale a,(x) multiple d'un polynôme g,(x) prédéterminé, et # un nombre de données binaires égal au produit d'un nombre entier M quelconque par l'entier NO, plus petit entier tel que le polynôme xN0+1 soit divisible par chacun des polynômes g,(x) ; 2/ production d'un nombre K*M1 de séquences dites permutées , aIJ*,
Figure img00110002

(i=1,...,K ; j=1,...,M9), chaque séquence a,* - étant obtenue par une permutation de la séquence a, correspondante, ladite permutation étant, dans une représentation où les données binaires de chaque séquence a, sont écrites, ligne par ligne, dans un tableau à NO colonnes et M lignes, la résultante d'un nombre quelconque de permutations dites élémentaires qui, chacune : # soit a la propriété de transformer le code cyclique de longueur NO et de polynôme générateur g,(x) en un code cyclique équivalent de polynôme générateur gIJ(x) pouvant être égal à g,(x), et agit par permutation sur les NO colonnes du tableau représentant a,, # soit est une permutation quelconque des symboles d'une colonne dudit tableau ; et - possédant, en conséquence, une représentation polynomiale a,,*(x) qui est égale à un produit polynomial c,,(x)g,,(x), - au moins une séquence permutée a,,* étant différente de la séquence a, correspondante, 3/ produire M1 séquences redondantes dont la représentation polynomiale est
Figure img00110003

égale à X f,,(x) c,!(x), pour/=1 M1, chaque polynôme f,,(x) étant un polynôme de degré au plus égal au degré du polynôme g,,(x) de mêmes indices i etj.
Figure img00110001

a number K, greater than or equal to 2, of sequences a, (i = 1, ..., K) of binary data representative of a physical quantity, each sequence a, having: # a polynomial representation a, (x ) multiple of a predetermined polynomial g, (x), and # a number of binary data equal to the product of any integer M by the integer NO, smaller integer such that the polynomial xN0 + 1 is divisible by each polynomials g, (x); 2 / production of a number K * M1 of sequences called permuted, aIJ *,
Figure img00110002

(i = 1, ..., K; j = 1, ..., M9), each sequence a, * - being obtained by a permutation of the sequence a, corresponding, said permutation being, in a representation where the data bits of each sequence a, are written, line by line, in an array with NO columns and M rows, the resultant of any number of so-called elementary permutations which, each: # has the property of transforming the cyclic code of length NO and of generator polynomial g, (x) into an equivalent cyclic code of generator polynomial gIJ (x) which may be equal to g, (x), and acts by permutation on the NO columns of the array representing a ,, # is a permutation any symbols of a column of said array; and - having, accordingly, a polynomial representation a ,, * (x) which is equal to a polynomial product c ,, (x) g ,, (x), - at least one permuted sequence a ,, * being different from the sequence a, corresponding, 3 / produce M1 redundant sequences whose polynomial representation is
Figure img00110003

equals X f ,, (x) c,! (x), for / = 1 M1, each polynomial f ,, (x) being a polynomial of degree at most equal to the degree of the polynomial g ,, (x) of the same indices i andj.

<Desc/Clms Page number 12> <Desc / Clms Page number 12>

Selon un quatrième aspect, la présente invention vise un dispositif de codage caractérisé en ce qu'il comporte un moyen de traitement adapté à : 1/ prendre en compte : - un entier prédéterminé M1, égal ou supérieur à 2,

Figure img00120001

- un nombre K, supérieur ou égal à 2, de séquences a, (i=1,...,K) de données binaires représentatives d'une grandeur physique, chaque séquence a, possédant : # une représentation polynomiale a,(x) multiple d'un polynôme g,(x) prédéterminé et sans facteurs polynomiaux multiples, et # un nombre de données binaires égal au produit d'un nombre entier impair M quelconque par l'entier NO, plus petit entier tel que le polynôme xN0+1 soit divisible par chacun des polynômes g,(x) ;
Figure img00120002

2/ produire un nombre K*M1 de séquences dites permutées , a,,*, (i=1,...,K ; j=1,...,M1), chaque séquence a,J* possédant une représentation polynomiale égale à a/fx)=a/*(xe'1) modulo (x"+1), où - n est le produit du nombre M par l'entier NO, - EIJ est un nombre relativement premier avec n
Figure img00120003

- c,, est le quotient de a/(x) par g,,(x), - le polynôme g,,(x) est le polynôme générateur du plus petit code cyclique de longueur NO contenant le polynôme gI(xeij) modulo
Figure img00120004

(,/J +1 ), au moins une séquence permutée aIJ* étant différente de la séquence a, correspondante ; 3/ produire M1 séquences redondantes dont la représentation polynomiale est
Figure img00120005

égale à E f,,(x) c,J(x), pour j=1 ,...,M1, chaque polynôme "lx) étant un polynôme prédéterminé de degré au plus égal au degré du polynôme gIJ(x) de mêmes indices /et j. According to a fourth aspect, the present invention aims a coding device characterized in that it comprises a processing means adapted to: 1 / take into account: a predetermined integer M1, equal to or greater than 2,
Figure img00120001

a number K, greater than or equal to 2, of sequences a, (i = 1, ..., K) of binary data representative of a physical quantity, each sequence a, having: # a polynomial representation a, (x ) multiple of a predetermined polynomial g, (x) and without multiple polynomial factors, and # a number of binary data equal to the product of an odd integer M by the integer NO, smaller integer such that the polynomial xN0 +1 is divisible by each of the polynomials g, (x);
Figure img00120002

2 / to produce a number K * M1 of sequences called permuted, a ,, *, (i = 1, ..., K; j = 1, ..., M1), each sequence a, J * having a polynomial representation equal to a / fx) = a / * (xe'1) modulo (x "+1), where - n is the product of the number M by the integer NO, - EIJ is a relatively prime number with n
Figure img00120003

- c ,, is the quotient of a / (x) by g ,, (x), - the polynomial g ,, (x) is the generating polynomial of the smallest cyclic code of length NO containing the polynomial gI (xeij) modulo
Figure img00120004

(, / J +1), at least one permuted sequence aIJ * being different from the corresponding sequence a; 3 / produce M1 redundant sequences whose polynomial representation is
Figure img00120005

equal to E f ,, (x) c, J (x), for j = 1, ..., M1, each polynomial "1x) being a predetermined polynomial of degree at most equal to the degree of the polynomial gIJ (x) of same indices / and j.

Selon un cinquième aspect, la présente invention vise un procédé de décodage caractérisé en ce que : 1/ il prend en compte :  According to a fifth aspect, the present invention aims a decoding method characterized in that: 1 / it takes into account:

<Desc/Clms Page number 13><Desc / Clms Page number 13>

- un entier prédéterminé M1, égal ou supérieur à 2, - un nombre K, supérieur ou égal à 2, de séquences a, (/=1,...,K) de données représentatives d'une grandeur physique, chaque séquence a, possédant : # une représentation polynomiale a,(x) multiple d'un polynôme g,(x) prédéterminé, et # un nombre de données binaires égal au produit d'un nombre entier M quelconque par l'entier NO, plus petit entier tel que le polynôme xN0+1 soit divisible par chacun des polynômes g,(x) ; 2/ il comporte une opération de turbodécodage parallèle de K séquences de symboles mettant en #uvre les polynômes diviseurs g,,(x).  a predetermined integer M1, equal to or greater than 2, a number K, greater than or equal to 2, of sequences a, (/=1, ..., K) of data representative of a physical quantity, each sequence has , having: # a polynomial representation a, (x) multiple of a predetermined polynomial g, (x), and # a number of binary data equal to the product of any integer M by the integer NO, smaller integer such that the polynomial xN0 + 1 is divisible by each of the polynomials g, (x); 2 / it comprises a parallel turbodecoding operation of K symbol sequences implementing the divisor polynomials g ,, (x).

3/ il comporte, pour chaque a,, M1 opérations de permutation, dont au moins une n'est pas l'identité , chaque permutation étant, dans une représentation où les données binaires de chaque séquence a, sont écrites, ligne par ligne, dans un tableau à NO colonnes et M lignes, la résultante d'un nombre quelconque de permutations dites élémentaires qui, chacune : # soit a la propriété de transformer le code cyclique de longueur NO et de polynôme générateur g,(x) en un code cyclique équivalent de polynôme générateur g,,(x) pouvant être égal à g,(x), et agit par permutation sur les NO colonnes du tableau représentant a,, # soit est une permutation quelconque des symboles d'une colonne dudit tableau. 3 / it comprises, for each a ,, M1 operations of permutation, of which at least one is not the identity, each permutation being, in a representation where the binary data of each sequence a, are written line by line, in a table with NO columns and M rows, the resultant of any number of so-called elementary permutations, each of which: # has the property of transforming the cyclic code of length NO and of generator polynomial g, (x) into a code cyclic equivalent of generator polynomial g ,, (x) being able to be equal to g, (x), and acts by permutation on the NO columns of the array representing a ,, # is any permutation of the symbols of a column of said array.

Selon un sixième aspect, la présente invention vise un procédé de décodage caractérisé en ce que : 1/ il prend en compte : - un entier prédéterminé M1, égal ou supérieur à 2,

Figure img00130001

- un nombre K, supérieur ou égal à 2, de séquences a, (i=1,...,K) de données représentatives d'une grandeur physique, chaque séquence a, possédant : According to a sixth aspect, the present invention aims a decoding method characterized in that: 1 / it takes into account: a predetermined integer M1, equal to or greater than 2,
Figure img00130001

a number K, greater than or equal to 2, of sequences a, (i = 1, ..., K) of data representative of a physical quantity, each sequence a, having:

<Desc/Clms Page number 14><Desc / Clms Page number 14>

# une représentation polynomiale a,(x) multiple d'un polynôme g,(x) prédéterminé et sans facteurs polynomiaux multiples, et # un nombre de données binaires égal au produit d'un nombre entier impair M quelconque par l'entier NO, plus petit entier tel que le polynôme xN0+1 soit divisible par chacun des polynômes g,(x) ; 2/ il comporte une opération de turbodécodage parallèle de K séquences de symboles mettant en #uvre les polynômes diviseurs g,,(x), 3/ ladite opération de turbodécodage parallèle comportant une opération de

Figure img00140001

permutation produisant des séquences dites permutées , a,,*, (i=1,...,K; ;'=1,...,M7), chaque séquence permutée a,,* possédant une représentation polynomiale égale à alJ *(x)=a,*() modulo (x"+1), où : - n est le produit du nombre M par l'entier NO, eIJ est un nombre relativement premier avec n - cI} est le quotient de aIJ*(x) par g,,(x), - le polynôme g,,(x) est le polynôme générateur du plus petit code cyclique de longueur NO contenant le polynôme gI(xeIJ) modulo
Figure img00140002

(>1' +1 ), au moins une séquence permutée a,,* étant différente de la séquence a, correspondante. # a polynomial representation a, (x) multiple of a predetermined polynomial g, (x) and without multiple polynomial factors, and # a number of binary data equal to the product of an odd integer M by the integer NO, smaller integer such that the polynomial xN0 + 1 is divisible by each of the polynomials g, (x); 2 / it comprises a parallel turbodecoding operation of K symbol sequences implementing the divide polynomials g ,, (x), 3 / said parallel turbodecoding operation comprising a
Figure img00140001

permutation producing sequences called permuted, a ,, *, (i = 1, ..., K;; '= 1, ..., M7), each permuted sequence a ,, * having a polynomial representation equal to alJ * (x) = a, * () modulo (x "+1), where: - n is the product of the number M by the integer NO, eIJ is a relatively prime number with n - cI} is the quotient of aIJ * (x) by g ,, (x), - the polynomial g ,, (x) is the generator polynomial of the smallest cyclic code of length NO containing the polynomial gI (xeIJ) modulo
Figure img00140002

(> 1 '+1), at least one permuted sequence a ,, * being different from the corresponding sequence a.

Selon un septième aspect, la présente invention vise un dispositif de décodage caractérisé en ce qu'il comporte un moyen de traitement adapté : 1/ à prendre en compte : - un entier prédéterminé M1, égal ou supérieur à 2, - un nombre K, supérieur ou égal à 2, de séquences a, (i=1,...,K) de données représentatives d'une grandeur physique, chaque séquence a, possédant : # une représentation polynomiale a,(x) multiple d'un polynôme g,(x) prédéterminé, et # un nombre de données binaires égal au produit d'un nombre entier M quelconque par l'entier NO, plus petit  According to a seventh aspect, the present invention aims a decoding device characterized in that it comprises a suitable processing means: 1 / to take into account: a predetermined integer M1, equal to or greater than 2, a number K, greater than or equal to 2, of sequences a, (i = 1, ..., K) of data representative of a physical quantity, each sequence a, having: # a polynomial representation a, (x) multiple of a polynomial g, (x) predetermined, and # a number of binary data equal to the product of any integer M by the integer NO, smaller

<Desc/Clms Page number 15><Desc / Clms Page number 15>

entier tel que le polynôme xN0+1 soit divisible par chacun des polynômes g,(x) ; 2/ à effectuer une opération de turbodécodage parallèle de K séquences de symboles mettant en #uvre les polynômes diviseurs g,,(x).  integer such that the polynomial xN0 + 1 is divisible by each of the polynomials g, (x); 2 / to perform a parallel turbodecoding operation of K symbol sequences implementing the divide polynomials g ,, (x).

3/ à effectuer, pour chaque a,, M1 opérations de permutation, dont au moins une n'est pas l'identité, chaque permutation étant, dans une représentation où les données binaires de chaque séquence a, sont écrites, ligne par ligne, dans un tableau à NO colonnes et M lignes, la résultante d'un nombre quelconque de permutations dites élémentaires qui, chacune : # soit a la propriété de transformer le code cyclique de longueur NO et de polynôme générateur g,(x) en un code cyclique équivalent de polynôme générateur gij(x) pouvant être égal à g,(x), et agit par permutation sur les NO colonnes du tableau représentant a,, # soit est une permutation quelconque des symboles d'une colonne dudit tableau. 3 / to perform, for each a ,, M1 permutation operations, at least one of which is not the identity, each permutation being, in a representation where the binary data of each sequence a, are written, line by line, in a table with NO columns and M rows, the resultant of any number of so-called elementary permutations, each of which: # has the property of transforming the cyclic code of length NO and of generator polynomial g, (x) into a code cyclic equivalent of generator polynomial gij (x) may be equal to g, (x), and acts by permutation on the NO columns of the array representing a ,, # is any permutation of the symbols of a column of said array.

Selon un huitième aspect, la présente invention vise un dispositif de décodage caractérisé en ce qu'il comporte un moyen de traitement adapté : 1/ à prendre en compte : - un entier prédéterminé M1, égal ou supérieur à 2,

Figure img00150001

- un nombre K, supérieur ou égal à 2, de séquences a, (i=1,...,K) de données représentatives d'une grandeur physique, chaque séquence a, possédant : # une représentation polynomiale a,(x) multiple d'un polynôme g,(x) prédéterminé et sans facteurs polynomiaux multiples, et . un nombre de données binaires égal au produit d'un nombre entier impair M quelconque par l'entier NO, plus petit entier tel que le polynôme xN0+1 soit divisible par chacun des polynômes g,(x) ; 2/ à effectuer une opération de turbodécodage parallèle de K séquences de symboles mettant en #uvre les polynômes diviseurs g,,(x), According to an eighth aspect, the present invention aims a decoding device characterized in that it comprises a suitable processing means: 1 / to take into account: a predetermined integer M1, equal to or greater than 2,
Figure img00150001

a number K, greater than or equal to 2, of sequences a, (i = 1, ..., K) of data representative of a physical quantity, each sequence a, having: # a polynomial representation a, (x) multiple of a predetermined polynomial g, (x) and without multiple polynomial factors, and. a number of binary data equal to the product of any odd integer M by the integer NO, smaller integer such that the polynomial xN0 + 1 is divisible by each of the polynomials g, (x); 2 / performing a parallel turbodecoding operation of K symbol sequences implementing the divide polynomials g ,, (x),

<Desc/Clms Page number 16><Desc / Clms Page number 16>

3/ à effectuer une opération de permutation produisant des séquences dites

Figure img00160001

permutées , a,,*, (i=1 ,...,K,. j=1,...,Ml ), chaque séquence permutée a,l* possédant une représentation polynomiale égale à aIJ*(x)=a*(xe'1) modulo (x"+1), où : - n est le produit du nombre M par l'entier NO, - e,, est un nombre relativement premier avec n
Figure img00160002

- ci, est le quotient de a;,*(x) par g,,(x), - le polynôme gIJ(x) est le polynôme générateur du plus petit code cyclique de longueur NO contenant le polynôme gI(xeij) modulo
Figure img00160003

(,,(J +1 ), au moins une séquence permutée aIJ* étant différente de la séquence a, correspondante. 3 / to perform a permutation operation producing so-called sequences
Figure img00160001

permuted, a ,, *, (i = 1, ..., K, j = 1, ..., M1), each permuted sequence a, l * having a polynomial representation equal to aIJ * (x) = a * (xe'1) modulo (x "+1), where: - n is the product of the number M by the integer NO, - e ,, is a relatively prime number with n
Figure img00160002

- ci, is the quotient of a;, * (x) by g ,, (x), - the polynomial gIJ (x) is the generating polynomial of the smallest cyclic code of length NO containing the polynomial gI (xeij) modulo
Figure img00160003

(,, (+1), at least one permuted sequence aIJ * being different from the corresponding sequence a.

L'invention vise aussi : - un moyen de stockage d'information lisible par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique, caractérisé en ce qu'il permet la mise en #uvre du procédé de l'invention tel que succinctement exposé ci-dessus, et - un moyen de stockage d'information amovible, partiellement ou totalement, lisible par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique, caractérisé en ce qu'il permet la mise en #uvre du procédé de l'invention tel que succinctement exposé ci-dessus.  The invention also relates to: a means for storing information readable by a computer or a microprocessor retaining instructions of a computer program, characterized in that it allows the implementation of the method of the invention such that briefly described above, and a means for storing removable information, partially or totally, readable by a computer or a microprocessor retaining instructions of a computer program, characterized in that it allows the implementation of the method of the invention as succinctly set forth above.

L'invention vise aussi : - un dispositif de traitement de signaux représentatifs de parole, qui comporte un dispositif tel que succinctement exposé ci-dessus, - un dispositif de transmission de données comportant un émetteur adapté à mettre en #uvre un protocole de transmission par paquets, qui comporte un dispositif tel que succinctement exposé ci-dessus, - un dispositif de transmission de données comportant un émetteur adapté à mettre en #uvre le protocole de transmission par paquets ATM (mode de transfert asynchrone, "Asynchronous Transfer Mode"), qui comporte un dispositif tel que succinctement exposé ci-dessus,  The invention also relates to: a signal processing device representative of speech, which comprises a device as briefly described above, a data transmission device comprising a transmitter adapted to implement a transmission protocol by packets, which comprises a device as briefly described above, - a data transmission device comprising a transmitter adapted to implement the ATM packet transmission protocol (asynchronous transfer mode, Asynchronous Transfer Mode), which comprises a device as briefly described above,

<Desc/Clms Page number 17><Desc / Clms Page number 17>

- un dispositif de transmission de données comportant un émetteur adapté à mettre en #uvre le protocole de transmission par paquets, sur un réseau de type ETHERNET (marque déposée), - une station de réseau, qui comporte un dispositif tel que succinctement exposé ci-dessus, - un dispositif de transmission de données comportant un émetteur émettant sur un canal non filaire, qui comporte un dispositif tel que succinctement exposé ci-dessus, et - un dispositif de traitement de séquences de signaux représentatifs d'au plus mille données binaires, qui comporte un dispositif tel que succinctement exposé ci-dessus.  a data transmission device comprising a transmitter adapted to implement the packet transmission protocol, on a network of the ETHERNET type, a network station, which comprises a device as briefly described below; above, - a data transmission device comprising an emitter emitting on a non-wire channel, which comprises a device as briefly described above, and a signal sequence processing device representative of at most one thousand binary data, which comprises a device as succinctly set forth above.

Ces dispositifs de codage et de décodage, ces procédés de codage et de décodage et ces dispositif de traitement de signaux, de transmission de données, de traitement de séquence et ce réseau présentant les mêmes caractéristiques particulières et les mêmes avantages que le procédé de codage tel que succinctement exposé ci-dessus, ces caractéristiques particulières et ces avantages ne sont pas rappelés ici.  These coding and decoding devices, these coding and decoding methods and the signal processing, data transmission, sequence processing and network devices having the same particular characteristics and the same advantages as the coding method such as: as succinctly set forth above, these particular features and advantages are not recalled here.

L'invention sera mieux comprise à la lecture de la description qui va suivre, faite en regard des dessins annexés dans lesquels : - la figure 1 représente, schématiquement, un dispositif électronique incorporant un codeur selon un premier mode de réalisation de la présente invention ; - la figure 2 représente schématiquement un organigramme de fonctionnement d'un codeur selon le premier mode de réalisation de la présente invention, tel qu'illustré en figure 1 ; - la figure 3 représente schématiquement un organigramme décrivant les étapes de détermination d'un entrelaceur mis en oeuvre dans le dispositif illustré en figure 1 ; - la figure 4 représente schématiquement un codeur conforme au deuxième mode de réalisation de la présente invention ; - la figure 5 représente schématiquement la forme générale d'entrelaceurs agissant sur plusieurs séquences de symboles à coder ;  The invention will be better understood on reading the description which follows, given with reference to the accompanying drawings, in which: FIG. 1 is a diagrammatic representation of an electronic device incorporating an encoder according to a first embodiment of the present invention; FIG. 2 diagrammatically represents an operating flow chart of an encoder according to the first embodiment of the present invention, as illustrated in FIG. 1; FIG. 3 diagrammatically represents a flowchart describing the steps for determining an interleaver implemented in the device illustrated in FIG. 1; FIG. 4 diagrammatically represents an encoder according to the second embodiment of the present invention; FIG. 5 schematically represents the general form of interleavers acting on several symbol sequences to be coded;

<Desc/Clms Page number 18><Desc / Clms Page number 18>

- la figure 6 représente une courbe de performances d'exemples particuliers de procédés et de dispositifs conformes au deuxième mode de réalisation de la présente invention, - la figure 7 représente, schématiquement, un dispositif électronique incorporant un codeur selon un deuxième mode de réalisation de la présente invention ; - la figure 8 représente, schématiquement, un organigramme de fonctionnement d'un codeur selon le deuxième mode de réalisation de la présente invention, tel qu'illustré en figure 7 ; -la figure 9 représente, schématiquement, un dispositif de décodage visé par la présente invention.  FIG. 6 represents a performance curve of particular examples of methods and devices according to the second embodiment of the present invention; FIG. 7 is a schematic representation of an electronic device incorporating an encoder according to a second embodiment of FIG. the present invention; FIG. 8 schematically represents an operating flow chart of an encoder according to the second embodiment of the present invention, as illustrated in FIG. 7; FIG. 9 represents, schematically, a decoding device targeted by the present invention.

Dans la description qui va suivre, la première séquence de contrôle sera toujours obtenue à partir des séquences d'information non entrelacées, bien que la portée de l'invention s'étende aussi aux cas général.  In the following description, the first control sequence will always be obtained from non-interlaced information sequences, although the scope of the invention also extends to general cases.

La description de modes de réalisation de l'invention est, cidessous, scindée en deux parties, respectivement dédiées au cas dans lequel une seule séquence de symboles est codée et au cas dans lequel au moins deux séquences de symboles sont simultanément codées.  The description of embodiments of the invention is, below, divided into two parts, respectively dedicated to the case in which a single sequence of symbols is coded and to the case in which at least two sequences of symbols are simultaneously coded.

I- PREMIER MODE DE REALISATION
Dans la description qui va suivre, on appelle "données" aussi bien des symboles représentatifs d'information que des symboles additionnels ou redondants.
I - FIRST EMBODIMENT
In the following description, "data" is understood to be both representative symbols of information and additional or redundant symbols.

Avant d'entamer la description d'un mode particulier de réalisation, les fondements mathématiques de sa mise en oeuvre sont donnés ci-dessous.  Before beginning the description of a particular embodiment, the mathematical foundations of its implementation are given below.

Dans l'invention, g(x), h1(x) et h2(x) étant prédéterminés, on rappelle que l'on souhaite que les séquences b et c, définies respectivement

Figure img00180001

par les divisions b(x) = a(x).hl(x)lg(x) et c(x) = a *(x).h2(x)/g(x), ne présentent aucun reste.
Figure img00180002

A cet effet, g(x) = 1 + Zl=1 a m-1 gox + xm étant un polynôme de degré m prédéterminé, on recherche le plus petit nombre NO tel que g(x) divise In the invention, g (x), h1 (x) and h2 (x) being predetermined, it is recalled that it is desired that the sequences b and c, respectively defined
Figure img00180001

by the divisions b (x) = a (x), h1 (x) 1g (x) and c (x) = a * (x) .h2 (x) / g (x), have no remainder.
Figure img00180002

For this purpose, g (x) = 1 + Z1 = 1a m-1, where x is a polynomial of predetermined degree m, we search for the smallest number NO such that g (x) divides

<Desc/Clms Page number 19><Desc / Clms Page number 19>

le polynôme xN0 - 1. On sait que ce nombre existe. Par exemple pour g(x) = 1 + x + x3, NO = 7.  the polynomial xN0 - 1. We know that this number exists. For example for g (x) = 1 + x + x3, NO = 7.

Puis, en choisissant un nombre M quelconque, on choisit une longueur de séquence a égale à M.NO, ce qui revient à déterminer la longueur (c'est-à-dire le nombre de données binaires) de la séquence u incorporée à la séquence a comme étant égal à M.NO moins le degré de g(x).  Then, by choosing any number M, we choose a sequence length a equal to M.NO, which amounts to determining the length (that is to say the number of binary data) of the sequence u incorporated into the sequence a as being equal to M.NO minus the degree of g (x).

Ainsi, pour former la séquence a, on juxtapose à la séquence u formée de k données binaires u, à transmettre, un nombre de données binaires additionnels égal au degré du polynôme g(x), les données ajoutés garantissant l'absence de reste dans la division de a(x) par g(x).  Thus, to form the sequence a, juxtapose to the sequence u formed of k binary data u, to be transmitted, a number of additional binary data equal to the degree of the polynomial g (x), the added data ensuring the absence of a remainder in the division of a (x) by g (x).

On rappelle que la division effectuée ici se fait, modulo 2, sur les coefficients des puissances croissantes de a(x).  We recall that the division made here is, modulo 2, on the coefficients of the increasing powers of a (x).

A titre d'exemple, si la séquence u est la séquence (1, 0, 0, 1, 0, 0), et la séquence g est la séquence (1, 1, 0, 1), la division s'écrit :

Figure img00190001

ce qui s'écrit aussi : (1, 0, 0, 1, 0, 0, 0, 0, 0) = (1, 1, 0, 1) x (1, 1, 1, 1, 0, 1) + (0, 0, 0, 0, 0, 0, 0, 0, 1), soit encore (1, 0, 0, 1, 0, 0, 0, 0, 1) = (1, 1, 0, 1) x (1, 1, 1, 1, 0, 1), en ajoutant, terme à terme, la séquence de reste (0, 0, 0, 0, 0, 0, 0, 0, 1) à la séquence u d'abord complétée par m "0". By way of example, if the sequence u is the sequence (1, 0, 0, 1, 0, 0), and the sequence g is the sequence (1, 1, 0, 1), the division is written as follows:
Figure img00190001

what is also written: (1, 0, 0, 1, 0, 0, 0, 0, 0) = (1, 1, 0, 1) x (1, 1, 1, 1, 0, 1) + (0, 0, 0, 0, 0, 0, 0, 0, 1), that is to say (1, 0, 0, 1, 0, 0, 0, 0, 1) = (1, 1, 0, 1) x (1, 1, 1, 1, 0, 1), adding, term by term, the remainder sequence (0, 0, 0, 0, 0, 0, 0, 1) to the sequence u first completed by m "0".

Ainsi, en substituant à la séquence u = (1, 0, 0, 1, 0, 0), la séquence a = (1, 0, 0, 1, 0, 0, 0, 0, 1), formée par cette addition, et dont les  Thus, by substituting for the sequence u = (1, 0, 0, 1, 0, 0), the sequence a = (1, 0, 0, 1, 0, 0, 0, 0, 1), formed by this addition, and whose

<Desc/Clms Page number 20><Desc / Clms Page number 20>

premières données binaires sont toutes les données binaires de la séquence u, on garantit la divisibilité du polynôme a(x) par le polynôme g(x) associé à la

Figure img00200001

séquence g = (1, 1, 0, 1), et, par conséquent de a(x).h1(x) par g(x), quelle que soit la séquence hi associée au polynôme hi(x), ce qui fournit la définition de la séquence b par b(x) = a(x).h,(x)lg(x). first binary data are all the binary data of the sequence u, we guarantee the divisibility of the polynomial a (x) by the polynomial g (x) associated with the
Figure img00200001

sequence g = (1, 1, 0, 1), and therefore of a (x) .h1 (x) by g (x), whatever the sequence hi associated with the polynomial hi (x), which provides the definition of the sequence b by b (x) = a (x) .h, (x) lg (x).

Pour déterminer la séquence a*(x), qui possède, après permutation, les mêmes données binaires que la séquence a, mais dans un ordre différent, on choisit un entrelaceur dont une représentation peut être donnée de la manière suivante : les données binaires de la séquence a étant classées dans un tableau de NO colonnes et de M lignes, on effectue sur ces données au moins une permutation dans un ensemble de permutations comportant, d'une part, les automorphismes du code cyclique binaire de longueur NO et de polynôme générateur g(x), permutant entre elles au moins deux des NO colonnes du tableau et, d'autre part, les permutations travaillant uniquement sur des données d'une même colonne et permutant entre elles au moins deux desdites données, et seulement une ou des permutations de cet ensemble.  To determine the sequence a * (x), which has, after permutation, the same binary data as the sequence a, but in a different order, we choose an interleaver whose representation can be given in the following way: the binary data of the sequence a being classified in an array of NO columns and M lines, one carries out on these data at least one permutation in a set of permutations comprising, on the one hand, the automorphisms of the binary cyclic code of length NO and generator polynomial g (x), permutating between them at least two of the NO columns of the array and, on the other hand, permutations working only on data of the same column and permutating between them at least two of said data, and only one or more permutations of this set.

En effet, les inventeurs ont découvert que seules les permutations qui peuvent être ainsi représentées garantissent que pour tout polynôme a(x) dont la division par g(x) ne présente aucun reste, le polynôme permuté a*(x) possède une division par g(x) qui ne présente aucun reste.  In fact, the inventors have discovered that only the permutations that can be so represented guarantee that for every polynomial a (x) whose division by g (x) has no remainder, the permuted polynomial a * (x) has a division by g (x) which has no remainder.

Dans une telle succession, on peut, par exemple dans le cas où NO = 7 et g(x) =1 + x + x3, trouver successivement : - une permutation des données binaires de la première colonne, - un permutation des données binaires de la troisième colonne, - le remplacement de la deuxième colonne par la quatrième, le remplacement de la quatrième colonne par la deuxième, le remplacement de la cinquième colonne par la sixième et le remplacement de la sixième colonne par la cinquième.  In such a succession, one can, for example in the case where NO = 7 and g (x) = 1 + x + x 3, successively find: - a permutation of the binary data of the first column, - a permutation of the binary data of the third column, - the replacement of the second column by the fourth, the replacement of the fourth column by the second, the replacement of the fifth column by the sixth and the replacement of the sixth column by the fifth.

En ce qui concerne l'automorphisme, en appelant Cg le code cyclique binaire de longueur NO et de polynôme générateur g(x), c'est-à-dire l'ensemble des multiples de g(x), modulo xN0-1, on considère les permutations  With respect to automorphism, by calling Cg the binary cyclic code of length NO and of generator polynomial g (x), that is to say the set of multiples of g (x), modulo xN0-1, we consider the permutations

<Desc/Clms Page number 21><Desc / Clms Page number 21>

des coordonnées de ce code qui transforment tout mot de ce code en un autre mot de ce code. L'ensemble des permutations de coordonnées qui possèdent cette propriété a une structure de groupe et est appelé le groupe d'automorphisme de Cg.  coordinates of this code which transform any word of this code into another word of this code. The set of coordinate permutations that have this property has a group structure and is called the Cg automorphism group.

Pour plus de détails, le lecteur pourra se référer à l'ouvrage de Madame F. J. MAC WILLIAMS et Monsieur N. J. A. SLOANE, "The theory of error-correcting codes" publié par l'éditeur North-Holland en 1977.  For more details, the reader will be able to refer to the work of Mrs. F. J. MAC WILLIAMS and Mr. N. J. A. SLOANE, "The theory of error-correcting codes" published by the publisher North-Holland in 1977.

Parmi toutes ces permutations, les inventeurs ont sélectionné les permutations suivantes, qui présentent l'avantage de ne constituer qu'une petite famille dont tous les membres peuvent être testés pour choisir la permutation la plus performante.  Among all these permutations, the inventors have selected the following permutations, which have the advantage of being a small family of which all members can be tested to choose the most efficient permutation.

Comme mentionné supra, on choisit M impair et g(x) tel que le nombre NO correspondant soit aussi impair. En écrivant les puissances successives de 2 modulo M.NO, on obtient ce qui s'appelle le cycle de 2, modulo M.NO. Dans ce cycle, en choisissant n'importe quel terme e, on effectue la permutation suivante : le polynôme a(x) donnant, après permutation le polynôme a*(x),

Figure img00210001

celui-ci est défini par a*(x) = a(xe), ainsi, si a=(ao, a, a2, aM NO-1), la première donnée binaire de a* est ao, la seconde af, la troisième a2f, f étant l'inverse de e, modulo M.NO, et les multiples de f étant, eux-mêmes calculés modulo M. N0. As mentioned above, we choose M odd and g (x) such that the corresponding NO number is also odd. By writing the successive powers of 2 modulo M.NO, we obtain what is called the cycle of 2, modulo M.NO. In this cycle, by choosing any term e, we carry out the following permutation: the polynomial a (x) giving, after permutation, the polynomial a * (x),
Figure img00210001

this is defined by a * (x) = a (xe), so, if a = (ao, a, a2, aM NO-1), the first binary of a * is ao, the second af, the third a2f, f being the inverse of e, modulo M.NO, and the multiples of f being, themselves calculated modulo M. N0.

Par exemple en reprenant g(x) = 1 + x + x3, et donc NO = 7, et en choisissant M = 5, on a M. NO = 35. Le cycle de 2 s'écrit alors : [1, 2, 4, 8, 16, 32, 29, 23, 11, 22, 9, 18].  For example, by taking g (x) = 1 + x + x3, and hence NO = 7, and choosing M = 5, we have M. NO = 35. The cycle of 2 is then written as: [1, 2, 4, 8, 16, 32, 29, 23, 11, 22, 9, 18].

En prenant, par exemple e = 28 = 11, f vaudra 16 et la séquence a* commence par les données binaires : ao, a16, a32, a13, a29, a10, etc...  Taking, for example, e = 28 = 11, f will be worth 16 and the sequence a * begins with the binary data: ao, a16, a32, a13, a29, a10, etc.

Ces permutations décrites ci-dessus et représentables par a*(x) = a(xe) où e est dans le cycle de 2 modulo M.NO, a(xe) étant pris modulo xM N0 -1, forment une petite famille dont tous les membres peuvent être testés pour choisir le plus performant.  These permutations described above and representable by a * (x) = a (xe) where e is in the cycle of 2 modulo M.NO, a (xe) being taken modulo xM N0 -1, form a small family of which all members can be tested to choose the best performer.

La logique de sélection est la suivante : on choisit d'abord g(x) de degré m non divisible par un polynôme carré. Ce choix fixe la valeur de NO  The selection logic is as follows: we first choose g (x) of degree m not divisible by a square polynomial. This choice sets the value of NO

<Desc/Clms Page number 22><Desc / Clms Page number 22>

comme étant le plus petit entier tel que g(x) divise xN0-1. En outre, le fait que le polynôme g(x) ne soit pas divisible par un polynôme carré implique que NO soit un nombre impair. On choisit alors hi(x) et h2(x) de degré quelconque mais préférentiellement au plus égal au degré m de g(x) car le maximum des degrés de ces trois polynômes g(x), hi(x) et h2(x) est un élément déterminant dans la complexité du décodeur. On choisit ensuite un entier impair M et on calcule le cycle de 2, modulo M.NO. On choisit alors un élément e dans ce cycle de 2 pour

Figure img00220001

spécifier a*(x) = a(xe) modulo )('vfNO-1~1 à partir de a(x) et on effectue diverses opérations de test sur le turbocode associé à l'entrelaceur ainsi défini. as the smallest integer such that g (x) divides xN0-1. Moreover, the fact that the polynomial g (x) is not divisible by a square polynomial implies that NO is an odd number. We then choose hi (x) and h2 (x) of any degree but preferably at most equal to the degree m of g (x) because the maximum of the degrees of these three polynomials g (x), hi (x) and h2 (x ) is a decisive element in the complexity of the decoder. Then choose an odd integer M and calculate the cycle of 2, modulo M.NO. We then choose an element e in this cycle of 2 for
Figure img00220001

specify a * (x) = a (xe) modulo) ('vfNO-1 ~ 1 from a (x) and perform various test operations on the turbocode associated with the interleaver thus defined.

Prenons par exemple g(x) = 1 + x + x3, ceci impose NO = 7.

Figure img00220002

Choisissons aussi hi(x) = 1 + x + X2 + x3, h2(x) = 1 + X2 + x3 et M = 21 ceci entraîne M.NO =147 et permet de calculer le cycle de deux modulo 147 comme étant {1, 2, 4, 8, 16, 32,64, 128,109, 71, 142, 137, 127, 107,67, 134, 121, 95, 43, 86, 25, 50,100, 53,106, 65,130, 113,79, 11,22, 44,88, 29,58, 116,85, 23, 46, 92,37, 74}. Take for example g (x) = 1 + x + x3, this imposes NO = 7.
Figure img00220002

Let us also choose hi (x) = 1 + x + X2 + x3, h2 (x) = 1 + X2 + x3 and M = 21 this gives M.NO = 147 and allows the cycle of two modulo 147 to be calculated as {1 , 2, 4, 8, 16, 32, 64, 128, 109, 71, 142, 137, 127, 107, 67, 134, 121, 95, 43, 86, 25, 50, 100, 53, 106, 65, 130, 113, 79, 11. , 22, 44.88, 29.58, 116.85, 23, 46, 92.37, 74}.

En testant successivement les polynômes a(x) divisibles par g(x) de poids égal à 2,3, 4 et 5, on conclut que le choix e = 25 est "prometteur" car les a(x) de poids 2 correspondent alors à une séquence codée v= (a, b, c) de poids > 26, les a(x) de poids 3 correspondent alors à une séquence codée v=

Figure img00220003

(a, b, cl de poids bzz 24, les a(x) de poids 4 correspondent alors à une séquence codée v= (a, b, cl de poids bzz 26, les a(x) de poids 5 correspondent alors à une séquence codée v= (a, b, c) de poids 30... By successively testing the polynomials a (x) divisible by g (x) of weight equal to 2.3, 4 and 5, we conclude that the choice e = 25 is "promising" because the a (x) of weight 2 correspond then at a coded sequence v = (a, b, c) of weight> 26, the a (x) of weight 3 then correspond to a coded sequence v =
Figure img00220003

(a, b, cl of weight bzz 24, the a (x) of weight 4 then corresponds to a coded sequence v = (a, b, cl of weight bzz 26, the a (x) of weight 5 then correspond to a coded sequence v = (a, b, c) of weight 30 ...

Cela semble indiquer une distance minimale égale à 24, ce qui est la meilleure valeur que l'on puisse obtenir suivant la méthode exposée cidessus pour NO = 7 et M = 21 avec g(x), h1(x) et h2(x) comme indiqué cidessus.  This seems to indicate a minimum distance equal to 24, which is the best value that can be obtained according to the method explained above for NO = 7 and M = 21 with g (x), h1 (x) and h2 (x) as stated above.

Un autre choix possible est g(x) = 1 + x + x4 qui impose NO = 15.  Another possible choice is g (x) = 1 + x + x4 which imposes NO = 15.

Choisissons aussi h1 (x) = 1 + x + x2 + x4, h2(x) = 1 + x3 + x4 et M = 27. Ceci entraîne M.NO = 405 et permet de calculer le cycle de 2 modulo 405 comme étant {1,2, 4, 8, 16,304, 203}. Il comprend 108 nombres. Let us also choose h1 (x) = 1 + x + x2 + x4, h2 (x) = 1 + x3 + x4 and M = 27. This results in M.NO = 405 and calculates the cycle of 2 modulo 405 as { 1,2,4,8,16,304,203}. It includes 108 numbers.

En travaillant par élimination successive, on conclut que les choix e = 151, e = 362 et e = 233 sont particulièrement prometteurs.  Working by successive elimination, we conclude that the choices e = 151, e = 362 and e = 233 are particularly promising.

<Desc/Clms Page number 23> <Desc / Clms Page number 23>

En particulier pour e = 151, les inventeurs ont testé les polynômes a(x) divisibles par g(x) et de poids égal successivement à 2,3, 4,5, 6 et 7 et tels que, si ce poids est supérieur ou égal à 5, alors le poids de a(x), noté W(a(x)), est égal au poids de a(x) modulo x15 + 1.  In particular for e = 151, the inventors tested the polynomials a (x) divisible by g (x) and of weight equal successively to 2,3, 4,5, 6 and 7 and such that, if this weight is greater or equal to 5, then the weight of a (x), denoted W (a (x)), is equal to the weight of a (x) modulo x15 + 1.

Lorsque le poids de a(x) est W(a(x)), le poids minimal de W(v) correspondant est indiqué dans la table :

Figure img00230001
When the weight of a (x) is W (a (x)), the corresponding minimum weight of W (v) is indicated in the table:
Figure img00230001

<tb>
<tb> W(a(x)) <SEP> W(v) <SEP> #
<tb> 2 <SEP> 54
<tb> 3 <SEP> 42
<tb> 4 <SEP> 44
<tb> 5 <SEP> 48
<tb> 6 <SEP> 54
<tb> 7 <SEP> 54
<tb>
<Tb>
<tb> W (a (x)) <SEP> W (v) <SEP>#
<tb> 2 <SEP> 54
<tb> 3 <SEP> 42
<tb> 4 <SEP> 44
<tb> 5 <SEP> 48
<tb> 6 <SEP> 54
<tb> 7 <SEP> 54
<Tb>

De la même manière et sous les mêmes conditions, pour e = 362, lorsque le poids de a(x) est W(a(x)), le poids minimal de W(v) correspondant est indiqué dans la table :

Figure img00230002
In the same way and under the same conditions, for e = 362, when the weight of a (x) is W (a (x)), the corresponding minimum weight of W (v) is indicated in the table:
Figure img00230002

<tb>
<tb> W(a(x)) <SEP> W(v) <SEP> #
<tb> 2 <SEP> 54
<tb> 3 <SEP> 42
<tb> 4 <SEP> 42
<tb> 5 <SEP> 50
<tb> 6 <SEP> 56
<tb> 7 <SEP> 54
<tb>
<Tb>
<tb> W (a (x)) <SEP> W (v) <SEP>#
<tb> 2 <SEP> 54
<tb> 3 <SEP> 42
<tb> 4 <SEP> 42
<tb> 5 <SEP> 50
<tb> 6 <SEP> 56
<tb> 7 <SEP> 54
<Tb>

Selon l'invention, les nombres e, non congrus à 1, modulo NO, peuvent être particulièrement utilisés. According to the invention, the numbers e, not congruent to 1, modulo NO, can be particularly used.

La description d'un mode particulier de réalisation de la présente invention va maintenant se poursuivre en regard des figures 1 à 3.  The description of a particular embodiment of the present invention will now be continued with reference to FIGS. 1 to 3.

<Desc/Clms Page number 24> <Desc / Clms Page number 24>

La figure 1 illustre schématiquement la constitution d'une station de réseau ou station de codage informatique, sous forme de schéma synoptique. Cette station comporte un clavier 111, un écran 109, une source d'informations externe 110, un émetteur hertzien 106, conjointement reliés à un port d'entrée/sortie 103 d'une carte de traitement 101.  FIG. 1 schematically illustrates the constitution of a network station or computer coding station, in the form of a block diagram. This station comprises a keyboard 111, a screen 109, an external information source 110, a radio transmitter 106, jointly connected to an input / output port 103 of a processing card 101.

La carte de traitement 101 comporte, reliés entre eux par un bus d'adresses et de données 102 : - une unité centrale de traitement 100 ; - une mémoire vive RAM 104 ; - une mémoire morte ROM 105 ; - le port d'entrée/sortie 103 ;
Chacun des éléments illustrés en figure 1 est bien connu de l'homme du métier des micro-ordinateurs et des systèmes de transmission et, plus généralement, des systèmes de traitement de l'information. Ces éléments communs ne sont donc pas décrits ici. On observe, cependant, que : - la source d'informations 110 est, par exemple, un périphérique d'interface, un capteur, un démodulateur, une mémoire externe ou un autre système de traitement d'information (non représenté), et est préférentiellement adaptée à fournir des séquences de signaux représentatifs de parole, de messages de service ou de données multimédia, sous forme de séquences de données binaires, - l'émetteur hertzien 106 est adapté à mettre en oeuvre un protocole de transmission par paquets sur un canal non filaire, et à transmettre ces paquets sur un tel canal.
The processing card 101 comprises, interconnected by an address and data bus 102: a central processing unit 100; a RAM 104; a ROM 105; the input / output port 103;
Each of the elements illustrated in Figure 1 is well known to those skilled in the field of microcomputers and transmission systems and, more generally, information processing systems. These common elements are therefore not described here. It is observed, however, that: the information source 110 is, for example, an interface device, a sensor, a demodulator, an external memory or another information processing system (not shown), and is preferably adapted to provide signal sequences representative of speech, service messages or multimedia data, in the form of binary data sequences, - the radio transmitter 106 is adapted to implement a packet transmission protocol on a channel not wired, and to transmit these packets on such a channel.

On observe, en outre, que le mot "registre" utilisé dans la description désigne, dans chacune des mémoires 104 et 105, aussi bien une zone mémoire de faible capacité (quelques données binaires) qu'une zone mémoire de grande capacité (permettant de stocker un programme entier).  It is further observed that the word "register" used in the description designates, in each of the memories 104 and 105, both a memory area of low capacity (a few binary data) and a memory area of large capacity (allowing store an entire program).

La mémoire vive 104 conserve des données, des variables et des résultats intermédiaires de traitement, dans des registres de mémoire portant, dans la description, les mêmes noms que les données dont ils conservent les valeurs. La mémoire vive 104 comporte notamment :  The RAM 104 stores data, variables and intermediate processing results in memory registers carrying, in the description, the same names as the data whose values they retain. RAM 104 comprises in particular:

<Desc/Clms Page number 25><Desc / Clms Page number 25>

- un registre "données-primaires" dans lequel sont conservées, dans l'ordre de leur arrivée sur le bus 102, les données binaires en provenance de la source d'information 110, sous forme d'une séquence u, complétée ensuite pour former une séquence a, - un registre "nb~données" qui conserve un nombre entier correspondant au nombre de données binaires n-m dans le registre "données~binaires" ,

Figure img00250001

- un registre "resfe intermédiaire" dans lequel sont conservés successivement les restes intermédiaires de la division, registre utilisé pour construire la séquence a, à partir de la séquence u,
Figure img00250002

- un registre "reste finaP' dans lequel sont conservées des données binaires complémentaires, sous forme d'une séquence, - un registre "données-permutées" dans lequel sont conservées, dans l'ordre de leur arrivée sur le bus 102, les données binaires permutées, comme décrit en regard de la figure 2, sous forme d'une séquence a*, et - un registre "a, b, c" dans lequel sont conservées, dans l'ordre de leur détermination par l'unité centrale 100, les données binaires de séquence en cours de traitement. a "primary-data" register in which, in the order of their arrival on the bus 102, the binary data coming from the information source 110 are stored in the form of a sequence u, which is then completed to form a sequence a, - a register "nb ~ data" which keeps an integer corresponding to the number of binary data nm in the register "data ~ binary",
Figure img00250001

a register "intermediate resf" in which are conserved successively the intermediate remains of the division, register used to construct the sequence a, from the sequence u,
Figure img00250002

a register "remains fina" in which are kept complementary binary data, in the form of a sequence, - a "data-permuted" register in which are kept, in the order of their arrival on the bus 102, the data binary permuted, as described with reference to FIG. 2, in the form of a sequence a *, and - a register "a, b, c" in which are conserved, in the order of their determination by the central unit 100 , the binary sequence data being processed.

La mémoire morte 105 est adaptée à conserver, dans des registres qui, par commodité, possèdent les mêmes noms que les données qu'ils conservent : - le programme de fonctionnement de l'unité centrale de traitement 100, dans un registre "program", - la séquence g, dans un registre "g", - le degré m de g(x), dans un registre "degré"

Figure img00250003

- la séquence /111 dans un registre "/1/', - la séquence h2, dans un registre "h2", - la valeur de N0, dans un registre "NO", - la valeur de M, dans un registre "M", et - le tableau définissant l'entrelaceur, dans un registre "entrelaceur". The read-only memory 105 is adapted to keep, in registers which, for convenience, have the same names as the data they retain: the operating program of the central processing unit 100, in a "program" register, the sequence g, in a register "g", the degree m of g (x), in a register "degree"
Figure img00250003

the sequence / 111 in a register "/ 1 /", - the sequence h2, in a register "h2", - the value of N0, in a register "NO", - the value of M, in a register "M ", and - the array defining the interleaver, in an" interleaver "register.

<Desc/Clms Page number 26> <Desc / Clms Page number 26>

L'unité centrale de traitement 100 est adaptée à mettre en #uvre l'organigramme décrit en figure 2.  The central processing unit 100 is adapted to implement the flowchart described in FIG. 2.

En figure 2, qui représente le fonctionnement d'un codeur tel qu'illustré en figure 1, on observe qu'après une opération d'initialisation 300, au cours de laquelle, les registres de la mémoire vive 104 sont initialisés (nb~données = "0"), au cours d'une opération 301, l'unité centrale 100 attend de recevoir, puis reçoit une donnée binaire à transmettre, la positionne en mémoire vive 104, dans le registre "données~primaires" et incrémente le compteur "nb données".  In FIG. 2, which represents the operation of an encoder as illustrated in FIG. 1, it is observed that after an initialization operation 300, during which the registers of the random access memory 104 are initialized (nb ~ data = "0"), during an operation 301, the central unit 100 waits to receive, then receives a binary data to be transmitted, places it in random access memory 104, in the "primary data" register and increments the counter "nb data".

Ensuite, au cours d'un test 302, l'unité centrale 100 détermine si le nombre entier conservé dans le registre "nb~données" est égal, ou non au produit M.NO auquel est soustrait le degré de g(x), M, NO et le degré m de g(x) étant des valeurs conservées en mémoire morte 105.  Then, during a test 302, the central unit 100 determines whether the whole number stored in the register "nb ~ data" is equal to the product M.NO to which is subtracted the degree of g (x), M, NO and the degree m of g (x) being values stored in read-only memory 105.

Lorsque le résultat du test 302 est négatif, l'opération 301 est réitérée. Lorsque le résultat du test 302 est positif, au cours d'une l'opération 303, la division du polynôme u(x) associé à la séquence de données binaires conservée dans le registre "données~primaires" par le polynôme g(x) est effectuée, jusqu'au dernier terme (de plus haut degré) de u(x), en mettant en

Figure img00260001

#uvre, à cet effet, le registre "reste~intermédiaire", le reste de cette division est mis en mémoire dans le registre "reste~finaP'. Ensuite, au cours d'une opération 304, les données binaires
Figure img00260002

conservées dans le registre "reste fnaP' sont juxtaposées à la fin de la séquence u pour former la séquence a. Les données binaires de la séquence a sont mises en mémoire dans le registre "a, b, c". When the result of the test 302 is negative, the operation 301 is repeated. When the result of the test 302 is positive, during an operation 303, the division of the polynomial u (x) associated with the binary data sequence stored in the "primary data" register by the polynomial g (x) is carried out, until the last term (of the highest degree) of u (x),
Figure img00260001

For this purpose, the register "remains intermediate", the remainder of this division is stored in the register "remains ~ finaP" Then, during an operation 304, the binary data
Figure img00260002

stored in the register "remain fnaP" are juxtaposed at the end of the sequence u to form the sequence A. The binary data of the sequence a are stored in the register "a, b, c".

Ensuite, au cours d'une opération 305, la division effectuée au cours de l'opération 303 est poursuivie, avec les données additionnelles ajoutées au cours de l'opération 304 et la séquence b est complétée dans le registre "a, b, c".  Then, during an operation 305, the division performed during the operation 303 is continued, with the additional data added during the operation 304 and the sequence b is completed in the register "a, b, c ".

Puis, au cours d'une opération 306, les données binaires de la séquence a sont successivement lues dans le registre "a, b, c", dans l'ordre décrit par le tableau "entrelaceur" conservé en mémoire morte 105. Les  Then, during an operation 306, the binary data of the sequence a are successively read in the register "a, b, c", in the order described by the "interleaver" table stored in the read-only memory 105.

<Desc/Clms Page number 27><Desc / Clms Page number 27>

données qui résultent successivement de cette lecture sont mises en mémoire

Figure img00270001

dans le registre "données permutées" de la mémoire vive 104. data resulting from this reading are stored in memory
Figure img00270001

in the "swapped data" register of the random access memory 104.

Ensuite, au cours d'une opération 307, la division du polynôme a*(x) associé à la séquence de données binaires permutées conservée dans le registre "données~permutées" par le polynôme g(x) est effectuée, en mettant en #uvre, à cet effet, le registre "reste~intermédiaire". Le résultat de cette division est mis en mémoire dans le registre "a, b, ç", et correspond aux données binaires de la séquence ç.  Then, during an operation 307, the division of the polynomial a * (x) associated with the permuted bit data sequence stored in the register "data ~ permuted" by the polynomial g (x) is performed, by setting # for this purpose, the register "remains ~ intermediate". The result of this division is stored in the register "a, b, ç", and corresponds to the binary data of the sequence ç.

Au cours d'une opération 308, les séquences b et ç sont déterminées en effectuant le produit des polynômes associés aux séquences b et ç conservées dans le registre "a, b, ç" de la mémoire vive 104, respectivement par les polynômes hi(x) et h2(x).  During an operation 308, the sequences b and c are determined by producing the product of the polynomials associated with the sequences b and c kept in the register "a, b, c" of the random access memory 104, respectively by the polynomials h ( x) and h2 (x).

On observe que, grâce à l'invention, on gagne des éléments de mémoire en effectuant la division par g(x) avant la multiplication par hi(x) ou h2(x).  It is observed that, thanks to the invention, we gain memory elements by dividing by g (x) before the multiplication by hi (x) or h2 (x).

Au cours d'une opération 309, les séquences a, b, et ç sont émises en utilisant, à cet effet, l'émetteur 106. Ensuite, les registres de la mémoire 104 sont à nouveau initialisés, en particulier le compteur Nb~données est remis à "0" et l'opération 301 est réitérée.  During an operation 309, the sequences a, b, and c are emitted using, for this purpose, the transmitter 106. Then, the registers of the memory 104 are initialized again, in particular the counter Nb ~ data. is reset to "0" and operation 301 is repeated.

On observe ici qu'en variante, au cours de l'opération 309, la séquence a est émise intégralement, mais seulement un sous-ensemble, par exemple une donnée sur deux, de chacune des séquences b et c est émis.  It is observed here that, alternatively, during the operation 309, the sequence a is transmitted in its entirety, but only a subset, for example every other data item, of each of the sequences b and c is emitted.

Cette variante est connue de l'homme du métier sous le nom de poinçonnage. This variant is known to those skilled in the art under the name of punching.

En ce qui concerne le décodage, on observe qu'en connaissant les polynômes g(x), h1(x), h2(x) et l'entrelaceur qui, à partir de la séquence a fournissent la séquence permutée a*, l'homme du métier sait, sans problème technique, réaliser le décodeur adapté au décodage et à la correction d'erreur affectant le triplet de séquences (a, b, c) en utilisant l'entrelaceur considéré cidessus et, éventuellement le désentrelaceur correspondant.  With regard to the decoding, it is observed that by knowing the polynomials g (x), h1 (x), h2 (x) and the interleaver which, from the sequence a provide the permuted sequence a *, the One skilled in the art knows, without any technical problem, making the decoder suitable for decoding and error correction affecting the sequence triplet (a, b, c) by using the interleaver considered above and possibly the corresponding de-interleaver.

A cet effet, il peut se référer : - à l'article de MM. L. R. BAHL, J. COCKE, F. JELINEK et J.  For this purpose he may refer to: - the article by MM. L. R. BAHL, J. COCKE, F. JELINEK and J.

RAVIV intitulé "Optimal decoding of linear codes for minimizing symbol error RAVIV entitled "Optimal decoding of linear codes for minimizing symbol error

<Desc/Clms Page number 28><Desc / Clms Page number 28>

rate", publié dans la revue IEEE Transactions on Information Theory, en mars 1974 ; - à l'article de MM. J. HAGENAUER, E. OFFER et L. PAPKE intitulé "Iterative decoding of binary block and convolutional codes" publié dans la revue IEEE Transactions on Information Theory, en mars 1996 ; - à l'article de MM. J. HAGENAUER et P. HOEHER intitulé "A Viterbi algorithm with soft decision outputs and its applications", publiée avec les compte-rendus de la conférence IEEE GLOBECOM, pages 1680-1686, en novembre 1989 ; - à l'article de MM. J. HAGENAUER, P. ROBERTSON et L.  rate ", published in the journal IEEE Transactions on Information Theory, in March 1974. - in the article by J. HAGENAUER, E. OFFER and L. PAPKE entitled" Iterative decoding of binary block and convolutional codes "published in the IEEE Reviews Transactions on Information Theory, in March 1996 - in the article by J. HAGENAUER and P. HOEHER entitled "A Viterbi algorithm with soft decision outputs and its applications", published with the IEEE conference proceedings GLOBECOM, pages 1680-1686, in November 1989. - in the article by J. HAGENAUER, P. ROBERTSON and L.

PAPKE intitulé "Iterative (turbo)decoding of systematic convolutional codes with the MAP and SOVA algorithms", publiée par la revue Informationstechnische Gesellschaft (ITG) Fachbericht, pages 21 - 29, octobre 1994 ; - à l'article de MM. C. BERROU, S. EVANO et G. BATTAIL, intitulé "Turbo-block-codes" et publié avec les compte-rendus du séminaire "turbo coding" organisé par l'Institut de Technologie de Lund (Suède) (Département d'électronique appliquée) en août 1996. PAPKE entitled "Iterative (turbo) decoding of systematic convolutional codes with MAP and SOVA algorithms", published by the magazine Informationstechnische Gesellschaft (ITG) Fachbericht, pages 21-29, October 1994; - in the article of MM. C. BERROU, S. EVANO and G. BATTAIL, entitled "Turbo-block-codes" and published with the minutes of the "turbo coding" seminar organized by the Lund Institute of Technology (Sweden) (Department of Electronics applied in August 1996.

En figure 3, sont représentées les étapes d'un algorithme de détermination de la valeur de e spécifiant l'entrelaceur à utiliser. Ces étapes peuvent être réalisées par un ordinateur de type connu (non représenté), dans

Figure img00280001

lequel des registres "NO", "M", "entrelaceur "d", "dmax", "e" et 'j" se trouvent, en mémoire vive. FIG. 3 shows the steps of an algorithm for determining the value of e specifying the interleaver to be used. These steps can be performed by a computer of known type (not shown), in
Figure img00280001

which registers "NO", "M", "interleaver" d "," dmax "," e "and" j "are in RAM.

Au cours d'une opération 501, g(x) = 1 + l.;=1 à m-1 9 + x' étant le polynôme de degré m prédéterminé qui correspond à la séquence g, on recherche le plus petit nombre entier strictement positif NO tel que g(x) divise le polynôme xN0 - 1. On sait que ce nombre existe. Par exemple pour g(x) = 1 + x + x3, NO = 7. A cet effet, on effectue successivement les divisions des polynômes x' - 1 par g (x) en commençant par une valeur de i égale au degré m de g (x) en incrémentant progressivement i, avec un pas d'incrémentation de 1, jusqu'à ce que le reste de la division soit nul, modulo 2. Lorsque le reste est nul, la valeur de i est mise dans le registre NO. On rappelle que la division During an operation 501, g (x) = 1 + 1; 1 to m-1 9 + x 'being the polynomial of predetermined degree m corresponding to the sequence g, the smallest integer strictly positive NO such that g (x) divides the polynomial xN0 - 1. We know that this number exists. For example, for g (x) = 1 + x + x3, NO = 7. For this purpose, the divisions of the polynomials x '- 1 are successively carried out by g (x) starting with a value of i equal to the degree m of g (x) by progressively incrementing i, with an incrementation step of 1, until the remainder of the division is zero, modulo 2. When the remainder is zero, the value of i is set in the register NO . It is recalled that the division

<Desc/Clms Page number 29><Desc / Clms Page number 29>

effectuée ici se fait, modulo 2, sur les coefficients des puissances croissantes de/ -7.  done here is, modulo 2, on the coefficients of the increasing powers of / -7.

Puis, en choisissant un nombre M impair, de telle manière que le produit M.NO soit supérieur ou égal au nombre de données binaires u, qui doivent être transmises dans la même trame, additionné au degré m de g(x), au cours d'une opération 502, on choisit une longueur de séquence a égale à M.NO. ce qui revient à déterminer la longueur (c'est-à-dire le nombre de données binaires) de la séquence u incorporée à la séquence a comme étant égal à M.NO moins le degré m de g(x).  Then, by choosing an odd number M, such that the product M.NO is greater than or equal to the number of binary data u, which must be transmitted in the same frame, added to the degree m of g (x), during of an operation 502, a sequence length equal to M.NO is chosen. which amounts to determining the length (i.e., the number of binary data) of the sequence u incorporated in the sequence a as being equal to M.NO minus the degree m of g (x).

Puis, au cours des opérations 503 à 509, l'unité centrale 100 détermine si l'entrelaceur associé à e est à prendre en compte, ce qui veut dire qu'il n'y a pas de séquence a de poids faible pour laquelle la séquence v = (a, b, c) possède, elle aussi, un poids faible.  Then, during operations 503 to 509, the central unit 100 determines whether the interleaver associated with e is to be taken into account, which means that there is no low order sequence a for which the sequence v = (a, b, c) also has a low weight.

Dans le mode de réalisation décrit et représenté, la détermination de a* consistera à remplacer a = (ao, a1, ... ) par a* = (ao, af, a2f, ...) où les multiples de f sont calculés modulo M.NO. Lorsque f est égal à une puissance de 2 différente de 1, modulo M.NO, cette permutation est bien du type annoncé.  In the embodiment described and shown, the determination of a * will consist of replacing a = (ao, a1, ...) by a * = (ao, af, a2f, ...) where the multiples of f are calculated modulo M.NO. When f is equal to a power of 2 different from 1, modulo M.NO, this permutation is of the type announced.

Elle peut, en effet, être représentée par une permutation qui ne permute des données binaires qu'à l'intérieur de chaque colonne du tableau, suivie, lorsque f est égal à une puissance de 2 différente de 1, modulo NO, d'une permutation d'au moins deux des colonnes entre elles, cette dernière permutation étant un automorphisme du code cyclique binaire de longueur NO et de polynôme générateur g(x). Lorsque f est égal à 1, modulo N0, cette permutation portant sur les colonnes est la permutation "triviale" ou permutation "identité", c'est-àdire celle qui maintient la position des colonnes dans le tableau. It can, indeed, be represented by a permutation which swaps binary data only inside each column of the array, followed, when f is equal to a power of 2 different from 1, modulo NO, of one permutation of at least two of the columns together, the latter permutation being an automorphism of the binary cyclic code of length NO and of generator polynomial g (x). When f is equal to 1, modulo N0, this permutation on the columns is the "trivial" permutation or "identity" permutation, that is, the one that maintains the position of the columns in the array.

A cet effet, dans ce mode particulier de réalisation de la présente invention, au cours de l'opération 503, l'unité centrale 100 détermine les puissances successives de 2 modulo M. N0, pour obtenir ce qui s'appelle le cycle de 2, modulo M.NO, ce cycle étant achevé dès qu'une des puissances de 2 est égale à 1, modulo M.NO. Le nombre de termes j de ce cycle est mémorisé dans le registre "j".  For this purpose, in this particular embodiment of the present invention, during the operation 503, the central unit 100 determines the successive powers of 2 modulo M. N0, to obtain what is called the cycle of 2 , modulo M.NO, this cycle being completed as soon as one of the powers of 2 is equal to 1, modulo M.NO. The number of terms j of this cycle is stored in the register "j".

<Desc/Clms Page number 30> <Desc / Clms Page number 30>

Puis, au cours de l'opération 504, on initialise les valeurs intermédiaires / et dmax conservées dans les registres "@" et "dmax", respectivement à la valeur "1"et à la valeur "0".  Then, during the operation 504, the intermediate values / and dmax stored in the registers "@" and "dmax" are initialized respectively at the value "1" and at the value "0".

Ensuite, au cours d'une opération 505, on incrémente de "1" la valeur de / et on prend la /-ième valeur du cycle de 2, modulo M.NO.  Then, during an operation 505, the value of / is incremented by "1" and the second value of the cycle of 2, modulo M.NO is taken.

Puis, au cours d'une opération 506, si cette valeur n'est pas égale à 1 modulo M.NO, on détermine le poids de la séquence v = (a, b, c) pour les séquences a de poids faible, avec la permutation définie par a*(x) = a(xe) (ainsi,

Figure img00300001

si a=(ao, a,, a2, ..., aMNO-r), la première donnée binaire de a* est ao, la seconde af, la troisième a2f, ..., comme exposé supra, l'indice étant calculé modulo M. NO). Then, during an operation 506, if this value is not equal to 1 modulo M.NO, we determine the weight of the sequence v = (a, b, c) for the low-weight sequences a, with the permutation defined by a * (x) = a (xe) (thus,
Figure img00300001

if a = (ao, a ,, a2, ..., aMNO-r), the first binary of a * is ao, the second af, the third a2f, ..., as explained above, the index being calculated modulo M. NO).

A cet effet, puisque la distance entre deux séquences est le poids (c'est-à-dire le nombre de données binaires non nulles) de la séquence constituée par différence des données binaires homologues de ces séquences, on se limite à l'analyse de la distance des séquences avec la séquence nulle, on énumère les polynômes a(x) par poids croissant, on mesure la somme des poids des séquences d'un même triplet (a, b, c) et on cherche le poids minimal pour e donné, pour les séquences a de poids faible, et, une fois tous ces poids minimaux déterminés pour e dans le cycle de 2, la valeur de e qui correspond au poids le plus élevé.  For this purpose, since the distance between two sequences is the weight (that is to say the number of non-zero binary data) of the sequence constituted by the difference of the binary data homologous to these sequences, it is limited to the analysis of the distance of the sequences with the null sequence, one lists the polynomials a (x) by increasing weight, one measures the sum of the weights of the sequences of the same triplet (a, b, c) and one seeks the minimum weight for e given, for the low order sequences a, and, once all these minimum weights determined for e in the cycle of 2, the value of e which corresponds to the highest weight.

La distance est ensuite mémorisée dans le registre "d" de la mémoire vive 104. Ensuite, si, au cours d'un test 507, la valeur conservée dans le registre "d" est supérieure à la valeur conservée dans le registre "dmax", alors au cours de l'opération 508, la valeur du registre "dmax" est modifiée pour prendre la valeur d et la valeur du /-ième élément du cycle considéré est mise en mémoire dans le registre "e".  The distance is then stored in the register "d" of the RAM 104. Then, if, during a test 507, the value stored in the register "d" is greater than the value kept in the register "dmax" , then during the operation 508, the value of the register "dmax" is modified to take the value d and the value of the eighth element of the cycle considered is stored in the register "e".

A la suite de l'opération 508 ou, lorsque le résultat du test 507 est négatif, tant que la valeur de / est inférieure à j, test 509, l'opération 505 est réitérée.

Figure img00300002
Following the operation 508 or, when the result of the test 507 is negative, as long as the value of / is less than j, test 509, the operation 505 is repeated.
Figure img00300002

Le tableau "entrelaceue' est alors constitué de la manière suivante : The "entrelaceue" table is then constituted as follows:

<Desc/Clms Page number 31> <Desc / Clms Page number 31>

Figure img00310001

a*(x) = a(xe), ainsi, si a=(ao, ah a2, ..., aM NO-1) , la première donnée binaire de a* est ao, la seconde af, la troisième a2f, comme exposé supra, l'indice étant calculé modulo M.NO.
Figure img00310001

a * (x) = a (xe), so, if a = (ao, ah a2, ..., aM NO-1), the first binary of a * is ao, the second af, the third a2f, as explained above, the index being calculated modulo M.NO.

Selon une variante non représentée, le triplet (a, b, c) est construit de la manière suivante :

Figure img00310002

- a(x) et b(x) = a(x).h(x)lg(x) sont définis comme ci-dessus, - étant donné un polynôme g2(x) choisi tel que le plus petit entier N2 tel que g2(x) divise le polynôme xN2 -1 soit égal au plus petit entier NO tel que g(x) divise le polynôme xN0 - 1, on choisit une permutation P qui transforme tout mot du code cyclique binaire de longueur NO et de polynôme générateur g(x) en un mot du code cyclique binaire de longueur N2 et de polynôme générateur g2(x). On note qu'une telle permutation n'existe que pour les polynômes g2(x) engendrant des codes cycliques équivalent à Cg. Cette vérification est bien connue de l'homme du métier et nous renvoyons pour cela à la page 234 du livre de Mme F. J. MAC WILLIAMS et M. N. J.A. SLOANE mentionné ci-dessus ; - selon l'invention, la permutation qui, à partir de la séquence a, associée au polynôme a(x) divisible par g(x), produit la séquence a**, associée au polynôme a**(x), divisible par g2(x) est alors produite par une permutation quelconque produisant à partir de a(x) une première séquence a*(x) divisible par g(x) comme expliqué ci-dessus, suivie de la permutation P que nous venons d'introduire et qui agit sur les colonnes du tableau à M lignes et NO colonnes contenant tout d'abord a et ensuite a* pour permuter ces colonnes entre elles et produire a**
La portée de l'invention ne se limite pas aux modes de réalisation décrits et représentés mais s'étend, bien au contraire, aux modifications et perfectionnements à la portée de l'homme du métier. According to a variant not shown, the triplet (a, b, c) is constructed as follows:
Figure img00310002

a (x) and b (x) = a (x) .h (x) 1g (x) are defined as above, - given a polynomial g2 (x) chosen such that the smallest integer N2 such that g2 (x) divides the polynomial xN2 -1 is equal to the smallest integer NO such that g (x) divides the polynomial xN0 - 1, we choose a permutation P which transforms any word of the binary cyclic code of length NO and generator polynomial g (x) in one word of the binary cyclic code of length N2 and of generator polynomial g2 (x). We note that such a permutation exists only for polynomials g2 (x) generating cyclic codes equivalent to Cg. This verification is well known to those skilled in the art and we refer for this to page 234 of the book of Mrs. FJ MAC WILLIAMS and MNJA SLOANE mentioned above; according to the invention, the permutation which, from the sequence a, associated with the polynomial a (x) divisible by g (x), produces the sequence a **, associated with the polynomial a ** (x), divisible by g2 (x) is then produced by any permutation producing from a (x) a first sequence a * (x) divisible by g (x) as explained above, followed by the permutation P which we have just introduced and which acts on the columns of the array with M rows and NO columns containing first a and then a * to swap these columns between them and produce a **
The scope of the invention is not limited to the embodiments described and shown but extends, on the contrary, to the modifications and improvements within the scope of the skilled person.

En particulier, le passage à des rendements de un quart ou moins, par adjonction d'un ou de plusieurs entrelaceurs supplémentaires se fait pour chaque entrelaceur, par application des principes énoncés ci-dessus. Dans tous ces cas, l'usage du poinçonnage peut être fait pour élever le rendement du  In particular, the transition to yields of a quarter or less by adding one or more additional interleavers is done for each interleaver, by applying the principles stated above. In all these cases, the use of punching can be done to raise the output of the

<Desc/Clms Page number 32><Desc / Clms Page number 32>

code. On rappelle que le poinçonnage consiste à ne transmettre qu'une partie seulement des symboles de contrôle.  code. It is recalled that punching consists in transmitting only a part of the control symbols.

De plus, la réalisation des dispositifs objets de la présente invention est avantageusement faite en mettant en #uvre, pour effectuer les calculs arithmétiques, de multiplication polynomiale, de division polynomiale, la fonction d'entrelacement et les fonctions de décodage élémentaire, des circuits dédiés ne comportant pas de processeur (un tel processeur peut, néanmoins être utilisé pour le contrôle du fonctionnement de ces dispositifs). L'utilisation de tels circuits dédiés permet, en effet, d'atteindre des débits d'informations plus élevés.  Moreover, the realization of the devices of the present invention is advantageously made by implementing, for performing the arithmetic calculations, polynomial multiplication, polynomial division, the interleaving function and the elementary decoding functions, dedicated circuits. does not include a processor (such a processor can, nevertheless, be used for controlling the operation of these devices). The use of such dedicated circuits makes it possible to achieve higher information rates.

On observe que, dans le premier mode de réalisation, le rendement est, sans poinçonnage, proche de un tiers, puisque pour une séquence de n-m symboles à coder, on a deux séquences de n symboles de contrôle.  It is observed that, in the first embodiment, the output is, without punching, close to one-third, since for a sequence of n-m symbols to be encoded, there are two sequences of n control symbols.

Il - DEUXIEME MODE DE REALISATION
Dans le second mode de réalisation de la présente invention, on considère des rendements supérieurs à 1/3, obtenus sans poinçonnage : pour deux séquences de n-m symboles à coder, on fournit, par exemple, deux séquences de n symboles de contrôle, soit un rendement proche de un demi.
II - SECOND MODE OF REALIZATION
In the second embodiment of the present invention, yields greater than 1/3, obtained without punching, are considered: for two sequences of nm symbols to be encoded, two sequences of n control symbols are provided, for example yield close to a half.

Avant d'entamer la description du deuxième mode de réalisation, les fondements mathématiques de sa mise en #uvre sont donnés ci-dessous.  Before beginning the description of the second embodiment, the mathematical foundations of its implementation are given below.

Pour introduire le premier mode de réalisation, on a présenté une classe d'entrelaceurs algébriques à utiliser avec des turbocodeurs de rendement proche de un tiers. Le principal avantage de ces entrelaceurs est de préserver la divisibilité des polynômes d'information par un polynôme g(x) donné qui caractérise partiellement le codeur. Il en résulte que la probabilité d'erreur par bit d'information codé est mieux indépendante de la position des bits dans la séquence d'information. Comme autre avantage, la description algébrique de ces entrelaceurs rend leur énumération et leur évaluation  To introduce the first embodiment, we presented a class of algebraic interleavers for use with turbochargers yielding close to one third. The main advantage of these interleavers is to preserve the divisibility of information polynomials by a given polynomial g (x) that partially characterizes the encoder. As a result, the error probability per bit of coded information is better independent of the position of the bits in the information sequence. As another advantage, the algebraic description of these interleavers makes their enumeration and evaluation

<Desc/Clms Page number 33><Desc / Clms Page number 33>

individuelle possible. En outre, on espère que les performances de ce jeu réduit d'entrelaceurs sont représentatives des performances de tous les entrelaceurs.  individual possible. In addition, it is hoped that the performance of this reduced interleaver game is representative of the performance of all interleavers.

Cependant, dans de nombreuses circonstances, par exemple dans le contexte des transmissions sans fil, un meilleur rendement est nécessaire.  However, in many circumstances, for example in the context of wireless transmissions, better performance is required.

La deuxième mode de réalisation s'intéresse particulièrement aux rendements supérieurs à ou proches de un demi, sans utilisation de méthodes de poinçonnage.  The second embodiment is particularly interested in yields greater than or close to one half, without the use of punching methods.

IIa - Turbocodes à haut rendement avec entrelaceurs de type "x vers xe".  IIa - High efficiency turbocodes with "x to x" interleavers.

Considérons le codeur convolutif systématique K x (K+2) suivant :

Figure img00330001

dans lequel h,,f, et g sont des polynômes à coefficients binaires d'indéterminée x représentant l'opérateur de délai. Consider the following systematic convolutional coder K x (K + 2):
Figure img00330001

where h ,, f, and g are polynomials with binary coefficients of indeterminate x representing the delay operator.

De manière classique, l'information transmise est représentée par

Figure img00330002

un K-uple a = (a1, ..., aK) de polynômes a, = EI=Oàn-1 a,,.x, avec des coefficients binaires a,; et l'information est codée en v = aG, qui est un (K+2)-uple de séquences d'indéterminée x :
Figure img00330003
Conventionally, the information transmitted is represented by
Figure img00330002

a K-uple a = (a1, ..., aK) of polynomials a, = EI = O-n-1 a ,, x, with binary coefficients a ,; and the information is encoded in v = aG, which is a (K + 2) -uple of sequences of indeterminate x:
Figure img00330003

On observe qu'on écrit ici séquences et non polynômes parce que les sommes ne sont pas nécessairement des multiples de g et, si elles ne le sont pas, la division par g engendre une séquence infinie et finalement périodique. It is observed that we write here sequences and not polynomials because the sums are not necessarily multiples of g and, if they are not, the division by g generates an infinite and finally periodic sequence.

<Desc/Clms Page number 34><Desc / Clms Page number 34>

Pour améliorer les performances de ce type de codeur, on peut

Figure img00340001

remplacer le dernier composant (E;-àK a,f,)lg de v par (L,=1àK a,f,)lg où as représente une séquence obtenue à partir de la séquences a, par permutation de ses coefficients. La transformation de chaque séquence a, en la séquence a1* s'appelle l'entrelacement (voir, par exemple l'article de MM. C. BERROU et A. GLAVIEUX intitulé "Near Optimum error-correcting coding and decoding : turbo-codes" publié par IEEE Transactions on Communication, Volume COM- 44, pages 1261 à 1271, en octobre 1996). To improve the performance of this type of encoder, you can
Figure img00340001

replace the last component (E; -à K a, f,) lg of v by (L, = 1 to K a, f,) lg where as represents a sequence obtained from the sequence a, by permutation of its coefficients. The transformation of each sequence in sequence a1 * is called interleaving (see, for example, the article by Messrs. C. BERROU and A. GLAVIEUX entitled "Near Optimum error-correcting coding and decoding: turbo-codes "published by IEEE Transactions on Communication, Volume COM-44, pages 1261 to 1271, October 1996).

La figure 4 donne une illustration d'un codeur réalisant cette opération. Dans cette figure, on observe que, pour K séquences de symboles en entrée, le codeur émet, en sortie : - ces K séquences de symboles à l'identique, - une séquence de symboles de contrôle constituée en effectuant la somme des produits des polynômes associés aux séquences d'information a, par des polynômes prédéterminés h, et en divisant cette somme par un polynôme g prédéterminé (codeur 401) ; - une séquence de symboles de contrôle constituée en entrelaçant d'abord chaque séquence d'information a, par un entrelaceur II (entrelaceurs 402 à 405) pour fournir une séquence a,*, puis en effectuant la somme des produits des polynômes associés aux séquences a,* par des polynômes prédéterminés f, et en divisant cette somme par un polynôme g prédéterminé (codeur 406).  Figure 4 gives an illustration of an encoder performing this operation. In this figure, it can be observed that, for K input symbol sequences, the encoder outputs, - these identical K symbol sequences, - a control symbol sequence consisting of summing the products of the polynomials associated with information sequences a, by predetermined polynomials h, and dividing this sum by a predetermined polynomial g (encoder 401); a sequence of control symbols constituted by first interleaving each information sequence a, by an interleaver II (interleavers 402 to 405) to provide a sequence a, *, then performing the sum of the products of the polynomials associated with the sequences a, * by predetermined polynomials f, and dividing this sum by a predetermined polynomial g (encoder 406).

On remarque ici que l'ensemble des entrelaceurs II 402 à 406 illustrés en figure 4 est déjà une restriction de l'entrelaceur 201 illustré en figure 5, dans lequel chaque séquence a, peut contenir des symboles de la séquence aJ avec j différent de i.  It should be noted here that the set of interleavers II 402 to 406 illustrated in FIG. 4 is already a restriction of the interleaver 201 illustrated in FIG. 5, in which each sequence a can contain symbols of the sequence aJ with j different from i .

Selon des caractéristiques générales de la présente invention, dans une représentation où les données binaires de chaque séquence a sont classées dans un tableau de NO colonnes et de M lignes, chaque entrelaceur /, comporte : - au moins une permutation dans un ensemble de permutations comportant, d'une part, les automorphismes du code cyclique binaire de  According to general features of the present invention, in a representation where the binary data of each sequence a are classified in an array of NO columns and M lines, each interleaver /, comprises: at least one permutation in a set of permutations comprising , on the one hand, the automorphisms of the binary cyclic code of

<Desc/Clms Page number 35><Desc / Clms Page number 35>

longueur NO et de polynôme générateur g(x), permutant entre elles au moins deux des NO colonnes du tableau et, d'autre part, les permutations travaillant uniquement sur des données d'une même colonne et permutant entre elles au moins deux desdites données, et - aucune permutation en dehors dudit ensemble.  NO length and generator polynomial g (x), permuting between them at least two of the NO columns of the array and, secondly, the permutations working only on data of the same column and exchanging between them at least two of said data and - no permutation outside said set.

Selon des caractéristiques particulières de la présente invention, on applique à des codeurs de rendement K/(K+2), avec K représentant une valeur entière positive arbitraire, des entrelacements de type "x vers xe" décrits en regard du premier mode de réalisation qui concerne la valeur K = 1.  According to particular features of the present invention, there are applied to K / (K + 2) efficiency coders, with K representing an arbitrary positive integer value, "x to x" type interleaves described with respect to the first embodiment. which concerns the value K = 1.

Nous allons décrire, ci-dessous le cas K > 2.

Figure img00350001
We will describe, below, the case K> 2.
Figure img00350001

Soit un polynôme g(x) = 1 + 91X + g2xz + ... + gm-1 xn-1 + x"'. Let a polynomial g (x) = 1 + 91X + g2xz + ... + gm-1 xn-1 + x "'.

Soit NO le plus petit entier tel que g(x) divise xN0 + 1.  Let NO be the smallest integer such that g (x) divides xN0 + 1.

Soit, enfin, n égal à un multiple impair de NO : n = M.NO.  Finally, let n be an odd multiple of NO: n = M.NO.

Le polynôme g(x) est alors un diviseur du polynôme x" + 1. Par exemple, avec g(x) = 1 + x + x4, n peut être choisi parmi les valeurs 15,45, 75,
225, ..., 405,... D'autres détails concernant ces propriétés de divisibilité peuvent être trouvés dans l'ouvrage de W. W. PETERSON et E. J. WELDON intitulé " Error-correcting codes " publié par MIT Press, à Cambridge, Massachussets, en 1972.
The polynomial g (x) is then a divisor of the polynomial x "+ 1. For example, with g (x) = 1 + x + x4, n can be chosen from the values 15, 45, 75,
225, ..., 405, ... Further details regarding these divisibility properties can be found in the book by WW PETERSON and EJ WELDON entitled "Error-correcting codes" published by MIT Press, Cambridge, Mass., in 1972.

On représente l'information par une séquence u = (u1, uK) dans laquelle chacun des K composants u, est représenté par un polynôme uj(x) de degré formel n-m-1 à coefficients binaires. A chaque polynôme u,(x), on ajoute

Figure img00350002

une terminaison, j=n-m à n-i (u,), xi , terminaison de m bits pour rendre le polynôme a, = u, + pnom à n-1 {Ui)j x1 divisible par g(x). The information is represented by a sequence u = (u1, uK) in which each of the K components u, is represented by a polynomial uj (x) of formal degree nm-1 with binary coefficients. At each polynomial u, (x), we add
Figure img00350002

a termination, j = nm to ni (u,), xi, ending of m bits to make the polynomial a, = u, + pnom to n-1 (Ui) j x1 divisible by g (x).

Le K-uple résultant a = (a1, aK) est alors codé pour produire deux séquences de contrôle.  The resulting K-uple a = (a1, aK) is then encoded to produce two control sequences.

La première est donnée par #@=1 a K a,h/g et c'est un polynôme parce que le polynôme g(x) divise les K polynômes a, . La seconde est donnée

Figure img00350003

par ,=1 a K a,'f/g, l'entrelacement de a,(x) en a,'(x) étant donné par : a/M = ajx6) modulo xn + 1 (2) The first is given by # @ = 1 to K a, h / g and it is a polynomial because the polynomial g (x) divides the K polynomials a,. The second is given
Figure img00350003

by, = 1 to K a, 'f / g, the interleaving of a, (x) into a,' (x) given by: a / M = ajx6) modulo xn + 1 (2)

<Desc/Clms Page number 36><Desc / Clms Page number 36>

ou e est égal à une puissance de 2 (e=2) prise modulo n. Ce type de permutation x vers xe a été présenté dans la première partie concernant K = 1 et garantit la divisibilité de a,' par g lorsque a, est divisible par g.  where e is equal to a power of 2 (e = 2) taken modulo n. This type of permutation x to xe has been introduced in the first part concerning K = 1 and guarantees the divisibility of a, 'by g when a, is divisible by g.

Donnons maintenant quelques exemples avec K = 2.  Let's now give some examples with K = 2.

Considérons un turbocodeur 2 x 4 de la forme décrite en (1) et

Figure img00360001

spécifié par g(x) = 1 + x + x3 ; hi(x) = f2(x) = 1 + x2 + x3 ; h2(x) = W = 1 + x + X2 + x3 et n = 147. Consider a 2 x 4 turbocoder of the form described in (1) and
Figure img00360001

specified by g (x) = 1 + x + x3; hi (x) = f2 (x) = 1 + x2 + x3; h2 (x) = W = 1 + x + X2 + x3 and n = 147.

Avec cette valeur de n, 147, il existe 42 nombres e qui sont chacun le résidu, modulo 147, d'une puissance de 2. Pour chacune de ces valeurs de e, le turbocode correspondant a été simulé sur un canal à bruit blanc additif Gaussien (connu de l'homme du métier sous l'acronyme anglais " AWGN " pour " Additive White Gaussian Noise "), pour différentes valeurs de ratio entre l'énergie par bit Eb et la puissance de bruit par hertz (aussi appelée la densité spectrale de bruit), N.  With this value of n, 147, there are 42 numbers e which are each the residue, modulo 147, of a power of 2. For each of these values of e, the corresponding turbocode has been simulated on an additive white noise channel. Gaussian (known to those skilled in the art under the acronym "AWGN" for "Additive White Gaussian Noise"), for different values of ratio between the energy per Eb bit and the noise power per hertz (also called the density noise spectral), N.

Les valeurs correspondantes des courbes des taux d'erreur par bit ("BER") en fonction du rapport signal/bruit, sont représentées en figure 6, pour n=147, K=2 et pour trois valeurs différentes de e : = 67 = 214, e = 32 = 25 et e
71 = 29. Les deux premières valeurs sont représentatives de " bonnes " valeurs de e, parmi les 42 valeurs possibles, et la dernière valeur de e est représentative des quelques valeurs " moins bonnes " : 1,2, 4,109, 142 et 50.
The corresponding values of the curves of bit error rates ("BER") as a function of the signal-to-noise ratio, are represented in FIG. 6, for n = 147, K = 2 and for three different values of e: = 67 = 214, e = 32 = 25 and e
71 = 29. The first two values are representative of "good" values of e, among the 42 possible values, and the last value of e is representative of the few "less good" values: 1,2, 4,109, 142 and 50.

Avec les mêmes g(x), h,(x), f,(x), pour i = 1 ou 2, mais avec une valeur de n plus élevée, les mêmes simulations peuvent être effectuées. Les cas n = 413 et n = 917 ont été sélectionnés parce qu'ils offrent un grand nombre de valeurs de différentes puissances de 2, modulo n. Pour n = 413, il y a effectivement 174 telles valeurs différentes, et pour n = 917, il y a 390 valeurs telles valeurs différentes.  With the same g (x), h, (x), f, (x), for i = 1 or 2, but with a higher value of n, the same simulations can be performed. The cases n = 413 and n = 917 have been selected because they offer a large number of values of different powers of 2, modulo n. For n = 413, there are actually 174 such different values, and for n = 917, there are 390 values such different values.

Les inventeurs ont observé qu'aucun palier de la courbe d'erreur ne semble apparaître avec la mise en oeuvre de la présente invention pour une valeur de la probabilité d'erreur par bit après décodage de l'ordre de 10-5, lorsque la valeur de e est judicieusement choisie. On note aussi que l'entrelacement des a,(x) pour produire a,*(x) = a,(xe) modulo xn+1 peut se faire  The inventors have observed that no stage of the error curve appears to appear with the implementation of the present invention for a value of the error probability per bit after decoding of the order of 10-5, when the e value is judiciously chosen. We also note that the interlace of a, (x) to produce a, * (x) = a, (xe) modulo xn + 1 can be

<Desc/Clms Page number 37><Desc / Clms Page number 37>

pour chaque valeur de i, avec une valeur de e différente mais toujours de la forme d'une /-ième puissance de 2 : e = 2I. Préférentiellement, on utilise les mêmes entrelaceurs pour toutes les valeurs de i, ce qui préserve l'identité des k-uples de symboles.  for each value of i, with a value of e different but always of the form of a / -th power of 2: e = 2I. Preferentially, the same interleavers are used for all the values of i, which preserves the identity of the k-uples of symbols.

IIb- spécification des turbocodeurs avec K # 2
Considérons, par exemple le turbocodeur 3 x 5 suivant :

Figure img00370001

où g est un polynôme irréductible à coefficients binaires non divisible par un
Figure img00370002

polynôme carré. Cette matrice G code un triplet d'information u = (Yl, u2, u3) en : v = [a1, a2, a3, (ah)9 (akf)91 où a, est obtenu à partir de u, et a,' a partir de a,, comme exposé en regard du premier mode de réalisation. IIb- specification of turbochargers with K # 2
Consider, for example, the following 3 x 5 turbocharger:
Figure img00370001

where g is an irreducible polynomial with binary coefficients not divisible by a
Figure img00370002

square polynomial. This matrix G encodes a triplet of information u = (Y1, u2, u3) in: v = [a1, a2, a3, (ah) 9 (akf) 91 where a, is obtained from u, and a, from a, as discussed with respect to the first embodiment.

Un élément qui influence la distance minimale d'un tel code est le nombre minimum de composants non nuls du 5-uple v.  One element that influences the minimum distance of such a code is the minimum number of non-zero components of 5-uple v.

Il est possible de garantir que tout 5-uple v = (v1, ..., v5) du turbocode contienne au moins trois séquences non nulles v,.  It is possible to guarantee that every 5-uple v = (v1, ..., v5) of the turbocode contains at least three non-zero sequences v ,.

Pour le démontrer, on écrit explicitement a, en aI(xe) (réduit modulo x" + 1), et on représente par " d " l'inverse de e modulo n : ed = 1 (n), équation dans laquelle (n) signifie modulo n .

Figure img00370003
To prove it, we explicitly write a, in a (xe) (reduced modulo x "+ 1), and we represent by" d "the inverse of e modulo n: ed = 1 (n), equation in which (n ) means modulo n.
Figure img00370003

On remarque alors que l'équation a,()f,(x) = 0 modulo (x"+1 ) est équivalente à l'équation a,(x)f,(xd) = 0 modulo (x"+1). Note that the equation a, () f, (x) = 0 modulo (x "+1) is equivalent to the equation a, (x) f, (xd) = 0 modulo (x" +1) .

Cela résulte du fait que e et d sont relativement premiers avec n, de telle manière que pour chaque b(x) de degré inférieur ou égal à n-1, b(xe) et  This results from the fact that e and d are relatively prime with n, so that for each b (x) of degree less than or equal to n-1, b (xe) and

<Desc/Clms Page number 38><Desc / Clms Page number 38>

b(xd), pris modulo (xn+1) sont simplement obtenus par permutation des coefficients de b(x), et que, si on note [a(x)]n(e) le polynôme a(xe) modulo (xn+1), ona:

Figure img00380001

[a(x)f(x)]n(e) = [a(x)]"e [f(x)]n(e) modulo (x"+1 ). b (xd), taken modulo (xn + 1) are simply obtained by permutation of the coefficients of b (x), and that if we write [a (x)] n (e) the polynomial a (xe) modulo (xn) +1), ona:
Figure img00380001

[a (x) f (x)] n (e) = [a (x)] "e [f (x)] n (e) modulo (x" +1).

Il s'ensuit de la théorie des codes dits " MDS " (pour " Maximum Distance Séparable ", en français séparables à distance maximale "), que tout v non nul dans le code généré par G contiendra toujours au moins trois composants non nuls, si les deux conditions suivantes sont satisfaites : - aucun des polynômes h, et n'est nul modulo xN0 + 1, où NO est le plus petit entier tel que g(x) divise xN0 + 1, NO étant impair puisque le polynôme g(x) n'est divisible par aucun carré de polynôme, et - aucune matrice 2 x 2 de la forme

Figure img00380002

avec i différent de j, ne possède un déterminant qui est nul, modulo xN0 + 1. It follows from the theory of the so-called "MDS" codes (for "Maximum Separable Distance", in French separable at maximum distance "), that any non-zero v in the code generated by G will always contain at least three non-zero components, if the two following conditions are satisfied: - none of the polynomials h, and is no modulo xN0 + 1, where NO is the smallest integer such that g (x) divides xN0 + 1, NO being odd since the polynomial g ( x) is not divisible by any square of polynomial, and - no 2 x 2 matrix of the form
Figure img00380002

with i different from j, does not have a determinant that is null, modulo xN0 + 1.

Une propriété similaire est valable pour tout codeur d'un turbocode de dimension K et de longueur N1, avec un nombre de redondances M1 = N1 - K > 2. Dans ce dernier cas, le codeur ressemble à :

Figure img00380003
A similar property is valid for any encoder of a turbocode of dimension K and of length N1, with a number of redundancies M1 = N1 - K> 2. In the latter case, the encoder looks like:
Figure img00380003

Figure img00380004

et toute séquence d'information u = (Y. 1 , .... uK) est d'abord codée en a = (Si 1, ..., aK), puis en :
Figure img00380005
Figure img00380004

and any sequence of information u = (Y. 1, .... uK) is first coded in a = (Si 1, ..., aK), then in:
Figure img00380005

<Desc/Clms Page number 39><Desc / Clms Page number 39>

Soit d, l'inverse de e, modulo n : dJeJ = 1 (n). Chaque v non nul dans le code généré par G contient toujours au moins N1-K+1 composants non nuls si, pour chaque nombre entier r tel que 1 < r < N1-K, chaque sous-matrice r x r de G extraite de ses N1-K dernières colonnes et où h,,,(x) est remplacé par

Figure img00390001

hl1lxd]), possède un déterminant non nul, modulo x+1. Let d be the inverse of e, modulo n: dJeJ = 1 (n). Each non-zero v in the code generated by G always contains at least N1-K + 1 non-null components if, for each integer r such that 1 <r <N1-K, each sub-matrix rxr of G is extracted from its N1 -K last columns and where h ,,, (x) is replaced by
Figure img00390001

hl1lxd]), has a nonzero determinant, modulo x + 1.

Notons ici que le décodage des turbocodes de redondance N1 - K > 2 a déjà été considéré. On consultera, par exemple, l'article de D. DIVSALAR et F. POLLARA intitulé Multiple turbocodes for Deep Space Communications , TDA Progress Report 42-121, du 15 Mai 1995.  It should be noted here that the decoding of turbocode redundancy N1 - K> 2 has already been considered. For example, see D. DIVSALAR and F. POLLARA, Multiple Turbocodes for Deep Space Communications, TDA Progress Report 42-121, May 15, 1995.

Décrivons, maintenant, une méthode pour sélectionner de bons candidats pour obtenir un bon turbocode de dimension K et de longueur N1 avec des entrelaceurs de type "x vers xe".  Let us now describe a method for selecting good candidates to obtain a good K-type turbocode and length N1 with "x to x" interleavers.

Considérons d'abord le cas où N1-K = 2.  Consider first the case where N1-K = 2.

Choisissons un polynôme irréductible g(x) sur GF (2), degré m > 2 tel que NO = 2m-1 > N1 et prenons GF(2m) comme le jeu de résidus polynomiaux modulo g(x). Choisissons aussi n comme multiple impair de NO.  Let us choose an irreducible polynomial g (x) on GF (2), degree m> 2 such that NO = 2m-1> N1 and take GF (2m) as the set of polynomial residues modulo g (x). Let n also be the odd multiple of NO.

Construisons alors une matrice Fà 2 lignes et N1 colonnes :

Figure img00390002

ou a,, i = 1, N1, sont différents éléments non nuls de GF(2m) et r et s des entiers qui sont différents modulo NO. Le choix s = r +1 est, par exemple, toujours un bon choix. Ceci implique que toute sous matrice de # est non singulière. Soit #(1,2) la sous-matrice des deux premières colonnes de #, écrivons [#(1,2)]-1 1-de la manière suivante :
Figure img00390003
Let's construct a matrix Fà 2 rows and N1 columns:
Figure img00390002

or a ,, i = 1, N1, are different non-zero elements of GF (2m) and r and s are integers that are different modulo NO. The choice s = r +1 is, for example, always a good choice. This implies that any sub-matrix of # is non-singular. Let # (1,2) be the sub-matrix of the first two columns of #, write [# (1,2)] - 1 1-as follows:
Figure img00390003

<Desc/Clms Page number 40><Desc / Clms Page number 40>

ou A est une matrice 2 x K sur GF(2m). Pour une valeur choisie de e puissance de 2 modulo n, remplaçons tout élément de la deuxième ligne de A par sa puissance e-ième et notons par # la matrice transposée de cette matrice.  or A is a 2 x K matrix on GF (2m). For a chosen value of e power of 2 modulo n, let us replace every element of the second line of A by its e-th power and note by # the transposed matrix of this matrix.

Interprétons alors les éléments de # comme des polynômes de degré m-1 d'indéterminée x, divisons les par g(x) ou par tout autre polynôme diviseur de xN0+1 et appelons P(x) la matrice résultante. Let's then interpret the elements of # as polynomials of degree m-1 of indeterminate x, divide them by g (x) or by any other divisor polynomial of xN0 + 1 and call P (x) the resulting matrix.

Enfin, définissons la matrice G de dimension K x (K + 2) :
G = [IK P(x)] ou IK est la matrice identité de dimension K.
Finally, let us define the matrix G of dimension K x (K + 2):
G = [IK P (x)] where IK is the identity matrix of dimension K.

Pour chaque valeur de e, ce codeur G peut être utilisé comme turbocodeur. Par simulation, il est alors possible de choisir la meilleure valeur de e.  For each value of e, this encoder G can be used as a turbo encoder. By simulation, it is then possible to choose the best value of e.

Le cas N1 - K > 2 peut être traité de manière similaire. Dans ce cas, avec M1 = N1 - K, on construit une matrice # de type M1 x N1 :

Figure img00400001
The case N1 - K> 2 can be treated in a similar way. In this case, with M1 = N1 - K, we build a matrix of type M1 x N1:
Figure img00400001

Figure img00400002

Avec 111 ,M1) la sous-matrice des MI premières colonnes de F, on écrit (11,M1)]-' T'en [1M1 ] ou IM1 est la matrice identité de dimension M1 et A une sous-matrice sur GF(2m) de dimension M1 x K. Pour des valeurs choisies et = 2It, pour t = 2, ..., M1, on remplace les éléments de la t-ième ligne de # par leur puissance et - ième.
Figure img00400002

With 111, M1) the sub-matrix of the first MI columns of F, we write (11, M1)] - 'T'en [1M1] where IM1 is the identity matrix of dimension M1 and A a sub-matrix on GF ( 2m) of dimension M1 x K. For selected values and = 2It, for t = 2, ..., M1, we replace the elements of the th-th line of # by their power and - th.

On note alors par # la matrice transposée de cette matrice, on interprète les éléments de # comme des polynômes de degré m-1 d'indéterminée x, on les divise par g(x) et on appelle P(x) la matrice résultante de dimensions K x (N - K).  We then write # by the transposed matrix of this matrix, we interpret the elements of # as polynomials of degree m-1 of indeterminate x, we divide them by g (x) and we call P (x) the resulting matrix of dimensions K x (N - K).

<Desc/Clms Page number 41> <Desc / Clms Page number 41>

Les codeurs G = [IK P(x)] obtenus pour différentes valeurs du (M1- 1 )-uple (e2, eM1) sont alors analysés par simulations et les meilleurs peuvent être sélectionnés.  The G = [IK P (x)] coders obtained for different values of the (M1-1) -uple (e2, eM1) are then analyzed by simulations and the best ones can be selected.

IIc - Description d'une mise en oeuvre du deuxième mode de réalisation de la présente invention.  IIc - Description of an implementation of the second embodiment of the present invention.

La description du deuxième mode de réalisation de la présente invention va maintenant se poursuivre en regard des figures 7 et 8, pour K = M1 = 2.  The description of the second embodiment of the present invention will now be continued with reference to FIGS. 7 and 8, for K = M1 = 2.

La figure 7 illustre schématiquement la constitution d'une station de réseau ou station de codage informatique, sous forme de schéma synoptique. Cette station comporte un clavier 711, un écran 709, une source d'informations externe 710, un émetteur hertzien 706, conjointement reliés à un port d'entrée/sortie 703 d'une carte de traitement 701.  FIG. 7 schematically illustrates the constitution of a network station or computer coding station, in the form of a block diagram. This station comprises a keyboard 711, a screen 709, an external information source 710, a radio transmitter 706, jointly connected to an input / output port 703 of a processing card 701.

La carte de traitement 701 comporte, reliés entre eux par un bus d'adresses et de données 702 : - une unité centrale de traitement 700 ; - une mémoire vive RAM 704 ; - une mémoire morte ROM 705 ; et - le port d'entrée/sortie 703.  The processing card 701 comprises, interconnected by an address and data bus 702: a central processing unit 700; a random access memory RAM 704; a ROM memory 705; and - the input / output port 703.

Chacun des éléments illustrés en figure 7 est bien connu de l'homme du métier des micro-ordinateurs et des systèmes de transmission et, plus généralement, des systèmes de traitement de l'information. Ces éléments communs ne sont donc pas décrits ici. On observe, cependant, que : - la source d'informations 710 est, par exemple, un périphérique d'interface, un capteur, un démodulateur, une mémoire externe ou un autre système de traitement d'information (non représenté), et est préférentiellement adaptée à fournir des séquences de signaux représentatifs de parole, de messages de service ou de données multimédia, sous forme de séquences de données binaires,  Each of the elements illustrated in Figure 7 is well known to those skilled in the field of microcomputers and transmission systems and, more generally, information processing systems. These common elements are therefore not described here. It is observed, however, that: the information source 710 is, for example, an interface device, a sensor, a demodulator, an external memory or another information processing system (not shown), and is preferentially adapted to provide signal sequences representative of speech, service messages or multimedia data, in the form of binary data sequences,

<Desc/Clms Page number 42><Desc / Clms Page number 42>

- l'émetteur hertzien 706 est adapté à mettre en #uvre un protocole de transmission par paquets sur un canal non filaire et à transmettre ces paquets sur un tel canal.  the radio transmitter 706 is adapted to implement a packet transmission protocol over a non-wired channel and to transmit these packets on such a channel.

On observe, en outre, que le mot "registre" utilisé dans la description désigne, dans chacune des mémoires 704 et 705, aussi bien une zone mémoire de faible capacité (quelques données binaires) qu'une zone mémoire de grande capacité (permettant de stocker un programme entier).  It is further observed that the word "register" used in the description designates, in each of the memories 704 and 705, both a memory area of low capacity (a few binary data) and a memory area of large capacity (allowing store an entire program).

La mémoire vive 704 conserve des données, des variables et des résultats intermédiaires de traitement, dans des registres de mémoire portant, dans la description, les mêmes noms que les données dont ils conservent les valeurs. La mémoire vive 704 comporte notamment :

Figure img00420001

- un registre "données~primaires" dans lequel sont conservées, dans l'ordre de leur arrivée sur le bus 702, les données binaires en provenance de la source d'information 710, sous forme de deux séquences, u1 et u2, complétées ensuite pour former deux séquences a1 et a2, - un registre "nb~données" qui conserve un nombre entier correspondant au nombre de données binaires n-m dans le registre "données~binaires",
Figure img00420002

- un registre "données-permutées" dans lequel sont conservées, dans l'ordre de leur transmission sur le bus 702, les données binaires permutées, comme décrit en regard de la figure 8, sous forme de deux
Figure img00420003

séquences,a?* et a2*, - un registre "reste~intermédiaire" dans lequel sont conservés successivement les restes intermédiaires des divisions, registre utilisé pour construire chaque séquence a, à partir de la séquence u, correspondante,
Figure img00420004

- un registre "reste finaP' dans lequel sont conservées des données binaires complémentaires, sous forme de deux séquences, et - des registres "a,, bi, çl" et "a2, b2, Ç2" dans lesquels sont conservées, dans l'ordre de leur détermination par l'unité centrale 700, les données binaires des séquences. The RAM 704 stores data, variables and intermediate processing results, in memory registers carrying, in the description, the same names as the data whose values they retain. RAM 704 comprises in particular:
Figure img00420001

a register "data ~ primary" in which are preserved, in the order of their arrival on the bus 702, the binary data from the source of information 710, in the form of two sequences, u1 and u2, completed then to form two sequences a1 and a2, - a register "nb ~ data" which keeps an integer corresponding to the number of binary data nm in the register "data ~ binary",
Figure img00420002

a "data-permutated" register in which, in the order of their transmission on the bus 702, the permuted bit data are stored, as described with reference to FIG. 8, in the form of two
Figure img00420003

sequences, a? * and a2 *, - a register "remainder ~ intermediate" in which are conserved successively the intermediate remains of the divisions, register used to construct each sequence a, from the sequence u, corresponding,
Figure img00420004

a "remainder" register in which complementary binary data are stored in the form of two sequences, and "a ,, b1, b1," and "a2, b2, C2" registers in which are stored in order of their determination by the CPU 700, the binary data of the sequences.

<Desc/Clms Page number 43> <Desc / Clms Page number 43>

La mémoire morte 705 est adaptée à conserver, dans des registres qui, par commodité, possèdent les mêmes noms que les données qu'ils conservent : - le programme de fonctionnement de l'unité centrale de traitement 700, dans un registre "program", - la séquence g, dans un registre "g", - le degré m de g(x), dans un registre "degré"

Figure img00430001

- la séquence h = hl = f2, dans le registre "h", - la séquence f fi = h2, dans le registre "T', - la valeur de NO, dans un registre "NO", - la valeur de N1, dans un registre "N1", - la valeur de M1, dans un registre "M1", - la valeur de M, dans un registre "M", - le tableau définissant l'entrelaceur agissant sur la séquence a1, dans un registre "entrelaceur1", et - le tableau définissant l'entrelaceur agissant sur la séquence a2, dans un registre "entrelaceur2". The read-only memory 705 is adapted to keep, in registers which, for convenience, have the same names as the data they retain: the operating program of the central processing unit 700, in a "program" register, the sequence g, in a register "g", the degree m of g (x), in a register "degree"
Figure img00430001

the sequence h = h1 = f2, in the register "h", the sequence ff = h2, in the register "T", the value of NO, in a register "NO", the value of N1, in a register "N1", - the value of M1, in a register "M1", - the value of M, in a register "M", - the array defining the interleaver acting on the sequence a1, in a register " interleaver1 ", and - the array defining the interleaver acting on the sequence a2, in a register" interleaver2 ".

Les entrelaceurs considérés ici sont respectivement de type "x vers xe1" et "x vers xe2" décrit ci-dessus.  The interleavers considered here are respectively of type "x to xe1" and "x to xe2" described above.

L'unité centrale de traitement 700 est adaptée à mettre en #uvre l'organigramme décrit en figure 8.  The central processing unit 700 is adapted to implement the flowchart described in FIG. 8.

En figure 8, qui représente le fonctionnement d'un codeur tel qu'illustré en figure 7, on observe que, après une opération d'initialisation 800, au cours de laquelle, les registres de la mémoire vive 704 sont initialisés (nb~données = "0"), au cours d'une opération 801, l'unité centrale 700 attend de recevoir, puis reçoit une donnée binaire à transmettre, la positionne en mémoire vive 704, dans le registre "données primaires" et incrémente le compteur "nb données".  In FIG. 8, which represents the operation of an encoder as illustrated in FIG. 7, it is observed that, after an initialization operation 800, during which the registers of the random access memory 704 are initialized (nb ~ data = "0"), during an operation 801, the central unit 700 waits to receive, then receives a binary data to be transmitted, positions it in random access memory 704, in the "primary data" register and increments the counter " nb data ".

On observe ici que, pour constituer les deux séquences Y.1 et u2, l'unité centrale 700 constitue d'abord la séquence u1 puis la séquence u2 avec les données primaires en provenance de la source d'information 710.  It can be observed here that, to constitute the two sequences Y.1 and u2, the central unit 700 first constitutes the sequence u1 and then the sequence u2 with the primary data from the information source 710.

<Desc/Clms Page number 44> <Desc / Clms Page number 44>

Ensuite, au cours d'un test 802, l'unité centrale 700 détermine si le nombre entier conservé dans le registre "nb~données" est égal, ou non, au produit M.NO auquel est soustrait le degré m de g(x), M, NO et le degré m de g(x) étant des valeurs conservées en mémoire morte 705.  Then, during a test 802, the CPU 700 determines whether the whole number stored in the register "nb ~ data" is equal to the product M.NO to which is subtracted the degree m of g (x ), M, NO and the degree m of g (x) being values stored in read-only memory 705.

Lorsque le résultat du test 802 est négatif, l'opération 801 est réitérée. Lorsque le résultat du test 802 est positif, au cours d'une l'opération 803, les divisions des polynômes u1(x) et u2(x) respectivement associés aux séquences de données binaires u1 et u2 conservées dans le registre

Figure img00440001

"données-primaires", par le polynôme g(x) sont effectuées, jusqu'aux derniers termes (de plus haut degrés) de u(x) et U2(X), en mettant en #uvre, à cet effet, le registre "resfe intermédiaire". Les restes de ces divisions sont mis en mémoire dans le registre "reste naP'. Les résultats de ces divisions fournissent les premiers éléments des séquences 121 = a1/g et b2 = a2/g. When the result of the test 802 is negative, the operation 801 is repeated. When the result of the test 802 is positive, during an operation 803, the divisions of the polynomials u1 (x) and u2 (x) respectively associated with the binary data sequences u1 and u2 stored in the register
Figure img00440001

"primary data", by the polynomial g (x) are carried out, up to the last terms (of higher degrees) of u (x) and U2 (X), by implementing, for this purpose, the register "intermediate resf." The remains of these divisions are stored in the register "remain naP." The results of these divisions provide the first elements of the sequences 121 = a1 / g and b2 = a2 / g.

Ensuite, au cours d'une opération 804, les données binaires

Figure img00440002

conservées dans le registre "reste frnaP' sont respectivement juxtaposées aux fins des séquences u1 et u2 pour former les séquences a1 et a2. Les données binaires des séquences a1 et a2 sont mises en mémoire dans les registres "a1,
Figure img00440003

1211 pi" et "a2, b2, C2". Then, during an operation 804, the binary data
Figure img00440002

stored in the register "remain frnaP" are respectively juxtaposed for the purposes of the sequences u1 and u2 to form the sequences a1 and a2 The binary data of the sequences a1 and a2 are stored in the registers "a1,
Figure img00440003

1211 pi "and" a2, b2, C2 ".

Ensuite, au cours d'une opération 805, les divisions effectuées au cours de l'opération 803 sont poursuivies, avec les données additionnelles ajoutées au cours de l'opération 804 et les séquences b1 et b2 sont complétées

Figure img00440004

dans les registre "ai, b1t ç" et "a2, b2, ç2". Then, during an operation 805, the divisions performed during the operation 803 are continued, with the additional data added during the operation 804 and the sequences b1 and b2 are completed.
Figure img00440004

in the register "ai, b1t ç" and "a2, b2, ç2".

Puis, au cours d'une opération 806 : - les données binaires de la séquence a1 sont respectivement et

Figure img00440005

successivement lues dans le registre "ah Pl, pi", dans l'ordre décrit par le tableau "entrelaceur1" conservé en mémoire morte 705, et - les données binaires de la séquence a2 sont respectivement et successivement lues dans le registre "a2, b2, c2", dans l'ordre décrit par le tableau "entrelaceur2" conservé en mémoire morte 705. Then, during an operation 806: the binary data of the sequence a1 are respectively and
Figure img00440005

successively read in the register "ah Pl, pi", in the order described by the table "interleaver1" stored in read-only memory 705, and - the binary data of sequence a2 are respectively successively read in the register "a2, b2 , c2 ", in the order described by the" interleaver2 "table stored in read-only memory 705.

Les données qui résultent successivement de ces lectures sont respectivement mises en mémoire dans le registre "données~permutées" de la mémoire vive 704.  The data that successively results from these readings are respectively stored in the "data ~ permuted" register of the RAM 704.

<Desc/Clms Page number 45> <Desc / Clms Page number 45>

Ensuite, au cours d'une opération 807, les divisions des polynômes a1*(x) et a2*(x), respectivement associés aux séquences de données binaires permutées conservées dans le registre

Figure img00450001

"données~permutées", par le polynôme g(x) sont effectuées, en mettant en #uvre, à cet effet, le registre "/'ese~//ef77?éd/a/re". Les résultats de ces divisions sont mis en mémoire dans le registre "a, th ç" et "a2, b2, Ç2", et correspondent aux données binaires des séquences c1 et c2. Then, during an operation 807, the polynomial divisions a1 * (x) and a2 * (x) respectively associated with the permuted binary data sequences stored in the register
Figure img00450001

"data ~ permuted" by the polynomial g (x) are performed, implementing, for this purpose, the register "/ 'ese ~ // ef77? ed / a / re". The results of these divisions are stored in the register "a, th ç" and "a2, b2, Ç2", and correspond to the binary data of the sequences c1 and c2.

Au cours d'une opération 808 deux séquences dites "de contrôle" ou "redondantes" sont déterminées : - la séquence bs est déterminée en effectuant le produit des polynômes associés aux séquences 121 et b2 conservées dans les registres "a1,

Figure img00450002

121, pl" et "a2, b2, P2" de la mémoire vive 704, respectivement par les polynômes h(x) et f(x) ; - la séquence cs est déterminée en effectuant le produit des polynômes associés aux séquences c1 et c2 conservées dans les registres "a1,
Figure img00450003

b, pl" et "a2, b2, P2" de la mémoire vive 704, respectivement par les polynômes f(x) et h(x). During an operation 808 two so-called "control" or "redundant" sequences are determined: the sequence bs is determined by producing the product of the polynomials associated with the sequences 121 and b2 stored in the "a1" registers,
Figure img00450002

121, pl "and" a2, b2, P2 "of the random access memory 704, respectively by the polynomials h (x) and f (x) - the sequence cs is determined by producing the product of the polynomials associated with the sequences c1 and c2 kept in the registers "a1,
Figure img00450003

b, pl "and" a2, b2, P2 "of the random access memory 704, respectively by the polynomials f (x) and h (x).

On observe que, grâce à l'invention, on gagne des éléments de mémoire en effectuant la division par g(x) avant les multiplications par h(x) ou f(x).

Figure img00450004
It is observed that, thanks to the invention, memory elements are obtained by dividing by g (x) before multiplications by h (x) or f (x).
Figure img00450004

Au cours d'une opération 809, les séquences ai, a2, bs et fus sont émises en utilisant, à cet effet, l'émetteur 706. Ensuite, les registres de la mémoire 704 sont, à nouveau, initialisés, en particulier le compteur

Figure img00450005

Nb données est remis à "0" et l'opération 801 est réitérée. During an operation 809, the sequences ai, a2, bs and fus are emitted using, for this purpose, the transmitter 706. Then, the registers of the memory 704 are, again, initialized, in particular the counter
Figure img00450005

Nb data is reset to "0" and operation 801 is repeated.

On observe ici qu'en variante, au cours de l'opération 809, les séquences a1 et a2 sont émises intégralement, mais seulement un sousensemble, par exemple une donnée sur deux, de chacune des séquences bs et cs est émis. Cette variante est connue de l'homme du métier sous le nom de poinçonnage.  It is observed here that, alternatively, during the operation 809, the sequences a1 and a2 are transmitted integrally, but only a subset, for example every other data, of each of the sequences bs and cs is emitted. This variant is known to those skilled in the art under the name of punching.

En ce qui concerne le décodage, on observe qu'en connaissant les polynômes g(x), h(x), f(x) et les entrelaceurs G1 et G2 qui, à partir des séquences a1 et a2 fournissent respectivement les séquences permutées a1* et  As regards the decoding, it is observed that by knowing the polynomials g (x), h (x), f (x) and the interleavers G1 and G2 which, from the sequences a1 and a2 respectively provide the permuted sequences a1 * and

<Desc/Clms Page number 46><Desc / Clms Page number 46>

a2*, l'homme du métier sait, sans problème technique, réaliser le décodeur adapté au décodage et à la correction d'erreur affectant le quadruplet de

Figure img00460001

séquences (fi1, a2, bs, p,) en utilisant les entrelaceurs considérés ci-dessus et, éventuellement les désentrelaceurs correspondants. a2 *, the person skilled in the art knows, without any technical problem, making the decoder suitable for decoding and error correction affecting the quadruplet of
Figure img00460001

sequences (fi1, a2, bs, p,) using the interleavers considered above and, optionally, the corresponding de-interlacers.

En figure 9, on observe qu'un dispositif de décodage adapté à décoder les séquences émises par le dispositif de décodage illustré aux figures 4 à 8, comporte, essentiellement : - un décodeur 901 correspondant au codeur 401, qui reçoit les estimations des séquences transmises, v1 à vK+1 ainsi que K séquence d'information extrinsèques w"'1 à w"K exposées plus loin, et fournit K séquences d'estimation a posteriori w1 à Wk, - K entrelaceurs 902, identiques aux entrelaceurs 402 à 405 utilisés dans le codeur, qui reçoivent respectivement les séquences w1 à wK et les entrelacent respectivement en w'1 à w'K.  FIG. 9 shows that a decoding device adapted to decode the sequences transmitted by the decoding device illustrated in FIGS. 4 to 8, essentially comprises: a decoder 901 corresponding to the encoder 401, which receives the estimates of the transmitted sequences , v1 to vK + 1 as well as K extrinsic information sequence w "'1 to w" K discussed below, and provides K posterior estimation sequences w1 to Wk, K interleavers 902, identical to interleavers 402 to 405 used in the encoder, which respectively receive the sequences w1 to wK and interleaves respectively w'1 to w'K.

- un deuxième décodeur 903, correspondant au codeur 406 et recevant les séquences w'1 à w'K ainsi que la séquence YK+2, et fournit d'une part K séquences d'estimation a posteriori w"1 à w"K et, d'autre part, une séquence estimée a', et - K désentrelaceurs 904, inverses des entrelaceurs 402 à 405, recevant les

Figure img00460002

séquences W"1 à w'K et fournissant les séquences W"'1 à w"K. a second decoder 903, corresponding to the encoder 406 and receiving the sequences w'1 to w'K and the sequence YK + 2, and on the one hand furnishes K posterior estimation sequences w "1 to w" K and on the other hand, an estimated sequence of 'and K K deinterlacers 904, inverse of the interleaver 402 to 405, receiving the
Figure img00460002

sequences W "1 to w'K and providing the sequences W"'1 to w "K.

On ne prend en compte la séquence estimée a' qu'à la suite d'un nombre d'itérations prédéterminé (voir l'article "Near Shannon limit errorcorrecting coding and decoding : turbocodes" cité supra).  The estimated sequence is taken into account only after a predetermined number of iterations (see the article "Near Shannon Limit errorcorrecting coding and decoding: turbocodes" cited above).

Conformément à la présente invention, les entrelaceurs et désentrelaceurs utilisés au décodage possèdent, chacun, les mêmes caractéristiques que les entrelaceurs utilisés au codage et, préférentiellement, sont du type "x vers xe". Préférentiellement, au codage comme au décodage, à valeur de jidentique les exposants eIJ sont égaux. Préférentiellement aussi, au codage comme au décodage, les valeurs des exposants e,, sont toutes des puissances de 2.  According to the present invention, the interleavers and de-interleavers used in the decoding each have the same characteristics as the interleavers used in the coding and, preferably, are of the "x to x" type. Preferably, the coding as well as the decoding, with a value of identical, the exponents eIJ are equal. Preferably also, at coding as at decoding, the values of exponents e ,, are all powers of 2.

<Desc/Clms Page number 47> <Desc / Clms Page number 47>

En outre, les décodeurs 901 et 903 sont initialisés en prenant en compte le fait que les codeurs 401 et 406 possèdent, chacun, un état initial et un état final nul.  In addition, the decoders 901 and 903 are initialized taking into account the fact that the encoders 401 and 406 each have an initial state and a zero final state.

Concernant le décodage, le lecteur pourra se référer : - à l'article de MM. L.R. BAHL, J. COCKE, F. JELINEK et J.  Regarding decoding, the reader may refer to: - the article by MM. L.R. BAHL, J. COCKE, F. JELINEK and J.

RAVIV intitulé "Optimal decoding of linear codes for minimizing symbol error rate", publié dans la revue IEEE Transactions on Information Theory, en mars 1974 ; - à l'article de MM. J. HAGENAUER, E. OFFER et L. PAPKE intitulé "Iterative decoding of binary block and convolutional codes" publié dans la revue IEEE Transactions on Information Theory, en mars 1996 ; - à l'article de MM. J. HAGENAUER et P. HOEHER intitulé "A viterbi algorithm with soft decision outputs and its applications", publiée avec les compte-rendus de la conférence IEEE GLOBECOM, pages 1680-1686, en novembre 1989 ; - à l'article de MM. J. HAGENAUER, P. ROBERTSON et L. RAVIV entitled "Optimal decoding of linear codes for minimizing symbol error rate", published in IEEE Transactions on Information Theory, March 1974; - in the article of MM. J. HAGENAUER, E. OFFER and L. PAPKE entitled "Iterative decoding of binary block and convolutional codes" published in the journal IEEE Transactions on Information Theory, March 1996; - in the article of MM. J. HAGENAUER and P. HOEHER entitled "A viterbi algorithm with soft decision outputs and its applications", published with the proceedings of the IEEE GLOBECOM conference, pages 1680-1686, in November 1989; - in the article of MM. J. HAGENAUER, P. ROBERTSON and L.

PAPKE intitulé "Iterative (turbo)decoding of systematic convolutional codes with the MAP and SOVA algorithms", publiée par la revue Informationstechnische Gesellschaft (ITG) Fachbericht, pages 21 - 29, octobre 1994 ; - à l'article de MM. C. BERROU, S. EVANO et G. BATTAIL, intitulé "Turbo-block-codes" et publié avec les compte-rendus du séminaire "turbo coding" organisé par l'Institut de Technologie de Lünd (Suède) (Département d'électronique appliquée) en août 1996.PAPKE entitled "Iterative (turbo) decoding of systematic convolutional codes with MAP and SOVA algorithms", published by the magazine Informationstechnische Gesellschaft (ITG) Fachbericht, pages 21-29, October 1994; - in the article of MM. C. BERROU, S. EVANO and G. BATTAIL, entitled "Turbo-block-codes" and published with the minutes of the "turbo coding" seminar organized by the Lünd Institute of Technology (Sweden) (Department of Electronics applied in August 1996.

Claims (27)

REVENDICATIONS 1. Procédé de codage caractérisé en ce que : 1/il il prend en compte : - un entier prédéterminé M1, égal ou supérieur à 2, - un nombre K, supérieur ou égal à 2, de séquences a, (i=1,...,K) de données binaires représentatives d'une grandeur physique, chaque séquence a, possédant : # une représentation polynomiale a,(x) multiple d'un polynôme g,(x) prédéterminé, et # un nombre de données binaires égal au produit d'un nombre entier M quelconque par l'entier NO, plus petit entier tel que le polynôme xN0+1 soit divisible par chacun des polynômes g,(x) ; 2/ il comporte une première opération de production d'un nombre K*M1 de 1. Coding method characterized in that: 1 / it takes into account: a predetermined integer M1, equal to or greater than 2, a number K, greater than or equal to 2, of sequences a, (i = 1, ..., K) of binary data representative of a physical quantity, each sequence a, having: # a polynomial representation a, (x) multiple of a predetermined polynomial g, (x), and # a number of binary data equal to the product of any integer M by the integer NO, smaller integer such that the polynomial xN0 + 1 is divisible by each of the polynomials g, (x); 2 / it comprises a first operation of producing a number K * M1 of
Figure img00480001
Figure img00480001
séquences dites permutées , a,,*, (i=1,...,K ; j=1,...,M1 ) (806), chaque séquence aIJ* - étant obtenue par une permutation de la séquence a; correspondante, ladite permutation étant, dans une représentation où les données binaires de chaque séquence a, sont écrites, ligne par ligne, dans un tableau à NO colonnes et M lignes, la résultante d'un nombre quelconque de permutations dites élémentaires qui, chacune : # soit a la propriété de transformer le code cyclique de longueur NO et de polynôme générateur g,(x) en un code cyclique équivalent de polynôme générateur gIJ(x) pouvant être égal à g,(x), et agit par permutation sur les NO colonnes du tableau représentant a,, # soit est une permutation quelconque des symboles d'une colonne dudit tableau ; et - possédant, en conséquence, une représentation polynomiale a,,*(x) qui est égale à un produit polynomial c,,(x)g,,(x),  sequences said permuted, a ,, *, (i = 1, ..., K; j = 1, ..., M1) (806), each sequence aIJ * - being obtained by a permutation of the sequence a; corresponding, said permutation being, in a representation where the binary data of each sequence a, are written, row by row, in an array with NO columns and M rows, the resultant of any number of so-called elementary permutations which each: # has the property of transforming the cyclic code of length NO and generator polynomial g, (x) into an equivalent cyclic code of generating polynomial gIJ (x) which can be equal to g, (x), and acts by permutation on the NO columns of the table representing a ,, # is any permutation of the symbols of a column of that table; and - having, accordingly, a polynomial representation a ,, * (x) which is equal to a polynomial product c ,, (x) g ,, (x), <Desc/Clms Page number 49><Desc / Clms Page number 49> c,,(x), pour j=1,...,M9, chaque polynôme flx) étant un polynôme de degré au plus égal au degré du polynôme g,,(x) de mêmes indices i et j.  c ,, (x), for j = 1, ..., M9, each polynomial flx) being a polynomial of degree at most equal to the degree of the polynomial g ,, (x) of the same indices i and j.
Figure img00490001
Figure img00490001
- au moins une séquence permutée aIJ* étant différente de la séquence a, correspondante, 3/ il comporte une deuxième opération de production de M1 séquences redondantes (807 à 809) dont la représentation polynomiale est égale à E fIJ(x)  at least one permuted sequence aIJ * being different from the corresponding sequence a 3 / it comprises a second operation of production of M1 redundant sequences (807 to 809) whose polynomial representation is equal to E fIJ (x)
2. Procédé de codage caractérisé en ce que : 1/il il prend en compte : - un entier prédéterminé M1, égal ou supérieur à 2,  2. Coding method characterized in that: 1 / it takes into account: a predetermined integer M1, equal to or greater than 2,
Figure img00490002
Figure img00490002
- un nombre K, supérieur ou égal à 2, de séquences a, (i=1,...,K) de données binaires représentatives d'une grandeur physique, chaque séquence a, possédant : # une représentation polynomiale a,(x) multiple d'un polynôme g,(x) prédéterminé et sans facteurs polynomiaux multiples, et # un nombre de données binaires égal au produit d'un nombre entier impair M quelconque par l'entier NO, plus petit entier tel que le polynôme xN0+1 soit divisible par chacun des polynômes g,(x) ; 2/ il comporte une première opération de production d'un nombre K*M1 de  a number K, greater than or equal to 2, of sequences a, (i = 1, ..., K) of binary data representative of a physical quantity, each sequence a, having: # a polynomial representation a, (x ) multiple of a predetermined polynomial g, (x) and without multiple polynomial factors, and # a number of binary data equal to the product of an odd integer M by the integer NO, smaller integer such that the polynomial xN0 +1 is divisible by each of the polynomials g, (x); 2 / it comprises a first operation of producing a number K * M1 of
Figure img00490003
Figure img00490003
séquences dites permutées , a,,*, (i=1,...,K; j=1,...,M9) (806), chaque séquence a,,* possédant une représentation polynomiale égale à a,,*(x)=a,*(x4) modulo (xn+1), où - n est le produit du nombre M par l'entier NO, e,, est un nombre relativement premier avec n - cI} est le quotient de a,,*(x) par g,,(x), - le polynôme g,,(x) est le polynôme générateur du plus petit code cyclique de longueur NO contenant le polynôme gI(xeIJ) modulo (xN0+1), au moins une séquence permutée aIJ* étant différente de la séquence a, correspondante ;  sequences said permuted, a ,, *, (i = 1, ..., K; j = 1, ..., M9) (806), each sequence a ,, * having a polynomial representation equal to a ,, * (x) = a, * (x4) modulo (xn + 1), where - n is the product of the number M by the integer NO, e ,, is a relatively prime number with n - cI} is the quotient of a ,, * (x) by g ,, (x), - the polynomial g ,, (x) is the generator polynomial of the smallest cyclic code of length NO containing the polynomial gI (xeIJ) modulo (xN0 + 1), at at least one permuted sequence aIJ * being different from the corresponding sequence a; <Desc/Clms Page number 50><Desc / Clms Page number 50> c,,(x), pour/=1,...,M7, chaque polynôme f,,(x) étant un polynôme prédéterminé de degré au plus égal au degré du polynôme g,,(x) de mêmes indices /et j.  c ,, (x), for / = 1, ..., M7, each polynomial f ,, (x) being a predetermined polynomial of degree at most equal to the degree of the polynomial g ,, (x) of the same indices / and j.
Figure img00500001
Figure img00500001
3/ il comporte une deuxième opération de production de M1 séquences redondantes (807 à 809) dont la représentation polynomiale est égale à E fIJ(x)  3 / it comprises a second operation for producing M1 redundant sequences (807 to 809) whose polynomial representation is equal to E fIJ (x)
3. Procédé de codage selon la revendication 2, caractérisé en ce que, au cours de la première opération de production, toutes les valeurs des exposants e,, possédant la même valeur de l'indice jsont identiques.  3. Coding method according to claim 2, characterized in that, during the first production operation, all the values of the exponents e ,, having the same value of the index j are identical. 4. Procédé de codage selon l'une quelconque des revendications 2 ou 3, caractérisé en ce que, au cours de la première opération de production, toutes les valeurs des exposants eIJ sont égales à une puissance de 2.  4. Encoding method according to any one of claims 2 or 3, characterized in that, during the first production operation, all the values of exponents eIJ are equal to a power of 2. 5. Procédé de codage selon l'une quelconque des revendications 1 à 4, caractérisé en ce qu'il comporte une opération de transmission d'une part des séquences a,, et, d'autre part, d'un sous-ensemble des données des autres séquences.  5. Coding method according to any one of claims 1 to 4, characterized in that it comprises a transmission operation on the one hand the sequences a ,, and, on the other hand, a subset of data from other sequences. 6. Dispositif de codage caractérisé en ce qu'il comporte un moyen de traitement adapté à : 1/ prendre en compte : - un entier prédéterminé M1, égal ou supérieur à 2,  6. Encoding device characterized in that it comprises a processing means adapted to: 1 / take into account: a predetermined integer M1, equal to or greater than 2,
Figure img00500002
Figure img00500002
- un nombre K, supérieur ou égal à 2, de séquences a, (i=1,...,K) de données binaires représentatives d'une grandeur physique, chaque séquence a, possédant : # une représentation polynomiale a,(x) multiple d'un polynôme g,(x) prédéterminé, et # un nombre de données binaires égal au produit d'un nombre entier M quelconque par l'entier NO, plus petit entier tel que le polynôme xN0+1 soit divisible par chacun des polynômes g,(x) ;  a number K, greater than or equal to 2, of sequences a, (i = 1, ..., K) of binary data representative of a physical quantity, each sequence a, having: # a polynomial representation a, (x ) multiple of a predetermined polynomial g, (x), and # a number of binary data equal to the product of any integer M by the integer NO, smaller integer such that the polynomial xN0 + 1 is divisible by each polynomials g, (x); <Desc/Clms Page number 51><Desc / Clms Page number 51> égale à E f,,(x) c,,(x), pour j=1,...,M1, chaque polynôme f,,(x) étant un polynôme de degré au plus égal au degré du polynôme g,,(x) de mêmes indices i et j.  equal to E f ,, (x) c ,, (x), for j = 1, ..., M1, each polynomial f ,, (x) being a polynomial of degree at most equal to the degree of the polynomial g ,, (x) same indices i and j.
Figure img00510003
Figure img00510003
a,,*(x) qui est égale à un produit polynomial c,,(x)g,(x), - au moins une séquence permutée aIJ* étant différente de la séquence a, correspondante, 3/ produire M1 séquences redondantes dont la représentation polynomiale est  a ,, * (x) which is equal to a polynomial product c ,, (x) g, (x), - at least one permuted sequence aIJ * being different from the corresponding sequence a, 3 / producing M1 redundant sequences of which the polynomial representation is
Figure img00510002
Figure img00510002
(i=1,...,K ; j=1,...,M9), chaque séquence ali - étant obtenue par une permutation de la séquence a, correspondante, ladite permutation étant, dans une représentation où les données binaires de chaque séquence a, sont écrites, ligne par ligne, dans un tableau à NO colonnes et M lignes, la résultante d'un nombre quelconque de permutations dites élémentaires qui, chacune : # soit a la propriété de transformer le code cyclique de longueur NO et de polynôme générateur g,(x) en un code cyclique équivalent de polynôme générateur gIJ(x) pouvant être égal à g,(x), et agit par permutation sur les NO colonnes du tableau représentant aj, # soit est une permutation quelconque des symboles d'une colonne dudit tableau ; et - possédant, en conséquence, une représentation polynomiale  (i = 1, ..., K; j = 1, ..., M9), each sequence ali - being obtained by a permutation of the sequence a, corresponding, said permutation being, in a representation where the binary data of each sequence a, are written, line by line, in an array with NO columns and M rows, the resultant of any number of so-called elementary permutations, each of which: # has the property of transforming the cyclic code of length NO and of generator polynomial g, (x) into an equivalent cyclic code of generator polynomial gIJ (x) which may be equal to g, (x), and acts by permutation on the NO columns of the array representing aj, # is any permutation of symbols of a column of said table; and - having, accordingly, a polynomial representation
Figure img00510001
Figure img00510001
2/ production d'un nombre K*M1 de séquences dites permutées , aIJ*,  2 / production of a number K * M1 of sequences called permuted, aIJ *,
7. Dispositif de codage caractérisé en ce qu'il comporte un moyen de traitement adapté à : 1/ prendre en compte : - un entier prédéterminé M1, égal ou supérieur à 2,  7. Encoding device characterized in that it comprises a processing means adapted to: 1 / take into account: a predetermined integer M1, equal to or greater than 2,
Figure img00510004
Figure img00510004
- un nombre K, supérieur ou égal à 2, de séquences a, (i=1,...,K) de données binaires représentatives d'une grandeur physique, chaque séquence a, possédant :  a number K, greater than or equal to 2, of sequences a, (i = 1, ..., K) of binary data representative of a physical quantity, each sequence a, having: <Desc/Clms Page number 52><Desc / Clms Page number 52> égale à E f,,(x) c,,(x), poury=1,...,Mf, chaque polynôme f,,(x) étant un polynôme prédéterminé de degré au plus égal au degré du polynôme g,,(x) de mêmes indices i et j.  equal to E f ,, (x) c ,, (x), fory = 1, ..., Mf, each polynomial f ,, (x) being a predetermined polynomial of degree at most equal to the degree of the polynomial g ,, (x) same indices i and j.
Figure img00520002
Figure img00520002
2/ produire un nombre K*M9 de séquences dites permutées , a,,*, (i=1,...,K; j=1,...,M9), chaque séquence a,,* possédant une représentation polynomiale égale à a,} *(x)=a,*(J1) modulo (x"+1), où - n est le produit du nombre M par l'entier NO, - eIJ est un nombre relativement premier avec n - c,, est le quotient de a,,*(x) par g,,(x), - le polynôme g,,(x) est le polynôme générateur du plus petit code cyclique de longueur NO contenant le polynôme gI(xeij) modulo (xN0+1), au moins une séquence permutée aij* étant différente de la séquence a, correspondante ; 3/ produire M1 séquences redondantes dont la représentation polynomiale est  2 / produce a number K * M9 of sequences called permuted, a ,, *, (i = 1, ..., K; j = 1, ..., M9), each sequence a ,, * having a polynomial representation equal to a,} * (x) = a, * (J1) modulo (x "+1), where - n is the product of the number M by the integer NO, - eIJ is a relatively prime number with n - c ,,, is the quotient of a ,, * (x) by g ,, (x), - the polynomial g ,, (x) is the generator polynomial of the smallest cyclic code of length NO containing the polynomial gI (xeij) modulo (xN0 + 1), at least one permuted sequence aij * being different from the corresponding sequence a; 3 / producing M1 redundant sequences whose polynomial representation is
Figure img00520001
Figure img00520001
# une représentation polynomiale a,(x) multiple d'un polynôme g,(x) prédéterminé et sans facteurs polynomiaux multiples, et # un nombre de données binaires égal au produit d'un nombre entier impair M quelconque par l'entier NO, plus petit entier tel que le polynôme xN0+1 soit divisible par chacun des polynômes g,(x) ;  # a polynomial representation a, (x) multiple of a predetermined polynomial g, (x) and without multiple polynomial factors, and # a number of binary data equal to the product of an odd integer M by the integer NO, smaller integer such that the polynomial xN0 + 1 is divisible by each of the polynomials g, (x);
8. Dispositif de codage selon la revendication 7, caractérisé en ce que le moyen de traitement est adapté à mettre en #uvre des exposants e,, qui, lorsqu'ils possèdent la même valeur de l'indice j, sont identiques.  8. Encoding device according to claim 7, characterized in that the processing means is adapted to implement exponents e ,, which, when they have the same value of the index j, are identical. 9. Dispositif de codage selon l'une quelconque des revendications 7 ou 8, caractérisé en ce que le moyen de traitement est adapté à mettre en #uvre des exposants e,, qui possèdent, chacun une valeur égale à une puissance de 2.  9. Encoding device according to any one of claims 7 or 8, characterized in that the processing means is adapted to implement exponents e ,, which each have a value equal to a power of 2. <Desc/Clms Page number 53> <Desc / Clms Page number 53> 10. Dispositif de codage selon l'une quelconque des revendications 6 à 9, caractérisé en ce qu'il comporte un moyen de transmission adapté à transmettre, d'une part, les séquences a,, et, d'autre part, un sous-ensemble des données des autres séquences.  10. Encoding device according to any one of claims 6 to 9, characterized in that it comprises a transmission means adapted to transmit, on the one hand, the sequences a ,, and on the other hand, a sub all the data of the other sequences. 11. Procédé de décodage caractérisé en ce que : 1/ il prend en compte : - un entier prédéterminé M1, égal ou supérieur à 2, - un nombre K, supérieur ou égal à 2, de séquences a, (/=1 ,...,K) de données représentatives d'une grandeur physique, chaque séquence a, possédant : # une représentation polynomiale a,(x) multiple d'un polynôme g,(x) prédéterminé, et # un nombre de données binaires égal au produit d'un nombre entier M quelconque par l'entier NO, plus petit entier tel que le polynôme xN0+1 soit divisible par chacun des polynômes g,(x) ; 2/ il comporte une opération de turbodécodage parallèle de K séquences de symboles mettant en oeuvre les polynômes diviseurs g,,(x).  11. Decoding method characterized in that 1 / it takes into account: - a predetermined integer M1, equal to or greater than 2, - a number K, greater than or equal to 2, of sequences a, (/ = 1,. .., K) of data representative of a physical quantity, each sequence a, having: # a polynomial representation a, (x) multiple of a predetermined polynomial g, (x), and # a number of binary data equal to produces any integer M by the integer NO, smaller integer such that the polynomial xN0 + 1 is divisible by each of the polynomials g, (x); 2 / it comprises a parallel turbodecoding operation of K symbol sequences implementing the divisor polynomials g ,, (x). 3/ il comporte, pour chaque a,, M1 opérations de permutation, dont au moins une n'est pas l'identité , chaque permutation étant, dans une représentation où les données binaires de chaque séquence a, sont écrites, ligne par ligne, dans un tableau à NO colonnes et M lignes, la résultante d'un nombre quelconque de permutations dites élémentaires qui, chacune : # soit a la propriété de transformer le code cyclique de longueur NO et de polynôme générateur g,(x) en un code cyclique équivalent de polynôme générateur g,,(x) pouvant être égal à g,(x), et agit par permutation sur les NO colonnes du tableau représentant a,, # soit est une permutation quelconque des symboles d'une colonne dudit tableau. 3 / it comprises, for each a ,, M1 operations of permutation, of which at least one is not the identity, each permutation being, in a representation where the binary data of each sequence a, are written line by line, in a table with NO columns and M rows, the resultant of any number of so-called elementary permutations, each of which: # has the property of transforming the cyclic code of length NO and of generator polynomial g, (x) into a code cyclic equivalent of generator polynomial g ,, (x) being able to be equal to g, (x), and acts by permutation on the NO columns of the array representing a ,, # is any permutation of the symbols of a column of said array. <Desc/Clms Page number 54> <Desc / Clms Page number 54> 12. Procédé de décodage caractérisé en ce que : 1/il prend en compte : - un entier prédéterminé M1, égal ou supérieur à 2, - un nombre K, supérieur ou égal à 2, de séquences a, (i=1,...,K) de données représentatives d'une grandeur physique, chaque séquence a, possédant : # une représentation polynomiale a,(x) multiple d'un polynôme g,(x) prédéterminé et sans facteurs polynomiaux multiples, et # un nombre de données binaires égal au produit d'un nombre entier impair M quelconque par l'entier NO, plus petit entier tel que le polynôme xN0+1 soit divisible par chacun des polynômes g,(x) ; 2/ il comporte une opération de turbodécodage parallèle de K séquences de symboles mettant en oeuvre les polynômes diviseurs g,,(x), 3/ ladite opération de turbodécodage parallèle comportant une opération de  12. Decoding method characterized in that 1 / it takes into account: - a predetermined integer M1, equal to or greater than 2, - a number K, greater than or equal to 2, of sequences a, (i = 1 ,. .., K) of data representative of a physical quantity, each sequence a, having: # a polynomial representation a, (x) multiple of a predetermined polynomial g, (x) and without multiple polynomial factors, and # a number of binary data equal to the product of an odd integer M by the integer NO, smaller integer such that the polynomial xN0 + 1 is divisible by each of the polynomials g, (x); 2 / it comprises a parallel turbodecoding operation of K symbol sequences implementing the divide polynomials g ,, (x), 3 / said parallel turbodecoding operation comprising a
Figure img00540001
Figure img00540001
permutation produisant des séquences dites permutées , a,,*, (i=1,...,K; j=1,...,M1), chaque séquence permutée a,J* possédant une représentation polynomiale égale à a,,*(x)=a,*(xe4) modulo (x"+1 ), où : - n est le produit du nombre M par l'entier NO, - eIJ est un nombre relativement premier avec n - c,, est le quotient de aIJ*(x) par g,,(x), - le polynôme gIJ(x) est le polynôme générateur du plus petit code cyclique de longueur NO contenant le polynôme gI(xIJ) modulo (xN0+1), au moins une séquence permutée a,,* étant différente de la séquence a, correspondante.  permutation producing so-called permuted sequences, a ,, *, (i = 1, ..., K; j = 1, ..., M1), each permuted sequence a, J * having a polynomial representation equal to a ,, * (x) = a, * (xe4) modulo (x "+1), where: - n is the product of the number M by the integer NO, - eIJ is a relatively prime number with n - c ,, is the quotient of aIJ * (x) by g ,, (x), - the polynomial gIJ (x) is the generating polynomial of the smallest cyclic code of length NO containing the polynomial gI (xIJ) modulo (xN0 + 1), at least a permuted sequence a ,, * being different from the corresponding sequence a.
13. Procédé de décodage selon la revendication 12, caractérisé en ce que, au cours de l'opération de permutation, toutes les valeurs des exposants eIJ possédant la même valeur de l'indice jsont identiques.  13. Decoding method according to claim 12, characterized in that, during the permutation operation, all the values of the exponents eIJ having the same value of the index j are identical. <Desc/Clms Page number 55> <Desc / Clms Page number 55> 14. Procédé de décodage selon l'une quelconque des revendications 12 ou 13, caractérisé en ce que, au cours de l'opération de permutation, toutes les valeurs des exposants e,, sont égales à une puissance de 2.  14. Decoding method according to any one of claims 12 or 13, characterized in that, during the permutation operation, all the values of the exponents e ,, are equal to a power of 2. 15. Procédé de décodage selon l'une quelconque des revendications 11 à 14, caractérisé en ce qu'il comporte une opération de réception d'une part de séquences a,, et, d'autre part, d'un sous-ensemble des données d'autres séquences résultant d'un codage des séquences aI.  15. Decoding method according to any one of claims 11 to 14, characterized in that it comprises a receiving operation on the one hand of sequences a ,, and, on the other hand, a subset of data of other sequences resulting from coding of the sequences aI. 16. Dispositif de décodage caractérisé en ce qu'il comporte un moyen de traitement adapté : 1/ à prendre en compte : - un entier prédéterminé M1, égal ou supérieur à 2, - un nombre K, supérieur ou égal à 2, de séquences a, (i=1,...,K) de données représentatives d'une grandeur physique, chaque séquence a, possédant : # une représentation polynomiale a,(x) multiple d'un polynôme g,(x) prédéterminé, et # un nombre de données binaires égal au produit d'un nombre entier M quelconque par l'entier NO, plus petit entier tel que le polynôme xN0+1 soit divisible par chacun des polynômes g,(x) ; 2/ à effectuer une opération de turbodécodage parallèle de K séquences de symboles mettant en #uvre les polynômes diviseurs g,,(x).  16. A decoding device characterized in that it comprises a suitable processing means: 1 / to take into account: a predetermined integer M1 equal to or greater than 2; a number K, greater than or equal to 2; a, (i = 1, ..., K) of data representative of a physical quantity, each sequence a, having: # a polynomial representation a, (x) multiple of a predetermined polynomial g, (x), and # a number of binary data equal to the product of any integer M by the integer NO, smaller integer such that the polynomial xN0 + 1 is divisible by each of the polynomials g, (x); 2 / to perform a parallel turbodecoding operation of K symbol sequences implementing the divide polynomials g ,, (x). 3/ à effectuer, pour chaque a,, M1 opérations de permutation, dont au moins une n'est pas l'identité, chaque permutation étant, dans une représentation où les données binaires de chaque séquence a, sont écrites, ligne par ligne, dans un tableau à NO colonnes et M lignes, la résultante d'un nombre quelconque de permutations dites élémentaires qui, chacune : # soit a la propriété de transformer le code cyclique de longueur NO et de polynôme générateur g,(x) en un code 3 / to perform, for each a ,, M1 permutation operations, at least one of which is not the identity, each permutation being, in a representation where the binary data of each sequence a, are written, line by line, in a table with NO columns and M rows, the resultant of any number of so-called elementary permutations, each of which: # has the property of transforming the cyclic code of length NO and of generator polynomial g, (x) into a code <Desc/Clms Page number 56><Desc / Clms Page number 56> cyclique équivalent de polynôme générateur gij(x) pouvant être égal à g,(x), et agit par permutation sur les NO colonnes du tableau représentant a,, # soit est une permutation quelconque des symboles d'une colonne dudit tableau.  cyclic equivalent of generator polynomial gij (x) may be equal to g, (x), and acts by permutation on the NO columns of the array representing a ,, # is any permutation of the symbols of a column of said array. 17. Dispositif de décodage caractérisé en ce qu'il comporte un moyen de traitement adapté : 1/ à prendre en compte : - un entier prédéterminé M1, égal ou supérieur à 2,  17. A decoding device characterized in that it comprises a suitable processing means: 1 / to take into account: a predetermined integer M1, equal to or greater than 2,
Figure img00560001
Figure img00560001
- un nombre K, supérieur ou égal à 2, de séquences a, (i=1,...,K) de données représentatives d'une grandeur physique, chaque séquence a, possédant : # une représentation polynomiale a,(x) multiple d'un polynôme g,(x) prédéterminé et sans facteurs polynomiaux multiples, et # un nombre de données binaires égal au produit d'un nombre entier impair M quelconque par l'entier NO, plus petit entier tel que le polynôme xN0+1 soit divisible par chacun des polynômes g,(x) ; 2/ à effectuer une opération de turbodécodage parallèle de K séquences de symboles mettant en #uvre les polynômes diviseurs gIJ(x), 3/ à effectuer une opération de permutation produisant des séquences dites  a number K, greater than or equal to 2, of sequences a, (i = 1, ..., K) of data representative of a physical quantity, each sequence a, having: # a polynomial representation a, (x) multiple of a predetermined polynomial g, (x) and without multiple polynomial factors, and # a number of binary data equal to the product of an odd integer M by the integer NO, smaller integer such that the polynomial xN0 + 1 is divisible by each of the polynomials g, (x); 2 / to carry out a parallel turbodecoding operation of K symbol sequences implementing the divide polynomials gIJ (x), 3 / to perform a permutation operation producing said sequences
Figure img00560002
Figure img00560002
permutées , a,,*, (i=1,...,K ; j=1,...,M1 ), chaque séquence permutée a,,* possédant une représentation polynomiale égale à a,,*(x)=a,*(X'') modulo (X'+1), où : - n est le produit du nombre M par l'entier NO, eIJ est un nombre relativement premier avec n    permuted, a ,, *, (i = 1, ..., K; j = 1, ..., M1), each permuted sequence a ,, * having a polynomial representation equal to a ,, * (x) = a, * (X '') modulo (X '+ 1), where: - n is the product of the number M by the integer NO, eIJ is a relatively prime number with n
Figure img00560003
Figure img00560003
- c,, est le quotient de a,,*(x) par g,f(x), - le polynôme g,,(x) est le polynôme générateur du plus petit code cyclique de longueur NO contenant le polynôme gI(xeIJ) modulo (xN0+1),  - c ,, is the quotient of a ,, * (x) by g, f (x), - the polynomial g ,, (x) is the generating polynomial of the smallest cyclic code of length NO containing the polynomial gI (xeIJ ) modulo (xN0 + 1), <Desc/Clms Page number 57><Desc / Clms Page number 57> au moins une séquence permutée aIJ* étant différente de la séquence a, correspondante.  at least one permuted sequence aIJ * being different from the corresponding sequence a.
18. Dispositif de décodage selon la revendication 17, caractérisé en ce que le moyen de traitement est adapté à mettre en #uvre des valeurs des exposants eIJ qui sont identique, lorsque lesdits exposants possèdent la même valeur de l'indice j.  18. A decoding device according to claim 17, characterized in that the processing means is adapted to implement values of the exponents eIJ which are identical, when said exponents have the same value of the index j. 19. Dispositif de décodage selon l'une quelconque des revendications 17 ou 18, caractérisé en ce que le moyen de traitement est adapté à mettre en #uvre des valeurs des exposants et) qui sont, chacune, égale à une puissance de 2.  19. Decoding device according to any one of claims 17 or 18, characterized in that the processing means is adapted to implement values of exponents and) which are each equal to a power of 2. 20. Dispositif de décodage selon l'une quelconque des revendications 11 à 14, caractérisé en ce qu'il comporte une moyen de réception adapté à recevoir, d'une part de séquences a,, et, d'autre part, d'un sous-ensemble des données d'autres séquences résultant d'un codage des séquences a,.  20. Decoding device according to any one of claims 11 to 14, characterized in that it comprises a receiving means adapted to receive, on the one hand sequences a ,, and, secondly, a subset of the data of other sequences resulting from coding of the sequences a ,. 21. Dispositif de traitement de signaux représentatifs de parole, caractérisé en ce qu'il comporte un dispositif de codage selon l'une quelconque des revendications 6 à 10 ou un dispositif de décodage selon l'une quelconque des revendications 16 à 20.  21. Apparatus for processing representative speech signals, characterized in that it comprises a coding device according to any one of claims 6 to 10 or a decoding device according to any one of claims 16 to 20. 22. Dispositif de transmission de données comportant un émetteur adapté à mettre en oeuvre un protocole de transmission par paquets, caractérisé en ce qu'il comporte un dispositif de codage selon l'une quelconque des revendications 6 à 10 ou un dispositif de décodage selon l'une quelconque des revendications 16 à 20 ou un dispositif de traitement de signaux représentatifs de parole selon la revendication 21.  22. A data transmission device comprising a transmitter adapted to implement a packet transmission protocol, characterized in that it comprises a coding device according to any one of claims 6 to 10 or a decoding device according to the invention. any one of claims 16 to 20 or a speech representative signal processing device according to claim 21. <Desc/Clms Page number 58> <Desc / Clms Page number 58> 23. Dispositif de transmission de données selon la revendication 22, caractérisé en ce que ledit protocole est le protocole ATM (acronyme des mots anglais "Asynchronous Transfert Mode") mode de transfert asynchrone.  23. Data transmission device according to claim 22, characterized in that said protocol is the ATM protocol (acronym for the words "Asynchronous Transfer Mode") asynchronous transfer mode. 24. Dispositif de transmission de données selon la revendication 22, caractérisé en ce que ledit protocole est un protocole de type ETHERNET.  24. Data transmission device according to claim 22, characterized in that said protocol is an ETHERNET type protocol. 25. Dispositif de transmission de données comportant un émetteur émettant sur un canal non filaire, caractérisé en ce qu'il comporte un dispositif de codage selon l'une quelconque des revendications 6 à 10 ou un dispositif de décodage selon l'une quelconque des revendications 16 à 20.  25. A data transmission device comprising an emitter emitting on a non-wire channel, characterized in that it comprises a coding device according to any one of claims 6 to 10 or a decoding device according to any one of the claims. 16 to 20. 26. Dispositif de traitement de séquences de signaux représentatifs d'au plus mille données binaires, caractérisé en ce qu'il comporte un dispositif de codage selon l'une quelconque des revendications 6 à 10 ou un dispositif de décodage selon l'une quelconque des revendications 16 à 20.  26. Apparatus for processing sequences of signals representative of at most one thousand binary data, characterized in that it comprises a coding device according to any one of claims 6 to 10 or a decoding device according to any one of claims 16 to 20. 27. Station de réseau, caractérisé en ce qu'il comporte un dispositif de codage selon l'une quelconque des revendications 6 à 10 ou un dispositif de décodage selon l'une quelconque des revendications 16 à 20. 27. Network station, characterized in that it comprises a coding device according to any one of claims 6 to 10 or a decoding device according to any one of claims 16 to 20.
FR9814084A 1997-12-30 1998-11-09 Coding method that takes into account predetermined integer equal to or greater than 2, number greater than or equal to 1 of sequences of binary data representing physical quantity Withdrawn FR2785742A1 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
FR9814084A FR2785742A1 (en) 1998-11-09 1998-11-09 Coding method that takes into account predetermined integer equal to or greater than 2, number greater than or equal to 1 of sequences of binary data representing physical quantity
EP98403283A EP0928071B8 (en) 1997-12-30 1998-12-23 Interleaver for turbo encoder
DE69837077T DE69837077T2 (en) 1997-12-30 1998-12-23 Interleaver for turbo coder
CNB981259502A CN1213541C (en) 1997-12-30 1998-12-30 Interlacer, coding device, permutation method, coding method, decoding device and method and systems using them
KR1019980062589A KR100341266B1 (en) 1997-12-30 1998-12-30 Interlacer, coding device, permutation method, coding method, decoding device and method and systems using them
US09/222,849 US6370670B1 (en) 1997-12-30 1998-12-30 Interlacer, coding device, permutation method, coding method, decoding device and method and systems using them
JP00024199A JP4124893B2 (en) 1997-12-30 1999-01-04 Interlacer, encoding device, replacement method, encoding method, decoding device and method thereof, and system using these

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9814084A FR2785742A1 (en) 1998-11-09 1998-11-09 Coding method that takes into account predetermined integer equal to or greater than 2, number greater than or equal to 1 of sequences of binary data representing physical quantity

Publications (1)

Publication Number Publication Date
FR2785742A1 true FR2785742A1 (en) 2000-05-12

Family

ID=9532540

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9814084A Withdrawn FR2785742A1 (en) 1997-12-30 1998-11-09 Coding method that takes into account predetermined integer equal to or greater than 2, number greater than or equal to 1 of sequences of binary data representing physical quantity

Country Status (1)

Country Link
FR (1) FR2785742A1 (en)

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
BARBULESCU ET AL.: "Interleaver design for turbo codes", ELECTRONICS LETTERS, vol. 30, no. 25, 8 December 1994 (1994-12-08), Stevenage, Herts , GB, pages 2107 - 2108, XP000501850 *
BERROU ET AL.: "Frame oriented convolutional turbo codes", ELECTRONICS LETTERS, vol. 32, no. 15, 18 July 1996 (1996-07-18), Stevenage, Herts, GB, pages 1362 - 1364, XP000625424 *
BERROU ET AL.: "Near Optimum error correcting coding and decoding : turbo codes", IEEE TRANSACTIONS ON COMMUNICATIONS, vol. 44, no. 10, October 1996 (1996-10-01), IEEE Transactions on Communications, pages 1261 - 1271, XP000629465 *
DIVSALAR ET AL.: "Turbo codes for PCS applications", PROCEEDINGS OF THE INT'L CONFERENCE ON COMMUNICATIONS, vol. 1, 18 June 1995 (1995-06-18) - 22 June 1995 (1995-06-22), Seattle, US, pages 54 - 59, XP000532968 *

Similar Documents

Publication Publication Date Title
FR2815199A1 (en) Cyclic turbo coding scheme improves minimum Hamming distance
US6766489B1 (en) Device and method of adapting turbocoders and the associated decoders to sequences of variable length
EP0995272B1 (en) Product code iterative decoding
JP4124893B2 (en) Interlacer, encoding device, replacement method, encoding method, decoding device and method thereof, and system using these
FR2790621A1 (en) Interlacing method for coding and decoding of turbo codes of binary symbols representing a physical magnitude using two convolute recursive coders having polynomial divisor with same data period
FR2747255A1 (en) METHOD AND DEVICE FOR CONVOLUTIVE CODING OF DATA BLOCKS, AND CORRESPONDING DECODING METHOD AND DEVICE
JP2001512914A (en) Applicable channel coding method and apparatus
FR2785741A1 (en) Coding process for coding images, sound, data etc physical magnitudes etc by including at least operation of permutation that preserves divisibility of polynomial representations of sequences by set polynomials
JP4497706B2 (en) Interleaving method for turbo coding of data
EP1974472B1 (en) Fast encoding and decoding methods and related devices
FR2785744A1 (en) Data sequence coding for image, sound data etc applications involves retrieval of primary and permuted data, their division by given polynomial for formation a controlling sequence
Adde et al. Design of an efficient maximum likelihood soft decoder for systematic short block codes
FR2807895A1 (en) Methods and devices for coding and decoding and systems implementing them, for use in protected wireless communications
FR2802735A1 (en) Coding/decoding digital word mechanism having padding providing polynomial division with interspersion sequence/second padding operation and recursive coding operation output
FR2805418A1 (en) DIGITAL CORRECTIVE ERROR-TYPE CODING TRANSMITTING METHOD
FR2828359A1 (en) TRANSMITTER, RECEIVER, METHODS, PROGRAM AND SIGNAL SUITABLE FOR MODULATIONS WITH A LARGE NUMBER OF STATES
FR2806177A1 (en) DIGITAL CORRECTIVE ERROR-TYPE CODING TRANSMITTING METHOD
FR2785742A1 (en) Coding method that takes into account predetermined integer equal to or greater than 2, number greater than or equal to 1 of sequences of binary data representing physical quantity
EP3311495B1 (en) Interleaver design for turbo codes in dependence on the puncturing pattern
FR2773287A1 (en) Coding method that takes into account predetermined integer equal to or greater than 2, number greater than or equal to 1 of sequences of binary data representing physical quantity
FR2787263A1 (en) TRANSMISSION METHOD WITH EFFICIENT AND MODULAR INTERLACING CHANNEL CODING FOR TURBO CODES
FR2972878A1 (en) ERROR CORRECTING ENCODING METHOD, DECODING METHOD AND ASSOCIATED DEVICES
FR2805103A1 (en) Interleaving method e.g. for turbocoding of data, involves considering a matrix having r rows and m columns, filled row by row by the successive numbers from 0 to r tom-1
FR2804806A1 (en) Interleaving process coding/decoding mechanism with symbol sequence written line/line separating positions and forming intra column permutations and preserving divisibility/obtaining interleaved sequences.
FR2800950A1 (en) Interleaving method e.g. for turbocoding of data, involves considering a matrix having r rows and m columns, filled row by row by the successive numbers from 0 to r tom-1

Legal Events

Date Code Title Description
ST Notification of lapse