FR2787263A1 - TRANSMISSION METHOD WITH EFFICIENT AND MODULAR INTERLACING CHANNEL CODING FOR TURBO CODES - Google Patents

TRANSMISSION METHOD WITH EFFICIENT AND MODULAR INTERLACING CHANNEL CODING FOR TURBO CODES Download PDF

Info

Publication number
FR2787263A1
FR2787263A1 FR9815779A FR9815779A FR2787263A1 FR 2787263 A1 FR2787263 A1 FR 2787263A1 FR 9815779 A FR9815779 A FR 9815779A FR 9815779 A FR9815779 A FR 9815779A FR 2787263 A1 FR2787263 A1 FR 2787263A1
Authority
FR
France
Prior art keywords
chain
rank
transmitted
bits
binary
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.)
Granted
Application number
FR9815779A
Other languages
French (fr)
Other versions
FR2787263B1 (en
Inventor
Eric Pite
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.)
Sagem SA
Original Assignee
Sagem SA
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 Sagem SA filed Critical Sagem SA
Priority to FR9815779A priority Critical patent/FR2787263B1/en
Priority to DE1999160269 priority patent/DE19960269A1/en
Priority to GB9929541A priority patent/GB2346782B/en
Publication of FR2787263A1 publication Critical patent/FR2787263A1/en
Application granted granted Critical
Publication of FR2787263B1 publication Critical patent/FR2787263B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • 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/275Interleaver wherein the permutation pattern is obtained using a congruential operation of the type y=ax+b modulo c
    • 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
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • H04L1/0066Parallel concatenated codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

Pour pouvoir mettre en oeuvre un turbo code sans avoir à réaliser de circuit matériel spécifique, on prévoit de constituer un entrelaceur permutateur sous la forme d'un algorithme (21) à congruence. On montre qu'on peut alors utiliser un tel algorithme pour les longueurs quelconques de bits à traiter, en imposant moins de contraintes sur la réalisation de circuits spécifiques. On peut alors plus facilement mettre en oeuvre des turbo codes dans des liaisons de type radioélectriques avec des téléphones mobiles.In order to be able to implement a turbo code without having to make a specific hardware circuit, provision is made to constitute a permutating interleaver in the form of a congruence algorithm (21). It is shown that such an algorithm can then be used for any lengths of bits to be processed, while imposing fewer constraints on the production of specific circuits. Turbo codes can then be more easily implemented in radio-type links with mobile telephones.

Description

Procédé de transmission avec codage de canal à entrelacement efficace etTransmission method with efficient interleaving channel coding and

modulaire pour turbo codes La présente invention a pour objet un procédé de transmission avec codage de canal c'est-à-dire avec une préparation de bits à transmettre qui tienne compte des performances de transmission d'un canal de telle façon que la qualité de transmission soit la plus parfaite possible, malgré des défauts physiques inévitables inhérents à ce canal. Le but de l'invention est de proposer un procédé dans lequel une mise en oeuvre pratique d'une solution théorique et éprouvée soit simple à réaliser avec des équipements de traitement de signal à puissance limitée. Ces équipements sont en particulier des téléphones mobiles. L'invention a donc pour principal domaine d'application celui de la téléphonie mobile. Cependant l'invention pourrait être utilisée également dans des liaisons avec des satellites. D'une façon générale, I'invention est utilisable chaque fois qu'on voudra mettre en oeuvre un turbo code pour lequel est recherché un entrelacement efficace et modulaire. En matière de transmission numérique de l'information (parole, image, données, etc.), on distingue le codage de source et le codage de canal. Le codage de source a pour objet de compresser les informations numériques à transmettre, de façon à ce qu'elles occupent le moins de volume possible, de façon à ce que le débit utile soit maximal. Par opposition, le codage de canal consiste à ajouter de la redondance à l'information à transmettre afin que  The present invention relates to a transmission method with channel coding, that is to say with a preparation of bits to be transmitted which takes account of the transmission performance of a channel in such a way that the quality of transmission is as perfect as possible, despite the inevitable physical defects inherent in this channel. The object of the invention is to propose a method in which a practical implementation of a theoretical and proven solution is simple to carry out with signal processing equipment with limited power. This equipment is in particular mobile telephones. The main application of the invention is therefore that of mobile telephony. However, the invention could also be used in links with satellites. In general, the invention can be used whenever we want to implement a turbo code for which efficient and modular interleaving is sought. In terms of digital transmission of information (speech, image, data, etc.), a distinction is made between source coding and channel coding. The purpose of source coding is to compress the digital information to be transmitted, so that it occupies the least possible volume, so that the useful bit rate is maximum. In contrast, channel coding involves adding redundancy to the information to be transmitted so that

l'information reçue soit plus robuste face aux erreurs apportées par le canal.  the information received is more robust in the face of errors made by the channel.

En agissant ainsi on transforme une redondance inutile, celle de l'information initiale, en une redondance utile, celle permettant de résister aux bruits de transmission. Le codage de canal revêt donc une importance capitale. Une large panoplie de codages de canal est disponible depuis les années 60. On y connaît ainsi les codages convolutifs, les codages BCH, les codages de Reed-Solomon, etc.... Les codages de canal utilisés diffèrent suivant les  By acting in this way, a useless redundancy, that of the initial information, is transformed into a useful redundancy, that making it possible to resist transmission noise. Channel coding is therefore of paramount importance. A wide range of channel codings has been available since the 1960s. We thus know convolutional codings, BCH codings, Reed-Solomon codings, etc. The channel codings used differ according to the

applications visées.targeted applications.

Dans la demande de brevet français 91 05280 intitulée "Procédé de codage correcteur d'erreurs à au moins deux codages convolutifs systématiques en parallèle, procédé de décodage itératif, module de décodage et décodeur correspondant", ainsi que dans le document "Near Shannon limit error-correcting coding and decoding: Turbo Codes" Proc.1993 International Conference on Communications, dû à C. Berrou, A. Glavieux and P. Thitimajshima, on a proposé un nouveau schéma de codage baptisé turbo code dont les performances s'approchent de la limite théorique de la capacité d'un canal tel que le décrit le théorème de C. Shannon. Dans un exemple o le taux de codage vaut 1/3, on transmet avec un tel codage un flot X de données à coder sous la forme de trois flots Y1, Y2, et Y3 de données codées. Dans un exemple le flot Y1 est le même que le flot X. Le flot Y2 résulte du codage du flot X par un premier codeur convolutif récursif. Le flot Y3 résulte du codage d'une permutation, on parle improprement d'un entrelacement, des bits du flot X par un deuxième codeur convolutif récursif. Un encodeur turbo utilise ainsi au moins deux codeurs convolutifs, de préférence récursifs systématiques, le deuxième étant  In French patent application 91 05280 entitled "Error correcting coding method with at least two systematic convolutional codings in parallel, iterative decoding method, decoding module and corresponding decoder", as well as in the document "Near Shannon limit error -correcting coding and decoding: Turbo Codes "Proc.1993 International Conference on Communications, due to C. Berrou, A. Glavieux and P. Thitimajshima, we proposed a new coding scheme called turbo code whose performances approach the theoretical limit of the capacity of a channel as described by C. Shannon's theorem. In an example where the coding rate is 1/3, a stream X of data to be coded is transmitted with such coding in the form of three streams Y1, Y2, and Y3 of coded data. In an example, the flow Y1 is the same as the flow X. The flow Y2 results from the coding of the flow X by a first recursive convolutional coder. The flow Y3 results from the coding of a permutation, one improperly speaks of an interleaving, of the bits of the flow X by a second recursive convolutional coder. A turbo encoder thus uses at least two convolutional, preferably recursive, systematic encoders, the second being

