FR2800950A1 - 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 - Google Patents

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 Download PDF

Info

Publication number
FR2800950A1
FR2800950A1 FR9913835A FR9913835A FR2800950A1 FR 2800950 A1 FR2800950 A1 FR 2800950A1 FR 9913835 A FR9913835 A FR 9913835A FR 9913835 A FR9913835 A FR 9913835A FR 2800950 A1 FR2800950 A1 FR 2800950A1
Authority
FR
France
Prior art keywords
polynomial
sequence
matrix
columns
column
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
FR9913835A
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 FR9913835A priority Critical patent/FR2800950A1/en
Priority to DE60045630T priority patent/DE60045630D1/en
Priority to EP00403000A priority patent/EP1098445B1/en
Priority to US09/699,499 priority patent/US6404360B1/en
Priority to JP2000337950A priority patent/JP4497706B2/en
Publication of FR2800950A1 publication Critical patent/FR2800950A1/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
    • H03M13/2771Internal interleaver for turbo codes
    • 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
    • H03M13/2703Coding, 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 the interleaver involving at least two directions
    • H03M13/271Row-column interleaver with permutations, e.g. block interleaving with inter-row, inter-column, intra-row or intra-column permutations
    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

The method involves considering a matrix S having r rows and m columns, filled row by row by the successive numbers from 0 to r to m-1, Each column in the matrix S is divided into a predetermined number lambda of sub- columns, such that r/ lambda is not prime. The sub-columns of S equal in number to lambda .m are designated by S lambda 1 less than lambda 2 greater with 0 less than or equal to lambda 1 less than or equal to lambda -1 and 0 less than or equal to lambda 2 less than or equal to m-1 where lambda 2 refers to the column of S where S lambda 1 less than lambda 2 greater than appears and lambda 1 refers to the position of the sub-column S lambda 1 less than lambda 2 greater than in the column of index lambda 2. Each sub-column S lambda 1 less than lambda 2 greater than is then written in the form of a matrix with R rows and M columns (with r/ lambda = RM) and in this form it is interleaved by an interleaver of the so-called wheel type defined by a circular permutation of each column of said matrix with R rows and M columns, the interleaver not being identity. This matrix with R rows and M columns is reconverted, after the circular permutations on its columns, into a sub-column S asterisk lambda 1 which will occupy, in a matrix S asterisk , the same position as that occupied by S lambda 1 in the matrix S. The permutation table consists of pairs each formed by an element of the matrix S and the element with the same position in the matrix S asterisk . An Independent claim is included for a coding method, a decoding method, a turbodecoding method, coding device, a turbo decoding device, a turbodecoding device, a device for processing signals, a data transmission device, and a network station.

Description

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

L'invention est du domaine général des procédés de transfert d'informations. Elle concerne plus particulièrement un procédé et un dispositif d'entrelacement de données faisant partie d'un procédé d'émission ou de réception. The invention is in the general field of information transfer methods. It relates more particularly to a method and a data interleaving device forming part of a transmission or reception method.

L'invention trouve sa place dans le domaine général du codage de données en vue de leur émission et de leur réception par exemple par un système radio. On connaît de façon classique dans ce domaine des codeurs de type particulier dits "turbocodeurs" (ainsi que les dispositifs de décodage associés dits "turbodécodeurs") décrits par exemple dans des brevets précédents du même déposant. Un tel turbocodeur et le décodeur associé utilisent un ou plusieurs dispositifs d'entrelacement des données. The invention finds its place in the general field of data coding with a view to their transmission and reception, for example by a radio system. Coders of a particular type known as “turbocoders” (as well as the associated decoding devices known as “turbodecoders”) described for example in previous patents by the same applicant are known in a conventional manner in this field. Such a turbocoder and the associated decoder use one or more data interleaving devices.

La présente invention a pour objet un procédé d'entrelacement et de désentrelacement, destinés à faire partie d'un tel procédé dit de "turbocodage" et du procédé de turbodécodage associé. The present invention relates to an interlacing and deinterlacing method, intended to form part of such a so-called "turbocoding" method and of the associated turbodecoding method.

La présente invention s'applique aussi bien au codage (en anglais "encoding") de données représentatives d'une grandeur physique, au codage de données susceptibles de moduler une grandeur physique, au décodage de signaux modulés sous forme de données, qu'au décodage de données représentatives de grandeurs physiques ou à la gestion des transmissions de données. Ces données peuvent, par exemple, représenter des images, des sons, des données informatiques, des grandeurs électriques, ou des données mémorisées. The present invention applies equally well to the coding (in English "encoding") of data representative of a physical quantity, to the coding of data capable of modulating a physical quantity, to the decoding of signals modulated in the form of data, as well as to decoding of data representative of physical quantities or the management of data transmissions. These data can, for example, represent images, sounds, computer data, electrical quantities, or stored data.

Lorsqu'on utilise des codeurs convolutifs pour mettre en oeuvre un décodage itératif utilisant des décodeurs élémentaires à entrées et sorties douces, ces codes sont fortement améliorés lorsque leurs codeurs contiennent un dispositif de permutation appelé entrelaceur (en anglais "interleaver"), un dispositif de permutation permettant de revenir à la séquence initiale étant alors appelé "désentrelaceur". Dans ce cas, ils sont habituellement appelés turbocodeurs (en anglais "turbo-encoder") et le décodeur itératif correspondant est appelé turbodécodeur . Par commodité : When convolutional encoders are used to implement iterative decoding using elementary decoders with soft inputs and outputs, these codes are greatly improved when their encoders contain a permutation device called an interleaver, a device for permutation allowing to return to the initial sequence being then called "deinterleaver". In this case, they are usually called turbocoders (in English “turbo-encoder”) and the corresponding iterative decoder is called a turbodecoder. For convenience :

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

- on appelle l'opération effectuée par le turbo-codeur, un turbo- codage et cette opération fournit une séquence dite turbo-codée on appelle l'opération effectuée par le turbo-décodeur, un turbo- décodage et cette opération fournit une séquence dite turbo- décodée . - the operation performed by the turbo-encoder is called a turbo-coding and this operation provides a so-called turbo-coded sequence the operation performed by the turbo-decoder is called a turbo-decoding and this operation provides a so-called sequence turbo-decoded.

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

Le but de la présente invention est de proposer des entrelaceurs plus efficaces pour un turbocodeur, c'est à dire permettant d'obtenir une distance minimale plus grande, Ceci est surtout important lorsque le rapport signal sur bruit du canal est relativement élevé, car cela peut alors réduire le taux d'erreurs de décodage et par conséquent éviter de devoir renvoyer des données mal reçues. The aim of the present invention is to provide more efficient interleavers for a turbocoder, i.e. allowing a greater minimum distance to be obtained. This is especially important when the signal-to-noise ratio of the channel is relatively high, because this is can then reduce the decoding error rate and therefore avoid having to resend incorrectly received data.

On rappelle brièvement ici qu'un turbocode présente un comportement différent selon la valeur du rapport signal sur bruit du canal. Si le rapport signal sur bruit est grand, le poids minimum des mots non nuls du turbocode et le nombre de ces mots de poids minimum prédominent dans la détermination des performances du turbodécodeur. Au contraire, si le rapport signal sur bruit est faible, il semble que ce soit le nombre de mots de code de poids proche d'une valeur supérieure ou égale au poids minimum du code qui influence la performance du turbodécodeur. It is briefly recalled here that a turbocode exhibits different behavior depending on the value of the signal-to-noise ratio of the channel. If the signal-to-noise ratio is large, the minimum weight of the non-zero words in the turbocode and the number of such minimum weight words predominate in determining the performance of the turbocode. On the contrary, if the signal to noise ratio is low, it seems that it is the number of code words of weight close to a value greater than or equal to the minimum weight of the code that influences the performance of the turbodecoder.

L'invention vise en premier lieu un procédé de création d'une table de permutation, caractérisé en ce que ladite table fait correspondre à chaque rang d'entrée de 0 à r.m-1 un rang de sortie de 0 à r.m-1, ledit procédé comportant des étapes suivantes :
E1- on considère une matrice S comportant r lignes et m colonnes,
The invention relates firstly to a method of creating a permutation table, characterized in that said table matches each input rank from 0 to rm-1 to an output rank from 0 to rm-1, said process comprising the following steps:
E1- we consider a matrix S comprising r rows and m columns,

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

remplie ligne par ligne par les nombres successifs de 0 à r.m-1
E2- chaque colonne de ladite matrice S est découpée en un nombre prédéterminé l de sous-colonnes, tel que r/l ne soit pas premier,
E3- les sous-colonnes de S en nombre égal à l.m sont désignées par SI, 12

Figure img00030001

avec 0 S /1 <l-1 et 0 </2 <m-1 où h fait référence à la colonne de S où apparaît Sl1l2 et où ll fait référence à la position de la sous-colonne Sl1l2 dans la colonne d'indice l2. filled line by line by successive numbers from 0 to rm-1
E2- each column of said matrix S is split into a predetermined number l of sub-columns, such that r / l is not prime,
E3- the sub-columns of S in number equal to lm are designated by SI, 12
Figure img00030001

with 0 S / 1 <l-1 and 0 </ 2 <m-1 where h refers to the column of S where appears Sl1l2 and where ll refers to the position of sub-column Sl1l2 in the index column l2.

E4- chaque sous-colonne SI, 12 est alors écrite sous la forme d'une matrice à N lignes et M colonnes (avec r/l= NM) et sous cette forme elle est entrelacée par un entrelaceur de type dit "verrou" défini par une permutation circulaire de chaque colonne de ladite matrice à N lignes et M colonnes, ledit entrelaceur n'étant pas l'identité,
E5- cette matrice à N lignes et M colonnes est reconvertie, après lesdites permutations circulaires sur ses colonnes, en une sous-colonne S*l1l2 qui occupera dans une matrice S* la même place que celle qu'occupe SI, 12 dans la matrice S ,
E6- la table de permutation est constituée des couples formés chacun d'un élément de la matrice S et de l'élément de même position de la matrice S*.
E4- each sub-column SI, 12 is then written in the form of a matrix with N rows and M columns (with r / l = NM) and in this form it is interlaced by a so-called "lock" type interleaver defined by a circular permutation of each column of said matrix with N rows and M columns, said interleaver not being the identity,
E5- this matrix with N rows and M columns is reconverted, after said circular permutations on its columns, into a sub-column S * l1l2 which will occupy in a matrix S * the same place as that occupied by SI, 12 in the matrix S,
E6- the permutation table consists of couples each formed of an element of the matrix S and of the element of the same position of the matrix S *.

Préférentiellement, le procédé comporte également dans au moins une

Figure img00030002

colonne /2 (0 sl2 sm-1) de la matrice S* une modification de l'ordre d'apparition des sous-colonnes S*l1l2 dans ladite colonne. Preferably, the method also comprises in at least one
Figure img00030002

column / 2 (0 sl2 sm-1) of the matrix S * a modification of the order of appearance of the sub-columns S * l1l2 in said column.

Selon une mise en #uvre préférée, un même entrelaceur verrou est utilisé pour produire chacune des sous-colonnes S*l1l2 d'une colonne donnée l2 de la matrice S*. According to a preferred implementation, the same latch interleaver is used to produce each of the sub-columns S * l1l2 of a given column l2 of the matrix S *.

Selon une mise en #uvre particulière, les sous-colonnes d'au moins deux colonnes de la matrice S* sont produites par des entrelaceurs verrou différents. According to a particular implementation, the sub-columns of at least two columns of the matrix S * are produced by different latch interleavers.

Selon une mise en #uvre plus particulière, les m entrelaceurs verrou utilisés pour entrelacer les sous-colonnes de chaque colonne de la matrice S* sont différents. According to a more particular implementation, the m lock interleavers used to interleave the sub-columns of each column of the matrix S * are different.

Préférentiellement, le procédé tel qu'exposé ci-dessus comporte également une étape de modification de l'ordre d'apparition des colonnes de S*. Preferably, the method as explained above also comprises a step of modifying the order of appearance of the columns of S *.

L'invention vise sous un second aspect un procédé de permutation des The invention relates in a second aspect to a method of permutation of the

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

symboles d'une séquence de données binaires, représentatives d'une grandeur

Figure img00040001

physique, représentée par un polynôme a(x)= l a, Á X 1111+1., à coefficients f-1 binaires, divisible par un premier polynôme diviseur g(x)=1+ Ig/x' + x', à l=1 coefficients binaires, fournissant une nouvelle séquence de symboles binaires
Figure img00040002

représentée par un polynôme a*(x)= Ia ,I. X5'", divisible par un second l-1 polynôme diviseur g*(x)= 1+#g *, x' + x',
Figure img00040003

caractérisé en ce que S*,k est l'élément en position U,k) dans la matrice S* obtenue selon un procédé tel qu'exposé ci-dessus, et m est un multiple du plus petit entier m'tel que le premier polynôme diviseur g(x) divise xm'+1. symbols of a binary data sequence, representative of a quantity
Figure img00040001

physical, represented by a polynomial a (x) = la, Á X 1111 + 1., with binary coefficients f-1, divisible by a first divisor polynomial g (x) = 1 + Ig / x '+ x', at l = 1 binary coefficients, providing a new sequence of binary symbols
Figure img00040002

represented by a polynomial a * (x) = Ia, I. X5 '", divisible by a second l-1 divisor polynomial g * (x) = 1 + # g *, x' + x ',
Figure img00040003

characterized in that S *, k is the element in position U, k) in the matrix S * obtained according to a method as explained above, and m is a multiple of the smallest integer m'tel than the first divisor polynomial g (x) divides xm '+ 1.

Selon une mise en #uvre préférée, le premier polynôme diviseur g(x) est égal au second polynôme diviseur g*(x)
L'invention vise sous un troisième aspect un procédé de codage caractérisé en ce qu'il comporte une opération de détermination d'une séquence a*, au cours de laquelle on met en oeuvre au moins un procédé de permutation tel qu'exposé ci-dessus.
According to a preferred implementation, the first divisor polynomial g (x) is equal to the second divisor polynomial g * (x)
The invention relates in a third aspect to a coding method characterized in that it comprises an operation of determining a sequence a *, during which at least one permutation method as described above is implemented. above.

Dans une mise en oeuvre préférée, le procédé de codage tel qu'exposé, travaillant sur des séquences de données binaires u représentatives d'information et prenant en compte un premier polynôme diviseur @-1

Figure img00040004

g(x) = 1 + Ig,x' + x' , un second polynôme diviseur g*(x) compatible avec g(x), @=1 un premier polynôme multiplicatif fi(x) et un deuxième polynôme multiplicatif f2(x), un nombre entier r#1, un nombre entier m multiple du plus petit entier m' tel que le premier polynôme g(x) divise xm'+1, est caractérisé en ce qu'il comporte : - une opération de constitution d'une "première" séquence, dite "séquence a" représentée par un polynôme a(x) dit "premier polynôme" dont les r.m-t premiers coefficients d'ordre croissant sont les données binaires à coder et dont les t derniers coefficients sont choisis de telle manière que le polynôme g(x) divise le polynôme a(x) In a preferred implementation, the coding method as explained, working on sequences of binary data u representative of information and taking into account a first divider polynomial @ -1
Figure img00040004

g (x) = 1 + Ig, x '+ x', a second divisor polynomial g * (x) compatible with g (x), @ = 1 a first multiplicative polynomial fi (x) and a second multiplicative polynomial f2 (x ), an integer r # 1, an integer m multiple of the smallest integer m 'such that the first polynomial g (x) divides xm' + 1, is characterized in that it comprises: - a constitution operation d 'a "first" sequence, called "sequence a" represented by a polynomial a (x) called "first polynomial" whose rm-t first coefficients of increasing order are the binary data to be coded and whose t last coefficients are chosen such that the polynomial g (x) divides the polynomial a (x)

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

- une opération de constitution d'une deuxième séquence dite "séquence b" représentée par un polynôme b(x) égal au produit du premier polynôme a(x) par le premier polynôme multiplicatif f1(x), le tout divisé par le premier polynôme diviseur g(x), - une opération de permutation, travaillant sur des données binaires de la première séquence a pour former une séquence dite "permutée" a* représentée par un polynôme dit "permuté" a*(x), dont les coefficients d'ordre croissant sont les données binaires de la séquence permutée a*, et qui est divisible par le second polynôme diviseur g*(x), - une opération de constitution d'une troisième séquence dite "séquence c" représentée par un polynôme c(x) égal au produit du polynôme permuté a*(x) par le second polynôme multiplicatif f2(x), le tout divisé par le second polynôme diviseur g*(x). - an operation of constituting a second sequence called "sequence b" represented by a polynomial b (x) equal to the product of the first polynomial a (x) by the first multiplicative polynomial f1 (x), the whole divided by the first polynomial divider g (x), - a permutation operation, working on binary data of the first sequence a to form a so-called "permuted" sequence a * represented by a so-called "permuted" polynomial a * (x), whose coefficients d 'ascending order are the binary data of the permuted sequence a *, and which is divisible by the second divisor polynomial g * (x), - an operation of constituting a third sequence called "sequence c" represented by a polynomial c ( x) equal to the product of the permuted polynomial a * (x) by the second multiplicative polynomial f2 (x), the whole divided by the second divisor polynomial g * (x).

