WO1997038495A1 - Procede et dispositif de codage convolutif de blocs de donnees, et procede et dispositif de decodage correspondants - Google Patents

Procede et dispositif de codage convolutif de blocs de donnees, et procede et dispositif de decodage correspondants Download PDF

Info

Publication number
WO1997038495A1
WO1997038495A1 PCT/FR1997/000607 FR9700607W WO9738495A1 WO 1997038495 A1 WO1997038495 A1 WO 1997038495A1 FR 9700607 W FR9700607 W FR 9700607W WO 9738495 A1 WO9738495 A1 WO 9738495A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
source data
coder
source
coding
Prior art date
Application number
PCT/FR1997/000607
Other languages
English (en)
Inventor
Claude Berrou
Michel Jezequel
Original Assignee
France Telecom
Telediffusion De France
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 France Telecom, Telediffusion De France filed Critical France Telecom
Priority to DE69700532T priority Critical patent/DE69700532T2/de
Priority to US09/155,819 priority patent/US6119264A/en
Priority to JP53591497A priority patent/JP3791013B2/ja
Priority to EP97919481A priority patent/EP0891656B1/fr
Publication of WO1997038495A1 publication Critical patent/WO1997038495A1/fr

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/0056Systems characterized by the type of code used
    • H04L1/0059Convolutional codes
    • EFIXED CONSTRUCTIONS
    • E05LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
    • E05BLOCKS; ACCESSORIES THEREFOR; HANDCUFFS
    • E05B15/00Other details of locks; Parts for engagement by bolts of fastening devices
    • E05B15/02Striking-plates; Keepers; Bolt staples; Escutcheons
    • E05B15/0205Striking-plates, keepers, staples
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory 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/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/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
    • 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
    • H03M13/296Particular turbo code structure
    • 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
    • H03M13/2978Particular arrangement of the component decoders
    • H03M13/2984Particular arrangement of the component decoders using less component decoders than component codes, e.g. multiplexed decoders and scheduling thereof
    • 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
    • H03M13/299Turbo codes with short blocks
    • 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
    • H03M13/2993Implementing the return to a predetermined state, i.e. trellis termination
    • 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
    • H03M13/2996Tail biting
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original 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/0045Arrangements at the receiver end
    • H04L1/0052Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
    • 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
    • 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/2707Simple row-column interleaver, i.e. pure block 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/0041Arrangements at the transmitter end
    • H04L1/0043Realisations of complexity reduction techniques, e.g. use of look-up tables
    • 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/0067Rate matching
    • H04L1/0068Rate matching by puncturing