précédé d'un entrelaceur temporel opérant sur des blocs de taille fixée.  preceded by a time interleaver operating on blocks of fixed size.

Le permutateur-entrelaceur est une composante essentielle des turbo codes. Une interprétation conceptuelle de leur mode de fonctionnement est donnée dans l'article de G. Battail "A conceptual framework for understanding Turbo Codes" IEEE Journal on Selected Areas in Communications, Vol.16, No 2, February 1998. Très brièvement, on peut rappeler qu'un entrelacement permet, s'il est bien fait, d'imiter un codage aléatoire. On doit également rappeler que le rôle d'un codage aléatoire dans la démonstration du théorème de la capacité de C. Shannon est central. On s'accorde généralement à dire qu'il y a deux facteurs très importants pour la conception d'un tel entrelaceur. Le premier facteur est la profondeur de cet entrelaceur. La profondeur est la taille de l'entrelaceur, en clair le nombre n de bits qu'il est susceptible de permuter. Plus la profondeur est grande, mieux c'est, c'est-à-dire plus le caractère aléatoire sera effectif. Le second facteur est le degré d'aléatoire que peut introduire l'entrelaceur sur un bloc donné. Un entrelaceur idéal est alors un entrelaceur purement aléatoire,  The permutator-interleaver is an essential component of turbo codes. A conceptual interpretation of their mode of operation is given in the article by G. Battail "A conceptual framework for understanding Turbo Codes" IEEE Journal on Selected Areas in Communications, Vol.16, No 2, February 1998. Very briefly, we can remember that interleaving allows, if done right, to imitate random coding. It should also be remembered that the role of random coding in the proof of C. Shannon's capacity theorem is central. It is generally agreed that there are two very important factors in the design of such an interleaver. The first factor is the depth of this interleaver. The depth is the size of the interleaver, in clear the number n of bits that it is likely to swap. The greater the depth, the better, that is to say the more the randomness will be effective. The second factor is the degree of randomness that the interleaver can introduce on a given block. An ideal interleaver is then a purely random interleaver,

mais ceci n'existe pas dans la pratique.  but this does not exist in practice.

En effet un entrelaceur a pour but de casser les mots de codes de poids faibles qui sont les plus nombreux à transmettre. Il est par ailleurs possible de concevoir des entrelaceurs non aléatoires qui combattent efficacement les mots de codes de poids faibles. Mais malheureusement, ces derniers entrelaceurs ont tendance à amplifier les effets des mots de code de poids forts, ce qui n'est pas souhaitable non plus. Le critère permettant de choisir un entrelaceur optimal doit considérer les codes de tous les poids simultanément, et obtenir un optimum global. La détermination  In fact, an interleaver aims to break the least significant code words that are transmitted. It is also possible to design non-random interleavers that effectively fight low-order code words. But unfortunately, these latter interleavers tend to amplify the effects of the most significant code words, which is not desirable either. The criterion for choosing an optimal interleaver must consider the codes of all the weights simultaneously, and obtain an overall optimum. The determination

de ce critère est encore un problème non résolu.  of this criterion is still an unsolved problem.

Les techniques d'entrelacements utilisés dans les systèmes réels de l'état de la technique utilisent des matrices. Ces matrices sont mises en ceuvre avec des circuits matériels. Dans de tels circuits matériels, les données, ou bits, d'un bloc sont entrées en ligne, ligne de la matrice après ligne de la matrice. Elles sont ensuite lues en colonne. Des simulations montrent cependant que les performances obtenues avec de tels entrelaceurs matriciels sont inférieures à celles obtenues avec des  The interlacing techniques used in real systems of the prior art use matrices. These matrices are implemented with hardware circuits. In such hardware circuits, the data, or bits, of a block are entered online, line of the matrix after line of the matrix. They are then read in column. Simulations show, however, that the performances obtained with such matrix interleavers are lower than those obtained with

entrelaceurs produits par des programmes d'ordinateur imitant l'aléatoire.  interleavers produced by computer programs imitating randomness.

D'autre part, les communications radiomobiles cellulaire de troisième génération, notamment dans le cadre de la recommandation IMT 2000, nécessitent d'utiliser une large variété de services associés à des débits et des contraintes temporelles différents les uns des autres. Compte tenu des performances des turbo codes, il est vraisemblable de les utiliser pour des services qui réclament une forte protection contre les erreurs mais qui supportent un certain retard (celui de l'entrelaceur). Le problème non résolu par les systèmes matriciels est alors le caractère figé de la dimension des blocs de données susceptibles d'être traités. Ces dimensions figées résultent  On the other hand, third generation cellular radio mobile communications, in particular within the framework of the IMT 2000 recommendation, require the use of a wide variety of services associated with different bit rates and time constraints. Given the performance of turbo codes, it is likely to be used for services that require strong protection against errors but which bear a certain delay (that of the interleaver). The problem not solved by the matrix systems is then the fixed character of the dimension of the blocks of data likely to be treated. These frozen dimensions result

de la dimension des matrices choisies et de leur système d'écriturelecture.  the size of the chosen matrices and their writing-reading system.

Ainsi, si on suppose d'avoir k services différents, supportant chacun des retards temporels de rl, r2,..., rk bits, le but est de chercher, pour chaque service, à faire un entrelaceur de profondeur maximale, sachant que  Thus, if we suppose to have k different services, each supporting the time delays of rl, r2, ..., rk bits, the goal is to seek, for each service, to make an interleaver of maximum depth, knowing that

les performances de l'entrelacement reposent sur la taille de l'entrelaceur.  interleaving performance is based on the size of the interleaver.

Une difficulté dans la mise en oeuvre matricielle classiquement proposée est de devoir spécifier d'une manière rigide les différents entrelaceurs pour les  A difficulty in the conventional matrix implementation is to have to rigidly specify the different interleavers for the

différentes tailles de blocs.different block sizes.

La présente invention a pour objet de remédier à ces problèmes. Elle propose de concevoir un entrelaceur réalisé de façon logicielle, qui ne nécessite en outre que très peu de paramètres en mémoire. Dans l'invention, pour un bloc de n bits à entrelacer, avec des rangs k numérotés de 1 à n dans la chaîne des bits à transmettre, on crée par permutation un autre bloc de n bits d'une chaîne entrelacée. Les rangs des bits dans la chaîne entrelacée sont alors des rang h, tels que h = f ( k). La fonction f doit être  The object of the present invention is to remedy these problems. It proposes to design an interleaver produced in software, which also requires very few parameters in memory. In the invention, for a block of n bits to be interleaved, with rows k numbered from 1 to n in the chain of bits to be transmitted, another block of n bits of an interlaced chain is created by permutation. The ranks of the bits in the interlaced string are then ranks h, such that h = f (k). The function f must be

une permutation de { 1,..., n} c'est-à-dire une application bijective de { 1,..  a permutation of {1, ..., n} that is to say a bijective application of {1, ..

n} dans lui-même. Dans l'invention pour réaliser la fonction f, on applique une équation de congruence linéaire. On peut montrer alors que le choix d'une telle solution a pour effet de se passer de circuits spécifiques, et de ne nécessiter en outre que des ressources faibles en matière logicielle. Le caractère aléatoire n'est ainsi pas théoriquement parfait mais son approximation par un algorithme simple, de congruence, est tout à fait efficace vis-à-vis du problème d'amélioration des performances du codage  n} in itself. In the invention to perform the function f, an equation of linear congruence is applied. It can then be shown that the choice of such a solution has the effect of dispensing with specific circuits, and furthermore requiring only low resources in terms of software. The randomness is thus not theoretically perfect but its approximation by a simple algorithm, of congruence, is quite effective with regard to the problem of improving the performance of coding.