L'invention vise également sous un quatrième aspect un procédé de décodage, caractérisé en ce qu'il met en #uvre au moins une permutation créée par un procédé selon l'exposé précédent. The invention also relates in a fourth aspect to a decoding method, characterized in that it implements at least one permutation created by a method according to the preceding description.

Selon des dispositions particulières de mise en #uvre de ces procédés, éventuellement utilisées en conjonction, - la matrice initiale S comporte 2401 éléments et est découpée en 7 colonnes de 343 lignes, chacune de ces 7 colonnes étant elle-même découpée en 7 sous-colonnes de 49 éléments. According to particular arrangements for implementing these methods, possibly used in conjunction, - the initial matrix S comprises 2401 elements and is divided into 7 columns of 343 rows, each of these 7 columns being itself divided into 7 sub- columns of 49 elements.

- l'alphabet sur lequel est défini le turbocode contient q lettres, avec q une puissance d'un nombre premier, l'alphabet recevant la structure du corps de Galois à q éléments. - the alphabet on which the turbocode is defined contains q letters, with q a power of a prime number, the alphabet receiving the structure of the Galois field with q elements.

On comprend en résumé que par l'utilisation simultanée de trois techniques différentes, il est possible de concevoir des entrelaceurs efficaces pour turbocodeur. In summary, it will be understood that by the simultaneous use of three different techniques, it is possible to design efficient interleavers for a turbocoder.

La première de ces techniques est l'utilisation de petits entrelaceurs locaux appelés entrelaceurs verrou. The first of these techniques is the use of small local interleavers called lock interleavers.

La seconde technique modifie dans chaque colonne la position des blocs de données permutés localement par les entrelaceurs verrou. The second technique modifies in each column the position of the data blocks swapped locally by the latch interleavers.

La troisième technique est une méthode spécifique pour choisir les The third technique is a specific method for choosing the

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

différents entrelaceurs verrou utilisés pour chaque colonne dans la conception de l'entrelaceur global. different lock interleavers used for each column in the design of the overall interleaver.

Les entrelaceurs globaux obtenus vérifient en outre une propriété dite dans la suite de la description "de retour à zéro". Ceci signifie que lorsque les deux codeurs convolutifs élémentaires du turbocodeur sont dans l'état nul au début du codage d'une séquence d'information, ils seront tous deux simultanément dans l'état nul à la fin du codage de chaque séquence d'information. The global interleavers obtained also verify a property called "return to zero" in the remainder of the description. This means that when the two elementary convolutional encoders of the turbocoder are in the zero state at the start of the encoding of an information sequence, they will both be simultaneously in the zero state at the end of the encoding of each information sequence. .

Plus précisément, lors du turbocodage, on construit une séquence dont la représentation polynomiale a(x) est divisible par un polynôme de rétroaction

Figure img00060001

1-1 (également dit polynôme diviseur) g(x)=1+g,x + x' du turbocodeur, par ,I simple ajout de bits bien choisis en nombre égal au degré du polynôme g(x), à la fin d'une séquence d'entrée u(x). Soit a*(x) la représentation polynomiale de la séquence a(x) entrelacée. More precisely, during turbocoding, we construct a sequence whose polynomial representation a (x) is divisible by a feedback polynomial
Figure img00060001

1-1 (also called divisor polynomial) g (x) = 1 + g, x + x 'of the turbocoder, by, I simple addition of well-chosen bits in number equal to the degree of the polynomial g (x), at the end of d 'an input sequence u (x). Let a * (x) be the polynomial representation of the interlaced sequence a (x).

On dit qu'un entrelaceur vérifie la propriété de retour à zéro (RZ) si, à chaque fois que a(x) est divisible par g(x), le polynôme a*(x) correspondant est aussi divisible par g(x). Plus généralement, on considère le cas où les deux polynômes de rétroaction notés g(x) et g*(x) (également dits premier et second polynômes diviseurs) ne sont pas obligatoirement égaux. On dit alors qu'un entrelaceur vérifie la propriété RZ si, à chaque fois que a(x) est divisible par g(x), le polynôme a*(x) correspondant est divisible par g*(x). Cette dernière définition n'a toutefois de sens que si g(x) et g*(x) ont la propriété suivante :si

Figure img00060002

g(x)=(x - x, ) est la factorisation complète de g(x) dans un corps d'extension du corps à deux éléments, alors la factorisation complète de g*(x) est
Figure img00060003