Definitions

  • the field of the invention is that of the coding of digital data, and in particular of source data organized in blocks of data, or messages, independent of each other, and therefore having to be coded, and decoded, unitarily.
  • the invention relates to a method and a device for error correcting coding, of convolutional type, adapted to the constraints posed by the transmission of messages, and in particular of short messages (for example of the order of a few tens or a few hundreds of bits).
  • the invention also relates to a decoding method and device, adapted to the coding method of the invention.
  • the invention finds applications in all cases where it is necessary to transmit digital information with a certain degree of reliability.
  • a preferred field of application of the invention is that of digital transmission over very noisy channels.
  • the invention can be implemented for the transmission and reception of signals via satellites.
  • the invention can be used for communications with scrolling satellites. Indeed, in systems implementing such satellites, communications can take place only by very short bursts of data, at times when the satellites are in the axis of the terrestrial antenna.
  • the invention can also advantageously be used for space transmissions to or between spacecraft and / or space waves, and in all cases where the reliability of the decoding is critical.
  • the invention can however be applied in the same way to any type of transmission, over the air or by cable.
  • it can be used for digital radiocommunication systems, such as GSM.
  • GSM digital radiocommunication systems
  • Another possible application is the transmission of data over computer networks, and in particular the INTERNET network.
  • any digital signal can be coded and decoded according to the invention, as soon as it is organized in blocks of fixed size.
  • convolutional coders are particularly effective, in terms of quality of error correction. It is recalled that, in general, the convolutional codes are codes associating with each source data to be coded at least one coded data, obtained by summing modulo 2 of this source data with at least one of the preceding source data. Thus, each coded symbol is a linear combination of the source data to be coded and of the previous source data taken into account.
  • the original data are most often reconstructed using a maximum likelihood algorithm, for example the Viterbi algorithm, whose decisions can possibly be weighted.
  • This algorithm takes into account a sequence of coded symbols received, to provide an estimate of each coded data item on transmission, by determining the source sequence most probably corresponding to the sequence received.
  • turbo-code a very advantageous technique is known under the name of "turbo-code”.
  • the turbo-codes are notably described in the European patent document EP-92460013.3 having for title "coding method correcting errors with at least two systematic convolutional codings in parallel, iterative decoding method, decoding module and corresponding decoder", and in the article by C. Berrou, A. Glavieux and P. Thitimajshima, “Near Shannon limit error-correcting coding and decoding:” turbo-codes ", Proc. of IEEE ICC '93, Geneva, pp. 1064-1070 , May 1993.
  • Turbo codes are quasi-optimal binary correcting codes, in that their correction power is close to the theoretical limit predicted by Shannon in 1947.
  • a turbo-code is constructed from a parallel concatenation of recursive systematic convolutional codes (CSR) coupled by a non-uniform interleaving.
  • CSR systematic convolutional codes
  • Decoding which cannot be global given the very large number of states to be considered, calls for an iterative process based on the concept of extrinsic information.
  • the complexity of decoding is compatible with the current integration densities on silicon, and this technique has already given rise to hardware realizations.
  • Turbo codes and more generally convolutional encoding are very suitable for the transmission of long messages, for example for continuous broadcasting.
  • short messages of length N
  • the decoder for example a Viterbi decoder, loses of its corrective power.
  • the code is not "closed", it is impossible to implement a sequential decoding always leaning, during an iterative process, on the same decoding unit.
  • an objective of the invention is to provide a method, and a corresponding device, of convolutional coding which has the advantages of turbo-codes and which is suitable for coding by blocks, or messages.
  • an objective of the invention is to provide such a coding method, which allows to "close” the code, so that each block is treated independently, on transmission and reception, while ensuring, of course, a very strong power of correction.
  • Another object of the invention is to provide such a decoding method which is simple to implement, without requiring significant resources, and which is also simple to decode.
  • the invention also aims to overcome such a method, which does not impose any particular constraint on the size of the blocks to be processed and in particular no minimum size), and which offers great flexibility in the choice of coding yields.
  • the invention also aims to provide a corresponding decoding method, which is simple and inexpensive to implement.
  • An object of the invention is to provide such a decoding method, the operation of which can be adapted as a function, for example, of a desired maximum error rate.
  • the invention aims to provide such a decoding method, making it possible to define several types of receivers, in terms of error correction efficiency, from the same coding.
  • said source data are introduced into said coder a first time (so-called original data) in their natural order, then a second time (so-called duplicated data) in an order such that the two introductions of the same source data dj are separated by the introduction of (pj.L) -l other source data, pi being a non-zero integer.
  • the coding according to the invention is systematic coding, said source data being systematically transmitted together with the data delivered by said coder.
  • the method of the invention can provide for implementing a punching of the data delivered by said coder.
  • the size of the blocks considered can be any. According to a first embodiment, this number N of source data forming a block is a multiple of the period L of the generator polynomial of said coder. According to a second embodiment, when the number N of source data forming a block is not a multiple of the period L of the generator polynomial of said coder, each of said blocks is completed by a number N'-N of fixed values, N 'being the multiple of L immediately greater than N.
  • said fixed values are preferably not transmitted and known to the receivers.
  • Said fixed values can be entered: in the form of a block, at the beginning or at the end of the block; regularly distributed among the data forming said block.
  • the invention also relates, of course; the devices implementing such a method.
  • Such a device notably comprises means for twice introducing each of said source data into a same convolutional coder implementing a polynomial generator of period L, in an order such that the two introductions of the same source data d, are separated by l 'introduction of (pj.L) -l other source data, pj being a non-zero whole number.
  • the invention relates to a corresponding decoding method, comprising a maximum likelihood decoding step taking into account on the one hand the coded data received, and on the other hand the fact that the initial state and the final state of the encoder are known.
  • the decoding method implements an iterative procedure comprising: - duplication of the original symbols received, and association with each of them of one or the other of the redundancy data received, of so as to form 2.N pairs of information to be decoded; a first iteration, comprising the following steps: initialization of the decoding, so as to take into account the initial state of the coder; determination, for each pair of information, of an estimate si c thereof and of extrinsic information Z k representative of the confidence associated with said estimate, as a function of the coded data and of the redundancy data received, and in taking into account that the initial state and the final state of the encoder are known; at least one intermediate iteration, repeating the determination step, replacing the source data received by a weighted combination of the source data received and the dual extrinsic information (that is to say relating to the duplicated data); - a final iteration, delivering a final estimate of the data received, corresponding
  • a redundancy datum is forced to a neutral value, when this has been removed by punching with remission.
  • a logarithmic law is applied to the absolute value on the estimates produced during said determination steps. This is to prevent a high weight error from growing during the iterative process.
  • At least two embodiments can be envisaged. Indeed, said iterations are implemented by: reusing a single decoder several times, at a rate higher than that of the transmitted data; cascading several decoding modules, each corresponding to an iteration.
  • the first case corresponds in particular to applications with relatively low speed, which allow several iterations to be carried out during the transmission time of a block.
  • the invention also relates to decoders implementing this method. They include in particular maximum likelihood decoding means taking into account on the one hand the coded data received, and on the other hand the fact that the initial state and the final state of the coder are known.
  • maximum likelihood decoding means taking into account on the one hand the coded data received, and on the other hand the fact that the initial state and the final state of the coder are known.
  • FIG. 1 illustrates, schematically, the transmission chain in which the coding and decoding methods of the invention can be implemented
  • FIG. 2 shows an embodiment of the coding method of the invention, using a memory of size 2N bits
  • FIG. 1 illustrates, schematically, the transmission chain in which the coding and decoding methods of the invention can be implemented
  • FIG. 2 shows an embodiment of the coding method of the invention, using a memory of size 2N bits
  • FIG. 1 illustrates, schematically, the transmission chain in which the coding and decoding methods of the invention can be implemented
  • FIG. 2 shows an embodiment of the coding method of
  • FIG. 3 is a simplified representation of the implementation of the method of the invention, in the case where the first series of data is introduced in the natural order;
  • FIG. 4 is a simple example of a systematic recursive coder which can be used according to the invention;
  • FIG. 5 generically illustrates a stirrer with polynomial G (D), discussed in the appendix;
  • - Figure 6 shows the principle of addressing the memory of Figure 3;
  • FIG. 7 illustrates the principle of an iteration of the decoding method of the invention;
  • FIG. 8 is an example of implementation of the decoding method, in the case of a sequential structure;
  • FIGS. 9 A to 9E illustrate the decoding results obtained according to the invention in various cases, and in comparison with other coding techniques.
  • the invention therefore relates to digital communications. It proposes a coding and decoding technique allowing an effective correction of the errors introduced by the transmission. It therefore aims in particular to improve the quality of transmissions in the presence of disturbing elements, such as noise and / or jammers.
  • the transmission chain, into which the methods of the invention are inserted, is illustrated in FIG. 1.
  • the signals to be transmitted are delivered by a digital source 11, in the form of finished messages (or blocks), each comprising N data dj.
  • Dj data can correspond to any type of known signal (digital, or analog 97/38495 PC17FR97 / 00607
  • the finished messages can of course correspond to longer messages, even continuous, and cut to the desired format.
  • Each message then undergoes coding 12, according to the method of the invention, to provide coded messages (or packets) comprising T coded data (or symbols).
  • coded messages or packets
  • symbols comprise on the one hand the source data Xj, and on the other hand redundancy data Y.
  • the coded message is then transmitted to the recipient, through the transmission channel 13, which induces various disturbances on the signal.
  • the transmission channel 13 can be broken down into three elements: modulation and filtering 131 on transmission, the transmission medium 132 itself and filtering and demodulation
  • operations 131 and / or 133 notably include methods for combating interference between symbols.
  • the data received Xj and y k feed the decoding device 14 implementing the method of the invention, to provide an estimated message formed from the estimated source data of j to the recipient 15.
  • the coding 14 can for example be implemented according to the structure illustrated in FIG. 2.
  • N or L
  • the N data dj are copied twice in a memory 21 of size 2N x 1 bit, at addresses such that their subsequent readings for introduction into the encoder 22 will be separated by a number of periods multiple of L.
  • k ⁇ (i) is the instant of the first reading of a particular datum d j (so-called original datum)
  • the second reading occurs p, .Ll moments after the first.
  • the attached appendix which is an integral part of the present description demonstrates that this condition makes it possible to verify that the coder will systematically find at the end of the message the state in which it was at the start of the message.
  • the encoder 22 is conventionally formed of a set of elementary delays 221 and of adders 222.
  • FIG. 4 illustrates another example of a systematic recursive convolutional encoder.
  • Such an encoder can be assimilated to a pseudo-random generator of period L.
  • the period L is 7.
  • the redundancy signal will be periodic (periodic impulse response of infinite length).
  • this datum is transmitted again to the coder after a time multiple of the period L, the coder will resume its initial state, this property is used in the coding method.
  • the data are therefore applied to the encoder CSR 22 initializes at state 0.
  • the encoder produces a redundancy Y ⁇
  • the output of the encoder is constituted by the symbols X, representative of the N data dj original (it is a systematic code) and the all or part of the redundancy Y k - If all the redundancy is used, the coding efficiency is 1/3. To obtain higher yields, a punch 23 of the redundancy is necessary. For example, to obtain a yield of 1/2, Y k is transmitted once in 2.
  • the Xj and Y k form the coded message, or code word, 24, to be transmitted.
  • the code thus defined is a block code because the initial state and the final state of the coding register are perfectly known (state 0).
  • the final state of the encoder is indeed 0 because it is applied to it N couples (original data and duplicated data) under conditions such that the response (final state) of the encoder to a couple is always 0 (it is obvious if the data original is a logical "0" and relation (1) ensures it if it is a "1").
  • the coder's response to the N couples is the sum of the responses to each of the couples, and the final state is always 0, whatever the data composing the message.
  • the symbols received can therefore be decoded independently of any other information, previous or subsequent, contrary to the case of the conventional convolutional code. No termination bit is required to "close" the code.
  • the data to be transmitted dj are firstly supplied to the encoder 31 in the natural order (selector 32 in position A). At the same time, they are stored in the memory 33. The duplicated data are obtained with the selector 32 in position B. The order of writing and reading from the memory 33 must of course respect the rule defined above.
  • these read addresses can be stored in memory (ROM) 64 once and for all, so that they can also be used by the decoder.
  • Decoding is an iterative process which is based on the concept of extrinsic information introduced in the documents describing the "turbo-codes", already cited in the preamble to this application.
  • the fundamental operator is a convolutional code decoder with weighted inputs and outputs.
  • This can be the optimal decoder (MAP) as described in the article by LR Bahl, J. Cocke, F. Jelinek and J. Raviv entitled “Optimal decoding of linear codes for minimizing symbol error rate "(IEEE Trans. Inform. Theory, vol. IT-20, pp. 284-287, March 1974), or a Viterbi decoder with weighted outputs as presented in the patent document EP-92460011.7 and in the article by C. Berrou and P. Adde, E. Angui and S. Faudeil "A low complexity soft-output Viterbi Vietnameseder architecture” (Proc. Of IEEE ICC'93, Geneva, pp. 737- 740, May 1993).
  • FIG. 7 The general structure of an iteration of the decoding process is illustrated in FIG. 7.
  • a reception memory 71 stores the received data (XJ and y k ). When the data is not transmitted (punching), it is replaced by neutral values, i.e. analog zeros.
  • a weighted output decoder 72 is initialized so that the initial state of the encoder is taken into account.
  • the set of symbols X k and y k (these are the symbols X, and Y k emitted by the coder and altered by noise), quantified on q bits, is then transmitted to the decoder 72 which supplies estimated symbols of the associated data trusted information.
  • the estimation of these symbols and the confidence calculations are made using the property that the state of the coder is known at the end of the packet.
  • the association of the estimated data and the confidence makes it possible to calculate an estimated symbol in a format equivalent to that of the symbols received.
  • These symbols are noted s k . There are, therefore, 2N estimated symbols.
  • a calculation 73 of the extrinsic information Z k is then carried out. If the decoder 72 is a Viterbi decoder, the calculation corresponds to operations 83 and 87 of FIG. 8, commented on below.
  • reception memory 71 must provide the X and Y rk useful to the decoder 72 as well as the X ⁇ necessary for the calculations 73 of the extrinsic information and of the estimation 74 of the symbols. It is understood that the management system of memory is integrated in the block called reception memory 71.
  • the first is the pipeline-type structure. In this case, there are as many decoders as iterations.
  • the reception memory is replaced by the final memory of the previous iteration. In this case, it is the x ′ k which are transmitted to the decoder 72.
  • the last iteration restores the estimated data to the recipient.
  • These data are calculated as being the sum of the output S k relating to the original data and the dual extrinsic information Zk dual (that is to say corresponding to the duplicated data).
  • the second is a sequential structure, based on the repeated use of a single decoder. It is particularly well suited to communications at relatively low speed, and allows for efficient decoders at low cost.
  • FIG. 8 illustrates a mode of implementation of this sequential structure.
  • the symbols Xj and y k from the transmission channel are quantized on q bits and stored in a memory MEMxy 81.
  • Each data item Xj is stored twice, in places identical to those which were used for coding.
  • the decoder (MAP or Viterbi) 82 processes the block in 2.N periods, from information x ' k and y k .
  • the decoder is supplied with a neutral or "analog zero" value.
  • the iterations follow one another "on the fly", that is to say that the decoder is supplied without interruption, the data relating to the iteration p being contiguous with those relating to the iteration p - 1. at the start of the processing , then then every 2.N periods, the decoder is forced to state 0 (the cumulative metric of state 0 is canceled and the other cumulative metrics are set to a high value). Processing stops at the pre-programmed iteration.
  • the extrinsic information Z k is a Viterbi decoder
  • the extrinsic information is simply calculated as the difference 83 between the weighted output S k , compressed by a logarithmic law 87, and the input x ⁇ (the decoder being assumed without latency for simplicity).
  • the estimate e is calculated as the sum 84 of the output S k relating to the original datum and of the extrinsic information Z k dual (relating to the duplicated datum).
  • the extrinsic information is stored in a MEMz 85 memory.
  • the input x ' k of the decoder relating to the data d is formed by the sum 86 of the symbol X k and of the extrinsic information Z k dual developed in the previous iteration, weighted 88 by the coefficient ⁇ (in the first iteration , the MEMz 85 memory is filled with neutral values).
  • the elements 810 and 811 ensure the transposition between the original data and the duplicated data, at the desired times.
  • the performance of the convolutional block turbo-code is all the better as N is high. For low values of N, it is the correlation of the noises affecting the information X k and Z k which are added to the input of the decoder, which limits the power of correction of the code. It is easy to see that if these two estimates of the same data are incorrect, the diversity inherent in turbo-decoding is necessarily reduced.
  • An answer to this problem is given by the logarithmic law 87, the effects of which are to prevent a high-weight error from increasing during the iterative process.
  • the logarithmic law relates to the absolute value and is of the form:
  • the weighting coefficient ⁇ is fixed at a value less than one and is adjusted according to the coding efficiency ( ⁇ is lower when the efficiency is low).
  • the convolutional block turbo-code as described above, is constructed around information blocks whose length N is a multiple of the period L of the pseudo-random generator.
  • N ' A simple way of processing blocks of any length N 'is to retain a value of N multiple of L, immediately greater than N' and to supplement the N 'data to be coded with N - N' known binary values, for example N - N '' 0 '.
  • BER bit error rate
  • FER rate of frame error
  • the abscissa represents either the signal to noise ratio Eb / No, or the bit error rate at the input of the BERj n decoder (BER: Binary Error Rate).
  • the ordinate carries either the BER bit error rate at the output of the decoder, or the FER frame error rate at the output of the decoder (FER: Frame Error Rate).
  • the elementary decoder uses the modified Viterbi algorithm already mentioned. The case of FIG.
  • a CSR coder is built around a cross-connect (“scrambler"), itself deduced from a pseudo-random generator, of memory length m.
  • the generator polynomial is noted m

Landscapes

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

Abstract

L'invention concerne un procédé et un dispositif de codage convolutif de blocs formés chacun d'un nombre N prédéterminé de données source, selon lequel chacune desdites données source est introduite deux fois dans un même codeur convolutif (22) mettant en oeuvre un polynôme générateur de période L, selon un ordre tel que les deux introductions d'une même donnée source di sont séparées par l'introduction de (pi.L)-1 autres données source, pi étant un nombre entier non nul. L'invention concerne également un procédé et un dispositif de décodage correspondant. Elle s'applique notamment à la transmission de messages courts, par exemple en radiotéléphonie, pour les communications par satellites ou encore les télécommunications informatiques (réseau Internet par exemple).

Description

Procédé et dispositif de codage convolutif de blocs de données, et procédé et dispositif de décodage correspondants.
Le domaine de l'invention est celui du codage de données numériques, et en particulier de données source organisées en blocs de données, ou messages, indépendants les uns des autres, et devant donc être codés, et décodés, unitairement.
Plus précisément, l'invention concerne un procédé et un dispositif de codage correcteur d'erreurs, de type convolutif, adapté aux contraintes posées par la transmission de messages, et notamment de messages courts (par exemple de l'ordre de quelques dizaines ou quelques centaines de bits). L'invention concerne également un procédé et un dispositif de décodage, adapté au procédé de codage de l'invention.
L'invention trouve des applications dans tous les cas où il est nécessaire de transmettre des informations numériques avec un certain degré de fiabilité. Un domaine d'application privilégié de l'invention est celui de la transmission numérique sur des canaux très bruités. A titre d'exemple, l'invention peut être mise en oeuvre pour l'émission et la réception de signaux par l'intermédiaire de satellites. Notamment, l'invention peut être utilisée pour les communications avec les satellites à défilement. En effet, dans les systèmes mettant en oeuvre de tels satellites, les communications ne peuvent avoir lieu que par salves très courtes de données, aux moments où les satellites se trouve dans l'axe de l'antenne terrestre. L'invention peut également avantageusement être utilisée pour les transmissions spatiales vers, ou entre les vaisseaux spatiaux et/ou des ondes spatiales, et dans tous les cas où la fiabilité du décodage est critique.
Plus généralement, l'invention peut toutefois s'appliquer de la même façon à tout type de transmission, par voie hertzienne ou par câble. Notamment, elle peut être utilisée pour les systèmes de radiocommunication numérique, tel que le GSM. Une autre application possible est la transmission de données sur des réseaux informatiques, et notamment le réseau INTERNET.
Tout signal numérique, quel qu'en soit l'origine, peut être codé et décodé selon l'invention, dès lors qu'il est organisé en blocs de taille fixe. On sait que les codeurs convolutifs sont particulièrement efficaces, en terme de qualité de correction d'erreurs. On rappelle que, de façon générale, les codes convolutifs sont des codes associant à chaque donnée source à coder au moins une donnée codée, obtenue par sommation modulo 2 de cette donnée source avec au moins une des données source précédentes. Ainsi, chaque symbole codé est une combinaison linéaire de la donnée source à coder et des données source précédentes prises en compte.
Dans le décodeur, les données d'origine sont le plus souvent reconstruites à l'aide d'un algorithme à maximum de vraisemblance, et par exemple l'algorithme de Viterbi, dont les décisions peuvent éventuellement être pondérées. Cet algorithme prend en compte une séquence de symboles codés reçus, pour fournir une estimation de chaque donnée codée à l'émission, en déterminant la séquence source correspondant le plus probablement à la séquence reçue.
Parmi les codes convolutifs, on connaît sous le nom de "turbo-code", une technique très avantageuse. Les turbo-codes sont notamment décrits dans le document de brevet européen EP-92460013.3 ayant pour titre "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 correspondants", et dans l'article de C. Berrou, A. Glavieux and P. Thitimajshima, "Near Shannon limit error-correcting coding and decoding : "turbo-codes", Proc. of IEEE ICC '93, Geneva, pp. 1064-1070, May 1993. Les turbo-codes sont des codes correcteurs binaires quasi-optimaux, en ce sens de leur pouvoir de correction est proche de la limite théorique prédite par Shannon en 1947.
Un turbo-code est construit à partir d'une concaténation parallèle de codes convolutifs systématiques récursifs (CSR) couplés par un entrelacement non uniforme.
Le décodage, qui ne peut être global compte tenu du très grand nombre d'états à considérer, fait appel à un processus itératif s' appuyant sur le concept d'information extrinsèque. La complexité de décodage est compatible avec les densités d'intégration sur silicium actuelles, et cette technique a d'ores et déjà donné lieu à des réalisations matérielles.
Les turbo-codes et plus généralement le codage convolutif sont bien appropriés à la transmission de messages longs, par exemple à la diffusion continue. En revanche, lorsqu'il s'agit de protéger des messages courts, de longueur N, se pose le problème de la connaissance de l'état final du codeur après que les N bits lui aient été appliqués. Si cette information n'est pas fournie, ou si l'état du codeur n'est pas forcé à une valeur connue par l'application de bits supplémentaires ("tail bits"), le décodeur, par exemple un décodeur de Viterbi, perd de son pouvoir de correction. Par ailleurs, si le code n'est pas "fermé", il est impossible de mettre en oeuvre un décodage séquentiel s' appuyant toujours, au cours d'un processus itératif, sur la même unité de décodage.
Sur un autre plan, et toujours pour des messages courts, il est difficile d'utiliser la technique de la concaténation (typiquement un code en bloc BCH ou de Read-Solomon suivi, après entrelacement, d'un code convolutif) pour obtenir un fort pouvoir de correction : ou bien le code en bloc requiert une longueur de bloc supérieure à celle du message (cas du code de Read-Solomon), ou bien la taille de l'entrelacement est trop importante (cas du code BCH). L'on se contente donc aujourd'hui, soit d'un code convolutif avec bits de terminaison, soit d'un code en bloc, et donc d'un pouvoir de correction très moyen.
Des travaux ont déjà été menés sur des turbo-codes en bloc utilisant des codes BCH en tant que codes élémentaires. Ils sont notamment décrits dans l'article de R. Pyndiah, A. Glavieux, A. Picart and S. Jacq, "Near optimum decoding of product codes" in proc. of IEEE GLOBECOM '94, vol 1/3, pp. 339-343, Nov-Dec. 1994. Les résultats sont excellents mais le schéma de codage présente des inconvénients : complexité du décodeur, peu de souplesse sur les rendements de codage, taille de blocs importante. Les turbo-codes en bloc convolutifs décrits dans la suite ont également d'excellentes performances, sont relativement simples à décoder et offrent une grande souplesse dans le choix des rendements de codage et des tailles de blocs. L'invention a notamment pour objectif de pallier ces différents inconvénients de l'état de la technique.
Plus précisément, un objectif de l'invention est de fournir un procédé, et un dispositif correspondant, de codage convolutif qui présente les avantages des turbo-codes et qui est adapté au codage par blocs, ou messages. Notamment, un objectif de l'invention est de fournir un tel procédé de codage, qui permette de "fermer" le code, de façon que chaque bloc soit traité indépendamment, à l'émission et à la réception, tout en assurant, bien sûr, un très fort pouvoir de correction.
Un autre objectif de l'invention est de fournir un tel procédé de décodage qui soit simple à mettre en oeuvre, sans nécessiter de moyens importants, et qui soit également simple à décoder.
L'invention a également pour objectif de pallier un tel procédé, qui n'impose aucune contrainte particulière sur la taille des blocs à traiter et notamment pas de taille minimale), et qui offre une grande souplesse dans le choix des rendements de codage.
Par ailleurs, l'invention a aussi pour objectif de fournir un procédé de décodage correspondant, qui soit simple et peu coûteux à mettre en oeuvre.
Un objectif de l'invention est de fournir un tel procédé de décodage, dont le fonctionnement puisse être adapté en fonction, par exemple, d'un taux d'erreurs maximal souhaité. Parallèlement, l'invention, a pour objectif de fournir un tel procédé de décodage, permettant de définir plusieurs types de récepteurs, en terme d'efficacité de correction d' erreurs, à partir d' un même codage.
Ces objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteint selon l'invention à l'aide d'un procédé de codage convolutif de blocs formés chacun d'un nombre N prédéterminé de données source, procédé selon lequel chacune desdites données source est introduite deux fois dans un même codeur convolutif mettant en oeuvre un polynôme générateur de période L, selon un ordre tel que les deux introductions d'une même donnée source dj sont séparées par l'introduction de (pj.L)-l autres données source, p, étant un nombre entier non nul.
Cette technique de répétition systématique permet de garantir que le code soit fermé, comme cela est expliqué par la suite. En d'autres termes, l'état initial et l'état final du registre de codage sont parfaitement connus du décodeur, quelles que soient les données composant le message, ce qui permet d'initialiser le décodeur. Nulle donnée de terminaison n'est nécessaire pour fermer le code.
De nombreuses façons d'appliquer deux fois les données au codeur sont envisageables, dès lors qu'elles respectent la règle donnée ci-dessus. Selon un mode de réalisation avantageux, qui donne des résultats efficaces, lesdites données source sont introduites dans ledit codeur une première fois (données dites originales) selon leur ordre naturel, puis une seconde fois (données dites dupliquées) selon un ordre tel que les deux introductions d'une même donnée source dj sont séparées par l'introduction de (pj.L)-l autres données source, pi étant un nombre entier non nul.
Cet ordre d'introduction desdites données dupliquées peut notamment être obtenu en : inscrivant les données source ligne à ligne dans une mémoire de taille N = ni * nc, ni étant le nombre de lignes, multiple de L, et nc étant le nombre de colonnes, premier avec L ; et lisant lesdites données dupliquées colonne par colonne, en parcourant sur une colonne donnée, à l'instant k2, les lignes successives jusqu'à ce qu'on trouve une donnée qui a été utilisée une première fois (donnée originale) à l'instant ki tel que kι-k2 soit multiple de L. De façon préférentielle le codage selon l'invention est un codage systématique, lesdites données source étant systématiquement émises conjointement aux données délivrées par ledit codeur.
Cette technique s'avère particulièrement efficace, et permet de mettre en oeuvre la méthode de décodage itératif décrite par la suite. De façon à améliorer le rendement du codage, le procédé de l'invention peut prévoir de mettre en oeuvre un poinçonnage des données délivrées par ledit codeur.
La taille des blocs considérés peut être qelconque. Selon un premier mode de réalisation, ce nombre N de données source formant un bloc est un multiple de la période L du polynôme générateur dudit codeur. Selon un second mode de réalisation, lorsque le nombre N de données source formant un bloc n'étant pas un multiple de la période L du polynôme générateur dudit codeur, on complète chacun desdits blocs par un nombre N'-N de valeurs fixes, N' étant le multiple de L immédiatement supérieur à N.
Dans ce cas, lesdites valeurs fixes ne sont préférentiellement pas transmises et connues des récepteurs. Lesdites valeurs fixes peuvent être introduites : sous la forme d'un bloc, en début ou en fin de bloc ; régulièrement réparties parmi les données formant ledit bloc. L'invention concerne également, bien sûr; les dispositifs mettant en oeuvre un tel procédé. Un tel dispositif comprend notamment des moyens pour introduire deux fois chacune desdites données source dans un même codeur convolutif mettant en oeuvre un polynôme générateur de période L, selon un ordre tel que les deux introductions d'une même donnée source d, sont séparées par l'introduction de (pj.L)-l autres données source, pj étant un nombre entier non nul.
Par ailleurs, l'invention concerne un procédé de décodage correspondant, comprenant une étape de décodage à maximum de vraisemblance tenant compte d'une part des données codées reçues, et d'autre part du fait que l'état initial et l'état final du codeur sont connus.
Préférentiellement, ledit codage étant un codage systématique, le procédé de décodage met en oeuvre une procédure itérative comprenant : - duplication des symboles originaux reçus, et association à chacun d'eux de l'une ou l'autre des données de redondance reçus, de façon à former 2.N couples d'informations à décoder ; une première itération, comprenant les étapes suivantes : initialisation du décodage, de façon à prendre en compte l'état initial du codeur ; détermination, pour chaque couple d'information, d'une estimation sic de celle-ci et d'une information extrinsèque Zk représentative de la confiance associée à ladite estimation, en fonction des données codées et des données de redondance reçues, et en tenant compte du fait que l'état initial et l'état final du codeur sont connus ; au moins une itération intermédiaire, répétant l'étape de détermination, en remplaçant les données source reçues par une combinaison pondérée des données source reçues et de l'information extrinsèque duale (c'est-à-dire relative à la donnée dupliquée) ; - une dernière itération, délivrant une estimation définitive des données reçues, correspondant à la sommation de l'estimation obtenue à partir de l'un des symboles de redondance avec l' information extrinsèque obtenue à partir de l'autre symbole de redondance, pour chaque symbole source. Cette technique permet de simplifier les décodeurs, et s'avère particulièrement efficace. Le nombre d'itérations est fonction de l'efficacité de décodage recherchée.
Avantageusement, une donnée de redondance est forcée à une valeur neutre, lorsque celle-ci a été supprimée par poinçonnage à rémission.
De façon préférentielle, on applique une loi logarithmique sur la valeur absolue sur les estimations produites lors desdites étapes de détermination. Cela permet d'empêcher qu'une erreur de poids élevé s'amplifie au cours du processus itératif.
Au moins deux modes de réalisation peuvent être envisagés. En effet, lesdites itérations sont mises en oeuvre en : réutilisant plusieurs fois un décodeur unique, à un rythme supérieur à celui des données transmises ; cascadant plusieurs modules de décodage, correspondant chacun à une itération. Le premier cas correspond notamment aux applications à relativement faible débit, qui permettent que plusieurs itérations soient effectuées pendant la durée de transmission d'un bloc.
L'invention concerne également les décodeurs mettant en oeuvre ce procédé. Ils comprennent notamment des moyens de décodage à maximum de vraisemblance tenant compte d'une part des données codées reçues, et d'autre part du fait que l'état initial et l'état final du codeur sont connus. D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation préférentiel de l'invention, donné à titre de simple exemple illustratif, et des dessins annexés, parmi lesquels : la figure 1 illustre, de façon schématique, la chaîne de transmission dans laquelle peuvent être mis en oeuvre les procédés de codage et décodage de l'invention ; la figure 2 présente un mode de mise en oeuvre du procédé de codage de l'invention, à l'aide d'une mémoire de taille 2N bits ; la figure 3 est une représentation simplifiée de la mise en oeuvre du procédé de l'invention, dans le cas où la première série de données est introduite dans l'ordre naturel ; la figure 4 est un simple exemple de codeur récursif systématique pouvant être utilisé selon l'invention ; la figure 5 illustre de façon générique un brasseur de polynôme G(D), discuté en annexe ; - la figure 6 présente le principe de l'adressage de la mémoire de la figure 3 ; la figure 7 illustre le principe d'une itération du procédé de décodage de l'invention ; la figure 8 est un exemple de mise en oeuvre du procédé de décodage, dans le cas d'une structure séquentielle ; les figures 9 A à 9E illustrent les résultats de décodage obtenus selon l'invention dans divers cas de figure, et en comparaison avec d'autres techniques de codage.
L'invention concerne donc les communications numériques. Elle propose une technique de codage et de décodage permettant une correction efficace des erreurs introduites par la transmission. Elle vise donc en particulier à améliorer la qualité des transmissions en présence d'éléments perturbateurs, tels que du bruit et/ou des brouilleurs.
Elle est particulièrement adaptée aux transmissions de messages courts. Elle trouve donc, par exemple, des applications dans les systèmes de radiocommunications avec les mobiles, ou dans les transmissions via satellites.
La chaîne de transmission, dans laquelle s'insèrent les procédés de l'invention, est illustrée en figure 1.
Les signaux à transmettre sont délivrés par une source numérique 11 , sous la forme de messages (ou blocs) finis, comprenant chacun N données dj. Les données dj peuvent correspondre à tout type de signal connu (numérique, ou analogique 97/38495 PC17FR97/00607
préalablement échantillonné). Le cas échéant, les messages finis peuvent bien sûr correspondre à des messages plus longs, voire continus, et découpés au format voulu.
Chaque message subit ensuite un codage 12, selon le procédé de l'invention, pour fournir des messages codés (ou paquets) comprenant T données codées (ou symboles). Dans le cas où un codage systématique est mis en oeuvre, ces symboles comprennent d'une part les données source Xj, et d'autre part des données de redondance Y .
Le message codé est ensuite transmis vers le destinataire, au travers du canal de transmission 13, qui induit différentes perturbations sur le signal. Le canal de transmission 13 peut être décomposé en trois éléments : la modulation et le filtrage 131 à l'émission, le milieu de transmission 132 proprement dit et le filtrage et la démodulation
133. Classiquement, les opérations 131 et/ou 133 comprennent notamment des procédés de lutte contre l'interférence entre symboles.
Les données reçues Xj et yk alimentent le dispositif de décodage 14 mettant en oeuvre le procédé de l'invention, pour fournir un message estimé formé des données source estimées d'j au destinataire 15.
Le codage 14 peut par exemple être mis en oeuvre selon la structure illustrée en figure 2.
On considère que l'on désire coder des messages de N bits à l'aide d'un codeur systématique récursif (CSR) utilisant un polynôme générateur G(D) de longueur m et de période L. Un tel polynôme est illustré en figure 5, et commenté en annexe.
Selon l'invention, on choisit N (ou L) de façon qu'il soit un multiple de L, (on explique plus loin une méthode particulière lorsque ce n'est pas le cas), et on code chacune des N données source (bits) deux fois.
Pour cela, les N données dj sont copiées deux fois dans une mémoire 21 de taille 2N x 1 bit, à des adresses telles que leurs lectures ultérieures pour introduction dans le codeur 22 seront séparées d'un nombre de périodes multiple de L.
Ainsi, si kι(i) est l'instant de la première lecture d'une donnée particulière dj (donnée dite originale), alors l'instant k2(i) de la deuxième lecture (donnée dite dupliquée) vérifie la règle suivante : k2(i) = k,(i) + Pi.L (1) En d'autres termes, la seconde lecture intervient p,.L-l instants après la première. L'annexe jointe, qui fait partie intégrante de la présente description démontre que cette condition permet de vérifier que le codeur retrouvera systématiquement en fin de message l'état dans lequel il se trouvait en début de message. Le codeur 22 est classiquement formé d'un jeu de retards élémentaires 221 et d'additionneurs 222. La figure 4 illustre un autre exemple de codeur convolutif récursif systématique.
Un tel codeur peut être assimilé à un générateur pseudo-aléatoire de période L. Par exemple, pour le codeur de la figure 3, la période L est de 7. Ainsi, en imaginant que le codeur de la figure 3 est initialise dans un état 'tout 0' (c'est-à-dire que toutes les sorties des registres sont à 0) si une donnée non nulle lui est transmise, le signal de redondance sera périodique (réponse impulsionnelle périodique de longueur infinie). Par contre, si cette donnée est transmise une nouvelle fois au codeur après un temps multiple de la période L, le codeur reprendra son état initial, cette propriété est utilisée dans le procédé dé codage.
Les données sont donc appliquées au codeur CSR 22 initialise à l'état 0. Le codeur produit une redondance Y^ La sortie du codeur est constituée par les symboles X, représentatifs des N données dj originales (c'est un code systématique) et la totalité ou partie de la redondance Yk- Si toute la redondance est exploitée, le rendement de codage est 1/3. Pour obtenir des rendements supérieurs, un poinçonnage 23 de la redondance est nécessaire. Par exemple, pour obtenir un rendement de 1/2, Yk est transmis une fois sur 2.
Les Xj et Yk forment le message codé, ou mot de code, 24, à transmettre.
Le code ainsi défini est un code en bloc car l'état initial et l'état final du registre de codage sont parfaitement connus (état 0). L'état final du codeur est bien 0 car il lui est appliqué N couples (donnée originale et donnée dupliquée) dans des conditions telles que la réponse (état final) du codeur à un couple est toujours 0 (c'est évident si la donnée originale est un "0" logique et la relation (1) l'assure si c'est un "1").
Le code étant linéaire, la réponse du codeur aux N couples est la somme des réponses à chacun des couples, et l'état final est toujours 0, quelles que soient les données composant le message. Les symboles reçus peuvent donc être décodés indépendamment de toute autre information, antérieure ou ultérieure, contrairement au cas du code convolutif classique. Nul bit de terminaison n'est nécessaire pour "fermer" le code. De nombreuses façons d'appliquer deux fois au codeur sont envisageables. Une technique donnant de bons résultats est illustrée dans son principe en figure 3.
Les données à transmettre dj sont tout d'abord fournies au codeur 31 dans l'ordre naturel (sélecteur 32 en position A). Dans le même temps, elles sont stockées dans la mémoire 33. Les données dupliquées sont obtenues avec le sélecteur 32 en position B. L'ordre d'inscription et de lecture de la mémoire 33 doit bien sûr respecter la règle définie ci-dessus.
Cela peut par exemple se faire selon la méthode illustrée en figure 6, qui comprend les étapes suivantes : les données originales sont appliquées (61) dans leur ordre naturel au codeur (kj(i) = i) ; dans le même temps, ces données sont mémorisées (62), ligne après ligne dans une mémoire de taille n| x nc = N. ni est le nombre de lignes, multiple de L et nc est le nombre de colonnes, premier avec L ; les données dupliquées sont lues (63) colonne par colonne, pour être appliquées au codeur, suivant un ordre qui satisfait la relation (1). C'est-à- dire qu'à l'instant k2, on parcourt sur la colonne considérée les lignes successives jusqu'à ce que l'on trouve une donnée qui a été utilisée sous sa forme originale à l'instant kj, tel que k2 - k] soit multiple de L. D'un point de vue pratique, ces adresses de lecture peuvent être mises en mémoire (ROM) 64 une fois pour toutes, pour pouvoir être également utilisées par le décodeur.
Le décodage est un processus itératif qui s'appuie sur le concept d'information extrinsèque introduit dans les documents décrivant les "turbo-codes", déjà cités en préambule de la présente demande. L'opérateur fondamental est un décodeur de code convolutif à entrées et sorties pondérées. Cela peut être le décodeur optimal (MAP) tel que décrit dans l'article de L. R. Bahl, J. Cocke, F. Jelinek and J. Raviv intitulé "Optimal decoding of linear codes for minimizing symbol error rate" (IEEE Trans. Inform. Theory, vol. IT-20, pp. 284-287, Mars 1974), ou un décodeur de Viterbi à sorties pondérées tel que présenté dans le document de brevet EP-92460011.7 et dans l'article de C. Berrou et P. Adde, E. Angui et S. Faudeil "A low complexity soft-output Viterbi décoder architecture" (Proc. of IEEE ICC'93, Geneva, pp. 737-740, mai 1993).
La structure générale d'une itération du procédé de décodage est illustrée en figure 7.
Une mémoire de réception 71 stocke les données reçues (XJ et yk). Lorsque les données ne sont pas transmises (poinçonnage), elles sont remplacées par des valeurs neutres, c'est-à-dire des zéros analogiques. Un décodeur à sortie pondérée 72 est initialise de telle sorte que l'état initial du codeur soit pris en compte.
L'ensemble des symboles Xk et yk (ce sont les symboles X, et Yk émis par le codeur et altérés par le bruit), quantifiés sur q bits, est alors transmis au décodeur 72 qui fournit des symboles estimés des données associées à des informations de confiance. L'estimation de ces symboles et les calculs de la confiance sont faits en utilisant la propriété que l'état du codeur est connu en fin de paquet. L'association de la donnée estimée et de la confiance permet de calculer un symbole estimé sous un format équivalent à celui des symboles reçus. Ces symboles sont notés sk. Il y a, donc, 2N symboles estimés. Un calcul 73 de l'information extrinsèque Zk est ensuite réalisé. Si le décodeur 72 est un décodeur de Viterbi, le calcul correspond aux opérations 83 et 87 de la figure 8, commentée par la suite.
On calcule donc x'k, fonction pondérée de Xk et Zk duale (relative à la donnée dupliquée). Chaque symbole x'k est ensuite enregistré dans une mémoire appelée mémoire finale 75. Les symboles Xk et yk sont transférés de la mémoire de réception à la mémoire finale sans traitement.
Dans la figure 7, la mémoire de réception 71 doit fournir les X et Yrk utiles au décodeur 72 ainsi que les Xπ nécessaires aux calculs 73 de l'information extrinsèque et de l'estimation 74 des symboles. Il est sous-entendu que le système de la gestion de mémoire est intégré dans le bloc appelé mémoire de réception 71.
Deux structures d'implémentation du procédé de décodage peuvent être envisagées. La première est la structure de type pipe-line. Dans ce cas, il y a autant de décodeurs que d'itérations. La mémoire de réception est remplacée par la mémoire finale de l'itération précédente. Dans ce cas, ce sont les x'k qui sont transmis au décodeur 72.
La dernière itération restitue les données estimées au destinataire. Ces données sont calculées comme étant la somme de la sortie Sk relative à la donnée originale et de l'information extrinsèque duale Zk duale (c'est-à-dire correspondant à la donnée dupliquée). La seconde est une structure séquentielle, reposant sur l'utilisation répétée d'un unique décodeur. Elle est notamment bien adaptée aux communications à relativement bas débit, et permet de réaliser des décodeurs efficaces à faible coût de revient.
La figure 8 illustre un mode de mise en oeuvre de cette structure séquentielle. Les symboles Xj et yk issus du canal de transmission sont quantifiés sur q bits et rangés dans une mémoire MEMxy 81. Chaque donnée Xj est mémorisée deux fois, à des places identiques à celles qui ont servi au codage.
Dans une itération, le décodeur (MAP ou de Viterbi) 82 traite le bloc en 2.N périodes, à partir des informations x'k et yk. Lorsqu'une donnée de redondance yk n'est pas disponible, s'il y a eu poinçonnage à l'émission, le décodeur est alimenté par une valeur neutre ou "zéro analogique".
Les itérations se succèdent "à la volée", c'est-à-dire que le décodeur est alimenté sans interruption, les données relatives à l'itération p étant contiguës à celles relatives à l'itération p - 1. au début du traitement, puis ensuite toutes les 2.N périodes, le décodeur est forcé à l'état 0 (la métrique cumulée de l'état 0 est annulée et les autres métriques cumulées sont fixées à une forte valeur). Le traitement s'arrête à l'itération pré¬ programmée.
A la sortie du décodeur 82 deux types d'information sont élaborées à chaque itération : l'information extrinsèque Zk et l'estimation ej relative à la donnée d, codée. Chaque étape du processus itératif produit 2.N informations extrinsèques et N estimations. Dans le cas où le décodeur 82 est un décodeur de Viterbi, l'information extrinsèque est simplement calculée comme la différence 83 entre la sortie pondérée Sk, compressée par une loi logarithmique 87, et l'entrée x\ (le décodeur étant supposé sans latence pour simplifier). L'estimation e; est, elle, calculée comme la somme 84 de la sortie Sk relative à la donnée originale et de l'information extrinsèque Zk duale (relative à la donnée dupliquée). Les informations extrinsèques sont rangées dans une mémoire MEMz 85.
L'entrée x' k du décodeur relative à la donnée d est formée par la somme 86 du symbole Xk et de l'information extrinsèque Zk duale élaborée à l'itération précédente, pondérée 88 par le coefficient γ (à la première itération, la mémoire MEMz 85 est remplie par des valeurs neutres).
C'est-à-dire que si Xk est le symbole dont la place dans le codage correspond à la donnée originale, on lui rajoute l'information extrinsèque relative à la donnée dupliquée, et inversement. C'est cet échange croisé d'informations qui assure, au fil des itérations, la décroissance du taux d'erreurs sur la sortie estimée du décodeur.
Les éléments 810 et 811 assurent la transposition entre la donnée originale et la donnée dupliquée, aux instants voulus.
La performance du turbo-code en bloc convolutif est d'autant meilleure que N est élevé. Pour de faibles valeurs de N, c'est la corrélation des bruits affectant les informations Xk et Zk qui sont additionnées à l'entrée du décodeur, qui limite le pouvoir de correction du code. On conçoit en effet aisément que si ces deux estimations d'une même donnée sont erronées, la diversité inhérente au turbo-décodage s'en trouve forcément réduit. Une réponse à ce problème est donnée par la loi logarithmique 87 dont les effets sont d'empêcher une erreur de poids élevé de s'amplifier au cours du processus itératif. La loi logarithmique porte sur la valeur absolue et est de la forme :
Y =θ.log (l + x/θ) où θ est une constante choisie de manière empirique. Le double de la valeur absolue des symboles Xk non bruités semble être une bonne valeur pour θ.
Le coefficient de pondération γ est fixé à une valeur inférieure à l'unité et est ajusté selon le rendement de codage (γ est d'autant plus faible que le rendement est bas). Le turbo-code en bloc convolutif, tel que décrit ci-dessus, est construit autour de blocs d'information dont la longueur N est multiple de la période L du générateur pseudo¬ aléatoire.
Une manière simple de traiter des blocs de longueur N' quelconque est de retenir une valeur de N multiple de L, immédiatement supérieure à N' et de compléter les N' données à coder par N - N' valeurs binaires connues, par exemple N - N' '0'.
Evidemment, ces '0' ne sont pas transmis car la partie réceptrice connaît le nombre et la position de ces '0' d'appoint.
Une autre façon de procéder pour obtenir ces blocs dont la longueur est multiple de 4 (cas pratique courant) quand la période du générateur est de 5 (cas du polynôme 37) est la suivante : le codeur, toutes les 5 périodes, est alimenté par un '0', et corrélativement, le décodeur, toutes les 5 périodes, est forcé à une transition correspondant à une donnée '0'. On a alors N' = (4.N)/5. L'insertion des '0' d'appoint ne requiert pas nécessairement de périodes supplémentaires de traitement car, pour le codeur comme pour le décodeur, l'insertion d'un '0' peut être combinée (anticipée) avec l'insertion de la donnée le précédant.
On présente en figures 9A à 9E quelques résultats de simulation obtenus, à l'issue des itérations 1, 3, 5 et 7, dans les trois cas suivants : figures 9A et 9B : taux d'erreur binaire (BER) et taux d'erreur de trame (FER) avec N = 880 bits, R = 1/2, entrées x et y quantifiées sur 4 bits ; figures 9C et 9D : taux binaire et taux d'erreur de trame avec N = 220 bits, R = 1/2, entrées x et y quantifiées sur 4 bits ; figure 9E : comparaison avec le code BCH (127,64) lorsque N = 220 bits, R = 1/2, entrées x et y quantifiées sur 1 bit (décodage à décision ferme).
L'abscisse représente, soit le rapport signal à bruit Eb/No, soit le taux d'erreurs binaires en entrée du décodeur BERjn (BER: Binary Error Rate). L'ordonnée porte soit le taux d'erreurs binaires BER en sortie du décodeur, soit le taux d'erreurs de trames FER en sortie du décodeur (FER : Frame Error Rate). Dans les trois simulations, le polynôme du générateur pseudo-aléatoire est 37 (période L = 5), le polynôme générateur de la redondance est 25. Le décodeur élémentaire utilise l'algorithme de Viterbi modifié déjà mentionné. Le cas de la figure 9E est comparé au code BCH (127,64) de rendement très proche de 1/2 et dont le pouvoir de correction est t = 10 (voir l'article "procédé de décodage d'un code convolutif à maximum de vraisemblance et pondération des décisions, et décodeur correspondant" déjà cité).
Cette comparaison, bien que portant sur des blocs d'information de longueurs différentes, montre clairement que le code proposé, décodé en décision ferme, est plus performant que le code BCH, avec une complexité de décodage bien plus faible (dans sa version séquentielle). L'écart est encore plus marqué, bien sûr, si le turbo-décodeur fonctionne en décisions fines.
ANNEXE
Un codeur CSR est bâti autour d'un brasseur ("scrambler"), lui-même déduit d'un générateur pseudo-aléatoire, de longueur de mémoire m. Le polynôme du générateur est noté m
G(D) = l + ∑gj . DJ (figure S), D étant la variable symbolique de retard ("Delay"). La
7 = 1 longueur L de la séquence pseudo-aléatoire du générateur est donnée par la plus petite valeur possible du degré r du polynôme particulier P{D) = 1 + Dr multiple de G(D). Par exemple, si G(D) = 1 + D + D2 + D2 + Z)4, le premier polynôme P(D) multiple de G(D) est 1 + Ds. La longueur de la séquence est donc 5. On peut montrer que L est dans tous les cas inférieure ou égale à 2m - 1.
Théorème 1 :
Si G{D) divise 1 + D1, alors G(D) divise 1 + DLp, Vp entier > 1.
Preuve : La série arithmétique £ A vérifie dans l'algèbre classique :
*=o
Figure imgf000019_0001
et dans l'aleèbre binaire
Figure imgf000019_0002
1 + Ap est donc multiple de 1 + A, et pour A = D1, 1 + DLp est multiple de 1 + D1 '. Donc, Si G(D) divise 1 + DL, G(D) divise aussi 1 + DLp.
Dire qu'un polynôme P(D) est multiple de G(D) signifie en pratique que si la séquence binaire associée à P(D) est appliquée au codeur, à partir de l'état 0, celui-ci retrouvera l'état 0 à l'issue de la séquence.
Exemple :
Soit G(D) = \ + D + D2 + D3 + D\ G{D) divise 1 + D5. La séquence 100001 fait quitter l'état 0 du codeur à l'arrivée du premier '1' et l'y fait retourner à l'arrivée du second 'V. D'après le théorème 1, il en est de même pour toute séquence 100..001 où les deux '1' sont séparés par 5.p - l '0', Vp entier > 1.