de canal recherché.of channel sought.

L'invention a donc pour objet un procédé de transmission avec codage de canal, entre un émetteur et un récepteur, dans lequel - on code une chaîne binaire de n bits à transmettre avec un premier codeur pour obtenir une première chaîne codée, - on permute des bits de la chaîne binaire à transmettre pour obtenir une autre chaîne binaire dite entrelacée, - on code la chaîne entrelacée avec un deuxième codeur pour obtenir une deuxième chaîne codée, - on transmet de l'émetteur au récepteur la chaîne binaire à transmettre et ou la première et ou la deuxième chaînes codées, - et on reçoit et on décode en correspondance les chaînes transmises côté récepteur pour reconstituer la chaîne binaire à transmettre, caractérisé en ce que - pour permuter les bits de la chaîne binaire de n bits à transmettre, on attribue à un bit de rang k de la chaîne binaire à transmettre un rang hk dans  The subject of the invention is therefore a method of transmission with channel coding, between a transmitter and a receiver, in which - a binary chain of n bits to be transmitted is coded with a first coder to obtain a first coded chain, - one permutes bits of the binary chain to be transmitted to obtain another so-called interlaced binary chain, - the interleaved chain is coded with a second coder to obtain a second coded chain, - the binary chain to be transmitted is transmitted from the transmitter to the receiver and or the first and or the second coded strings, - and the corresponding strings transmitted on the receiver side are received and decoded in correspondence to reconstruct the binary string to be transmitted, characterized in that - to permute the bits of the binary string of n bits to be transmitted, a bit of rank k of the binary chain to be transmitted is assigned a rank hk in

la chaîne entrelacée, qui dépend d'un rang hk-, attribué à un bit de rang k -  the interlaced string, which depends on a rank hk-, assigned to a bit of rank k -

1 de la chaîne binaire à transmettre, de telle façon que le rang hk attribué soit du type: hk = a.hk 1 + b modulo m, a, b et m étant des entiers  1 of the binary chain to be transmitted, so that the rank hk assigned is of the type: hk = a.hk 1 + b modulo m, a, b and m being integers

L'invention sera mieux comprise à la lecture de la description qui suit  The invention will be better understood on reading the description which follows

et à l'examen des figures qui l'accompagnent. Celles-ci ne sont présentées qu'à titre indicatif et nullement limitatif de l'invention. Les figures montrent: - Figure 1: la représentation fonctionnelle d'un dispositif de codage utilisable pour mettre en oeuvre le procédé de l'invention; Figure 2: un organigramme d'étapes du procédé d'entrelacement de ---l'invention  and examining the accompanying figures. These are presented for information only and in no way limit the invention. The figures show: - Figure 1: the functional representation of a coding device which can be used to implement the method of the invention; Figure 2: a flow diagram of steps of the interleaving method of the invention

- Le tableau 1, faisant partie explicitement de la description, comporte  - Table 1, which is an explicit part of the description, includes

des valeurs préférées de paramètres souscrivant à des variantes préférées  preferred values of parameters subscribing to preferred variants

de mise en oeuvre de l'algorithme de l'invention.  of implementation of the algorithm of the invention.

La figure 1 montre une représentation fonctionnelle de moyens de mettre en oeuvre un procédé de transmission selon l'invention. Ce procédé  FIG. 1 shows a functional representation of means for implementing a transmission method according to the invention. This process

est destiné à être mis en oeuvre entre un émetteur 1 et un récepteur 2.  is intended to be implemented between a transmitter 1 and a receiver 2.

L'émetteur 1 et le récepteur 2 sont symboliquement montrés et sont reliés entre eux par un canal 3. Le procédé de transmission avec codage de canal de l'invention est du type transformant un flot de données X produit par l'émetteur 1 en plusieurs flots de données Y1, Y2, Y3, Yi transmis par le canal 3. Le canal 3 sera la plupart du temps un canal radioélectrique, un circuit de codage 4 mettant en oeuvre le procédé de l'invention, et interposé entre l'émetteur 1 et le récepteur 2, comportant par ailleurs un circuit non représenté d'émission radioélectrique associé. En réception, des circuits sont adaptés à décoder et recevoir en correspondance les chaînes Y1, Y2, Y3, Yi  The transmitter 1 and the receiver 2 are symbolically shown and are linked together by a channel 3. The transmission method with channel coding of the invention is of the type transforming a data stream X produced by the transmitter 1 into several data streams Y1, Y2, Y3, Yi transmitted by the channel 3. The channel 3 will mostly be a radio channel, a coding circuit 4 implementing the method of the invention, and interposed between the transmitter 1 and the receiver 2, further comprising an associated radio transmission circuit not shown. In reception, circuits are adapted to decode and receive in correspondence the chains Y1, Y2, Y3, Yi

et à reconstituer la chaîne X transmise.  and to reconstitute the transmitted X chain.

Le circuit de codage de canal 4 comporte un premier codeur convolutif qui produit une chaîne de bits Y2 à partir d'une chaîne à coder X. Dans un exemple ce codeur convolutif est un codeur convolutif récursif. Il comporte dans son principe un certain nombre de circuits de retard 6 à 9, en cascade les uns des autres, et dont les sorties sont reliés à des additionneurs ou plus généralement à des opérateurs 10 à 13. Les opérateurs 10 à 13 ont pour but de combiner ensemble des bits de la chaîne X disponibles à une date donnée avec des bits de cette même chaîne, ou d'une transformation de cette chaîne, disponibles à une date ultérieure. Le codeur convolutif 5 représenté est dit récursif parce que les produits de convolution, notamment ceux issus de l'opérateur 12 sont combinée en entrée du système, dans un opérateur 13, avec des bits non encore traités de la chaîne X des bits à coder. Comme indiqué ci- dessus la réalisation d'un codeur convolutif récursif est préférée parce qu'à complexité de codage égale (et à efficacité de protection égale) un tel codeur récursif nécessite moins d'opérateurs et de circuits de retard qu'un codeur non récursif qui réaliserait une même transformation. Ceci étant, dans l'invention il n'est donc pas à priori nécessaire que le codeur 5 soit un codeur convolutif récursif. Il pourrait être un codeur convolutif simple, voire un autre système de codage du type BCH  The channel coding circuit 4 comprises a first convolutional coder which produces a bit chain Y2 from a chain to be coded X. In one example, this convolutional coder is a recursive convolutional coder. In principle, it comprises a certain number of delay circuits 6 to 9, in cascade from one another, and the outputs of which are connected to adders or more generally to operators 10 to 13. The aim of operators 10 to 13 to combine together bits of the chain X available at a given date with bits of this same chain, or a transformation of this chain, available at a later date. The convolutional coder 5 shown is said to be recursive because the convolution products, in particular those from the operator 12 are combined at the input of the system, in an operator 13, with bits not yet processed of the chain X of the bits to be coded. As indicated above, the realization of a recursive convolutional coder is preferred because at equal coding complexity (and at equal protection efficiency) such a recursive coder requires fewer operators and delay circuits than a non-coder recursive which would perform the same transformation. That said, in the invention it is therefore not a priori necessary for the coder 5 to be a recursive convolutional coder. It could be a simple convolutional coder, or even another coding system of the BCH type.