(x - x, 'l) ou <P est un automorphisme (noté exponentiellement) dudit corps d'extension. Dans la suite un tel polynôme g*(x) sera dit compatible avec g(x). En particulier un polynôme est toujours compatible avec lui-même. On remarquera que deux polynômes compatibles ont le même degré. De plus, si m est le plus petit entier tel que le premier polynôme diviseur g(x) divise xm+1, et si m* est le plus petit entier tel que le second polynôme diviseur g*(x) divise We say that an interleaver satisfies the return to zero property (RZ) if, whenever a (x) is divisible by g (x), the corresponding polynomial a * (x) is also divisible by g (x) . More generally, we consider the case where the two feedback polynomials noted g (x) and g * (x) (also called first and second divider polynomials) are not necessarily equal. We then say that an interleaver satisfies the property RZ if, each time a (x) is divisible by g (x), the corresponding polynomial a * (x) is divisible by g * (x). However, this last definition only makes sense if g (x) and g * (x) have the following property: if
Figure img00060002

g (x) = (x - x,) is the full factorization of g (x) in an extension field of the two-element field, then the full factorization of g * (x) is
Figure img00060003

(x - x, 'l) where <P is an automorphism (denoted exponentially) of said extension field. In the following, such a polynomial g * (x) will be said to be compatible with g (x). In particular, a polynomial is always compatible with itself. Note that two compatible polynomials have the same degree. Moreover, if m is the smallest integer such that the first divisor polynomial g (x) divides xm + 1, and if m * is the smallest integer such that the second divisor polynomial g * (x) divides

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

xm*+1, g*(x) ne peut être compatible avec g(x) que si m=m*.

Figure img00070001

Considérons par exemple la factorisation g(x)=(x-a)(x-a')(x-a4) de g(x)= x3+x+1 où a est une racine primitive septième de l'unité et appartient au corps
Figure img00070002

contenant huit éléments. Considérons les six automorphismes (p, : a-3a' de ce corps à huit éléments. xm * + 1, g * (x) can only be compatible with g (x) if m = m *.
Figure img00070001

Consider for example the factorization g (x) = (xa) (x-a ') (x-a4) of g (x) = x3 + x + 1 where a is a primitive seventh root of unity and belongs to the field
Figure img00070002

containing eight elements. Consider the six automorphisms (p,: a-3a 'of this eight-element field.

On vérifie que ci, 2 et ((J4 produisent g*(x) =g(x) alors que ((J3, CP6 et 5 produisent g*(x)= x3+xz+I qui se factorise comme g*(x)=(x-d)(x-a6)(x-d). We check that ci, 2 and ((J4 produce g * (x) = g (x) while ((J3, CP6 and 5 produce g * (x) = x3 + xz + I which is factored as g * (x ) = (xd) (x-a6) (xd).

L'invention vise également un dispositif employant un procédé d'entrelacement et de désentrelacement tels que ceux succinctement présentés ci-dessus. The invention also relates to a device employing an interlacing and deinterlacing method such as those briefly presented above.

L'invention vise encore un dispositif de transmission de données comportant un émetteur adapté à mettre en oeuvre un protocole de transmission par paquets, comportant un dispositif tel qu'exposé ci-dessus
Dans un mode particulier de réalisation, le dispositif de transmission de données est tel que ledit protocole est le protocole ATM, Asynchronous Transfer Mode.
The invention also relates to a data transmission device comprising a transmitter suitable for implementing a packet transmission protocol, comprising a device as explained above.
In a particular embodiment, the data transmission device is such that said protocol is the ATM protocol, Asynchronous Transfer Mode.

Dans un autre mode de réalisation, le protocole est le protocole IP (Internet Protocol). In another embodiment, the protocol is Internet Protocol (IP).

L'invention vise plus généralement un téléphone, un appareil photographique, une imprimante, un scanner, une caméra, un ordinateur, un télécopieur, un téléviseur, un lecteur audio/vidéo, caractérisés en ce que ces dispositifs comportent un dispositif tel qu'exposé brièvement ci-dessus. The invention is more generally aimed at a telephone, a photographic apparatus, a printer, a scanner, a camera, a computer, a fax machine, a television set, an audio / video player, characterized in that these devices include a device as described above. briefly above.

L'invention vise également un moyen de stockage d'informations et un moyen de stockage d'informations amovible, partiellement ou totalement, lisibles par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique, permettant la mise en oeuvre du procédé exposé succinctement ci-dessus
La description et les dessins qui suivent permettront de mieux comprendre les buts et avantages de l'invention. Il est clair que cette description est donnée à titre d'exemple, et n'a pas de caractère limitatif. Dans les dessins : - la figure 1 est un schéma fonctionnel d'un turbocodeur utilisant un entrelaceur susceptible d'avoir la propriété RZ;
The invention also relates to an information storage means and a removable information storage means, partially or totally, readable by a computer or a microprocessor retaining instructions of a computer program, allowing the implementation of the disclosed method. succinctly above
The description and the drawings which follow will make it possible to better understand the aims and advantages of the invention. It is clear that this description is given by way of example, and is not limiting in nature. In the drawings: FIG. 1 is a functional diagram of a turbocoder using an interleaver capable of having the RZ property;

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

- la figure 2 est une table des poids de séquences homogènes encodées (a b c) en fonction de la portée globale de la,séquence simplifiée v ; - la figure 3 représente une division d'une matrice A en 49 sous colonnes Al1l2 ; - la figure 4 est une table de 28 septuples h avec ho=O et h1=1; - la figure 5 est une représentation de la matrice A ; - la figure 6 illustre une permutation des sous-colonnes de la matrice A ; - la figure 7 illustre une permutation plus efficace des sous-colonnes de la matrice A ; - la figure 8 illustre une représentation simplifiée d'une permutation des sous-colonnes d'une autre matrice A ; - la figure 9 montre des courbes de taux d'erreur bit (BER) après décodage en fonction du rapport signal sur bruit (Eb/No) exprimé en décibels, pour quatre nombres d'itérations de décodage différents ; - La figure 10 représente, schématiquement, un dispositif de codage adapté à mettre en #uvre le mode de réalisation préféré de la présente invention, - la figure 11est un schéma fonctionnel d'un turbodécodeur classique - la figure 12 représente, schématiquement, un dispositif de décodage adapté à mettre en #uvre le mode de réalisation préféré de la présente invention, - la figure 13 représente un organigramme de fonctionnement du dispositif de codage illustré en figure 10, - la figure 14 représente un organigramme de fonctionnement du dispositif de décodage illustré en figure 12. FIG. 2 is a table of the weights of encoded homogeneous sequences (a b c) as a function of the overall scope of the simplified sequence v; - Figure 3 shows a division of a matrix A into 49 sub-columns A112; FIG. 4 is a table of 28 septuples h with ho = 0 and h1 = 1; FIG. 5 is a representation of the matrix A; FIG. 6 illustrates a permutation of the sub-columns of the matrix A; FIG. 7 illustrates a more efficient permutation of the sub-columns of the matrix A; FIG. 8 illustrates a simplified representation of a permutation of the sub-columns of another matrix A; FIG. 9 shows bit error rate (BER) curves after decoding as a function of the signal to noise ratio (Eb / No) expressed in decibels, for four different numbers of decoding iterations; - Figure 10 shows, schematically, an encoding device suitable for implementing the preferred embodiment of the present invention, - Figure 11 is a functional diagram of a conventional turbodecoder - Figure 12 shows, schematically, a device decoding device adapted to implement the preferred embodiment of the present invention, - figure 13 represents an operating flowchart of the encoding device illustrated in figure 10, - figure 14 represents an operating flowchart of the decoding device illustrated in figure 12.

Avant de décrire un mode particulier de réalisation de la présente invention, nous donnons ci-dessous une présentation mathématique de son fonctionnement, explicitée sur des exemples. Before describing a particular embodiment of the present invention, we give below a mathematical presentation of its operation, explained in examples.

Un turbocodeur de taux 1/3 est caractérisé par quatre polynômes : g(x) et g*(x) (dits polynômes de rétroaction), fi(x) et f2(x), une longueur de trame n et un entrelaceur. La figure 1 illustre un turbocodeur de taux 1/3. A rate 1/3 turbocoder is characterized by four polynomials: g (x) and g * (x) (called feedback polynomials), fi (x) and f2 (x), a frame length n and an interleaver. Figure 1 illustrates a rate 1/3 turbocoder.

Une information entrante u(x) est codée en trois séquences : An incoming information u (x) is coded in three sequences:

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

- une première séquence a(x) est la séquence initiale u(x) complétée par des bits d'ajout (opération dite de padding) pour assurer la divisibilité de la séquence complétée par le polynôme de rétroaction g(x).

Figure img00090001
a first sequence a (x) is the initial sequence u (x) completed by addition bits (so-called padding operation) to ensure the divisibility of the sequence completed by the feedback polynomial g (x).
Figure img00090001

- une seconde séquence b(x)=a(x).f1(x)/g(x). Ces deux premières séquences sont obtenues en sortie d'un premier codeur élémentaire 102. - a second sequence b (x) = a (x) .f1 (x) / g (x). These first two sequences are obtained at the output of a first elementary coder 102.

- une troisième séquence c(x) = a*(x).f2(x)lg*(x) où a*(x) est la description polynomiale de la version entrelacée de a(x), et où g*(x) doit alors vérifier les conditions de factorisation telles que mentionnées ci-dessus. - a third sequence c (x) = a * (x) .f2 (x) lg * (x) where a * (x) is the polynomial description of the interlaced version of a (x), and where g * (x ) must then check the conditions of factorization as mentioned above.

La seconde séquence b(x) codée par le premier codeur élémentaire 102 est obtenue dans un registre à décalage effectuant une multiplication par f1 et une division par le premier polynôme de rétroaction g utilisé dans le turbocode. The second sequence b (x) encoded by the first elementary encoder 102 is obtained in a shift register performing a multiplication by f1 and a division by the first feedback polynomial g used in the turbocode.

Le degré de f1 est souvent 2,3 ou 4 pour faciliter la conception du décodeur. The degree of f1 is often 2.3 or 4 to facilitate the design of the decoder.

Le calcul de la troisième séquence c(x) obtenue en sortie d'un second codeur élémentaire 103, utilise au préalable un entrelaceur 101 qui mélange les coefficients de la séquence a pour produire une séquence entrelacée a*, ainsi qu'un registre à décalage effectuant une multiplication par f2 et une division par le second polynôme de rétroaction g*. On obtient en sortie du second codeur élémentaire 103 une séquence c= a*.f2/g*. De même on souhaite généralement que f2 soit de degré 2,3 ou 4 sinon le décodage est de plus en plus complexe. The calculation of the third sequence c (x) obtained at the output of a second elementary encoder 103, first uses an interleaver 101 which mixes the coefficients of the sequence a to produce an interlaced sequence a *, as well as a shift register performing a multiplication by f2 and a division by the second feedback polynomial g *. At the output of the second elementary encoder 103, a sequence c = a * .f2 / g * is obtained. Likewise, it is generally desired that f2 be of degree 2, 3 or 4, otherwise the decoding is more and more complex.

Afin que c(x) soit de longueur finie, on utilise un entrelaceur garantissant le retour à zéro, tel que défini plus haut. So that c (x) is of finite length, we use an interleaver guaranteeing the return to zero, as defined above.

Comme on l'a dit plus haut, un entrelaceur qui garantit que pour tout polynôme a(x) divisible par g(x), le polynôme entrelacé correspondant a*(x) est aussi divisible par g*(x) est appelé un entrelaceur RZ (Retour à Zéro). As we said above, an interleaver which guarantees that for any polynomial a (x) divisible by g (x), the interlaced polynomial corresponding to a * (x) is also divisible by g * (x) is called an interleaver RZ (Return to Zero).

Le but de la présente invention est de proposer une méthode de construction d'entrelaceurs RZ produisant des turbocodes ayant une bonne distance minimale. Supposons d'abord que g(x)= g*(x). The aim of the present invention is to provide a method of constructing RZ interleavers producing turbocodes having a good minimum distance. Suppose first that g (x) = g * (x).

On va décrire ici en premier lieu la classe d'entrelaceurs qui préserve après entrelacement la divisibilité d'une séquence a(x) par le polynôme g(x). We will first describe here the class of interleavers which preserves after interleaving the divisibility of a sequence a (x) by the polynomial g (x).

Puis on présentera les conditions qui sont impliquées dans la construction des entrelaceurs selon la présente invention. Enfin on combinera ces éléments pour réaliser un entrelaceur efficace. Next, the conditions which are involved in the construction of the interleavers according to the present invention will be presented. Finally, these elements will be combined to produce an effective interleaver.

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

C'est, entre autres, pour conférer à tous les bits d'informations d'une trame, une probabilité d'erreur après décodage égale ou à peu près égale que nous choisissons de construire des entrelaceurs RZ. It is, among other things, to give all the information bits of a frame an equal or approximately equal probability of error after decoding that we choose to construct RZ interleavers.

On peut démontrer qu'un entrelaceur garantit que tout polynôme a(x) divisible par g(x) est tel que le polynôme entrelacé correspondant a*(x) est aussi divisible par g(x) si il peut être exprimé de la façon suivante :
1. Le nombre n de caractères binaires sur lesquels il agit est un multiple de m (plus petit entier tel que le polynôme g(x) divise le polynôme 1 + x m ). Pour ce faire, on complète la séquence a(x) par des zéros pour atteindre une longueur acceptable n.
It can be shown that an interleaver guarantees that any polynomial a (x) divisible by g (x) is such that the interlaced polynomial corresponding a * (x) is also divisible by g (x) if it can be expressed in the following way :
1. The number n of binary characters on which it acts is a multiple of m (smallest integer such that the polynomial g (x) divides the polynomial 1 + xm). To do this, we complete the sequence a (x) by zeros to reach an acceptable length n.

2. En supposant alors n = r.m, on associe à chaque séquence

Figure img00100001

a=y" ax' la matrice A de taille r. m (r lignes et m colonnes) dont l'élément
Figure img00100002

en position (j,k), 0 <j <ru et 0 <k <m-1 est jazz
3. A partir de A on construit la matrice A* en appliquant à A une combinaison quelconque de permutations des deux types suivants : - une permutation quelconque agissant dans une quelconque des m colonnes de la matrice A, - une permutation des colonnes entre elles, cette permutation étant un automorphisme du code cyclique linéaire de longueur m et de polynôme générateur g. 2. Assuming then n = rm, we associate with each sequence
Figure img00100001

a = y "ax 'the matrix A of size r. m (r rows and m columns) whose element
Figure img00100002

in position (j, k), 0 <j <ru and 0 <k <m-1 is jazz
3. From A we construct the matrix A * by applying to A any combination of permutations of the two following types: - any permutation acting in any one of the m columns of the matrix A, - a permutation of the columns between them, this permutation being an automorphism of the linear cyclic code of length m and of generator polynomial g.

Il faut donc que cette permutation transforme tout mot de code de ce code cyclique en un mot de ce code cyclique. This permutation must therefore transform any code word of this cyclic code into a word of this cyclic code.

4. Soit a*j,k l'élément en position (j, k) de la matrice A* ainsi obtenue. La version entrelacée a*(x) de a(x) est définie par :

Figure img00100003
4. Let a * j, k be the element in position (j, k) of the matrix A * thus obtained. The interlaced version a * (x) of a (x) is defined by:
Figure img00100003

En général une procédure d'entrelacement remplaçant a(x) par a*(x) (ou de façon équivalente A par A*) peut s'exprimer de façon compacte par une matrice S* de type r.m dont l'ensemble de tous les éléments s*j,k (où j est l'indice ligne et k l'indice colonne) est l'ensemble de tous les entiers de 0 à r.m- 1. Deux interprétations sont possibles pour spécifier un entrelaceur à partir de S. La première est de définir la séquence entrelacée a*(x) par In general, an interleaving procedure replacing a (x) by a * (x) (or in an equivalent way A by A *) can be expressed in a compact way by a matrix S * of type rm whose set of all elements s * j, k (where j is the row index and k the column index) is the set of all integers from 0 to rm- 1. Two interpretations are possible to specify an interleaver from S. The first is to define the interlaced sequence a * (x) by

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

Figure img00110001

Et la seconde est de définir a*(x) par
Figure img00110002
Figure img00110001

And the second is to define a * (x) by
Figure img00110002

On peut vérifier que si un de ces deux entrelaceurs est de type RZ alors l'autre l'est aussi. Les conditions données ci-dessus pour qu'un entrelaceur soit de type RZ s'exprime alors comme suit en termes de propriétés de la matrice S*: - le résidu modulo m des éléments d'une colonne quelconque de S* est constant,

Figure img00110003

- soit (ro,...,(m-1) le m-uple de ces résidus; ce m-uple doit être obtenu à partir du m-uple (0,1,...,m-1) par action d'une permutation qui est dans le groupe d'automorphisme du code cyclique binaire de longueur m et de polynôme générateur g(x); - il n'y a pas de restrictions sur l'ordre des éléments d'une colonne de S*. We can verify that if one of these two interleavers is of the RZ type then the other is also. The conditions given above for an interleaver to be of type RZ are then expressed as follows in terms of properties of the matrix S *: - the residue modulo m of the elements of an unspecified column of S * is constant,
Figure img00110003

- let (ro, ..., (m-1) be the m-tuple of these residuals; this m-tuple must be obtained from the m-tuple (0,1, ..., m-1) per action of a permutation which is in the automorphism group of the binary cyclic code of length m and of the generator polynomial g (x); - there are no restrictions on the order of the elements of a column of S * .

Parmi les deux interprétations de la matrice S* données ci-dessus, c'est la seconde qui a notre préférence. Among the two interpretations of the matrix S * given above, it is the second which has our preference.

Plus généralement, comme on l'a dit plus haut, l'entrelaceur peut transformer tout a(x) multiple de g(x) en un a*(x) multiple de g*(x) lorsque g*(x) est compatible avec g(x). La représentation par la matrice S* d'un tel entrelaceur est semblable à ce qui vient d'être dit mais les conditions à satisfaire par S* sont légèrement différentes : le m-uple (ro, ...,rm-1) doit être maintenant obtenu à partir du m-uple (0,...,m-1) par action d'une permutation qui transforme le code cyclique binaire de longueur m et de polynôme générateur g(x) en le code cyclique binaire de longueur m et de polynôme générateur g*(x). More generally, as we said above, the interleaver can transform any a (x) multiple of g (x) into an a * (x) multiple of g * (x) when g * (x) is compatible with g (x). The representation by the matrix S * of such an interleaver is similar to what has just been said but the conditions to be satisfied by S * are slightly different: the m-uple (ro, ..., rm-1) must be now obtained from the m-tuple (0, ..., m-1) by the action of a permutation which transforms the binary cyclic code of length m and generator polynomial g (x) into the binary cyclic code of length m and generator polynomial g * (x).

La suite de l'exposé est faite en supposant que g(x) = g*(x), mais on peut bien sûr l'adapter au cas où ces deux polynômes sont obtenus à partir l'un de l'autre par l'action d'un automorphisme de corps comme expliqué plus haut. The remainder of the discussion is made by supposing that g (x) = g * (x), but we can of course adapt it to the case where these two polynomials are obtained from each other by the action of a body automorphism as explained above.

Dans le cas g(x) = g*(x) on peut d'ailleurs aussi appliquer une modification de l'ordre dans lequel apparaissent les colonnes de S*, à condition que cette permutation soit un automorphisme du code cyclique de longueur m engendré In the case of g (x) = g * (x) we can also apply a modification of the order in which the columns of S * appear, provided that this permutation is an automorphism of the cyclic code of length m generated

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

par g(x). by g (x).

On introduit ici la notion de portée de polynôme (en anglais "span"), ainsi que de portée totale (en anglais "full span"). We introduce here the notion of polynomial scope (in English "span"), as well as of total scope (in English "full span").

Etant donné un polynôme a(x) comportant un nombre pair de coefficients

Figure img00120001

non nuls a( =,,', 1={i1, r2, ...,r2s, Ir<lr+1, la portée sp(a) est définie comme la somme des entiers ir avec r pair, diminuée de la somme des entiers ir avec r
Figure img00120002

impair: spray = (i2-il) + (l4-!3J+...+(!2s-!2s-,)
Ce polynôme a(x) étant alors transformé par la seconde méthode décrite plus haut en polynôme a*(x), la portée sp(a*) est calculée de façon identique. Given a polynomial a (x) comprising an even number of coefficients
Figure img00120001

nonzero a (= ,, ', 1 = {i1, r2, ..., r2s, Ir <lr + 1, the scope sp (a) is defined as the sum of the integers ir with r even, reduced by the sum integers ir with r
Figure img00120002

odd: spray = (i2-il) + (l4-! 3J + ... + (! 2s-! 2s-,)
This polynomial a (x) then being transformed by the second method described above into a polynomial a * (x), the range sp (a *) is calculated in an identical way.

On définit alors la portée totale fsp(a) comme la somme de la portée de a et de la portée de a*. We then define the total scope fsp (a) as the sum of the scope of a and the scope of a *.

Supposons alors un entrelaceur de type retour à zéro défini par une matrice S* avec la seconde des deux interprétations mentionnées ci-dessus, et considérons une séquence a(x) = #i#lx' dont les éléments non nuls sont tous dans la même colonne k de la matrice A (tous les i ont le même reste k dans leur division par le nombre m de colonnes de A). Suppose then a return-to-zero type interleaver defined by a matrix S * with the second of the two interpretations mentioned above, and consider a sequence a (x) = # i # lx 'whose non-zero elements are all in the same column k of matrix A (all i have the same remainder k in their division by the number m of columns in A).

Dans ce cas, une telle séquence a(x) est dite homogène, et est divisible par g(x) si et seulement si elle contient un nombre pair d'éléments non nuls. In this case, such a sequence a (x) is said to be homogeneous, and is divisible by g (x) if and only if it contains an even number of non-zero elements.

On comprend alors aisément que a(x) est divisible par xk, et que a(x)/xk

Figure img00120003

est un polynôme en x"' : v(x') = a(x)/ /
Le polynôme v(x) sera appelé la version simplifiée de a(x). De façon semblable, il existe k* dans 0, ...,m-1} tel que a*(x) est divisible par xk* et que a*(x)l xk* est un polynôme en xm: v*(xm)= a*(x)l xk*. Le polynôme v* (x) appelé la version simplifiée de a*(x). We can easily understand that a (x) is divisible by xk, and that a (x) / xk
Figure img00120003

is a polynomial at x "': v (x') = a (x) / /
The polynomial v (x) will be called the simplified version of a (x). Similarly, there exists k * in 0, ..., m-1} such that a * (x) is divisible by xk * and that a * (x) l xk * is a polynomial in xm: v * ( xm) = a * (x) l xk *. The polynomial v * (x) called the simplified version of a * (x).

On peut alors établir que si a(x) est séquence homogène, la connaissance de la portée totale fsp(v) de la séquence simplifiée correspondante, permet de déterminer le poids de la séquence codée (a, b, c) obtenue à partir de la séquence a, lorsque m est égal à 2t-1 où t est le degré de g(x).

Figure img00120004
We can then establish that if a (x) is a homogeneous sequence, the knowledge of the total range fsp (v) of the corresponding simplified sequence, makes it possible to determine the weight of the coded sequence (a, b, c) obtained from the sequence a, when m is equal to 2t-1 where t is the degree of g (x).
Figure img00120004

Par exemple, avec g(x)=1+x2+x3 (ce qui implique m=7), f(x)=1+x+x2+x3, f2(x)=1+x+x3, pour a(x) séquence homogène de poids 2, le poids de la séquence codée (a(x), b(x), c(x)) est toujours de 4.fsp(v) + 6. For example, with g (x) = 1 + x2 + x3 (which implies m = 7), f (x) = 1 + x + x2 + x3, f2 (x) = 1 + x + x3, for a ( x) homogeneous sequence of weight 2, the weight of the coded sequence (a (x), b (x), c (x)) is always 4.fsp (v) + 6.

Plus généralement, si a(x) est une séquence homogène comprenant un More generally, if a (x) is a homogeneous sequence comprising a

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

nombre pair égal à w, d'éléments non nuls, et si v(x) est le polynôme simplifié associé, avec fi(x), f2(x) et g(x) tels que précédemment définis, le poids de la séquence codée correspondante est égal à 4 fsp(v) +3.w. an even number equal to w, of non-zero elements, and if v (x) is the associated simplified polynomial, with fi (x), f2 (x) and g (x) as previously defined, the weight of the coded sequence corresponding is equal to 4 fsp (v) + 3.w.

Par ailleurs, il est clair qu'une limite inférieure existe pour la portée totale fsp(v). Elle est égale au poids de Hamming du polynôme v(x) (égal au poids de a (x))
Il est alors possible à partir de ces remarques de constituer une table fournissant pour divers poids de Hamming de la séquence homogène a (notés
WH(a)) les poids de Hamming WH(a,b,c) des séquences codées (abc) en fonction de la portée totale fsp(v) (voir figure 2).
Moreover, it is clear that a lower limit exists for the total scope fsp (v). It is equal to the Hamming weight of the polynomial v (x) (equal to the weight of a (x))
It is then possible from these remarks to constitute a table providing for various Hamming weights of the homogeneous sequence a (noted
WH (a)) the Hamming weights WH (a, b, c) of the coded sequences (abc) as a function of the total scope fsp (v) (see FIG. 2).

A titre d'exemple, comme on le voit sur la figure 2, si WH(a) est égal à 2 et si on souhaite une distance minimale au moins égale à 34, il est indispensable que la séquence simplifiée correspondante v ait une portée totale fsp(v) au moins égale à 7. Par contre, si le poids de Hamming WH(a) de la séquence a ,est de 6, la condition d'avoir une distance minimum au moins égale à 34 ne produit aucune condition supplémentaire sur la portée totale, cette condition de distance étant alors toujours remplie. By way of example, as can be seen in FIG. 2, if WH (a) is equal to 2 and if a minimum distance at least equal to 34 is desired, it is essential that the corresponding simplified sequence v have a total range fsp (v) at least equal to 7. On the other hand, if the Hamming weight WH (a) of the sequence a, is 6, the condition of having a minimum distance at least equal to 34 does not produce any additional condition on the total range, this distance condition then always being fulfilled.

En partant alors d'une matrice A de type (r, m) associée à une séquence a(x) choisie multiple d'un polynôme g(x) diviseur de xm+1, chaque colonne de A est découpée en l sous-colonnes notées Al1l2 (voir figure 3) et appelées "sousséquences colonne". Starting from a matrix A of type (r, m) associated with a sequence a (x) chosen multiple of a polynomial g (x) divider of xm + 1, each column of A is split into l sub-columns denoted Al1l2 (see FIG. 3) and called "column sub-sequences".

Dans le but d'utiliser sur chaque sous-colonne ainsi déterminée un entrelaceur verrou, ainsi que défini précédemment, il est nécessaire que la valeur r/l ne soit pas un nombre premier (sinon il n'est pas possible de représenter cette séquence sous forme d'une matrice à au moins deux lignes et deux colonnes). On peut donc écrire r/l = N.M avec M>2. De plus, on verra ultérieurement que les méthodes de synthèse d'entrelaceur selon la présente invention nécessitent N#M. In order to use on each sub-column thus determined a lock interleaver, as defined previously, it is necessary that the value r / l is not a prime number (otherwise it is not possible to represent this sequence under form a matrix with at least two rows and two columns). We can therefore write r / l = N.M with M> 2. In addition, it will be seen later that the interleaver synthesis methods according to the present invention require N # M.

Par nature les coefficients a, d'une sous-colonne Al1l2 auront pour indices :

Figure img00130001

io, io+m, io+2m, ..., io+m(r-/)// avec io= li (m rli) +/2. Pour conserver des notations raisonnables, nous représenterons toute By nature the coefficients a, of a sub-column Al1l2 will have as indices:
Figure img00130001

io, io + m, io + 2m, ..., io + m (r - /) // with io = li (m rli) + / 2. To maintain reasonable ratings, we will represent any

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

Figure img00140001

( /1-1 telle sous séquence colonne par y(x) = 2=Ca,o;/II, )xl ou, en posant y=a,O+mi, par Il) /\Ili 1 - y(x) ~ y, x' avec et rll=NM ,-il
On associe alors à l'ensemble de toutes les telles séquences y(x) une matrice Z à N lignes et M colonnes qui jouera le même rôle pour les entrelaceurs "microscopiques" que la matrice S pour l'entrelaceur "macroscopique". L'action d'un entrelaceur microscopique sur l'ensemble des séquences y(x) est représenté par une autre matrice Z*, à N lignes et M colonnes. Cette matrice Z* joue le même rôle pour les entrelaceurs microscopiques que la matrice S* pour les entrelaceurs macroscopiques.
Figure img00140001

(/ 1-1 such sub-sequence column by y (x) = 2 = Ca, o; / II,) xl or, by setting y = a, O + mi, by Il) / \ Ili 1 - y (x) ~ y, x 'with and rll = NM, -il
We then associate with the set of all such sequences y (x) a matrix Z with N rows and M columns which will play the same role for the “microscopic” interleavers as the matrix S for the “macroscopic” interleaver. The action of a microscopic interleaver on the set of sequences y (x) is represented by another matrix Z *, with N rows and M columns. This Z * matrix plays the same role for the microscopic interleavers as the S * matrix for the macroscopic interleavers.

Il est à noter que ces entrelaceurs microscopiques n'ont pas à assurer de "Retour à Zéro" d'aucune sorte, puisque la condition de divisibilité est à vérifier au niveau de l'entrelaceur macroscopique. Cependant, on choisit de restreindre les permutations Z#Z* à celles obtenues par réalisation d'une permutation circulaire dans chaque colonne de Z. Un tel entrelaceur microscopique est appelé pour la suite de la description un entrelaceur verrou (par analogie avec les verrous à rotation de bagues numérotées parallèles). It should be noted that these microscopic interleavers do not have to ensure a "Return to Zero" of any kind, since the condition of divisibility is to be checked at the level of the macroscopic interleaver. However, one chooses to restrict the permutations Z # Z * to those obtained by carrying out a circular permutation in each column of Z. Such a microscopic interleaver is called for the remainder of the description a lock interleaver (by analogy with the locks at rotation of parallel numbered rings).

Du fait de la nature d'une permutation circulaire, une telle matrice Z* (et donc l'entrelaceur verrou associé à Z et Z*) est totalement défini par la connaissance de l'amplitude de la permutation réalisée dans chaque colonne. Due to the nature of a circular permutation, such a matrix Z * (and therefore the interleaver lock associated with Z and Z *) is completely defined by the knowledge of the amplitude of the permutation carried out in each column.

Un entrelaceur verrou peut donc être défini par un M-uple h=(ho,..., hM-1) comprenant les valeurs d'amplitude de la permutation circulaire vers le bas effectuée dans chaque colonne de Z pour obtenir Z*. A latch interleaver can therefore be defined by an M-tuple h = (ho, ..., hM-1) comprising the amplitude values of the downward circular permutation performed in each column of Z to obtain Z *.

On rappelle pour la suite que ce type d'entrelaceur verrou va être utilisé pour entrelacer (permuter) des éléments d'une sous-séquence colonne de A. It will be recalled in the following that this type of lock interleaver will be used to interleave (permute) elements of a column sub-sequence of A.

Etant donné la façon dont a été choisi le nombre de colonnes de A, la propriété de retour à Zéro (RZ) de l'entrelaceur macroscopique résultant sera fournie en sus. Comme on l'a dit plus haut, cette propriété RZ reste assurée si est appliquée une modification de l'ordre dans lequel apparaissent les colonnes de A à condition que cette modification soit un automorphisme du code cyclique de longueur m et de polynôme générateur g(x). Given the way in which the number of columns of A was chosen, the Return to Zero (RZ) property of the resulting macroscopic interleaver will be provided in addition. As we said above, this property RZ remains ensured if a modification of the order in which the columns of A appear on the condition that this modification is an automorphism of the cyclic code of length m and of generator polynomial g ( x).

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

Cette technique est la première des trois techniques mentionnées cidessus pour produire des entrelaceurs efficaces. This technique is the first of the three techniques mentioned above for producing efficient interleavers.

Par exemple, dans la cas N=M=7, qui correspond à des sous-séquences colonne de longueur 49 (ayant 49 éléments), pour permettre au turbocode généré une distance minimale égale à 34, il faut que chaque entrelaceur microscopique Z#Z* garantisse que fsp(y) soit supérieure ou égale à 7, pour chaque séquence simplifiée y de poids de Hamming égal à 2, et une portée totale fsp(y) supérieure ou égale à 6 pour chaque séquence simplifiée de poids de Hamming égal à 4. For example, in the case N = M = 7, which corresponds to column subsequences of length 49 (having 49 elements), to allow the generated turbocode a minimum distance equal to 34, it is necessary that each microscopic interleaver Z # Z * guarantees that fsp (y) is greater than or equal to 7, for each simplified sequence y of Hamming weight equal to 2, and a total range fsp (y) greater than or equal to 6 for each simplified sequence of Hamming weight equal to 4.

Avec N # M # 2, on peut démontrer que tout entrelaceur verrou Z# Z* de taille NM décrit par un M-uple h tel que défini plus haut, a la propriété que toutes les séquences simplifiées y(x) de poids de Hamming égal à 2 ont leur portée totale fsp(y) supérieure ou égale à la valeur M dès que les M éléments de h sont de valeur différente (ce qui revient à dire que l'on doit appliquer des permutations circulaires de valeurs différentes sur toutes les colonnes de la représentation matricielle de la sous-séquence colonne). With N # M # 2, we can show that any lock interleaver Z # Z * of size NM described by an M-tuple h as defined above, has the property that all the simplified sequences y (x) of Hamming weight equal to 2 have their total range fsp (y) greater than or equal to the value M as soon as the M elements of h are of different value (which amounts to saying that one must apply circular permutations of different values to all the columns of the matrix representation of the column subsequence).

En revenant alors au cas N=M=7, on a a priori 77combinaisons de permutations circulaires possibles sur les 7 colonnes , mais en fait seules 7!, soit 5040 vérifient la condition fsp(y) supérieur ou égal à 7 pour chaque séquence simplifiée y(x) de poids 2. Returning then to the case N = M = 7, we have a priori 77 possible combinations of circular permutations on the 7 columns, but in fact only 7 !, i.e. 5040 satisfy the condition fsp (y) greater than or equal to 7 for each simplified sequence y (x) of weight 2.

En supposant alors que T1 et T2 sont deux matrices circulantes (matrice dont chaque colonne se déduit de la précédente par décalage (rotation) d'un cran vers le bas) de type M x M, telles que la première colonne de T! est [1,-

Figure img00150001

2,1, 0, ..., 0]' et la première colonne de T2 est [2,-2,0, ...,0]', on peut démontrer la propriété suivante : avec N > M # 6, tout entrelaceur verrou Z#Z* de taille NM décrit par un M-uple h tel que défini plus haut, a la propriété que toutes les séquences simplifiées y(x) de poids de Hamming égal à 4 ont leur portée totale fsp(y) supérieure ou égale à la valeur 6 dès que les restes modulo N de hT1 et de hT2 ne contiennent pas de composante nulle. Assuming then that T1 and T2 are two circulating matrices (matrix of which each column is deduced from the preceding one by shifting (rotation) of a notch downwards) of type M x M, such as the first column of T! is [1, -
Figure img00150001

2,1, 0, ..., 0] 'and the first column of T2 is [2, -2,0, ..., 0]', we can prove the following property: with N> M # 6, any interleaver lock Z # Z * of size NM described by an M-tuple h as defined above, has the property that all the simplified sequences y (x) of Hamming weight equal to 4 have their total scope fsp (y) greater than or equal to the value 6 as soon as the modulo N remainders of hT1 and hT2 do not contain a zero component.

En revenant encore au cas N=M=7, on peut déterminer les septuples h vérifiant à la fois les deux propriétés précédentes. Par exemple pour une première composante nulle (pas de permutation circulaire de la première Returning again to the case N = M = 7, we can determine the seven times h satisfying both the previous properties. For example for a first zero component (no circular permutation of the first

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

colonne), on a exactement 168 septuples satisfaisant ces propriétés. column), we have exactly 168 septuples satisfying these properties.

Pour le cas où de plus h1=1 (permutation circulaire d'amplitude égale à un de la deuxième colonne), on a 28 tels septuples satisfaisant aux deux propriétés (voir la table de la figure 4). For the case where moreover h1 = 1 (circular permutation of amplitude equal to one of the second column), we have 28 such septuples satisfying the two properties (see the table of figure 4).

Par exemple, on démontre que les septuples suivants satisfont aux conditions énoncées :

Figure img00160001

h()=(0643 25), h(2)=(051 6243), h(3) =(0 45236 1) h(4)=(0 3 2 5 4 1 6), h(5)=(0 2 6 1 5 3 4), h(6)=(0 1 3 4 6 5 2) ce dernier septuple étant le dernier élément de la figure 4. For example, it is shown that the following septuples satisfy the stated conditions:
Figure img00160001

h () = (0643 25), h (2) = (051 6243), h (3) = (0 45236 1) h (4) = (0 3 2 5 4 1 6), h (5) = ( 0 2 6 1 5 3 4), h (6) = (0 1 3 4 6 5 2) this last sevenfold being the last element of figure 4.

Dans un autre exemple (avec M=5), si l'on souhaite obtenir un turbocode ayant une distance minimale de 42, on voit sur la table de la figure 2 que ceci implique que pour des séquences y de poids 2, la portée totale fsp(y) soit supérieure ou égale à 9 et pour des séquences de poids 4, la portée totale fsp(y) soit supérieure ou égale à 8. On remarque aussi que la condition fsp(y) #42 est toujours vérifiée pour les séquences de poids 6 ou plus. In another example (with M = 5), if one wishes to obtain a turbocode having a minimum distance of 42, one sees on the table of figure 2 that this implies that for sequences y of weight 2, the total range fsp (y) is greater than or equal to 9 and for sequences of weight 4, the total range fsp (y) is greater than or equal to 8. We also notice that the condition fsp (y) # 42 is always verified for the sequences of weight 6 or more.

On cherche alors à construire des entrelaceurs Z#Z* où Z et Z* sont des matrices à N lignes et 5 colonnes. Il faut donc spécifier des entrelaceurs verrou par des 5-uples h=[ho, h1, h2, h3, h4] de nombres h, compris entre 0 et N-1 (bornes incluses), telles que la portée totale fsp(y) de toute séquence simplifiée y(x) de poids 2 soit supérieure ou égale à 9 et que la portée totale fsp(y) de toute séquence simplifiée y(x) de poids 4 soit supérieure ou égale à 8 (voir figure 2). We then seek to construct interlacers Z # Z * where Z and Z * are matrices with N rows and 5 columns. We must therefore specify interleavers with 5-uples h = [ho, h1, h2, h3, h4] of numbers h, between 0 and N-1 (limits included), such as the total scope fsp (y) of any simplified sequence y (x) of weight 2 is greater than or equal to 9 and that the total range fsp (y) of any simplified sequence y (x) of weight 4 is greater than or equal to 8 (see figure 2).

On peut vérifier que ceci est réalisé pour toutes les séquences y(x) de poids 2, si et seulement si deux composantes h,, h, quelconques de h sont telles que leur différence modulo N est en valeur absolue supérieure strictement à 1 (ni zéro, ni -1, ni 1). We can check that this is done for all the sequences y (x) of weight 2, if and only if any two components h ,, h, of h are such that their modulo N difference is in absolute value greater than 1 (nor zero, neither -1, nor 1).

Pour vérifier la condition pour toutes les séquences de poids 4, on peut mettre en évidence quelques conditions nécessaires à remplir par les m-uples h remplissant déjà la condition pour les séquences de poids 2, et en se restreignant au cas où la première composante ho est nulle (pas de permutation circulaire de la première colonne de Z pour obtenir la première colonne de Z*). To check the condition for all the sequences of weight 4, we can highlight some conditions necessary to be fulfilled by the m-uples h already fulfilling the condition for the sequences of weight 2, and restricting ourselves to the case where the first component ho is zero (no circular permutation of the first column of Z to obtain the first column of Z *).

Supposons en effet que T1, T2, ... T7 sont sept matrices circulantes de Let us suppose in fact that T1, T2, ... T7 are seven circulating matrices of

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

type M x M, comprenant respectivement comme premières colonnes, pour T1

Figure img00170001

[1, -2, 1, 0, 07', pour T2:[2, -2, 0, 0, 0]\ pour T3 : [2, -1, -1, 0, 0]', pour T4 : [1, -1, -1, 1, 0]', pour T5 : [1, 1, -2, 0, 0]', pour T6.- [1, 0, -2, 1, 07', pour T7 : [1, -2, 0, 1, 0] '. type M x M, comprising respectively as first columns, for T1
Figure img00170001

[1, -2, 1, 0, 07 ', for T2: [2, -2, 0, 0, 0] \ for T3: [2, -1, -1, 0, 0]', for T4: [1, -1, -1, 1, 0] ', for T5: [1, 1, -2, 0, 0]', for T6.- [1, 0, -2, 1, 07 ', for T7: [1, -2, 0, 1, 0] '.

Une première condition nécessaire est que pour i=1 à 7, le reste modulo N de hT, n'ait pas de composante égale à 0,1 ou-1. A first necessary condition is that for i = 1 to 7, the modulo N remainder of hT, does not have a component equal to 0.1 or −1.

En introduisant une matrice circulante 5 x 5 T8 de première colonne [1, 1, - 1, -1, 0]', une seconde condition nécessaire est que le reste modulo N de hT8 n'ait pas de composante égale à 1 ou-1. By introducing a circulating matrix 5 x 5 T8 of the first column [1, 1, - 1, -1, 0] ', a second necessary condition is that the modulo N remainder of hT8 does not have a component equal to 1 or- 1.

En introduisant une matrice circulante 5 x 5 T9 de première colonne [1, -1, 1, -1, 0]', une troisième condition nécessaire est que le reste modulo N de hTg n'ait pas de composante égale à 0 ou 1. By introducing a circulating matrix 5 x 5 T9 of the first column [1, -1, 1, -1, 0] ', a third necessary condition is that the remainder modulo N of hTg does not have a component equal to 0 or 1 .

On vérifie alors que pour N=26, ces conditions (nécessaires) sont également suffisantes et que pour N égal ou inférieur à 25 ces conditions ne sont jamais satisfaites. It is then verified that for N = 26, these (necessary) conditions are also sufficient and that for N equal or less than 25 these conditions are never satisfied.

Pour N=26, il existe 120 quintuples satisfaisant les conditions énoncées. For N = 26, there are 120 quintuples satisfying the stated conditions.

Ces quintuples sont tous les multiples non nuls modulo 26 des 10 quintuples suivants :
0 2 6 22 8
0 2 8 20 16
0 2 10 16 12
0 2 10 22 6
0 2 12 8 20
0 2 16 12 18
0 2 18 14 6
0 2 20 6 22
0 2 22 6 18
0 2 22 14 10
On a explicité dans les pages précédentes une méthode de construction d'entrelaceurs microscopiques satisfaisant des conditions nécessaires permettant à la distance minimale du turbocode généré par l'entrelaceur macroscopique associé d'être supérieure à une valeur prédéterminée.
These quintuples are all modulo 26 non-zero multiples of the following 10 quintuples:
0 2 6 22 8
0 2 8 20 16
0 2 10 16 12
0 2 10 22 6
0 2 12 8 20
0 2 16 12 18
0 2 18 14 6
0 2 20 6 22
0 2 22 6 18
0 2 22 14 10
A method for constructing microscopic interleavers satisfying the necessary conditions allowing the minimum distance from the turbocode generated by the associated macroscopic interleaver to be greater than a predetermined value has been explained in the preceding pages.

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

En se basant alors sur les entrelaceurs verrou définis plus haut pour les sous colonnes Al1l2, on suppose ici qu'un entrelaceur verrou identique Z#Z* est utilisé pour toutes les sous-colonnes. Dans ce cas l'entrelaceur global est tel que le turbocode correspondant contient en assez grand nombre des

Figure img00180001

séquences de très faible poids. En effet, avec g(x)=1+x2+x3, f1(x) = 1 +x++)(3 et f2(x)=1+x+x3 tels que considérés plus haut, un polynôme de la forme a(x)=x7'.g(x) vérifie a*(x) =x7j.g(x), pour un certain j. En conséquence, le poids de Hamming correspondant à la séquence encodée (a, b, c) est seulement de 10, ce qui est une valeur assez faible. By then based on the lock interleavers defined above for the sub-columns A112, it is assumed here that an identical lock interleaver Z # Z * is used for all the sub-columns. In this case, the global interleaver is such that the corresponding turbocode contains a fairly large number of
Figure img00180001

very low weight sequences. Indeed, with g (x) = 1 + x2 + x3, f1 (x) = 1 + x ++) (3 and f2 (x) = 1 + x + x3 as considered above, a polynomial of the form a ( x) = x7'.g (x) satisfies a * (x) = x7j.g (x), for some j. Consequently, the Hamming weight corresponding to the encoded sequence (a, b, c) is only of 10, which is a fairly low value.

On définit ici la notion de portée sp(a) et de portée totale fsp(a) pour des trinômes a(x) =xi + xj + Xk avec i< j < k par les valeurs suivantes : sp(a)=k-i, et fsp(a) = spray + sp(a*). We define here the notion of scope sp (a) and total scope fsp (a) for trinomials a (x) = xi + xj + Xk with i <j <k by the following values: sp (a) = ki, and fsp (a) = spray + sp (a *).

A la suite de l'action d'un entrelaceur verrou sur chacune des souscolonnes Al1l2 on obtient une matrice A*. Comme chaque sous-colonne Al1l2 permutée par un entrelaceur verrou conserve jusqu'à présent la même position relative dans A* que dans A, cette matrice A* est encore représentée par le même tableau, par exemple celui donné à la figure 5, que la matrice A. Following the action of a latch interleaver on each of the Al1l2 sub-columns, a matrix A * is obtained. As each sub-column Al1l2 permuted by a latch interleaver preserves until now the same relative position in A * as in A, this matrix A * is still represented by the same table, for example that given in figure 5, as the matrix A.

Dans le but d'éviter certaines séquences codées de faible poids comme celles de poids 10 mentionnées ci-dessus, on va aussi modifier la matrice A* obtenue jusqu'à présent en permutant entre elles les sous-colonnes d'une même colonne. In order to avoid certain coded sequences of low weight such as those of weight 10 mentioned above, the matrix A * obtained hitherto obtained will also be modified by interchanging the sub-columns of the same column with each other.

On peut alors montrer sur des exemples que toutes les permutations permutant entre elles les sous-colonnes de chaque colonne ne sont pas équivalentes en terme de distance minimale du turbocode obtenu. It can then be shown on examples that all the permutations permuting the sub-columns of each column with each other are not equivalent in terms of minimum distance from the turbocode obtained.

En particulier, on observe qu'il est souhaitable d'éviter, outre la situation

Figure img00180002

a(x)=x7'.g(x), a*(x) =x 7j. g(x), mentionnée ci-dessus, toute situation du type a(x)=(x'+x'+x').g(x) et a*(x)=(x'*+x'*+xk*).g(x) car le poids de la séquence codée correspondante est égal à 30, et donc strictement inférieur à 34, qui est la distance minimale souhaitée. In particular, it is observed that it is desirable to avoid, in addition to the situation
Figure img00180002

a (x) = x7'.g (x), a * (x) = x 7j. g (x), mentioned above, any situation of the type a (x) = (x '+ x' + x '). g (x) and a * (x) = (x' * + x '* + xk *). g (x) because the weight of the corresponding coded sequence is equal to 30, and therefore strictly less than 34, which is the desired minimum distance.

Une permutation des sous-colonnes de A* qui évite la première des situations défavorables qui viennent d'être évoquées est représentée à la figure 6. La présence dans la figure 6 de la paire (il, l2) dans la position occupée à la A permutation of the sub-columns of A * which avoids the first of the unfavorable situations which have just been evoked is represented in figure 6. The presence in figure 6 of the pair (il, l2) in the position occupied at the

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

figure 5 par la paire (k1, k2) veut dire que la sous-colonne (A*)k1k2 est déplacée dans la position préalablement occupée par la sous-colonne (A*)l1l2. En particulier, dans l'exemple donné, la sous-colonne (A*)01 est déplacée dans la

Figure img00190001

position initiale de (A *)5', la sous-colonne (A *) 2 est déplacée dans la position initiale de (A*)32, la sous-colonne (A*)03 est déplacée dans la position initiale de (A*)3', ..., , la sous-colonne (A*)10 reste où elle est, ..., , la sous-colonne (A*)66 est déplacée dans la position initiale de (A*)16. figure 5 by the pair (k1, k2) means that the sub-column (A *) k1k2 is moved to the position previously occupied by the sub-column (A *) l1l2. In particular, in the example given, the sub-column (A *) 01 is moved into the
Figure img00190001

initial position of (A *) 5 ', the sub-column (A *) 2 is moved to the initial position of (A *) 32, the sub-column (A *) 03 is moved to the initial position of (A *) 3 ', ...,, the sub-column (A *) 10 remains where it is, ...,, the sub-column (A *) 66 is moved to the initial position of (A *) 16 .

Cette permutation a toutefois le défaut de ne pas éviter la seconde situation défavorable mentionnée ci-dessus. En effet, avec q=rll, g(x), fi(x), et

Figure img00190002

f2(x) comme ci-dessus, la séquence a(x=(x3l+'+xs'+j+xGl).g(x) produit a*(x)=(>?+yr+2+x6r).g(X), et on vérifie que la séquence codée correspondante à un poids de 30. However, this permutation has the drawback of not avoiding the second unfavorable situation mentioned above. Indeed, with q = rll, g (x), fi (x), and
Figure img00190002

f2 (x) as above, the sequence a (x = (x3l + '+ xs' + j + xGl) .g (x) produces a * (x) = (>? + yr + 2 + x6r) .g (X), and it is verified that the coded sequence corresponding to a weight of 30.

Considérons, au contraire, la permutation des sous-colonnes de A* entre elles qui est donnée à la figure 7. Dans ce cas la seconde situation défavorable mentionnée ci-dessus est également évitée. En conséquence l'entrelaceur global induit par la figure 7 élimine du code beaucoup de séquences de poids # 30 et les remplace par des séquences de poids #34. Let us consider, on the contrary, the permutation of the sub-columns of A * among themselves which is given in FIG. 7. In this case the second unfavorable situation mentioned above is also avoided. Consequently the global interleaver induced by Figure 7 eliminates from the code many sequences of weight # 30 and replaces them with sequences of weight # 34.

Voici quelques détails sur la façon de trouver des permutations ayant cet effet. Dans ce but nous simplifions et généralisons les représentations des figures 5,6 et 7. Comme simplification nous omettons le second nombre l2 dans chaque paire l1,l2, car la valeur de l2 n'est pas modifiée par les permutations que nous considérons. Comme généralisation, nous acceptons que q puisse être strictement supérieur au nombre de colonnes. Avec ces deux conventions et q=8, une permutation des sous-colonnes entre elles qui a l'effet souhaité est donnée à la figure 8. Here are some details on how to find permutations that have this effect. For this purpose we simplify and generalize the representations of figures 5,6 and 7. As a simplification we omit the second number l2 in each pair l1, l2, because the value of l2 is not modified by the permutations that we consider. As a generalization, we accept that q can be strictly greater than the number of columns. With these two conventions and q = 8, a permutation of the sub-columns between them which has the desired effect is given in figure 8.

On peut alors démontrer la propriété suivante :
La deuxième situation défavorable mentionnée ci-dessus est évitée si il

Figure img00190003

est impossible de trouver 9 paires (it, jt), (ir, lr+2) (lr jt+3) pour t compris entre 1 et 3, où les ir et les jr, sont des nombres entiers satisfaisant 0 S it s q-1 et 0 s h s 6 et où les additions se font modulo 7, telles que lorsque ces paires sont considérées comme les indices de ligne et de colonne des éléments de la matrice donnée à la figure 8, il y a exactement trois entiers différents We can then prove the following property:
The second adverse situation mentioned above is avoided if it
Figure img00190003

is impossible to find 9 pairs (it, jt), (ir, lr + 2) (lr jt + 3) for t between 1 and 3, where the ir and the jr, are integers satisfying 0 S it s q -1 and 0 shs 6 and where the additions are made modulo 7, such that when these pairs are considered as the row and column indices of the elements of the matrix given in figure 8, there are exactly three different integers

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

apparaissant chacun dans trois des neuf positions ainsi obtenues. La matrice représentée à la figure 8 évite bien cette situation défavorable ainsi qu'on peut le vérifier par un programme en langage MATLAB fourni en appendice. each appearing in three of the nine positions thus obtained. The matrix represented in FIG. 8 clearly avoids this unfavorable situation as can be verified by a program in MATLAB language provided in the appendix.

De manière à améliorer encore le turbocode, on choisit d'utiliser un entrelaceur verrou différent pour chaque colonne de A. In order to further improve the turbocode, we choose to use a different latch interleaver for each column of A.

Considérons le cas où chaque sous-colonne Al1l2 contient 49 éléments, où A contient 7 colonnes et où chaque colonne contient 7 sous-colonnes. La longueur de la séquence a(x) correspondante est donc égale à 49 x 7 x 7 = 2401. Consider the case where each sub-column A112 contains 49 elements, where A contains 7 columns and where each column contains 7 sub-columns. The length of the corresponding sequence a (x) is therefore equal to 49 x 7 x 7 = 2401.

On choisit de construire la matrice A* en permutant entre elles les souscolonnes de chaque colonne suivant la règle représentée par la figure 7. We choose to build the matrix A * by permuting the sub-columns of each column between them according to the rule shown in figure 7.

Ensuite, à chaque sous colonne Al1l2 de 49 éléments ayant une valeur fixée de l2, on associe un même entrelaceur verrou 7 x 7 spécifié par un septuple h=[ho,

Figure img00200001

h 1, h2 h3, ha h5, /le]-
Le choix de l'entrelaceur verrou associé à chaque sous colonne est réalisé comme suit :
On numérote de 0 à 6 les colonnes de A et A*, et on utilise les septuples suivants :
Figure img00200002

h(1)=(06431 25), h(2)=(051 6243), h(3)=(0 4 5 2 3 6 1) h(4)=(0 3 2 5 4 16), h(5) =(0 2 6 1 5 3 4), h(6)=(0 1 3 4 6 5 2). Then, to each sub-column Al1l2 of 49 elements having a fixed value of l2, we associate the same interleaver lock 7 x 7 specified by a sevenfold h = [ho,
Figure img00200001

h 1, h2 h3, ha h5, / le] -
The choice of the interleaver lock associated with each sub column is carried out as follows:
We number from 0 to 6 the columns of A and A *, and we use the following septuples:
Figure img00200002

h (1) = (06431 25), h (2) = (051 6243), h (3) = (0 4 5 2 3 6 1) h (4) = (0 3 2 5 4 16), h ( 5) = (0 2 6 1 5 3 4), h (6) = (0 1 3 4 6 5 2).

Chacun de ces septuples spécifie un entrelaceur verrou et le verrou spécifié par h(i) est utilisé pour permuter toutes les sous-colonnes de la colonne i(i=1,...,6) de A. Each of these septuples specifies a lock interleaver, and the lock specified by h (i) is used to swap all sub-columns in column i (i = 1, ..., 6) of A.

Pour la colonne d'indice 0, les sous-colonnes sont permutées en utilisant un des six septuples définis, par exemple h(1). For the column with index 0, the sub-columns are permuted using one of the six defined septuples, for example h (1).

On a vu plus haut que ces septuples vérifient des conditions nécessaires pour que la portée globale d'une séquence simplifiée y(x) correspondant à une séquence homogène a(x) soit supérieure ou égale à 7 si le poids de Hamming de la séquence a(x) est égal à 2, et soit supérieur ou égal à 6 si le poids de Hamming de a(x) est égal à 4. We saw above that these septuples satisfy the conditions necessary so that the global scope of a simplified sequence y (x) corresponding to a homogeneous sequence a (x) is greater than or equal to 7 if the Hamming weight of the sequence a (x) is equal to 2, and either greater than or equal to 6 if the Hamming weight of a (x) is equal to 4.

La raison pour laquelle on choisit des entrelaceurs verrou différents dans chaque colonne de A est la suivante. Si on ne le faisait pas, il serait possible de The reason for choosing different latch interleavers in each column of A is as follows. If we didn't, it would be possible to

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

Figure img00210001

choisir pour i fixé, un nombre j tel que la séquence a(x)=x(1+x')(I+x'+2+x'+3) soit entrelacée en a*(x)=x*{l-tx7J*)(J+x:'+x?) par un entrelaceur de type décrit par la figure 7. Dans ce cas, le poids de la séquence codée correspondante pourrait être strictement inférieur à 34.
Figure img00210001

choose for fixed i, a number j such that the sequence a (x) = x (1 + x ') (I + x' + 2 + x '+ 3) is interlaced in a * (x) = x * {l -tx7J *) (J + x: '+ x?) by an interleaver of the type described in FIG. 7. In this case, the weight of the corresponding coded sequence could be strictly less than 34.

Dans un autre exemple, les sous-colonnes ont une "longueur" de 117 éléments, et sont placées en matrices 13 x 9, devant être entrelacées par des entrelaceurs verrous 13 x 9. L'entrelaceur global permute alors 117 x 49 soit 5733 bits d'information. In another example, the sub-columns have a "length" of 117 elements, and are placed in 13 x 9 matrices, to be interlaced by 13 x 9 lock interleavers. The global interleaver then swaps 117 x 49 or 5733 bits. of information.

Dans ce cas, pour i compris entre 1 et 12, on note h(i) le 9-uple suivant : h(i)=(O i 5i 7i 12i 8i 11 i 9i 3i) dont toutes les valeurs sont calculées modulo 13. Chaque tel 9-uple définit complètement un entrelaceur verrou (on rappelle qu'il donne par chacune de ses composantes l'amplitude de la rotation de chaque colonne d'une matrice à 9 colonnes) qui satisfait à une condition de portée globale fsp(y) > 9 pour toutes les séquences a de poids 2, et fsp(y) > 8 pour les séquences a de poids 4, ce qui permet d'espérer une distance minimale égale à 42 (voir figure 2). Pour cela, on utilisera par exemple des h(i) différents dans les 7 colonnes de A et on appliquera une permutation des colonnes entre elles du type de celle décrite par la figure 8. In this case, for i between 1 and 12, we denote h (i) the following 9-uple: h (i) = (O i 5i 7i 12i 8i 11 i 9i 3i) all of whose values are calculated modulo 13. Each such 9-uple completely defines a latch interleaver (we recall that it gives by each of its components the amplitude of the rotation of each column of a 9-column matrix) which satisfies a condition of global scope fsp (y )> 9 for all the sequences a of weight 2, and fsp (y)> 8 for the sequences a of weight 4, which allows to expect a minimum distance equal to 42 (see figure 2). For this, for example, different h (i) will be used in the 7 columns of A and a permutation of the columns between them will be applied of the type described in FIG. 8.

On obtient ainsi un turbocode adapté à coder des séquences binaires de longueur 5733 et spécifié comme dit plus haut par g(x)=1+x2+x3,

Figure img00210002

f1(x) = 1 +X+X2+X3 et f2(x)= 9+x+x3 . We thus obtain a turbocode suitable for encoding binary sequences of length 5733 and specified as said above by g (x) = 1 + x2 + x3,
Figure img00210002

f1 (x) = 1 + X + X2 + X3 and f2 (x) = 9 + x + x3.

Des simulations ont été réalisées dans le cas où on utilise un entrelaceur de longueur 2401 (premier exemple ci-dessus). Elles sont illustrées par la figure 9 qui donne pour quatre nombres différents d'itérations de décodage le taux d'erreur par bit (BER) en fonction du rapport signal sur bruit par bit (Eb/No exprimé en dB). On constate que le gain est très significatif pour des rapports signal/bruit déjà peu élevés, et que l'essentiel du gain est obtenu après 8 itérations. Simulations have been carried out in the case where an interleaver of length 2401 is used (first example above). They are illustrated by FIG. 9 which gives for four different numbers of decoding iterations the error rate per bit (BER) as a function of the signal to noise ratio per bit (Eb / No expressed in dB). It can be seen that the gain is very significant for signal / noise ratios that are already low, and that most of the gain is obtained after 8 iterations.

Il est clair que par rapport aux entrelaceurs habituellement utilisés, l'entrelaceur proposé dans la présente invention offre l'avantage majeur de garantir le retour à zéro simultané des deux codeurs élémentaires tout en It is clear that compared to the interleavers usually used, the interleaver proposed in the present invention offers the major advantage of guaranteeing the simultaneous return to zero of the two elementary encoders while at the same time.

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

garantissant une bonne distribution de distance du code, ce qui est un facteur intéressant lorsque le rapport signal sur bruit par bit Eb/No est élevé. guaranteeing good code distance distribution, which is an advantageous factor when the signal to noise ratio per bit Eb / No is high.

La description d'un mode particulier de réalisation du dispositif mettant en #uvre la présente invention va maintenant se poursuivre en regard des figures 10 à 14. The description of a particular embodiment of the device embodying the present invention will now continue with reference to Figures 10 to 14.

La figure 10 illustre schématiquement la constitution d'une station de réseau ou station de codage informatique, sous forme de schéma synoptique. FIG. 10 schematically illustrates the constitution of a network station or computer coding station, in the form of a block diagram.

Cette station comporte un clavier 911, un écran 909, une source d'informations externe 910, un émetteur hertzien 906, conjointement reliés à un port d'entrée/sortie 903 d'une carte de traitement 901. This station comprises a keypad 911, a screen 909, an external information source 910, a wireless transmitter 906, jointly connected to an input / output port 903 of a processing card 901.

La carte de traitement 901 comporte, reliés entre eux par un bus d'adresses et de données 902 : - une unité centrale de traitement 900 ; - une mémoire vive RAM 904 ; - une mémoire non volatile 905 ; et - le port d'entrée/sortie 903. The processing card 901 comprises, interconnected by an address and data bus 902: a central processing unit 900; - a random access memory RAM 904; - a non-volatile memory 905; and - the input / output port 903.

Chacun des éléments illustrés en figure 10 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 910 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 notamment de type IP ou ATM, sous forme de séquences de données binaires, - l'émetteur hertzien 906 est adapté à mettre en oeuvre un protocole de transmission par paquets sur un canal non filaire, et à transmettre ces paquets sur un tel canal. Each of the elements illustrated in FIG. 10 is well known to those skilled in the art 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 910 is, for example, an interface peripheral, a sensor, a demodulator, an external memory or another information processing system (not shown), and is preferably suitable for providing sequences of signals representative of speech, of service messages or of multimedia data, in particular of IP or ATM type, in the form of binary data sequences, - the wireless transmitter 906 is suitable for implementing a communication protocol. packet transmission over a wireless channel, and to transmit those packets over such a channel.

On observe, en outre, que le mot "registre" utilisé dans la description désigne, dans chacune des mémoires 904 et 905, aussi bien une zone mémoire de faible capacité (quelques données binaires) qu'une zone mémoire It is further observed that the word “register” used in the description designates, in each of the memories 904 and 905, both a low-capacity memory area (some binary data) and a memory area.

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

de grande capacité (permettant de stocker un programme entier). large capacity (allowing to store an entire program).

La mémoire vive 904 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 904 comporte notamment les registres suivants : - un registre "nb~données" dans lequel est conservée la longueur de la séquence de données à coder, - un registre "a", dans lequel est conservée a, la séquence de données à coder, incluant la séquence d'entrée u et les bits ajoutés (bits de padding) garantissant la divisibilité de la séquence a par g (la séquence d'entrée u n'étant pas nécessairement divisible par g, le premier codeur ajoute à la séquence d'entrée u un nombre de bits égal au degré de g formant ainsi la séquence a pour rendre cette dernière divisible par g) - un registre a* dans lequel est conservée la séquence entrelacée a*, - un registre a,b,c dans lesquels sont conservées les séquences résultant du turbo codage a, b et c, et - un registre "trame~radio" dans lequel est conservée l'intégralité de la trame radio à émettre. Random access memory 904 stores data, variables and intermediate processing results in memory registers bearing, in the description, the same names as the data whose values they store. The random access memory 904 comprises in particular the following registers: - an "nb ~ data" register in which the length of the data sequence to be encoded is kept, - a register "a", in which a, the data sequence to be encoded is kept. code, including the input sequence u and the added bits (padding bits) guaranteeing the divisibility of the sequence a by g (the input sequence u not necessarily being divisible by g, the first encoder adds to the sequence input u a number of bits equal to the degree of g thus forming the sequence a to make the latter divisible by g) - a register a * in which the interlaced sequence a * is kept, - a register a, b, c in which are kept the sequences resulting from the turbo coding a, b and c, and - a register "~ radio frame" in which is stored the entire radio frame to be transmitted.

La mémoire non volatile 905 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 900, dans un registre "programme", - la séquence g, dans un registre "g", - la séquence f1, dans un registre "f1", - la séquence f2, dans un registre "f2", - la taille de l'entrelaceur n, dans un registre n - un registre "entrelaceur" dans lequel est conservé le tableau définissant l'entrelaceur, en fonction de la valeur de n, - la valeur m, de la période de g dans un registre m
L'unité centrale de traitement 900 est adaptée à mettre en #uvre l'organigramme décrit en figure 13.
The non-volatile memory 905 is suitable for keeping, in registers which, for convenience, have the same names as the data they keep: the operating program of the central processing unit 900, in a "program" register , - the sequence g, in a register "g", - the sequence f1, in a register "f1", - the sequence f2, in a register "f2", - the size of the interleaver n, in a register n - an "interleaver" register in which is kept the table defining the interleaver, as a function of the value of n, - the value m, of the period of g in a register m
The central processing unit 900 is suitable for implementing the flowchart described in FIG. 13.

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

En figure 11, on observe qu'un dispositif de décodage est essentiellement constitué de : - trois entrées douces 1001,1002 et 1003 de séquences a, b et c, estimations des séquences codées, - un premier décodeur 1004 correspondant au premier codeur élémentaire 102 (figure 1) et recevant les séquences a et b ainsi qu'une séquence d'information extrinsèque w4, initialisée à zéro, fournit une séquence d'estimation a posteriori w1, - un entrelaceur 1005, identique à l'entrelaceur utilisé dans le codeur, qui reçoit la séquence w1 et l'entrelace en w2, - un deuxième décodeur 1006, correspondant au deuxième codeur élémentaire 103 et recevant les séquences w2 et c, et fournit d'une part une séquence d'estimation a posteriori w3 et, d'autre part, une séquence estimée a', et - un désentrelaceur 1007, inverse de l'entrelaceur 1005, recevant la séquence w3 et fournissant la séquence w4. In FIG. 11, it can be seen that a decoding device is essentially made up of: - three soft inputs 1001, 1002 and 1003 of sequences a, b and c, estimates of the coded sequences, - a first decoder 1004 corresponding to the first elementary coder 102 (figure 1) and receiving the sequences a and b as well as an extrinsic information sequence w4, initialized to zero, provides an a posteriori estimation sequence w1, - an interleaver 1005, identical to the interleaver used in the encoder , which receives the sequence w1 and the interleave in w2, - a second decoder 1006, corresponding to the second elementary coder 103 and receiving the sequences w2 and c, and provides on the one hand an a posteriori estimation sequence w3 and, d 'on the other hand, an estimated sequence a', and - a deinterleaver 1007, inverse of the interleaver 1005, receiving the sequence w3 and providing the sequence w4.

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 error-correcting coding and decoding : turbocodes" cité supra) . The estimated sequence a 'is only taken into account after a predetermined number of iterations (see the article "Near Shannon limit error-correcting coding and decoding: turbocodes" cited above).

Conformément à la présente invention, les décodeurs 1004 et 1006 sont initialisés en prenant en compte le fait que les codeurs élementaires 102 et 103 possèdent, chacun, un état initial et un état final nul. In accordance with the present invention, the decoders 1004 and 1006 are initialized taking into account the fact that the elementary encoders 102 and 103 each have an initial state and a zero final state.

La figure 12 illustre schématiquement la constitution d'une station de réseau ou station de codage informatique, sous forme de schéma synoptique. FIG. 12 schematically illustrates the constitution of a network station or computer coding station, in the form of a block diagram.

Cette station comporte un clavier 1111, un écran 1109, un destinataire d'informations externe 1110, un récepteur hertzien 1106, conjointement reliés à un port d'entrée/sortie 1103 d'une carte de traitement 1101. This station comprises a keyboard 1111, a screen 1109, an external information recipient 1110, a wireless receiver 1106, jointly connected to an input / output port 1103 of a processing card 1101.

La carte de traitement 1101 comporte, reliés entre eux par un bus d'adresses et de données 1102 : - une unité centrale de traitement 1100 ; - une mémoire vive RAM 1104 ; - une mémoire non volatile 1105 ;et The processing card 1101 comprises, interconnected by an address and data bus 1102: a central processing unit 1100; a random access memory RAM 1104; - a non-volatile memory 1105; and

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

- le port d'entrée/sortie 1103. - the input / output port 1103.

Chacun des éléments illustrés en figure 12 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 : - le destinataire d'informations 1110 est, par exemple, un périphérique d'interface, un afficheur, un modulateur, une mémoire externe ou un autre système de traitement d'information (non représenté), et est préférentiellement adapté à recevoir des séquences de signaux représentatifs de parole, de messages de service ou de données multimédia notamment de type IP ou ATM, sous forme de séquences de données binaires, - le récepteur hertzien 1106 est adapté à mettre en oeuvre un protocole de transmission par paquets sur un canal non filaire, et à transmettre ces paquets sur un tel canal. Each of the elements illustrated in FIG. 12 is well known to those skilled in the art 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 recipient 1110 is, for example, an interface peripheral, a display, a modulator, an external memory or another information processing system (not shown), and is preferably suitable for receiving sequences of signals representative of speech, service messages or multimedia data, in particular of IP or ATM type, in the form of binary data sequences, - the wireless receiver 1106 is suitable for implementing a transmission protocol by packets on a wireless 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 1104 et 1105, 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 1104 and 1105, both a low-capacity memory area (some binary data) and a large-capacity memory area (making it possible to store an entire program).

La mémoire vive 1104 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 1104 comporte notamment les registres suivants : - des registres "données~reçues , dans lesquels sont respectivement conservées les séquences reçues, - des registres "inf extrinsèques", dans lesquels sont respectivement conservées les séquences intermédiaires (voir figure 11) de décodage, - un registre "données~estimées"', dans lequel est conservée la séquence décodée a', - un registre "nb~itérations", dans lequel est conservée la valeur du nombre d'itérations effectuées par le turbo décodeur, - un registre nb~données dans lequel est conservée la longueur de la séquence à décoder. Random access memory 1104 stores data, variables and intermediate processing results in memory registers bearing, in the description, the same names as the data whose values they store. The random access memory 1104 comprises in particular the following registers: - "data ~ received" registers, in which the received sequences are respectively stored, - "inf extrinsic" registers, in which the intermediate decoding sequences (see FIG. 11) are respectively stored , - an "estimated ~ data" 'register, in which the decoded sequence a' is kept, - a "nb ~ iterations" register, in which the value of the number of iterations performed by the turbo decoder is kept, - a register nb ~ data in which the length of the sequence to be decoded is kept.

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

- un registre "trame~radio" dans lequel est conservée l'intégralité de la trame radio reçue. - A "radio ~ frame" register in which the entire received radio frame is stored.

La mémoire non volatile 1105 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 1100, dans un registre "programme", - la séquence g, dans un registre "g", - la séquence f1, dans un registre "f1", - la séquence f2, dans un registre "f2", - la taille de l'entrelaceur ,n, dans un registre n , - un registre "entrelaceurs" dans lequel est conservé le tableau définissant l'entrelaceur et son entrelaceur inverse en fonction de n, - la valeur ,m, de la période de g dans un registre m

Figure img00260001

- le nombre maximal d'itérations dans un registre nb-iteration-max
L'unité centrale de traitement 1100 est adaptée à mettre en #uvre l'organigramme décrit à la figure 14. The non-volatile memory 1105 is suitable for keeping, in registers which, for convenience, have the same names as the data they keep: - the operating program of the central processing unit 1100, in a "program" register , - the sequence g, in a register "g", - the sequence f1, in a register "f1", - the sequence f2, in a register "f2", - the size of the interleaver, n, in a register n, - an "interleaver" register in which is kept the table defining the interleaver and its inverse interleaver as a function of n, - the value, m, of the period of g in a register m
Figure img00260001

- the maximum number of iterations in a register nb-iteration-max
The central processing unit 1100 is adapted to implement the flowchart described in figure 14.

En figure 13, on observe que, à la suite d'une opération d'initialisation 1201 de type connu de l'homme du métier des systèmes comportant une unité centrale, au cours d'une opération 1202, l'unité centrale 900 attend qu'une séquence de symboles à coder lui soit transmise par la source d'information 910. On observe ici que la fin de cette séquence est marquée, soit par un délai assez long avant qu'un autre symbole ne soit transmis, soit par des informations possédant des valeurs particulières qui signifient que la séquence est achevée. In FIG. 13, it is observed that, following an initialization operation 1201 of a type known to those skilled in the art of systems comprising a central unit, during an operation 1202, the central unit 900 waits for 'a sequence of symbols to be encoded is transmitted to it by the information source 910. It is observed here that the end of this sequence is marked, either by a fairly long delay before another symbol is transmitted, or by information having particular values which signify that the sequence is complete.

Ensuite, au cours d'une opération 1203, l'unité centrale 900 détermine le nombre n' de symboles de la séquence qui sont à transmettre, en extrayant les symboles qui ne sont pas destinés à être transmis, selon des procédures connues. Then, during an operation 1203, the central unit 900 determines the number n ′ of symbols of the sequence which are to be transmitted, by extracting the symbols which are not intended to be transmitted, according to known procedures.

Puis, au cours d'une opération 1204, l'unité centrale effectue une opération de padding au cours de laquelle, à la fin de la séquence de symboles Then, during an operation 1204, the central unit performs a padding operation during which, at the end of the sequence of symbols

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

à transmettre, un nombre de symboles binaires égal au degré du polynôme diviseur g(x), est ajouté afin que la représentation polynomiale de cette séquence soit divisible par le polynôme g(x). to be transmitted, a number of binary symbols equal to the degree of the divisor polynomial g (x), is added so that the polynomial representation of this sequence is divisible by the polynomial g (x).

Puis, parallèlement : - une opération dite de "stuffing" 1205 est effectuée, au cours de laquelle des symboles binaires de valeur nulle sont ajoutés à la fin de la séquence résultant de l'opération de padding, afin que le nombre n de symboles binaires de la séquence finale soit un multiple admissible du nombre m, qui est, on le rappelle, la plus petite valeur telle que le polynôme xm+1 soit divisible par le polynôme g(x) ; - une opération de choix d'entrelaceur 1206 est effectuée en fonction de sa longueur n. Then, in parallel: - a so-called "stuffing" operation 1205 is performed, during which binary symbols of zero value are added at the end of the sequence resulting from the padding operation, so that the number n of binary symbols of the final sequence is an admissible multiple of the number m, which is, we recall, the smallest value such that the polynomial xm + 1 is divisible by the polynomial g (x); - An interleaver 1206 choice operation is performed as a function of its length n.

Ensuite, la séquence résultant de l'opération de stuffing 1205 est turbocodée au cours d'une opération de turbocodage 1207 mettant en oeuvre l'entrelaceur choisi au cours de l'opération 1206, le polynôme diviseur g(x) et les polynômes multiplicateurs f1(x) et f2(x). Then, the sequence resulting from the stuffing operation 1205 is turbocoded during a turbocoding operation 1207 implementing the interleaver chosen during the operation 1206, the divider polynomial g (x) and the multiplier polynomials f1 (x) and f2 (x).

Puis, au cours d'une opération de retrait de bits de stuffing 1208 : - les bits de stuffing sont retirés à la fin de la séquence systématique et de la séquence de première parité pour former, respectivement, les séquences a et b. Then, during a stuffing bit removal operation 1208: the stuffing bits are removed at the end of the systematic sequence and of the first parity sequence to form, respectively, the sequences a and b.

Enfin, au cours d'une opération 1209, les séquences a, b et c sont insérées dans des trames radio, elles modulent des signaux électromagnétiques et sont transmises sur un canal radio. Finally, during an operation 1209, the sequences a, b and c are inserted into radio frames, they modulate electromagnetic signals and are transmitted on a radio channel.

L'opération 1202 est ensuite réitérée. Operation 1202 is then repeated.

En figure 14, on observe que, à la suite d'une opération d'initialisation 1301 de type connu de l'homme du métier des systèmes comportant une unité centrale, au cours d'une opération 1302, l'unité centrale 1100 attend qu'une trame radio lui soit transmise par le dispositif de codage et d'émission. On observe ici que la fin de cette trame radio est marquée, par des informations possédant des valeurs particulières. In FIG. 14, it is observed that, following an initialization operation 1301 of a type known to those skilled in the art of systems comprising a central unit, during an operation 1302, the central unit 1100 waits for 'a radio frame is transmitted to it by the encoding and transmission device. It is observed here that the end of this radio frame is marked by information having particular values.

Ensuite, au cours d'une opération 1303, l'unité centrale 1100 détermine le nombre n et le nombre de bits de stuffing de symboles de la trame radio qui Then, during an operation 1303, the central unit 1100 determines the number n and the number of symbol stuffing bits of the radio frame which

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

sont à décoder. are to be decoded.

Puis, en parallèle : - au cours d'une opération 1304, l'unité centrale 1100 effectue une opération de "stuffing" sur les deux premières séquences à décoder, en leur ajoutant des bits de stuffing et les bits de parité correspondants affectés d'une valeur de fiabilité la plus élevée possible correspondant à un bit dur nul de telle manière que la longueur de la séquence résultante soit égale à n, et - au cours d'une opération 1305, l'unité centrale 1100 effectue le choix de l'entrelaceur et de son entrelaceur inverse, en prenant en compte la valeur de n, en mémoire non volatile 1105. Then, in parallel: - during an operation 1304, the central unit 1100 performs a "stuffing" operation on the first two sequences to be decoded, by adding to them stuffing bits and the corresponding parity bits assigned with a highest possible reliability value corresponding to a zero hard bit such that the length of the resulting sequence is equal to n, and - during an operation 1305, the central unit 1100 makes the choice of the interleaver and its inverse interleaver, taking into account the value of n, in non-volatile memory 1105.

Ensuite, au cours d'une opération 1306, les trois séquences provenant, pour les deux premières de l'opération de stuffing 1304 et, pour la dernière de l'opération 1303, sont décodées selon des procédures de turbo décodage bien connues de l'homme du métier. Ici, ces procédures mettent en oeuvre les entrelaceurs choisis au cours de l'opération 1305, le polynôme diviseur g(x), les polynômes multiplicateurs f1(x) et f2(x), un nombre d'itérations inférieur ou égal au nombre d'itérations maximum autorisé et une initialisation des décodeurs élémentaires prenant en compte le fait que les états initiaux et finaux des codeurs sont nuis . Cette opération fournit une estimation de la séquence a'. Then, during an operation 1306, the three sequences coming, for the first two from the stuffing operation 1304 and, for the last from the operation 1303, are decoded according to turbo decoding procedures well known in the industry. skilled in the art. Here, these procedures implement the interleavers chosen during operation 1305, the divisor polynomial g (x), the multiplier polynomials f1 (x) and f2 (x), a number of iterations less than or equal to the number d 'maximum authorized iterations and an initialization of the elementary decoders taking into account the fact that the initial and final states of the encoders are harmful. This operation provides an estimate of the sequence a '.

Puis, au cours d'une opération 1307, les symboles ajoutés au cours de l'opération de stuffing 1304 et ceux provenant d'une opération de padding effectuée au codage (voir opération 1204), et qui sont, pour ces derniers, en nombre égal au degré du polynôme diviseur g(x), sont retirés de la séquence a' pour former la séquence transmise. Enfin, la séquence est transmise à la destination d'information 1310 et l'opération 1302 est réitérée. Then, during an operation 1307, the symbols added during the stuffing operation 1304 and those coming from a padding operation performed during encoding (see operation 1204), and which are, for the latter, in number equal to the degree of the divisor polynomial g (x), are removed from the sequence a 'to form the transmitted sequence. Finally, the sequence is transmitted to the information destination 1310 and the operation 1302 is repeated.

Selon une variante, la mémoire vive 904 (respectivement 1104) est amovible, partiellement ou totalement, et comporte, par exemple une bande magnétique, une disquette ou un compact disque réinscriptible. According to a variant, the random access memory 904 (respectively 1104) is removable, partially or totally, and comprises, for example a magnetic tape, a floppy disk or a rewritable compact disc.

On note de façon générale que dans le procédé d'entrelacement tel que décrit, les données sont lues ligne par ligne (dans la matrice A) avant et après entrelacement. It is generally noted that in the interleaving method as described, the data is read row by row (in the matrix A) before and after interleaving.

Il est clair par ailleurs que lors de la mise en oeuvre pratique du procédé It is also clear that during the practical implementation of the method

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

d'entrelacement (ou de désentrelacement), on ne passe pas nécessairement par une étape de mise sous forme matricielle des données entrantes. Il est possible, en utilisant la table de permutation de l'entrelaceur (qui associe à chaque position d'entrée une position de sortie, après permutation), de travailler directement sur les données entrantes au fur et à mesure de leur arrivée. Le procédé reste cependant inchangé dans son principe. interlacing (or deinterlacing), we do not necessarily go through a step of matrix formatting of the incoming data. It is possible, by using the interleaver permutation table (which associates an output position with each input position, after permutation), to work directly on the incoming data as they arrive. However, the process remains unchanged in principle.

Bien entendu, la présente invention ne se limite pas aux détails des formes de réalisation décrits ici à titre d'exemple, mais s'étend au contraire aux modifications à la portée de l'homme de l'art. Of course, the present invention is not limited to the details of the embodiments described here by way of example, but on the contrary extends to modifications within the reach of those skilled in the art.

En particulier, elle s'étend au cas où l'alphabet sur lequel est défini le turbocode contient q lettres, avec q une puissance d'un nombre premier. In particular, it extends to the case where the alphabet on which the turbocode is defined contains q letters, with q a power of a prime number.

L'alphabet peut alors recevoir la structure du corps de Galois à q éléments. The alphabet can then receive the structure of the Galois field with q elements.

De même, l'invention a été ici décrite en utilisant deux entrelaceurs. Il est clair qu'elle s'applique plus généralement au cas d'un code comportant plusieurs entrelaceurs avec des polynômes de rétroaction conformes à la description. Likewise, the invention has been described here using two interleavers. It is clear that it applies more generally to the case of a code comprising several interleavers with feedback polynomials conforming to the description.

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

Appendice Dans cet appendice, nous présentons le programme MATLAB destiné à éviter la deuxième situation défavorable mentionnée plus haut. Appendix In this appendix, we present the MATLAB program intended to avoid the second unfavorable situation mentioned above.

Ce programme teste une matrice, a, telle celle donnée à la figure 8. Ce programme utilise une matrice appelée filt et un vecteur appelé zéro : filt =[ -110000000
0-11000000
000-110000
0000-11000
000000-110
0000000-11 ] ; zéro == [
000000 ]'; Il construit d'abord une matrice m parjuxtaposition de a avec ellemême: m=[ a a et il initialise un paramètre y à zéro : y=0; Il construit ensuite les ensembles de 9 paires d'indices

Figure img00300001

(i,ii), (i, ii+2), (i, ii+3) U, jj), U, jj+2), U, jj+3) (k, kk), (k, kk+2), (k, kk+3) This program tests a matrix, a, such as the one given in figure 8. This program uses a matrix called filt and a vector called zero: filt = [-110000000
0-11000000
000-110000
0000-11000
000000-110
0000000-11]; zero == [
000000] '; It first builds a matrix m by juxtaposition of a with itself: m = [aa and it initializes a parameter y to zero: y = 0; He then builds the sets of 9 pairs of indices
Figure img00300001

(i, ii), (i, ii + 2), (i, ii + 3) U, jj), U, jj + 2), U, jj + 3) (k, kk), (k, kk + 2), (k, kk + 3)

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

et construit le 9-uple d dont les éléments sont les éléments de la matrice m dans chacune des 9 positions ci-dessus, de (i, ii) à (k, kk+3) :

Figure img00310001
and construct the 9-tuple d whose elements are the elements of the matrix m in each of the 9 positions above, from (i, ii) to (k, kk + 3):
Figure img00310001

<tb>
<tb> i=0 <SEP> ; <SEP>
<tb>
<tb>
<tb> i = 0 <SEP>;<SEP>
<tb>

Figure img00310002

while ((y= =0)+(i<6))= =2,i=i+1 ;ii=O; while ((y= =0)+(ii<7))= =2,ii=ii+1 ;aa=[m(i,ii) m(i,ii+2)
Figure img00310003
Figure img00310002

while ((y = = 0) + (i <6)) = = 2, i = i + 1; ii = O; while ((y = = 0) + (ii <7)) = = 2, ii = ii + 1; aa = [m (i, ii) m (i, ii + 2)
Figure img00310003

<tb>
<tb> m(i,ii+3)];
<tb> j=i <SEP> ;
<tb> while <SEP> ((y= <SEP> =0)+(j<7))= <SEP> = <SEP> 2,j=j+1 <SEP> ;jj=O;
<tb>
<tb>
<tb> m (i, ii + 3)];
<tb> j = i <SEP>;
<tb> while <SEP> ((y = <SEP> = 0) + (j <7)) = <SEP> = <SEP> 2, j = j + 1 <SEP>; jj = O;
<tb>

Figure img00310004

while ((y= =0)+(jj<7))= = 2,jj=jj+1 ;bb=[mU,jj) mU,jj+2)
Figure img00310005
Figure img00310004

while ((y = = 0) + (jj <7)) = = 2, jj = jj + 1; bb = [mU, jj) mU, jj + 2)
Figure img00310005

<tb>
<tb> m <SEP> (j,jj+3)];
<tb> k=j;
<tb> while <SEP> ((y==0)+(k<8))==2,k=k+1;kk=0;
<tb>
<tb>
<tb> m <SEP> (d, dd + 3)];
<tb> k = j;
<tb> while <SEP> ((y == 0) + (k <8)) == 2, k = k + 1; kk = 0;
<tb>

Figure img00310006

while ((y==0)+(kk<7))==2,kk=kk+1;cc=[m(k,kk)
Figure img00310007
Figure img00310006

while ((y == 0) + (kk <7)) == 2, kk = kk + 1; cc = [m (k, kk)
Figure img00310007

<tb>
<tb> m <SEP> (k,kk+2) <SEP> m(k,kk+3)];
<tb> d=[aa <SEP> bb <SEP> cc];
<tb>
Il réordonne les 9 éléments de d par ordre croissant :

Figure img00310008

for iii=1 :8,for jjj=1 +iii:9,if d(üi)>d(jjj), side=d(iii);d(iii)=d{jjj);d(jjj)=side;
Figure img00310009
<tb>
<tb> m <SEP> (k, kk + 2) <SEP> m (k, kk + 3)];
<tb> d = [aa <SEP> bb <SEP>cc];
<tb>
It reorders the 9 elements of d in ascending order:
Figure img00310008

for iii = 1: 8, for jjj = 1 + iii: 9, if d (üi)> d (jjj), side = d (iii); d (iii) = d {jjj); d (jjj) = side ;
Figure img00310009

<tb>
<tb> end;end;end;
<tb>
et il vérifie que le nombre de paires d'éléments consécutifs égaux dans d n'est pas égal à 6.
<tb>
<tb>end;end;end;
<tb>
and it checks that the number of pairs of equal consecutive elements in d is not equal to 6.

S'il l'est, il pose y = y+1 :

Figure img00310010
If it is, he sets y = y + 1:
Figure img00310010

<tb>
<tb> qq=filt*d';q=[1 <SEP> 1 <SEP> 1 <SEP> 1 <SEP> 1 <SEP> ]*(qq==zero);
<tb>
<tb>
<tb> qq = filt * d '; q = [1 <SEP> 1 <SEP> 1 <SEP> 1 <SEP> 1 <SEP>] * (qq == zero);
<tb>

Figure img00310011

if q= =6,y=y+1 ;end;
Figure img00310012
Figure img00310011

if q = = 6, y = y + 1; end;
Figure img00310012

<tb>
<tb> end;end;end;end;end;end;
<tb>
Si, à la fin du calcul, y est encore zéro, le test est positif et le programme pose m = a :

Figure img00310013
<tb>
<tb>end;end;end;end;end;end;
<tb>
If, at the end of the calculation, y is still zero, the test is positive and the program sets m = a:
Figure img00310013

<tb>
<tb> if <SEP> y= <SEP> =0, <SEP> m=a, <SEP> end;
<tb>
<tb>
<tb> if <SEP> y = <SEP> = 0, <SEP> m = a, <SEP>end;
<tb>

Claims (30)

REVENDICATIONS 1. Procédé de création d'une table de permutation, caractérisé en ce que ladite table fait correspondre à chaque rang d'entrée de 0 à r.m-1 un rang de sortie de 0 à r.m-1, ledit procédé comportant des étapes suivantes :1. Method for creating a permutation table, characterized in that said table matches each input rank from 0 to r.m-1 to an output rank from 0 to r.m-1, said method comprising the following steps: E1- on considère une matrice S comportant r lignes et m colonnes, remplie ligne par ligne par les nombres successifs de 0 à r.m-1,E1- we consider a matrix S comprising r rows and m columns, filled row by row by the successive numbers from 0 to r.m-1, E2- chaque colonne de ladite matrice S est découpée en un nombre prédéterminé / de sous-colonnes, tel que r/l ne soit pas premier,E2- each column of said matrix S is split into a predetermined number / of sub-columns, such that r / l is not prime, E3- les sous-colonnes de S en nombre égal à l.m sont désignées par Sl1l2 E3- the sub-columns of S in number equal to l.m are designated by Sl1l2
Figure img00320001
Figure img00320001
avec 0 sI, 1-1 et D <l2 <m-1 où 12 fait référence à la colonne de S où apparaît Sl1l2 et où /1 fait référence à la position de la sous-colonne Si, 12 dans la colonne d'indice l2. with 0 sI, 1-1 and D <l2 <m-1 where 12 refers to the column of S where appears Sl1l2 and where / 1 refers to the position of the sub-column Si, 12 in the index column l2. E6- la table de permutation est constituée des couples formés chacun d'un élément de la matrice S et de l'élément de même position de la matrice S*. E6- the permutation table consists of couples each formed of an element of the matrix S and of the element of the same position of the matrix S *. E5- cette matrice à N lignes et M colonnes est reconvertie, après lesdites permutations circulaires sur ses colonnes, en une sous-colonne S*l1l2 qui occupera dans une matrice S* la même place que celle qu'occupe Si, 12 dans la matrice S ,E5- this matrix with N rows and M columns is reconverted, after said circular permutations on its columns, into a sub-column S * l1l2 which will occupy in a matrix S * the same place as that occupied by Si, 12 in the matrix S, E4- chaque sous-colonne Si, 12 est alors écrite sous la forme d'une matrice à N lignes et M colonnes (avec r/l= NM) et sous cette forme elle est entrelacée par un entrelaceur de type dit "verrou" défini par une permutation circulaire de chaque colonne de ladite matrice à N lignes et M colonnes, ledit entrelaceur n'étant pas l'identité, E4- each sub-column Si, 12 is then written in the form of a matrix with N rows and M columns (with r / l = NM) and in this form it is interlaced by an interleaver of the type called "lock" defined by a circular permutation of each column of said matrix with N rows and M columns, said interleaver not being the identity,
2. Procédé selon la revendication 1 caractérisé en ce qu'il comporte également dans au moins une colonne l2 (0 < l2 # m-1) de la matrice S* une modification de l'ordre d'apparition des sous-colonnes S*l1l2. 2. Method according to claim 1 characterized in that it also comprises in at least one column l2 (0 <l2 # m-1) of the matrix S * a modification of the order of appearance of the sub-columns S * l1l2. 3. Procédé selon l'une quelconque des revendications 1 à 2, caractérisé en ce que un même entrelaceur verrou est utilisé pour produire chacune des / sous-colonnes S*l1l2 d'une colonne donnée l2 de la matrice S*. 3. Method according to any one of claims 1 to 2, characterized in that the same latch interleaver is used to produce each of the / sub-columns S * l1l2 of a given column l2 of the matrix S *. 4. Procédé selon la revendication 3, caractérisé en ce que les souscolonnes d'au moins deux colonnes de la matrice S* sont produites par des 4. Method according to claim 3, characterized in that the sub-columns of at least two columns of the matrix S * are produced by <Desc/Clms Page number 33><Desc / Clms Page number 33> entrelaceurs verrou différents. different lock interleavers. 5. Procédé selon la revendication 4, caractérisée en ce que les m entrelaceurs verrou utilisés pour produire les sous-colonnes de chaque colonne de la matrice S* sont différents. 5. Method according to claim 4, characterized in that the m lock interleavers used to produce the sub-columns of each column of the matrix S * are different. 6. Procédé selon l'une quelconque des revendications 1 à 5 caractérisé en ce qu'il comporte également une étape de modification de l'ordre d'apparition des colonnes de S*. 6. Method according to any one of claims 1 to 5, characterized in that it also comprises a step of modifying the order of appearance of the columns of S *. 7. Procédé de permutation des symboles d'une séquence de données binaires, représentatives d'une grandeur physique, représentée par un 7. Method of permutation of the symbols of a binary data sequence, representative of a physical quantity, represented by a
Figure img00330001
Figure img00330001
polynôme a(x)= I:a l' X 111/+', à coefficients binaires, divisible par un premier polynomial a (x) = I: a l 'X 111 / +', with binary coefficients, divisible by a prime
Figure img00330002
Figure img00330002
(-1 polynôme diviseur g(x)=1+ Ig,x' + x', à coefficients binaires, fournissant une , nouvelle séquence de symboles binaires représentée par un polynôme a*(x)= (-1 divisor polynomial g (x) = 1 + Ig, x '+ x', with binary coefficients, providing a new sequence of binary symbols represented by a polynomial a * (x) =
Figure img00330003
Figure img00330003
(-1 "a "X5'1 , divisible par un second polynôme diviseur g*(x) = 1+" g *, Xl + Xl, 1=1 caractérisé en ce que S*j,k est l'élément en position (j,k) dans la matrice S* obtenue selon une quelconque des revendications 1 à 6, et m est un multiple du plus petit entier m'tel que le premier polynôme diviseur g(x) divise xm'+1. (-1 "a" X5'1, divisible by a second divisor polynomial g * (x) = 1+ "g *, Xl + Xl, 1 = 1 characterized in that S * j, k is the element in position (j, k) in the matrix S * obtained according to any one of claims 1 to 6, and m is a multiple of the smallest integer m't such that the first divisor polynomial g (x) divides xm '+ 1.
8. Procédé de permutation des symboles d'une séquence de données binaires, représentatives d'une grandeur physique, représentée par un 8. Method of permutation of the symbols of a binary data sequence, representative of a physical quantity, represented by a
Figure img00330004
Figure img00330004
polynôme a(x)= a,x"'+A, à coefficients binaires, divisible par un premier t-\ polynôme diviseur g(x)=1+g,x' +x', à coefficients binaires, fournissant une nouvelle séquence de symboles binaires représentée par un polynôme polynomial a (x) = a, x "'+ A, with binary coefficients, divisible by a first t- \ divisor polynomial g (x) = 1 + g, x' + x ', with binary coefficients, providing a new sequence of binary symbols represented by a polynomial
Figure img00330005
Figure img00330005
a*M s. x 1111+' ., divisible par un second polynôme diviseur 0</;-l à 1-1 g*(x)= 1+g *r x' + x', il caractérisé en ce que s*j,k est l'élément en position (j,k) dans la matrice S* obtenue selon une quelconque des revendications 1 à 6, et m est un multiple du plus petit entier m'tel que le premier polynôme diviseur g(x) divise xm'+1. a * M s. x 1111+ '., divisible by a second divisor polynomial 0 </; - l to 1-1 g * (x) = 1 + g * rx' + x ', it characterized in that s * j, k is l 'element in position (j, k) in the matrix S * obtained according to any one of claims 1 to 6, and m is a multiple of the smallest integer m't such that the first divisor polynomial g (x) divides xm' + 1 . <Desc/Clms Page number 34> <Desc / Clms Page number 34>
9. Procédé selon l'une quelconque des revendications 7 à 8, caractérisé en ce que le second polynôme diviseur g*(x) est égal au premier polynôme diviseur g(x) 9. Method according to any one of claims 7 to 8, characterized in that the second divisor polynomial g * (x) is equal to the first divisor polynomial g (x) 10. Procédé de codage caractérisé en ce qu'il comporte une opération de détermination d'une séquence a*, au cours de laquelle on met en #uvre au moins un procédé de permutation selon l'une quelconque des revendications 7 à 9. 10. Coding method characterized in that it comprises an operation of determining a sequence a *, during which at least one permutation method according to any one of claims 7 to 9 is implemented. 11. Procédé de codage selon la revendication 10, travaillant sur des séquences de données binaires u représentatives d'information et prenant en 11. Coding method according to claim 10, working on sequences of binary data u representative of information and taking into account
Figure img00340001
Figure img00340001
compte un premier polynôme diviseur g(x)=1+ g,x' + Xl, un second ,-l polynôme diviseur g*(x) compatible avec g(x), un premier polynôme multiplicatif f1(x) et un deuxième polynôme multiplicatif f2(x), un nombre entier r #1, caractérisé en ce qu'il comporte : - une opération de constitution d'une "première" séquence, dite "séquence a" représentée par un polynôme a(x) dit "premier polynôme" dont les r.m-t premiers coefficients d'ordre croissant sont les données binaires à coder et dont les t derniers coefficients sont choisis de telle manière que le polynôme g(x) divise le polynôme a(x) - une opération de constitution d'une deuxième séquence dite "séquence b" représentée par un polynôme b(x) égal au produit du premier polynôme a(x) par le premier polynôme multiplicatif f1(x), le tout divisé par le premier polynôme diviseur g(x), - une opération de permutation, travaillant sur des données binaires de la première séquence a pour former une séquence dite "permutée" a* représentée par un polynôme dit "permuté" a*(x), dont les coefficients d'ordre croissant sont les données binaires de la séquence permutée a*, et qui est divisible par le second polynôme diviseur g*(x), - une opération de constitution d'une troisième séquence dite "séquence c" représentée par un polynôme c(x) égal au produit du polynôme permuté a*(x) par le second polynôme multiplicatif f2(x), le tout divisé par le second polynôme diviseur g*(x). has a first divisor polynomial g (x) = 1 + g, x '+ Xl, a second, -l divisor polynomial g * (x) compatible with g (x), a first multiplicative polynomial f1 (x) and a second polynomial multiplicative f2 (x), an integer r # 1, characterized in that it comprises: - an operation of constituting a "first" sequence, called "sequence a" represented by a polynomial a (x) called "prime polynomial "whose rm-t first coefficients of increasing order are the binary data to be encoded and whose t last coefficients are chosen such that the polynomial g (x) divides the polynomial a (x) - a constitution operation d 'a second sequence called "sequence b" represented by a polynomial b (x) equal to the product of the first polynomial a (x) by the first multiplicative polynomial f1 (x), the whole divided by the first divisor polynomial g (x), - a permutation operation, working on binary data of the first sequence a to form a so-called "permuted" sequence a * represented by a poly so-called "permuted" nome a * (x), whose coefficients of increasing order are the binary data of the permuted sequence a *, and which is divisible by the second divisor polynomial g * (x), - a constitution operation d 'a third sequence called "sequence c" represented by a polynomial c (x) equal to the product of the permuted polynomial a * (x) by the second multiplicative polynomial f2 (x), the whole divided by the second divisor polynomial g * (x ). <Desc/Clms Page number 35> <Desc / Clms Page number 35>
12. Procédé de décodage, caractérisé en ce qu'il met en #uvre au moins un procédé de permutation selon l'une quelconque des revendications 7 à 9. 12. Decoding method, characterized in that it implements at least one permutation method according to any one of claims 7 to 9. 13. Procédé de turbo-décodage caractérisé en ce qu'il met en #uvre au moins un procédé de permutation selon l'une quelconque des revendications 7 à 9. 13. Turbo-decoding method characterized in that it implements at least one permutation method according to any one of claims 7 to 9. 14. Procédé adapté à décoder des séquences reçues après codage par le procédé de codage selon l'une quelconque des revendications 10 à 11. 14. A method suitable for decoding sequences received after encoding by the encoding method according to any one of claims 10 to 11. 15. Procédé selon l'une quelconque des revendications 1 à 14 caractérisé en ce que la matrice initiale S comporte 2401 éléments et est découpée en 7 colonnes de 343 lignes, chacune de ces 7 colonnes étant elle-même découpée en 7 sous-colonnes de 49 éléments. 15. Method according to any one of claims 1 to 14 characterized in that the initial matrix S comprises 2401 elements and is divided into 7 columns of 343 rows, each of these 7 columns being itself divided into 7 sub-columns of 49 elements. 16. Procédé selon l'une quelconque des revendications 1 à 15, caractérisé en ce que l'alphabet sur lequel est défini le turbocode contient q lettres, avec q une puissance d'un nombre premier, l'alphabet recevant la structure du corps de Galois à q éléments. 16. Method according to any one of claims 1 to 15, characterized in that the alphabet on which the turbocode is defined contains q letters, with q a power of a prime number, the alphabet receiving the structure of the body of Galois with q elements. 17. Entrelaceur (101) adapté à fournir, à partir d'une séquence a de données binaires représentatives d'une grandeur physique, associée à un 17. Interleaver (101) adapted to supply, from a sequence a of binary data representative of a physical quantity, associated with a
Figure img00350001
Figure img00350001
polynôme a(x)= 2:> /,Á .x/1JI4Á divisible par un premier polynôme diviseur g(x), et dont les coefficients d'ordre croissant sont les données binaires de la séquence a, une séquence permutée a* associée à un polynôme a*(x) dont les coefficients d'ordre croissant sont les données binaires de la séquence a*, ledit polynôme a*(x) étant destiné à être divisé par un second polynôme diviseur g*(x) compatible avec le premier polynôme diviseur g(x), pour former une séquence de données binaires c, et a possédant un nombre de données binaires égal au produit d'un nombre entier r quelconque par l'entier m, m étant un multiple du plus petit entier m' tel que le premier polynôme diviseur g(x) divise xm'+1, caractérisé en ce que la séquence permutée a* est donnée par polynomial a (x) = 2:> /, Á .x / 1JI4Á divisible by a first divisor polynomial g (x), and whose coefficients of increasing order are the binary data of the sequence a, an associated permuted sequence a * to a polynomial a * (x) whose coefficients of increasing order are the binary data of the sequence a *, said polynomial a * (x) being intended to be divided by a second divisor polynomial g * (x) compatible with the first divider polynomial g (x), to form a sequence of binary data c, and a having a number of binary data equal to the product of any integer r by the integer m, m being a multiple of the smallest integer m 'such that the first divisor polynomial g (x) divides xm' + 1, characterized in that the permuted sequence a * is given by
Figure img00350002
Figure img00350002
I> ,,1. ,A x'x'" où la matrice S* des s ;,k est produite selon l'une quelconque des revendications 1 à 6. I> ,, 1. , A x'x '"where the matrix S * of s;, k is produced according to any one of claims 1 to 6.
18. Entrelaceur (101) adapté à fournir, à partir d'une séquence a de 18. Interleaver (101) suitable for providing, from a sequence a of <Desc/Clms Page number 36><Desc / Clms Page number 36> Y-., -Y-., as* XIIll+A où la matrice S* des s*; est produite selon l'une 0</<#-l 0<A<hi-I quelconque des revendications 1 à 6. Y-., -Y-., As * XIIll + A where the matrix S * of s *; is produced according to any one of claims 1 to 6.
Figure img00360002
Figure img00360002
polynôme a(x)= al Á .x 1111 th divisible par un premier polynôme diviseur g(x), et dont les coefficients d'ordre croissant sont les données binaires de la séquence a, une séquence permutée a* associée à un polynôme a*(x) dont les coefficients d'ordre croissant sont les données binaires de la séquence a*, ledit polynôme a*(x) étant destiné à être divisé par un second polynôme diviseur g*(x) compatible avec le premier polynôme diviseur g(x), pour former une séquence de données binaires c, et a possédant un nombre de données binaires égal au produit d'un nombre entier r quelconque par l'entier m, m étant un multiple du plus petit entier m' tel que le premier polynôme diviseur g(x) divise xm'+1, caractérisé en ce que la séquence permutée a* est donnée par polynomial a (x) = al Á .x 1111 th divisible by a first divisor polynomial g (x), and whose coefficients of increasing order are the binary data of the sequence a, a permuted sequence a * associated with a polynomial a * (x) whose coefficients of increasing order are the binary data of the sequence a *, said polynomial a * (x) being intended to be divided by a second divisor polynomial g * (x) compatible with the first divisor polynomial g (x), to form a sequence of binary data c, and a having a number of binary data equal to the product of any integer r by the integer m, m being a multiple of the smallest integer m 'such that the first divisor polynomial g (x) divides xm '+ 1, characterized in that the permuted sequence a * is given by
Figure img00360001
Figure img00360001
données binaires représentatives d'une grandeur physique, associée à un binary data representative of a physical quantity, associated with a
19. Dispositif de codage caractérisé en ce qu'il comporte un entrelaceur selon l'une quelconque des revendications 17 à 18. 19. Coding device characterized in that it comprises an interleaver according to any one of claims 17 to 18. 20. Dispositif de codage selon la revendication 19, travaillant sur des séquences de données binaires u représentatives d'information et prenant en 20. Coding device according to claim 19, working on sequences of binary data u representative of information and taking into account
Figure img00360003
Figure img00360003
1-1 compte un premier polynôme diviseur g(x=9+g,x +x', un second polynôme diviseur g*(x) compatible avec g(x), un premier polynôme multiplicatif f1(x) et un deuxième polynôme multiplicatif f2(x), un nombre entier r #1, un nombre entier m multiple du plus petit entier m'tel que le premier polynôme g(x) divise xm'+1, caractérisé en ce qu'il comporte : - des moyens de constitution d'une "première" séquence, dite "séquence a" représentée par un polynôme a(x) dit "premier polynôme" dont les rm-t premiers coefficients d'ordre croissant sont les données binaires à coder et dont les t derniers coefficients sont choisis de telle manière que le polynôme g(x) divise le polynôme a(x) - des moyens de constitution d'une deuxième séquence dite "séquence b" représentée par un polynôme b(x) égal au produit du premier polynôme a(x) par 1-1 has a first divisor polynomial g (x = 9 + g, x + x ', a second divisor polynomial g * (x) compatible with g (x), a first multiplicative polynomial f1 (x) and a second multiplicative polynomial f2 (x), an integer r # 1, an integer m multiple of the smallest integer m 'such that the first polynomial g (x) divides xm' + 1, characterized in that it comprises: - means of constitution of a "first" sequence, called "sequence a" represented by a polynomial a (x) called "first polynomial" whose rm-t first coefficients of increasing order are the binary data to be coded and whose t last coefficients are chosen such that the polynomial g (x) divides the polynomial a (x) - means of constituting a second sequence called "sequence b" represented by a polynomial b (x) equal to the product of the first polynomial a ( x) by <Desc/Clms Page number 37><Desc / Clms Page number 37> le premier polynôme multiplicatif f1(x), le tout divisé par le premier polynôme diviseur g(x), - des moyens de permutation, travaillant sur des données binaires de la première séquence a pour former une séquence dite "permutée" a* représentée par un polynôme dit "permuté" a*(x), dont les coefficients d'ordre croissant sont les données binaires de la séquence permutée a*, et qui est divisible par le second polynôme diviseur g*(x), - des moyens de constitution d'une troisième séquence dite "séquence c" représentée par un polynôme c(x) égal au produit du premier polynôme a(x) par le second polynôme multiplicatif f2(x), le tout divisé par le second polynôme diviseur g*(x). the first multiplicative polynomial f1 (x), the whole divided by the first divisor polynomial g (x), - permutation means, working on binary data of the first sequence a to form a so-called "permuted" sequence a * represented by a so-called "permuted" polynomial a * (x), whose coefficients of increasing order are the binary data of the permuted sequence a *, and which is divisible by the second divisor polynomial g * (x), - constitution means of a third sequence called "sequence c" represented by a polynomial c (x) equal to the product of the first polynomial a (x) by the second multiplicative polynomial f2 (x), the whole divided by the second divisor polynomial g * (x ).
21. Dispositif de décodage, caractérisé en ce qu'il met en #uvre au moins un entrelaceur selon l'une quelconque des revendications 17 à 18 et / ou un désentrelaceur correspondant à cet entrelaceur. 21. Decoding device, characterized in that it implements at least one interleaver according to any one of claims 17 to 18 and / or a deinterleaver corresponding to this interleaver. 22. Dispositif de turbo-décodage caractérisé en ce qu'il met en #uvre au moins un entrelaceur selon l'une quelconque des revendications 17 à 18 et ou un désentrelaceur correspondant à cet entrelaceur. 22. Turbo-decoding device characterized in that it implements at least one interleaver according to any one of claims 17 to 18 and / or a deinterleaver corresponding to this interleaver. 23. Dispositif adapté à décoder des séquences reçues après codage par un dispositif de codage selon l'une quelconque des revendications 19 à 20. 23. Device suitable for decoding sequences received after coding by a coding device according to any one of claims 19 to 20. 24. Dispositif selon l'une quelconque des revendications 17 à 23, caractérisé en ce qu'il comporte un moyen de transmission adapté à transmettre, d'une part, la séquence a, et, d'autre part, un sous-ensemble des données des séquences produites par le codeur. 24. Device according to any one of claims 17 to 23, characterized in that it comprises a transmission means adapted to transmit, on the one hand, the sequence a, and, on the other hand, a subset of the. sequence data produced by the encoder. 25. Dispositif de traitement de signaux représentatifs de parole, caractérisé en ce qu'il comporte un dispositif selon l'une quelconque des revendications 17 à 24. 25. A device for processing signals representative of speech, characterized in that it comprises a device according to any one of claims 17 to 24. 26. Dispositif de transmission de données comportant un émetteur adapté à mettre en #uvre un protocole de transmission par paquets, caractérisé en ce qu'il comporte un dispositif selon l'une quelconque des revendications 17 à 25. 26. Data transmission device comprising a transmitter adapted to implement a packet transmission protocol, characterized in that it comprises a device according to any one of claims 17 to 25. 27. Dispositif de transmission de données selon la revendication 26, caractérisé en ce que ledit protocole est le protocole ATM, Asynchronous 27. Data transmission device according to claim 26, characterized in that said protocol is the ATM, Asynchronous protocol. <Desc/Clms Page number 38><Desc / Clms Page number 38> Transfer Mode. Transfer Mode. 28. Dispositif de transmission de données selon la revendication 26, caractérisé en ce que ledit protocole est le protocole IP, Internet Protocol. 28. Data transmission device according to claim 26, characterized in that said protocol is the IP protocol, Internet Protocol. 29. Dispositif de transmission de données comportant un émetteur émettant sur un canal non filaire, caractérisé en ce qu'il comporte un dispositif selon l'une quelconque des revendications 17 à 28. 29. Data transmission device comprising a transmitter transmitting on a wireless channel, characterized in that it comprises a device according to any one of claims 17 to 28. 30. Station de réseau, caractérisée en ce qu'elle comporte un dispositif selon l'une quelconque des revendications 17 à 29. 30. Network station, characterized in that it comprises a device according to any one of claims 17 to 29.
FR9913835A 1999-11-04 1999-11-04 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 Withdrawn FR2800950A1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
FR9913835A FR2800950A1 (en) 1999-11-04 1999-11-04 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
DE60045630T DE60045630D1 (en) 1999-11-04 2000-10-27 Nesting method for data turbo coding
EP00403000A EP1098445B1 (en) 1999-11-04 2000-10-27 Interleaving method for the turbocoding of data
US09/699,499 US6404360B1 (en) 1999-11-04 2000-10-31 Interleaving method for the turbocoding of data
JP2000337950A JP4497706B2 (en) 1999-11-04 2000-11-06 Interleaving method for turbo coding of data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9913835A FR2800950A1 (en) 1999-11-04 1999-11-04 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

Publications (1)

Publication Number Publication Date
FR2800950A1 true FR2800950A1 (en) 2001-05-11

Family

ID=9551726

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9913835A Withdrawn FR2800950A1 (en) 1999-11-04 1999-11-04 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

Country Status (1)

Country Link
FR (1) FR2800950A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2829329A1 (en) * 2001-09-05 2003-03-07 Canon Kk Locked interlaced turbocoding system has shared divisor permutation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4394642A (en) * 1981-09-21 1983-07-19 Sperry Corporation Apparatus for interleaving and de-interleaving data
EP0928071A1 (en) * 1997-12-30 1999-07-07 Canon Kabushiki Kaisha Interleaver for turbo encoder
EP0952673A1 (en) * 1997-11-10 1999-10-27 Ntt Mobile Communications Network Inc. Interleaving method, interleaving apparatus, and recording medium in which interleave pattern generating program is recorded

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4394642A (en) * 1981-09-21 1983-07-19 Sperry Corporation Apparatus for interleaving and de-interleaving data
EP0952673A1 (en) * 1997-11-10 1999-10-27 Ntt Mobile Communications Network Inc. Interleaving method, interleaving apparatus, and recording medium in which interleave pattern generating program is recorded
EP0928071A1 (en) * 1997-12-30 1999-07-07 Canon Kabushiki Kaisha Interleaver for turbo encoder

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2829329A1 (en) * 2001-09-05 2003-03-07 Canon Kk Locked interlaced turbocoding system has shared divisor permutation

Similar Documents

Publication Publication Date Title
FR2815199A1 (en) Cyclic turbo coding scheme improves minimum Hamming distance
EP0891656B1 (en) Data block convolutional coding device and method, and corresponding decoding method and device
EP0995272B1 (en) Product code iterative decoding
US20030177430A1 (en) Method of interleaving a binary sequence
EP0848501B1 (en) Digital transmission system and method comprising a product code combined with multidimensional modulation
FR2785743A1 (en) DEVICE AND METHOD FOR ADAPTING TURBOCODERS AND DECODERS ASSOCIATED WITH VARIABLE LENGTH SEQUENCES
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
EP1098445B1 (en) Interleaving method for the turbocoding of data
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
FR2900294A1 (en) Low density parity check decoder`s input/channel memory loading method for set top box, involves carrying out memory accesses in page mode for writing binary word streams in respective zones of input/channel memory by controlling module
FR2789824A1 (en) Residual error correction method for output of turbo-coder in transmitter-receiver communication systems, involves storing binary data in matrix form and applying error correcting code to create formatted matrix
WO2007083066A1 (en) Fast encoding and decoding methods and related devices
EP1128589B1 (en) Interruption criterion for a turbo decoder
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
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
EP1128588A1 (en) Method of error correcting coding-type digital transmission comprising a step of puncturing scheme selection
FR2806177A1 (en) DIGITAL CORRECTIVE ERROR-TYPE CODING TRANSMITTING METHOD
FR2838581A1 (en) Method for coding and/or decoding of the error-correction codes, corresponding devices and signal representative of coded data block
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
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
FR2915641A1 (en) Digital data interlacing method for implementing e.g. turbo-code, involves elaborating data assignment matrix in manner to shunt data in memory for taking matrix in identical manner on set of simultaneously parallel shunting data
FR2829329A1 (en) Locked interlaced turbocoding system has shared divisor permutation
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.

Legal Events

Date Code Title Description
ST Notification of lapse