Claims

REVENDICATIONS
1 . Procédé de codage convolutif de blocs formés chacun d'un nombre N prédéterminé de données source (dj), caractérisé en ce que chacune desdites données source (dj) est introduite deux fois dans un même codeur convolutif (22 ; 31) mettant en oeuvre un polynôme générateur de période L, selon un ordre tel que les deux introductions d'une même donnée source dj sont séparées par l'introduction de (pj.L)-l autres données source, ps étant un nombre entier non nul.
2 . Procédé de codage selon la revendication 1 , caractérisé en ce que lesdites données source sont introduites dans ledit codeur une première fois (données dites originales) (A) selon leur ordre naturel, puis une seconde fois (données dites dupliquées) (B) selon un ordre tel que les deux introductions d'une même donnée source dj sont séparées par l'introduction de (pj.L)-l autres données source, pj étant un nombre entier non nul.
3 . Procédé de codage selon la revendication 2, caractérisé en ce que l'ordre d'introduction desdites données dupliquées est obtenu en : inscrivant (62) les données source ligne à ligne dans une mémoire (21 ; 33) de taille N = ni * nc, n] étant le nombre de lignes, multiple de L, et nc étant le nombre de colonnes, premier avec L ; et - lisant (63) lesdites données dupliquées colonne par colonne, en parcourant sur une colonne donnée, à l'instant k2, les lignes successives jusqu'à ce qu'on trouve une donnée qui a été utilisée une première fois (donnée originale) à l'instant kj tel que k]-k2 soit multiple de L.
4 . Procédé de codage selon l'une quelconque des revendications 1 à 3, caractérisé en ce qu'il s'agit d'un codage systématique, lesdites données source étant systématiquement émises conjointement aux données délivrées par ledit codeur.
5 . Procédé de codage selon l'une quelconque des revendications 1 à 4, caractérisé en ce qu'il met en oeuvre un poinçonnage (23) des données délivrées par ledit codeur.
6 . Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que le nombre N de données source formant un bloc est un multiple de la période L du polynôme générateur dudit codeur.
7 . Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que, le nombre N de données source formant un bloc n'étant pas un multiple de la période L du polynôme générateur dudit codeur, on complète chacun desdits blocs par un nombre N'-N de valeurs fixes, N' étant le multiple de L immédiatement supérieur à N.
8 . Dispositif de codage convolutif de blocs formés chacun d'un nombre N prédéterminé de données source, caractérisé en ce qu'il comprend des moyens (21 ; 32, 33) pour introduire deux fois chacune desdites données source dans un même codeur convolutif (22 ; 31 ) mettant en oeuvre un polynôme générateur de période L, selon un ordre tel que les deux introductions d'une même donnée source dj sont séparées par l'introduction de (p,.L)- l autres données source, p; étant un nombre entier non nul.
9 . Procédé de décodage d'un bloc codé formé de données codées, correspondant à un bloc source formé d'un nombre N prédéterminé de données source, caractérisé en ce que ledit bloc source a subi un codage tel que chacune desdites données source a été introduite deux fois dans un même codeur convolutif mettant en oeuvre un polynôme générateur de période L, selon un ordre tel que les deux introductions d'une même donnée source d, sont séparées par l'introduction de (pj.L)-l autres données source, pi étant un nombre entier non nul, et en ce qu'il comprend une étape (72 ; 82) de décodage à maximum de vraisemblance tenant compte d'une part des données codées reçues, et d'autre part du fait que l'état initial et l'état final du codeur sont connus.
10. Procédé de décodage selon la revendication 9, caractérisé en ce que, ledit codage étant un codage systématique, il met en oeuvre une procédure itérative comprenant : - duplication des symboles originaux reçus, et association à chacun d'eux de l'une ou l'autre des données de redondance reçus, de façon à former 2.N couples d'informations à décoder ; une première itération, comprenant les étapes suivantes : initialisation du décodage, de façon à prendre en compte l'état initial du codeur ; détermination, pour chaque couple d'information, d'une estimation Sk de celle-ci et d'une information extrinsèque Zk représentative de la confiance associée à ladite estimation, en fonction des données codées et des données de redondance reçues, et en tenant compte du fait que l'état initial et l'état final du codeur sont connus ; au moins une itération intermédiaire, répétant l'étape de détermination, en remplaçant les données source reçues par une combinaison pondérée des données source reçues et de l'information extrinsèque duale ; une dernière itération, délivrant une estimation définitive des données reçues, correspondant à la sommation (84) de l'estimation obtenue à partir de l'un des symboles de redondance avec l'information extrinsèque obtenue à partir de l'autre symbole de redondance, pour chaque symbole source.
1 1 . Procédé selon la revendication 10, caractérisé en ce qu'on applique une loi logarithmique (87) sur la valeur absolue sur les estimations produites lors desdites étapes de détermination.
12. Procédé selon l'une quelconque des revendications 10 et 11, caractérisé en ce que lesdites itérations sont mises en oeuvre en : réutilisant plusieurs fois un décodeur unique, à un rythme supérieur à celui des données transmises ; cascadant plusieurs modules de décodage, correspondant chacun à une itération.
13. Décodeur d'un bloc codé formé de données codées, correspondant à un bloc source formé d'un nombre N prédéterminé de données source, caractérisé en ce que ledit bloc source a subi un codage tel que chacune desdites données source a été introduite deux fois dans un même codeur convolutif mettant en oeuvre un polynôme générateur de période L, selon un ordre tel que les deux introductions d'une même donnée source d, sont séparées par l'introduction de (p,.L)-l autres données source, pj étant un nombre entier non nul, et en ce que ledit décodeur comprend des moyens (72 ; 82) de décodage à maximum de 97/38495 PC17FR97/00607
21
vraisemblance tenant compte d'une part des données codées reçues, et d'autre part du fait que l'état initial et l'état final du codeur sont connus.
PCT/FR1997/000607 1996-04-03 1997-04-03 Procede et dispositif de codage convolutif de blocs de donnees, et procede et dispositif de decodage correspondants WO1997038495A1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE69700532T DE69700532T2 (de) 1996-04-03 1997-04-03 Verfahren und vorrichtung zur faltungskodierung und -dekodierung von datenblöcken
US09/155,819 US6119264A (en) 1996-04-03 1997-04-03 Data block convolutional coding device and method, and corresponding decoding method and device
JP53591497A JP3791013B2 (ja) 1996-04-03 1997-04-03 データ・ブロックの畳み込み符号化方法及び装置及び対応する復号方法及び装置
EP97919481A EP0891656B1 (fr) 1996-04-03 1997-04-03 Procede et dispositif de codage convolutif de blocs de donnees, et procede et dispositif de decodage correspondants

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9604485A FR2747255B1 (fr) 1996-04-03 1996-04-03 Procede et dispositif de codage convolutif de blocs de donnees, et procede et dispositif de decodage correspondants
FR96/04485 1996-04-03

