WO1999057816A1 - Decodage iteratif de codes produits - Google Patents

Decodage iteratif de codes produits Download PDF

Info

Publication number
WO1999057816A1
WO1999057816A1 PCT/FR1999/001018 FR9901018W WO9957816A1 WO 1999057816 A1 WO1999057816 A1 WO 1999057816A1 FR 9901018 W FR9901018 W FR 9901018W WO 9957816 A1 WO9957816 A1 WO 9957816A1
Authority
WO
WIPO (PCT)
Prior art keywords
word
code
received
firm
components
Prior art date
Application number
PCT/FR1999/001018
Other languages
English (en)
Inventor
Fabien Buda
Juing Fang
Original Assignee
Alcatel
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 Alcatel filed Critical Alcatel
Priority to KR1020007000037A priority Critical patent/KR20010015542A/ko
Priority to BR9906417-0A priority patent/BR9906417A/pt
Priority to AU35256/99A priority patent/AU3525699A/en
Priority to US09/446,152 priority patent/US6460162B1/en
Priority to DE69936908T priority patent/DE69936908T2/de
Priority to EP99916954A priority patent/EP0995272B1/fr
Priority to JP55498899A priority patent/JP4185167B2/ja
Publication of WO1999057816A1 publication Critical patent/WO1999057816A1/fr

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 using block codes
    • H03M13/2909Product 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/2948Iterative 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3776Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using a re-encoding step during the decoding process
    • 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/45Soft decoding, i.e. using symbol reliability information
    • 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/45Soft decoding, i.e. using symbol reliability information
    • H03M13/451Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]