ou Reed SOLOMON, ou autre, mais les performances seraient différentes.  or Reed SOLOMON, or whatever, but the performance would be different.

En plus d'être transmise telle quelle dans la chaîne Y1, ou sous une forme convoluée dans la chaîne Y2, dans l'invention la chaîne de bits à traiter X est transmise sous la forme d'une troisième chaîne codée Y3 par un autre codeur 14 qui reçoit également la chaîne X de bits à coder. La particularité de la chaîne Y3 est qu'elle est produite à partir d'une permutation de la chaîne X des bits à coder. Cette permutation est réalisée par un circuit de permutation, dit aussi entrelaceur 15, interposé entre  In addition to being transmitted as is in the chain Y1, or in a convoluted form in the chain Y2, in the invention the bit chain to be processed X is transmitted in the form of a third chain coded Y3 by another coder 14 which also receives the string X of bits to be coded. The particularity of the chain Y3 is that it is produced from a permutation of the chain X of the bits to be coded. This permutation is carried out by a permutation circuit, also called interleaver 15, interposed between

l'entrée du codeur 14 et l'entrée du circuit de codage 4.  the input of the encoder 14 and the input of the coding circuit 4.

La gauche de la figure 1 montre dans un exemple dans une chaîne X de 12 bits, le traitement effectué bit à bit par l'entrelaceur 15 pour transformer la chaîne X en une chaîne X' permutée. L'entrelaceur 15 est de préférence un entrelaceur logiciel et son algorithme de transformation est montrée sur la figure 2. Conformément à ce qui a été évoqué précédemment, pour permuter les bits de la chaîne binaire de n bits à transmettre, ici douze bits dans l'exemple, on attribue à un bit de rang k de la chaîne binaire X à transmettre un rang hk dans la chaîne entrelacée X'. La particularité de l'invention est que le rang hk dans la chaîne X' dépend du rang hk.l attribué à un bit de rang k-1 de la chaîne binaire X de bits à transmettre. La dépendance est telle que hk = a.hk- 1 + b modulo m Dans cette formule a, b et m sont des entiers, paramètres de la transformation. Pour être complet un paramètre complémentaire, essentiel de l'invention, est le nombre n de bits de la chaîne X à coder. En effet comme ceci a été indiqué en préambule, l'invention permet d'adapter le codage à la longueur des mots à transmettre. Par exemple, dans le cadre du GSM, on sait que sur une fenêtre utile de 156 bits, 142 seulement ont une signification informative. Parmi ces 142 bits, trois groupements sont constitués. Un premier et un troisième groupement représente des informations à transmettre. Un deuxième groupement, intermédiaire entre les deux autres comportent des informations de cohérence permettant à un circuit de décodage de canal, en réception, de retrouver les deux groupements de bits attendus, et d'améliorer les performances de transmission du canal. D'autres normes sont envisageables. Même en GSM il est possible d'adapter des protocoles de transmission à haut débit. Dans ces cas, la longueurs clé des mots a transmettre n'est plus de 142 bits mais  The left of FIG. 1 shows in an example in a 12-bit chain X, the processing carried out bit by bit by the interleaver 15 to transform the chain X into a permuted chain X '. The interleaver 15 is preferably a software interleaver and its transformation algorithm is shown in FIG. 2. In accordance with what was mentioned previously, to permute the bits of the binary chain of n bits to be transmitted, here twelve bits in l 'example, a bit of rank k of the binary chain X is assigned to transmit a rank hk in the interlaced chain X'. The particularity of the invention is that the rank hk in the chain X 'depends on the rank hk.l assigned to a bit of rank k-1 of the binary chain X of bits to be transmitted. The dependence is such that hk = a.hk- 1 + b modulo m In this formula a, b and m are integers, parameters of the transformation. To be complete, an additional parameter, essential to the invention, is the number n of bits of the chain X to be coded. In fact, as indicated in the preamble, the invention makes it possible to adapt the coding to the length of the words to be transmitted. For example, in the context of GSM, we know that out of a useful window of 156 bits, only 142 have an informative meaning. Among these 142 bits, three groupings are formed. A first and a third grouping represents information to be transmitted. A second grouping, intermediate between the other two, includes coherence information enabling a channel decoding circuit, on reception, to find the two expected groupings of bits, and to improve the transmission performance of the channel. Other standards are possible. Even in GSM it is possible to adapt high speed transmission protocols. In these cases, the key length of the words to be transmitted is no longer 142 bits but

peut être bien plus grande. Par exemple elle peut être de 1024 bits ou plus.  may be much larger. For example it can be 1024 bits or more.

Aussi, au cours d'une étape 16, définit-on dans le programme mis en oeuvre par l'entrelaceur 15 les valeurs des paramètres n, a, b et m. On verra par la suite quelles sont les contraintes qui pèsent sur des choix judicieux de ces paramètres, le non-respect de ces contraintes conduisant à un fonctionnement dégradé, quoique éventuellement acceptable de l'algorithme de codage de l'invention. Après l'étape 16, au cours d'une étape 17 on commence à scruter la chaîne X de bits à transmettre. Ceci est réalisé sous la forme de deux instructions 18 et 19, respectivement une instruction 18 k=1 et hk = 1 suivie d'une instruction 19 k = k + 1. L'instruction 18 signifie en fait qu'on va attribuer au bit de rang 1 dans la chaîne X à transmettre un rang hk=1 dans la chaîne X', avant son codage par le codeur 14. Ce n'est pas une obligation. Notamment il serait envisageable pour k = 1 de choisir un hk de départ différent de 1. Il suffirait tout simplement que hk soit inférieur à n. Le fait de choisir hk différent de 1 peut conduire comme évoqué ci-dessus à ne pénaliser ni avantager outre mesure les bits de poids faibles ou forts. Au besoin, on pourra prévoir que hk change de valeur pour chaque nouvelle chaîne X subissant une permutation. L'étape 17 est suivie d'un test 20 au cours duquel on regarde si le bit de rang k à traiter appartient bien à la chaîne X de n bits ou s'il appartient à une autre chaîne, consécutive à la chaîne X, elle aussi de n bits. Si ce n'est pas le cas, et au début ce n'est pas le cas, il est alors possible de trouver le rang hk en appliquant l'instruction 21  Also, during a step 16, the values of the parameters n, a, b and m are defined in the program implemented by the interleaver 15. We will see below what are the constraints weighing on judicious choices of these parameters, the non-compliance with these constraints leading to degraded operation, although possibly acceptable of the coding algorithm of the invention. After step 16, during a step 17, one begins to scan the chain X of bits to be transmitted. This is done in the form of two instructions 18 and 19, respectively an instruction 18 k = 1 and hk = 1 followed by an instruction 19 k = k + 1. Instruction 18 actually means that we will assign to the bit of rank 1 in the chain X to transmit a rank hk = 1 in the chain X ', before its coding by the coder 14. This is not an obligation. In particular, it would be possible for k = 1 to choose a starting hk other than 1. It would simply suffice that hk is less than n. Choosing hk other than 1 can lead, as mentioned above, to neither penalize nor unduly advantage the least significant or most significant bits. If necessary, provision can be made for hk to change value for each new chain X undergoing a permutation. Step 17 is followed by a test 20 during which it is checked whether the bit of rank k to be processed belongs to the chain X of n bits or whether it belongs to another chain, consecutive to the chain X, it also of n bits. If it is not the case, and at the beginning it is not the case, it is then possible to find the rank hk by applying the instruction 21

