EP1749361A1 - Procede de codage correcteur d'erreurs comprenant des codes locaux detecteurs d'erreurs, procede de decodage, dispositifs d'emission, de reception et de stockage, et programme correspondants - Google Patents

Procede de codage correcteur d'erreurs comprenant des codes locaux detecteurs d'erreurs, procede de decodage, dispositifs d'emission, de reception et de stockage, et programme correspondants

Info

Publication number
EP1749361A1
EP1749361A1 EP05772910A EP05772910A EP1749361A1 EP 1749361 A1 EP1749361 A1 EP 1749361A1 EP 05772910 A EP05772910 A EP 05772910A EP 05772910 A EP05772910 A EP 05772910A EP 1749361 A1 EP1749361 A1 EP 1749361A1
Authority
EP
European Patent Office
Prior art keywords
code
codes
local
coding
words
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
EP05772910A
Other languages
German (de)
English (en)
Inventor
Jean-Pierre Tillich
Iryna Andriyanova
Jean-Claude Carlac'h
Emmanuel Cadic
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
France Telecom SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom SA filed Critical France Telecom SA
Publication of EP1749361A1 publication Critical patent/EP1749361A1/fr
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/296Particular turbo code structure
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3972Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using sliding window techniques or parallel windows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • H03M13/3938Tail-biting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system