Publications (1)

Publication Number Publication Date
WO1997038495A1 true WO1997038495A1 (fr) 1997-10-16

Family

ID=9491075

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR1997/000607 WO1997038495A1 (fr) 1996-04-03 1997-04-03 Procede et dispositif de codage convolutif de blocs de donnees, et procede et dispositif de decodage correspondants

Country Status (6)

Country Link
US (1) US6119264A (fr)
EP (1) EP0891656B1 (fr)
JP (1) JP3791013B2 (fr)
DE (1) DE69700532T2 (fr)
FR (1) FR2747255B1 (fr)
WO (1) WO1997038495A1 (fr)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2785744A1 (fr) * 1998-11-09 2000-05-12 Canon Kk Procede et dispositif de codage de sequences de donnees, procede et dispositif de decodage associes
FR2785741A1 (fr) * 1998-11-09 2000-05-12 Canon Kk Dispositif et procede de codage et d'entrelacement pour des turbocodes series ou hybrides
JP2000156646A (ja) * 1998-11-09 2000-06-06 Canon Inc 符号化装置及び方法、復号装置及び方法、信号処理装置、デ―タ伝送装置、無線通信装置、ネットワ―クステ―ション、並びに情報処理装置及び方法
EP1170872A2 (fr) * 2000-07-06 2002-01-09 Andrew William Hunt Code et structure de code décodable de façon itérative, encodeur, méthode de codage ainsi que décodeur et méthode de décodage associés
US6400290B1 (en) 1999-11-29 2002-06-04 Altera Corporation Normalization implementation for a logmap decoder
WO2003050992A1 (fr) * 2001-12-10 2003-06-19 Telefonaktiebolaget Lm Ericsson (Publ) Procedes et appareils d'adaptation et de decodage de debit
WO2003094357A2 (fr) * 2002-05-06 2003-11-13 Actelis Networks Israel Ltd. Correction aval des erreurs souple
US6671335B1 (en) 1998-12-31 2003-12-30 Samsung Electronics Co., Ltd Decoder having a gain controller in a mobile communication system
US6944803B2 (en) 2000-07-06 2005-09-13 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry Through The Communications Research Centre Canada Code structure, encoder, encoding method, and associated decoder and decoding method and iteratively decodable code structure, encoder, encoding method, and associated iterative decoder and iterative decoding method
CN100466502C (zh) * 1998-04-18 2009-03-04 三星电子株式会社 通信系统的信道编码方法

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19736625C1 (de) * 1997-08-22 1998-12-03 Siemens Ag Verfahren zur Datenübertragung auf Übertragungskanälen in einem digitalen Übertragungssystem
US6625234B1 (en) * 1998-12-10 2003-09-23 Nortel Networks Limited Efficient implementations of proposed turbo code interleavers for third generation code division multiple access
DE69934606T2 (de) * 1999-02-26 2007-10-04 Fujitsu Ltd., Kawasaki Turbodekoder und verschachtel-/endschachtelapparat
EP1160989A4 (fr) * 1999-03-01 2005-10-19 Fujitsu Ltd Dispositif de turbo-decodage
US6543013B1 (en) * 1999-04-14 2003-04-01 Nortel Networks Limited Intra-row permutation for turbo code
KR100300306B1 (ko) * 1999-05-28 2001-09-26 윤종용 무선통신 시스템에서 채널 적응형 맵 채널 복호 장치 및 방법
WO2001043310A2 (fr) * 1999-12-03 2001-06-14 Broadcom Corporation Apprentissage intercalaire pour modulation turbo-codee
EP1234420A2 (fr) * 1999-12-03 2002-08-28 Broadcom Corporation Eminceur de viterbi pour turbo-codes
EP1364479B1 (fr) 2000-09-01 2010-04-28 Broadcom Corporation Recepteur de signaux de satellite et procede correspondant
EP1329025A1 (fr) * 2000-09-05 2003-07-23 Broadcom Corporation Communication quasiment sans erreur (qef) effectuee au moyen de turbocodes
US7383485B2 (en) * 2000-09-12 2008-06-03 Broadcom Corporation Fast min*- or max*-circuit in LDPC (low density parity check) decoder
US7242726B2 (en) 2000-09-12 2007-07-10 Broadcom Corporation Parallel concatenated code with soft-in soft-out interactive turbo decoder
US7360146B1 (en) 2002-08-15 2008-04-15 Broadcom Corporation Inverse function of min*:min*- (inverse function of max*:max*-)
US6518892B2 (en) 2000-11-06 2003-02-11 Broadcom Corporation Stopping criteria for iterative decoding
FR2822315B1 (fr) * 2001-03-19 2003-06-06 Mitsubishi Electric Inf Tech Procede et dispositif d'optimisation, sous contrainte de performances, de la taille de blocs de donnees codees
US7010052B2 (en) * 2001-04-16 2006-03-07 The Ohio University Apparatus and method of CTCM encoding and decoding for a digital communication system
CN1471763A (zh) * 2001-08-28 2004-01-28 连宇通信有限公司 对源数据元素进行纠错编码的方法及相应的迭代译码器
EP1317070A1 (fr) * 2001-12-03 2003-06-04 Mitsubishi Electric Information Technology Centre Europe B.V. Méthode pour obtenir un code correcteur d'erreurs aux paramètres désirés à partir d'un turbo-code de blocs
US7472335B1 (en) 2002-05-31 2008-12-30 Broadcom Corporation Symbol by symbol variable code rate capable communication device
US7062700B2 (en) * 2002-05-31 2006-06-13 Broadcom Corporation 16 QAM and 16 APSK TTCM (Turbo Trellis Coded Modulation) with minimum bandwidth efficiency of 3 bit/s/Hz using a rate 2/4 constituent encoder
US7093187B2 (en) * 2002-05-31 2006-08-15 Broadcom Corporation Variable code rate and signal constellation turbo trellis coded modulation codec
US7657822B2 (en) * 2002-05-31 2010-02-02 Broadcom Corporation True bit level decoding of TTCM (turbo trellis code modulation) of variable rates and signal constellations
US7210092B1 (en) 2002-05-31 2007-04-24 Broadcom Corporation Symbol by symbol variable constellation type and/or mapping capable communication device
US7111226B1 (en) 2002-05-31 2006-09-19 Broadcom Corporation Communication decoder employing single trellis to support multiple code rates and/or multiple modulations
US7032164B2 (en) * 2002-05-31 2006-04-18 Broadcom Corporation Efficient design to calculate extrinsic information for soft-in-soft-out (SISO) decoder
US7321633B1 (en) 2002-05-31 2008-01-22 Broadcom Corporation Determination of variable code rates for a rate control sequence
US7107512B2 (en) * 2002-05-31 2006-09-12 Broadcom Corporation TTCM decoder design
US7188301B1 (en) 2002-05-31 2007-03-06 Broadcom Corporation Parallel concatenated turbo code modulation encoder
US6954832B2 (en) * 2002-05-31 2005-10-11 Broadcom Corporation Interleaver for iterative decoder
US7137059B2 (en) * 2002-11-20 2006-11-14 Broadcom Corporation Single stage implementation of min*, max*, min and /or max to perform state metric calculation in SISO decoder
US7065695B2 (en) * 2002-05-31 2006-06-20 Broadcom Corporation Metric calculation design for variable code rate decoding of broadband trellis, TCM, or TTCM
US7085985B2 (en) * 2002-05-31 2006-08-01 Broadcom Corporation Close two constituent trellis of a turbo encoder within the interleave block
US7729373B2 (en) * 2002-07-02 2010-06-01 Broadcom Corporation Modified range requests enabling bandwidth requests and state of health reporting
US7694210B2 (en) * 2002-07-31 2010-04-06 Broadcom Corporation Turbo-coding DOCSIS information for satellite communication
US7447985B2 (en) * 2002-08-15 2008-11-04 Broadcom Corporation Efficient design to implement min**/min**- or max**/max**- functions in LDPC (low density parity check) decoders
US7409628B2 (en) * 2002-08-15 2008-08-05 Broadcom Corporation Efficient design to implement LDPC (Low Density Parity Check) decoder
US7178080B2 (en) * 2002-08-15 2007-02-13 Texas Instruments Incorporated Hardware-efficient low density parity check code for digital communications
US7395487B2 (en) * 2002-08-15 2008-07-01 Broadcom Corporation Common circuitry supporting both bit node and check node processing in LDPC (Low Density Parity Check) decoder
US7738596B2 (en) * 2002-09-13 2010-06-15 Broadcom Corporation High speed data service via satellite modem termination system and satellite modems
US7765577B2 (en) 2002-12-27 2010-07-27 Broadcom Corporation Turbo coding for upstream and downstream transmission in cable systems
US7239667B2 (en) * 2003-03-18 2007-07-03 Broadcom Corporation 8 PSK rotationally invariant turbo trellis coded modulation without parallel transitions
US7139959B2 (en) * 2003-03-24 2006-11-21 Texas Instruments Incorporated Layered low density parity check decoding for digital communications
US7221714B2 (en) 2003-05-12 2007-05-22 Broadcom Corporation Non-systematic and non-linear PC-TCM (Parallel Concatenate Trellis Coded Modulation)
US7340669B2 (en) * 2005-03-11 2008-03-04 Via Telecom Co., Ltd. Memory efficient streamlined transmitter with a multiple instance hybrid ARQ
US7447984B2 (en) 2005-04-01 2008-11-04 Broadcom Corporation System correcting random and/or burst errors using RS (Reed-Solomon) code, turbo/LDPC (Low Density Parity Check) code and convolutional interleave
US7447981B2 (en) * 2005-04-01 2008-11-04 Broadcom Corporation System correcting random and/or burst errors using RS (Reed-Solomon) code, turbo/LDPC (Low Density Parity Check) code and convolutional interleave
US8091009B2 (en) * 2006-03-23 2012-01-03 Broadcom Corporation Symbol by symbol map detection for signals corrupted by colored and/or signal dependent noise
US7689896B2 (en) * 2006-06-21 2010-03-30 Broadcom Corporation Minimal hardware implementation of non-parity and parity trellis
US20080092018A1 (en) * 2006-09-28 2008-04-17 Broadcom Corporation, A California Corporation Tail-biting turbo code for arbitrary number of information bits
US8074155B2 (en) * 2006-09-28 2011-12-06 Broadcom Corporation Tail-biting turbo coding to accommodate any information and/or interleaver block size
US7882416B2 (en) * 2006-10-10 2011-02-01 Broadcom Corporation General and algebraic-constructed contention-free memory mapping for parallel turbo decoding with algebraic interleave ARP (almost regular permutation) of all possible sizes
US8065587B2 (en) 2006-10-10 2011-11-22 Broadcom Corporation Reduced complexity ARP (almost regular permutation) interleaves providing flexible granularity and parallelism adaptable to any possible turbo code block size
US7831894B2 (en) 2006-10-10 2010-11-09 Broadcom Corporation Address generation for contention-free memory mappings of turbo codes with ARP (almost regular permutation) interleaves
US7827473B2 (en) 2006-10-10 2010-11-02 Broadcom Corporation Turbo decoder employing ARP (almost regular permutation) interleave and arbitrary number of decoding processors
US20080133997A1 (en) * 2006-12-01 2008-06-05 Broadcom Corporation, A California Corporation Turbo decoder employing ARP (almost regular permutation) interleave and inverse thereof as de-interleave
US7975203B2 (en) 2007-01-17 2011-07-05 Broadcom Corporation Quadratic polynomial permutation (QPP) interleaver providing hardware savings and flexible granularity adaptable to any possible turbo code block size
US8065588B2 (en) 2007-01-17 2011-11-22 Broadcom Corporation Formulaic flexible collision-free memory accessing for parallel turbo decoding with quadratic polynomial permutation (QPP) interleave
US7992075B2 (en) * 2007-03-19 2011-08-02 Intel Corporation Arrangements for encoding and decoding digital data
WO2008118931A2 (fr) * 2007-03-27 2008-10-02 Shell Oil Company Communication à l'intérieur d'un puits, module de fond de trou, et méthode de communication
US20080256424A1 (en) * 2007-04-13 2008-10-16 Broadcom Corporation Information bit puncturing for turbo coding with parameter selectable rate matching tailored to lower eb/no without degrading bler (block error rate) performance
US8904265B2 (en) * 2007-05-02 2014-12-02 Broadcom Corporation Optimal period rate matching for turbo coding
US8069387B2 (en) * 2007-07-16 2011-11-29 Broadcom Corporation Turbo coding having combined turbo de-padding and rate matching de-padding
US8069400B2 (en) * 2007-08-13 2011-11-29 Broadcom Corporation Optimal circular buffer rate matching for turbo code
DE102007053091A1 (de) * 2007-11-07 2009-05-14 Rohde & Schwarz Gmbh & Co. Kg Verfahren und Vorrichtung zur Decodierung von faltungscodierten Signalen
JP2013523043A (ja) 2010-03-22 2013-06-13 エルアールディシー システムズ、エルエルシー ソースデータセットの完全性を識別及び保護する方法
US11082157B2 (en) 2019-10-29 2021-08-03 Ciena Corporation Assessing operating conditions of a receiver in a communication network based on forward error correction decoding properties

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4293951A (en) * 1979-03-16 1981-10-06 Communications Satellite Corporation Method and apparatus for encoding/decoding a convolutional code to a periodic convolutional code block

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2675971B1 (fr) * 1991-04-23 1993-08-06 France Telecom Procede de codage correcteur d'erreurs a au moins deux codages convolutifs systematiques en parallele, procede de decodage iteratif, module de decodage et decodeur correspondants.
FR2675968B1 (fr) * 1991-04-23 1994-02-04 France Telecom Procede de decodage d'un code convolutif a maximum de vraisemblance et ponderation des decisions, et decodeur correspondant.

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4293951A (en) * 1979-03-16 1981-10-06 Communications Satellite Corporation Method and apparatus for encoding/decoding a convolutional code to a periodic convolutional code block

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WANG Q ET AL: "An efficient maximum likelihood decoding algorithm for generalized tail biting convolutional codes including quasicyclic codes", IEEE TRANSACTIONS ON COMMUNICATIONS, AUG. 1989, USA, vol. 37, no. 8, August 1989 (1989-08-01), ISSN 0090-6778, pages 875 - 879, XP000047627 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100466502C (zh) * 1998-04-18 2009-03-04 三星电子株式会社 通信系统的信道编码方法
US6638318B1 (en) 1998-11-09 2003-10-28 Canon Kabushiki Kaisha Method and device for coding sequences of data, and associated decoding method and device
FR2785741A1 (fr) * 1998-11-09 2000-05-12 Canon Kk Dispositif et procede de codage et d'entrelacement pour des turbocodes series ou hybrides
JP2000156646A (ja) * 1998-11-09 2000-06-06 Canon Inc 符号化装置及び方法、復号装置及び方法、信号処理装置、デ―タ伝送装置、無線通信装置、ネットワ―クステ―ション、並びに情報処理装置及び方法
US6560362B1 (en) 1998-11-09 2003-05-06 Canon Kabushiki Kaisha Encoding and interleaving device and method for serial or hybrid turbocodes
FR2785744A1 (fr) * 1998-11-09 2000-05-12 Canon Kk Procede et dispositif de codage de sequences de donnees, procede et dispositif de decodage associes
US6671335B1 (en) 1998-12-31 2003-12-30 Samsung Electronics Co., Ltd Decoder having a gain controller in a mobile communication system
US6400290B1 (en) 1999-11-29 2002-06-04 Altera Corporation Normalization implementation for a logmap decoder
EP1170872A3 (fr) * 2000-07-06 2003-06-04 Capacity Research Digital Communication Technology Inc. Code et structure de code décodable de façon itérative, encodeur, méthode de codage ainsi que décodeur et méthode de décodage associés
US6944803B2 (en) 2000-07-06 2005-09-13 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry Through The Communications Research Centre Canada Code structure, encoder, encoding method, and associated decoder and decoding method and iteratively decodable code structure, encoder, encoding method, and associated iterative decoder and iterative decoding method
EP1170872A2 (fr) * 2000-07-06 2002-01-09 Andrew William Hunt Code et structure de code décodable de façon itérative, encodeur, méthode de codage ainsi que décodeur et méthode de décodage associés
WO2003050992A1 (fr) * 2001-12-10 2003-06-19 Telefonaktiebolaget Lm Ericsson (Publ) Procedes et appareils d'adaptation et de decodage de debit
WO2003094357A2 (fr) * 2002-05-06 2003-11-13 Actelis Networks Israel Ltd. Correction aval des erreurs souple
WO2003094357A3 (fr) * 2002-05-06 2004-01-08 Actelis Networks Israel Ltd Correction aval des erreurs souple
US7509563B2 (en) 2002-05-06 2009-03-24 Actelis Networks (Israel) Ltd. Flexible forward error correction