sachant qu'on connaît a, b et m.knowing that we know a, b and m.

S'ils sont produits ainsi, les hk ne sont pas nécessairement répartis d'une façon bien aléatoire sur toute la chaîne X de bits. Par ailleurs, il est même possible dans certains cas que la transformation 21 ne soit pas une permutation de {1, 2,..., n}. Pour que ces derniers critères soient obtenus, il faut imposer certaines contraintes sur les paramètres a, b et m. En effet la suite (infinie) définie par la congruence linéaire de l'étape 21 a pour période m si, et seulement si, b est m sont premier entre eux; si pour tout nombre premier p divisant m, a - 1 est un multiple de p; et si a - 1 est un multiple de 4 quand m est un multiple de 4. Une justification de ces contraintes se trouve  If they are produced in this way, the hk are not necessarily distributed in a well random manner over the entire chain of bits. Furthermore, it is even possible in certain cases that the transformation 21 is not a permutation of {1, 2, ..., n}. For these latter criteria to be obtained, certain constraints must be imposed on the parameters a, b and m. Indeed the (infinite) sequence defined by the linear congruence of step 21 has for period m if, and only if, b and m are prime between them; if for any prime number p dividing m, a - 1 is a multiple of p; and if a - 1 is a multiple of 4 when m is a multiple of 4. A justification for these constraints is found

dans l'article de HULL et DOBELL, SIAM Review, 4 (1962), pages 230-254.  in the article by HULL and DOBELL, SIAM Review, 4 (1962), pages 230-254.

En pratique, il suffit de prendre m = n + 1 pour produire une permutation.  In practice, it suffices to take m = n + 1 to produce a permutation.

--r1 Dans l'exemple représenté sur la figure 1, on veut permuter douze bits. On peut alors prendre m = 13. Il est en effet important que m soit plus grand que n. On verra par la suite comment prendre m bien plus grand que n pour résoudre certaines difficultés de l'algorithme. Il reste à choisir a et b. Le choix de b différent de zéro revient à choisir hk différent de 1 pour k = 1. La plupart du temps on choisira b = 0. Cependant, pour passer d'une permutation à une autre, avec un seul algorithme mis en oeuvre selon l'étape 21, il suffira de rajouter b (modulo m) au rang de chaque bit produit par l'entrelaceur 15 dans lequel b aura valeur zéro. Ainsi, figure 1, le circuit de codage 4 peut comporter d'autres codeurs pour produire d'autres chaînes Yi de bits codés. Plutôt que de partir à chaque fois de la chaîne X et de prévoir un autre entrelaceur complexe 15, il peut être dans ce cas plus utile de partir de la chaîne X', de changer la valeur de b, et de constituer ainsi un entrelaceur supplémentaire à moindre frais, par une addition de b modulo m,  --r1 In the example shown in Figure 1, we want to swap twelve bits. We can then take m = 13. It is indeed important that m is greater than n. We will see later how to take m much larger than n to solve certain difficulties of the algorithm. It remains to choose a and b. Choosing b different from zero means choosing hk different from 1 for k = 1. Most of the time we will choose b = 0. However, to go from one permutation to another, with a single algorithm implemented according to l step 21, it will suffice to add b (modulo m) to the rank of each bit produced by the interleaver 15 in which b will have value zero. Thus, in FIG. 1, the coding circuit 4 can include other coders to produce other chains Yi of coded bits. Rather than starting each time from chain X and providing for another complex interleaver 15, it may in this case be more useful to start from chain X ', to change the value of b, and thus to constitute an additional interleaver. inexpensively, by adding b modulo m,

pour attaquer un autre codeur.to attack another encoder.

Il reste donc à choisir a. Dans un exemple, on peut choisir a arbitrairement de l'ordre de la moitié de n, ou de la moitié de n - 1. Par exemple ici on choisira a = 6. La mise en ceuvre de l'étape 21, avec a = 6 et b = 0 pour m = 13 donne alors les résultats suivants, la première ligne donnant les rang k des bits de la chaîne X, la deuxième ligne donnant les rangs attribués hk dans la chaîne X:  It therefore remains to choose a. In an example, we can arbitrarily choose a order of half of n, or half of n - 1. For example here we will choose a = 6. The implementation of step 21, with a = 6 and b = 0 for m = 13 then gives the following results, the first line giving the rank k of the bits of the chain X, the second line giving the ranks assigned hk in the chain X:

1 2 3 4 5 6 7 8 9 10 11 121 2 3 4 5 6 7 8 9 10 11 12

1 6 10 8 9 2 12 7 3 5 4 111 6 10 8 9 2 12 7 3 5 4 11

Cet exemple est par ailleurs représenté en marge à gauche de la figure 1. La première ligne représente les rangs k des bits de la chaîne X de bits à traiter, la deuxième chaîne représentant les rangs hk qui ont été attribué en application de l'étape 21 à ces bits de rang k de la chaîne X. Comme évoqué à l'étape 18, le bit de rang k = I se trouve rangé au rang hk=1 dans la chaîne X' de bits le codage. Pour le bit de rang k = 2, on applique la formule 21. Ceci donne un rang h2 = 6 x 1 + 0 modulo 13 en prenant b = 0. L'opération 6 x 1 + 0 donne 6, modulo 13 ne changeant pas le résultat. Ceci conduit à attribuer au bit de rang k = 2 un rang hk = 6 dans la chaîne X'. Pour le bit de rang k = 3, I'application de la formule donne h3=6x6+0 modulo 13. Ceci donne 36 modulo 13, soit 10. Ainsi de suite, tous les rangs hk sont attribués. Sachant que des bits de la chaîne X peuvent être produits par le générateur I au fur et à mesure, l'entrelaceur 15 comporte alors un registre 22 dans lequel, selon une étape 23, on range, au fur et à mesure de leur production par le générateur 1, les bits de la chaîne X' en fonction de la place qui leur aura été attribué par l'étape 21. Les flèches montrées sur le registre 22 sont relatives à ce rangement 23. Si on veut permuter un nombre n fixé de bits et que m = n + 1 ne peut pas vérifier les contraintes (ce qui est rarement le cas), on peut trouver un m' supérieur à m, faire la permutation à l'aide d'une congruence linéaire en m', et ensuite rayer les nombre supérieur à m. Par exemple, si on veut permuter dix bits, on peut prendre comme ci- dessus m = 13, a = 6, b = 0 et hl = 1. On obtient alors  This example is moreover represented in the margin on the left of FIG. 1. The first line represents the rows k of the bits of the chain X of bits to be processed, the second chain representing the rows hk which have been allocated in application of the step 21 to these bits of rank k of the chain X. As mentioned in step 18, the bit of rank k = I is found ranked at rank hk = 1 in the chain X 'of coding bits. For the bit of rank k = 2, we apply the formula 21. This gives a rank h2 = 6 x 1 + 0 modulo 13 taking b = 0. The operation 6 x 1 + 0 gives 6, modulo 13 does not change the result. This leads to assign to the bit of rank k = 2 a rank hk = 6 in the chain X '. For the bit of rank k = 3, the application of the formula gives h3 = 6x6 + 0 modulo 13. This gives 36 modulo 13, that is 10. Thus, all the ranks hk are assigned. Knowing that bits of the chain X can be produced by the generator I progressively, the interleaver 15 then comprises a register 22 in which, according to a step 23, we rank, as and when they are produced by the generator 1, the bits of the chain X 'as a function of the place which will have been allocated to them by step 21. The arrows shown on the register 22 relate to this ranking 23. If one wants to permute a fixed number n of bits and that m = n + 1 cannot verify the constraints (which is rarely the case), we can find a m 'greater than m, make the permutation using a linear congruence in m', and then cross out the number greater than m. For example, if we want to swap ten bits, we can take as above m = 13, a = 6, b = 0 and hl = 1. We then obtain