Definitions

  • An error correction encoding method comprising local error-detecting codes, decoding method, transmitting, receiving and storing devices, and corresponding program.
  • TECHNICAL FIELD The field of the invention is that of the coding of digital data, in particular with a view to their transmission or storage. More specifically, the invention relates to error correcting codes. The invention can find applications in all areas where it is necessary, or at least desirable, to have an error correcting code. Thus, the invention can notably be applied to: protection against errors due to the noise and interference inherent in the physical transmission channels (conventional error correction coding and space-time codes for multi-antenna systems), example for applications in wireless telecommunications systems DECT, GSM, UMST, local and home automation networks, satellite telecommunications ...
  • the turbo-codes encode (that is to say calculate a block of the redundancy bits Y1) a first time a block of information (block of bits X) by a convolutional encoder 11 described by a lattice with a small number of states (8 or 16 in general), then interchange or interleave the information block in another order (12) to encode them again (13) to provide the block of redundancy bits Y2.
  • the transmitted encoded block is therefore composed of X, Y1 and Y2, or even other permuted blocks 14-encoded with additional redundancies Yi.
  • FIG. 1 Another representation of the LDPC codes is their bipartite Tanner graph which represents the variables by nodes (or vertices) placed on the left in a graph and the control equations (or constraints) by exclusive OR represented by nodes placed on the right in this graph and connected to the binary variables by branches (or edges).
  • Figure 2 shows the bipartite Tanner graph corresponding to the matrix above.
  • the degrees may vary from one variable to another and the codes may be different.
  • the constraints "exclusive OR" are replaced by small codes called “local” the overall code is said to Tanner.
  • Figure 3 shows the architecture of Tanner codes more general than that of LDPC codes.
  • the codes Ci 31 can be much more complex codes than a simple parity code realized by an exclusive OR as in the LDPC codes. 3.
  • Disadvantages of these prior techniques Turbo codes, LDPC codes or their variants offer performance, in terms of error correction, remarkable for large block sizes, of at least a few thousand or tens of thousands of bits information, but for computation complexity at high decoding, which however remains compatible with the constantly increasing computing capabilities of current microprocessors.
  • turbo-codes have a minimum distance ⁇ TM at best logarithmic length, and LDPC codes that approach the channel capacity are also at best logarithmic in the length of the code: n ⁇ ⁇ A code family is said to be asymptotically good (AB) if the minimum distance
  • an object of the invention is to provide an error correction coding technique that is simpler to implement than known codes, in particular codes of the turbo-code or LDPC type, and more efficient.
  • an objective of the invention is to provide such a coding technique, making it possible to reduce the complexity of the codes (and therefore of the corresponding decoding), in particular in order to reduce the silicon surface used on the components, and the consumption of necessary energy.
  • the object of the invention is to enable the construction of codes offering a better compromise between complexity and error correction capabilities than the best current correction codes.
  • One of the goals pursued is therefore to obtain error-correcting codes that further improve the error correction performance of the best LDPC codes and existing turbo-codes for a smaller complexity, by optimizing their information transmission capabilities for given channels: symmetrical binary channel (BSC), erasing channel (BEC), Gaussian channel, ...
  • Another objective of the invention is to provide such a coding technique, which has very good correction qualities. errors, as close as possible to the theoretical limits.
  • an object of the invention is to provide effective error correcting codes even for small size blocks.
  • an object of the invention is to make it possible to construct very good short error-correcting codes by practically eliminating the phenomenon of "error-floor" by increasing the minimum distances of the error. min .
  • error-floor means that the bit error rate (BER) curve decreases less rapidly for high signal-to-noise ratios than for low signal-to-noise ratios, part of the BER curve also known as “water- fall "(" waterfall "). 5.
  • BER bit error rate
  • said local codes are detectors codes but not error correctors on a predetermined coding alphabet, and in that said local codes are interconnected by their status words, so as to form at least one lattice of coding, each trellis defining a basic code.
  • said invention is effective for many types of codes, including short error correcting codes, strongly limiting the so-called "error floor” phenomenon.
  • said permutations are applied to said label words, and not to said status words. This results in a simplified system, reducing the number of variables processed.
  • said local codes are binary codes, represented by trellises with 2 or 4 states.
  • said local codes are defined on a coding alphabet with 2 n elements, and represented by lattices with 2 n , 2 n + 1 or 2 n + 2 states (n integer greater than 2) .
  • a 4-element coding it may be represented by 4, 8 or 16-state trellis.
  • each of said basic codes delivers codewords of length m symbols, each of which is at least one bit, of a coding alphabet defined in such a way that: the number of weight code words 2 is smaller or equal to m / 2; the number of code words of weight 3 is non-zero, the weight of a code word being the number of non-zero symbols that it contains.
  • This structure makes it possible to obtain very good coding results.
  • at least one of said basic codes is formed of at least two sections of code. According to the invention, it is also possible to implement punching on at least one of said basic codes. This punching can be applied to variables and / or code branches.
  • At least one of the lattices is a cyclic lattice. At least one of the lattices may also be a lattice whose input state and output state are forced to predetermined values.
  • at least one of said local codes is a 2-state code (6, 4, 2), associating an output state bit with an input state bit, based on 6 label bits, where: - 6 is the length of said local code, or its number of tag bits; - 4 is the dimension of said local code; - 2 is the minimum distance from said base code.
  • said base code is advantageously formed of three sections of said code (6, 4, 2).
  • At least one of said local codes is a 2-state code (4, 3, 2), associating an output state bit with an input state bit, according to 4 label bits, where: - 4 is the length of said local code, or its number of tag bits; - 3 is the dimension of said local code; - 2 is the minimum distance from said base code.
  • said base code is advantageously formed of two sections of said code (4, 3, 2).
  • At least one of said local codes is a 2-state code (6, 5, 2), associating an output state bit with an input state bit, based on 6 label bits, where: - 6 is the length of said local code, or its number of tag bits; - 5 is the dimension of said local code; - 2 is the minimum distance from said base code.
  • said base code is advantageously formed of three sections of said code (6, 5, 2).
  • At least one of said local codes is a 4-state code (8, 7, 2), associating an output state bit with an input state bit, according to 8 label bits, where: - 8 is the length of said local code, or its number of tag bits; - 7 is the dimension of said local code; - 2 is the minimum distance from said local code.
  • at least one of said local codes is a code (8, 7, 2) with 2 states, associating an input state bit with an input state bit, according to 8 label bits, where: - 8 is the length of said local code, or its number of tag bits; - 7 is the dimension of said local code; - 2 is the minimum distance from said local code.
  • said base code is advantageously said basic code is formed of eight sections of said code (8, 7, 2).
  • the invention also relates to a method of decoding coded data using the coding method described above.
  • Such a decoding method implements, in a manner symmetrical to the coding, a plurality of local codes, associating at least one input state word with at least one output status word, as a function of at least one label word, and permutations applied to at least some of said words, said local codes being detector codes but not correcting errors on a predetermined coding alphabet, and said local codes being interconnected by their status words, to form at least one coding trellis, each trellis defining a basic code.
  • the invention also relates to the coded data transmission devices implementing the coding method described above, the data receiving devices coded using this coding method, implementing decoding means acting symmetrically to the coding, and the encoded data storage devices, comprises coding and / or decoding means according to the above-mentioned methods.
  • the invention also relates to computer programs implementing the coding and / or decoding methods described above. 6. List of Figures Other features and advantages of the invention will appear more clearly on reading the following description of a preferred embodiment of the invention, given as a simple illustrative and non-limiting example, and attached drawings, among which: - Figure 1, discussed in the preamble, schematically illustrates the principle of a turbo-code; FIG.
  • FIG. 2 is a representation using a Tanner graph of an LDPC code (4, 2);
  • FIG. 4 is a Tanner graph illustrating the principle of an error correcting code according to the invention;
  • FIG. 6 is a Tanner graph of another exemplary code according to the invention, with trellis of the basic code split into 2 sub-trellises, one with state ending at 0 and the other loopback (or in tail-biting);
  • FIG. 7 shows the decomposition of a first local code (6, 4, 2) usable in a global code according to the invention, into three trellis sections each carrying two tag bits;
  • FIGS. 8A, 8B and 8C respectively illustrate the three sections of the local code (6, 4, 2) of FIG. 7;
  • Fig. 9 is the basic code information transfer curve constructed with a lattice of two-state trellis code sections (6, 4, 2);
  • FIG. 10 shows the decomposition of a second local code (4, 3, 2) usable in a global code according to the invention, into two trellis sections each carrying two tag bits; - Figures HA and HB respectively illustrate the two sections of the local code (4, 3, 2) of Figure 10; Fig. 12 is the basic code information transfer curve constructed with a lattice of two-state trellis code sections (4, 3, 2); FIG. 13 shows the decomposition of a third local code (6, 5, 2) usable in a global code according to the invention, into two trellis sections each carrying three tag bits; FIGS. 14A and 14B respectively illustrate the two sections of the local code (6, 5, 2) of FIG. 13; Fig.
  • FIG. 15 is the basic code information transfer curve constructed with a lattice of two-state trellis code sections (6, 5, 2);
  • FIG. 16 shows an "exploded" lattice, not sectioned, of a fourth four-state local code (8, 7, 2), usable in a global code according to the invention;
  • FIG. 17 shows the decomposition of a fifth local code (8, 7, 2) usable in a global code according to the invention, into two trellis sections each carrying four tag bits;
  • FIGS. 18A and 18B respectively illustrate the two sections of the local code (8, 7, 2) of FIG. 17; Fig.
  • FIG. 19 is the basic code information transfer curve constructed with a trellis of four-state code sections (8, 7, 2); - Figure 20 shows another decomposition of the local code (8, 7, 2) in 2 sections of lattice each carrying 4 tag bits;
  • FIGS. 21A and 21B illustrate the two sections of the trellis of the local code of FIG. 20;
  • Fig. 22 is the basic code information transfer curve constructed with a lattice of two-state code sections (8, 7, 2);
  • - Figure 23 shows the decomposition of a sixth local code (4, 3, 2) to 4 states on Z4;
  • FIGS. 24A and 24B show the two lattice sections of FIG. 23.
  • the invention is based on a new approach to error correcting codes. , implementing very simple local codes, only error detectors, combined to provide a final overall code simpler and more efficient than known codes.
  • the codes of the invention are distinguished by a reduction of the complexity, by the use of binary lattices with low numbers of states (2 and 4 states).
  • states binary lattices with low numbers of states (2 and 4 states).
  • the resulting codes offer, despite the low complexity of their trellises, a better compromise between complexity, error correction capability and error-floor of the best turbo-codes and current LDPC codes, since these new codes have at least as well good performance in error rate and "error-floor" as little inconvenient in practice.
  • the table below summarizes the performance and complexities of some codes obtained, described in more detail later.
  • the parameters of a local code are: (number of label bits, dimension, d min max limit of the base code built with this code).
  • the code is constructed as follows: the state bits of the local codes are interconnected; at least the majority of the variable bits (which comprise both the information bits and the redundancy bits) are repeated and connected to the code of base via a permutation that changes the order of these bits of repeated variables (not new).
  • An advantageous approach of the invention consists in retaining particular local code sections to meet the following criteria: the number of basic codewords (large lattice) of length m bits of weight 2 is less than or equal to m divided by 2; the number of basic codeword of length m bits of weight 3 is non-zero. This approach has been applied for the 6 local codes described below.
  • An essential technical element is therefore the use of a trellis composed of small C local codes J connected as described in Figure 4.
  • Q This local code sequence J 41 forms the basic code 42 described by a trellis and it is said that the lattice is cyclic, or tail-biting, if it forms a loop.
  • the "tail-biting" lattice can be reduced to a conventional non-cyclic lattice if one or more of the "state" bits between the local codes Ci are "forced” to 0 by construction.
  • This 0-state trellis termination technique is a well-known technique for simplifying decoding. As illustrated in FIG. 6, the division of a trellis into several sub-trusses 61 and 62 is possible. This makes it possible to parallelize the decoding calculations on each of the sub-lattices (before synthesizing these calculations performed in parallel) and is done without significant loss of performance by taking a sufficient number of sections in each of the sub-lattices.
  • the schematic notation of the trellis section means that the transition from the input state 0 to the output state 0 can occur if the tag bits are 00 or 11. It is said that it is a branch of double label.
  • the labels of the same branch are placed in braces on the same line corresponding to the same input state and the successive braces correspond in the same order to the successive arrival states.
  • the transition from the input state 0 to the output state 0 can be carried out if the tag bits are equal to 00 or 11, and the transition of the state 0 input to the output state 1 can be achieved if the tag bits are 01 or 10.
  • FIG. 12 shows, according to the same principle as explained above, the decomposition of the local code (4,3,2) into 2 sections of trellis each carrying 2 bits of label, and Figures HA and HB the 2 sections of the lattice of the local code (4,3,2) with 2 corresponding states.
  • FIG. 15 shows, according to the same principle as explained above, the decomposition of the local code (6, 3, 2) into 2 sections of trellis each carrying 3 bits of tag, and FIGS. 14A and 14B the 2 sections of the trellis of the local code (6,3,2) with 2 corresponding states.
  • FIG. 15 shows that the information transfer curve below tangents the straight line with 30% of slope at the origin, which reflects a correction capacity of 30% of global code erasures for a theoretical maximum of 33.33% for a 2/3 performance code.
  • Figure 16 describes the "exploded" trellis in 8 sections each having a tag bit.
  • the bits ( ⁇ o , ⁇ j , è 2 , è 3 ) and the bits (b 4 , b 5 , b 6 , b 7 ) can be grouped into 2 sections which each have 4 input states and 4 output states as shown in Figures 17, 18A and 18B.
  • FIG. 22 8.5 trellis section of the 2-state local code (8.7.2)
  • Figure 20 shows, according to the same principle as explained above, the decomposition of the local code (8, 7, 2) into 2 trellis sections carrying each 4 bits of tag, and Figs. 21A and 21B the 2 sections of the trellis of the local code (6,3,2) with 2 corresponding states.
  • example code (4, 3, 2) with 4 states on Z4 Z4 is the set of integers ⁇ 0,1,2,3 ⁇ with the addition modulo 4.
  • This code example is easily generalizable to other alphabets because it suffices to replace the law "addition on Z4" by the law of addition on the new alphabet considered.
  • the labels of a multiple branch are obtained from this code repetitively by adding a word of the same length ("coset leader" or side class representative).
  • a multiple branch (or multibranch) 01 will have labels ⁇ 01,12,23,30 ⁇ .
  • Bibliography [1] Gallager, “Low Density Parity Check Codes,” Ph.D.Thesis, MIT, July 1963. [2] RMTanner, "A recursive aproach to low complexity codes, "IEEE Transactions on Information Theory, vol IT-27, pp.533-547, Sept. 1981. [3J C.Berrou, A.Glacreme and P.Thitimajshima,” Near Shannon limit error-correcting coding and decoding: Turbo codes, pp.1064-1070, Proceedings of the International Communications Conference (ICC), May 1993, Gene goes.

Landscapes

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

Abstract

L’invention concerne un procédé de codage associant des données de redondance à des données source, et mettant en œuvre une pluralité de codes locaux, associant à au moins un mot d’état d’entrée au moins un mot d’état de sortie, en fonction d’au moins un mot d’étiquette, et des permutations appliquées sur au moins certains desdits mots, lesdits codes locaux sont des codes détecteurs mais non correcteurs d’erreurs sur un alphabet de codage prédéterminé, et en ce que lesdits codes locaux sont interconnectés par leurs mots d’état, de façon à former au moins un treillis de codage, chaque treillis définissant un code de base.

Description

Procédé de codage correcteur d'erreurs comprenant des codes locaux détecteurs d'erreurs, procédé de décodage, dispositifs d'émission, de réception et de stockage, et programme correspondants. 1. domaine technique : Le domaine de l'invention est celui du codage de données numériques, en vue notamment de leur transmission ou de leur stockage. Plus précisément, l'invention concerne les codes correcteurs d'erreurs. L'invention peut trouver des applications dans tous les domaines où il est nécessaire, ou à tout le moins souhaitable, de disposer d'un code correcteur d'erreur. Ainsi, l'invention peut notamment s'appliquer à : - la protection contre des erreurs dues aux bruits et interférences inhérents aux canaux physiques de transmission (codage correcteur d'erreurs classique et codes spatio-temporels pour des systèmes multi-antennes), par exemple pour des applications dans les systèmes de télécommunications sans fil DECT, GSM, UMST, les réseaux locaux et domotiques, les télécommunications par satellites... - le codage CDMA ; - la compression de signaux issus de sources d'informations : images, sons, signaux, données... - la protection contre les erreurs dans le stockage des données sur des mémoires de masse, telles que les disques d'ordinateurs ou les microprocesseurs. 2. état de l'art : De nombreuses techniques de codage permettant la correction d'erreurs sont déjà connues. Les premières études sur le sujet remontent aux années 1940. C'est en effet à cet époque que Shannon a fondé la théorie de l'information actuellement encore utilisée. De nombreuses familles de codage ont ensuite été proposées. L'état de l'art actuel en codes correcteurs d'erreurs est bien représenté par les plus récents turbo-codes et les codes LDPC. Les turbo-codes ont été inventés en 1991 par Berrou et Glavieux [3j (les références citées sont regroupées à la fin de la description, au paragraphe 9). Comme illustré en figure 1, les turbo-codes encodent (c'est-à-dire calculent un bloc des bits de redondance Yl) une première fois un bloc d'information (bloc de bits X) par un codeur convolutif 11 décrit par un treillis ayant un petit nombre d'états (8 ou 16 en général) , puis permutent ou entrelacent le bloc d'information dans un autre ordre (12) pour les encoder une nouvelle fois (13) pour fournir le bloc de bits de redondance Y2. Le bloc encodé transmis est donc composé de X, Yl et Y2, voire d'autres blocs permutés 14-encodés 15 de redondances supplémentaires Yi. La publication des turbo-codes et la découverte de leurs performances pour une faible complexité de décodage compatible avec la technologie des puces électroniques grand-public des années 1990 a provoqué l'écriture d'une grande quantité d'articles sur les codes correcteurs d'erreurs et leurs décodages itératifs à décision douce. Enfin il devenait possible de s'approcher de la limite de Shannon publiée en 1948 pour transmettre un débit d'information s'approchant de la capacité maximale limite du canal utilisé, qu'il s'agisse d'une liaison par câble électrique ou optique, ou une liaison radio. Ce renouveau du domaine de la théorie de l'information s'est traduit en 1995 par la redécouverte des codes LDPC (« Low-Density Parity Check » en anglais, pour « contrôle de parité faible densité ») [1] inventés par Gallager en 1960, et des travaux de Tanner [2] généralisant ces codes en 1981, puis par la publication d'une variante des codes LDPC : les codes RA [4] (« Repeat-Accumulate » en anglais, pour « répétition-accumulation ») de Divsalar et McEliece en 1998 . Les codes LDPC sont définis par une matrice H de contrôle de parité « creuse » c'est-à-dire comportant très peu de « 1 » et beaucoup de « 0 » (pour des codes binaires). Pour des codes LDPC non-binaires comme par quaternaire comme l'anneau Z4 des entiers modulo comportera beaucoup de « 0 » et très peu de symboles Pour des raisons de simplicité de définition de la matrice, les LDPC binaires initiaux ou « LDPC réguliers » ont été définis par une matrice de contrôle de parité creuse ayant des nombres de « 1 » c par ligne et v par colonne comme dans l'exemple de code LDPC (4,2) ci-dessous, de paramètres L" = 12>^ = 8>^min = 2 J (c'est-à-dire un code de longueur 12 avec une matrice de contrôle ayant 4 « 1 » sur chaque ligne et 2 « 1 » sur chaque colonne) :
Une autre représentation des codes LDPC est leur graphe de Tanner biparti qui représente les variables par des nœuds (ou sommets) placés à gauche dans un graphe et les équations de contrôle (ou contraintes) par des OU exclusifs représentés par des noeuds placés à droite dans ce graphe et reliées aux variables binaires par des branches (ou arêtes). La figure 2 présente le graphe de Tanner biparti correspondant à la matrice ci- dessus. Les sommets des 12 variables *' avec ι = 0^"-'1 1 sont représentés par des points C noirs 21. Les 6 contraintes 22 (somme modulo 2) sont placées à droite et notées J pour J = U,1,J— >-> â Les permutations 23 sont illustrées par les branches interconnectant les variables et les contraintes. On remarque que le nombre de « 1 » égal à 4 sur une ligne de la matrice H de contrôle du code est aussi le nombre d'entrées de chaque contrainte OU exclusif, ce nombre est aussi appelé degré de la contrainte ou du code local et noté c . De même le nombre de « 1 » égal à 2 sur une colonne de la matrice H de contrôle du code est aussi le nombre de répétition de chaque variable, ce nombre est aussi appelé degré de la variable et noté v . Le rendement du code global r = k/n est borné inférieurement par : k Λ dv r = — ≥ l — ^ n dc
Dans le cas général, les degrés peuvent varier d'une variable à une autre et les codes peuvent être différents. Dans le cas où les contraintes « OU exclusif » sont remplacées par de petits codes dits « locaux » le code global est dit de Tanner. La figure 3 montre l'architecture des codes de Tanner plus générale que celle des codes LDPC. Les codes Ci 31 peuvent être des codes bien plus complexes qu'un code de parité simple réalisé par un OU exclusif comme dans les codes LDPC . 3. Inconvénients des ces techniques antérieures Les turbo-codes, les codes LDPC ou leurs variantes offrent des performances, en terme de correction d'erreurs, remarquables pour de grandes tailles de bloc, d'au moins quelques milliers ou dizaines de milliers de bits d'information, mais pour une complexité de calcul au décodage élevée, qui reste cependant compatible avec les capacités de calcul en constante augmentation des microprocesseurs actuels. Une diminution importante de la complexité de décodage est néanmoins fortement souhaitée par les fabricants de composants réalisant ces fonctions de codage-décodage de correction d'erreurs, car elle permettrait de diminuer la surface de silicium des puces électroniques implémentant ces fonctions et donc leurs coûts de production, d'où finalement un coût final moindre pour le consommateur. Cette diminution de complexité est aussi souhaitée par tous les consommateurs car elle se traduit aussi par une consommation moindre de puissance électrique fournie par exemple par les batteries des téléphones mobiles ou des ordinateurs portables connectés à des réseaux de télécommunication mobiles radios et donc par une autonomie du terminal portable plus grande ou par un terminal plus léger. Les turbo-codes usuels ont une distance minimale ∞™ au mieux logarithmique en la longueur, et les codes LDPC qui s'approchent de la capacité du canal sont aussi au mieux logarithmique en la longueur du code : n→∞ Une famille de code est dite asymptotiquement bonne (AB) si la distance minimale
des codes croît linéairement comme la longueur du code : »n Les performances des codes actuels connus ne sont donc pas optimales et peuvent encore être améliorées tant en terme de capacité de correction d'erreurs qu'en terme de diminution de complexité de décodage. De plus, les structures connues des codes actuels sont trop peu performantes en correction d'erreurs pour des petites tailles de bloc, de l'ordre de la centaine ou du millier de bits. La très forte demande actuelle des transmissions numériques de communications par petits paquets est à l'origine de l'intérêt pour ces codes de petites longueurs. Une augmentation des performances en taux d'erreurs binaires peut se traduire notamment par une augmentation de la qualité des services fournis à l'usager : - portée améliorée des stations de base ; - transmission de données moins bruitées ; - débit d'information maximal disponible plus élevé ; - nombre d'usagers simultanés plus élevés dans une même zone couverte par une station de base. 4. objectifs de l'invention L'invention a notamment pour objectif de pallier ces différents inconvénients de l'art antérieur. Plus précisément, un objectif de l'invention est de fournir une technique de codage correcteur d'erreurs, qui soit plus simple à mettre en œuvre que les codes connus, notamment les codes de type turbo-code ou LDPC, et plus efficace. Ainsi, un objectif de l'invention est de fournir une telle technique de codage, permettant de réduire la complexité des codes (et donc du décodage correspondant), de façon notamment à réduire la surface de silicium utilisé sur les composants, et la consommation d'énergie nécessaire. Notamment, l'invention a pour objectif de permettre la construction de codes offrant un meilleur compromis complexité/capacités de correction d'erreurs que les meilleurs codes correcteurs actuels. Un des buts poursuivis est donc d'obtenir des codes correcteurs d'erreurs améliorant encore les performances de correction d'erreurs des meilleurs codes LDPC et des turbo-codes existants pour une complexité plus petite, en optimisant leurs capacités de transmission d'information pour des canaux donnés : canal binaire symétrique (BSC), canal à effacement (BEC) , canal gaussien ,... Un autre objectif de l'invention est de fournir une telle technique de codage, qui présente de très bonnes qualités de correction d'erreurs, se rapprochant le plus possible des limites théoriques. Notamment, un objectif de l'invention est de fournir des codes correcteurs d'erreurs efficaces mêmes pour des blocs de taille réduite. Ainsi, un objectif de l'invention est de permettre de construire de très bons codes correcteurs d'erreurs courts en faisant disparaître en pratique le phénomène d' « error-floor » (« plancher d'erreur ») en augmentant les distances minimales dmin . Le terme «error- floor » signifie que la courbe de taux d'erreur binaire (TEB) décroît moins rapidement pour de forts rapports signal/bruit que pour de faibles rapports signal/bruit , partie de la courbe de TEB appelée aussi « water-fall » (« chute d'eau »). 5. caractéristiques principales de l'invention Ces objectifs, ainsi que d'autres qui apparaîtront plus clairement par la suite, sont atteints à l'aide d'un procédé de codage associant des données de redondance à des données source, et mettant en œuvre une pluralité de codes locaux, associant à au moins un mot d'état d'entrée au moins un mot d'état de sortie, en fonction d'au moins un mot d'étiquette, et des permutations appliquées sur au moins certains desdits mots. Selon l'invention, lesdits codes locaux sont des codes détecteurs mais non correcteurs d'erreurs sur un alphabet de codage prédéterminé, et en ce que lesdits codes locaux sont interconnectés par leurs mots d'état, de façon à former au moins un treillis de codage, chaque treillis définissant un code de base. Cette approche nouvelle et inventive, reposant sur l'utilisation de codes de base très simples va à rencontre des a priori de l'homme du métier. Il n'est en effet pas évident d'utiliser des codes simples, seulement détecteurs d'erreur, pour construire un code global correcteur d'erreur. Cette approche contre-intuitive permet cependant d'obtenir, de façon surprenante, de très bons résultats, meilleurs que les codes connus décrits précédemment, tout en présentant une complexité réduite. Comme on le verra par la suite, l'invention permet en effet de s'approcher de la limite de Shannon. En outre, l'invention est efficace pour de nombreux types de codes, et notamment les codes correcteurs d'erreurs courts, en limitant fortement le phénomène dit d' « error- floor ». De façon avantageuse, lesdites permutations sont appliquées sur lesdits mots d'étiquette, et non sur lesdits mots d'état. On obtient ainsi un système simplifié, réduisant le nombre de variables traitées. Selon un premier mode de mise en œuvre, lesdits codes locaux sont des codes binaires, représentés par des treillis à 2 ou 4 états. Selon un second mode de mise en œuvre, lesdits codes locaux sont définis sur un alphabet de codage à 2n éléments, et représentés par des treillis à 2n, 2n+1 ou 2n+2 états (n entier supérieur à 2). Par exemple, pour un codage à 4 éléments, il pourra être représenté par des treillis à 4, 8 ou 16 états. Dans les deux cas, on note qu'il s'agit de codes locaux très simples, et donc très faciles à mettre en œuvre. De façon préférentielle, chacun desdits codes de base délivre des mots de code de longueur m symboles, de chacun au moins un bit, d'un alphabet de codage définis de façon que : - le nombre de mots de code de poids 2 est inférieur ou égal à m/2 ; - le nombre de mots de code de poids 3 est non nul, le poids d'un mot de code étant le nombre de symboles différents de zéro qu'il contient. Cette structure permet d'obtenir de très bons résultats de codage. Avantageusement, au moins un desdits codes de base est formé d'au moins deux sections de code. Selon l'invention, on peut également mettre en œuvre un poinçonnage sur au moins un desdits codes de base. Ce poinçonnage peut s'appliquer sur les variables et/ou sur les branches du code. Selon un aspect avantageux de l'invention, au moins un des treillis est un treillis cyclique. Au moins un des treillis peut également être un treillis dont l'état d'entrée et l'état de sortie sont forcées à des valeurs prédéterminées. Selon un premier mode de réalisation de l'invention, au moins un desdits codes locaux est un code (6, 4, 2) à 2 états, associant à un bit d'état d'entrée un bit de d'état de sortie, en fonction de 6 bits d'étiquettes, où : - 6 est la longueur dudit code local, ou son nombre de bits d'étiquette ; - 4 est la dimension dudit code local ; - 2 est la distance minimale dudit code de base. Dans ce cas, ledit code de base est avantageusement formé de trois sections dudit code (6, 4, 2). Selon un deuxième mode de réalisation de l'invention, au moins un desdits codes locaux est un code (4, 3, 2) à 2 états, associant à un bit d'état d'entrée un bit de d'état de sortie, en fonction de 4 bits d'étiquettes, où : - 4 est la longueur dudit code local, ou son nombre de bits d'étiquette ; - 3 est la dimension dudit code local ; - 2 est la distance minimale dudit code de base. Dans ce cas, ledit code de base est avantageusement formé de deux sections dudit code (4, 3, 2). Selon un troisième mode de réalisation de l'invention, au moins un desdits codes locaux est un code (6, 5, 2) à 2 états, associant à un bit d'état d'entrée un bit de d'état de sortie, en fonction de 6 bits d'étiquettes, où : - 6 est la longueur dudit code local, ou son nombre de bits d'étiquette ; - 5 est la dimension dudit code local ; - 2 est la distance minimale dudit code de base. Dans ce cas, ledit code de base est avantageusement formé de trois sections dudit code (6, 5, 2). Selon un quatrième mode de réalisation de l'invention, au moins un desdits codes locaux est un code (8, 7, 2) à 4 états, associant à un bit d'état d'entrée un bit de d'état de sortie, en fonction de 8 bits d'étiquettes, où : - 8 est la longueur dudit code local, ou son nombre de bits d'étiquette ; - 7 est la dimension dudit code local ; - 2 est la distance minimale dudit code local. Selon un cinquième mode de réalisation de l'invention, au moins un desdits codes locaux est un code (8, 7, 2) à 2 états, associant à un bit d'état d'entrée un bit de d'état de sortie, en fonction de 8 bits d'étiquettes, où : - 8 est la longueur dudit code local, ou son nombre de bits d'étiquette ; - 7 est la dimension dudit code local ; - 2 est la distance minimale dudit code local. Dans ces deux derniers cas, ledit code de base est avantageusement ledit code de base est formé de huit sections dudit code (8, 7, 2). L'invention concerne également un procédé de décodage de données codées à l'aide du procédé de codage décrit ci-dessus. Un tel procédé de décodage met en œuvre, de façon symétrique au codage, une pluralité de codes locaux, associant à au moins un mot d'état d'entrée au moins un mot d'état de sortie, en fonction d'au moins un mot d'étiquette, et des permutations appliquées sur au moins certains desdits mots, lesdits codes locaux étant des codes détecteurs mais non correcteurs d'erreurs sur un alphabet de codage prédéterminé, et lesdits codes locaux étant interconnectés par leurs mots d'état, de façon à former au moins un treillis de codage, chaque treillis définissant un code de base. L'invention concerne encore les dispositifs d'émission de données codées mettant en œuvre le procédé de codage décrit ci-dessus, les dispositifs de réception de données codées à l'aide de ce procédé de codage, mettant en œuvre des moyens de décodage agissant de façon symétrique au codage, et les dispositifs de stockage de données codées, comprend des moyens de codage et/ou de décodage selon les procédés sus-mentionnés. L'invention concerne également les programmes d'ordinateur mettant en œuvre les procédés de codage et/ou de décodage décrits ci-dessus. 6. Liste des figures D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation préférentiel de l'invention, donnée à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : - la figure 1, discutée en préambule, illustre schématiquement le principe d'un turbo-code ; - la figure 2, également discutée en préambule, est une représentation à l'aide d'un graphe de Tanner d'un code LDPC (4, 2) ; - la figure 3, également discutée en préambule, illustre de façon générale un code de Tanner, à l'aide d'un graphe de Tanner ; - la figure 4 est un graphe de Tanner illustrant le principe d'un code correcteur d'erreurs selon l'invention ; - la figure 5 est un graphe de Tanner d'un exemple de code selon l'invention, de longueur n = 8 bits de variables de degré 2 constant avec code de base de longueur m=16 bits décomposé en 4 sections de treillis de codes locaux à 4 bits d'étiquette ; - la figure 6 est un graphe de Tanner d'un autre exemple de code selon l'invention, avec treillis du code de base scindé en 2 sous-treillis, l'un à terminaison par états à 0 et l'autre rebouclé (ou en « tail-biting ») ; - la figure 7 présente la décomposition d'un premier code local (6, 4, 2) utilisable dans un code global selon l'invention, en trois sections de treillis portant chacun deux bits d'étiquettes ; - les figures 8A, 8B et 8C illustrent respectivement les trois sections du code local (6, 4, 2) de la figure 7 ; - la figure 9 est la courbe de transfert d'information du code de base construit avec un treillis de sections de codes (6, 4, 2) à treillis à deux états ; - la figure 10 présente la décomposition d'un deuxième code local (4, 3, 2) utilisable dans un code global selon l'invention, en deux sections de treillis portant chacun deux bits d'étiquettes ; - les figures HA et HB illustrent respectivement les deux sections du code local (4, 3, 2) de la figure 10 ; - la figure 12 est la courbe de transfert d'information du code de base construit avec un treillis de sections de codes (4, 3, 2) à treillis à deux états ; - la figure 13 présente la décomposition d'un troisième code local (6, 5, 2) utilisable dans un code global selon l'invention, en deux sections de treillis portant chacun trois bits d'étiquettes ; - les figures 14A et 14B illustrent respectivement les deux sections du code local (6, 5, 2) de la figure 13 ; - la figure 15 est la courbe de transfert d'information du code de base construit avec un treillis de sections de codes (6, 5, 2) à treillis à deux états ; - la figure 16 présente un treillis « éclaté », non sectionnalisé, d'un quatrième code local (8, 7, 2) à quatre états, utilisable dans un code global selon l'invention ; - la figure 17 présente la décomposition d'un cinquième code local (8, 7, 2) utilisable dans un code global selon l'invention, en deux sections de treillis portant chacun quatre bits d'étiquettes ; - les figures 18A et 18B illustrent respectivement les deux sections du code local (8, 7, 2) de la figure 17 ; - la figure 19 est la courbe de transfert d'information du code de base construit avec un treillis de sections de codes (8, 7, 2) à quatre états ; - la figure 20 présente une autre décomposition du code local (8, 7, 2) en 2 sections de treillis portant chacune 4 bits d'étiquette ; - les figures 21A et 21B illustrent les deux sections du treillis du code local de la figure 20 ; - la figure 22 est la courbe de transfert d'information du code de base construit avec un treillis de sections de codes (8, 7, 2) à deux états ; - la figure 23 présente la décomposition d'un sixième code local (4, 3, 2) à 4 états sur Z4 ; - les figures 24A et 24B présentent les deux sections de treillis de la figure 23. 7. description de modes de réalisation préférentiels de l'invention 7.1 introduction Comme indiqué plus haut, l'invention repose sur une nouvelle approche des codes correcteurs d'erreur, mettant en œuvre des codes locaux très simples, uniquement détecteurs d'erreurs, combinés de façon à fournir un code global final plus simple et plus efficace que les codes connus. Ainsi, les codes de l'invention se distinguent par une diminution de la complexité, par l'utilisation de treillis binaires à faibles nombres d'états (2 et 4 états). On peut estimer que l'ordre de grandeur du facteur de réduction de complexité d'un code construit avec ces treillis à 2 (respectivement 4) états est de 8 (respectivement 4) par rapport aux turbo-codes à 16 états et des codes LDPC équivalents déjà dans des normes. Les codes obtenus offrent, malgré la faible complexité de leurs treillis, un meilleur compromis complexité, capacité de correction d'erreurs et « error-floor » des meilleurs turbo-codes et des codes LDPC actuels, car ces nouveaux codes ont au moins d'aussi bonnes performances en taux d'erreur et des « error-floor » aussi peu gênant dans la pratique. Le tableau ci-dessous résume les performances et les complexités de quelques codes obtenus, décrits plus en détails par la suite. Les paramètres d'un code local sont : (nombre de bits d'étiquettes, dimension, dmin limite max du code base construit avec ce code).
II faut noter aussi que les gains de correction d'effacements donnés pour un canal à effacements (BEC : « Binary Erasure Channel » pour canal à effacement binaire) se traduisent par des gains non négligeables sur un canal gaussien. 7.2 Eléments techniques importants de l'invention La construction d'un code selon l'invention repose sur un « code de base » de longueurs décrit par un treillis obtenu par concaténation de sections de treillis à très faibles nombres d'états de petits codes Cj dits « codes locaux ». Pour éviter toute ambiguïté de notation le code construit est appelé « code global ». Pour cela on construit le code de la façon suivante: - les bits d'états des codes locaux sont reliés entre eux ; - au moins la majorité des bits de variables (qui comprennent à la fois les bits d'information et les bits de redondance) sont répétés et connectés au code de base par l'intermédiaire d'une permutation qui change l'ordre de ces bits de variables répétées (pas nouveau). Une approche avantageuse de l'invention consiste à retenir des sections de code locaux particuliers pour répondre aux critères suivants : - le nombre de mots de code de base (grand treillis) de longueur m bits de poids 2 est inférieur ou égal à m divisé par 2; - le nombre de mot de code de base de longueur m bits de poids 3 est non nul. Cette approche a été appliquée pour les 6 codes locaux décrits ci-après. Une explication de ces bonnes performances est la suivante: il faut prendre des codes correcteurs d'erreur de très faible distance (ce qui est contre intuitif), le minimum étant 2. Dans ce cas, les codes ne sont même pas correcteurs, et peuvent détecter une seule erreur. Ils ont donc un seuil d'extraction d'information le plus bas possible en présence de bruit de transmission. Un grand nombre de mots de poids trois permet d'obtenir des codes correcteurs "globaux" de grande distance minimale. On obtient donc des codes correcteurs d'erreur qui peuvent atteindre la capacité limite de Shannon du canal et dont la distance minimale peut croître linéairement en fonction de la longueur du code. Il s'agit donc de concaténer des petits codes uniquement détecteurs.
Chaque code local J a un petit nombre de bits d'étiquette J L'ordre de ces m bits est modifié par une permutation de m bits puis fusionnés pour former les bits de variables x> , Q = 0^' n ~ 1^ de degrés dx> . Un élément technique essentiel est donc l'utilisation d'un treillis composé de petits C codes locaux J connectés comme le décrit la Figure 4. Q Cette suite de code locaux J 41 forme le code de base 42 décrite par un treillis et on dit que le treillis est cyclique, ou « tail-biting », s'il forme une boucle. Les n bits de code 43 appelées aussi variables x' , ^ = ' 'n ~ ' sont classiquement placées à gauche du graphe de Tanner du code décrit par la figure 4. Ces variables sont répétées avec des degrés dx ' pouvant être très différents les uns des autres : le vecteur de ces degrés dx ' est appelé profil de répétition des variables. La permutation 44 change l'ordre de ces bits comme dans les turbo codes, les codes LDPC et les codes RA. A droite de la permutation de la figure 4 est placé le treillis du code C dC de base 42 composé des codes locaux ' possédant un nombre J de symboles d'étiquette et υ> bits d'état d'entrée et w'+1 bits d'état de sortie. La figure 5 est un graphe de Tanner d'un exemple d'un tel code « global » de l'invention, de longueur n=8 bits de variables de degré 2 constant avec code de base de longueur m=16 bits décomposé en 4 sections de treillis de codes locaux à 4 bits d'étiquette. Le treillis rebouclé (« tail-biting ») peut se ramener à un treillis classique non- cyclique si une ou plusieurs des bits « d'état » entre les codes locaux Ci sont « forcés » à 0 par construction. Cette technique de terminaison de treillis à l'état 0 est une technique bien connue permettant de simplifier le décodage. Comme illustré en figure 6, la division d'un treillis en plusieurs sous-treillis 61 et 62 est possible. Cela permet de paralléliser les calculs de décodage sur chacun des sous- treillis (avant de faire la synthèse de ces calculs effectués en parallèle) et se fait sans perte significative de performance en prenant un nombre suffisant de sections dans chacune des sous-treillis. La figure 6 décrit donc un code « global » dont le code de base est divisé en 2 sous- treillis 61 et 62 : celui du haut (codes locaux CO à Cj) 61 est un treillis dit classique dont les états de terminaison 611, 612 sont égaux à 0, et le sous-treillis du bas (codes locaux Cj+1 à Cnc-1) 62 est un treillis « tail-biting » dont la condition de terminaison est que l'état de départ doit être égal à l'état d'arrivée. Un élément important de construction est l'obtention de permutations performantes c'est-à-dire donnant des codes de grandes distances minimales. Ces permutations utilisent des propriétés particulières des « motifs » (ou « patterns », en anglais, ou sous-ensembles de bits invariants par rapport à leur position dans le mots de codes) des petits codes locaux
La combinaison de cette structure particulière de graphe de Tanner avec un treillis de petits codes locaux à très petits nombres d'états (2 ou 4 états pour des symboles binaires) et ces permutations associées donne des codes correcteurs d'erreurs offrant un meilleur compromis {complexité, performance de correction d'erreurs} que tous les meilleurs codes concurrents. 8. Exemple de codes locaux 8.1 sections de treillis du code local (6.4.2) à 2 états La section décrite à la figure 7 représente l'ensemble des mots de code du code local de paramètres par un ensemble de chemins allant d'un des états de départ vers un des états d'arrivée en passant par les branches étiquetées par des bits. Le code local (6,4,2) 71 est donc décomposé en 3 sections de treillis 72, 73 et 74 portant chacune 2 bits d'étiquette. Les figures 8A à 8C présente respectivement ces trois sections, selon une présentation classique. La notation schématique de la section de treillis signifie que la transition de l'état 0 d'entrée à l'état de sortie 0 peut se réaliser si les bits d'étiquette valent 00 ou 11. On dit que c'est une branche d'étiquette double. Les étiquettes d'une même branche (multiple ou non) sont placées dans des accolades sur une même ligne correspondant au même état d'entrée et les accolades successives correspondent dans le même ordre aux états d'arrivée successifs. Pour expliciter encore la section de treillis de la figure 8B : la transition de l'état 0 d'entrée à l'état de sortie 0 peut se réaliser si les bits d'étiquette valent 00 ou 11, et la transition de l'état 0 d'entrée à l'état de sortie 1 peut se réaliser si les bits d'étiquette valent 01 ou 10. Réalisées avec 2 états seulement, ces sections de treillis permettent un décodage itératif à décision douce de très faible complexité. De plus, les propriétés algébriques de transition de poids font que pris séparément ce code ne peut corriger aucune erreur mais seulement en détecter une, mais assemblés collectivement en treillis, ces codes s'avèrent constituer d'excellent codes avec des permutations adaptées à leurs patterns de poids de Hamming. La figure 9 présente la courbe de transfert d'information de ce code de base construit avec un treillis de sections de codes (6,4,2) à treillis à 2 états. 8.2 sections de treillis du code local (4.3,2) à 2 états La figure 10 présente, selon le même principe qu'explicité ci-dessus, la décomposition du code local (4,3,2) en 2 sections de treillis portant chacune 2 bits d'étiquette, et les figures HA et HB les 2 sections du treillis du code local (4,3,2) à 2 états correspondants. Comme on peut le noter sur la figure 12, la courbe de transfert d'information tangente la droite de 45.3% de pente à l'origine ce qui traduit une capacité de correction de 45.3% d'effacements du code global pour un maximum théorique possible de 50% pour un code de rendement 1/2. 8.3 section de treillis du code local (6.5.2) à 2 états La figure 13 présente, selon le même principe qu'explicité ci-dessus, la décomposition du code local (6, 3, 2) en 2 sections de treillis portant chacune 3 bits d'étiquette, et les figures 14A et 14B les 2 sections du treillis du code local (6,3,2) à 2 états correspondants. A nouveau, on note sur la figure 15 que la courbe de transfert d'information ci- dessous tangente la droite de 30% de pente à l'origine ce qui traduit une capacité de correction de 30% d'effacements du code global pour un maximum théorique possible de 33.33% pour un code de rendement 2/3. 8.4 section de treillis du code local (8,7,2) à 4 états La Figure 16 décrit le treillis « éclaté » en 8 sections ayant chacune un bit d'étiquette. On peut regrouper les bits (όoj23 ) et les bits (b4,b5,b6,b7 ) en 2 sections qui ont chacune 4 états d'entrée et 4 états de sortie comme le montre les figures 17, 18A et 18B. La courbe de transfert d'information de la figure 19 tangente la droite de 21.5% de pente à l'origine ce qui traduit une capacité de correction de 21.5% d'effacements du code global pour un maximum théorique possible de 25% pour un code de rendement 3/4 = 0.75. C'est moins que les 22.15% du code local (8,7,2) à 2 états, mais cette famille de code est asymptotiquement bonne « AB ». 8.5 section de treillis du code local (8.7,2) à 2 états La figure 20 présente, selon le même principe qu'explicité ci-dessus, la décomposition du code local (8, 7, 2) en 2 sections de treillis portant chacune 4 bits d'étiquette, et les figures 21A et 21B les 2 sections du treillis du code local (6,3,2) à 2 états correspondants. La courbe de transfert d'information de la figure 22 tangente la droite de 22.15% de pente à l'origine ce qui traduit une capacité de correction de 22.15% d'effacements du code global pour un maximum théorique possible de 25% pour un code de rendement 3/4 = 0.75. 8.6 Combinaisons de sections de treillis pour composer d'autres codes locaux (n.k.2) Comme indiqué dans les paragraphes qui décrivent respectivement les sections de treillis à 2 états composant les treillis des codes de paramètres (6,4,2) et (4,3,2), on remarque que les sections 1 sont identiques dans les deux codes et identiques aussi à la section 3 du code (4,3,2), de même les sections 2 sont identiques dans les 2 codes. On peut donc utiliser l'ensemble des sections composant les différents codes déjà décrits et la possibilité de poinçonner ou de dupliquer des bits d'étiquettes sur ces sections pour construire de nouveaux codes locaux de paramètres (n,k,2) permettant une grande variété de choix de rendements pour le code global. 8.7 exemple de code (4, 3, 2) à 4 états sur Z4 Z4 est l'ensemble des entiers {0,1,2,3} doté de l'addition modulo 4. Cet exemple de code est facilement généralisable à d'autres alphabets car il suffit de remplacer la loi « addition sur Z4 » par la loi d'addition sur le nouvel alphabet considéré. La méthode de construction consiste à partir du code à répétition sur l'alphabet, ici Z4 : Code à répétition sur Z4 = {00,11,22,33} La figure 23, illustre la décomposition de ce code en deux sections, et les figures 24A et 24B présentent les deux sections correspondantes. Les étiquettes d'une branche multiple sont obtenues de ce code à répétition en additionnant un mot de même longueur (« coset leader », ou représentant de classe latéral). Par exemple, une branche multiple (ou multibranches) 01 aura pour étiquettes {01,12,23,30}. On peut bien sûr appliquer la même généralisation à Z8, Z16,... 9. Bibliographie [1] Gallager, « Low Density Parity Check codes », Ph.D.Thesis, MIT, JuIy 1963. [2] R.M.Tanner, « A recursive aproach to low complexity codes », IEEE Transactions on Information Theory, vol IT-27, pp.533-547, Sept 1981. [3J C.Berrou, A.Glavieux and P.Thitimajshima, « Near Shannon limit error- correcting coding and decoding: Turbo codes », pp.1064-1070, Proceedings of the International Communications Conférence (ICC), May 1993, Gène va. [4J D.Divsalar and R.J.McEliece, « Coding theorems for turbo-like codes », Proceedings of the Allerton Conférence (Allerton, Illinois,USA), pp.201-210, Sept.1998. [51 T. Richardson and R. Urbanke, "The Capacity of Low-Density Parity Check Codes under Message-Passing Decoding," IEEE Transactions on Information Theory, vol.47, pp.599-681, February 2001. [6J T. Richardson, A. Shokrollahi and R. Urbanke, "Design of Capacity Approaching Irregular Low-Density Parity Check Codes," IEEE Transactions on Information Theory, vol.47, pp.619-637, February 2001.

Claims

REVENDICATIONS 1. Procédé de codage associant des données de redondance à des données source, et mettant en œuvre une pluralité de codes locaux, associant à au moins un mot d'état d'entrée au moins un mot d'état de sortie, en fonction d'au moins un mot d'étiquette, et des permutations appliquées sur au moins certains desdits mots, caractérisé en ce que lesdits codes locaux sont des codes détecteurs mais non correcteurs d'erreurs sur un alphabet de codage prédéterminé, et en ce que lesdits codes locaux sont interconnectés par leurs mots d'état, de façon à former au moins un treillis de codage, chaque treillis définissant un code de base. 2. Procédé de codage selon la revendication 1, caractérisé en ce que lesdites permutations sont appliquées sur lesdits mots d'étiquette, et non sur lesdits mots d'état. 3. Procédé de codage selon l'une quelconque des revendications 1 et 2, caractérisé en ce que lesdits codes locaux sont des codes binaires, représentés par des treillis à 2 ou 4 états. 4. Procédé de codage selon l'une quelconque des revendications 1 et 2, caractérisé en ce que lesdits codes locaux sont définis sur un alphabet de codage à 2n éléments, et représentés par des treillis à 2n, 2n+1 ou 2n+2 états. 5. Procédé de codage selon l'une quelconque des revendications 1 à 4, caractérisé en ce que chacun desdits codes de base délivre des mots de code de longueur m symboles, de chacun au moins un bit, d'un alphabet de codage définis de façon que : - le nombre de mots de code de poids 2 est inférieur ou égal à m/2 ; - le nombre de mots de code de poids 3 est non nul, le poids d'un mot de code étant le nombre de symboles différents de zéro qu'il contient. 6. Procédé de codage selon l'une quelconque des revendications 1 à 5, caractérisé en ce qu'au moins un desdits codes de base est formé d'au moins deux sections de code. 7. Procédé de codage selon l'une quelconque des revendications 1 à 6, caractérisé en ce qu'on met en œuvre un poinçonnage sur au moins un desdits codes de base. 8. Procédé de codage selon l'une quelconque des revendications 1 à 7, caractérisé en ce qu'au moins un des treillis est un treillis cyclique. 9. Procédé de codage selon l'une quelconque des revendications 1 à 8, caractérisé en ce qu'au moins un des treillis est un treillis dont l'état d'entrée et l'état de sortie sont forcées à des valeurs prédéterminées. 10. Procédé de codage selon l'une quelconque des revendications 1 à 9, caractérisé en ce qu'au moins un desdits codes locaux est un code (6, 4, 2) à 2 états, associant à un bit d'état d'entrée un bit de d'état de sortie, en fonction de 6 bits d'étiquettes, où : - 6 est la longueur dudit code local, ou son nombre de bits d'étiquette ; - 4 est la dimension dudit code local ; - 2 est la distance minimale dudit code de base. 11. Procédé de codage selon la revendication 10, caractérisé en ce que ledit code de base est formé de trois sections dudit code (6, 4, 2). 12. Procédé de codage selon l'une quelconque des revendications 1 à 9, caractérisé en ce qu'au moins un desdits codes locaux est un code (4, 3, 2) à 2 états, associant à un bit d'état d'entrée un bit de d'état de sortie, en fonction de 4 bits d'étiquettes, où : - 4 est la longueur dudit code local, ou son nombre de bits d'étiquette ; - 3 est la dimension dudit code local ; - 2 est la distance minimale dudit code de base. 13. Procédé de codage selon la revendication 12, caractérisé en ce que ledit code de base est formé de deux sections dudit code (4, 3, 2). 14. Procédé de codage selon l'une quelconque des revendications 1 à 9, caractérisé en ce qu'au moins un desdits codes locaux est un code (6, 5, 2) à 2 états, associant à un bit d'état d'entrée un bit de d'état de sortie, en fonction de 6 bits d'étiquettes, où : - 6 est la longueur dudit code local, ou son nombre de bits d'étiquette ; - 5 est la dimension dudit code local ; - 2 est la distance minimale dudit code de base. 15. Procédé de codage selon la revendication 14, caractérisé en ce que ledit code de base est formé de trois sections dudit code (6, 5, T). 16. Procédé de codage selon l'une quelconque des revendications 1 à 9, caractérisé en ce qu'au moins un desdits codes locaux est un code (8, 7, 2) à 4 états, associant à un bit d'état d'entrée un bit de d'état de sortie, en fonction de 8 bits d'étiquettes, où : - 8 est la longueur dudit code local, ou son nombre de bits d'étiquette ; - 7 est la dimension dudit code local ; - 2 est la distance minimale dudit code local. 17. Procédé de codage selon l'une quelconque des revendications 1 à 9, caractérisé en ce qu'au moins un desdits codes locaux est un code (8, 7, 2) à 2 états, associant à un bit d'état d'entrée un bit de d'état de sortie, en fonction de 8 bits d'étiquettes, où : - 8 est la longueur dudit code local, ou son nombre de bits d'étiquette ; - 7 est la dimension dudit code local ; - 2 est la distance minimale dudit code local. 18. Procédé de codage selon l'une quelconque des revendications 16 et 17, caractérisé en ce que ledit code de base est formé de huit sections dudit code (8, 7, 2). 19. Procédé de décodage de données codées à l'aide du procédé de codage selon l'une quelconque des revendications 1 à 18, caractérisé en ce qu'il met en œuvre de façon symétrique au codage une pluralité de codes locaux, associant à au moins un mot d'état d'entrée au moins un mot d'état de sortie, en fonction d'au moins un mot d'étiquette, et des permutations appliquées sur au moins certains desdits mots, lesdits codes locaux étant des codes détecteurs mais non correcteurs d'erreurs sur un alphabet de codage prédéterminé, et lesdits codes locaux étant interconnectés par leurs mots d'état, de façon à former au moins un treillis de codage, chaque treillis définissant un code de base. 20. Dispositif d'émission de données codées, caractérisé en ce qu'il comprend des moyens de codage selon le procédé de codage selon l'une quelconque des revendications 1 à 18, mettant en œuvre une pluralité de codes locaux, associant à au moins un mot d'état d'entrée au moins un mot d'état de sortie, en fonction d'au moins un mot d'étiquette, et des moyens de permutation appliquées sur au moins certains desdits mots, lesdits codes locaux étant des codes détecteurs mais non correcteurs d'erreurs sur un alphabet de codage prédéterminé, et lesdits codes locaux étant interconnectés par leurs mots d'état, de façon à former au moins un treillis de codage, chaque treillis définissant un code de base. 21. Dispositif de réception de données codées à l'aide du procédé de codage selon l'une quelconque des revendications 1 à 18, caractérisé en ce qu'il met en œuvre des moyens de décodage agissant de façon symétrique au codage, à l'aide d'une pluralité de codes locaux, associant à au moins un mot d'état d'entrée au moins un mot d'état de sortie, en fonction d'au moins un mot d'étiquette, et de moyens de permutation appliquées sur au moins certains desdits mots, lesdits codes locaux étant des codes détecteurs mais non correcteurs d'erreurs sur un alphabet de codage prédéterminé, et lesdits codes locaux étant interconnectés par leurs mots d'état, de façon à former au moins un treillis de codage, chaque treillis définissant un code de base. 22. Dispositif de stockage de données codées, caractérisé en ce qu'il comprend des moyens de codage et/ou de décodage selon le procédé de l'une quelconque des revendications 1 à 19, mettant en œuvre une pluralité de codes locaux, associant à au moins un mot d'état d'entrée au moins un mot d'état de sortie, en fonction d'au moins un mot d'étiquette, et des moyens de permutation appliquées sur au moins certains desdits mots, lesdits codes locaux étant des codes détecteurs mais non correcteurs d'erreurs sur un alphabet de codage prédéterminé, et lesdits codes locaux étant interconnectés par leurs mots d'état, de façon à former au moins un treillis de codage, chaque treillis définissant un code de base. 23. Produit programme d'ordinateur caractérisé en ce qu'il comprend des instructions de programme pour le codage et/ou le décodage selon le procédé de l'une quelconque des revendications 1 à 19, mettant en œuvre une pluralité de codes locaux, associant à au moins un mot d'état d'entrée au moins un mot d'état de sortie, en fonction d'au moins un mot d'étiquette, et des moyens de permutation appliquées sur au moins certains desdits mots, lesdits codes locaux étant des codes détecteurs mais non correcteurs d'erreurs sur un alphabet de codage prédéterminé, et lesdits codes locaux étant interconnectés par leurs mots d'état, de façon à former au moins un treillis de codage, chaque treillis définissant un code de base.
EP05772910A 2004-05-28 2005-05-17 Procede de codage correcteur d'erreurs comprenant des codes locaux detecteurs d'erreurs, procede de decodage, dispositifs d'emission, de reception et de stockage, et programme correspondants Ceased EP1749361A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0405847 2004-05-28
PCT/FR2005/001238 WO2006000666A1 (fr) 2004-05-28 2005-05-17 Procede de codage correcteur d’erreurs comprenant des codes locaux detecteurs d’erreurs, procede de decodage, dispositifs d’emission, de reception et de stockage, et programme correspondants

Publications (1)

Publication Number Publication Date
EP1749361A1 true EP1749361A1 (fr) 2007-02-07

Family

ID=34945612

Family Applications (1)

Application Number Title Priority Date Filing Date
EP05772910A Ceased EP1749361A1 (fr) 2004-05-28 2005-05-17 Procede de codage correcteur d'erreurs comprenant des codes locaux detecteurs d'erreurs, procede de decodage, dispositifs d'emission, de reception et de stockage, et programme correspondants

Country Status (5)

Country Link
US (1) US7836384B2 (fr)
EP (1) EP1749361A1 (fr)
JP (1) JP4988563B2 (fr)
CN (1) CN1961517B (fr)
WO (1) WO2006000666A1 (fr)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2037586A1 (fr) 2007-09-14 2009-03-18 France Télécom Procédé de codage et dispositif des codes LDPC à treillis circulaire
US8370711B2 (en) 2008-06-23 2013-02-05 Ramot At Tel Aviv University Ltd. Interruption criteria for block decoding
US8181084B1 (en) * 2008-08-14 2012-05-15 Marvell International Ltd. Detecting insertion/deletion using LDPC code
CN101854242B (zh) * 2009-04-01 2012-05-30 电子科技大学 基于反馈和LDPC码构建wire-tap信道I的方法
WO2012038963A1 (fr) 2010-09-22 2012-03-29 Ramot At Tel-Aviv University Ltd. Sel d'addition d'acide d'un conjugué nortriptyline-gaba et son procédé de préparation
CN102571263B (zh) * 2010-12-24 2015-04-22 中国移动通信集团公司 一种解码方法和装置
CN103414477B (zh) * 2013-07-12 2015-04-22 西安电子科技大学 一种构造量子卷积码状态转移图和网格图的方法
CN107608817B (zh) * 2016-07-12 2020-11-10 深圳大心电子科技有限公司 解码方法、存储器存储装置及存储器控制电路单元
CN106059713B (zh) * 2016-07-25 2019-01-29 河南科技大学 一种通过bsbc构建第一类窃听信道的方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2157958C (fr) * 1994-10-11 2000-01-18 Lee-Fang Wei Modulation a codage en treillis utilisant un codeur convolutionel de dimensionnalite moins elevee
US5691993A (en) * 1995-06-07 1997-11-25 Seagate Technology, Inc. Rate 4/5 trellis code for PR4 channels with improved error propagation
US6233271B1 (en) * 1997-12-31 2001-05-15 Sony Corporation Method and apparatus for decoding trellis coded direct sequence spread spectrum communication signals
US6772391B1 (en) * 1998-10-13 2004-08-03 Interdigital Technology Corporation Hybrid interleaver for turbo codes
FR2796780B1 (fr) * 1999-07-21 2003-09-19 Groupe Ecoles Telecomm Procede et dispositif de codage a au moins deux codages en parallele et permutation amelioree, et procede et dispositif de decodage correspondants
US6795947B1 (en) * 1999-10-07 2004-09-21 The Regents Of The University Of California Parity check outer code and runlength constrained outer code usable with parity bits
US6769089B1 (en) * 1999-12-24 2004-07-27 Ensemble Communicatioins, Inc. Method and apparatus for concatenated channel coding in a data transmission system
US7243294B1 (en) * 2000-01-13 2007-07-10 California Institute Of Technology Serial turbo trellis coded modulation using a serially concatenated coder
US7234100B1 (en) * 2000-09-28 2007-06-19 Intel Corporation Decoder for trellis-based channel encoding
JP2002314433A (ja) * 2001-04-04 2002-10-25 Daewoo Electronics Co Ltd 誤り訂正可能なチャンネルコーディング方法
US7000167B2 (en) * 2001-08-01 2006-02-14 International Business Machines Corporation Decoding low density parity check codes
BR0309327A (pt) * 2002-04-16 2005-02-15 Thomson Licensing Sa Arquitetura de decodificador de treliça hdtv
AU2003265418A1 (en) * 2002-09-30 2004-04-23 Seagate Technology Llc Reduced complexity turbo decoder using the principle of splitting the first siso device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2006000666A1 *

Also Published As

Publication number Publication date
US7836384B2 (en) 2010-11-16
JP2008501266A (ja) 2008-01-17
WO2006000666A1 (fr) 2006-01-05
CN1961517A (zh) 2007-05-09
CN1961517B (zh) 2011-08-24
JP4988563B2 (ja) 2012-08-01
US20080201631A1 (en) 2008-08-21

Similar Documents

Publication Publication Date Title
EP1749361A1 (fr) Procede de codage correcteur d'erreurs comprenant des codes locaux detecteurs d'erreurs, procede de decodage, dispositifs d'emission, de reception et de stockage, et programme correspondants
Abbasfar et al. Accumulate-repeat-accumulate codes
Costello et al. Channel coding: The road to channel capacity
FR2909499A1 (fr) Procede et dispositif de decodage pour codes ldpc, et appareil de communication comprenant un tel dispositif
WO2008141453A1 (fr) Procédé de mise en œuvre de nœuds d'égalité stochastique
Kumar et al. Bit error rate analysis of Reed-Solomon code for efficient communication system
Guilloud Generic architecture for LDPC codes decoding
Rege et al. Practical dirty paper coding with sum codes
Sun et al. Near-capacity dirty-paper code designs based on TCQ and IRA codes
Zhao et al. Partially block Markov superposition transmission of a Gaussian source with nested lattice codes
Klaimi Study of non-binary turbo codes for future communication and broadcasting systems
Lin et al. A low latency coding scheme: semi-random block oriented convolutional code
Ouzan et al. Moderate-density parity-check codes
Zhao et al. Concatenated polar-coded multilevel modulation
FR2853164A1 (fr) Procede de codage correcteur d'erreur utilisant au moins deux fois un meme code elementaire, procede de codage, dispositifs de codage et de decodage correspondants
Zhang et al. CRC-aided adaptive belief propagation decoding of NR LDPC codes
Rani et al. Comparative Analysis of Turbo and LDPC Codes for Reduced Storage and Retrieval of Data
Cheng et al. Iterative soft-decision Reed-Solomon decoding on partial response channels
Jooshin et al. Reliability Analysis of the Sum-Product Decoding Algorithm for the PSK Modulation Scheme
Bourduge et al. Non Binary LDPC Coded Orthogonal Modulation Schemes based on Non Binary Multilevel Coding
Li et al. Low-rate repeat-zigzag-Hadamard codes
Mani et al. Symbolic stochastic Chase decoding of Reed-Solomon and BCH codes
RU2741062C1 (ru) Способ инжекторного декодирования сверточных кодов
Tahir Construction and performance of polar codes for transmission over the awgn channel
Hug Codes on graphs and more

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20061020

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU MC NL PL PT RO SE SI SK TR

RIN1 Information on inventor provided before grant (corrected)

Inventor name: CADIC, EMMANUEL

Inventor name: CARLAC'H, JEAN-CLAUDE

Inventor name: ANDRIYANOVA, IRYNA

Inventor name: TILLICH, JEAN-PIERRE

17Q First examination report despatched

Effective date: 20070514

DAX Request for extension of the european patent (deleted)
REG Reference to a national code

Ref country code: DE

Ref legal event code: R003

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20130209