Also Published As

Publication number Publication date
JP2000508849A (ja) 2000-07-11
DE69700532T2 (de) 2000-05-04
EP0891656B1 (fr) 1999-09-15
DE69700532D1 (de) 1999-10-21
FR2747255B1 (fr) 1998-07-10
FR2747255A1 (fr) 1997-10-10
EP0891656A1 (fr) 1999-01-20
US6119264A (en) 2000-09-12
JP3791013B2 (ja) 2006-06-28

Similar Documents

Publication Publication Date Title
EP0891656B1 (fr) Procede et dispositif de codage convolutif de blocs de donnees, et procede et dispositif de decodage correspondants
EP0511141B1 (fr) 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 correspondants
EP0448492B1 (fr) Dispositif de transmission de données numériques à au moins deux niveaux de protection, et dispositif de réception correspondant
Berrou Codes et turbocodes
EP0808538B1 (fr) Dispositif de reception de signaux numeriques a structure iterative, module et procede correspondants
EP2815508B1 (fr) Procede de transmission de mots de code correcteur d'erreur non binaire avec modulation ccsk, signal et dispositif correspondant
FR2815199A1 (fr) Procedes de turbocodage circulaire de grande distance minimale, et systemes pour leur mise en oeuvre
FR2804260A1 (fr) Procede de transmission numerique de type a codage correcteur d'erreurs
EP0995272A1 (fr) Decodage iteratif de codes produits
EP0848524A1 (fr) MAQ à codage perforé en trellis, avec décodage itératif
EP1959572B1 (fr) Procédé de décodage à passage de messages et à convergence forcée
EP3373489B1 (fr) Système d'émission/réception utilisant une modulation conjointe orthogonale-linéaire
FR2790621A1 (fr) Dispositif et procede d'entrelacement pour turbocodage et turbodecodage
EP1128589B1 (fr) Critère d'interruption pour un décodeur turbo
EP1668794A1 (fr) Procede d emission multi-antennes d un signal par codes espace-temps en bloc, procede de reception et signal correspondant
EP1345350A1 (fr) Procédé de modulation et de détermination du nombre de bits à transmettre sur un canal de transmission
FR2805102A1 (fr) Procedes et dispositifs d'emission et de reception d'information, et systemes les mettant en oeuvre
EP2415193B1 (fr) Procédé et dispositif de modulation mettant en oeuvre une modulation différentielle, procédé et dispositif de démodulation, signal et produits programme d'ordinateur correspondants
EP0917294B1 (fr) Système de transmission numérique, décodeur, et procédé de décodage
EP1754311B1 (fr) Systeme de compensation de dephasage pour turbo decodeur
EP0774840A1 (fr) Procédé de transmission d'une séquence de bits d'information avec protection sélective contre les erreurs de transmission, procédés de codage et de correction pouvant être mis en oeuvre dans un tel procédé de transmission
FR2805418A1 (fr) Procede de transmission numerique de type a codage correcteur d'erreurs
FR2972878A1 (fr) Procede d'encodage correcteur d'erreur, procede de decodage et dispositifs associes.
FR2967320A1 (fr) Procede et dispositif de decodage de donnees recues dans des trames
FR2829329A1 (fr) Procedes de turbocodage a entrelaceurs verrous, et systemes pour leur mise en oeuvre

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 09155819

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 1997919481

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1997919481

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 1997919481

Country of ref document: EP