1 2 3 4 5 6 7 8 9 10 11 121 2 3 4 5 6 7 8 9 10 11 12

I 6 10 8 9 2 4-2 7 3 5 4 14I 6 10 8 9 2 4-2 7 3 5 4 14

On raye ensuite le12 et le 11 et on obtient une suite organisée aléatoirement.  We then strike out 12 and 11 and obtain a randomly organized sequence.

1 2 3 4 5 6 7 8 9 101 2 3 4 5 6 7 8 9 10

1 6 10 8 9 2 7 3 5 41 6 10 8 9 2 7 3 5 4

En agissant ainsi, pour m supérieur strictement à n + 1, on attribue bien un rang hk+î dans la chaîne entrelacée à un bit de rang k de la chaîne binaire à transmettre, lorsque le rang hk normalement attribuable dans la chaîne entrelacée est supérieur à n, et ce pour tous les bits de rang plus grand que k de la chaîne binaire à transmettre. En effet, on a attribué un rang 7 dans la chaîne entrelacée au bit de rang 7 dans la chaîne binaire à transmettre alors que le rang 12 normalement attribuable dans la chaîne entrelacée était supérieur à 10. On a réalisé un tel décalage pour tous les bits de rang plus grand que 7, c'est-à- dire les bits de rang 8, 9 et 10, de la chaîne binaire à transmettre. Dans l'exemple montré, bien entendu la suppression du rang 11 n'a pas d'influence puisque ce rang était le dernier attribué. Néanmoins le principe de décalage ainsi évoqué peut être appliqué  By doing so, for m strictly greater than n + 1, we assign a rank hk + î in the interlaced chain to a bit of rank k in the binary chain to be transmitted, when the rank hk normally attributable in the interlaced chain is greater to n, and this for all the bits of rank greater than k of the binary chain to be transmitted. Indeed, a rank 7 was assigned in the interleaved chain to the bit of rank 7 in the binary chain to be transmitted while the rank 12 normally attributable in the interlaced chain was greater than 10. Such a shift was carried out for all the bits of rank greater than 7, that is to say the bits of rank 8, 9 and 10, of the binary chain to be transmitted. In the example shown, of course the deletion of rank 11 has no influence since this rank was the last assigned. Nevertheless the principle of shift thus evoked can be applied

plusieurs fois.several times.

L'étape 23 est suivie d'une itération par branchement entre les instructions 18 et 19. Lorsque au test 20 le rang du bit produit par le générateur 1 devient supérieur à k, alors on lit dans une étape 24 le mot contenu dans le registre 22, on le fait coder par le codeur 14. La chaîne Y3 de bits traités est ensuite émise dans une étape 25 par le circuit d'émission et est envoyé dans le canal 3. Pour rendre plus fluide le traitement par le codeur 14, il est possible de prévoir un deuxième registre 26. Le deuxième registre 26 appartient aussi à l'entrelaceur 15. Dans ce cas, au cours de la lecture de la chaîne X', du codage et de l'émission des bits contenus dans le registre 22, l'entrelaceur 15 se charge de constituer une autre chaîne X' de bits permutés. Dans ce cas, simultanément à l'étape 24, I'algorithme de la figure 2 comporte un branchement 27 à un mot de n bits suivant, à une  Step 23 is followed by an iteration by branching between instructions 18 and 19. When in test 20 the rank of the bit produced by generator 1 becomes greater than k, then in step 24 the word contained in the register is read 22, it is coded by the coder 14. The chain Y3 of bits processed is then transmitted in a step 25 by the transmission circuit and is sent to the channel 3. To make the processing by the coder 14 more fluid, it it is possible to provide a second register 26. The second register 26 also belongs to the interleaver 15. In this case, during the reading of the chain X ′, the coding and the transmission of the bits contained in the register 22 , the interleaver 15 is responsible for constituting another chain X ′ of permuted bits. In this case, simultaneously with step 24, the algorithm of FIG. 2 comprises a connection 27 to a word of next n bits, to a

chaîne X suivante à traiter.next X string to process.

On donne ci-après dans le tableau TABLEAU 1 suivant des exemples  We give below in table TABLE 1 according to examples

de valeurs des paramètres a, b et m.  of values of parameters a, b and m.

TABLEAU 1TABLE 1

a b ma b m

6 0 136 0 13

0 170 17

7 0 2577 0 257

206 7 1025206 7 1025

En pratique le choix des paramètres a, b et m est effectué, par une approche pragmatique, en comparant les performances globales du codage avec différentes permutations. Il serait toutefois possible de prévoir un algorithme automatique qui calculerait ces paramètres à partir d'un nombre n  In practice, the choice of parameters a, b and m is made, using a pragmatic approach, by comparing the overall performance of coding with different permutations. It would however be possible to provide an automatic algorithm which would calculate these parameters from a number n

donné.given.

Dans ce calcul, dans une première étape, on choisit m = n + 1. Puis on choisit a de l'ordre de la moitié de m ou de n. La condition de b et m  In this calculation, in a first step, we choose m = n + 1. Then we choose a on the order of half of m or n. The condition of b and m

premiers entre eux est alors naturellement obtenue en choisissant b = 0.  prime among them is then naturally obtained by choosing b = 0.

Ensuite, on recherche tous les nombres premiers p divisant m. Et on cherche a pour que a - 1 soit un multiple de p, quel que soit p. Par exemple sur une chaîne X de n = 1024 bits, on essaye m = 1025 qui n'est pas premier. On  Then, we look for all the prime numbers p dividing m. And we seek a so that a - 1 is a multiple of p, whatever p. For example on a chain X of n = 1024 bits, we try m = 1025 which is not prime. We

réduit ensuite m en facteur premier. On peut ainsi écrire 1025 = 5 x 5 x 41.  then reduce m to prime factor. We can thus write 1025 = 5 x 5 x 41.

