WO2003023975A1 - Method for qualifying error-correcting codes, optimization method, corresponding encoder, decoder and application - Google Patents

Method for qualifying error-correcting codes, optimization method, corresponding encoder, decoder and application Download PDF

Info

Publication number
WO2003023975A1
WO2003023975A1 PCT/FR2002/003057 FR0203057W WO03023975A1 WO 2003023975 A1 WO2003023975 A1 WO 2003023975A1 FR 0203057 W FR0203057 W FR 0203057W WO 03023975 A1 WO03023975 A1 WO 03023975A1
Authority
WO
WIPO (PCT)
Prior art keywords
code
error
qualifying
error correcting
word
Prior art date
Application number
PCT/FR2002/003057
Other languages
French (fr)
Inventor
Claude Berrou
Michel Jezequel
Catherine Douillard
Original Assignee
France Telecom
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 filed Critical France Telecom
Publication of WO2003023975A1 publication Critical patent/WO2003023975A1/en

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/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/01Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes

Definitions

  • the field of the invention is that of the coding of digital data belonging to one or more sequences of source data intended to be transmitted, or broadcast, in particular in the presence of noises of various origins, and of the decoding of the coded data thus transmitted. .
  • the invention relates to the qualification of an error correcting code, in particular in order to determine the most effective code or codes, in terms of error correction, from among a set of possible codes.
  • This qualification concerns in particular all the codes which can be decoded by a weighted input decoder (for example, the convolutional codes or even the concatenated codes iteratively decoded in particular the codes known under the name of “turbo-code” (registered trademark)) .
  • decoding means with soft inputs and outputs, that is to say an elementary decoder of codes accepts input and outputs non-binary elements, weighted according to their likelihood.
  • the evaluation of the minimum distance of a code is generally not simple, unless the number of words in the code is small enough to be able to draw up an exhaustive list. In this case, it suffices to search for the non-zero word with the lowest Hamming weight to know the minimum distance of the code.
  • the evaluation of the minimum distance of the codes generally remains complex and no method in the state of the art makes it possible to determine the minimum distances of certain correcting codes and in particular convolutional turbo codes, quickly and / or with a power of reasonable calculation.
  • an objective of the invention is to optimize the coding with the aid of error correcting codes, in particular at low error rates; and therefore to provide such codes offering optimized efficiency, according to determined criteria.
  • the invention also aims to provide such a technique, allowing a large quantity of codes to be compared quickly and efficiently.
  • the method for qualifying an error correcting code is remarkable in that the set contains a single symbol.
  • the invention allowing in particular the determination of the first qualification information of the code is relatively simple to implement.
  • the method for qualifying an error correcting code is remarkable in that the set contains at least two symbols.
  • the method for qualifying an error correcting code is remarkable in that all the symbols of the set belong to a code word competing with the reference code word. It is noted that, by definition, a symbol belongs to a code word competing with the reference code word if its position corresponds to that of J a symbol which has a different value in the competing code word and the reference code word .
  • the set contains at least two symbols
  • these symbols are preferably chosen from the symbols belonging to a code word competing with the reference code word and which is also a short distance from the reference code word.
  • the error pulse can be distributed uniformly or not over all or part of the set of symbols.
  • the method for qualifying an error correcting code is remarkable in that there is associated with the set of at least one symbol affected by the error pulse an intermediate qualification data, function of a maximum amplitude of the error pulse affecting the assembly and not disturbing the decoding of the code word, called the pulse distance.
  • the method of qualifying an error correcting code is remarkable in that the estimation process is repeated at least twice introducing a perturbation on the same set of at least one symbol with amplitudes of the variable error pulse, so as to determine the pulse distance.
  • the pulse distance associated with this symbol is equal to the largest integer / such that the code word affected by the error pulse of equal amplitude whole / be decoded correctly.
  • the method for qualifying an error correcting code is remarkable in that the estimation process is repeated for at least two distinct sets of symbols of the reference code word.
  • the invention makes it possible to simply determine the pulse distance associated with several symbols of the reference code word.
  • the method for qualifying an error correcting code is remarkable in that the first qualification information is the minimum impulse distance, among the determined impulse distance (s).
  • the minimum impulse distance is simply determined which makes it possible to qualify the code tested very reliably.
  • the properties of the code are advantageously taken into account for the symbols for which the associated pulse distance is determined in order to determine the minimum pulse distance from the code. Indeed, one can in particular take account of the periodicities of the code. We note, in particular, that for a code invariant by translation, the determination of a single distance pulse associated with any symbol of the reference code word is sufficient to determine the minimum pulse distance of the code.
  • the method for qualifying an error correcting code is remarkable in that it assigns to the code a second qualification information, representative of the number of sets most sensitive to an error pulse, in the reference code word.
  • the method for qualifying an error correcting code is remarkable in that the second qualification information, known as multiplicity, is the ratio: - of the number of sets for which the pulse distance is equal to the distance minimum impulse; on the total number of symbols in a code word.
  • the invention makes it possible to refine the qualification of the code by taking account of the second qualification information.
  • the method for qualifying an error correcting code is remarkable in that the set or sets to which the estimation process is applied is or are selected taking into account any properties of periodicity of the coded.
  • the number of sets for which the impulse distance is equal to the minimum impulse distance is obtained by: a direct estimate when the determination of the impulse distance associated with each of the symbols capable of providing a impulse distance has been carried out equal to the minimum pulse distance; or - by extrapolation of this number of sets in view of the determination of a restricted number of minimum distances associated with a symbol, this extrapolation taking into account in particular the properties of the code (which advantageously simplifies the method).
  • the method for qualifying an error correcting code is remarkable in that the reference code word is a word whose all symbols take the binary value 0.
  • the method for qualifying an error correcting code is remarkable in that the reference code word undergoes modulation, before the insertion of an error pulse.
  • the invention makes it possible to obtain a qualification of the code taking into account not only the code itself and, where appropriate, the decoder but also the type of modulation used.
  • the method for qualifying an error correcting code is remarkable in that it includes a step of estimating a gain, known as asymptotic gain, representative of the effectiveness of the error correcting code relative to the absence of coding, according to at least one of the first qualification information.
  • the method for qualifying an error correcting code is remarkable in that the asymptotic gain is approached by:
  • Ga 101og (Rd min ) where: R is the efficiency of the error correcting code; d min is the minimum impulse distance.
  • the invention makes it possible to assimilate the concept of minimum pulse distance from the code to the concept of free distance from the code, in particular for the concept of asymptotic gain.
  • the method for qualifying an error correcting code is remarkable in that it comprises the following steps: generation of the reference code word; selecting at least one set of at least one symbol of the reference code word; assignment of an error pulse of a determined amplitude to the selected set (s) to form an incorrect word;
  • the reference code word can be modulated or not.
  • the method for qualifying an error correcting code is remarkable in that the amplitude of the error pulse is varied according to a determined rule, belonging to the group comprising:
  • the method for qualifying an error correcting code is remarkable in that the code is part of the group comprising: convolutional codes; convolutional turbo codes; - algebraic turbo codes; parallel concatenated codes; concatenated serial codes; and combinations of the preceding codes.
  • the invention is particularly well suited to the qualification of numerous codes which are in particular used in many fields in particular in that of mobile communications, data and / or image transmission, etc.
  • the method for qualifying an error correcting code is remarkable in that it further comprises a step of determining at least one code word symbol most sensitive to errors.
  • the method of qualifying an error correcting code is remarkable in that it further comprises a step of comparing the sensitivity of the code word symbols to errors and of constructing a unevenly protected code depending on the result of the comparison step.
  • the invention also relates to a method for optimizing a channel coding, remarkable in that it implements the method for qualifying an error correcting code on at least two candidate codes and a selection step. for channel coding of one of the candidate codes, based on an analysis of the first qualification information assigned to each of the candidate codes.
  • the method of optimizing a channel coding is remarkable in that each of the codes is associated with a predetermined modulation, and in that the selection step takes account of the code / modulation association.
  • the method for optimizing a channel coding is remarkable in that the selection step also takes account of the second qualification information and / or of the asymptotic gain.
  • the invention also relates to an encoder for correcting errors, remarkable in that the corresponding code is selected according to a code qualification method and / or a method for optimizing channel coding as previously described.
  • the invention further relates to a decoder allowing a decoding of coded data using an error correcting code and a corresponding error correction, remarkable in that the error correcting code is selected according to a method of qualification of codes and / or optimization of channel coding as previously described.
  • the coders and the decoders are based on a very efficient code and make it possible to obtain good performances in particular under conditions of weakly noisy transmission channel and can be implemented advantageously in varied applications in particular in the field of mobile communications. , data and / or image transmission, ....
  • the invention also relates to an application of the method for qualifying an error correcting code and / or the method for optimizing a channel coding to:
  • FIG. 2 illustrates an algorithm for estimating the minimum distance of an error correcting code, according to the invention
  • FIG. 4 describes a step of calculating pulse distance, implemented in the algorithm of FIG. 2.
  • FIG. 1 illustrates three bit error rate curves, BER, represented on the ordinate axis 11, as a function of the signal to noise ratio, Eb / No, represented on the abscissa axis 10:
  • a first non-coded curve, 12 is obtained for a transmission of binary data using QPSK modulation without the use of error codes;
  • a second curve 13 is obtained for a transmission of binary data with the use of an error correcting code (it is noted that this curve allows a gain, G, of several decibels, for example, for a bit error rate of around 10 "6 );
  • - a third curve represents the theoretical limit which can be obtained using an ideal code associated with an ideal decoding algorithm; this limit is a function of the yield, R, of the code (which is the ratio of the number of non-coded bits to the number of coded bits) and of the size of the block The lower the error rate at a given signal-to-noise ratio, the greater the difference between these curves.
  • a performance code, R equal to 1/2 capable of working around the theoretical limit for a bit error rate of 10 "8 must have a minimum distance of about 32.
  • the estimation of the minimum distance of a code has always been associated with a more or less exhaustive search for code words by using certain properties to avoid unnecessary calculations as much as possible.
  • the general principle of the invention is based on the decoding algorithm associated with the code and not on the use of the properties of the code.
  • the limitations of the decoder are taken into account.
  • the information extracted from it is not, in the usual sense, the minimum distance of the code, d min , but a quantity, called "pulse distance from the code", ⁇ i mpulse> representative of the correction power of the code and of the associated decoder.
  • the impulse distance of the code of impulse is equal to the distance of the code, d ⁇ .
  • the multiplicity, m associated with the distance from the code, that is to say the ratio of the number of symbols with which the pulse distance from the code, d min , is associated over the distance, is also determined. total number of symbols in a word. Taking into account the multiplicity makes it possible in particular to more finely estimate the asymptotic gain or to provide for unequal protection of the symbols to be coded.
  • FIG. 2 illustrates an algorithm for estimating the minimum distance of an error correcting code, according to the invention.
  • the different variables used by the algorithm are initialized.
  • the coding and modulation parameters are initialized by defining in particular: the code for which the free distance is to be estimated (for example, elementary codes and interleaving for turbo codes, punching pattern, etc. .) producing code words of length n (ie k binary information values and (nk) binary redundancy values); and the associated modulation (for example, BPSK, QPSK, FSK, ).
  • the code for which the free distance is to be estimated for example, elementary codes and interleaving for turbo codes, punching pattern, etc. .
  • code words of length n ie k binary information values and (nk) binary redundancy values
  • the associated modulation for example, BPSK, QPSK, FSK, .
  • an initial code word is generated (as a function of the code defined during step 21) which for a linear code contains only "0".
  • This code word is then modulated (according to the modulation defined in step 21) to produce a sequence (vj, v 2 , .... v n ).
  • a value symbol "-1" is associated with each "0" sent by the encoder
  • a pulse distance is determined, d mptdse, ⁇ associated with an error injected into the t th symbol of the sequence (v x , v 2 , .... v publication).
  • d mptdse ⁇ associated with an error injected into the t th symbol of the sequence (v x , v 2 , .... v publication).
  • step 24 is illustrated in more detail with reference to FIG. 4.
  • step 26 the value of i is incremented by one and step 24 is repeated.
  • the impulse distance associated with each of the k information symbols of the sequence is determined (vj, v 2 , .... Vj).
  • the impulse distance associated with each symbol belonging to a sub-sequence of the sequence (v 1 , v 2 , ..-. V *) is determined, this sub-sequence containing a number of symbols strictly less than k.
  • the error correcting code has properties of periodicity which are such that many positions of information symbols in the sequence (v x , v 2 , .... v k ) correspond to the same impulse distance and that the subset is chosen according to these properties.
  • these intervals depend on the interleaving function and the possible punching pattern.
  • the minimum pulse distance of the code is determined by retaining the smallest of the pulse distances associated with the binary values examined and determined during step 24.
  • the multiplicity, m also associated with the minimum pulse distance is determined.
  • the multiplicity, m is, by definition, the ratio of the number of symbols with which the pulse distance of the code, d min , is associated to the total number of symbols in a word.
  • a eneur be the amplitude of the error pulse added to the nominal value -1 (the amplitude of the symbol applied to the input of the decoder A is therefore equal to A error - 1).
  • a full bit error corresponds to an error pulse of amplitude 2 (change from -1 to +1).
  • the number of binary errors equivalent to an amplitude A e nie eur is therefore equal to A em ⁇ 2.
  • the number e is strictly less than d m 2.
  • a errmr is strictly less than d min and d impulse .
  • step 21 is repeated.
  • a code is chosen as a function of its minimum pulse distance.
  • FIG. 3 describes the step 22 of generating a sequence of symbols, illustrated with reference to FIG. 2.
  • the code whose parameters were initialized during step 21 is a linear code suitable for the transmission of packets, associating k bits of useful information with words of n bits after coding (the yield, R, of the code being equal to the ratio k / n).
  • the word “all 0” is translated into the code studied.
  • the code being linear, the n bits of the code word (u x , u 2 , ... u n ) are all zero.
  • the choice of the word “all 0” responds to a concern for simplicity: since the information message is "all 0", the code being linear, the redundancy is "all 0" too and we do not have to worry about coding, in other words, according to a variant of step 30, you can choose a code word different from the word "all 0").
  • step 31 the symbols are defined as they would have been emitted by a NRZ modulator (or “No Return to Zero”).
  • step 31 illustrated with reference to FIG. 2 is carried out.
  • FIG. 4 describes the step 24 for calculating pulse distance, illustrated with reference to FIG. 2.
  • step 40 one initializes:
  • variable J with a value equal to 2; and a sequence w of symbols equal to the sequence v.
  • the variable / is initialized to a value greater than 2, as a function of a lower bound (a priori known) of the minimum pulse distance.
  • an error, A error is initialized to a value equal to J- ⁇ , where ⁇ is any real number, between 0 and 1 strictly ( ⁇ is equal, for example, to 0.5); thus, the error, A error , is equal to a value strictly between (Jl) and J.
  • step 41 we select the i th symbol of w, w, which we assign to the value A error minus the value of v ⁇ or A error -1 (i being the parameter initialized during step 23 and updated during step 26).
  • the sequence w is decoded with a decoding algorithm adapted to the code chosen during step 21 and able to take into account the amplitudes of the symbols to be decoded (the decoder has weighted inputs) .
  • the decoding algorithm will be, for example, an iterative decoding algorithm as described in the patents
  • EP0511141 (whose title is “Error correcting coding method with at least two systematic convolutional codings in parallel, iterative decoding method, corresponding decoding module and decoder”) or EP735696 (whose title is
  • the number of iterations required depends on the distance to be determined. The greater the distance, the more iterations are required. The number of iterations can be several hundred. The results obtained are very dependent on the quality of the decoding.
  • the soft input and output algorithm must be able to operate without knowing the variance.
  • step 45 the variable / is incremented by one and step 41 is repeated.
  • step 45 when the modulation used is such that the protection of the binary values is uneven, the minimum equivalent distance of the coding-modulation pair, particular to each binary value, is itself unequal and is generally not not an integer value.
  • the variable / is incremented by a value strictly less than 1, in order to determine an actual pulse distance.
  • step 24 the variable / is assigned a value corresponding to an upper limit of the pulse distance increased by 1 during step 40.
  • Step 43 is followed by step 44 if the decoded word is equal to the initial code word, the pulse distance is then assigned the value of J.
  • step 43 is followed by step 45 if the decoded word is not equal to the initial code word, and j is decremented during step 45.
  • dichotomy we proceed by dichotomy:
  • variable J is initialized with a value corresponding to a lower bound, Jmin, of the pulse distance
  • variable J is initialized with a value corresponding to an upper bound, Jmax, of the pulse distance increased by 1;
  • the decoding algorithm does not converge on the word "all 0" and the amplitude of the error pulse is sufficient to disturb the decoding.
  • the value of the impulse distance, of impulse i associated with an error injected into the i * TM "symbol of the sequence (v x , v 2 , .... v n ) is equal to the current value of J minus 1.
  • step 44 the test 25 illustrated with reference to FIG. 2 is carried out.
  • the invention is not limited to the embodiments mentioned above.
  • - m represents the multiplicity associated with the pulse distance of the code
  • - k the number of information bits of a code word
  • the invention is not limited to the estimation of a minimum distance, but also makes it possible to determine the most sensitive symbols and therefore to propose coding schemes with multi-level protections. uneven levels or coding performance.
  • the error can be distributed over several symbols, provided that it is certain that these symbols will all belong to a selected competing code word (which means that these symbols are chosen at positions where the symbols of the reference code word and the positions of the competing code word differ), in the event of a decoder failure.
  • the error pulse will be carried on competing code words which are a short distance from the reference code word.
  • the distribution of the error pulse is preferably done by considering a "base" which is the symbol to be tested. This symbol receives a fraction of the error pulse and other symbols, possibly the remainder. It will thus be possible to determine the impulse distance associated with each basic symbol tested. We note that thus, when we distribute the error over several symbols, the multiplicity, m, is then, the ratio of the number of basic symbols with which is associated the pulse distance of the code, d min , over the total number of symbols in a word.
  • the invention also makes it possible to determine the processing of codes with an infinite message. In this case, we consider a message long enough to avoid edge problems (start and end of message) and we only look for the distances on the symbols far enough away from the start and end of the message.
  • the invention is applicable not only to convolutional turbocodes (parallel concatenation) but is also applicable to simple convolutional codes or to codes constructed from a serial concatenation, and more generally to all the codes from which the decoder can draw.
  • profit samples weighted input in English "soft input”
  • those using the Viterbi algorithm or the MAP algorithm from English “Maximum a Posteriori” or its simplified versions.
  • the invention is not limited to a purely material implantation but that it can also be implemented in the form of a sequence of instructions of a computer program or any form mixing a material part and a part. software.
  • the corresponding sequence of instructions may be stored in a removable storage means (such as for example a floppy disk, a CD-ROM or a DVD-ROM) or no, this storage means being partially or totally readable by a computer or a microprocessor.
  • the invention is not limited to the methods for qualifying or optimizing code described above but extends to the codes obtained by at least one of these methods, to the coder (respectively to the decoder) allowing to code (respectively decode) data according to this code.

Landscapes

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

Abstract

The invention concerns a method for qualifying an error-correcting code, delivering code words, each consisting at least of a symbol, the method associating with the code a first qualifying information, representing the capacity of the corresponding decoder to correct errors, obtained by using an estimation process comprising the following steps: inserting (41) a predetermined error pulse (A>error<), introducing a perturbation on a set of at least one symbol (w>i<) of a reference code word (v) previously correctly encoded; decoding (42), with a decoder with weighted inputs, the code word (w) modified by said error pulse, and analyzing the result of said decoding, delivering the first qualifying information (d>impulse, i<). The invention also concerns an optimization method, an encoder, a decoder and a corresponding application.

Description

Procédé de qualification de codes correcteurs d'erreurs, procédé d'optimisation, codeur, décodeur et application correspondants. Method for qualifying error correcting codes, optimization method, coder, decoder and corresponding application.
Le domaine de l'invention est celui du codage de données numériques appartenant à une, ou plusieurs, séquences de données sources destinées à être transmises, ou diffusées, notamment en présence de bruits d'origines diverses, et du décodage des données codées ainsi transmises.The field of the invention is that of the coding of digital data belonging to one or more sequences of source data intended to be transmitted, or broadcast, in particular in the presence of noises of various origins, and of the decoding of the coded data thus transmitted. .
Plus précisément, l'invention concerne la qualification d'un code correcteur d'erreurs, afin notamment de déterminer le ou les codes les plus efficaces, en termes de correction d'erreurs, parmi un ensemble de codes possibles.More specifically, the invention relates to the qualification of an error correcting code, in particular in order to determine the most effective code or codes, in terms of error correction, from among a set of possible codes.
Cette qualification concerne notamment, tous les codes qui peuvent être décodés par un décodeur à entrées pondérées (par exemple, les codes convolutifs ou encore les codes concaténés décodés itérativement notamment les codes connus sous le nom de « turbo-code » (marque déposée)).This qualification concerns in particular all the codes which can be decoded by a weighted input decoder (for example, the convolutional codes or even the concatenated codes iteratively decoded in particular the codes known under the name of “turbo-code” (registered trademark)) .
La transmission de l'information (données, image, parole,...) repose de plus en plus sur les techniques numériques de transmission. De nombreux efforts ont été faits en matière de codage de source pour réduire le débit numérique, tout en conservant une bonne qualité. Ces techniques nécessitent bien sûr une meilleure protection des éléments binaires vis-à-vis des perturbations liées à la transmission. L'utilisation de codes correcteurs d'erreurs puissants dans ces systèmes de transmission se révélait indispensable. C'est notamment dans ce but qu'a été proposée la technique des « turbo-codes ».The transmission of information (data, image, speech, ...) is increasingly based on digital transmission techniques. Many efforts have been made in source coding to reduce the digital bit rate, while maintaining good quality. These techniques obviously require better protection of the binary elements from disturbances linked to transmission. The use of powerful error correcting codes in these transmission systems was essential. It is in particular for this purpose that the technique of "turbo-codes" was proposed.
Le principe général des « turbo-codes » est notamment présenté dans le brevet français n° FR-91 05280, ayant pour titre « Procédé de codage correcteur d'erreurs à au moins deux codages convolutifs systématiques parallèles, procédé de décodage itératif, module de décodage et décodeur correspondants », et dans l'article de C. Berrou, A. Glavieux et P. Thitimajshima intitulé « Near Shannon limit error-correcting coding and decoding : Turbo-codes » publié dans IEEE International conférence on Communication, ICC'93, vol2/3, pages 1064 à 1071 en mai 1993. Un état de l'art est rappelé dans l'article de C. Berrou et A. Glavieux « Near Optimum Error Correcting Coding and Decoding : « Turbo-Codes » (IEEE Transactions on Communications, Volume 44, n° 10, pages 1261-1271, Octobre 1996). Selon cette technique, on propose la mise en œuvre d'un codage àThe general principle of "turbo-codes" is presented in particular in French patent n ° FR-91 05280, having for title "Corrective coding method of errors with at least two parallel systematic convolutional codings, iterative decoding method, module corresponding decoding and decoder ”, and in the article by C. Berrou, A. Glavieux and P. Thitimajshima entitled“ Near Shannon limit error-correcting coding and decoding: Turbo-codes ”published in IEEE International conference on Communication, ICC'93 , vol2 / 3, pages 1064 to 1071 in May 1993. A state of the art is recalled in the article by C. Berrou and A. Glavieux "Near Optimum Error Correcting Coding and Decoding:" Turbo-Codes "(IEEE Transactions on Communications, Volume 44, n ° 10 , pages 1261-1271, October 1996). According to this technique, the implementation of a coding is proposed.
« concaténation parallèle », s'appuyant sur l'utilisation d'au moins deux codeurs élémentaires. Cela permet de disposer, lors du décodage, de deux symboles de redondance issus de deux codeurs distincts. Entre les deux codeurs élémentaires, on met en œuvre des moyens de permutation, de façon que chacun de ces codeurs élémentaires soit alimenté par les mêmes données numériques source, mais prises dans des ordres différents."Parallel concatenation", based on the use of at least two elementary coders. This makes it possible, during decoding, to have two redundancy symbols coming from two separate coders. Between the two elementary coders, permutation means are used, so that each of these elementary coders is supplied with the same source digital data, but taken in different orders.
Un complément à ce type de technique, permettant d'obtenir des codes appelés « turbo-codes » algébriques, est destiné au codage algébrique (codes concaténés). Cette technique améliorée est décrite dans l'article de R. Pyndiah, A. Glavieux, A. Picart et S. Jacq « Near optimum decoding of product code » (publié dans IEEE Transactions on Communications, vol 46, n° 8 pages 1003 à 1010 en août 1998), dans le brevet FR-93 13858, ayant pour titre « Procédé pour transmettre des bits d'information en appliquant des codes en blocs concaténés», ainsi que dans l'article de O. Aitsab et R. Pyndiah « Performance of Reed Solomon block turbo-code » (IEEE Globecom'96 Conférence, Vol. 1/3, pages 121-125, Londres, Novembre 1996).A complement to this type of technique, making it possible to obtain codes called algebraic “turbo-codes”, is intended for algebraic coding (concatenated codes). This improved technique is described in the article by R. Pyndiah, A. Glavieux, A. Picart and S. Jacq "Near optimum decoding of product code" (published in IEEE Transactions on Communications, vol 46, n ° 8 pages 1003 to 1010 in August 1998), in patent FR-93 13858, having as its title "Method for transmitting bits of information by applying concatenated block codes", as well as in the article by O. Aitsab and R. Pyndiah " Performance of Reed Solomon block turbo-code ”(IEEE Globecom'96 Conference, Vol. 1/3, pages 121-125, London, November 1996).
Pour décoder les « turbo-codes » en blocs qu'ils soient du type convolutif ou algébrique, on a envisagé d'utiliser des moyens de décodage à entrées et sorties douces, c'est-à-dire qu'un décodeur élémentaire de codes accepte en entrée et fournit en sortie des éléments non binaires, pondérés en fonction de leur vraisemblance.To decode the “turbo-codes” in blocks, whether they are of the convolutional or algebraic type, it has been envisaged to use decoding means with soft inputs and outputs, that is to say an elementary decoder of codes accepts input and outputs non-binary elements, weighted according to their likelihood.
Afin d'optimiser le choix d'un code en fonction de critères tels que, par exemple, le niveau de performance recherché à un niveau de bruit donné, il est nécessaire de qualifier le code. On connaît déjà plusieurs techniques de qualification de codes correcteurs d'erreurs, notamment par simulations des performances à faibles taux d'erreurs.In order to optimize the choice of a code according to criteria such as, for example, the desired performance level at a given noise level, it is necessary to qualify the code. Several techniques for qualifying error correcting codes are already known, in particular by simulating performance at low error rates.
Cependant, un inconvénient de ces techniques est qu'elles nécessitent une puissance de calcul importante. Un autre inconvénient de ces techniques est qu'elles entraînent des temps de calcul prohibitifs.However, a disadvantage of these techniques is that they require significant computing power. Another disadvantage of these techniques is that they lead to prohibitive calculation times.
Encore un autre inconvénient de ces techniques est qu'elles ne permettent pas d'estimer des taux d'erreurs très faibles (par exemple inférieur à 10"12).Yet another drawback of these techniques is that they do not make it possible to estimate very low error rates (for example less than 10 "12 ).
Il est théoriquement possible d'estimer ces performances à faible taux d'erreurs lorsque la distance minimale du code est connue. Néanmoins, l'évaluation de la distance minimale d'un code n'est en général pas simple, sauf si le nombre de mots du code est suffisamment petit pour pouvoir en dresser une liste exhaustive. Dans ce cas, il suffit de rechercher le mot non nul de poids de Hamming le plus faible pour connaître la distance minimale du code. Ainsi, l'évaluation de la distance minimale des codes reste généralement complexe et aucune méthode dans l'état de la technique ne permet de déterminer les distances minimales de certains codes correcteurs et notamment des turbo codes convolutifs, rapidement et/ou avec une puissance de calcul raisonnable.It is theoretically possible to estimate these performances at low error rate when the minimum distance of the code is known. Nevertheless, the evaluation of the minimum distance of a code is generally not simple, unless the number of words in the code is small enough to be able to draw up an exhaustive list. In this case, it suffices to search for the non-zero word with the lowest Hamming weight to know the minimum distance of the code. Thus, the evaluation of the minimum distance of the codes generally remains complex and no method in the state of the art makes it possible to determine the minimum distances of certain correcting codes and in particular convolutional turbo codes, quickly and / or with a power of reasonable calculation.
On connaît notamment dans l'état de la technique, un document « An algorithm to compute the free distance of turbo codes » (ou en français « un algorithme pour calculer la distance libre des turbo codes ») écrit par R. Garello, P. Pierleoni, S. Benedetto et G. Montorsi, et publié dans le compte-rendu « Proceedings of the International Symposium on Information Theory 2000 » à la page 287. Ce document décrit notamment une méthode permettant de déterminer la distance minimale des turbocodes convolutifs sans être obligé de dresser la liste exhaustive des mots de code. La méthode décrite dans ce document est relativement efficace mais présente l'inconvénient d'être coûteuse en temps de calcul.We know in particular in the state of the art, a document "An algorithm to compute the free distance of turbo codes" (or in French "an algorithm to calculate the free distance of turbo codes") written by R. Garello, P. Pierleoni, S. Benedetto and G. Montorsi, and published in the report “Proceedings of the International Symposium on Information Theory 2000” on page 287. This document describes in particular a method for determining the minimum distance of the convolutional turbocodes without being obliged to draw up an exhaustive list of code words. The method described in this document is relatively effective but has the drawback of being costly in computation time.
Les mêmes problèmes peuvent également se poser avec d'autres types de codes que les « turbo-codes ». L'invention selon ses différents aspects a notamment pour objectif de pallier ces inconvénients de l'art antérieur.The same problems can also arise with other types of codes than "turbo-codes". The invention according to its different aspects aims in particular to overcome these drawbacks of the prior art.
Plus précisément, un objectif de l'invention est d'optimiser le codage à l'aide de codes correcteurs d'erreurs, notamment à de faibles taux d'erreurs ; et donc de fournir de tels codes offrant une efficacité optimisée, selon des critères déterminés.More specifically, an objective of the invention is to optimize the coding with the aid of error correcting codes, in particular at low error rates; and therefore to provide such codes offering optimized efficiency, according to determined criteria.
Un autre objectif de l'invention est de fournir une telle technique permettant de qualifier simplement et efficacement des codes correcteurs d'erreurs, avec une puissance de calcul raisonnable. Encore un autre objectif de l'invention est de fournir une telle technique permettant de qualifier des codes correcteurs d'erreurs en un temps relativement court.Another objective of the invention is to provide such a technique making it possible to simply and effectively qualify error correcting codes, with reasonable computing power. Yet another objective of the invention is to provide such a technique making it possible to qualify error correcting codes in a relatively short time.
L'invention a également pour objectif de fournir une telle technique, permettant de comparer efficacement et rapidement une grande quantité de codes. Ces objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints à l'aide d'un procédé de qualification d'un code correcteur d'erreurs, délivrant des mots de code, formés chacun d'au moins un symbole, remarquable en ce qu'il associe au code une première information de qualification, représentative de la capacité d'un décodeur correspondant à corriger des erreurs, obtenue à l'aide d'un processus d'estimation mettant en œuvre les étapes suivantes :The invention also aims to provide such a technique, allowing a large quantity of codes to be compared quickly and efficiently. These objectives, as well as others which will appear subsequently, are achieved using a method for qualifying an error correcting code, delivering code words, each formed of at least one symbol, remarkable in that it associates with the code a first qualification information, representative of the capacity of a decoder corresponding to correcting errors, obtained using an estimation process implementing the following steps:
- insertion d'une impulsion d'erreur prédéterminée, introduisant une perturbation sur un ensemble d'au moins un symbole d'un mot de code de référence préalablement codé sans erreur ;- insertion of a predetermined error pulse, introducing a perturbation on a set of at least one symbol of a reference code word previously coded without error;
- décodage, à l'aide d'un décodeur à entrées pondérées, du mot de code modifié par l'impulsion d'erreur, et analyse du résultat du décodage, délivrant la première information de qualification. Selon une caractéristique particulière, le procédé de qualification d'un code correcteur d'erreurs est remarquable en ce que l'ensemble contient un seul symbole. Ainsi, l'invention permettant notamment la détermination de la première information de qualification du code est relativement simple à mettre en œuvre.- decoding, using a weighted input decoder, the code word modified by the error pulse, and analysis of the result of the decoding, delivering the first qualification information. According to a particular characteristic, the method for qualifying an error correcting code is remarkable in that the set contains a single symbol. Thus, the invention allowing in particular the determination of the first qualification information of the code is relatively simple to implement.
Selon une caractéristique particulière, le procédé de qualification d'un code correcteur d'erreurs est remarquable en ce que l'ensemble contient au moins deux symboles.According to a particular characteristic, the method for qualifying an error correcting code is remarkable in that the set contains at least two symbols.
Selon une caractéristique particulière, le procédé de qualification d'un code correcteur d'erreurs est remarquable en ce que tous les symboles de l'ensemble appartiennent à un mot de code concurrent du mot de code de référence. On note que, par définition, un symbole appartient à un mot de code concurrent du mot de code de référence si sa position correspond à celle dJun symbole qui a une valeur différente dans le mot de code concurrent et le mot de code de référence.According to a particular characteristic, the method for qualifying an error correcting code is remarkable in that all the symbols of the set belong to a code word competing with the reference code word. It is noted that, by definition, a symbol belongs to a code word competing with the reference code word if its position corresponds to that of J a symbol which has a different value in the competing code word and the reference code word .
Ainsi, lorsque l'ensemble contient au moins deux symboles, on choisit préférentiellement ces symboles parmi les symboles appartenant à un mot de code concurrent du mot de code de référence et qui est en outre à une faible distance du mot de code de référence. Ceci permet au procédé de converger plus rapidement lorsque le décodage d'un mot de code est itératif (cas notamment du décodage des turbo-codes). Dans ce cas, on note également que l'impulsion d'erreur peut être répartie uniformément ou non sur tout ou une partie de l'ensemble de symboles. On peut notamment affecter une part importante de l'impulsion d'erreur à un symbole particulier appartenant à l'ensemble, dit symbole de base et le reliquat de l'impulsion d'erreur à tout ou une partie des autres symboles de l'ensemble.Thus, when the set contains at least two symbols, these symbols are preferably chosen from the symbols belonging to a code word competing with the reference code word and which is also a short distance from the reference code word. This allows the process to converge more quickly when the decoding of a code word is iterative (case in particular of the decoding of turbo-codes). In this case, it is also noted that the error pulse can be distributed uniformly or not over all or part of the set of symbols. One can in particular assign a large part of the error pulse to a particular symbol belonging to the set, called the basic symbol and the remainder of the error pulse to all or part of the other symbols of the set .
Selon une caractéristique particulière, le procédé de qualification d'un code correcteur d'erreurs est remarquable en ce qu'on associe à l'ensemble d'au moins un symbole affecté par l'impulsion d'erreur une donnée intermédiaire de qualification, fonction d'une amplitude maximale de l'impulsion d'erreur affectant l'ensemble et ne perturbant pas le décodage du mot de code, dite distance impulsionnelle. Selon une caractéristique particulière, le procédé de qualification d'un code correcteur d'erreurs est remarquable en ce que le processus d'estimation est répété au moins deux fois introduisant une perturbation sur le même ensemble d'au moins un symbole avec des amplitudes de l'impulsion d'erreur variables, de façon à déterminer la distance impulsionnelle.According to a particular characteristic, the method for qualifying an error correcting code is remarkable in that there is associated with the set of at least one symbol affected by the error pulse an intermediate qualification data, function of a maximum amplitude of the error pulse affecting the assembly and not disturbing the decoding of the code word, called the pulse distance. According to a particular characteristic, the method of qualifying an error correcting code is remarkable in that the estimation process is repeated at least twice introducing a perturbation on the same set of at least one symbol with amplitudes of the variable error pulse, so as to determine the pulse distance.
Ainsi, pour chaque symbole du mot de code de référence ou pour des symboles choisis, on peut déterminer la distance impulsionnelle associée à ce symbole et ainsi, obtenir de manière fiable la sensibilité de ce symbole à une erreur pour une utilisation d'un décodeur donné. Selon une caractéristique particulière, le procédé de qualification d'un code correcteur d'erreurs est remarquable en ce que la distance impulsionnelle est égale au plus grand entier / tel que le mot de code affecté de l'impulsion d'erreur d'amplitude égale à l'entier / soit décodé correctement.Thus, for each symbol of the reference code word or for selected symbols, it is possible to determine the pulse distance associated with this symbol and thus, to obtain in a reliable manner the sensitivity of this symbol to an error for the use of a given decoder . According to a particular characteristic, the method for qualifying an error correcting code is remarkable in that the pulse distance is equal to the largest integer / such that the code word affected by the error pulse of equal amplitude whole / be decoded correctly.
Selon une caractéristique particulière, le procédé de qualification d'un code correcteur d'erreurs est remarquable en ce que le processus d'estimation est répété pour au moins deux ensembles distincts de symboles du mot de code de référence.According to a particular characteristic, the method for qualifying an error correcting code is remarkable in that the estimation process is repeated for at least two distinct sets of symbols of the reference code word.
Ainsi, l'invention permet de déterminer simplement la distance impulsionnelle associée plusieurs symboles du mot de code de référence. Selon une caractéristique particulière, le procédé de qualification d'un code correcteur d'erreurs est remarquable en ce que la première information de qualification est la distance impulsionnelle minimale, parmi la ou les distances impulsionnelles déterminées.Thus, the invention makes it possible to simply determine the pulse distance associated with several symbols of the reference code word. According to a particular characteristic, the method for qualifying an error correcting code is remarkable in that the first qualification information is the minimum impulse distance, among the determined impulse distance (s).
Ainsi, on détermine simplement la distance impulsionnelle minimale qui permet de qualifier de manière très fiable le code testé.Thus, the minimum impulse distance is simply determined which makes it possible to qualify the code tested very reliably.
On note que l'on prend en compte avantageusement les propriétés du code pour les symboles dont on détermine la distance impulsionnelle associée afin de déterminer la distance impulsionnelle minimale du code. En effet, on peut notamment tenir compte des périodicités du code. On note, en particulier, que pour un code invariant par translation, la détermination d'une seule distance impulsionnelle associée à un symbole quelconque du mot de code de référence suffit à déterminer la distance impulsionnelle minimale du code.It is noted that the properties of the code are advantageously taken into account for the symbols for which the associated pulse distance is determined in order to determine the minimum pulse distance from the code. Indeed, one can in particular take account of the periodicities of the code. We note, in particular, that for a code invariant by translation, the determination of a single distance pulse associated with any symbol of the reference code word is sufficient to determine the minimum pulse distance of the code.
Selon une caractéristique particulière, le procédé de qualification d'un code correcteur d'erreurs est remarquable en ce qu'il affecte au code une seconde information de qualification, représentative du nombre des ensembles les plus sensibles à une impulsion d'erreur, dans le mot de code de référence.According to a particular characteristic, the method for qualifying an error correcting code is remarkable in that it assigns to the code a second qualification information, representative of the number of sets most sensitive to an error pulse, in the reference code word.
Selon une caractéristique particulière, le procédé de qualification d'un code correcteur d'erreurs est remarquable en ce que la seconde information de qualification, dite multiplicité, est le rapport : - du nombre des ensembles pour lesquels la distance impulsionnelle est égale à la distance impulsionnelle minimale ; sur le nombre total de symboles dans un mot de code. Ainsi, l'invention permet d'affiner la qualification du code en tenant compte de la seconde information de qualification. Selon une caractéristique particulière, le procédé de qualification d'un code correcteur d'erreurs est remarquable en ce que le ou les ensembles sur lequel ou lesquels est appliqué le processus d'estimation est ou sont sélectionnés en tenant compte des éventuelles propriétés de périodicité du code.According to a particular characteristic, the method for qualifying an error correcting code is remarkable in that the second qualification information, known as multiplicity, is the ratio: - of the number of sets for which the pulse distance is equal to the distance minimum impulse; on the total number of symbols in a code word. Thus, the invention makes it possible to refine the qualification of the code by taking account of the second qualification information. According to a particular characteristic, the method for qualifying an error correcting code is remarkable in that the set or sets to which the estimation process is applied is or are selected taking into account any properties of periodicity of the coded.
On note ainsi que le nombre des ensembles pour lesquels la distance impulsionnelle est égale à la distance impulsionnelle minimale est obtenu par : une estimation directe lorsque l'on a effectué la détermination de la distance impulsionnelle associée à chacun des symboles susceptibles de fournir une distance impulsionnelle égale à la distance impulsionnelle minimale ; ou - par extrapolation de ce nombre d'ensembles au vu de la détermination d'un nombre restreint de distances minimales associées à un symboles, cette extrapolation tenant compte notamment des propriétés du code (ce qui simplifie avantageusement le procédé). Selon une caractéristique particulière, le procédé de qualification d'un code correcteur d'erreurs est remarquable en ce que le mot de code de référence est un mot dont tous les symboles prennent la valeur binaire 0.It is thus noted that the number of sets for which the impulse distance is equal to the minimum impulse distance is obtained by: a direct estimate when the determination of the impulse distance associated with each of the symbols capable of providing a impulse distance has been carried out equal to the minimum pulse distance; or - by extrapolation of this number of sets in view of the determination of a restricted number of minimum distances associated with a symbol, this extrapolation taking into account in particular the properties of the code (which advantageously simplifies the method). According to a particular characteristic, the method for qualifying an error correcting code is remarkable in that the reference code word is a word whose all symbols take the binary value 0.
Le choix du mot « tout 0 » comme mot de code de référence permet notamment d'avoir un procédé particulièrement simple à mettre en œuvre en tenant compte de la linéarité du code.The choice of the word “all 0” as the reference code word makes it possible in particular to have a particularly simple process to implement taking into account the linearity of the code.
Selon une caractéristique particulière, le procédé de qualification d'un code correcteur d'erreurs est remarquable en ce que le mot de code de référence subit une modulation, avant l'insertion d'une impulsion d'erreur. Ainsi, l'invention permet d'obtenir une qualification du code en tenant compte non seulement du code lui-même et, le cas échéant, du décodeur mais aussi du type de modulation utilisé.According to a particular characteristic, the method for qualifying an error correcting code is remarkable in that the reference code word undergoes modulation, before the insertion of an error pulse. Thus, the invention makes it possible to obtain a qualification of the code taking into account not only the code itself and, where appropriate, the decoder but also the type of modulation used.
Selon une caractéristique particulière, le procédé de qualification d'un code correcteur d'erreurs est remarquable en ce qu'il comprend une étape d'estimation d'un gain, dit gain asymptotique, représentatif de l'efficacité du code correcteur d'erreurs par rapport à l'absence de codage, en fonction d'au moins une de la première information de qualification.According to a particular characteristic, the method for qualifying an error correcting code is remarkable in that it includes a step of estimating a gain, known as asymptotic gain, representative of the effectiveness of the error correcting code relative to the absence of coding, according to at least one of the first qualification information.
Selon une caractéristique particulière, le procédé de qualification d'un code correcteur d'erreurs est remarquable en ce que le gain asymptotique est approché par :According to a particular characteristic, the method for qualifying an error correcting code is remarkable in that the asymptotic gain is approached by:
Ga = 101og(R.dmin) où : R est le rendement du code correcteur d'erreurs ; dmin est la distance impulsionnelle minimale.Ga = 101og (Rd min ) where: R is the efficiency of the error correcting code; d min is the minimum impulse distance.
Ainsi, on l'invention permet d'assimiler la notion de distance impulsionnelle minimale du code à la notion de distance libre du code, notamment pour la notion de gain asymptotique.Thus, the invention makes it possible to assimilate the concept of minimum pulse distance from the code to the concept of free distance from the code, in particular for the concept of asymptotic gain.
On note que l'on peut aussi définir le gain asymptotique non seulement en fonction de la distance impulsionnelle minimale mais aussi de la multiplicité associée à cette distance. Ainsi, on peut obtenir une bonne estimation des performances du code notamment dans un canal très faiblement bruité.We note that we can also define the asymptotic gain not only as a function of the minimum pulse distance but also of the multiplicity associated with this distance. Thus, we can get a good estimate of the performance of the code, especially in a very low noise channel.
Selon une caractéristique particulière, le procédé de qualification d'un code correcteur d'erreurs est remarquable en ce qu'il comprend les étapes suivantes : génération du mot de code de référence ; sélection d'au moins un ensemble d'au moins un symbole du mot de code de référence ; affectation d'une impulsion d'erreur d'une amplitude déterminée au(x) ensemble(s) sélectionné(s) pour former un mot erroné;According to a particular characteristic, the method for qualifying an error correcting code is remarkable in that it comprises the following steps: generation of the reference code word; selecting at least one set of at least one symbol of the reference code word; assignment of an error pulse of a determined amplitude to the selected set (s) to form an incorrect word;
- décodage du mot erroné, prenant en compte des entrées pondérées, et délivrant un mot décodé; comparaison du mot décodé avec le mot de code initial. On note que le mot de code de référence peut être modulé ou non. Selon une caractéristique particulière, le procédé de qualification d'un code correcteur d'erreurs est remarquable en ce qu'on fait varier l'amplitude de l'impulsion d'erreur selon une règle déterminée, appartenant au groupe comprenant :- decoding of the wrong word, taking into account weighted entries, and delivering a decoded word; comparison of the decoded word with the initial code word. Note that the reference code word can be modulated or not. According to a particular characteristic, the method for qualifying an error correcting code is remarkable in that the amplitude of the error pulse is varied according to a determined rule, belonging to the group comprising:
- une première règle selon laquelle, lors de la première itération, l'amplitude de l'impulsion d'erreur est affectée d'une faible valeur et est incrémentée lors des itérations suivantes jusqu'à ce que le mot décodé soit différent du mot de code initial ;a first rule according to which, during the first iteration, the amplitude of the error pulse is assigned a small value and is incremented during the following iterations until the decoded word is different from the word initial code;
- une seconde règle selon laquelle, lors de la première itération, l'amplitude de l'impulsion d'erreur est affectée d'une forte valeur et est décrémentée lors des itérations suivantes jusqu'à ce que le mot décodé soit égal au mot de code initial ;a second rule according to which, during the first iteration, the amplitude of the error pulse is assigned a high value and is decremented during the following iterations until the decoded word is equal to the word of initial code;
- une troisième règle selon laquelle, lors des premières itérations, l'amplitude de l'impulsion d'erreur est affectée de deux valeurs extrêmes et, lors des itérations suivantes, on procède par dichotomie, la valeur de l'amplitude de l'erreur étant choisie en fonction de la sous- étape de comparaison ; et une combinaison des première et seconde règles avec la troisième règle. Selon une caractéristique particulière, le procédé de qualification d'un code correcteur d'erreurs est remarquable en ce que le code fait partie du groupe comprenant : des codes convolutifs ; des turbo codes convolutifs ; - des turbo codes algébriques ; des codes concaténés parallèles ; des codes concaténés séries ; et des combinaisons des codes précédents. Ainsi, l'invention est particulièrement bien adaptée à la qualification de nombreux codes qui sont notamment utilisés dans beaucoup de domaines notamment dans celui des communications mobiles, de la transmission de données et/ou d'images, ...a third rule according to which, during the first iterations, the amplitude of the error pulse is affected by two extreme values and, during the following iterations, we proceed by dichotomy, the value of the magnitude of the error being chosen as a function of the comparison sub-step; and a combination of the first and second rules with the third rule. According to a particular characteristic, the method for qualifying an error correcting code is remarkable in that the code is part of the group comprising: convolutional codes; convolutional turbo codes; - algebraic turbo codes; parallel concatenated codes; concatenated serial codes; and combinations of the preceding codes. Thus, the invention is particularly well suited to the qualification of numerous codes which are in particular used in many fields in particular in that of mobile communications, data and / or image transmission, etc.
Selon une caractéristique particulière, le procédé de qualification d'un code correcteur d'erreurs est remarquable en ce qu'il comprend, en outre, une étape de détermination d'au moins un symbole de mot de code le plus sensible aux erreurs.According to a particular characteristic, the method for qualifying an error correcting code is remarkable in that it further comprises a step of determining at least one code word symbol most sensitive to errors.
Selon une caractéristique particulière, le procédé de qualification d'un code correcteur d'erreurs est remarquable en ce qu'il comprend, en outre, une étape de comparaison de la sensibilité des symboles de mot de code aux erreurs et de construction d'un code à protection inégale en fonction du résultat de l'étape de comparaison.According to a particular characteristic, the method of qualifying an error correcting code is remarkable in that it further comprises a step of comparing the sensitivity of the code word symbols to errors and of constructing a unevenly protected code depending on the result of the comparison step.
L'invention concerne également un procédé d'optimisation d'un codage de canal, remarquable en ce qu'il met en œuvre le procédé de qualification d'un code correcteur d'erreurs sur au moins deux codes candidats et une étape de sélection pour le codage de canal d'un des codes candidats, en fonction d'une analyse des premières informations de qualification affectées à chacun des codes candidats.The invention also relates to a method for optimizing a channel coding, remarkable in that it implements the method for qualifying an error correcting code on at least two candidate codes and a selection step. for channel coding of one of the candidate codes, based on an analysis of the first qualification information assigned to each of the candidate codes.
Selon une caractéristique particulière, le procédé d'optimisation d'un codage de canal est remarquable en ce que chacun des codes est associé à une modulation prédéterminée, et en ce que l'étape de sélection tient compte de l'association code/modulation.According to a particular characteristic, the method of optimizing a channel coding is remarkable in that each of the codes is associated with a predetermined modulation, and in that the selection step takes account of the code / modulation association.
Selon une caractéristique particulière, le procédé d'optimisation d'un codage de canal est remarquable en ce que l'étape de sélection tient compte de également de la seconde information de qualification et/ou du gain asymptotique. L'invention concerne aussi un codeur permettant la correction d'erreurs, remarquable en ce que le code correspondant est sélectionné selon un procédé de qualification de codes et/ou un procédé d'optimisation d'un codage de canal tel que précédemment décrit.According to a particular characteristic, the method for optimizing a channel coding is remarkable in that the selection step also takes account of the second qualification information and / or of the asymptotic gain. The invention also relates to an encoder for correcting errors, remarkable in that the corresponding code is selected according to a code qualification method and / or a method for optimizing channel coding as previously described.
L'invention concerne en outre un décodeur permettant un décodage de données codées à l'aide d'un code correcteur d'erreurs et une correction d'erreurs correspondante, remarquable en ce que le code correcteur d'erreurs est sélectionné selon un procédé de qualification de codes et/ou d'optimisation d'un codage de canal tel que précédemment décrit.The invention further relates to a decoder allowing a decoding of coded data using an error correcting code and a corresponding error correction, remarkable in that the error correcting code is selected according to a method of qualification of codes and / or optimization of channel coding as previously described.
Ainsi, les codeurs et les décodeurs sont basés sur un code très efficace et permettent d'obtenir de bonnes performances notamment dans des conditions de canal de transmission faiblement bruité et peuvent être mis en œuvre avantageusement dans des applications variées notamment dans le domaine des communications mobiles, de la transmission de données et/ou d'images, ....Thus, the coders and the decoders are based on a very efficient code and make it possible to obtain good performances in particular under conditions of weakly noisy transmission channel and can be implemented advantageously in varied applications in particular in the field of mobile communications. , data and / or image transmission, ....
L'invention concerne également une application du procédé de qualification d'un code correcteur d'erreurs et/ou du procédé d'optimisation d'un codage de canal à:The invention also relates to an application of the method for qualifying an error correcting code and / or the method for optimizing a channel coding to:
- la transmission de données sur un canal bruité; lOptimisation de codage de canal avec protection inégale ;- data transmission over a noisy channel; l Optimized channel coding with uneven protection;
- l'estimation de la distance libre d'un code ; et/ou - l'estimation des performances d'un code. Les avantages un procédé d'optimisation d'un codage de canal et des applications des procédés de qualification et/ou d'optimisation sont les mêmes que ceux du procédé qualification d'un code correcteur d'erreurs, ils ne sont pas détaillés plus amplement. 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, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels :- the estimation of the free distance of a code; and / or - the estimation of the performance of a code. The advantages of a method for optimizing a channel coding and of the applications of the qualification and / or optimization methods are the same as those of the qualification method of an error correcting code, they are not described in more detail. . Other characteristics and advantages of the invention will appear more clearly on reading the following description of a preferred embodiment, given by way of simple illustrative and nonlimiting example, and of the appended drawings, among which:
- la figure 1 présente des courbes de taux d'erreurs connues en soi; - la figure 2 illustre un algorithme d'estimation de distance minimale d'un code correcteur d'erreurs, selon l'invention ;- Figure 1 shows error rate curves known per se; FIG. 2 illustrates an algorithm for estimating the minimum distance of an error correcting code, according to the invention;
- la figure 3 décrit une étape de génération d'une séquence de symboles, mise en œuvre dans l'algorithme de la figure 2 ; et- Figure 3 describes a step of generating a sequence of symbols, implemented in the algorithm of Figure 2; and
- la figure 4 décrit une étape de calcul de distance impulsionnelle, mise en œuvre dans l'algorithme de la figure 2.FIG. 4 describes a step of calculating pulse distance, implemented in the algorithm of FIG. 2.
On rappelle qu'une procédure optimale de décodage conduirait à choisir le mot de code le plus proche du mot reçu. Plus la distance entre mots de code est importante et plus le décodage peut être efficace à faible taux d'erreurs. La distance de Hamming minimale entre ces mots, qui est le nombre minimal de valeurs binaires différentes, dans ces mots, est appelée « distance minimale du code ». Elle est notée dmin. La détermination de cette distance permet d'estimer les performances du code pour les faibles taux d'erreurs. Cette estimation permet d'éviter des simulations longues et coûteuses.It will be recalled that an optimal decoding procedure would lead to choosing the code word closest to the received word. The greater the distance between code words, the more efficient the decoding can be at low error rates. The minimum Hamming distance between these words, which is the minimum number of different binary values, in these words is called the "minimum code distance". It is noted d min . The determination of this distance makes it possible to estimate the performance of the code for low error rates. This estimation avoids long and costly simulations.
La figure 1 illustre trois courbes de taux d'erreurs bit, TEB, représenté sur l'axe des ordonnées 11, en fonction du rapport signal à bruit, Eb/No, représenté sur l'axe des abscisses 10 :FIG. 1 illustrates three bit error rate curves, BER, represented on the ordinate axis 11, as a function of the signal to noise ratio, Eb / No, represented on the abscissa axis 10:
- une première courbe non codée, 12, est obtenue pour une transmission de données binaires à l'aide d'une modulation QPSK sans utilisation de code d'erreurs ; - une deuxième courbe 13 est obtenue pour une transmission de données binaires avec utilisation d'un code correcteur d'erreur (on note que cette courbe permet un gain, G, de plusieurs décibels, par exemple, pour un taux d'erreurs bit de l'ordre de 10"6) ; et - une troisième courbe représente la limite théorique qui peut être obtenue en utilisant un code idéal associé à un algorithme de décodage idéal ; cette limite est fonction du rendement, R , du code (qui est le rapport du nombre de bits non codés sur le nombre de bits codés) et de la taille du bloc. Plus le taux d'erreurs est faible à un rapport signal à bruit donné, plus l'écart entre ces courbes est grand.- a first non-coded curve, 12, is obtained for a transmission of binary data using QPSK modulation without the use of error codes; a second curve 13 is obtained for a transmission of binary data with the use of an error correcting code (it is noted that this curve allows a gain, G, of several decibels, for example, for a bit error rate of around 10 "6 ); and - a third curve represents the theoretical limit which can be obtained using an ideal code associated with an ideal decoding algorithm; this limit is a function of the yield, R, of the code (which is the ratio of the number of non-coded bits to the number of coded bits) and of the size of the block The lower the error rate at a given signal-to-noise ratio, the greater the difference between these curves.
Il est possible de démontrer qu'il y a un lien entre la distance minimale du code et le gain maximal obtenu par celui-ci. Ce gain est appelé « gain asymptotique », Ga , mesuré en décibels, et on peut écrire en première approximation la relation suivante : Ga # 101og(R. m„)-It is possible to demonstrate that there is a link between the minimum distance of the code and the maximum gain obtained by it. This gain is called “asymptotic gain”, Ga, measured in decibels, and we can write as a first approximation the following relation: Ga # 101og (R. M „) -
Ainsi, par exemple, un code de rendement, R, égal à 1/2 capable de travailler aux environs de la limite théorique pour un taux d'erreurs binaires de 10"8 doit posséder une distance minimale d'environ 32.So, for example, a performance code, R, equal to 1/2 capable of working around the theoretical limit for a bit error rate of 10 "8 must have a minimum distance of about 32.
Selon l'état de l'art, l'estimation de la distance minimale d'un code a toujours été associée à une recherche plus ou moins exhaustive des mots de codes en utilisant certaines propriétés pour éviter au maximum les calculs inutiles.According to the state of the art, the estimation of the minimum distance of a code has always been associated with a more or less exhaustive search for code words by using certain properties to avoid unnecessary calculations as much as possible.
Le principe général de l'invention repose, quant à lui, sur l'algorithme de décodage associé au code et non pas sur l'utilisation des propriétés du code.The general principle of the invention is based on the decoding algorithm associated with the code and not on the use of the properties of the code.
Ainsi, selon l'invention, on prend en compte les limitations du décodeur. L'information qui en est extraite n'est pas, au sens habituel, la distance minimale du code, dmin, mais une grandeur, appelée « distance impulsionnelle du code », ^impulse > représentative du pouvoir de correction du code et du décodeur associé. On peut vérifier que pour de nombreux codes linéaires, la distance impulsionnelle du code, dimpulse est égale à la distance du code, d^. Selon une variante de l'invention, on détermine également la multiplicité, m, associée à la distance du code, c'est-à-dire le rapport du nombre de symboles auquel est associée la distance impulsionnelle du code, dmin, sur le nombre total de symboles dans un mot. La prise en compte de la multiplicité permet notamment d'estimer plus finement le gain asymptotique ou de prévoir une protection inégale des symboles à coder.Thus, according to the invention, the limitations of the decoder are taken into account. The information extracted from it is not, in the usual sense, the minimum distance of the code, d min , but a quantity, called "pulse distance from the code", ^ i mpulse> representative of the correction power of the code and of the associated decoder. One can check that for many linear codes, the impulse distance of the code of impulse is equal to the distance of the code, d ^. According to a variant of the invention, the multiplicity, m, associated with the distance from the code, that is to say the ratio of the number of symbols with which the pulse distance from the code, d min , is associated over the distance, is also determined. total number of symbols in a word. Taking into account the multiplicity makes it possible in particular to more finely estimate the asymptotic gain or to provide for unequal protection of the symbols to be coded.
La figure 2 illustre un algorithme d'estimation de distance minimale d'un code correcteur d'erreurs, selon l'invention.FIG. 2 illustrates an algorithm for estimating the minimum distance of an error correcting code, according to the invention.
Au cours d'une première étape d'initialisation 20, les différentes variables utilisées par l' algorithme sont initialisées .During a first initialization step 20, the different variables used by the algorithm are initialized.
Puis, au cours d'une étape 21, on initialise les paramètres de codage et de modulation en définissant notamment : le code dont on veut estimer la distance libre (par exemple, codes élémentaires et entrelacement pour turbo codes, motif de poinçonnage,...) produisant des mots de codes de longueurs n (soit k valeurs binaires d'information et (n-k) valeurs binaires de redondances) ; et la modulation associée (par exemple, BPSK, QPSK, FSK,...).Then, during a step 21, the coding and modulation parameters are initialized by defining in particular: the code for which the free distance is to be estimated (for example, elementary codes and interleaving for turbo codes, punching pattern, etc. .) producing code words of length n (ie k binary information values and (nk) binary redundancy values); and the associated modulation (for example, BPSK, QPSK, FSK, ...).
Puis, au cours d'une étape 22, on génère un mot de code initial (en fonction du code défini lors de l'étape 21) qui pour un code linéaire ne contient que des « 0 ». Ce mot de code est ensuite modulé (selon la modulation définie à l'étape 21) pour produire une séquence (vj, v2, ....vn). Pour une modulation binaire, on associe un symbole de valeur « -1 » à chaque « 0 » émis par le codeurThen, during a step 22, an initial code word is generated (as a function of the code defined during step 21) which for a linear code contains only "0". This code word is then modulated (according to the modulation defined in step 21) to produce a sequence (vj, v 2 , .... v n ). For binary modulation, a value symbol "-1" is associated with each "0" sent by the encoder
(des symboles « +1 » seraient associés aux « 1 » émis par le codeur). On note que cette succession de symboles égaux à « -1 » était transmise au décodeur correspondant au code choisi, celui-ci convergerait sans aucune difficulté vers le mot « tout 0 » contenant k valeurs binaires nulles. On note également que l'étape(symbols “+1” would be associated with “1” emitted by the coder). It is noted that this succession of symbols equal to “-1” was transmitted to the decoder corresponding to the chosen code, it would converge without any difficulty towards the word “all 0” containing k zero binary values. We also note that the step
22 est illustrée plus en détail en regard de la figure 3.22 is illustrated in more detail with reference to FIG. 3.
Ensuite, au cours d'une étape 23, on initialise une variable i à 1. Puis, au cours d'une étape 24, on détermine une distance impulsionnelle, dmptdse,ι associée à une erreur injectée au tème symbole de la séquence (vx, v2, ....v„). Ainsi, on transforme le ème symbole de la séquence (vl 5 v2, ....v„) en un symbole ayant une valeur positive. On fait croître l'amplitude de cette erreur jusqu'à ce que le décodeur ne converge pas vers le mot « tout 0 ». L'association codeur/décodeur est alors mise en défaut.Then, during a step 23, we initialize a variable i to 1. Then, during a step 24, a pulse distance is determined, d mptdse, ι associated with an error injected into the t th symbol of the sequence (v x , v 2 , .... v „). Thus, we transform the th symbol of the sequence (v l 5 v 2 , .... v „) into a symbol with a positive value. The amplitude of this error is increased until the decoder does not converge on the word "all 0". The encoder / decoder association is then faulted.
En appliquant cette méthode, la capacité de correction du code n'est pas évaluée sur des erreurs réparties sur le mot présenté au décodeur (selon des techniques connues en soi) mais sur un seul symbole. L'expérience montre que la capacité de correction reste la même.By applying this method, the capacity for correcting the code is not evaluated on errors distributed over the word presented to the decoder (according to techniques known per se) but on a single symbol. Experience shows that the ability to correct remains the same.
La valeur minimale de l'impulsion ne mettant pas en défaut le système de correction est directement liée à la distance impulsionnelle, dimpulsei , associée à la valeur binaire affectée par l'erreur. La distance impulsionnelle, dimpulseιi , est ainsi déterminée et sauvegardée. On note également que l'étape 24 est illustrée plus en détail en regard de la figure 4.The minimum value of the pulse which does not fault the correction system is directly linked to the pulse distance, d impulsei , associated with the binary value affected by the error. The pulse distance, d impulseιi , is thus determined and saved. It is also noted that step 24 is illustrated in more detail with reference to FIG. 4.
Ensuite, au cours d'un test 25, on détermine si la valeur de i est égale à k.Then, during a test 25, it is determined whether the value of i is equal to k.
Dans la négative, au cours d'une étape 26, la valeur de i est incrémentée d'une unité et l'étape 24 est réitérée. On note qu'ainsi, on détermine la distance impulsionnelle associée à chacun des k symboles d'information de la séquence (vj , v2, ....Vj).If not, during a step 26, the value of i is incremented by one and step 24 is repeated. We note that thus, the impulse distance associated with each of the k information symbols of the sequence is determined (vj, v 2 , .... Vj).
Selon une variante du test 25 et de l'étape 26, on détermine la distance impulsionnelle associée à chaque symbole appartenant à une sous-séquence de la séquence (v1, v2, ..-.v*), cette sous-séquence contenant un nombre de symboles inférieur strictement à k. Cette variante est avantageusement mise en œuvre lorsque, notamment, le code correcteur d'erreurs présente des propriétés de périodicité qui sont telles que beaucoup de positions de symboles d'information dans la séquence (vx, v2, ....vk) correspondent à la même distance impulsionnelle et que le sous-ensemble est choisi en fonction de ces propriétés. On note que dans le cas des turbo codes convolutifs, ces périodicités dépendent de la fonction d'entrelacement et du motif de poinçonnage éventuel.According to a variant of test 25 and of step 26, the impulse distance associated with each symbol belonging to a sub-sequence of the sequence (v 1 , v 2 , ..-. V *) is determined, this sub-sequence containing a number of symbols strictly less than k. This variant is advantageously implemented when, in particular, the error correcting code has properties of periodicity which are such that many positions of information symbols in the sequence (v x , v 2 , .... v k ) correspond to the same impulse distance and that the subset is chosen according to these properties. We note that in the in the case of convolutional turbo codes, these intervals depend on the interleaving function and the possible punching pattern.
Si le résultat du test est positif, au cours d'une étape 27, on détermine la distance impulsionnelle minimale du code en retenant la plus petite des distances impulsionnelles associées aux valeurs binaires examinées et déterminées lors de l'étape 24.If the test result is positive, during a step 27, the minimum pulse distance of the code is determined by retaining the smallest of the pulse distances associated with the binary values examined and determined during step 24.
En variante, lors de l'étape 27, on détermine également la multiplicité, m, associée à la distance impulsionnelle minimale. La multiplicité, m, est, par définition, le rapport du nombre de symboles auquel est associée la distance impulsionnelle du code, dmin, sur le nombre total de symboles dans un mot.Alternatively, during step 27, the multiplicity, m, also associated with the minimum pulse distance is determined. The multiplicity, m, is, by definition, the ratio of the number of symbols with which the pulse distance of the code, d min , is associated to the total number of symbols in a word.
On note que le nombre d'erreurs que peut corriger un code ayant une distance minimale dmin est strictement inférieur à dmiJ2 erreurs. Soit Aeneur, l'amplitude de l'impulsion d'erreur ajoutée à la valeur nominale -1 (l'amplitude du symbole appliqué à l'entrée du décodeur A est donc égale à Aerreur - 1). Une erreur binaire pleine correspond à une impulsion d'erreur d'amplitude 2 (passage de -1 à +1). Le nombre d'erreurs binaires équivalentes à une amplitude Aeeur est donc e valant Aemι 2.We note that the number of errors that can be corrected by a code with a minimum distance d min is strictly less than d mi J2 errors. Let A eneur be the amplitude of the error pulse added to the nominal value -1 (the amplitude of the symbol applied to the input of the decoder A is therefore equal to A error - 1). A full bit error corresponds to an error pulse of amplitude 2 (change from -1 to +1). The number of binary errors equivalent to an amplitude A eeur is therefore equal to A emι 2.
Si l'impulsion d'erreur est corrigée, alors le nombre e est strictement inférieur à dm 2. Ainsi, en assimilant exactement distance minimale et distance impulsionnelle, Aerrmr est strictement inférieur à dmin et à dimpulse.If the error pulse is corrected, then the number e is strictly less than d m 2. Thus, by assimilating exactly minimum distance and pulse distance, A errmr is strictly less than d min and d impulse .
Puis, au cours d'une étape 28, on détermine s'il est nécessaire de déterminer la distance impulsionnelle minimale associé à nouveau code.Then, during a step 28, it is determined whether it is necessary to determine the minimum impulse distance associated with the new code.
Dans l'affirmative, l'étape 21 est réitérée.If so, step 21 is repeated.
Dans la négative, au cours d'une étape 29, un code est choisi en fonction de sa distance impulsionnelle minimale.If not, during a step 29, a code is chosen as a function of its minimum pulse distance.
Selon une variante, au cours de l'étape 29, d'autres paramètres tels que, par exemple, la multiplicité associée à la distance impulsionnelle minimale du code et/ou la complexité du code sont, en outre, pris en compte pour le choix du code. La figure 3 décrit l'étape 22 de génération d'une séquence de symboles, illustrée en regard de la figure 2.According to a variant, during step 29, other parameters such as, for example, the multiplicity associated with the minimum pulse distance of the code and / or the complexity of the code are also taken into account for the choice code. FIG. 3 describes the step 22 of generating a sequence of symbols, illustrated with reference to FIG. 2.
On suppose que le code dont les paramètres ont été initialisés lors de l'étape 21 est un code linéaire adapté à la transmission de paquets, associant k bits d'information utile à des mots de n bits après codage (le rendement, R, du code étant égal au rapport k/n).It is assumed that the code whose parameters were initialized during step 21 is a linear code suitable for the transmission of packets, associating k bits of useful information with words of n bits after coding (the yield, R, of the code being equal to the ratio k / n).
Au cours d'une étape 30, on traduit le mot « tout 0 » dans le code étudié. Le code étant linéaire, les n bits du mot de code (ux, u2, ...un) sont tous nuls. (Ici, le choix du mot « tout 0 » répond à un souci de simplicité : puisque le message d'information est « tout 0 », le code étant linéaire , la redondance est « tout 0 » aussi et on n'a pas à se préoccuper du codage ; en d'autres termes, selon une variante de l'étape 30, on peut choisir un mot du code différent du mot « tout 0 »).During a step 30, the word “all 0” is translated into the code studied. The code being linear, the n bits of the code word (u x , u 2 , ... u n ) are all zero. (Here, the choice of the word "all 0" responds to a concern for simplicity: since the information message is "all 0", the code being linear, the redundancy is "all 0" too and we do not have to worry about coding, in other words, according to a variant of step 30, you can choose a code word different from the word "all 0").
Ensuite, au cours d'une étape 31, on définit les symboles telles qu'ils auraient été émis par un modulateur NRZ (ou « Non Retour à Zéro »). Ainsi, au cours de l'étape 31 , on associe :Then, during a step 31, the symbols are defined as they would have been emitted by a NRZ modulator (or “No Return to Zero”). Thus, during step 31, we associate:
- un symbole « -1 » à chaque valeur binaire du mot de code (uλ, u2, ...un) égal à 0 ; et- a symbol “-1” for each binary value of the code word (u λ , u 2 , ... u n ) equal to 0; and
- un symbole « +1 » à chaque valeur binaire du mot de code (u u2, ...ι égal a i ; On forme ainsi une séquence de symboles (vl 5 v2, ...vn) correspondant au mot de code (u u2, ...un) modulé.- a symbol “+1” for each binary value of the code word (uu 2 , ... ι equal ai; We thus form a sequence of symbols (v l 5 v 2 , ... v n ) corresponding to the word of modulated code (uu 2 , ... u n ).
Après l'étape 31, l'étape 23 illustrée en regard de la figure 2 est effectuée. La figure 4 décrit l'étape 24 de calcul de distance impulsionnelle, illustrée en regard de la figure 2. Au cours d'une étape 40, on initialise :After step 31, step 23 illustrated with reference to FIG. 2 is carried out. FIG. 4 describes the step 24 for calculating pulse distance, illustrated with reference to FIG. 2. During a step 40, one initializes:
- une variable J à une valeur égale à 2 ; et une séquence w de symboles égale à la séquence v. Selon une variante, on initialise la variable / à une valeur supérieure à 2, en fonction d'une borne inférieure (a priori connue) de la distance impulsionnelle minimale. Puis, au cours d'une étape 41, on initialise une erreur, Aerreur, à une valeur égale à J-ε, où ε est un nombre réel quelconque, compris entre 0 et 1 strictement (ε est égal, par exemple, à 0,5) ; ainsi, l'erreur, Aerreur, est égale à une valeur comprise strictement entre (J-l) et J. Au cours de l'étape 41, on sélectionne le ième symbole de w, w , qu'on affecte de la valeur Aerreur moins la valeur de v{ soit Aerreur-1 (i étant le paramètre initialise lors de l'étape 23 et mise à jour lors de l'étape 26).- a variable J with a value equal to 2; and a sequence w of symbols equal to the sequence v. According to a variant, the variable / is initialized to a value greater than 2, as a function of a lower bound (a priori known) of the minimum pulse distance. Then, during a step 41, an error, A error , is initialized to a value equal to J-ε, where ε is any real number, between 0 and 1 strictly (ε is equal, for example, to 0.5); thus, the error, A error , is equal to a value strictly between (Jl) and J. During step 41, we select the i th symbol of w, w, which we assign to the value A error minus the value of v { or A error -1 (i being the parameter initialized during step 23 and updated during step 26).
Ensuite, au cours d'une étape 42, on décode la séquence w avec un algorithme de décodage adapté au code choisi lors de l'étape 21 et apte à prendre en compte les amplitudes des symboles à décoder (le décodeur est à entrées pondérées). Si le code est de type turbo code, l'algorithme de décodage sera, par exemple, un algorithme de décodage itératif tel que décrit dans les brevetsThen, during a step 42, the sequence w is decoded with a decoding algorithm adapted to the code chosen during step 21 and able to take into account the amplitudes of the symbols to be decoded (the decoder has weighted inputs) . If the code is of turbo code type, the decoding algorithm will be, for example, an iterative decoding algorithm as described in the patents
EP0511141 (dont le titre est « 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 ») ou EP735696 (dont le titre estEP0511141 (whose title is “Error correcting coding method with at least two systematic convolutional codings in parallel, iterative decoding method, corresponding decoding module and decoder”) or EP735696 (whose title is
« Procédé de décodage itératif, module de décodage et décodeur correspondant »)."Iterative decoding method, decoding module and corresponding decoder").
Le nombre d'itérations nécessaire dépend de la distance à déterminer. Plus la distance est grande, plus il faut d'itérations. Le nombre d'itérations peut être de plusieurs centaines. Les résultats obtenus sont très dépendants de la qualité du décodage. L'algorithme à entrées et sorties douces doit pouvoir fonctionner sans la connaissance de la variance. On peut notamment utiliser des algorithmes de décodage élémentaires de type :The number of iterations required depends on the distance to be determined. The greater the distance, the more iterations are required. The number of iterations can be several hundred. The results obtained are very dependent on the quality of the decoding. The soft input and output algorithm must be able to operate without knowing the variance. One can in particular use elementary decoding algorithms of the type:
- Max-Log-MAP (SUB-MAP) décrit notamment dans le document de P. Robertson, P. Hoeher et E. Villebrun, "Optimal and suboptimal maximum a posteriori algorifhms suitable for turbo decoding", paru dans la revue European Trans. Telecommun., vol. 8, pp. 119-125, March-Apr. 1997, l'algorithme Max-Log-MAP étant dérivé de l'algorithme MAP décrit dans le document de L.R. Bahl, J. Cocke, F. Jelinek et J. Raviv "Optimal decoding of linear codes for minimizing symbol error rate", paru dans la revue IEEE Trans. Inform. Theory, IT-20, pp. 248-287, Mar. 1974.) ; ou - SOVA (« Algorithme de Viterbi à sorties douces » de l'anglais « Soft Output Viterbi Algorithm ») décrit notamment dans les articles : de G. Battail, "Pondération des symboles décodés par l'algorithme de Viterbi", dans la revue Ann. Télécommun., Fr., 42, N° 1-2, pp. 31-38, en Janvier 1987 ; de J. Hagenauer and P. Hoeher, "A Viterbi algorithm with soft- decision outputs and its applications", dans les comptes-rendus de conférence Proc. of Globecom '89, Dallas, Texas, pp. 47.11-- Max-Log-MAP (SUB-MAP) described in particular in the document by P. Robertson, P. Hoeher and E. Villebrun, "Optimal and suboptimal maximum a posteriori algorifhms suitable for turbo decoding", published in the journal European Trans. Telecommun., Vol. 8, pp. 119-125, March-Apr. 1997, the Max-Log-MAP algorithm being derived from the MAP algorithm described in the document by LR Bahl, J. Cocke, F. Jelinek and J. Raviv "Optimal decoding of linear codes for minimizing symbol error rate ", published in the journal IEEE Trans. Inform. Theory, IT-20, pp. 248-287, Mar. 1974.) or - SOVA (" Viterbi algorithm with soft outputs "from English" Soft Output Viterbi Algorithm ”) described in particular in the articles: by G. Battail," Weighting of symbols decoded by Viterbi's algorithm ", in the journal Ann. Télécommun., Fr., 42, N ° 1-2, pp. 31-38, in January 1987; by J. Hagenauer and P. Hoeher, "A Viterbi algorithm with soft- decision outputs and its applications", in the conference proceedings Proc. Of Globecom '89, Dallas, Texas, pp . 47.11-
47-17, en Novembre 1989 et de C. Berrou, P. Adde, E. Angui and S. Faudeil, "A low complexity soft-output Viterbi décoder architecture", ", dans les comptes-rendus de conférence Proc. of ICC '93, Geneva, pp. 737-740, en Mai 1993. qui ne requièrent pas la connaissance de la variance. On peut montrer que le décodeur idéal pour l'invention proposée serait un décodeur s'appuyant sur la recherche du produit scalaire minimal.47-17, in November 1989 and by C. Berrou, P. Adde, E. Angui and S. Faudeil, "A low complexity soft-output Viterbi décoder architecture", ", in the conference proceedings Proc. Of ICC '93, Geneva, pp. 737-740, in May 1993. which do not require knowledge of the variance. It can be shown that the ideal decoder for the proposed invention would be a decoder based on the search for the minimal scalar product .
Puis, au cours d'un test 43, on détermine si l'algorithme de décodage converge vers le mot « tout 0 ».Then, during a test 43, it is determined whether the decoding algorithm converges towards the word "all 0".
Dans l'affirmative, la limite n'est pas dépassée et au cours d'une étape 45, on incrémente d'une unité la variable / et l'étape 41 est réitérée.If so, the limit is not exceeded and during a step 45, the variable / is incremented by one and step 41 is repeated.
Selon une variante de l'étape 45, lorsque la modulation utilisée est telle que la protection des valeurs binaires est inégale, la distance minimale équivalente du couple codage-modulation, particulière à chaque valeur binaire, est elle-même inégale et n'est généralement pas une valeur entière. Dans ce cas, au cours de l'étape 45, on incrémente la variable /d'une valeur strictement inférieure à 1, afin de déterminer une distance impulsionnelle réelle.According to a variant of step 45, when the modulation used is such that the protection of the binary values is uneven, the minimum equivalent distance of the coding-modulation pair, particular to each binary value, is itself unequal and is generally not not an integer value. In this case, during step 45, the variable / is incremented by a value strictly less than 1, in order to determine an actual pulse distance.
Selon une variante de l'étape 24, la variable / est affectée d'une valeur correspondant à une borne supérieure de la distance impulsionnelle augmentée de 1 lors de l'étape 40. L'étape 43 est suivie de l'étape 44 si le mot décodé est égal au mot de code initial, la distance impulsionnelle est alors affectée de la valeur de J. L'étape 43 est suivie de l'étape 45 si le mot décodé n'est pas égal au mot de code initial, et j est décrémenté lors de l'étape de 45. Selon encore une autre variante de l'étape 24, on procède par dichotomie :According to a variant of step 24, the variable / is assigned a value corresponding to an upper limit of the pulse distance increased by 1 during step 40. Step 43 is followed by step 44 if the decoded word is equal to the initial code word, the pulse distance is then assigned the value of J. Step 43 is followed by step 45 if the decoded word is not equal to the initial code word, and j is decremented during step 45. According to yet another variant of step 24, we proceed by dichotomy:
- lors de la première itération, la variable J est initialisée avec une valeur correspondant à une borne inférieure, Jmin , de la distance impulsionnelle ; puis- during the first iteration, the variable J is initialized with a value corresponding to a lower bound, Jmin, of the pulse distance; then
- lors d'une deuxième itération, la variable J est initialisée avec une valeur correspondant à une borne supérieure, Jmax, de la distance impulsionnelle augmentée de 1 ; puis- during a second iteration, the variable J is initialized with a value corresponding to an upper bound, Jmax, of the pulse distance increased by 1; then
- lors des itérations suivantes, on affecte à J une valeur égale à la moitié de la somme de Jmin et de Jmax et, à l'issue du test 43 : si le mot décodé est égal au mot initial, on affecte à Jmax la valeur de / courante ; et si le mot décodé n'est pas égal au mot initial, on affecte à Jmin la valeur de / courante . Selon cette dernière variante, on arrête les itérations lorsque l'écart entre les valeurs de Jmin et de Jmax est suffisamment faible. On note que cette variante basée sur une connaissance a priori d'un encadrement de / et l'utilisation de la méthode de dichotomie est particulièrement avantageuse lorsque la protection des symboles d'un mot de code est inégale.- during the following iterations, we assign to J a value equal to half the sum of Jmin and Jmax and, at the end of test 43: if the decoded word is equal to the initial word, we assign to Jmax the value of / current; and if the decoded word is not equal to the initial word, the value of / current is assigned to Jmin. According to this last variant, the iterations are stopped when the difference between the values of Jmin and Jmax is sufficiently small. It is noted that this variant based on a priori knowledge of a framework for / and the use of the dichotomy method is particularly advantageous when the protection of the symbols of a code word is uneven.
Si le résultat du test 43 est négatif, l'algorithme de décodage ne converge pas vers le mot « tout 0 » et l'ampUtude de l'impulsion d'erreur est suffisante pour perturber le décodage. Dans ce cas, au cours d'une étape 44, la valeur de la distance impulsionnelle, dimpulse i associée à une erreur injectée au i*™" symbole de la séquence (vx, v2, ....vn) est égale à la valeur courante de J diminuée de 1. En effet, la valeur courante de Aerreur est J-ε et comme Aerreur est strictement inférieure à la distance impulsionnelle et comme la valeur courante de J est la valeur minimale qui entraîne une erreur de décodage, on peut établir : J - ε > d;mpulse i> J 1- ε soit encore : dimpulse: , + ε > J - 1> dimpulse:i~l + εIf the result of test 43 is negative, the decoding algorithm does not converge on the word "all 0" and the amplitude of the error pulse is sufficient to disturb the decoding. In this case, during a step 44, the value of the impulse distance, of impulse i associated with an error injected into the i * ™ "symbol of the sequence (v x , v 2 , .... v n ) is equal to the current value of J minus 1. Indeed, the current value of A error is J-ε and as A error is strictly less than the impulse distance and as the current value of J is the minimum value which leads to a decoding error, we can establish: J - ε>d; mpulse i > J 1- ε let again: d impulse :, + ε> J - 1> d impulse: i ~ l + ε
(J-l) et dimpulseti étant des entiers, on en déduit leur égalité.(Jl) and d impulseti being integers, we deduce their equality.
Après l'étape 44, le test 25 illustré en regard de la figure 2 est effectué. Bien entendu, l'invention n'est pas limitée aux exemples de réalisation mentionnés ci-dessus.After step 44, the test 25 illustrated with reference to FIG. 2 is carried out. Of course, the invention is not limited to the embodiments mentioned above.
En particulier, l'homme du métier pourra apporter toute variante dans les paramètres à considérer pour le choix d'un code. L'homme du métier pourra notamment prendre en compte le taux d'erreur trame, FER, (ou « Frame Error Rate » en anglais) estimé selon la relation suivante :In particular, the person skilled in the art can make any variant in the parameters to be considered for the choice of a code. A person skilled in the art will in particular be able to take into account the frame error rate, FER, (or “Frame Error Rate” in English) estimated according to the following relationship:
FER = — Erfci \ R.d„FER = - Erfci \ R.d „
'N„ ou :'N „or:
- m représente la multiplicité associée à la distance impulsionnelle du code ; - k, le nombre de bits d'information d'un mot de code ;- m represents the multiplicity associated with the pulse distance of the code; - k, the number of information bits of a code word;
- Eb/N0 , le rapport signal à bruit ;- E b / N 0 , the signal to noise ratio;
- R, le rendement du code ;- R, the yield of the code;
- dmin, la distance impulsionnelle du code ; et- d min , the pulse distance of the code; and
Erfc, la fonction d'erreur complémentaire, bien connue suivant la relation :Erfc, the complementary error function, well known according to the relation:
2 Erfc(x) = -r= f exp(-t2)dt2 Erfc (x) = -r = f exp (-t 2 ) dt
Par différence avec la courbe non codée, on peut en déduire une formule approchée du gain asymptotique, suivant, par exemple, la relation:By difference with the uncoded curve, we can deduce an approximate formula of the asymptotic gain, following, for example, the relation:
Gα # 101og(R , . On note que l'invention ne se limite pas à l'estimation d'une distance minimale, mais permet aussi de déterminer les symboles les plus sensibles et donc de proposer des schémas de codage avec des protections multi-niveaux ou à rendement de codage inégal. En outre, selon l'invention, lorsque l'on détermine la distance impulsionnelle du code, on peut répartir l'erreur sur plusieurs symboles, à condition d'être sûr que ces symboles appartiendront tous à un mot de code concurrent retenu (ce qui signifie que ces symboles sont choisis à des positions où les symboles du mot de code de référence et les positions du mot de code concurrent diffèrent), en cas de défaillance du décodeur. On fera préférentiellement porter l'impulsion d'erreur sur des mots de codes concurrent qui sont à une faible distance du mot de code de référence. C'est le cas, par exemple, si l'impulsion d'erreur est répartie sur un symbole d'information et le symbole de redondance correspondant, qui s'écrit comme la somme (modulo 2) du symbole d'information et d'une autre information (l'état du codeur pour un code convolutif, par exemple). Ainsi, si le bit d'information change, le bit de redondance aussi et ces deux bits font partie du mot de code concurrent.Gα # 101og (R,. Note that the invention is not limited to the estimation of a minimum distance, but also makes it possible to determine the most sensitive symbols and therefore to propose coding schemes with multi-level protections. uneven levels or coding performance. In addition, according to the invention, when the pulse distance of the code is determined, the error can be distributed over several symbols, provided that it is certain that these symbols will all belong to a selected competing code word (which means that these symbols are chosen at positions where the symbols of the reference code word and the positions of the competing code word differ), in the event of a decoder failure. Preferably, the error pulse will be carried on competing code words which are a short distance from the reference code word. This is the case, for example, if the error pulse is distributed over an information symbol and the corresponding redundancy symbol, which is written as the sum (modulo 2) of the information symbol and other information (the state of the coder for a convolutional code, for example). Thus, if the information bit changes, so does the redundancy bit and these two bits are part of the concurrent code word.
D'une manière générale, la répartition de l'impulsion d'erreur se fait préférentiellement en considérant une « base » qui est le symbole à tester. Ce symbole reçoit une fraction de l'impulsion d'erreur et d'autres symboles, éventuellement le reliquat. On pourra ainsi déterminer la distance impulsionnelle associée à chaque symbole de base testé. On note qu'ainsi, lorsqu'on répartit l'erreur sur plusieurs symboles, la multiplicité, m, est alors, le rapport du nombre de symboles de base auquel est associée la distance impulsionnelle du code, dmin, sur le nombre total de symboles dans un mot.Generally, the distribution of the error pulse is preferably done by considering a "base" which is the symbol to be tested. This symbol receives a fraction of the error pulse and other symbols, possibly the remainder. It will thus be possible to determine the impulse distance associated with each basic symbol tested. We note that thus, when we distribute the error over several symbols, the multiplicity, m, is then, the ratio of the number of basic symbols with which is associated the pulse distance of the code, d min , over the total number of symbols in a word.
On note également que l'invention permet de déterminer également le traitement de codes à message infini. Dans ce cas, on considère un message suffisamment long pour éviter les problèmes de bord (début et fin de message) et on recherche uniquement les distances sur les symboles suffisamment éloignés du début et de la fin du message.It is also noted that the invention also makes it possible to determine the processing of codes with an infinite message. In this case, we consider a message long enough to avoid edge problems (start and end of message) and we only look for the distances on the symbols far enough away from the start and end of the message.
On note aussi que l'invention est applicable non seulement aux turbocodes convolutifs (concaténation parallèle) mais est aussi applicable aux codes convolutifs simple ou aux codes construits à partir d'une concaténation série, et plus généralement à tous les codes dont le décodeur sait tirer profit d'échantillons d'entrée pondérés (en anglais « soft input »), notamment ceux qui utilisent l'algorithme de Viterbi ou l'algorithme MAP (de l'anglais « Maximum a Posteriori ») ou ses versions simplifiées.We also note that the invention is applicable not only to convolutional turbocodes (parallel concatenation) but is also applicable to simple convolutional codes or to codes constructed from a serial concatenation, and more generally to all the codes from which the decoder can draw. profit samples weighted input (in English "soft input"), especially those using the Viterbi algorithm or the MAP algorithm (from English "Maximum a Posteriori") or its simplified versions.
On note que l'invention ne se limite pas à une implantation purement matérielle mais qu'elle peut aussi être mise en œuvre sous la forme d'une séquence d'instructions d'un programme informatique ou toute forme mixant une partie matérielle et une partie logicielle. Dans le cas où l'invention est implantée partiellement ou totalement sous forme logicielle, la séquence d'instructions correspondante pourra être stockée dans un moyen de stockage amovible (tel que par exemple une disquette, un CD-ROM ou un DVD-ROM) ou non, ce moyen de stockage étant lisible partiellement ou totalement par un ordinateur ou un microprocesseur.It should be noted that the invention is not limited to a purely material implantation but that it can also be implemented in the form of a sequence of instructions of a computer program or any form mixing a material part and a part. software. In the case where the invention is implemented partially or completely in software form, the corresponding sequence of instructions may be stored in a removable storage means (such as for example a floppy disk, a CD-ROM or a DVD-ROM) or no, this storage means being partially or totally readable by a computer or a microprocessor.
On note en outre, que l'invention ne se limite pas aux procédés de qualification ou d'optimisation de code précédemment décrits mais s'étend aux codes obtenus par l'un au moins de ces procédés, au codeur (respectivement au décodeur) permettant de coder (respectivement décoder) des données selon ce code. It should also be noted that the invention is not limited to the methods for qualifying or optimizing code described above but extends to the codes obtained by at least one of these methods, to the coder (respectively to the decoder) allowing to code (respectively decode) data according to this code.

Claims

REVENDICATIONS
1. Procédé de qualification d'un code correcteur d'erreurs, délivrant des mots de code, formés chacun d'au moins un symbole,1. Method for qualifying an error correcting code, delivering code words, each formed of at least one symbol,
5 caractérisé en ce qu'il associe audit code une première information de qualification, représentative de la capacité d'un décodeur correspondant à corriger des erreurs, obtenue à l'aide d'un processus d'estimation mettant en œuvre les étapes suivantes :5 characterized in that it associates with said code a first qualification item of information, representative of the capacity of a decoder corresponding to correcting errors, obtained using an estimation process implementing the following steps:
- insertion (41) d'une impulsion d'erreur (Aeιτeuτ) prédéterminée, 10 introduisant une perturbation sur un ensemble d'au moins un symbole- insertion (41) of a predetermined error pulse (A eιτeuτ ), 10 introducing a disturbance on a set of at least one symbol
(w,) d'un mot de code de référence (v) préalablement codé sans erreur ;(w,) a reference code word (v) previously coded without error;
- décodage (42), à l'aide d'un décodeur à entrées pondérées, du mot de code modifié (w) par ladite impulsion d'erreur, et analyse du résultat dudit décodage, délivrant ladite première information de qualification- decoding (42), using a weighted input decoder, of the code word modified (w) by said error pulse, and analysis of the result of said decoding, delivering said first qualification information
^ \"impulse,i/ *^ \ "impulse, i / *
2. Procédé de qualification d'un code correcteur d'erreurs selon la revendication 1, caractérisé en ce que ledit ensemble contient un seul symbole.2. Method for qualifying an error correcting code according to claim 1, characterized in that said set contains a single symbol.
3. Procédé de qualification d'un code correcteur d'erreurs selon la revendication 1, caractérisé en ce que ledit ensemble contient au moins deux 0 symboles.3. Method for qualifying an error correcting code according to claim 1, characterized in that said set contains at least two 0 symbols.
4. Procédé de qualification d'un code correcteur d'erreurs selon la revendication 3, caractérisé en ce que tous les symboles dudit ensemble appartiennent à un mot de code concurrent dudit mot de code de référence.4. Method for qualifying an error correcting code according to claim 3, characterized in that all the symbols of said set belong to a code word competing with said reference code word.
5. Procédé de qualification d'un code correcteur d'erreurs selon l'une 5 quelconque des revendications 1 à 5, caractérisé en ce qu'on associe audit ensemble d'au moins un symbole affecté par ladite impulsion d'erreur une donnée intermédiaire de qualification, fonction d'une amplitude maximale de ladite impulsion d'erreur affectant ledit ensemble et ne perturbant pas le décodage du mot de code, dite distance impulsionnelle. 5. Method for qualifying an error correcting code according to any one of claims 1 to 5, characterized in that an intermediate datum associated with said set of at least one symbol affected by said error pulse qualification, function of a maximum amplitude of said error pulse affecting said set and not disturbing the decoding of the code word, called pulse distance.
6. Procédé de qualification d'un code correcteur d'erreurs selon la revendication 5, caractérisé en ce que ledit processus d'estimation est répété (26) au moins deux fois introduisant une perturbation sur le même ensemble d'au moins un symbole avec des amplitudes de ladite impulsion d'erreur variables, de façon à déterminer ladite distance impulsionnelle.6. Method for qualifying an error correcting code according to claim 5, characterized in that said estimation process is repeated (26) at least twice introducing a disturbance on the same set of at least one symbol with amplitudes of said variable error pulse, so as to determine said pulse distance.
7. Procédé de qualification d'un code correcteur d'erreurs selon l'une quelconque des revendications 5 et 6, caractérisé en ce que ladite distance impulsionnelle est égale au plus grand entier J tel que ledit mot de code contenant ledit ensemble affecté de ladite impulsion d'erreur d'amplitude égale audit entier J soit décodé correctement.7. Method for qualifying an error correcting code according to any one of claims 5 and 6, characterized in that said pulse distance is equal to the largest integer J such that said code word containing said affected set of said error pulse of amplitude equal to said integer J is decoded correctly.
8. Procédé de qualification d'un code correcteur d'erreurs selon l'une quelconque des revendications 5 à 7, caractérisé en ce que ledit processus d'estimation est répété (28) pour au moins deux ensembles distincts de symboles dudit mot de code de référence. 8. Method for qualifying an error correcting code according to any one of claims 5 to 7, characterized in that said estimation process is repeated (28) for at least two distinct sets of symbols of said code word reference.
9. Procédé de qualification d'un code correcteur d'erreurs selon l'une quelconque des revendications 5 à 8, caractérisé en ce que ladite première information de qualification est la distance impulsionnelle minimale (d^^), parmi la ou les distances impulsionnelles déterminées.9. Method for qualifying an error correcting code according to any one of claims 5 to 8, characterized in that said first qualification information is the minimum impulse distance (d ^^), among the impulse distance (s) determined.
10. Procédé de qualification d'un code correcteur d'erreurs selon l'une quelconque des revendications 5 à 9, caractérisé en ce qu'il affecte (27) audit code une seconde information de qualification (m), représentative du nombre desdits ensembles les plus sensibles à une impulsion d'erreur, dans ledit mot de code de référence.10. Method for qualifying an error correcting code according to any one of claims 5 to 9, characterized in that it assigns (27) to said code a second qualification information (m), representative of the number of said sets the most sensitive to an error pulse, in said reference code word.
11. Procédé de qualification d'un code correcteur d'erreurs selon les revendications 9 et 10, caractérisé en ce que ladite seconde information de qualification, dite multiplicité, est le rapport :11. Method for qualifying an error correcting code according to claims 9 and 10, characterized in that said second qualification information, known as multiplicity, is the ratio:
- du nombre desdits ensembles pour lesquels ladite distance impulsionnelle est égale à ladite distance impulsionnelle minimale ;- the number of said sets for which said pulse distance is equal to said minimum pulse distance;
- sur le nombre (n) total de symboles dans un mot de code. - on the total number (n) of symbols in a code word.
12. Procédé de qualification d'un code correcteur d'erreurs selon l'une quelconque des revendications 1 à 11 , caractérisé en ce que ledit ensemble ou lesdits ensembles selon la revendication 8 sur lequel ou lesquels est appliqué ledit processus d'estimation est ou sont sélectionnés en tenant compte des éventuelles propriétés de périodicité dudit code.12. Method for qualifying an error correcting code according to any one of claims 1 to 11, characterized in that said assembly or said assemblies according to claim 8 on which or which is applied said estimation process is or are selected taking into account any periodicity properties of said code.
13. Procédé de qualification d'un code correcteur d'erreurs selon l'une quelconque des revendications 1 à 12, caractérisé en ce que ledit mot de code de référence est un mot dont tous lesdits symboles prennent la valeur binaire 0.13. Method for qualifying an error correcting code according to any one of claims 1 to 12, characterized in that said reference code word is a word in which all of said symbols take the binary value 0.
14. Procédé de qualification d'un code correcteur d'erreurs selon l'une quelconque des revendications 1 à 13, caractérisé en ce que ledit mot de code de référence subit une modulation (31), avant ladite insertion d'une impulsion d'erreur.14. Method for qualifying an error correcting code according to any one of claims 1 to 13, characterized in that said reference code word undergoes modulation (31), before said insertion of a pulse of fault.
15. Procédé de qualification d'un code correcteur d'erreurs selon l'une quelconque des revendications 1 à 14, caractérisé en ce qu'il comprend une étape d'estimation d'un gain, dit gain asymptotique (Ga), représentatif de l'efficacité dudit code correcteur d'erreurs par rapport à l'absence de codage, en fonction de ladite première information de qualification.15. Method for qualifying an error correcting code according to any one of claims 1 to 14, characterized in that it comprises a step of estimating a gain, called asymptotic gain (Ga), representative of the effectiveness of said error correcting code with respect to the absence of coding, as a function of said first qualification information.
16. Procédé de qualification d'un code correcteur d'erreurs selon la revendication 15, caractérisé en ce que ledit gain asymptotique est approché par : Ga = 101og(R.dmin) où : R est le rendement dudit code correcteur d'erreurs ; dmin est la distance impulsionnelle minimale, telle que définie à la revendication 9.16. Method for qualifying an error correcting code according to claim 15, characterized in that said asymptotic gain is approximated by: Ga = 101og (Rd min ) where: R is the yield of said error correcting code; d min is the minimum pulse distance, as defined in claim 9.
17. Procédé de qualification d'un code correcteur d'erreurs selon l'une quelconque des revendications 1 à 16, caractérisé en ce qu'il comprend les étapes suivantes : génération et modulation (22) dudit mot de code de référence ; - sélection (23,26) d'au moins un ensemble d'au moins un symbole dudit mot de code de référence ; affectation (41) d'une impulsion d'erreur d'une amplitude déterminée audit (ou audits) ensemble(s) sélectionné(s) pour former un mot erroné; décodage (42) dudit mot erroné, prenant en compte des entrées pondérées , et délivrant un mot décodé; comparaison dudit mot décodé avec ledit mot de code initial.17. Method for qualifying an error correcting code according to any one of claims 1 to 16, characterized in that it comprises the following steps: generation and modulation (22) of said reference code word; - selection (23,26) of at least one set of at least one symbol of said reference code word; assignment (41) of an error pulse of a determined amplitude to said set (s) selected to form an incorrect word; decoding (42) said erroneous word, taking into account weighted entries, and delivering a decoded word; comparing said decoded word with said initial code word.
18. Procédé de qualification d'un code correcteur d'erreurs selon l'une quelconque des revendications 1 à 17, caractérisé en ce qu'on fait varier l'amplitude de ladite impulsion d'erreur selon une règle déterminée, appartenant au groupe comprenant :18. Method for qualifying an error correcting code according to any one of claims 1 to 17, characterized in that the amplitude of said error pulse is varied according to a determined rule, belonging to the group comprising :
- une première règle selon laquelle, lors de la première itération, l'amplitude de ladite impulsion d'erreur est affectée d'une faible valeur et est incrémentée lors des itérations suivantes jusqu'à ce que ledit mot décodé soit différent dudit mot de code initial ; - une seconde règle selon laquelle, lors de la première itération, l'amplitude de ladite impulsion d'erreur est affectée d'une forte valeur et est décrémentée lors des itérations suivantes jusqu'à ce que ledit mot décodé soit égal audit mot de code initial ;a first rule according to which, during the first iteration, the amplitude of said error pulse is assigned a small value and is incremented during the following iterations until said decoded word is different from said code word initial; a second rule according to which, during the first iteration, the amplitude of said error pulse is assigned a high value and is decremented during the following iterations until said decoded word is equal to said code word initial;
- une troisième règle selon laquelle, lors des premières itérations, l'amplitude de ladite impulsion d'erreur est affectée de deux valeurs extrêmes et, lors des itérations suivantes, on procède par dichotomie, la valeur de l'amplitude de ladite erreur étant choisie en fonction de ladite sous-étape de comparaison ; et une combinaison desdites première et seconde règles avec ladite troisième règle.a third rule according to which, during the first iterations, the amplitude of said error pulse is affected by two extreme values and, during the following iterations, one proceeds by dichotomy, the value of the amplitude of said error being chosen according to said comparison sub-step; and a combination of said first and second rules with said third rule.
19. Procédé de qualification d'un code correcteur d'erreurs selon l'une quelconque des revendications 1 à 18, caractérisé en ce que ledit code fait partie du groupe comprenant : des codes convolutifs ; - des turbo codes convolutifs ; des turbo codes algébriques ; des codes concaténés parallèles ; des codes concaténés séries ; et des combinaisons des codes précédents. 19. Method for qualifying an error correcting code according to any one of claims 1 to 18, characterized in that said code is part of the group comprising: convolutional codes; - convolutional turbo codes; algebraic turbo codes; parallel concatenated codes; concatenated serial codes; and combinations of the preceding codes.
20. Procédé de qualification d'un code correcteur d'erreurs selon l'une quelconque des revendications 1 à 19, caractérisé en ce qu'il comprend, en outre, une étape de détermination d'au moins un symbole de mot de code le plus sensible aux erreurs.20. Method for qualifying an error correcting code according to any one of claims 1 to 19, characterized in that it further comprises a step of determining at least one code word symbol the more susceptible to errors.
21. Procédé de qualification d'un code correcteur d'erreurs selon l'une quelconque des revendications 1 à 20, caractérisé en ce qu'il comprend, en outre, une étape de comparaison de la sensibilité des symboles de mot de code aux erreurs et de construction d'un code à protection inégale en fonction du résultat de ladite étape de comparaison.21. Method for qualifying an error correcting code according to any one of claims 1 to 20, characterized in that it further comprises a step of comparing the sensitivity of the code word symbols to errors and constructing an unevenly protected code as a function of the result of said comparison step.
22. Procédé d'optimisation d'un codage de canal, caractérisé en ce qu'il met en œuvre le procédé de qualification d'un code correcteur d'erreurs selon l'une quelconque des revendications 1 à 21 sur au moins deux codes candidats et une étape de sélection pour ledit codage de canal d'un desdits codes candidats, en fonction d'une analyse desdites premières informations de qualification affectées à chacun desdits codes candidats. 22. Method for optimizing a channel coding, characterized in that it implements the method for qualifying an error correcting code according to any one of claims 1 to 21 on at least two candidate codes and a step of selecting for said channel coding one of said candidate codes, as a function of an analysis of said first qualification information assigned to each of said candidate codes.
23. Procédé d'optimisation d'un codage de canal selon la revendication 22, caractérisé en ce que chacun desdits codes est associé à une modulation prédéterminée, et en ce que ladite étape de sélection tient compte de l'association code/modulation.23. A method of optimizing a channel coding according to claim 22, characterized in that each of said codes is associated with a predetermined modulation, and in that said selection step takes account of the code / modulation association.
24. Procédé d'optimisation d'un codage de canal selon l'une quelconque des revendications 22 et 23, caractérisé en ce que ladite étape de sélection tient compte de également de ladite seconde information de qualification selon l'une quelconque des revendication 10 et 11 et/ou dudit gain asymptotique selon l'une quelconque des revendications 15 et 16.24. Method for optimizing a channel coding according to any one of claims 22 and 23, characterized in that said selection step also takes account of said second qualification information according to any one of claims 10 and 11 and / or said asymptotic gain according to any one of claims 15 and 16.
25. Codeur permettant la correction d'erreurs, caractérisé en ce que le code correspondant est sélectionné selon un procédé de qualification selon l'une quelconque des revendications 1 à 21 et/ou selon un procédé d'optimisation d'un codage de canal selon l'une quelconque des revendications 22 à 24.25. Encoder for correcting errors, characterized in that the corresponding code is selected according to a qualification process according to one any of claims 1 to 21 and / or according to a method of optimizing channel coding according to any of claims 22 to 24.
26. Décodeur permettant un décodage de données codées à l'aide d'un code correcteur d'erreurs et une correction d'erreurs correspondante, caractérisé en ce que ledit code correcteur d'erreurs est sélectionné selon l'une quelconque des revendications 1 à 21 et/ou selon un procédé d'optimisation d'un codage de canal selon l'une quelconque des revendications 22 à 24.26. Decoder allowing a decoding of coded data using an error correcting code and a corresponding error correction, characterized in that said error correcting code is selected according to any one of claims 1 to 21 and / or according to a method for optimizing a channel coding according to any one of claims 22 to 24.
27. Application du procédé de qualification d'un code correcteur d'erreurs selon l'une quelconque des revendications 1 à 21 et/ou du procédé d'optimisation d'un codage de canal selon l'une quelconque des revendications 22 à 24, caractérisé en ce que ladite application appartient au groupe comprenant :27. Application of the method for qualifying an error correcting code according to any one of claims 1 to 21 and / or the method for optimizing a channel coding according to any one of claims 22 to 24, characterized in that said application belongs to the group comprising:
- la transmission de données sur un canal bruité;- data transmission over a noisy channel;
- l'optimisation de codage de canal avec protection inégale ;- optimization of channel coding with uneven protection;
- l'estimation de la distance libre d'un code ; et - l'estimation des performances d'un code. - the estimation of the free distance of a code; and - the estimation of the performance of a code.
PCT/FR2002/003057 2001-09-11 2002-09-09 Method for qualifying error-correcting codes, optimization method, corresponding encoder, decoder and application WO2003023975A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0111764A FR2829636B1 (en) 2001-09-11 2001-09-11 METHOD FOR QUALIFYING ERROR CORRECTING CODES, OPTIMIZATION METHOD, CORRESPONDING ENCODER, DECODER AND APPLICATION
FR01/11764 2001-09-11

Publications (1)

Publication Number Publication Date
WO2003023975A1 true WO2003023975A1 (en) 2003-03-20

Family

ID=8867187

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2002/003057 WO2003023975A1 (en) 2001-09-11 2002-09-09 Method for qualifying error-correcting codes, optimization method, corresponding encoder, decoder and application

Country Status (2)

Country Link
FR (1) FR2829636B1 (en)
WO (1) WO2003023975A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452310A (en) * 1992-10-09 1995-09-19 U.S. Philips Corporation Method of and device for correcting errors and erasures in digital information
US5502732A (en) * 1993-09-20 1996-03-26 International Business Machines Corporation Method for testing ECC logic
US6035007A (en) * 1996-03-12 2000-03-07 Ericsson Inc. Effective bypass of error control decoder in a digital radio system
US6397357B1 (en) * 1996-10-08 2002-05-28 Dell Usa, L.P. Method of testing detection and correction capabilities of ECC memory controller

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452310A (en) * 1992-10-09 1995-09-19 U.S. Philips Corporation Method of and device for correcting errors and erasures in digital information
US5502732A (en) * 1993-09-20 1996-03-26 International Business Machines Corporation Method for testing ECC logic
US6035007A (en) * 1996-03-12 2000-03-07 Ericsson Inc. Effective bypass of error control decoder in a digital radio system
US6397357B1 (en) * 1996-10-08 2002-05-28 Dell Usa, L.P. Method of testing detection and correction capabilities of ECC memory controller

Also Published As

Publication number Publication date
FR2829636B1 (en) 2004-01-02
FR2829636A1 (en) 2003-03-14

Similar Documents

Publication Publication Date Title
EP0891656B1 (en) Data block convolutional coding device and method, and corresponding decoding method and device
CA2245603C (en) Method of enhanced max-log-a posteriori probability processing
FR2804260A1 (en) DIGITAL CORRECTIVE ERROR-TYPE CODING TRANSMITTING METHOD
EP0808538B1 (en) Iterative-structure digital signal reception device, and module and method therefor
EP1475893A2 (en) Soft input decoding for linear codes
EP0995272B1 (en) Product code iterative decoding
EP2806565B1 (en) Method for decoding a correction code, for example a turbo-code, by analysing the extended spectrum of the code words
FR2808632A1 (en) TURBO-DECODING METHOD WITH RE-ENCODING OF ERRONEOUS INFORMATION AND FEEDBACK
EP1230736B1 (en) Method for decoding data coded with an entropic code, corresponding decoding device and transmission system
EP1128589B1 (en) Interruption criterion for a turbo decoder
JP3887255B2 (en) Data processing apparatus using iterative decoding
FR2912574A1 (en) METHOD FOR DECODING MESSAGE PASSAGE AND FORCED CONVERGENCE.
EP1282254A1 (en) Channel coding and decoding for modulation with large number of states
EP1128588A1 (en) Method of error correcting coding-type digital transmission comprising a step of puncturing scheme selection
EP3311495B1 (en) Interleaver design for turbo codes in dependence on the puncturing pattern
WO2003023975A1 (en) Method for qualifying error-correcting codes, optimization method, corresponding encoder, decoder and application
FR2884661A1 (en) METHOD AND DEVICE FOR DECODING A VARIABLE LENGTH CODE USING PRIORI PROBABILITY INFORMATION
EP1249939B1 (en) Method and device to optimize, under performance constraints, the size of coded data blocs
FR2972878A1 (en) ERROR CORRECTING ENCODING METHOD, DECODING METHOD AND ASSOCIATED DEVICES
Yamane et al. Bit error rate analysis on iterative two-stage decoding of two dimensional codes by importance sampling
WO2012001263A1 (en) Processing data for encoding and decoding a message
WO2008129195A1 (en) Coding and decoding of data signals with variable rates
Adrat et al. Iterative source-channel decoding with code rates near r= 1
Krzymien et al. Turbo decoding with one bit extrinsic quantization
Pan et al. Iterative source-channel decoder using symbol-level extrinsic information

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FR GB GR IE IT LU MC NL PT SE SK TR

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
122 Ep: pct application non-entry in european phase