Definitions

  • the present invention relates to a process for iterative decoding of product codes.
  • the invention also relates to a transmission method as well as to a transmission system implementing such a decoding method.
  • the invention relates to the decoding of product codes from linear codes to blocks. It applies to the field of transmissions, for channel coding.
  • a typical transmission channel includes a binary source, an encoder, a modulator that transmits in a channel, a demodulator at channel output, and a decoder that provides the binary signal.
  • the purpose of channel coding is to reduce the power required to achieve a given bit error rate.
  • the French patent application filed on October 09, 1 997 under the number 971 2594, under the title "Block coding method by product code applicable in particular to the coding of an ATM cell" gives a description of the basic concepts of transmission and channel coding, which can be referred to for more details.
  • the invention relates to channel decoding, the other elements of the transmission system - such as source coding and demodulation modulation used as a function of the transmission medium - are not the subject of further explanation.
  • a code C] is generally characterized by a triplet (ni, k], d "
  • k] is the number of bits at the input of the code
  • n] is the number of bits at the output of the code
  • dl is the distance minimum of Hamming of the code.
  • ç) provides a t-tuplet (x "
  • the successive application of two codes C] and C2 is called product code, as follows.
  • the application of such a product code makes it possible to go from kl .k2 bits to ni .n2 bits, with ni .n2 - I ⁇ l - 2 bits of redundancy If the codes are linear, we thus obtain n2 lines of words of the code C l, or neither columns of words of the code of C2-
  • the product code is a code presenting the parameters (ni .n2; kl -k2; d " l -d2) -
  • the encoding order is indifferent, and the same results are obtained by first coding the lines, as described above, or by first coding the columns.
  • Such product codes are described in the literature for channel coding. Requirement above, or Figure 2 of FR-A-2 71 2 760 explain in detail the principle of coding by such a product code.
  • Decoding consists in determining which word of the product code C l .C2 correspond to these flexible values, according to a certain performance criterion. If the noise is a white Gaussian additive noise, the optimal solution consists in searching for the word of the product code which minimizes the Euclidean distance to the flexible word received R. This criterion of maximum likelihood is in practice impossible, since the product k ] .k2 commonly exceeds a few hundred.
  • this document proposes: - to identify the p least reliable components of the flexible word received;
  • the construction of the q binary words and their decoding according to this algorithm is an ineffective operation: the q words generated are words of the code C2 (or C l), but are not necessarily distinct. At the output of the decoder, a number q ′ of separate code words is obtained which is less than the number q of words generated.
  • this method only works for codes for which there is an algebraic decoder. The implementation of algebraic decoders requires calculations in Welsh bodies and a complex architecture.
  • Decoding product codes is not a mathematical problem, but an important technical problem in the field of transmissions. It applies directly to the decoding of the values of the bits or product code words received at the output of the demodulator of a transmission channel.
  • the invention proposes a decoding method with flexible input and flexible output of a word (s) of a linear block code of dimension k and of length n, received from a transmission channel, comprising the steps de - generation of a list of firm words (yb) of the code close to the code word received (s), by coding a list of most likely k-tuples; - calculation of the j-th component of the flexible output word by difference between the metrics on the one hand of the nearest generated code word, and on the other hand, and of the closest generated code word having a j- i th opposite component.
  • the most likely k-tuples are obtained by firm approximation of the components of the received word and by changing the components of the least reliable
  • each of the k-tuples in the list of k-tuples is obtained by:
  • the verification step when it is negative, is followed by a step of modifying the permutation.
  • each of the k-tuples of the list of k-tuples is obtained by: - classification in order of reliability of the k first components of the code word received, by a permutation (T);
  • the j-th component of the flexible output word is calculated, when there is no nearest generated code word having an opposite j-th component, by difference between the metrics of one part of the nearest generated code word and the other part of the nearest generated code word
  • the computation of the j-th component of the flexible output word is carried out, when there is no closest generated code word having a j-th opposite component, by adding to the j-th component of the word received by a coefficient of the sign of the j-th component of the code word closest to the word received.
  • the word received is assigned an additive and Gaussian white noise.
  • the subject of the invention is also a method of decoding with flexible input and flexible output of a word (s) of a linear block code of dimension k and of length n, received from a transmission channel, comprising the steps of
  • the most likely k-tuples are obtained by firm approximation of the most reliable components of the received word and by changing the least reliable.
  • the most likely k-tuples are obtained by firm approximation of the most reliable components of the word obtained in the step replacement and replacement of the least reliable components.
  • the received word is assigned an additive and Gaussian white noise.
  • the subject of the invention is also a method of iterative decoding of a word (R) of a product code received from a transmission channel, comprising for at least one iteration, decoding with flexible input and flexible output of lines or columns of said product code word, according to such a method.
  • FIG. 1 a flowchart of a first embodiment of a flexible input and flexible output decoding method implemented in the invention
  • FIG. 2 a flowchart of a second embodiment of a flexible input and flexible output decoding method implemented in the invention
  • - Figure 3 a flowchart of a third embodiment of a decoding method with flexible input and flexible output implemented in the invention
  • FIG. 1 shows a flowchart of a first embodiment of a flexible input and flexible output decoding method implemented in the invention;
  • FIG. 1 shows the steps necessary for the flexible output decoding of a flexible word received on a line or a column of the product code word received.
  • R ⁇ r ⁇ j ⁇ the flexible product code word received from the transmission channel, 1 ⁇ i ⁇ n " j, 1 ⁇ j ⁇ n2- This flexible word corresponds to transmission over the channel of a binary or firm word of the product code C2.
  • a second step 2 it is verified that the last kl components of the image T (sj) of sj in the permutation make it possible to find the remaining ni -kl; this can be done by applying the permutation T to the columns of the parity matrix of the code C l, and by checking that the last ni -kl columns of the permuted matrix obtained are independent. If they are not, we modify the permutation T, so as to obtain ni -kl last independent columns when we apply the permutation to the columns of the parity matrix.
  • a fourth step 4 we consider the kl -m remaining components among the last kl components. A firm decision is made for each of these components, that is to say that each flexible component is assigned a firm or binary value. We can for example simply assign to each component its sign.
  • a set of binary words i ⁇ tj, 1 ⁇ i ⁇ kl ⁇ b, with b ⁇ 2 m, is reconstituted from the results of the third and fourth steps.
  • each word obtained in step 5 is an assembly or a concatenation of the m components created in step 3 and the kl -m components obtained in step 4.
  • the coding is applied to them, which in the space of the permuted words corresponds to the coding C l.
  • One method to do this coding is to use the parity matrix H of the code C l.
  • the permutation T associated with the sorting of the components will be applied to the parity matrix H of the code.
  • the (ni -kl) last columns of the permuted matrix H are not independent.
  • the verification proposed in step 2 can be done at the same time as the systematization of the permuted matrix.
  • the sixth step 6 calculate for each of the code words yb obtained, the Euclidean distance to the flexible code word if received.
  • the measurement of the reliability is effected simply by considering the Euclidean distance which has just been calculated; the threshold used to retain the code words, or the number of code words considered, depends on the total number of code words that have been generated in the preceding steps. In other words, the more code words we generate, the greater the number of code words we can keep.
  • step 7 the flexible decoding is carried out in the following manner. For a given component received if of order j given, we consider in the set of code words yb obtained, the closest code word yj + having as component of order j a bit at 1 and the code word nearest yj " having as bit component j a bit at - 1; we then calculate the value of the j th component of the decoded flexible word as the difference, multiplied by a normalization factor of a quarter between the metric cj.
  • step 6 It is possible, depending on the number of words generated in step 5 and retained in step 6, that there are not in the set of generated code words two code words having opposite bit values in the j-th position; this can be the case if the component of order j is received with great reliability. This can also be the case if a small number of code words have been generated or retained. We can then take as flexible value of the j-th component the difference between the weakest metric - that of the word in the list closest to the code word received - and the strongest metric - that of the word in the list furthest from the code word received.
  • the other metric is approximate or at least a lower bound is considered, taking the metric of the code word from the most distant list.
  • S; ( - and Sj j are the two sets of code words whose j th symbol is worth + 1 or - 1 respectively, (s, y) being the metric between the code word y found by the algorithm and the received word s , metric which in our case is the Euclidean distance between s the word received and y a code word, Euclidean distance which can to be in finite precision. This metric can if necessary be adapted to the cases of fading channels.
  • the steps described with reference to FIG. 1 make it possible to generate code words, which are close to the flexible word received on the transmission channel.
  • the method of FIG. 1 makes it possible, by finding a list of code words, to deduce therefrom a flexible value of each component of the code word received.
  • the complexity of the process depends on the number of code words generated in step 4, in other words the number of close code words generated. The higher this number, the more efficient the process, but the more complex it is to implement; the lower this number, the more efficient the process, and the less effective it is.
  • the choice of the number of code words determines the performance / complexity ratio of the process, and is adapted according to the circumstances. In practice, satisfactory results are obtained for an extended BCH code (31, 21) by retaining the best 19 code words among 50 words generated.
  • step 2 we can change not the least reliable components, but the components, which in combination, are the least reliable: thus if we consider for example the following components, with the corresponding modules: 11
  • FIG. 2 shows a flowchart of a second embodiment of a flexible input and flexible output decoding method implemented in the invention; again, we only considered in Figure 2 the example of a line. Again, the invention is described with reference to the systematic form of the code.
  • This word is an error tainted version of a code word C ⁇ (n i, kl, d l). This word contains kl bits supplied by the source encoder, and n i - l redundancy bits generated by the code C].
  • a first step 1 1 the first kl components received sj are sorted according to the increasing order of the modules
  • T the corresponding permutation.
  • a second step 12 we proceed as in the Chase algorithm, and we create firm vectors for the m, m ⁇ k ⁇ least reliable components.
  • the vectors generated are for example 00, 1 0, 01, 1 1.
  • the kl -m remaining components are considered and a firm decision is made for each of these components, that is to say that each flexible component is assigned a firm or binary value.
  • T " ' is the inverse of the permutation T of step 1.
  • Firm words y ⁇ uj, 1 ⁇ i ⁇ ni ⁇ of the code C l are thus obtained directly, which a priori are close to the word which has been sent on the transmission channel.
  • step 1 5 calculate for each of the code words yb obtained, the Euclidean distance to the flexible code word if received, or the metric of each code word yb with respect to the code word s received. In this step, it is only possible to keep among these code words the most reliable words, as explained above with reference to step 6 of FIG. 1.
  • step 1 6 flexible decoding is carried out, in the same way as in step 7 in FIG. 1.
  • the method of FIG. 2 compared to that of FIG. 1, makes it possible to avoid the step of verifying the independence of the last columns of the parity matrix. It has the drawback, compared with this same process of FIG. 1, of modifying components only among the first kl, and not among all the components of the code word. In other words, the method of FIG. 1 makes it possible to modify components of low reliability which are chosen not only from the information sent, but also from among the redundancy values. We thus manage to change the least reliable components among the most reliable kl of the code word as a whole, and not only among the first kl components of the word sent.
  • FIG. 3 shows a flowchart of a third embodiment of a flexible input and flexible output decoding method implemented in the invention.
  • One proceeds in this embodiment as in the first five steps of FIG. 1 to obtain a list of code words, and their metrics; this is symbolized in FIG. 3 by step 20.
  • step 21 the closest codeword ç *, i.e. the one with the weakest metric, and we initialize a current value j to 1.
  • step 22 the value of the j-th component sj of the code word s received is changed, to give it a value opposite to that of the j-th component of the code word ç * determined in step 21 , and this with very high reliability.
  • step 23 one proceeds, as in the first five steps of FIG. 1, to a search for a list of code words close to the received word modified at its j-th component, and to the calculation of their metrics.
  • step 24 the code word ç '* with the lowest metric is considered; the component of order j of ç '* is opposite to that of the code word ç * determined in step 21; the component j of order j of the flexible output word v is then calculated as the difference of the metrics of the words ç * and ç '* of steps 21 and 24, multiplied by the normalization factor 1/4.
  • the method of FIG. 3 gives better results insofar as there are necessarily found for each component two code words having for this component opposite bit values. However, this process is more complex, insofar as it is necessary to calculate lists of close words ni + 1 time and not only once.
  • the methods of Figures 1 to 3 therefore provide a flexible output for each row or each column of the product code word received from the transmission channel.
  • the decoding method of the invention uses this flexible decoding for iterative decoding, as explained with reference to FIG. 4, which shows an embodiment of such an iterative decoding. In an iteration, the method of one of FIGS. 1 to 3 is used, or a combination of these methods to obtain from the rows, and respectively columns, the current matrix, rows and columns respectively for the iteration. next.
  • a current matrix R is initialized, at the value received from the channel R, the value of the index i being initialized at 0. We then go to step 32.
  • step 32 coefficients a are determined for each value of i.
  • the coefficients in question form an increasing sequence (a,) of reals. Values of these coefficients are given by way of example for an extended BCH product code (31, 21) with reference to FIG. 6.
  • a first decoding along the lines of the matrix R, using one or the other of the flexible input and flexible output decoding algorithms of FIGS. 1 to 3 makes it possible to determine a new matrix L, each line of which is a word of the Cj code. We then go to step 36.
  • step 36 i is incremented by 1.
  • i is incremented by 1.
  • step 38 we continue by decoding the columns of the matrix R, using the one or the other of the flexible input and flexible output decoding algorithms of FIGS. 1 to 3. This decoding makes it possible to obtain a matrix L, each line of which is a code word C.
  • This step 38 corresponds with regard to the columns to step 34.
  • step 42 the number of iterations, equal to 1/2, is compared to the number of iterations desired. It should be noted that the whole comprising an decoding of the rows and a decoding of the columns is called iteration. If it is necessary to carry out an additional iteration, we go to step 34 and otherwise we go to step 46.
  • step 46 binary decisions are made on the matrix L,.], Obtained by decoding the columns in step 38. It is assumed that the matrix thus obtained 14
  • the diagram in FIG. 5 illustrates the operation of the decoder for a number of iterations equal to 4.
  • the method of the invention applies to all types of codes in linear blocks, such as BCH codes, including the Reed-Solomon, Reed-Muller, QR, cyclic codes, etc., without using algebraic decoders and complicated calculations in finite Welsh bodies.
  • FIG. 6 shows the results of a decoding of the extended BCH product code (31, 21), according to the method described with reference to FIG. 4 and to FIG. 1.
  • the error rate on the bits has been plotted on the ordinate, and the signal to noise ratio Eb / NO in dB on the abscissa.
  • the results obtained for the convolutional code 1/2 of constraint length 7 have been shown in the figure, and the results obtained after one, two, three or four decoding iterations according to the invention.
  • the figure shows a coding gain of almost 2 dB compared to the 1/2 code, and this from a BER of 10 '6 .
  • FIG. 7 shows corresponding results, for a BCH product code (30,
  • the BCH code (30, 19) is a shortened code of 2 obtained from the extended BCH code (31, 21).
  • the BCH code (30, 24) is a shortened code of 2 obtained from the extended BCH code (31, 26). We find a coding gain greater than 2dB, compared to the same reference code.
  • the iterative decoding of codes produced according to the invention provides better performance with the same number of iterations as the algorithm proposed in FR-A-2 71 2 760.
  • the present invention is not limited to the examples and embodiments described and shown, but it is susceptible of numerous variants accessible to those skilled in the art.
  • the invention has been described with reference to a product code C1 .C2; it applies to codes of different forms, such as by example of product codes of three or more block codes; it also applies to product codes of the type described in the above-mentioned patent application No. 971 2594 of the applicant.
  • These product codes are of particular application to the coding of packets in transmission in asynchronous transfer mode (ATM): a code C l different from the code C2 used for the body of the packet is used for coding the headers.
  • a column C3 is then applied to the columns of the matrix, the rows of which are formed from the words of the codes CI and C2.
  • FIGS. 1 to 3 can be used for other iterative decoding algorithms than that of FIG. 4. It is as clear as the formulation in terms of “rows” and “columns” of the product code word received is used only for convenience of expression, and the values received on the channel are not in the form of a matrix. We can indifferently start to decode by the "lines” or by the “columns”.
  • the expression "words of a product code received at the output of a transmission channel” must therefore be understood to mean a successive values, or else a series of binary values marred by noise, which are received in output of a transmission channel.

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Error Detection And Correction (AREA)

Abstract

L'invention concerne un procédé de décodage à entrée souple et à sortie souple d'un mot (s) d'un code linéaire en bloc de dimension k et de longueur n, reçu depuis un canal de transmission, comprenant les étapes de: génération d'une liste de mots fermes (ub) du code proches du mot de code reçu (s), en codant une liste de k-uplets obtenus par approximation ferme des composantes du mot reçu et par changement des composantes des moins fiables; calcul de la j-ième composante du mot souple de sortie par différence entre les métriques d'une part du mot de code généré le plus proche, et d'autre part, du mot de code généré le plus proche ayant une j-ième composante opposée, ou à défaut du mot de code généré le moins proche. L'invention concerne aussi un procédé de décodage itératif d'un mot de code produit reçu sur un canal de transmission, utilisant un tel procédé de décodage à entrée souple et à sortie souple. Elle permet un décodage rapide et efficace de mots d'un code produits, même en l'absence de décodeur algébrique.

Description

DECODAGE ITERATIF DE CODES PRODUITS
La présente invention a pour objet un procédé de décodage itératif de codes produits. L'invention concerne aussi un procédé de transmission ainsi qu'un système de transmission mettant en oeuvre un tel procédé de décodage.
L'invention concerne le décodage de codes produits de codes linéaires en blocs. Elle s'applique au domaine des transmissions, pour le codage de canal. Un canal de transmission typique comprend une source binaire, un codeur, un modulateur qui émet dans un canal, un démodulateur en sortie de canal, et un décodeur qui fournit le signal binaire. Le codage de canal a pour but de réduire la puissance nécessaire pour atteindre un taux d'erreur bit donné. La demande de brevet française déposée le 09 Octobre 1 997 sous le numéro 971 2594, sous le titre "Procédé de codage bloc par code produit applicable notamment au codage d'une cellule ATM" donne une description des notions de base de la transmission et du codage de canal, à laquelle on pourra se reporter pour plus de détails. Dans la mesure où l'invention concerne le décodage de canal, les autres éléments du système de transmission - tels le codage de source et la modulation démodulation utilisée en fonction du milieu de transmission - ne font pas l'objet de plus d'explications.
Il est classique d'utiliser pour le codage des codes redondants et des codes produits. On caractérise généralement un code C ] par un triplet (n i , k] , d "| ), ou k] est le nombre de bits en entrée du code, n ] est le nombre de bits en sortie du code et d l est la distance minimale de Hamming du code. L'application d'un tel code à un k- uplet (xi , ..., x|ç) fournit un n-uplet (x"| ,..., xk, *k+ l / •••» χn) ave n-k bits de redondance. On appelle code produits l'application successive de deux codes C ] et C2, de la façon suivante. On considère k"| .k2 bits, sous forme de k2 mots de k] bits. On applique aux k2 mots de kl bits un code C l (n i , k] , d l ) et on obtient k2 mots de n i bits. Rangés sous forme de matrice, ces k2 mots de n i bits forment n i colonnes, la j- ième colonne étant formée des j-ièmes bits de chacun des k2 mots. On applique à chacune de ces n ] colonnes de k2 bits un code C2(n2, l<2/ d2) pour obtenir n i mots de n2 bits. L'application d'un tel code produit permet de passer de kl .k2 bits à n i .n2 bits, avec n i .n2 - I<l - 2 bits de redondance. Si les codes sont linéaires, on obtient de la sorte n2 lignes de mots du code C l , ou n i colonnes de mots du code de C2- Le code produit est un code présentant les paramètres (n i .n2; kl -k2; d "l -d2)- L'ordre d'encodage est indifférent, et l'on obtient les mêmes résultats en codant d'abord les lignes, comme décrit ci-dessus, ou en codant d'abord les colonnes. De tels codes produits sont décrits dans la littérature pour le codage de canal. La demande française susmentionnée, ou encore la figure 2 de FR-A-2 71 2 760 expliquent en détail le principe du codage par un tel code produit.
Le problème avec de tels codes produits est le décodage en sortie du démodulateur. On obtient en sortie du démodulateur des ensembles de valeurs de bits (généralement modulés sous la forme ± 1 ), entachées d'un bruit. On appelle valeur souple la valeur reçue, entachée du bruit, qui est une valeur réelle; on appelle valeur ferme la valeur ± 1 , i.e. la valeur binaire correspondante, obtenue par une décision à seuil sur la valeur reçue. On appelle dans la suite mot ferme un mot binaire, et mot souple un mot effectivement reçu, formé de valeurs réelles. Lors d'une transmission avec codage par un code produit, on obtient en sortie du démodulateur un ensemble R = {rj ;} de n i .n2 valeurs réelles (valeurs souples). Le décodage consiste à déterminer à quel mot du code produit C l .C2 correspondent ces valeurs souples, selon un certain critère de performance. Si le bruit est un bruit additif blanc gaussien, la solution optimale consiste à rechercher le mot du code produit qui minimise la distance euclidienne au mot souple reçu R. Ce critère du maximum de vraisemblance est dans la pratique impossible, dès lors que le produit k ] .k2 dépasse couramment quelques centaines.
Diverses solutions ont donc été proposées pour assurer le décodage des codes produits. La solution la plus immédiate consiste à prendre des décisions fermes sur chacun des bits du mot souple reçu, et à décoder en décision ferme successivement les lignes puis les colonnes, en appliquant un décodeur du code C2 sur les colonnes, puis un décodeur du code Cl sur les lignes; cette solution est largement sous optimale, et ne permet pas d'atteindre le gain théorique d'un code produit car elle n'utilise pas toute l'information reçue du canal de transmission. FR-A-2 71 2 760 propose un algorithme de décodage itératif de codes produits
C l .C2, dans lequel on procède à plusieurs reprises au décodage successif des différentes colonnes ou lignes de la matrice formée à partir du mot de code produit reçu. Pour chaque colonne ou ligne, i.e. pour chaque mot du code C2 ou C l reçu affecté d'un bruit (mot souple reçu), ce document propose de procéder au décodage à l'aide d'un algorithme de Chase modifié, et plus exactement :
- de générer un ensemble de mots fermes du code C2 ou C l a priori proches du mot souple reçu sur la ligne ou colonne correspondante;
- calculer la distance euclidienne entre ces différents mots fermes et le mot souple reçu; et - choisir comme mot de code reçu celui des différents mots fermes qui présente la distance minimale au mot souple effectivement reçu.
Pour générer l'ensemble des mots fermes du code C2 (ou C l ) a priori proches du mot souple reçu, ce document propose: - de repérer les p composantes les moins fiables du mot souple reçu;
- de construire q séquences binaires de test à partir de ces p composantes les moins fiables;
- de construire q mots binaires à décoder à partir de ces séquences de tests binaires et d'une valeur courante binaire du mot décodé; cette valeur courante binaire est initialisée au départ par une approximation binaire de chacun des bits reçus;
- de décoder les q mots binaires avec un décodeur de Berkelamp (décodeur algébrique) pour obtenir q' mots de code, en vérifiant le cas échéant que les q' mots obtenus sont des mots du code C2 (ou C l ).
La construction des q mots binaires et leur décodage selon cet algorithme est une opération peu efficace : les q mots générés sont des mots du code C2 (ou C l ), mais ne sont pas forcément distincts. On obtient en sortie du décodeur un nombre q' de mots de code distincts inférieur au nombre q de mots générés. En outre, cette méthode ne fonctionne que pour des codes pour lesquels il existe un décodeur algébrique. L'implémentation des décodeurs algébriques nécessite des calculs dans les corps de Gallois et une architecture complexe.
Juing Fang, Décodage pondéré des codes linéaires en blocs, Thèse de Docteur ingénieur, ENST de Paris, 1986, décrit un algorithme de décodage à entrée souple d'un code linéaire en bloc. Cet algorithme est optimal au sens du maximum de vraisemblance et ne fait pas intervenir explicitement la structure algébrique du code. Il permet de fournir en sortie un mot de code ferme, de vraisemblance maximale. Cet algorithme est l'un des nombreux algorithmes de décodage à entrée souple et à sortie ferme; il ne suggère pas l'utilisation de listes pour générer une sortie souple. L'invention propose une solution au décodage itératif des codes produits, qui permette un décodage plus rapide et plus efficace, et qui s'applique à tous les types de codes et pas seulement à ceux pour lesquels existe un décodeur algébrique.
Le décodage des codes produits n'est pas un problème mathématique, mais un problème technique important dans le domaine des transmissions. Il s'applique directement au décodage des valeurs des bits ou des mots de code produit reçus en sortie du démodulateur d'un canal de transmission.
Plus précisément, l'invention propose un procédé de décodage à entrée souple et à sortie souple d'un mot (s) d'un code linéaire en bloc de dimension k et de longueur n, reçu depuis un canal de transmission, comprenant les étapes de - génération d'une liste de mots fermes (y.b) du code proches du mot de code reçu (s), en codant une liste de k-uplets les plus vraisemblables; - calcul de la j-ième composante du mot souple de sortie par différence entre les métriques d'une part du mot de code généré le plus proche, et d'autre part, et du mot de code généré le plus proche ayant une j-ième composante opposée.
Dans un mode de réalisation, les k-uplets les plus vraisemblables sont obtenus par approximation ferme des composantes du mot reçu et par changement des composantes des moins fiables,
Avantageusement, chacun des k-uplets de la liste de k-uplets est obtenu par:
- classement par ordre de fiabilité des composantes du mot de code reçu, suivant une permutation (T); - vérification que les k composantes les plus fiables du mot ainsi obtenu permettent de générer les n - k autres;
- choix de valeurs fermes pour m composantes les moins fiables desdites k composantes, m étant un entier inférieur à k;
- approximation ferme des k - m autres composantes; - codage du mot ferme ainsi obtenu, par un code égal à la composition dudit code par l'inverse de ladite permutation.
On peut aussi prévoir que la vérification s'effectue par
- application aux colonnes de la matrice de parité du code de la permutation;
- vérification du rang de la matrice formée des n-k dernières colonnes de la matrice de parité ainsi permutée.
L'étape de vérification, lorsqu'elle est négative, est suivie d'une étape de modification de la permutation.
Dans un autre mode de réalisation, chacun des k-uplets de la liste de k-uplets est obtenu par: - classement par ordre de fiabilité des k premières composantes du mot de code reçu, par une permutation (T);
- choix de valeurs fermes pour m composantes les moins fiables, m étant un entier inférieur à k;
- approximation ferme des k - m autres composantes; - codage du mot ferme ainsi obtenu, par un code égal à la composition dudit code par l'inverse de ladite permutation.
De préférence, le calcul de la j-ième composante du mot souple de sortie s'effectue, lorsqu'il n'existe pas de mot de code généré le plus proche ayant une j- ième composante opposée, par différence entre les métriques d'une part du mot de code généré le plus proche, et d'autre part, et du mot de code généré le moins proche
Il est aussi possible de prévoir que le calcul de la j-ième composante du mot souple de sortie s'effectue, lorsqu'il n'existe pas de mot de code généré le plus proche ayant une j-ième composante opposée, par addition à la j-ième composante du mot reçu par d'un coefficient du signe de la j-ième composante du mot de code le plus proche du mot reçu.
Avantageusement, le mot reçu est affecté d'un bruit blanc additif et gaussien. L'invention a aussi pour objet un procédé de décodage à entrée souple et à sortie souple d'un mot (s) d'un code linéaire en bloc de dimension k et de longueur n, reçu depuis un canal de transmission, comprenant les étapes de
- choix du mot de code le plus proche du mot reçu dans une liste de mots fermes (ub) du code proches du mot de code reçu (s), générés en codant une liste de k-uplets les plus vraisemblables,
- pour chaque composante d'ordre j du mot reçu, j variant de 1 à n:
* remplacement de la j-ième composante du mot reçu par l'inverse de la j-ième composante du dit mot de code de plus proche;
* choix du mot de code le plus proche du mot obtenu dans l'étape de remplacement dans une liste de mots fermes du code proches du mot de code obtenu dans l'étape de remplacement, générés en codant une liste de k-uplets les plus vraisemblables;
* calcul de la j-ième composante du mot souple de sortie par différence entre les métriques d'une part du mot de code le plus proche du mot reçu, et d'autre part, et du mot de code le plus proche du mot obtenu dans l'étape de remplacement.
Dans un mode de réalisation, dans l'étape du choix du mot de code le plus proche du mot reçu, les k-uplets les plus vraisemblables sont obtenus par approximation ferme des composantes les plus fiables du mot reçu et par changement des composantes les moins fiables.
De préférence, dans l'étape du choix du mot de code le plus proche du mot obtenu dans l'étape de remplacement, les k-uplets les plus vraisemblables sont obtenus par approximation ferme des composantes les plus fiables du mot obtenu dans l'étape de remplacement et par changement des composantes les moins fiables. Dans un mode de réalisation, le mot reçu est affecté d'un bruit blanc additif et gaussien.
L'invention a encore pour objet un procédé de décodage itératif d'un mot (R) d'un code produit reçu depuis un canal de transmission, comprenant pour au moins une itération, un décodage à entrée souple et à sortie souple de lignes ou de colonnes dudit mot du code produit, selon un tel procédé.
D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description qui suit de modes de réalisation de l'invention, donnée à titre d'exemple et en référence aux dessins annexés qui montrent: o
- figure 1 un ordinogramme d'un premier mode de réalisation d'un procédé de décodage à entrée souple et à sortie souple mis en oeuvre dans l'invention;
- figure 2 un ordinogramme d'un deuxième mode de réalisation d'un procédé de décodage à entrée souple et à sortie souple mis en oeuvre dans l'invention; - figure 3 un ordinogramme d'un troisième mode de réalisation d'un procédé de décodage à entrée souple et à sortie souple mis en oeuvre dans l'invention;
- figure 4 un ordinogramme d'un algorithme de décodage itératif selon l'invention;
- figure 5, un schéma du fonctionnement du décodeur de l'invention pour un nombre d'itérations égal à 4; - figures ό et 7, des représentations graphiques de résultats des procédés de l'invention.
Pour déterminer dans un algorithme de décodage à entrée souple et à sortie souple un ensemble de mots de codes a priori proches du mot de code souple reçu, l'invention propose d'utiliser non pas un décodage, mais un encodage. La figure 1 montre un ordinogramme d'un premier mode de réalisation d'un procédé de décodage à entrée souple et à sortie souple mis en oeuvre dans l'invention; on a représenté à la figure 1 les étapes nécessaires au décodage à sortie souple d'un mot souple reçu sur une ligne ou une colonne du mot de code produit reçu. On note dans la suite de la description R = {r^j} le mot souple de code produit reçu depuis le canal de transmission, 1 < i < n "j , 1 < j < n2- Ce mot souple correspond à la transmission sur le canal d'un mot binaire ou ferme du code produit C2. 1 , qui parvient au décodeur de canal entaché de bruit. On considère une représentation des valeurs souples dans l'ensemble des réels, les valeurs fermes correspondant à ± 1 . Dans une telle représentation, le module de la valeur souple reçue est indicatif de la fiabilité de la valeur, et son signe donne la valeur ferme reçue.
On décrit en référence à la figure 1 le décodage d'une ligne de ce mot de code; le même procédé s'applique mutatis mutandis au décodage des colonnes de ce mot de code produit. On considère donc le mot souple correspondant à une ligne donnée s = {sj, 1 < i < n i }, avec sj = r; i, pour j donné. Ce mot est une version entachée d'erreur d'un mot du code Cl (n i , kl , d l ). Ce mot contient kl bits fournis par le codeur de source, et n i - l bits de redondance générés par le code C l . Pour plus de simplicité dans l'exposé, on a considéré la forme systématique du code, dans laquelle les kl composantes d'entrée se retrouvent telles quelles dans le mot de code de sortie. Dans une première étape 1 , on trie l'ensemble des composantes reçues sj suivant l'ordre croissant des modules | sj | , i.e. suivant la fiabilité. On note T la permutation correspondante.
Dans une deuxième étape 2, on vérifie que les kl dernières composantes de l'image T(sj) de sj dans la permutation permettent de retrouver les n i -kl restantes; ceci peut s'effectuer en appliquant la permutation T aux colonnes de la matrice de parité du code C l , et en vérifiant que les n i -kl dernières colonnes de la matrice permutée obtenue sont indépendantes. Si elles ne le sont pas, on modifie la permutation T, de sorte à obtenir n i -kl dernières colonnes indépendantes lorsque l'on applique la permutation aux colonnes de la matrice de parité. Ceci peut s'effectuer en changeant la j-ième colonne, j < [π i -k"| H- 1 , n i ], i.e. en composant T avec une permutation (p, n i -kl +j), où p est un entier inférieur ou égal à kl . Dans la suite du procédé, jusqu'à l'étape 8, on travaille dans cet espace permuté, sur les mots de code permutés. Dans une troisième étape 3, on considère m, m < k l des kl dernières composantes du mot reçu permuté, par exemple les m composantes les moins fiables, et on crée des m-uplets correspondants en leur affectant des valeurs binaires. On peut générer de cette façon 2m m-uplets binaires, mais il peut être plus intéressant de générer uniquement certains de ces 2m m-uplets, par exemple ceux qui ont la plus petite métrique.
Dans une quatrième étape 4, on considère les kl -m composantes restantes parmi les kl dernières composantes. On effectue pour chacune de ces composantes une décision ferme, c'est à dire que l'on affecte à chaque composante souple une valeur ferme ou binaire. On peut par exemple simplement affecter à chaque composante son signe.
A la cinquième étape 5 on reconstitue à partir des résultats des troisième et quatrième étapes un ensemble de mots binaires i = {tj, 1 < i < kl }b, avec b < 2m.
En d'autres termes, chaque mot obtenu à l'étape 5 est un assemblage ou une concaténation des m composantes créées à l'étape 3 et des kl -m composantes obtenues à l'étape 4. On leur applique le codage, qui dans l'espace des mots permutés, correspond au codage C l .
Une méthode pour faire ce codage est d'utiliser la matrice de parité H du code C l . La permutation T associée au tri des composantes sera appliquée à la matrice de parité H du code. On applique ensuite une réduction de Gauss aux (n i -kl ) colonnes les plus à droite de la matrice H permutée par la liste T afin de la mettre sous forme systématique. Il est à remarquer qu'en général les (n i -kl ) dernières colonnes de la matrice H permutée ne sont pas indépendantes. Dans ce cas, on peut modifier la permutation T afin de rendre ces colonnes indépendantes et de pouvoir ainsi systématiser la matrice H permutée. La vérification proposée à l'étape 2 peut se faire en même temps que la systématisation de la matrice permutée. On utilise ensuite avantageusement cette matrice de parité rendue systématique pour l'encodage dans l'espace permuté. On obtient ainsi directement des mots fermes permutés yb = {uj, 1 < i < n } du code correspondant, qui a priori sont proches de la version permutée du mot qui a été envoyé sur le canal de transmission.
On peut ensuite, à la sixième étape 6, calculer pour chacun des mots de code yb obtenus, la distance euclidienne au mot de code souple si reçu. On peut dans cette étape ne conserver parmi ces mots de code que les mots les plus fiables, la mesure de la fiabilité s'effectuaπt simplement en considérant la distance euclidienne qui vient d'être calculée; le seuil utilisé pour retenir les mots de codes, ou encore le nombre de mots de code considéré, dépend du nombre total de mots de code que l'on a généré dans les étapes précédentes. En d'autres termes, plus on génère de mots de codes, plus le nombre de mots de code que l'on peut garder est important. Le choix du nombre de mots de codes retenus résulte d'un compromis entre la complexité provoquée par la génération d'un grand nombre de mots de codes, d'une part, et d'autre part l'avantage que la probabilité de trouver des mots de codes très fiables augmente lorsque le nombre total de mots de codes générés croît. A l'étape 7, on procède au décodage souple de la façon suivante. Pour une composante donnée reçue si d'ordre j donné, on considère dans l'ensemble des mots de code yb obtenus, le mot de code le plus proche yj + présentant comme composante d'ordre j un bit à 1 et le mot de code le plus proche yj" présentant comme composante d'ordre j un bit à - 1 ; on calcule alors la valeur de la j-ième composante du mot souple décodé comme la différence, multipliée par un facteur de normalisation d'un quart entre la métrique cj. = | yj" - s | du mot de code yj" le plus proche présentant un bit à - 1 en j-ième position et la métrique cj + = | yj + - s | du mot de code yj + le plus proche présentant un bit à + 1 en j-ième position . En d'autres termes, pour chaque valeur de j, on calcule la composante vj d'ordre j du mot de code souple {vj, 1 < i ≤ n "| }fourni par le décodeur comme vj = (cj. - cj + )/4
Il est possible, en fonction du nombre de mots générés à l'étape 5 et retenus à l'étape 6, qu'on ne trouve pas dans l'ensemble de mots de code générés deux mots de code présentant des valeurs de bits opposées dans la j-ième position; ce peut être le cas si la composante d'ordre j est reçue avec une grande fiabilité. Ce peut aussi être le cas si l'on a généré ou retenu un faible nombre de mots de codes. On peut alors prendre comme valeur souple de la j-ième composante la différence entre la métrique la plus faible - celle du mot de la liste le plus proche du mot de code reçue - et la métrique la plus forte - celle du mot de la liste le plus éloigné du mot de code reçu. Dans ce cas, on trouve une valeur précise d'une des deux métriques; l'autre métrique est approximée ou du moins on en considère une borne inférieure, en prenant la métrique du mot de code de la liste le plus éloigné. On pourrait aussi, toujours dans ce cas, prendre comme valeur souple de la j- ième composante la somme de la j-ième composante du mot reçu et d'un facteur b, affecté du signe de la décision ferme de la j-ième composante du mot de code le plus proche; en d'autres termes, on ajoute le facteur b si la j-ième composante du mot de code le plus proche est positive, et on ajoute -b si la j-ième composante du mot de code le plus proche est négative; la valeur de ce facteur peut varier en fonction de l'itération.
On peut ensuite repasser dans l'espace des mots reçu, en appliquant une permutation inverse de celle de l'étape 2. On trouve alors le mot de code le plus proche du mot reçu plus tous les coefficients de fiabilité de chaque symbole, i. e. une sortie pondérée.
On fournit maintenant une explication du calcul de l'étape 7. On considère le cas d'un bruit blanc gaussien additif t), dont les composantes bj sont à moyenne nulle et de même variance s^. On peut alors noter s = e + b avec s le mot reçu, comme expliqué plus haut, e = (ej, 1 < i < ni ) le mot de code émis avec ej= ± 1 , et b = (bj, 1 < i < ni ). Dans ce cas, la mesure de fiabilité associée à chaque symbole cj du mot décodé peut être déterminée à partir du logarithme du rapport de vraisemblance défini par L(cj) = log[Pr(cj = l /s)/Pr(cj = -1/s)] Dans ce cas, en utilisant la règle de Bayes, et en tenant compte du fait que le bruit est blanc et gaussien, on montre que le rapport de vraisemblance associé au symbole cj est égal à:
∑expt- -y few"*")]
,+ 2σ eS f ≈io 1 v
∑expf-— Mfe« )] u — eS^. 2σ
où S; (- et S.j j sont les deux ensembles des mots du code dont le jeme symbole vaut + 1 ou - 1 respectivement, (s,y) étant la métrique entre le mot de code y trouvé par l'algorithme et le mot reçu s, métrique qui dans notre cas est la distance euclidienne entre s le mot reçu et y un mot du code, distance euclidienne qui peut être en précision finie. Cette métrique peut si nécessaire être adaptée aux cas des canaux à évanouissements.
Le nombre de mots de code étant généralement élevé, le calcul du rapport de vraisemblance est relativement complexe. Lorsque le rapport signal à bruit est suffisamment grand, on peut simplifier cette expression en ne conservant au numérateur et au dénominateur que le terme le plus fort, l'expression du logarithme du rapport de vraisemblance devient alors :
Max exp[ M(s, u+ )] w+ eS, 2<r
L(ς)≈log v Ma M(s,u~y Max M(s,u+)
Max exp[-— ΎM(S,U )] 2σ2
Vif " eS , + St u~ eS 2σ
-ij
En normalisant le logarithme du rapport de vraisemblance par le facteur —
la sortie pondérée du jeme symbole v(- s'exprime alors de la manière suivante : f λ
1
Max M(s,u ) - Max M{^, 7 +~ •)
où Sij représente l'ensemble des mots du code ayant un symbole égal à i (i = ± l ) en position j. En reprenant les notations précédentes pour c,-. et cl+, on retrouve bien l'expression de l'étape 7 de la figure 1 :
1 v = — I C — C
J 4
Les étapes décrites en référence à la figure 1 permettent de générer des mots de code, qui sont proches du mot souple reçu sur le canal de transmission. Le procédé de la figure 1 permet en trouvant une liste de mots du code, d'en déduire une valeur souple de chaque composante du mot de code reçu. La complexité du procédé dépend du nombre de mots de codes générés à l'étape 4, autrement dit du nombre de mots de code proches générés. Plus ce nombre est important, plus le procédé est performant, mais plus il est complexe à mettre en oeuvre; plus ce nombre est faible, plus le procédé est performant, et moins il est efficace. Le choix du nombre de mots de code détermine le rapport performance/complexité du procédé, et est adapté en fonction des circonstances. Dans la pratique des résultats satisfaisants sont obtenus pour un code BCH(31 , 21 ) étendu en conservant les 19 meilleurs mots de code parmi 50 mots générés. En variante de l'étape 2, on peut changer non pas les composantes les moins fiables, mais les composantes, qui en combinaison, sont les moins fiables: ainsi si on considère par exemple les composantes suivantes, avec les modules correspondants: 11
11 12 13 U 15 lό
Figure imgf000013_0001
0,1 0,2 0,3 0,35 0,4 0,45 on changera par exemple , puis 12, puis I3, puis 11 et 12, puis I4, puis 11 et I3, puis I5, et ainsi de suite. On arrive ainsi à préserver les composantes les plus fiables.
La figure 2 montre un ordinogramme d'un deuxième mode de réalisation d'un procédé de décodage à entrée souple et à sortie souple mis en oeuvre dans l'invention; de nouveau, on n'a considéré à la figure 2 que l'exemple d'une ligne. De nouveau, on décrit l'invention en référence à la forme systématique du code. On considère le mot souple correspondant à une ligne donnée {sj, 1 < i < n i }, avec sj = rj ;, pour j donné. Ce mot est une version entachée d'erreur d'un mot du code C ι (n i , kl , d l ). Ce mot contient kl bits fournis par le codeur de source, et n i - l bits de redondance générés par le code C ] .
Dans une première étape 1 1 , on trie les kl premières composantes reçues sj suivant l'ordre croissant des modules | sj | , i.e. suivant la fiabilité. On note T la permutation correspondante.
Dans une deuxième étape 1 2, on procède comme dans l'algorithme de Chase, et on crée des vecteurs fermes pour les m, m < kι composantes les moins fiables. On peut générer de cette façon 2m m-uplets, mais il peut être plus intéressant de générer uniquement certains de ces 2m m-uplets, par exemple ceux qui ont la plus petite métrique euclidienne. Dans le cas où kl —A et m = 2, les vecteurs générés sont par exemple 00, 1 0, 01 , 1 1 . Dans une troisième étape 1 3, on considère les k l -m composantes restantes et on effectue pour chacune de ces composantes une décision ferme, c'est à dire que l'on affecte à chaque composante souple une valeur ferme ou binaire. On peut par exemple simplement affecter à la composante sj d'ordre i la valeur sign(sj) .
A l'étape 14 on reconstitue à partir des résultats de l'étape 1 2 et de l'étape 1 3 un ensemble de mots binaires tb = {tj, 1 < i < kl }b, avec b < 2m, par concaténation des m composantes obtenues à l'étape 1 2, et des kl -m composantes obtenues à l'étape 1 3. On applique à ces mots fermes le codage C ] .T" ' , où T" ' est l'inverse de la permutation T de l'étape 1 . On obtient ainsi directement des mots fermes y = {uj, 1 < i < n i } du code C l , qui a priori sont proches du mot qui a été envoyé sur le canal de transmission.
On peut ensuite, à l'étape 1 5, calculer pour chacun des mots de code yb obtenus, la distance euclidienne au mot de code souple si reçu, ou métrique de chaque mot de code yb par rapport au mot de code s reçu. On peut dans cette étape ne conserver parmi ces mots de code que les mots les plus fiables, comme expliqué plus haut en référence à l'étape 6 de la figure 1 . A l'étape 1 6, on procède au décodage souple, de la même façon qu'à l'étape 7 de la figure 1 .
Le procédé de la figure 2, par rapport à celui de la figure 1 , permet d'éviter l'étape de vérification de l'indépendance des dernières colonnes de la matrice de parité. Il présente l'inconvénient, par rapport à ce même procédé de la figure 1 , de ne modifier des composantes que parmi les kl premières, et non parmi l'ensemble des composantes du mot de code. En d'autres termes, le procédé de la figure 1 permet de modifier des composantes de faible fiabilité qui sont choisies non seulement parmi les informations envoyées, mais aussi parmi, les valeurs de redondance. On arrive ainsi à changer les composantes les moins fiables parmi les kl plus fiables du mot de code dans son ensemble, et pas seulement parmi les kl premières composantes du mot envoyé.
La figure 3 montre un ordinogramme d'un troisième mode de réalisation d'un procédé de décodage à entrée souple et à sortie souple mis en oeuvre dans l'invention. On procède dans ce mode de réalisation comme dans les cinq premières étapes de la figure 1 pour obtenir une listes de mots de codes, et leurs métriques; ceci est symbolisé à la figure 3 par l'étape 20. On considère à l'étape 21 le mot de code le plus proche ç*, i.e. celui présentant la métrique la plus faible, et on initialise une valeur courante j à 1 . A l'étape 22, on change la valeur de la j-ième composante sj du mot de code s reçu, pour lui donner une valeur opposée à celle de la j-ième composante du mot de code ç* déterminé à l'étape 21 , et ce avec une très grande fiabilité.
A l'étape 23, on procède, comme dans les cinq premières étapes de la figure 1 à une recherche d'une liste de mots de codes proches du mot reçu modifié à sa j- ième composante, et au calcul de leur métrique.
A l'étape 24, on considère le mot de code ç'* présentant la métrique la plus faible; la composante d'ordre j de ç'* est opposée à celle du mot de code ç* déterminé à l'étape 21 ; on calcule alors la composante vj d'ordre j du mot souple de sortie v comme la différence des métriques des mots ç* et ç'* des étapes 21 et 24, multipliée par le facteur de normalisation 1 /4.
A l'étape 25, on compare j et n. Si j = n, on a terminé de décodage, étape 26; sinon, à l'étape 27, on incrémente j de un et on repasse à l'étape 22.
Par rapport aux procédés des figures 1 et 2, le procédé de la figure 3 donne de meilleurs résultats dans la mesure où l'on retrouve nécessairement pour chaque composante deux mots de codes ayant pour cette composante des valeurs de bits opposées. Toutefois, ce procédé est plus complexe, dans la mesure où l'on doit calculer des listes de mots proches n i + 1 fois et non pas une seule fois. Les procédés des figures 1 à 3 fournissent donc une sortie souple pour chaque ligne ou chaque colonne du mot de code produit reçu depuis le canal de transmission. Le procédé de décodage de l'invention utilise ce décodage souple pour le décodage itératif, comme expliqué en référence à la figure 4, qui montre un mode de réalisation d'un tel décodage itératif. Dans une itération, on utilise le procédé d'une des figures 1 à 3, ou une combinaison de ces procédés pour obtenir à partir des lignes, et respectivement des colonnes, de la matrice courante, des lignes et respectivement des colonnes pour l'itération suivante.
Dans une première étape 30, on initialise une matrice courante R, à la valeur reçue du canal R, la valeur de l'indice i étant initialisée à 0. On passe ensuite à l'étape 32.
A l'étape 32, on détermine des coefficients a, pour chaque valeur de i. Les coefficients en cause forment une suite croissante (a,) de réels. Des valeurs de ces coefficients sont données à titre d'exemple pour un code produit BCH(31 ,21 ) étendu en référence à la figure 6.
On passe ensuite à l'étape 34.
Un premier décodage suivant les lignes de la matrice R, en utilisant l'un ou l'autre des algorithmes de décodage en entrée souple et à sortie souple des figures 1 à 3 permet de déterminer une nouvelle matrice L, dont chaque ligne est un mot du code Cj . On passe ensuite à l'étape 36.
A l'étape 36, on incrémente i de 1 . On extrait de la matrice L,.ι une information extrinsèque égale à ( -rËi-i) qui pondérée par le facteur a, est ajoutée à la matrice R reçue. On calcule une nouvelle matrice K≈R+a.fL^i -R,.,) avant de passer à l'étape 38. A l'étape 38, on poursuit en décodant les colonnes de la matrice R, en utilisant l'un ou l'autre des algorithmes de décodage en entrée souple et à sortie souple des figures 1 à 3. Ce décodage permet d'obtenir une matrice L, dont chaque ligne est un mot du code C . Cette étape 38 correspond pour ce qui est des colonnes à l'étape 34. On passe ensuite à l'étape 40. L'étape 40 correspond à l'étape 36. Elle consiste à incrémenter i de 1 et à former une nouvelle matrice Rl= R+a,(L,.1 -Rl.1).
A l'étape 42, on compare le nombre d'itérations, égal à i/2, au nombre d'itérations souhaitées. Il est à noter que l'on appelle itération l'ensemble comprenant un décodage des lignes et un décodage des colonnes. S'il faut procéder à une itération supplémentaire, on passe à l'étape 34 et sinon on passe à l'étape 46.
A l'étape 46, on prend des décisions binaires sur la matrice L,.] , obtenue par décodage des colonnes à l'étape 38. On suppose que la matrice ainsi obtenue 14
correspond au mot de code émis, il suffit alors d'extraire la sous-matrice d'information pour retrouver les bits d'information.
Le schéma de la figure 5 illustre le fonctionnement du décodeur pour un nombre d'itérations égal à 4. Le procédé de l'invention s'applique à tous les types de codes en blocs linéaires, tels les codes BCH, y compris les codes de Reed-Solomon, Reed-Muller, QR, les codes cycliques, etc., sans utiliser des décodeurs algébriques et des calculs compliqués dans les corps finis de Gallois.
Les figures 6 et 7 montrent des résultats de décodage selon l'invention. La figure 6 montre les résultats d'un décodage du code produit BCH(31 , 21 ) étendu, selon le procédé décrit en référence à la figure 4 et à la figure 1 . On a porté en ordonnées sur la figure le taux d'erreur sur les bits, et en abscisses le rapport signal sur bruit Eb/NO, en dB. On a représenté sur la figure les résultats obtenus pour le code convolutif 1 /2 de longueur de contrainte 7, et les résultats obtenus après une, deux, trois ou quatre itérations de décodage selon l'invention.
Pour la simulation de la figure 6, on a calculé (étape 5 de la figure 1 ), J = 50 mots de code, dont on a retenu à chaque fois les Q= 1 9 meilleurs. Les coefficients (aj) utilisés pour les lignes et les colonnes sont donnés dans le tableau suivant: ai a2 a3 a4 a5 aό a7 a8
Figure imgf000016_0001
0,0 0,3 0,5 0,7 0,9 1 1 1
Les coefficients (bj) ci-dessous sont utilisés dans le cas où l'on n'a pas trouvé de mots de code concurrent: bl b2 b3 b4 b5 bό b7 b8
Figure imgf000016_0002
0,2 0,3 0,6 0,8 1 1 1 1
La figure montre un gain de codage de près de 2 dB par rapport au code 1 /2, et ce dès un TEB de 10'6.
La figure 7 montre des résultats correspondants, pour un code produit BCH(30,
1 9) x BCH(30, 24). Le code BCH(30, 19) est un code raccourci de 2 obtenu à partir du code BCH(31 , 21 ) étendu. Le code BCH(30, 24) est un code raccourci de 2 obtenu à partir du code BCH(31 , 26) étendu. On retrouve un gain de codage supérieur à 2dB, par rapport au même code de référence.
Dans tous ses modes de réalisation, le décodage itératif de codes produits selon l'invention fournit de meilleures performances avec le même nombre d'itérations que l'algorithme proposé dans FR-A-2 71 2 760.
Bien entendu, la présente invention n'est pas limitée aux exemples et modes de réalisation décrits et représentés, mais elle est susceptible de nombreuses variantes accessibles à l'homme de l'art. Ainsi, l'invention a été décrite en référence à un code produit C1 .C2; elle s'applique à des codes de formes différentes, comme par exemple des codes produits de trois codes en blocs ou plus; elle s'applique aussi à des codes produits du type de ceux décrits dans la demande de brevet n° 971 2594 susmentionnée de la demanderesse. Ces codes produits sont d'une application particulière au codage des paquets en transmission en mode transfert asynchrone (ATM) : on utilise pour le codage des en-têtes un code C l différent du code C2 utilisé pour le corps du paquet. On applique ensuite aux colonnes de la matrice dont les lignes sont formée des mots des codes C I et C2 un code C3.
De même, on peut utiliser les procédés des figures 1 à 3 pour d'autres algorithmes de décodage itératif que celui de la figure 4. II est aussi clair que la formulation en termes de "lignes" et "colonnes" du mot de code produit reçu n'est employée que pour la commodité d'expression, et que les valeurs reçues sur le canal ne sont pas sous forme d'une matrice. On peut indifféremment commencer à décoder par les "lignes" ou par les "colonnes". L'expression "mots d'un code produit reçus en sortie d'un canal de transmission" doit donc s'entendre d'une valeurs successives, ou encore d'une suite de valeurs binaires entachés d'un bruit, qui sont reçues en sortie d'un canal de transmission.
En outre, l'invention a été décrite en référence à des codes en blocs systématiques. Elle s'applique pour ce qui concerne les méthodes des premier et troisième modes de réalisation à des codes C(n, k, d) qui ne sont pas sous une forme systématique, dans la mesure où ils peuvent facilement être transformés en codes sous une forme systématique, par produit par une matrice de rang k. Elle a été décrite en référence à l'exemple de codes binaires, mais elle s'applique aussi à des codes q-aires, avec q ≠ 2.

Claims

REVENDICATIONS
1 .- Procédé de décodage à entrée souple et à sortie souple d'un mot (s) d'un code linéaire en bloc de dimension k et de longueur n, reçu depuis un canal de transmission, comprenant les étapes de
- génération d'une liste de mots fermes (yb) du code proches du mot de code reçu (s), en codant une liste de k-uplets les plus vraisemblables;
- calcul de la j-ième composante du mot souple de sortie par différence entre les métriques d'une part du mot de code généré le plus proche, et d'autre part, et du mot de code généré le plus proche ayant une j-ième composante opposée.
2.- Procédé selon la revendication 1 , caractérisé en ce que les k-uplets les plus vraisemblables sont obtenus par approximation ferme des composantes du mot reçu et par changement des composantes des moins fiables,
3.- Procédé selon la revendication 1 ou 2, dans lequel chacun des k-uplets de la liste de k-uplets est obtenu par:
- classement par ordre de fiabilité des composantes du mot de code reçu, suivant une permutation (T); - vérification que les k composantes les plus fiables du mot ainsi obtenu permettent de générer les n - k autres;
- choix de valeurs fermes pour m composantes les moins fiables desdites k composantes, m étant un entier inférieur à k;
- approximation ferme des k - m autres composantes; - codage du mot ferme ainsi obtenu, par un code égal à la composition dudit code par l'inverse de ladite permutation.
4.- Procédé selon la revendication 3, dans lequel la vérification s'effectue par
- application aux colonnes de la matrice de parité du code de la permutation; - vérification du rang de la matrice formée des n-k dernières colonnes de la matrice de parité ainsi permutée.
5.- Procédé selon la revendication 3 ou 4, dans lequel l'étape de vérification, lorsqu'elle est négative, est suivie d'une étape de modification de la permutation.
6.- Procédé selon la revendication 1 ou 2, dans lequel chacun des k-uplets de la liste de k-uplets est obtenu par: - classement par ordre de fiabilité des k premières composantes du mot de code reçu, par une permutation (T);
- choix de valeurs fermes pour m composantes les moins fiables, m étant un entier inférieur à k; - approximation ferme des k - m autres composantes;
- codage du mot ferme ainsi obtenu, par un code égal à la composition dudit code par l'inverse de ladite permutation.
7.- Procédé selon l'une des revendications 1 à 6, caractérisé en ce que le calcul de la j-ième composante du mot souple de sortie s'effectue, lorsqu'il n'existe pas de mot de code généré le plus proche ayant une j-ième composante opposée, par différence entre les métriques d'une part du mot de code généré le plus proche, et d'autre part, et du mot de code généré le moins proche
8.- Procédé selon l'une des revendications 1 à 6, caractérisé en ce que le calcul de la j-ième composante du mot souple de sortie s'effectue, lorsqu'il n'existe pas de mot de code généré le plus proche ayant une j-ième composante opposée, par addition à la j-ième composante du mot reçu d'un coefficient affecté du signe de la décision ferme de la j-ième composante du mot de code le plus proche reçu.
9.- Procédé selon l'une des revendications précédentes, caractérisé en ce que le mot reçu est affecté d'un bruit blanc additif et gaussien.
1 0.- Procédé de décodage à entrée souple et à sortie souple d'un mot (s) d'un code linéaire en bloc de dimension k et de longueur n, reçu depuis un canal de transmission, comprenant les étapes de
- choix du mot de code le plus proche du mot reçu dans une liste de mots fermes (yb) du code proches du mot de code reçu (s), générés en codant une liste de k-uplets les plus vraisemblables, - pour chaque composante d'ordre j du mot reçu, j variant de 1 à n:
* remplacement de la j-ième composante du mot reçu par l'inverse de la j-ième composante du dit mot de code de plus proche;
* choix du mot de code le plus proche du mot obtenu dans l'étape de remplacement dans une liste de mots fermes du code proches du mot de code obtenu dans l'étape de remplacement, générés en codant une liste de k-uplets les plus vraisemblables;
* calcul de la j-ième composante du mot souple de sortie par différence entre les métriques d'une part du mot de code le plus proche du mot reçu, et 18
d'autre part, et du mot de code le plus proche du mot obtenu dans l'étape de remplacement.
1 1 .- Procédé selon la revendication 10, caractérisé en e que dans l'étape du choix du mot de code le plus proche du mot reçu, les k-uplefs 'es plus vraisemblables sont obtenus par approximation ferme des composantes 'es plus fiables du mot reçu et par changement des composantes les moins fiables-
1 2.- Procédé selon la revendication 10 ou 1 1 caractérisé en ce que dans l'étape du choix du mot de code le plus proche du mot obtenu dans l'étape de remplacement, les k-uplets les plus vrσ'seπnblables sont obtenus par approximation ferme des composantes les plus fiab/es du mot obtenu dans l'étape de remplacement et par changement des composantes les moins fiables.
13.- Procédé selon l'une des revendications 10 à 1 2, caractérisé en ce que le mot reçu est affecté d'un bruit blanc additif et gaussien.
14.- Un procédé de décodage itératif d'un mot (R) d'un code produit reçu depuis un canal de transmission, comprenant pour au moins une itération, un décodage à entrée souple- et à sortie souple de lignes ou de colonnes dudit mot du code produit, selon le procédé de l'une des revendications 1 à 13.
PCT/FR1999/001018 1998-05-04 1999-04-29 Decodage iteratif de codes produits WO1999057816A1 (fr)

Priority Applications (7)

Application Number Priority Date Filing Date Title
KR1020007000037A KR20010015542A (ko) 1998-05-04 1999-04-29 적산 코드의 반복 디코딩 방법
BR9906417-0A BR9906417A (pt) 1998-05-04 1999-04-29 Decodificação iterativa de códigos produtos
AU35256/99A AU3525699A (en) 1998-05-04 1999-04-29 Product code iterative decoding
US09/446,152 US6460162B1 (en) 1998-05-04 1999-04-29 Product code iterative decoding
DE69936908T DE69936908T2 (de) 1998-05-04 1999-04-29 Iterative dekodierung von produktkoden
EP99916954A EP0995272B1 (fr) 1998-05-04 1999-04-29 Decodage iteratif de codes produits
JP55498899A JP4185167B2 (ja) 1998-05-04 1999-04-29 積符号の反復復号化

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR98/05612 1998-05-04
FR9805612A FR2778289B1 (fr) 1998-05-04 1998-05-04 Decodage iteratif de codes produits

Publications (1)

Publication Number Publication Date
WO1999057816A1 true WO1999057816A1 (fr) 1999-11-11

Family

ID=9525992

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR1999/001018 WO1999057816A1 (fr) 1998-05-04 1999-04-29 Decodage iteratif de codes produits

Country Status (11)

Country Link
US (1) US6460162B1 (fr)
EP (1) EP0995272B1 (fr)
JP (1) JP4185167B2 (fr)
KR (1) KR20010015542A (fr)
CN (1) CN1266555A (fr)
AU (1) AU3525699A (fr)
BR (1) BR9906417A (fr)
DE (1) DE69936908T2 (fr)
FR (1) FR2778289B1 (fr)
ID (1) ID25644A (fr)
WO (1) WO1999057816A1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2801744A1 (fr) * 1999-11-26 2001-06-01 Mathieu Arnaud Amelioration du decodage iteratif des codes produits par adjonction d'informations a priori
WO2004004132A1 (fr) * 2002-07-01 2004-01-08 Linkair Communications,Inc. Procede et appareil de decodage iteratif pour code de produit fonde sur une formule adjointe

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE270795T1 (de) 1998-09-28 2004-07-15 Comtech Telecomm Corp Turbo produktkode decodierer
US7356752B2 (en) * 2000-03-14 2008-04-08 Comtech Telecommunications Corp. Enhanced turbo product codes
EP1281241A2 (fr) 2000-04-04 2003-02-05 Advanced Hardware Architectures, Inc Systeme de turbo decodeur de code produit ameliore
US6289000B1 (en) * 2000-05-19 2001-09-11 Intellon Corporation Frame control encoder/decoder for robust OFDM frame transmissions
FR2814871A1 (fr) * 2000-10-02 2002-04-05 Sacet Procede de decodage iteratif associe a toutes concatenations d'un nombre determine de codes en blocs, ou assimiles
US6654926B1 (en) * 2000-10-11 2003-11-25 Itran Communications Ltd. Soft decision maximum likelihood encoder and decoder
JP4389373B2 (ja) * 2000-10-11 2009-12-24 ソニー株式会社 2元巡回符号を反復型復号するための復号器
US20030033570A1 (en) * 2001-05-09 2003-02-13 Khannanov Roman R. Method and apparatus for encoding and decoding low density parity check codes and low density turbo product codes
US7389463B2 (en) * 2001-05-29 2008-06-17 Thomson Licensing Hierarchical block coding for a packet-based communications system
WO2003030370A2 (fr) * 2001-10-04 2003-04-10 Comtech Aha Corporation Procede de decodage d'un code produit turbo au moyen d'un decodeur de correction d'erreur sans circuit de retour echelonnable et efficace du point de vue materiel
AU2003278362A1 (en) * 2002-06-21 2004-01-06 Thomson Licensing S.A. Method of forward error correction
US20040163030A1 (en) * 2003-02-13 2004-08-19 International Business Machines Corporation Iterative error correcting system
CA2465332C (fr) * 2003-05-05 2012-12-04 Ron Kerr Decodage de donnees d'entree temporaires pour codes lineaires
US7516389B2 (en) * 2004-11-04 2009-04-07 Agere Systems Inc. Concatenated iterative and algebraic coding
GB2426671B (en) * 2005-02-09 2007-09-19 Martin Tomlinson Improved error correction decoder
JP5374156B2 (ja) * 2005-11-07 2013-12-25 エージェンシー フォー サイエンス, テクノロジー アンド リサーチ データを復号化及び符号化するための装置及び方法
EP1931037A1 (fr) * 2006-12-07 2008-06-11 Deutsche Thomson OHG Méthode et dispositif pour le traitement des données d'un canal de transmission ou d'un canal d'enregistrement
EP1936813A1 (fr) * 2006-12-19 2008-06-25 Deutsche Thomson OHG Méthode et dispositif pour réduire les fautes de correction dans un décodeur Chase élargi
US20090019334A1 (en) * 2007-07-10 2009-01-15 Martin Tomlinson Error correction system using concatenated codes
FR2944167B1 (fr) * 2009-04-02 2014-03-28 Get Enst Bretagne Groupe Des Ecoles Des Telecomm Ecole Nationale Superieure Des Telecomm Bretagne Procede de decodage par re-encodage, dispositif et programme d'ordinateur correspondants
US9391641B2 (en) * 2013-04-26 2016-07-12 SK Hynix Inc. Syndrome tables for decoding turbo-product codes
CN104022786B (zh) * 2014-05-21 2017-09-01 上海宏光经济信息发展中心青岛电子技术部 乘积码译码方法
US10303364B2 (en) 2016-03-25 2019-05-28 SK Hynix Inc. Techniques for low-latency chase decoding of turbo product codes with soft information
US10313056B2 (en) * 2017-02-06 2019-06-04 Mitsubishi Electric Research Laboratories, Inc. Irregular polar code encoding

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0654910A1 (fr) * 1993-11-19 1995-05-24 France Telecom Procédé pour détecter des bits d'information traités par des codes en blocs concaténés

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2088676B (en) * 1980-11-14 1985-09-04 Plessey Co Ltd Transmission systems
US5539757A (en) * 1993-12-22 1996-07-23 At&T Corp. Error correction systems with modified Viterbi decoding
FR2753026B1 (fr) * 1996-08-28 1998-11-13 Pyndiah Ramesh Procede de transmission de bits d'information avec codage correcteur d'erreurs, codeur et decodeur pour la mise en oeuvre de ce procede
US6161209A (en) * 1997-03-28 2000-12-12 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry Through The Communications Research Centre Joint detector for multiple coded digital signals
US6192501B1 (en) * 1998-08-20 2001-02-20 General Electric Company High data rate maximum a posteriori decoder for segmented trellis code words

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0654910A1 (fr) * 1993-11-19 1995-05-24 France Telecom Procédé pour détecter des bits d'information traités par des codes en blocs concaténés

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CHASE D: "A CLASS OF ALGORITHMS FOR DECODING BLOCK CODES WITH CHANNEL MEASUREMENT INFORMATION", IEEE TRANSACTIONS ON INFORMATION THEORY, vol. 18, no. 1, 1 January 1972 (1972-01-01), pages 170 - 182, XP000500203 *
FOSSORIER M P C ET AL: "SOFT-DECISION DECODING OF LINEAR BLOCK CODES BASED ON ORDERED STATISTICS", IEEE TRANSACTIONS ON INFORMATION THEORY, vol. 41, no. 5, 1 September 1995 (1995-09-01), pages 1379 - 1396, XP000542626 *
RAMESH PYNDIAH ET AL: "NEAR OPTIMUM DECODING OF PRODUCT CODES", PROCEEDINGS OF THE GLOBAL TELECOMMUNICATIONS CONFERENCE (GLOBECOM), SAN FRANCISCO, NOV. 28 - DEC. 2, 1994, vol. 1, 28 November 1994 (1994-11-28), INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, pages 339 - 343, XP000488569 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2801744A1 (fr) * 1999-11-26 2001-06-01 Mathieu Arnaud Amelioration du decodage iteratif des codes produits par adjonction d'informations a priori
WO2004004132A1 (fr) * 2002-07-01 2004-01-08 Linkair Communications,Inc. Procede et appareil de decodage iteratif pour code de produit fonde sur une formule adjointe

Also Published As

Publication number Publication date
KR20010015542A (ko) 2001-02-26
US6460162B1 (en) 2002-10-01
JP2002509680A (ja) 2002-03-26
FR2778289B1 (fr) 2000-06-09
DE69936908T2 (de) 2008-05-15
ID25644A (id) 2000-10-19
BR9906417A (pt) 2000-07-11
EP0995272A1 (fr) 2000-04-26
EP0995272B1 (fr) 2007-08-22
FR2778289A1 (fr) 1999-11-05
AU3525699A (en) 1999-11-23
CN1266555A (zh) 2000-09-13
JP4185167B2 (ja) 2008-11-26
DE69936908D1 (de) 2007-10-04

Similar Documents

Publication Publication Date Title
EP0995272A1 (fr) Decodage iteratif de codes produits
EP0654910B1 (fr) Procédé de décodage itératif de codes en blocs concaténés
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&#39;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
EP3443678B1 (fr) Methode de décodage d&#39;un code polaire avec inversion de bits peu fiables
EP0808538B1 (fr) Dispositif de reception de signaux numeriques a structure iterative, module et procede correspondants
EP0848501B1 (fr) Système et procédé de transmission numérique comportant un code produit combiné à une modulation multidimensionnelle
EP0827285A1 (fr) Procédé de transmission de bits d&#39;information avec codage correcteur d&#39;erreurs, codeur et décodeur pour la mise en oeuvre de ce procédé
FR2909499A1 (fr) Procede et dispositif de decodage pour codes ldpc, et appareil de communication comprenant un tel dispositif
FR2815199A1 (fr) Procedes de turbocodage circulaire de grande distance minimale, et systemes pour leur mise en oeuvre
EP0848524A1 (fr) MAQ à codage perforé en trellis, avec décodage itératif
EP0917294B1 (fr) Système de transmission numérique, décodeur, et procédé de décodage
EP1128588A1 (fr) Procédé de transmission numérique de type à codage correcteur d&#39;erreurs comprenant une étape de sélection de schéma de poinçonnage
FR2834146A1 (fr) Turbo-decodeur compact a haute efficacite
FR2972878A1 (fr) Procede d&#39;encodage correcteur d&#39;erreur, procede de decodage et dispositifs associes.
FR2838580A1 (fr) Procedes et dispositifs de faible cout pour le decodage de codes produits
FR2884661A1 (fr) Procede et dispositif de decodage d&#39;un code a longueur variable prenant en compte une information de probabilite a priori
FR2983665A1 (fr) Procede de generation d&#39;un code correcteur lineaire maximise, procede et dispositif de decodage d&#39;un tel code
WO2012085214A1 (fr) Procede de reconstruction d&#39;une mesure de reference d&#39;une donnee confidentielle a partir d&#39;une mesure bruitee de cette donnee
WO2015079168A1 (fr) Codage de paquets de données par codes convolutifs et recouvrement de paquets effacés
EP1217752A2 (fr) Procédé de décodage itératif associé à toutes concaténations d&#39;un nombre déterminé de codes en blocs ou assimilés
WO2003023975A1 (fr) Procede de qualification de codes correcteurs d&#39;erreurs, procede d&#39;optimisation, codeur, decodeur et application correspondants
EP1333587A1 (fr) Module ACS dans un décodeur
WO2010112607A1 (fr) Procédé de décodage par ré-encodage, dispositif et programme d&#39;ordinateur correspondants
FR2805103A1 (fr) Procede de permutation pour turbo-codage convolutif de donnees

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 99800667.X

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SL SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

WWE Wipo information: entry into national phase

Ref document number: 09446152

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 35256/99

Country of ref document: AU

WWE Wipo information: entry into national phase

Ref document number: PA/a/2000/000099

Country of ref document: MX

WWE Wipo information: entry into national phase

Ref document number: 1020007000037

Country of ref document: KR

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: 1999916954

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1999916954

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWP Wipo information: published in national office

Ref document number: 1020007000037

Country of ref document: KR

WWW Wipo information: withdrawn in national office

Ref document number: 1020007000037

Country of ref document: KR

WWG Wipo information: grant in national office

Ref document number: 1999916954

Country of ref document: EP