Ceci conduit à choisir, pour a, la valeur 5 x 41 + 1. Soit a = 206. On vérifie ensuite que m - a est un multiple de 5 et de 41. On peut ensuite définir b en fonction du rang de l'entrelaceur 15 dans l'ensemble des entrelaceurs utilisés dans le circuit de codage 4. S'il n'y en a qu'un b vaudra 0. S'il y en a deux, pour le premier b vaudra 0 pour le second b aura une autre valeur, par  This leads to choosing, for a, the value 5 x 41 + 1. Let a = 206. We then verify that m - a is a multiple of 5 and 41. We can then define b according to the rank of the interleaver 15 in the set of interleavers used in the coding circuit 4. If there is only one b will be worth 0. If there are two, for the first b will be worth 0 for the second b will have a other value, by

exemple a/2.example a / 2.

La mise en oeuvre de l'algorithme de l'invention nécessite la multiplication des rangs hk-1 par a. Ceci ne présente pas de difficultés compte tenu de la rapidité des opérateurs actuellement disponibles dans les circuits de traitement. L'addition de b est une opération qui en général n'utilise qu'un temps de cycle. La congruence, modulo m, peut être réalisée avec un simple décalage de la lecture du résultat produit par l'additionneur qui ajoute b ou du multiplieur par a. Le fait de choisir b = 0 a bien entendu l'avantage de supprimer une opération, le décalage étant réalisé dans ce cas sur le résultat  The implementation of the algorithm of the invention requires the multiplication of the ranks hk-1 by a. This does not present any difficulties taking into account the speed of the operators currently available in the processing circuits. The addition of b is an operation which generally uses only one cycle time. The congruence, modulo m, can be achieved with a simple shift of the reading of the result produced by the adder which adds b or the multiplier by a. Choosing b = 0 obviously has the advantage of eliminating an operation, the shift being made in this case on the result

de la multiplication.of multiplication.

Les avantages de la solution de l'invention par rapport à l'état de l'art sont: - une très grande simplicité de réalisation de l'entrelaceur 15 (conception, coût...); - de meilleures performances dans les cas o des débits et des contraintes temporelles spécifiques sont à respecter; - une gestion purement logicielle et nécessitant très peu de mémoire, seulement celle du registre 22 très rarement supérieur à 10 Kbits; - une adaptabilité aux différents services existant lors d'une mise en oeuvre initiale ainsi qu'une adaptabilité à d'éventuelles modifications ultérieures. Il suffit en effet de modifier le programme représenté par la figure 2. Si le caractère aléatoire doit être modifié, comme expliqué ci-dessus, on peut rajouter b aux rangs hk calculés. En variante, il est possible d'effectuer une itération du procédé sur les hk trouvés. Dans cette itération a, b et m peuvent être les mêmes ou être changés. On attribue alors des  The advantages of the solution of the invention compared to the state of the art are: - great simplicity of production of the interleaver 15 (design, cost, etc.); - better performance in cases where flow rates and specific time constraints are to be respected; - a purely software management and requiring very little memory, only that of register 22 very rarely greater than 10 Kbits; - adaptability to the different services existing during an initial implementation as well as adaptability to possible subsequent modifications. It suffices to modify the program represented by FIG. 2. If the randomness must be modified, as explained above, we can add b to the calculated rows hk. Alternatively, it is possible to iterate the process on the hk found. In this iteration a, b and m can be the same or be changed. We then assign

nouveaux rangs hl aux rangs hk précédents.  new hl rows to previous hk rows.

Claims (7)

REVENDICATIONS 1 - Procédé de transmission avec codage (4) de canal, entre un émetteur (1) et un récepteur (2), dans lequel - on code (5) une chaîne binaire (X) de n bits à transmettre avec un premier codeur pour obtenir une première chaîne codée (Y2), - on permute (15) des bits de la chaîne binaire à transmettre pour obtenir une autre chaîne (X') binaire dite entrelacée, on code (14) la chaîne entrelacée avec un deuxième codeur pour obtenir une deuxième chaîne codée (Y3), - on transmet (3) de l'émetteur au récepteur la chaîne binaire à transmettre et ou la première et ou la deuxième chaînes codées, - et on reçoit et on décode en correspondance les chaînes transmises côté récepteur pour reconstituer la chaîne binaire à transmettre, caractérisé en ce que - pour permuter les bits de la chaîne binaire de n bits à transmettre, on attribue (21) à un bit de rang k de la chaîne binaire à transmettre un rang hk dans la chaîne entrelacée, qui dépend d'un rang hk-1 attribué à un bit de rang k- 1 de la chaîne binaire à transmettre, de telle façon que le rang hk attribué soit du type: hk = a.hk- 1 + b modulo m, a, b et m étant des entiers  1 - Transmission method with channel coding (4), between a transmitter (1) and a receiver (2), in which - we code (5) a binary chain (X) of n bits to be transmitted with a first coder for get a first coded string (Y2), - we swap (15) bits of the binary string to be transmitted to obtain another binary string (X ') called interlaced, we code (14) the interlaced string with a second coder to obtain a second coded channel (Y3), - we transmit (3) from the transmitter to the receiver the binary channel to be transmitted and or the first and or the second coded channels, - and we receive and decode in correspondence the channels transmitted on the receiver side to reconstitute the binary chain to be transmitted, characterized in that - to swap the bits of the binary chain of n bits to be transmitted, one assigns (21) to a bit of rank k of the binary chain to be transmitted a rank hk in the chain interleaved, which depends on a rank hk-1 assigned to a bit of rank k- 1 of the binary chain to be transmitted, so that the rank hk assigned is of the type: hk = a.hk- 1 + b modulo m, a, b and m being integers 2 - Procédé selon la revendication 1, caractérisé en ce que m = n + 1.  2 - Method according to claim 1, characterized in that m = n + 1. 3 - Procédé selon la revendication 1, modifié en ce que m est supérieur à n + 1 et en ce qu'on attribue un rang hk + 1 dans la chaîne entrelacée à un bit de rang k de la chaîne binaire à transmettre lorsque le rang hk normalement attribuable dans la chaîne entrelacée est supérieur à n, et ce pour tous les bits de rang plus grand que k de la chaîne binaire à transmettre.  3 - Method according to claim 1, modified in that m is greater than n + 1 and in that one assigns a rank hk + 1 in the interlaced chain to a bit of rank k of the binary chain to be transmitted when the rank hk normally attributable in the interleaved chain is greater than n, and this for all the bits of rank greater than k of the binary chain to be transmitted. 4 - Procédé selon l'une des revendications 1 à 3, caractérisé en ce  4 - Method according to one of claims 1 to 3, characterized in that que b et m sont premiers entre eux, en ce que, pour tout nombre premier p qui divise m, m - a est un multiple de p, et en ce que a - 1 est un multiple  that b and m are prime to each other, in that, for any prime p which divides m, m - a is a multiple of p, and in that a - 1 is a multiple de 4 si m est un multiple de 4.of 4 if m is a multiple of 4. - Procédé selon l'une des revendications 1 à 4, caractérisé en ce  - Method according to one of claims 1 to 4, characterized in that que b vaut 0.that b is 0. 6 - Procédé selon l'une des revendications 1 à 5, caractérisé en ce  6 - Method according to one of claims 1 to 5, characterized in that que le codage est un codage convolutif récursif.  that the coding is a recursive convolutional coding. 7 - Procédé selon l'une des revendications 1 à 5, caractérisé en ce qu'on donne aux paramètre a b et m des valeurs correspondant à l'une des  7 - Method according to one of claims 1 to 5, characterized in that the parameters a b and m are given values corresponding to one of lignes du tableau suivant:5 a b mlines of the following table: 5 a b m 6 0 136 0 13 O0T 17O0T 17 7 0 2577 0 257 206 7 1025206 7 1025 8 - Procédé selon l'une des revendications 1 à 7 caractérisé en ce qu'on réitère l'attribution des rangs en attribuant des nouveaux rangs (hi) aux  8 - Method according to one of claims 1 to 7 characterized in that it reiterates the allocation of ranks by assigning new ranks (hi) to rangs (hk) déjà attribués.ranks (hk) already assigned.
FR9815779A 1998-12-14 1998-12-14 TRANSMISSION METHOD WITH EFFICIENT AND MODULAR INTERLOCKING CHANNEL CODING FOR TURBO CODES Expired - Fee Related FR2787263B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FR9815779A FR2787263B1 (en) 1998-12-14 1998-12-14 TRANSMISSION METHOD WITH EFFICIENT AND MODULAR INTERLOCKING CHANNEL CODING FOR TURBO CODES
DE1999160269 DE19960269A1 (en) 1998-12-14 1999-12-14 Channel encoding transmission method with effective, modular nesting or interlacing for applying turbo codes, involves using coincidence algorithm.
GB9929541A GB2346782B (en) 1998-12-14 1999-12-14 Method of transmission with channel encoding with efficient and modular interleaving for turbo codes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9815779A FR2787263B1 (en) 1998-12-14 1998-12-14 TRANSMISSION METHOD WITH EFFICIENT AND MODULAR INTERLOCKING CHANNEL CODING FOR TURBO CODES

Publications (2)

Publication Number Publication Date
FR2787263A1 true FR2787263A1 (en) 2000-06-16
FR2787263B1 FR2787263B1 (en) 2002-10-25

Family

ID=9533957

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9815779A Expired - Fee Related FR2787263B1 (en) 1998-12-14 1998-12-14 TRANSMISSION METHOD WITH EFFICIENT AND MODULAR INTERLOCKING CHANNEL CODING FOR TURBO CODES

Country Status (3)

Country Link
DE (1) DE19960269A1 (en)
FR (1) FR2787263B1 (en)
GB (1) GB2346782B (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1234420A2 (en) 1999-12-03 2002-08-28 Broadcom Corporation Viterbi slicer for turbo codes
WO2001043310A2 (en) 1999-12-03 2001-06-14 Broadcom Corporation Embedded training sequences for carrier acquisition and tracking
GB2361850B (en) * 2000-04-25 2003-12-24 Ubinetics Ltd Multiplexing and de-multiplexing
AU2001287229A1 (en) 2000-09-01 2002-03-13 Broadcom Corporation Satellite receiver
AU2001287101A1 (en) 2000-09-05 2002-03-22 Broadcom Corporation Quasi error free (qef) communication using turbo codes
US7242726B2 (en) 2000-09-12 2007-07-10 Broadcom Corporation Parallel concatenated code with soft-in soft-out interactive turbo decoder
US6518892B2 (en) 2000-11-06 2003-02-11 Broadcom Corporation Stopping criteria for iterative decoding
JP4265345B2 (en) * 2003-08-22 2009-05-20 日本電気株式会社 Mobile phone, interleave parameter calculation device, method and program

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5742612A (en) * 1993-06-02 1998-04-21 Alcatel Radiotelephone Method and device for interleaving a sequence of data elements

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2737363B1 (en) * 1995-07-27 1997-09-05 France Telecom INTERLEAVING / DE-INTERLACING DATA ELEMENTS
US5983384A (en) * 1997-04-21 1999-11-09 General Electric Company Turbo-coding with staged data transmission and processing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5742612A (en) * 1993-06-02 1998-04-21 Alcatel Radiotelephone Method and device for interleaving a sequence of data elements

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BATTAIL G: "A CONCEPTUAL FRAMEWORK FOR UNDERSTANDING TURBO CODES", IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, vol. 16, no. 2, 1 February 1998 (1998-02-01), IEEE, New York, USA, pages 245 - 254, XP000741778, ISSN: 0733-8716 *
BERROU C ET AL: "NEAR SHANNON LIMIT ERROR - CORRECTING CODING AND DECODING: TURBO -CODES (1)", PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON COMMUNICATIONS (ICC), GENEVA, MAY 23 - 26, 1993, vol. 2, 23 May 1993 (1993-05-23), IEEE, New York, USA, pages 1064 - 1070, XP000371240, ISBN: 0-7803-0950-2 *
HULL T. E. ET AL: "Random Number Generators", SIAM REVIEW, JUL. 1962, SIAM, USA, vol. 4, no. 3, pages 230 - 254, XP002114038, ISSN: 0036-1445 *

Also Published As

Publication number Publication date
FR2787263B1 (en) 2002-10-25
GB2346782B (en) 2004-01-14
GB2346782A (en) 2000-08-16
DE19960269A1 (en) 2000-06-15
GB9929541D0 (en) 2000-02-09

Similar Documents

Publication Publication Date Title
EP0511141B1 (en) Error correction encoding method comprising at least two parallel systematic convolutional encoding, iterative decoding method, decoding module and decoder therefor
US6678843B2 (en) Method and apparatus for interleaving, deinterleaving and combined interleaving-deinterleaving
FR2815199A1 (en) Cyclic turbo coding scheme improves minimum Hamming distance
FR2785743A1 (en) DEVICE AND METHOD FOR ADAPTING TURBOCODERS AND DECODERS ASSOCIATED WITH VARIABLE LENGTH SEQUENCES
EP0891656A1 (en) Data block convolutional coding device and method, and corresponding decoding method and device
FR2714554A1 (en) Method and device for parallel decoding and coding and data decompression
EP1332557A2 (en) High-speed module, device and method for decoding a concatenated code
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
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
FR2787263A1 (en) TRANSMISSION METHOD WITH EFFICIENT AND MODULAR INTERLACING CHANNEL CODING FOR TURBO CODES
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
EP1974472A1 (en) Fast encoding and decoding methods and related devices
FR2540690A1 (en) ENCODER CHECKER
FR2778040A1 (en) ERROR CORRECTION CODING PROCESS AND DEVICE FOR HIGH-RATE DIGITAL DATA TRANSMISSIONS, AND CORRESPONDING DECODING PROCESS AND DEVICE
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
JP3694259B2 (en) Method for performing body-body coding in a mobile communication system
EP1128588A1 (en) Method of error correcting coding-type digital transmission comprising a step of puncturing scheme selection
FR2838581A1 (en) Method for coding and/or decoding of the error-correction codes, corresponding devices and signal representative of coded data block
EP1205032B1 (en) Coding method and device with at least two parallel coding steps and improved permutation, and corresponding decoding method and device
EP1525663A1 (en) Digital data compression robust relative to transmission noise
FR2888062A1 (en) CODEUR AND TURBO PRODUCT CODE DECODER
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
EP1267511B1 (en) A method and apparatus for interleaving, deinterleaving
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
FR2805103A1 (en) Interleaving method e.g. for turbocoding of data, involves considering a matrix having r rows and m columns, filled row by row by the successive numbers from 0 to r tom-1

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20060831