[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

EP1475895A1 - Device and process to add-compare-select-adjust in a decoder - Google Patents

Device and process to add-compare-select-adjust in a decoder Download PDF

Info

Publication number
EP1475895A1
EP1475895A1 EP04354020A EP04354020A EP1475895A1 EP 1475895 A1 EP1475895 A1 EP 1475895A1 EP 04354020 A EP04354020 A EP 04354020A EP 04354020 A EP04354020 A EP 04354020A EP 1475895 A1 EP1475895 A1 EP 1475895A1
Authority
EP
European Patent Office
Prior art keywords
bits
values
value
metrics
metric
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.)
Withdrawn
Application number
EP04354020A
Other languages
German (de)
French (fr)
Other versions
EP1475895A8 (en
Inventor
Pascal Urard
Laurent Paumier
Etienne Lantreibecq
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.)
STMicroelectronics SA
Original Assignee
STMicroelectronics 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 STMicroelectronics SA filed Critical STMicroelectronics SA
Publication of EP1475895A1 publication Critical patent/EP1475895A1/en
Publication of EP1475895A8 publication Critical patent/EP1475895A8/en
Withdrawn legal-status Critical Current

Links

Images

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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations
    • 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/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4107Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing add, compare, select [ACS] operations

Definitions

  • the present invention relates generally to signal decoders, such as decoders of the type turbodécodeurs. More particularly, the present invention relates to particular modules used in such decoders, generally called ACSO modules ("Add-Compare-Select-Offset" - “Add-Compare-Select-Select-Adjust") who realize addition operations to provide a plurality of data, then comparison of the data obtained and selection of a data from the data obtained and data adjustment selected.
  • One of the goals of digital communications is error-free data transmission.
  • data is subject to noise which can cause errors on the data received.
  • correction techniques are used error.
  • a known error correction technique is convolutional coding. This technique provides a correction effective error but requires decoding techniques sophisticated.
  • Error correction codes have an effect important technique since they allow error correction of data transmitted between a transmitter and a receiver in applications such as telecommunications.
  • Convolution codes allow the receiver to digital data to correctly determine the transmitted data even when errors have occurred during the transmission.
  • Convolutional codes introduce redundancies in the data to be transmitted and provide the data transmitted sequentially in packets in which the value of each bit is dependent on previous bits in the sequence. So when errors occur, the receiver can deduce the original data by retracing the sequences possible data received.
  • methods of coding include cross-connects, which mix the order of the bits of the coded packet. So when adjacent bits are altered during the transmission, the error is spread over the entire initial package and can thus be more effectively corrected.
  • coders which code the data to be transmitted more than once, in parallel or in series.
  • coders which code the data to be transmitted more than once, in parallel or in series.
  • Such a method of error correction is called parallel convolutional coding systematic (CCPS).
  • CCPS parallel convolutional coding systematic
  • Each transmitted data packet can correspond to a single bit of the initial data, we speak then coding in monobinary mode; or match a couple of bits (or "bibit") of the initial data, this is called coding in duobinary mode.
  • LLR log likelihood ratio
  • the iterative decoding process receives a sequence input corresponding to probabilities for each value received and provides corrected probabilities as an output. Decoding iterative is achieved by several iterations after which the corrected probability represents the data transmitted close enough.
  • the decoded data is taken equal to "1" when the LLR ratio is positive, and "0" otherwise.
  • the LLR report therefore contains both information representative of the value of the data decoded x and information representative of the reliability of the value of the decoded data.
  • the LLR ratio calculation algorithm is based on a trellis similar to that used in the Viterbi algorithm.
  • FIG. 1 represents an example of a trellis with N states, N being equal to 4 in FIG. 1.
  • states S i , i ranging from 1 to 4 are represented in the vertical direction.
  • Different instants k, k ranging from 1 to 5, are represented in the horizontal direction.
  • Each point S i, k of the trellis represents the i th state at time k.
  • a state can represent a sequence of a determined number of bits corresponding to the supposed state of several flip-flops of the convolutional encoder at transmission.
  • each state can be associated with one of the sequences ("00", "01", "10", "11") corresponding to the supposed state of two flip-flops of the coder.
  • a branch B represents a transition between a state at an instant k and a state at an instant k + 1.
  • the transition from one state to another corresponds to the reception by the decoder of data corresponding to a bit of value "0" or "1". From a state at an instant k, for example the state S 2,3 , there are therefore only two possible transitions to the states S 3,4 and S 4,4 depending on whether the data received is a bit with value "0" or "1".
  • the LLR report calculation algorithm has three main steps.
  • an upstream probability ⁇ k (S i, k ) of being in the state S i, k is calculated as follows:
  • the LLR ratio is calculated as follows: where B (k, 0) (respectively B (k, 1)) is the set of possible transitions from a state S l, k-1 to a state S i, k caused by an input data equal to " 0 "(respectively” 1 ").
  • ⁇ k (S i, k ) is called upstream state metrics for the state S i, k or upstream path metric for the state S i, k .
  • ⁇ k (S i, k ) log ( ⁇ k (S i, k ))
  • ⁇ k (S i, k ) is called backward state metrics for state S i, k or path downstream metric for state S i, k .
  • Upstream metric calculations ⁇ k (S i, k ) and downstream ⁇ k (S i, k ) of state are realized by particular modules of the decoder called modules ACSO ("ADD-COMPARE-SELECT-OFFSET" - "Add-Compare-Select-Adjust") which implement the function MAX + .
  • the iterative operation of an ACSO module implies to make several accumulations of a large number of sums state and branch metrics in less than period between the reception of two successive bits. Such a operating speed usually involves using redundant means in ACSO modules, which makes the structure of these modules.
  • the ACSO modules include means of limitation for, for example when one of the accumulations exceeds a predetermined threshold, divide all accumulations by a value predetermined. Such means of limitation of accumulations also make the structure of ACSO modules complex.
  • the ACSO modules can also include means allowing compensate for a variation in branch metrics due to a variation in transmission gain. Such means of compensation in particular have the effect of increasing the size of the ROM memory in which the adjustment values, and make them even more complex previous means of limitation of accumulations.
  • a coding in duobinary mode makes it possible to transmit to frequency equals data with higher bit rate than coding in monobinary mode. We do not currently know no simple devices to implement decoding in duobinary mode.
  • An object of the invention is to provide a device simple and inexpensive to implement a decoding in monobinary mode.
  • Another object of the invention is to provide a simple and inexpensive device for implementing a decoding in duobinary mode.
  • the block of calculation includes a subtractor to calculate the difference first and second values received by the calculation block, a multiplexer controlled by the output of the subtractor for produce on the first output of the largest calculation block received values, and an approximation block to produce on the second output of the calculation block the adjustment value under the form of a value of one bit equal to 1 if said difference is equal to 0, 1 or -1 and equal to 0 otherwise.
  • the block of approximation comprises a first logic gate calculating a NOR of all the bits of said difference except for its least significant bit, a second logic gate calculating an AND of all the bits of said difference, and a third logic gate calculating an OR of the outputs of the first and second logic gates.
  • the present invention also relates to a decoder comprising 2 N , where N is greater than 1, devices in duobinary mode as described above, each of which is associated with a particular value of N bits, the decoder receiving data in the form of consecutive bits;
  • each device associated with a first value being connected to provide one of the metrics previous status to four devices, each associated with a value of which the most significant N-2 bits are the N-2 bits of least significant of said first value and whose two bits of low weights are respectively one of the four values possible from the last bibit received;
  • the value is selected by calculating the difference of compared values and providing the largest of the values compared on the basis of the sign of said difference, and the adjustment value is produced as a value of one bit equal to 1 if said difference is equal to 0, 1 or -1 and equal to 0 otherwise.
  • the value of adjustment is equal to the logical OR of a logical NON-OR of all the bits of said difference except for its weight bit the lowest and a logical AND of all the bits in said difference.
  • FIG. 2 represents an example of a trellis for decoding data encoded in duobinary mode.
  • each state can be associated with one of the sequences ("000”, "001”, “010”, “011”, “100”, “101", “110”, “111” ) internal states of the convolutional encoder.
  • a transmitted bibit is received at each instant k in the form of an analog datum, and each branch of the trellis is associated with a branch metric ⁇ k calculated substantially in the same way as according to equation (2) above, if we call r k the analog value received and x k the bibit that we should have received for the branch, or "bibit received".
  • each of the upstream state metrics ⁇ k (S i, k ) and downstream ⁇ k (S i, k ) can be calculated by an ACSO module in duobinary mode according to the invention, comprising two ACSO modules in monobinary mode each calculating the MAX + of two sums of a state metric and a metric of associated branch, followed by a block calculating the MAX + of the results of the ACSO modules in monobinary mode.
  • Figure 3 shows an ACSO module in mode duobinaire MM1 according to the invention, allowing the calculation of the state metric (upstream or downstream) of a state considered at an instant given k.
  • state metric either for an upstream state metric or a metric downstream state and when referring to a state adjacent to the state considered, it means a state at a later time k + 1 or earlier k-1 in the considered state, depending on the metric considered.
  • the ACSO module in duobinary mode DM includes a first ACSO module in monobinary mode MM1.
  • the module MM1 receives at the input data MI 1 , MI 2 which respectively represent first and second metrics of previous state.
  • the module MM1 also receives data GI 1 , GI 2 which represent branch metrics corresponding to the branches between the state considered and the first and second adjacent states respectively.
  • the module MM1 has two adders 10 and 11 respectively receiving as input the data MI 1 , GI 1 and MI 2 , GI 2 .
  • a calculation block 12 receives on two inputs the values (a, b) produced at the output of the adders 10 and 11.
  • the calculation block 12 comprises a subtractor 13 calculating the difference ab.
  • An approximation block 15 receives the difference ab and supplies a value ADJ1 equal to 1 if the difference ab has a value equal to 0, 1 or -1, and a value equal to 0 otherwise.
  • the value ADJ1 is a 1-bit coded approximation of the adjustment value In (1 + e -
  • Block 15 includes for example a logic gate 16 calculating a NOR of all the bits of the difference ab except for its least significant bit, a logic gate 17 calculating an AND of all the bits of the difference ab, and a logic gate 18 calculating an OR of the outputs of gates 16 and 17.
  • the ACOB duobinary DM module includes a second ACOB monobinary module MM2 with the same structure as the module MM1, producing a current state metric MAXP2 from data MI 3 , MI 4 , GI 3 and GI 4 representing respectively third and fourth metrics previous state and corresponding branch metrics.
  • the same references in which the 1 of the tens has been replaced by a 2 denote the same elements in the modules MM1 and MM2.
  • the duobinary ACSO module DM also includes a calculation block 32 of the same structure as the calculation block 12 of the module MM1.
  • Block 32 receives the outputs MAXP1 and MAXP2 from modules MM1 and MM2 and provides an adder 39 with an equal MAX3 value maximum of MAXP1 and MAXP2 and an adjustment value ADJ3 corresponding to In (1 + e -
  • the MAXP3 output of the adder 39 constitutes the output of the DM module.
  • the DM module preferably operates synchronously, and includes means (not shown) for synchronizing data such as flip-flops D.
  • the DM module also preferably includes initialization means (not shown) allowing for example to set to 0 in a controllable manner the outputs of adders 10 and 11 of module MM1 and corresponding adders of module MM2.
  • a decoder using a monobinary ACSO module according to the invention such as module MM1, with an adjustment value Single bit ADJ1
  • a decoder includes other systems (especially upstream of the calculation of LLR) whose operation is more penalizing for the performance of the decoder, so that using a single bit adjustment value has no influence on the overall performance of the decoder.
  • a decoder using a DM module with ADJ1, ADJ2 and ADJ3 one-bit adjustment values according to the invention does not exhibit degraded performance by compared to a decoder using a DM module with values multi-bit adjustment produced by memories ROM, while having a size significantly reduced by the deletion of ROM memories.
  • the values of state metrics MI 1 , MI 2 are coded on the same number of bits n.
  • the adders 10, 11 and 19 of the module MM1 operate modulo n without retaining the carry, so as to each provide an output coded on the same number of bits n.
  • the inventors have in fact found that, when implementing the above formulas (17) or (18), the maximum difference between the sum a of MI 1 and GI 1 and the sum b of MI 2 and GI 2 is always less than a predetermined value ⁇ , as well as a + ADJ1-b or b + ADJ1-a.
  • n such that n ⁇ 2 ⁇
  • the fact for the adders of the module MM1 to carry out modulo n additions does not introduce any error in the calculation of the value produced at the output by the module MM1.
  • the values of state metrics MI 3 , MI 4 are coded on n bits and the adders of the module MM2 as well as the adder 39 operate without conservation of the carry, where it follows that the value produced at the output of the module MM1 is also coded on n bits.
  • Such an ACSO module structure has the advantage of never being saturated while being particularly simple to implement.
  • such a structure advantageously comprises a single means (not shown) of gain compensation on its input, and not a plurality of such means arranged at the level of the adders performing the accumulations in conventional ACSO modules.
  • FIG. 4 schematically represents an example of circuit 40 using ACSO modules in duobinary mode according to the invention to perform a decoding based on the trellis of FIG. 2.
  • Circuit 40 comprises eight ACSO modules (DM0, DM1, DM2, DM3, DM4, DM5, DM6, DM7).
  • the four state metric inputs MI 1 , MI 2 , MI 3 , MI 4 of the modules DM0, DM1, DM2 and DM3 are respectively connected to the outputs of the modules DM0, DM2, DM4 and DM6.
  • the four status metric inputs MI 1 , MI 2 , MI 3 , MI 4 of the modules DM4, DM5, DM6 and DM7 are respectively connected to the outputs of the modules DM1, DM3, DM5 and DM7.
  • the modules DM0, DM1, DM2, DM3, DM4, DM5, DM6, DM7 are clocked by a signal not shown so as to provide an output value on reception of each bibit.
  • the four branch metric inputs GI 1 , GI 2 , GI 3 , GI 4 of the modules DM0 and DM4 are connected to a block, not shown, providing upon reception of each bibit a branch metric ⁇ 00 corresponding to the distance between the value 00 and the value of the bibit received.
  • the branch metric inputs of the modules respectively DM1 and DM5, DM2 and DM6, DM3 and DM7 receive values on receipt of each bibit. ⁇ 01 , ⁇ 10 , ⁇ 11 corresponding to the distances between the values 01, 10, 11 and the value of the bibit received.
  • module MM1 of the calculation block 12 or block 15 may be similar to the structures corresponding described in the European patent application number 03354009.7 filed in the name of the plaintiff.
  • the present invention has been described in relation to a decoding according to an 8-state trellis as in FIG. 2, but a person skilled in the art will easily adapt the invention to a decoding according to other 8-state trellis or according to a trellis with 2 N states, where N is greater than 1.

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The module has two adders (10,11) providing values (a,b) respectively. Each value is equal to a sum of a preceding state metric (MI1,MI2) and branch metric (GI1,GI2). An adder (19) adds largest and adjustment values to provide a current state metric. The adders execute addition without a carry digit conservation such that the current state metric and values (a,b) have same number of bits as that of the metrics (MI1, MI-2). Independent claims are also included for the following: (a) a decoder having multiple devices for execution of a function of type addition-comparison-selection-adjustment and functioning in a dual-binary mode (b) a procedure for execution of addition-comparison-selection-adjustment functions in an error correction code decoder functioning in mono-binary mode (c) a procedure for execution of addition-comparison-selection-adjustment functions in an error correction code decoder functioning in dual-binary mode (d) a decoding of data received in a form of couple of bits or consecutive bits.

Description

La présente invention concerne de façon générale les décodeurs de signaux, comme par exemple les décodeurs du type turbodécodeurs. Plus particulièrement, la présente invention concerne des modules particuliers utilisés dans de tels décodeurs, appelés généralement modules ACSO ("Add-Compare-Select-Offset"-"Additionner-Comparer-Sélectionner-Ajuster") qui réalisent des opérations d'addition pour fournir une pluralité de données, puis de comparaison des données obtenues et de sélection d'une donnée parmi les données obtenues et d'ajustement de la donnée sélectionnée.The present invention relates generally to signal decoders, such as decoders of the type turbodécodeurs. More particularly, the present invention relates to particular modules used in such decoders, generally called ACSO modules ("Add-Compare-Select-Offset" - "Add-Compare-Select-Select-Adjust") who realize addition operations to provide a plurality of data, then comparison of the data obtained and selection of a data from the data obtained and data adjustment selected.

L'un des objectifs des communications numériques est la transmission de données sans erreur. Durant la transmission, les données sont soumises à du bruit qui peut causer des erreurs sur les données reçues. Pour améliorer la fiabilité lors de la transmission des données, on utilise des techniques de correction d'erreur. Une technique connue de correction d'erreur est le codage par convolution. Cette technique fournit une correction d'erreur efficace mais nécessite des techniques de décodage sophistiquées.One of the goals of digital communications is error-free data transmission. During transmission, data is subject to noise which can cause errors on the data received. To improve reliability when data transmission, correction techniques are used error. A known error correction technique is convolutional coding. This technique provides a correction effective error but requires decoding techniques sophisticated.

Les codes de correction d'erreur présentent un effet technique important puisqu'ils permettent la correction d'erreur de données transmises entre un émetteur et un récepteur dans des applications telles que les télécommunications.Error correction codes have an effect important technique since they allow error correction of data transmitted between a transmitter and a receiver in applications such as telecommunications.

Les codes de convolution permettent au récepteur de données numériques de déterminer correctement les données transmises même lorsque des erreurs se sont produites durant la transmission. Les codes de convolution introduisent des redondances dans les données à transmettre et fournissent les données transmises séquentiellement dans des paquets dans lesquels la valeur de chaque bit est dépendante de bits précédents dans la séquence. Ainsi, lorsque des erreurs se produisent, le récepteur peut déduire les données d'origine en retraçant les séquences possibles de données reçues.Convolution codes allow the receiver to digital data to correctly determine the transmitted data even when errors have occurred during the transmission. Convolutional codes introduce redundancies in the data to be transmitted and provide the data transmitted sequentially in packets in which the value of each bit is dependent on previous bits in the sequence. So when errors occur, the receiver can deduce the original data by retracing the sequences possible data received.

Pour améliorer l'efficacité du codage, des procédés de codage comprennent des brasseurs, qui mélangent l'ordre des bits du paquet codé. Ainsi, lorsque des bits adjacents sont altérés durant la transmission, l'erreur est répartie sur la totalité du paquet initial et peut être ainsi plus efficacement corrigée.To improve the efficiency of coding, methods of coding include cross-connects, which mix the order of the bits of the coded packet. So when adjacent bits are altered during the transmission, the error is spread over the entire initial package and can thus be more effectively corrected.

D'autres améliorations peuvent comprendre des codeurs qui codent les données à transmettre plus d'une fois, en parallèle ou en série. Par exemple, on connaít des procédés de correction d'erreur qui transmettent des paquets de données codées pour lesquels chaque paquet est formé par la juxtaposition de données initiales non codées, de premières données codées issues d'un codage des données initiales par un premier codeur, et de deuxièmes données codées issues d'un codage des données initiales par un second codeur précédé d'un brasseur. Un tel procédé de correction d'erreur est appelé codage convolutif parallèle systématique (CCPS). Chaque paquet de données transmis peut correspondre à un seul bit des données initiales, on parle alors de codage en mode monobinaire ; ou correspondre à un couple de bits (ou "bibit") des données initiales, on parle alors de codage en mode duobinaire.Other improvements may include coders which code the data to be transmitted more than once, in parallel or in series. For example, we know correction methods that transmit coded data packets for which each packet is formed by juxtaposing data uncoded initials, first coded data from a coding of the initial data by a first coder, and second coded data resulting from a coding of the initial data by a second encoder preceded by a brewer. Such a method of error correction is called parallel convolutional coding systematic (CCPS). Each transmitted data packet can correspond to a single bit of the initial data, we speak then coding in monobinary mode; or match a couple of bits (or "bibit") of the initial data, this is called coding in duobinary mode.

On sait décoder par "turbodécodage" des données codées en mode monobinaire avec un algorithme itératif, relativement efficace pour atteindre des taux d'erreur peu élevés. Plutôt que de déterminer immédiatement si les données reçues sont égales à "0" ou à "1", le récepteur attribue à chaque donnée reçue une valeur sur une échelle à plusieurs niveaux représentant la probabilité que la donnée soit égale à "1". Une échelle classique, que l'on appelle de façon habituelle rapport de probabilité logarithmique ("log likelihood ratio") LLR, représente chaque donnée décodée x par un entier codé sur un nombre prédéterminé de bits. Pour une donnée reçue r, le rapport LLR est déterminé de la façon suivante :

Figure 00030001
où Pr(x=1/r) représente la probabilité que la donnée décodée x soit égale à "1" pour la donnée r reçue et Pr(x=0/r) représente la probabilité que la donnée décodée x soit égale à "0" pour la donnée r reçue.We know how to decode by "turbo-decoding" coded data in monobinary mode with an iterative algorithm, relatively effective to reach low error rates. Rather than immediately determining whether the received data is "0" or "1", the receiver assigns each received data a value on a multi-level scale representing the probability that the data is equal to "1". A conventional scale, which is commonly called the log likelihood ratio (LLR), represents each data item decoded x by an integer coded on a predetermined number of bits. For a data item received r, the LLR ratio is determined as follows:
Figure 00030001
where Pr (x = 1 / r) represents the probability that the decoded data x is equal to "1" for the data r received and Pr (x = 0 / r) represents the probability that the decoded data x is equal to "0 "for the data r received.

Le procédé de décodage itératif reçoit une séquence d'entrée correspondant à des probabilités pour chaque valeur reçue et fournit en sortie des probabilités corrigées. Le décodage itératif est réalisé par plusieurs itérations après lesquelles la probabilité corrigée représente la donnée transmise de façon suffisamment proche.The iterative decoding process receives a sequence input corresponding to probabilities for each value received and provides corrected probabilities as an output. Decoding iterative is achieved by several iterations after which the corrected probability represents the data transmitted close enough.

On compare alors la valeur du rapport LLR à un seuil pour déterminer la valeur de la donnée décodée x. Par exemple, la donnée décodée est prise égale à "1" lorsque le rapport LLR est positif, et à "0" autrement. Le rapport LLR contient donc à la fois une information représentative de la valeur de la donnée décodée x et une information représentative de la fiabilité de la valeur de la donnée décodée.We then compare the value of the LLR ratio to a threshold to determine the value of the decoded data x. For example, the decoded data is taken equal to "1" when the LLR ratio is positive, and "0" otherwise. The LLR report therefore contains both information representative of the value of the data decoded x and information representative of the reliability of the value of the decoded data.

L'algorithme de calcul du rapport LLR est basé sur un treillis similaire à celui utilisé dans l'algorithme de Viterbi.The LLR ratio calculation algorithm is based on a trellis similar to that used in the Viterbi algorithm.

La figure 1 représente un exemple de treillis à N états, N étant égal à 4 en figure 1. Quatre états Si, i allant de 1 à 4, sont représentés selon la direction verticale. Différents instants k, k allant de 1 à 5, sont représentés selon la direction horizontale. Chaque point Si,k du treillis représente le ième état à l'instant k. Un état peut représenter une séquence d'un nombre déterminé de bits correspondant à l'état supposé de plusieurs bascules du codeur convolutif à la transmission. Pour un treillis à quatre états, chaque état peut être associé à l'une des séquences ("00", "01", "10", "11") correspondant à l'état supposé de deux bascules du codeur. Une branche B représente une transition entre un état à un instant k et un état à un instant k+1. La transition d'un état vers un autre correspond à la réception par le décodeur d'une donnée correspondant à un bit de valeur "0" ou "1". A partir d'un état à un instant k, par exemple l'état S2,3, il n'y a donc que deux transitions possibles vers les états S3,4 et S4,4 selon que la donnée reçue est un bit de valeur "0" ou "1".FIG. 1 represents an example of a trellis with N states, N being equal to 4 in FIG. 1. Four states S i , i ranging from 1 to 4, are represented in the vertical direction. Different instants k, k ranging from 1 to 5, are represented in the horizontal direction. Each point S i, k of the trellis represents the i th state at time k. A state can represent a sequence of a determined number of bits corresponding to the supposed state of several flip-flops of the convolutional encoder at transmission. For a trellis with four states, each state can be associated with one of the sequences ("00", "01", "10", "11") corresponding to the supposed state of two flip-flops of the coder. A branch B represents a transition between a state at an instant k and a state at an instant k + 1. The transition from one state to another corresponds to the reception by the decoder of data corresponding to a bit of value "0" or "1". From a state at an instant k, for example the state S 2,3 , there are therefore only two possible transitions to the states S 3,4 and S 4,4 depending on whether the data received is a bit with value "0" or "1".

En pratique, la donnée rk reçue à un instant k est une donnée analogique. On détermine pour une branche du treillis reliant l'état Si,k et l'état Sm,k+1 une métrique γk de la branche correspondant à une transition possible de l'état Si,k vers l'état Sm,k+1. La métrique de branche correspond à une distance entre la donnée reçue rk et la donnée xk(Si,k, Sm,k+1) qu'on aurait dû recevoir pour la branche. Elle peut être calculée de la façon suivante :

Figure 00040001
où σ2 est la variance de bruit associée à la donnée reçue rk et γk(Si,k,Sm,k+1)=0 s'il n'existe aucune branche entre les états Si,k et Sm,k. On distingue par la suite deux catégories de métriques de branche :

  • γk 1(Si,k,Sm,k+1), égale à γk(Si,k,Sm,k+1) si la transition de l'état Si,k à l'état Sm,k+1 correspond à un bit d'information en entrée du codeur égal à 1, et égale à 0 sinon ; et
  • γk 0(Si,k,Sm,k+1), égale à γk(Si,k,Sm,k+1) si la transition de l'état Si,k à l'état Sm,k+1 correspond à un bit d'information en entrée du codeur égal à 0, et égale à 1 sinon.
  • In practice, the data r k received at an instant k is an analog data. We determine for a branch of the trellis connecting the state S i, k and the state S m, k + 1 a metric γ k of the branch corresponding to a possible transition from the state S i, k to the state S m, k + 1 . The branch metric corresponds to a distance between the data received r k and the data x k (S i, k , S m, k + 1 ) that should have been received for the branch. It can be calculated as follows:
    Figure 00040001
    where σ 2 is the noise variance associated with the received data r k and γ k (S i, k , S m, k + 1 ) = 0 if there is no branch between the states S i, k and S m, k . We then distinguish two categories of branch metrics:
  • γ k 1 (S i, k , S m, k + 1 ), equal to γ k (S i, k , S m, k + 1 ) if the transition from state S i, k to state S m, k + 1 corresponds to an information bit at the encoder input equal to 1, and equal to 0 otherwise; and
  • γ k 0 (S i, k , S m, k + 1 ), equal to γ k (S i, k , S m, k + 1 ) if the transition from state S i, k to state S m, k + 1 corresponds to an information bit at the encoder input equal to 0, and equal to 1 otherwise.
  • L'algorithme de calcul du rapport LLR comporte trois étapes principales.The LLR report calculation algorithm has three main steps.

    A un instant k, on calcule pour chaque état Si,k, i allant de 1 à N, une probabilité amont αk(Si,k) de se trouver à l'état Si,k de la façon suivante :

    Figure 00050001
    At an instant k, for each state S i, k , i ranging from 1 to N, an upstream probability α k (S i, k ) of being in the state S i, k is calculated as follows:
    Figure 00050001

    On calcule également à l'instant k, pour chaque état Si,k, i allant de 1 à N, une probabilité aval βk(Si,k) de se trouver à l'état Si,k par l'équation suivante :

    Figure 00050002
    We also calculate at time k, for each state S i, k , i going from 1 to N, a downstream probability β k (S i, k ) of being in state S i, k by the equation next :
    Figure 00050002

    A partir de ces deux probabilités, on calcule le rapport LLR de la facon suivante :

    Figure 00050003
    où B(k,0) (respectivement B(k,1)) est l'ensemble des transitions possibles d'un état Sl,k-1 vers un état Si,k provoquées par une donnée d'entrée égale à "0" (respectivement "1").From these two probabilities, the LLR ratio is calculated as follows:
    Figure 00050003
    where B (k, 0) (respectively B (k, 1)) is the set of possible transitions from a state S l, k-1 to a state S i, k caused by an input data equal to " 0 "(respectively" 1 ").

    Le calcul du rapport LLR nécessite le calcul de multiplications et de valeurs exponentielles. Ces opérations sont difficiles à mettre en oeuvre. Pour ce faire, on introduit la fonction suivante : MAX+(x,y)=In(ex+ey)=MAX(x,y)+In(1+e-|x-y|) où le terme In(1+e-|x-y|) est une valeur d'ajustement. La valeur d'ajustement peut être obtenue au moyen d'une mémoire, par exemple une mémoire ROM, dans laquelle sont mémorisées des valeurs de la fonction In(1+e-|v|) sur un nombre de bits déterminé pour certaines valeurs |v| codées sur un nombre de bits déterminé. Il vient :

    Figure 00060001
    The calculation of the LLR ratio requires the calculation of multiplications and exponential values. These operations are difficult to carry out. To do this, we introduce the following function: MAX + (X, y) = In (e x e + there ) = MAX (x, y) + In (1 + e - | xy | ) where the term In (1 + e - | xy | ) is an adjustment value. The adjustment value can be obtained by means of a memory, for example a ROM memory, in which values of the function In (1 + e - | v | ) are stored on a number of bits determined for certain values | v | encoded on a determined number of bits. He comes :
    Figure 00060001

    On introduit ainsi les définitions suivantes : γ 1 k(Sm,n,Si,k) = log(γ1 k(Sm,n,Si,k)) γ 0 k(Sm,n,Si,k) = log(γ0 k(Sm,n,Si,k)) α k(Si,k) = logαk(Si,k) The following definitions are thus introduced: γ 1 k (S m, n S i, k ) = log (γ 1 k (S m, n S i, k )) γ 0 k (S m, n S i, k ) = log (γ 0 k (S m, n S i, k )) α k (S i, k ) = logα k (S i, k )

    Le terme α k(Si,k) est appelé métrique amont d'état ("forward state metrics") pour l'état Si,k ou métrique amont de chemin pour l'état Si,k. β k (Si,k) = log(βk(Si,k)) The term α k (S i, k ) is called upstream state metrics for the state S i, k or upstream path metric for the state S i, k . β k (S i, k ) = log (β k (S i, k ))

    Le terme β k(Si,k) est appelé métrique aval d'état ("backward state metrics") pour l'état Si,k ou métrique aval de chemin pour l'état Si,k.The term β k (S i, k ) is called backward state metrics for state S i, k or path downstream metric for state S i, k .

    Il en résulte que :

    Figure 00060002
    Figure 00060003
    It follows that :
    Figure 00060002
    Figure 00060003

    L'expression du rapport LLR devient :

    Figure 00060004
    The expression of the LLR report becomes:
    Figure 00060004

    Les calculs des métriques amont αk(Si,k) et aval βk(Si,k) d'état sont réalisés par des modules particuliers du décodeur appelés modules ACSO ("ADD-COMPARE-SELECT-OFFSET"-"Additionner-Comparer-Sélectionner-Ajuster") qui mettent en oeuvre la fonction MAX+.Upstream metric calculations α k (S i, k ) and downstream β k (S i, k ) of state are realized by particular modules of the decoder called modules ACSO ("ADD-COMPARE-SELECT-OFFSET" - "Add-Compare-Select-Adjust") which implement the function MAX + .

    Le fonctionnement itératif d'un module ACSO implique de réaliser plusieurs accumulations d'un grand nombre de sommes de métriques d'état et de branche en une durée inférieure à la période séparant la réception de deux bits successifs. Une telle vitesse de fonctionnement implique généralement d'utiliser des moyens redondants dans les modules ACSO, ce qui rend complexe la structure de ces modules. De plus, afin de limiter la taille des additionneurs utilisés pour les accumulations sans risquer une perte d'information due à une saturation des additionneurs, les modules ACSO comportent des moyens de limitation pour, par exemple lorsque l'une des accumulations dépasse un seuil prédéterminé, diviser toutes les accumulations par une valeur prédéterminée. De tels moyens de limitation des accumulations rendent également la structure des modules ACSO complexe. Les modules ACSO peuvent comporter également des moyens permettant de compenser une variation des métriques de branche due à une variation de gain de transmission. De tels moyens de compensation du gain ont en particulier pour effet d'accroítre la taille de la mémoire ROM dans laquelle sont mémorisées les valeurs d'ajustement, et rendent plus complexes encore les moyens précédents de limitation des accumulations.The iterative operation of an ACSO module implies to make several accumulations of a large number of sums state and branch metrics in less than period between the reception of two successive bits. Such a operating speed usually involves using redundant means in ACSO modules, which makes the structure of these modules. In addition, in order to limit the size of the adders used for accumulations without risking a loss of information due to saturation of the adders, the ACSO modules include means of limitation for, for example when one of the accumulations exceeds a predetermined threshold, divide all accumulations by a value predetermined. Such means of limitation of accumulations also make the structure of ACSO modules complex. The ACSO modules can also include means allowing compensate for a variation in branch metrics due to a variation in transmission gain. Such means of compensation in particular have the effect of increasing the size of the ROM memory in which the adjustment values, and make them even more complex previous means of limitation of accumulations.

    Un codage en mode duobinaire permet de transmettre à fréquence égale les données avec un débit plus élevé qu'un codage en mode monobinaire. On ne connaít cependant actuellement pas de dispositifs simples pour mettre en oeuvre un décodage en mode duobinaire.A coding in duobinary mode makes it possible to transmit to frequency equals data with higher bit rate than coding in monobinary mode. We do not currently know no simple devices to implement decoding in duobinary mode.

    Un objet de l'invention consiste à prévoir un dispositif simple et peu coûteux pour mettre en oeuvre un décodage en mode monobinaire. An object of the invention is to provide a device simple and inexpensive to implement a decoding in monobinary mode.

    Un autre objet de l'invention consiste à prévoir un dispositif simple et peu coûteux pour mettre en oeuvre un décodage en mode duobinaire.Another object of the invention is to provide a simple and inexpensive device for implementing a decoding in duobinary mode.

    Pour atteindre ces objets, ainsi que d'autres, la présente invention prévoit un dispositif pour réaliser une fonction de type addition-comparaison-sélection-ajustement dans un décodeur de codes de correction d'erreur, comprenant :

  • des premier et deuxième additionneurs pour produire des première et deuxième valeurs intermédiaires de métrique a et b respectivement égales à la somme d'une première métrique d'état précédent et d'une métrique de branche associée et à la somme d'une deuxième métrique d'état précédent et d'une métrique de branche associée ;
  • un bloc de calcul recevant les valeurs a et b, pour comparer les valeurs a et b, sélectionner la plus grande des valeurs a et b et fournir ladite valeur sélectionnée sur une première sortie, et pour produire sur une deuxième sortie une valeur d'ajustement correspondant à une approximation de In(1+e-|a-b|) ; et
  • un troisième additionneur pour produire une métrique d'état courant égale à la somme des sorties du bloc de calcul ;
  •    dans lequel les première et deuxième métriques d'état précédent sont codées sur un même nombre de bits, et dans lequel les additionneurs effectuent des additions sans conservation de la retenue de telle manière que la métrique d'état courant et les valeurs intermédiaires a et b comportent le même nombre de bits que les première et deuxième métriques d'état précédent.To achieve these and other objects, the present invention provides a device for performing an addition-comparison-selection-adjustment type function in an error correction code decoder, comprising:
  • first and second adders to produce first and second intermediate metric values a and b respectively equal to the sum of a first previous state metric and an associated branch metric and the sum of a second metric d 'previous state and an associated branch metric;
  • a calculation block receiving the values a and b, for comparing the values a and b, selecting the largest of the values a and b and providing said selected value on a first output, and for producing on an second output an adjustment value corresponding to an approximation of In (1 + e - | ab | ); and
  • a third adder for producing a current state metric equal to the sum of the outputs of the calculation block;
  • in which the first and second preceding state metrics are coded on the same number of bits, and in which the adders perform additions without retaining the carry so that the current state metric and the intermediate values a and b have the same number of bits as the first and second previous state metrics.

    La présente invention vise également un dispositif pour réaliser une fonction de type addition-comparaison-sélection-ajustement dans un décodeur de codes de correction d'erreur fonctionnant en mode duobinaire, comprenant :

  • des premier et second dispositifs tels que décrits précédemment comprenant respectivement des premier et deuxième blocs de calcul pour produire des première et deuxième métriques d'état courant respectivement à partir de première et deuxième métriques d'état précédent et de première et deuxième métriques de branches associées et à partir de troisième et quatrième métriques d'état précédent et de troisième et quatrième métriques de branche associées ;
  • un troisième bloc de calcul tel que décrit précédemment recevant en entrée les première et deuxième métriques d'état courant ; et
  • un additionneur pour produire une troisième métrique d'état courant égale à la somme des sorties du troisième bloc de calcul, dans lequel les métriques d'état précédent sont codées chacune sur un même nombre de bits, ledit additionneur effectuant des additions sans conservation de la retenue de telle manière que la troisième métrique d'état courant comporte le même nombre de bits que les métriques d'état précédent.
  • The present invention also relates to a device for performing a function of the addition-comparison-selection-adjustment type in a decoder of error correction codes operating in duobinary mode, comprising:
  • first and second devices as described above comprising respectively first and second calculation blocks for producing first and second current state metrics respectively from first and second previous state metrics and from first and second metrics of associated branches and from third and fourth previous state metrics and from third and fourth associated branch metrics;
  • a third calculation block as described previously receiving as input the first and second current state metrics; and
  • an adder for producing a third current state metric equal to the sum of the outputs of the third calculation block, in which the preceding state metrics are each coded on the same number of bits, said adder performing additions without preserving the retained so that the third current state metric has the same number of bits as the previous state metrics.
  • Selon un mode de réalisation de l'invention, le bloc de calcul comporte un soustracteur pour calculer la différence des première et deuxième valeurs reçues par le bloc de calcul, un multiplexeur commandé par la sortie du soustracteur pour produire sur la première sortie du bloc de calcul la plus grande des valeurs reçues, et un bloc d'approximation pour produire sur la deuxième sortie du bloc de calcul la valeur d'ajustement sous la forme d'une valeur de un bit égale à 1 si ladite différence est égale à 0, 1 ou -1 et égale à 0 sinon.According to one embodiment of the invention, the block of calculation includes a subtractor to calculate the difference first and second values received by the calculation block, a multiplexer controlled by the output of the subtractor for produce on the first output of the largest calculation block received values, and an approximation block to produce on the second output of the calculation block the adjustment value under the form of a value of one bit equal to 1 if said difference is equal to 0, 1 or -1 and equal to 0 otherwise.

    Selon un mode de réalisation de l'invention, le bloc d'approximation comporte une première porte logique calculant un NON-OU de tous les bits de ladite différence à l'exception de son bit de poids le plus faible, une deuxième porte logique calculant un ET de tous les bits de ladite différence, et une troisième porte logique calculant un OU des sorties des première et deuxième portes logiques.According to one embodiment of the invention, the block of approximation comprises a first logic gate calculating a NOR of all the bits of said difference except for its least significant bit, a second logic gate calculating an AND of all the bits of said difference, and a third logic gate calculating an OR of the outputs of the first and second logic gates.

    La présente invention vise également un décodeur comportant 2N, où N est supérieur à 1, dispositifs en mode duobinaire tel que décrit précédemment, dont chacun est associé à une valeur de N bits particulière, le décodeur recevant des données sous forme de bibits consécutifs ; The present invention also relates to a decoder comprising 2 N , where N is greater than 1, devices in duobinary mode as described above, each of which is associated with a particular value of N bits, the decoder receiving data in the form of consecutive bits;

    la sortie de chaque dispositif associé à une première valeur étant connectée de manière à fournir l'une des métriques d'état précédent à quatre dispositifs, associés chacun à une valeur dont les N-2 bits de poids fort sont les N-2 bits de poids faible de ladite première valeur et dont les deux bits de poids faibles sont respectivement l'une des quatre valeurs possibles du dernier bibit reçu ;the output of each device associated with a first value being connected to provide one of the metrics previous status to four devices, each associated with a value of which the most significant N-2 bits are the N-2 bits of least significant of said first value and whose two bits of low weights are respectively one of the four values possible from the last bibit received;

    chaque dispositif associé à une première valeur dont les deux bits de poids faible sont l'une des quatre valeurs possibles (00, 01, 10, 11) d'un bibit recevant comme métriques de branche une valeur correspondant à une distance entre le bibit reçu et ladite une des quatre valeurs possibles d'un bibit.each device associated with a first value of which the two least significant bits are one of the four values possible (00, 01, 10, 11) of a bibit receiving as metrics of branch a value corresponding to a distance between the bibit received and said one of the four possible values of a Bibit.

    La présente invention vise également un procédé pour réaliser une fonction de type addition-comparaison-sélection-ajustement dans un décodeur de codes de correction d'erreur fonctionnant en mode monobinaire, comprenant les étapes suivantes :

  • i/ produire des première et deuxième valeurs intermédiaires de métrique, a et b, respectivement égales à la somme d'une première métrique d'état précédent et d'une métrique de branche associée et à la somme d'une deuxième métrique d'état précédent et d'une métrique de branche associée ;
  • ii/ comparer les valeurs a et b, sélectionner la plus grande des valeurs a et b et fournir ladite valeur sélectionnée sur une première sortie, et produire sur une deuxième sortie une valeur d'ajustement correspondant à une approximation de In(1+e-|a-b|) ; et
  • iii/ produire une métrique d'état courant égale à la somme des sorties du bloc de calcul ;
  •    les première et deuxième métriques d'état précédent étant codées sur un même nombre de bits et les sommes calculées aux étapes i/ et iii/ étant réalisées sans conservation de la retenue, de telle manière que la métrique d'état courant et les valeurs intermédiaires a et b comportent le même nombre de bits que les première et deuxième métriques d'état précédent.The present invention also relates to a method for performing an addition-comparison-selection-adjustment type function in an error correction code decoder operating in monobinary mode, comprising the following steps:
  • i / produce first and second intermediate metric values, a and b, respectively equal to the sum of a first previous state metric and an associated branch metric and to the sum of a second state metric previous and an associated branch metric;
  • ii / compare the values a and b, select the largest of the values a and b and provide said selected value on a first output, and produce on an second output an adjustment value corresponding to an approximation of In (1 + e - | ab | ); and
  • iii / produce a current state metric equal to the sum of the outputs of the calculation block;
  • the first and second previous state metrics being coded on the same number of bits and the sums calculated in steps i / and iii / being carried out without retaining the carry, so that the current state metric and the intermediate values a and b have the same number of bits as the first and second previous state metrics.

    La présente invention vise également un procédé pour réaliser une fonction de type addition-comparaison-sélection-ajustement dans un décodeur de codes de correction d'erreur fonctionnant en mode duobinaire, comprenant les étapes suivantes :

  • iv/ produire des première et deuxième métriques d'état courant selon le procédé en mode monobinaire décrit précédemment, respectivement à partir de première et deuxième métriques d'état précédent et de première et deuxième métriques de branches associées et à partir de troisième et quatrième métriques d'état précédent et de troisième et quatrième métriques de branches associées ;
  • v/ fournir une valeur sélectionnée et une valeur d'approximation calculées selon l'étape ii/ du procédé en mode monobinaire décrit précédemment, à partir des première et deuxième métriques d'état courant ; et
  • vi/ produire une troisième métrique d'état courant égale à la somme des valeurs produites à l'étape v/, les métriques d'état précédent étant codées chacune sur un même nombre de bits et ladite somme étant effectuée sans conservation de la retenue de telle manière que la troisième métrique d'état courant comporte le même nombre de bits que les métriques d'état précédent.
  • The present invention also relates to a method for performing an addition-comparison-selection-adjustment type function in an error correction code decoder operating in duobinary mode, comprising the following steps:
  • iv / produce first and second current state metrics according to the method in monobinary mode described above, respectively from first and second previous state metrics and from first and second metrics of associated branches and from third and fourth metrics previous state and third and fourth metrics of associated branches;
  • v / provide a selected value and an approximation value calculated according to step ii / of the method in monobinary mode described above, from the first and second current state metrics; and
  • vi / produce a third current state metric equal to the sum of the values produced in step v /, the preceding state metrics being each coded on the same number of bits and said sum being carried out without retaining the carry of such that the third current state metric has the same number of bits as the previous state metrics.
  • Selon un mode de réalisation de l'invention, à l'étape ii/, la valeur est sélectionnée en calculant la différence des valeurs comparées et en fournissant la plus grande des valeurs comparées sur la base du signe de ladite différence, et la valeur d'ajustement est produite comme étant une valeur de un bit égale à 1 si ladite différence est égale à 0, 1 ou -1 et égale à 0 sinon.According to one embodiment of the invention, in step ii /, the value is selected by calculating the difference of compared values and providing the largest of the values compared on the basis of the sign of said difference, and the adjustment value is produced as a value of one bit equal to 1 if said difference is equal to 0, 1 or -1 and equal to 0 otherwise.

    Selon un mode de réalisation de l'invention, la valeur d'ajustement est égale au OU logique d'un NON-OU logique de tous les bits de ladite différence à l'exception de son bit de poids le plus faible et d'un ET logique de tous les bits de ladite différence.According to one embodiment of the invention, the value of adjustment is equal to the logical OR of a logical NON-OR of all the bits of said difference except for its weight bit the lowest and a logical AND of all the bits in said difference.

    La présente invention vise également un procédé de décodage selon un treillis comportant 2N, où N est supérieur à 1, états associés chacun à une valeur de N bits particulière, de données reçues sous la forme de bibits consécutifs, comportant les étapes suivantes :

  • vii/ pour le premier bibit reçu, produire selon le procédé de décodage en mode duobinaire décrit précédemment 2N métriques d'état courant associées chacune à l'une desdites valeurs à partir de quatre métriques d'état précédent initiales prédéterminées et à partir de quatre métriques de branche identiques correspondant à une distance entre le bibit reçu et une valeur du bibit égale aux deux bits de poids faible de ladite une desdites valeurs ;
  • viii/ pour chaque bibit reçu ultérieurement, produire selon le procédé de décodage en mode duobinaire décrit précédemment 2N métriques d'état courant associées chacune à l'une desdites valeurs en prenant pour les quatre métriques d'état précédent les quatre métriques d'état courant produites pour le bibit reçu précédent et associées à une valeur dont les N-2 bits de poids faible sont les N-2 bits de poids fort de ladite une desdites valeurs, et en prenant pour les quatre métriques de branche une distance entre le bibit reçu et une valeur du bibit égale aux deux bits de poids faible de ladite une desdites valeurs.
  • The present invention also relates to a decoding method according to a trellis comprising 2 N , where N is greater than 1, states each associated with a value of N particular bits, of data received in the form of consecutive bits, comprising the following steps:
  • vii / for the first bibit received, produce according to the decoding method in duobinary mode described above 2 N current state metrics each associated with one of said values from four predetermined initial previous state metrics and from four identical branch metrics corresponding to a distance between the received bibit and a value of the bibit equal to the two least significant bits of said one of said values;
  • viii / for each bibit received subsequently, produce according to the decoding method in duobinary mode described above 2 N current state metrics each associated with one of said values taking for the four state metrics preceding the four state metrics current produced for the previous received bibit and associated with a value whose N-2 least significant bits are the N-2 most significant bits of said one of said values, and taking for the four branch metrics a distance between the bibit received and a bibit value equal to the two least significant bits of said one of said values.
  • Ces objets, caractéristiques et avantages, ainsi que d'autres de la présente invention seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles :

  • la figure 1, précédemment décrite, représente un exemple de treillis utilisé pour un décodage monobinaire ;
  • la figure 2 représente un exemple de treillis utilisé pour un décodage duobinaire selon la présente invention ;
  • la figure 3 représente un mode de réalisation d'un module ACSO selon la présente invention ; et
  • la figure 4 représente un exemple de circuit de décodage correspondant au treillis de la figure 2 utilisant des modules ACSO tels qu'en figure 3.
  • These objects, characteristics and advantages, as well as others of the present invention will be explained in detail in the following description of particular embodiments given without limitation in relation to the attached figures among which:
  • FIG. 1, previously described, shows an example of a trellis used for monobinary decoding;
  • FIG. 2 represents an example of a trellis used for a duobinary decoding according to the present invention;
  • FIG. 3 represents an embodiment of an ACSO module according to the present invention; and
  • FIG. 4 represents an example of a decoding circuit corresponding to the trellis of FIG. 2 using ACSO modules such as in FIG. 3.
  • La figure 2 représente un exemple de treillis de décodage de données codées en mode duobinaire. Le treillis comporte 5 colonnes comportant chacune 8 états Si,j où i = 1-8 et j = 1-5. Chaque colonne est associée à un instant différent correspondant à la réception d'un nouveau bibit de données. Pour un treillis à huit états, chaque état peut être associé à l'une des séquences ("000", "001", "010", "011", "100", "101", "110", "111") des états internes du codeur convolutif. A partir de chaque état à un instant k (par exemple l'état S2,3) il y a quatre transitions possibles (dans l'exemple considéré vers les états S5,4, S6,4, S7,4 et S8,4, selon que le bibit reçu a une valeur "00", "01", "10" ou "11").FIG. 2 represents an example of a trellis for decoding data encoded in duobinary mode. The trellis has 5 columns each comprising 8 states S i, j where i = 1-8 and j = 1-5. Each column is associated with a different time corresponding to the reception of a new data bibit. For an eight-state trellis, each state can be associated with one of the sequences ("000", "001", "010", "011", "100", "101", "110", "111" ) internal states of the convolutional encoder. From each state at an instant k (for example the state S 2,3 ) there are four possible transitions (in the example considered towards the states S 5,4 , S 6,4 , S 7,4 and S 8.4 , depending on whether the bibit received has a value "00", "01", "10" or "11").

    En pratique, comme pour un décodage en mode monobinaire, un bibit transmis est reçu à chaque instant k sous la forme d'une donnée analogique, et on associe à chaque branche du treillis une métrique de branche γk calculée sensiblement de la même manière que selon l'équation (2) précédente, si l'on appelle rk la valeur analogique reçue et xk le bibit que l'on aurait dû recevoir pour la branche, ou "bibit reçu".In practice, as for a decoding in monobinary mode, a transmitted bibit is received at each instant k in the form of an analog datum, and each branch of the trellis is associated with a branch metric γ k calculated substantially in the same way as according to equation (2) above, if we call r k the analog value received and x k the bibit that we should have received for the branch, or "bibit received".

    On distingue par la suite quatre catégories de métriques de branche :

  • γk 00(Si,k,Sm,k+1), égale à γk(Si,k,Sm,k+1) si la transition de l'état Si,k à l'état Sm,k+1 correspond à un bibit d'information en entrée du codeur égal à 00, et égale à 0 sinon ;
  • γk 01(Si,k,Sm,k+1), égale à γk(Si,k,Sm,k+1) si la transition de l'état Si,k à l'état Sm,k+1 correspond à un bibit d'information en entrée du codeur égal à 01, et égale à 1 sinon ;
  • γk 10(Si,k,Sm,k+1), égale à γk(Si,k,Sm,k+1) si la transition de l'état Si,k à l'état Sm,k+1 correspond à un bibit d'information en entrée du codeur égal à 10, et égale à 0 sinon ;
  • γk 11(Si,k,Sm,k+1), égale à γk(Si,k,Sm,k+1) si la transition de l'état Si,k à l'état Sm,k+1 correspond à un bibit d'information en entrée du codeur égal à 11, et égale à 1 sinon.
  • There are then four categories of branch metrics:
  • γ k 00 (S i, k , S m, k + 1 ), equal to γ k (S i, k , S m, k + 1 ) if the transition from state S i, k to state S m, k + 1 corresponds to a bibit of information at the input of the coder equal to 00, and equal to 0 otherwise;
  • γ k 01 (S i, k , S m, k + 1 ), equal to γ k (S i, k , S m, k + 1 ) if the transition from state S i, k to state S m, k + 1 corresponds to a bit of information at the encoder input equal to 01, and equal to 1 otherwise;
  • γ k 10 (S i, k , S m, k + 1 ), equal to γ k (S i, k , S m, k + 1 ) if the transition from state S i, k to state S m, k + 1 corresponds to a bibit of information at the input of the coder equal to 10, and equal to 0 otherwise;
  • γ k 11 (S i, k , S m, k + 1 ), equal to γ k (S i, k , S m, k + 1 ) if the transition from state S i, k to state S m, k + 1 corresponds to a bibit of information at the input of the coder equal to 11, and equal to 1 otherwise.
  • Les inventeurs ont montré que l'on peut, par exemple en suivant un treillis tel qu'en figure 2, mesurer à chaque instant la probabilité pour que le bibit reçu ait l'une des quatre valeurs possibles au moyen de quatre rapports LLR calculés chacun de la façon suivante :

    Figure 00140001
    où B(k,00), (respectivement B(k,01), B(k,10), B(k,11)) est l'ensemble des transitions possibles d'un état Sm,k-1 vers un état Si,k provoquées par un bibit d'entrée égal à "00" (respectivement "01", "10", "11"). Le décodage s'effectue en comparant les LLR calculés :

  • si   MAX(LLR00(xk),   LLR01(xk),   LLR10(xk), LLR11(xk)) = LLR00(xk), le bibit décodé est 00 ;
  • si   MAX(LLR00(xk),   LLR01(xk),   LLR10(xk), LLR11(xk)) = LLR01(xk), le bibit décodé est 01 ;
  • si   MAX(LLR00(xk),   LLR01(xk),   LLR10(xk), LLR11(xk)) = LLR10(xk), le bibit décodé est 10 ;
  • si   MAX(LLR00(xk),   LLR01(xk),   LLR10(xk), LLR11(xk)) = LLR11(xk), le bibit décodé est 11.
  • Les valeurs α k-1, β k sont respectivement calculées selon les équations (9) et (10) précédentes, avec αk(Si,k) la probabilité amont de se trouver à l'état Si,k, égale à :
    Figure 00150001
    et βk(Si,k), la probabilité aval de se trouver à l'état Si,k, égale à :
    Figure 00150002
    The inventors have shown that it is possible, for example by following a trellis such as in FIG. 2, to measure at every instant the probability that the bibit received has one of the four possible values by means of four LLR ratios each calculated as follows :
    Figure 00140001
    where B (k, 00), (respectively B (k, 01), B (k, 10), B (k, 11)) is the set of possible transitions from a state S m, k-1 to a state S i, k caused by an input bibit equal to "00" (respectively "01", "10", "11"). Decoding is performed by comparing the calculated LLRs:
  • if MAX (LLR 00 (x k ), LLR 01 (x k ), LLR 10 (x k ), LLR 11 (x k )) = LLR 00 (x k ), the decoded bibit is 00;
  • if MAX (LLR 00 (x k ), LLR 01 (x k ), LLR 10 (x k ), LLR 11 (x k )) = LLR 01 (x k ), the decoded bibit is 01;
  • if MAX (LLR 00 (x k ), LLR 01 (x k ), LLR 10 (x k ), LLR 11 (x k )) = LLR 10 (x k ), the decoded bibit is 10;
  • if MAX (LLR 00 (x k ), LLR 01 (x k ), LLR 10 (x k ), LLR 11 (x k )) = LLR 11 (x k ), the decoded bibit is 11.
  • Values α k-1 , β k are respectively calculated according to equations (9) and (10) above, with α k (S i, k ) the upstream probability of being in the state S i, k , equal to:
    Figure 00150001
    and β k (S i, k ), the downstream probability of being in the state S i, k , equal to:
    Figure 00150002

    Les inventeurs ont en particulier montré que : α k(Si,k)=MAX+(MAX+(α k-1(Sm1,k-1)+γ 00 k(Sm1,k-1,Si,k)), (α k-1(Sm2,k-1)+γ 01 k(Sm2,k-1,Si,k)), MAX+(α k-1(Sm3,k-1)+γ 10 k(Sm3,k-1,Si,k)), (α k-1(Sm4,k-1)+γ 11 k(Sm4,k-1Si,k)) (17) Et que : β k-1(Si,k-1)=MAX+(MAX+(β k(Sm1,k)+γ 00 k(Si,k-1,Sm1,k)), (β k(Sm2,k)+γ 01 k(Si,k-1,Sm2,k)), MAX+(β k(Sm3,k)+γ 10 k(Si,k-1,Sm3,k)), (β k(Sm4,k)+γ 11 k(Si,k-1,Sm4,k)) Avec Sm1, Sm2, Sm3, Sm4 les états précédant l'état Si (dans le cas du calcul de α, et suivant l'état Si dans le cas du calcul de β) pour des transitions dues respectivement aux bibits 00, 01, 10 et 11 en entrée.The inventors have in particular shown that: α k (S i, k ) = MAX + (MAX + ( α k-1 (S m1, k-1 ) + γ 00 k (S m1, k-1 S i, k )), ( α k-1 (S m2, k-1 ) + γ 01 k (S m2, k-1 S i, k )), MAX + ( α k-1 (S m3, k-1 ) + γ 10 k (S m3, k-1 S i, k )), ( α k-1 (S m4, k-1 ) + γ 11 k (S m4, k-1 S i, k )) (17) And : β k-1 (S i, k-1 ) = MAX + (MAX + ( β k (S m1, k ) + γ 00 k (S i, k-1 S m1, k )), ( β k (S m2 k ) + γ 01 k (S i, k-1 S m2 k )), MAX + ( β k (S m3, k ) + γ 10 k (S i, k-1 S m3, k )), ( β k (S m4, k ) + γ 11 k (S i, k-1 S m4, k )) With Sm1, Sm2, Sm3, Sm4 the states preceding the state Si (in the case of calculating α, and following the state Si in the case of calculating β) for transitions due respectively to the bibits 00, 01, 10 and 11 as input.

    Il découle des formules (17) et (18) précédentes que chacune des métriques d'état amont α k(Si,k) et aval β k(Si,k) peut être calculée par un module ACSO en mode duobinaire selon l'invention, comportant deux modules ACSO en mode monobinaire calculant chacun le MAX+ de deux sommes d'une métrique d'état et d'une métrique de branche associée, suivis d'un bloc calculant le MAX+ des résultats des modules ACSO en mode monobinaire.It follows from the above formulas (17) and (18) that each of the upstream state metrics α k (S i, k ) and downstream β k (S i, k ) can be calculated by an ACSO module in duobinary mode according to the invention, comprising two ACSO modules in monobinary mode each calculating the MAX + of two sums of a state metric and a metric of associated branch, followed by a block calculating the MAX + of the results of the ACSO modules in monobinary mode.

    La figure 3 représente un module ACSO en mode duobinaire MM1 selon l'invention, permettant le calcul de la métrique d'état (amont ou aval) d'un état considéré à un instant donné k. Par la suite, on utilise le terme métrique d'état indifféremment pour une métrique d'état amont ou une métrique d'état aval et, lorsqu'on fait référence à un état adjacent à l'état considéré, cela signifie un état à un instant ultérieur k+1 ou antérieur k-1 à l'état considéré, suivant la métrique considérée.Figure 3 shows an ACSO module in mode duobinaire MM1 according to the invention, allowing the calculation of the state metric (upstream or downstream) of a state considered at an instant given k. Thereafter, we use the term state metric either for an upstream state metric or a metric downstream state and when referring to a state adjacent to the state considered, it means a state at a later time k + 1 or earlier k-1 in the considered state, depending on the metric considered.

    Le module ACSO en mode duobinaire DM comporte un premier module ACSO en mode monobinaire MM1. Le module MM1 reçoit en entrée des données MI1, MI2 qui représentent respectivement des première et deuxième métriques d'état précédent. Le module MM1 reçoit également des données GI1, GI2 qui représentent des métriques de branche correspondant aux branches entre l'état considéré et respectivement les premier et deuxième états adjacents. Le module MM1 comporte deux additionneurs 10 et 11 recevant respectivement en entrée les données MI1, GI1 et MI2, GI2. Un bloc de calcul 12 reçoit sur deux entrées les valeurs (a, b) produites en sortie des additionneurs 10 et 11. Le bloc de calcul 12 comporte un soustracteur 13 calculant la différence a-b. Un multiplexeur 14 recevant les valeurs a et b fournit MAX1 = MAX(a,b), c'est-à-dire soit la valeur a soit la valeur b selon que la différence a-b est positive ou négative (selon que le bit de signe de a-b est égal à 0 ou 1). Un bloc 15 d'approximation reçoit la différence a-b et fournit une valeur ADJ1 égale à 1 si la différence a-b a une valeur égale à 0, 1 ou -1, et une valeur égale à 0 sinon. On montre que la valeur ADJ1 est une approximation codée sur 1 bit de la valeur d'ajustement In(1+e-|a-b|). Le bloc 15 comporte par exemple une porte logique 16 calculant un NON-OU de tous les bits de la différence a-b à l'exception de son bit de poids le plus faible, une porte logique 17 calculant un ET de tous les bits de la différence a-b, et une porte logique 18 calculant un OU des sorties des portes 16 et 17. Un additionneur 19 fournit la somme MAXP1 des valeurs MAX1 et ADJ1, où MAXP1 = MAX+(a,b) conformément à la formule (6).The ACSO module in duobinary mode DM includes a first ACSO module in monobinary mode MM1. The module MM1 receives at the input data MI 1 , MI 2 which respectively represent first and second metrics of previous state. The module MM1 also receives data GI 1 , GI 2 which represent branch metrics corresponding to the branches between the state considered and the first and second adjacent states respectively. The module MM1 has two adders 10 and 11 respectively receiving as input the data MI 1 , GI 1 and MI 2 , GI 2 . A calculation block 12 receives on two inputs the values (a, b) produced at the output of the adders 10 and 11. The calculation block 12 comprises a subtractor 13 calculating the difference ab. A multiplexer 14 receiving the values a and b provides MAX1 = MAX (a, b), that is to say either the value a or the value b depending on whether the difference ab is positive or negative (depending on whether the sign bit of ab is 0 or 1). An approximation block 15 receives the difference ab and supplies a value ADJ1 equal to 1 if the difference ab has a value equal to 0, 1 or -1, and a value equal to 0 otherwise. We show that the value ADJ1 is a 1-bit coded approximation of the adjustment value In (1 + e - | ab | ). Block 15 includes for example a logic gate 16 calculating a NOR of all the bits of the difference ab except for its least significant bit, a logic gate 17 calculating an AND of all the bits of the difference ab, and a logic gate 18 calculating an OR of the outputs of gates 16 and 17. An adder 19 supplies the sum MAXP1 of the values MAX1 and ADJ1, where MAXP1 = MAX + (a, b) in accordance with formula (6).

    Le module ACSO duobinaire DM comporte un deuxième module ACSO monobinaire MM2 de même structure que le module MM1, produisant une métrique d'état courant MAXP2 à partir de données MI3, MI4, GI3 et GI4 représentant respectivement des troisième et quatrièmes métriques d'état précédent et des métriques de branche correspondantes. De même références dans lesquelles le 1 des dizaines a été remplacé par un 2 désignent de mêmes éléments dans les modules MM1 et MM2.The ACOB duobinary DM module includes a second ACOB monobinary module MM2 with the same structure as the module MM1, producing a current state metric MAXP2 from data MI 3 , MI 4 , GI 3 and GI 4 representing respectively third and fourth metrics previous state and corresponding branch metrics. The same references in which the 1 of the tens has been replaced by a 2 denote the same elements in the modules MM1 and MM2.

    Le module ACSO duobinaire DM comporte également un bloc de calcul 32 de même structure que le bloc de calcul 12 du module MM1. De même références dans lesquelles le 1 des dizaines a été remplacé par un 3 désignent de mêmes éléments dans les blocs 12 et 32. Le bloc 32 reçoit les sorties MAXP1 et MAXP2 des modules MM1 et MM2 et fournit à un additionneur 39 une valeur MAX3 égale au maximum de MAXP1 et MAXP2 et une valeur d'ajustement ADJ3 correspondant à In(1+e-|MAXP1-MAXP2|). La sortie MAXP3 de l'additionneur 39 constitue la sortie du module DM. Le module DM fonctionne de préférence de manière synchrone, et comporte des moyens non représentés de synchronisation des données tels que des bascules D. Le module DM comporte également de préférence des moyens d'initialisation non représentés permettant par exemple de mettre à 0 de manière commandable les sorties des additionneurs 10 et 11 du module MM1 et des additionneurs correspondants du module MM2.The duobinary ACSO module DM also includes a calculation block 32 of the same structure as the calculation block 12 of the module MM1. The same references in which the 1 of the tens has been replaced by a 3 designate the same elements in blocks 12 and 32. Block 32 receives the outputs MAXP1 and MAXP2 from modules MM1 and MM2 and provides an adder 39 with an equal MAX3 value maximum of MAXP1 and MAXP2 and an adjustment value ADJ3 corresponding to In (1 + e - | MAXP1-MAXP2 | ). The MAXP3 output of the adder 39 constitutes the output of the DM module. The DM module preferably operates synchronously, and includes means (not shown) for synchronizing data such as flip-flops D. The DM module also preferably includes initialization means (not shown) allowing for example to set to 0 in a controllable manner the outputs of adders 10 and 11 of module MM1 and corresponding adders of module MM2.

    Les inventeurs ont mis en évidence que les performances d'un décodeur utilisant un module ACSO monobinaire selon l'invention tel que le module MM1, avec une valeur d'ajustement ADJ1 à un seul bit, ne sont pas dégradées par rapport aux performances d'un décodeur utilisant un module ACSO monobinaire classique avec une valeur d'ajustement à plusieurs bits stockée dans une ROM. En effet, un décodeur comporte d'autres systèmes (notamment en amont du calcul des LLR) dont le fonctionnement est davantage pénalisant pour les performances du décodeur, de sorte que l'utilisation d'une valeur d'ajustement à un seul bit n'a pas d'influence sur les performances globales du décodeur. On montre également qu'un décodeur utilisant un module DM avec des valeurs d'ajustement à un bit ADJ1, ADJ2 et ADJ3 selon l'invention ne présente pas de performances dégradées par rapport à un décodeur utilisant un module DM avec des valeurs d'ajustement à plusieurs bits produites au moyen de mémoires ROM, tout en ayant une taille sensiblement réduite par la suppression des mémoires ROM.The inventors have shown that performance a decoder using a monobinary ACSO module according to the invention such as module MM1, with an adjustment value Single bit ADJ1, are not degraded compared to performance of a decoder using a monobinary ACSO module classic with a stored multibit adjustment value in a ROM. Indeed, a decoder includes other systems (especially upstream of the calculation of LLR) whose operation is more penalizing for the performance of the decoder, so that using a single bit adjustment value has no influence on the overall performance of the decoder. We also show that a decoder using a DM module with ADJ1, ADJ2 and ADJ3 one-bit adjustment values according to the invention does not exhibit degraded performance by compared to a decoder using a DM module with values multi-bit adjustment produced by memories ROM, while having a size significantly reduced by the deletion of ROM memories.

    Les valeurs de métriques d'état MI1, MI2 sont codées sur un même nombre de bits n. Selon l'invention et de manière particulièrement avantageuse, les additionneurs 10, 11 et 19 du module MM1, fonctionnent modulo n sans conservation de la retenue, de manière à fournir chacun une sortie codée sur le même nombre de bits n. Les inventeurs ont en effet constaté que, lors de la mise en oeuvre des formules (17) ou (18) précédentes, la différence maximale entre la somme a de MI1 et GI1 et la somme b de MI2 et GI2 est toujours inférieure à une valeur prédéterminée δ, de même que a+ADJ1-b ou b+ADJ1-a. Si l'on choisit n tel que n≥2δ, le fait pour les additionneurs du module MM1 d'effectuer des additions modulo n n'introduit aucune erreur dans le calcul de la valeur produite en sortie par le module MM1. De la même façon, les valeurs de métriques d'état MI3, MI4 sont codées sur n bits et les additionneurs du module MM2 ainsi que l'additionneur 39 fonctionnent sans conservation de la retenue, d'où il résulte que la valeur produite en sortie du module MM1 est également codée sur n bits. Une telle structure de module ACSO présente l'avantage de ne jamais être saturée tout en étant particulièrement simple à mettre en oeuvre. En outre, une telle structure comporte de manière avantageuse un seul moyen (non représenté) de compensation de gain sur son entrée, et non une pluralité de tels moyens disposés au niveau des additionneurs réalisant les accumulations dans les modules ACSO classiques.The values of state metrics MI 1 , MI 2 are coded on the same number of bits n. According to the invention and in a particularly advantageous manner, the adders 10, 11 and 19 of the module MM1, operate modulo n without retaining the carry, so as to each provide an output coded on the same number of bits n. The inventors have in fact found that, when implementing the above formulas (17) or (18), the maximum difference between the sum a of MI 1 and GI 1 and the sum b of MI 2 and GI 2 is always less than a predetermined value δ, as well as a + ADJ1-b or b + ADJ1-a. If we choose n such that n≥2δ, the fact for the adders of the module MM1 to carry out modulo n additions does not introduce any error in the calculation of the value produced at the output by the module MM1. In the same way, the values of state metrics MI 3 , MI 4 are coded on n bits and the adders of the module MM2 as well as the adder 39 operate without conservation of the carry, where it follows that the value produced at the output of the module MM1 is also coded on n bits. Such an ACSO module structure has the advantage of never being saturated while being particularly simple to implement. In addition, such a structure advantageously comprises a single means (not shown) of gain compensation on its input, and not a plurality of such means arranged at the level of the adders performing the accumulations in conventional ACSO modules.

    La figure 4 représente schématiquement un exemple de circuit 40 utilisant des modules ACSO en mode duobinaire selon l'invention pour effectuer un décodage basé sur le treillis de la figure 2. Le circuit 40 comporte huit modules ACSO (DM0, DM1, DM2, DM3, DM4, DM5, DM6, DM7). Les quatre entrées de métrique d'état MI1, MI2, MI3, MI4 des modules DM0, DM1, DM2 et DM3 sont respectivement reliées aux sorties des modules DM0, DM2, DM4 et DM6. Les quatre entrées de métrique d'état MI1, MI2, MI3, MI4 des modules DM4, DM5, DM6 et DM7 sont respectivement reliées aux sorties des modules DM1, DM3, DM5 et DM7. Les modules DM0, DM1, DM2, DM3, DM4, DM5, DM6, DM7 sont cadencés par un signal non représenté de manière à fournir une valeur de sortie à la réception de chaque bibit.FIG. 4 schematically represents an example of circuit 40 using ACSO modules in duobinary mode according to the invention to perform a decoding based on the trellis of FIG. 2. Circuit 40 comprises eight ACSO modules (DM0, DM1, DM2, DM3, DM4, DM5, DM6, DM7). The four state metric inputs MI 1 , MI 2 , MI 3 , MI 4 of the modules DM0, DM1, DM2 and DM3 are respectively connected to the outputs of the modules DM0, DM2, DM4 and DM6. The four status metric inputs MI 1 , MI 2 , MI 3 , MI 4 of the modules DM4, DM5, DM6 and DM7 are respectively connected to the outputs of the modules DM1, DM3, DM5 and DM7. The modules DM0, DM1, DM2, DM3, DM4, DM5, DM6, DM7 are clocked by a signal not shown so as to provide an output value on reception of each bibit.

    Les quatre entrées de métrique de branche GI1, GI2, GI3, GI4 des modules DM0 et DM4 sont reliées à un bloc non représenté fournissant à la réception de chaque bibit une métrique de branche γ 00 correspondant à la distance entre la valeur 00 et la valeur du bibit reçu. De même, les entrées de métrique de branche des modules, respectivement DM1 et DM5, DM2 et DM6, DM3 et DM7 reçoivent à la réception de chaque bibit des valeurs γ 01, γ 10, γ 11 correspondant aux distances entre les valeurs 01, 10, 11 et la valeur du bibit reçu.The four branch metric inputs GI 1 , GI 2 , GI 3 , GI 4 of the modules DM0 and DM4 are connected to a block, not shown, providing upon reception of each bibit a branch metric γ 00 corresponding to the distance between the value 00 and the value of the bibit received. Similarly, the branch metric inputs of the modules, respectively DM1 and DM5, DM2 and DM6, DM3 and DM7 receive values on receipt of each bibit. γ 01 , γ 10 , γ 11 corresponding to the distances between the values 01, 10, 11 and the value of the bibit received.

    Bien entendu, la présente invention est susceptible de diverses variantes et modifications qui apparaítront à l'homme de l'art. En particulier, chacun des composants décrits pourra être remplacé par un ou plusieurs composants remplissant la même fonction. Ainsi, les structures du module MM1, du bloc de calcul 12 ou du bloc 15 pourront être semblables aux structures correspondantes décrites dans la demande de brevet européen numéro 03354009.7 déposée au nom de la demanderesse. Of course, the present invention is capable of various variations and modifications that will appear to humans art. In particular, each of the components described may be replaced by one or more components fulfilling the same function. Thus, the structures of module MM1, of the calculation block 12 or block 15 may be similar to the structures corresponding described in the European patent application number 03354009.7 filed in the name of the plaintiff.

    La présente invention a été décrite en relation avec un décodage selon un treillis à 8 états tel qu'en figure 2, mais l'homme du métier adaptera sans difficulté l'invention à un décodage selon d'autres treillis à 8 états ou selon un treillis à 2N états, où N est supérieur à 1.The present invention has been described in relation to a decoding according to an 8-state trellis as in FIG. 2, but a person skilled in the art will easily adapt the invention to a decoding according to other 8-state trellis or according to a trellis with 2 N states, where N is greater than 1.

    Claims (10)

    Dispositif (MM1) pour réaliser une fonction de type addition-comparaison-sélection-ajustement dans un décodeur de codes de correction d'erreur, comprenant : des premier et deuxième additionneurs (10, 11) pour produire des première et deuxième valeurs intermédiaires de métrique a et b respectivement égales à la somme d'une première métrique d'état précédent (MI1) et d'une métrique de branche associée (GI1) et à la somme d'une deuxième métrique d'état précédent (MI2) et d'une métrique de branche associée (GI2) ; un bloc de calcul (12) recevant les valeurs a et b, pour comparer les valeurs a et b, sélectionner la plus grande des valeurs a et b et fournir ladite valeur sélectionnée (MAX1) sur une première sortie, et pour produire sur une deuxième sortie une valeur d'ajustement (ADJ1) correspondant à une approximation de In(1+e-|a-b|) ; et un troisième additionneur (19) pour produire une métrique d'état courant (MAXP1) égale à la somme des sorties (MAX1, ADJ1) du bloc de calcul (12) ;    dans lequel les première et deuxième métriques d'état précédent (MI1, MI2) sont codées sur un même nombre de bits (n), et dans lequel les additionneurs (10, 11, 19) effectuent des additions sans conservation de la retenue de telle manière que la métrique d'état courant (MAXP1) et les valeurs intermédiaires a et b comportent le même nombre de bits (n) que les première et deuxième métriques d'état précédent (MI1, MI2).Device (MM1) for performing an addition-comparison-selection-adjustment type function in an error correction code decoder, comprising: first and second adders (10, 11) to produce first and second intermediate metric values a and b respectively equal to the sum of a first previous state metric (MI 1 ) and an associated branch metric ( GI 1 ) and the sum of a second previous state metric (MI 2 ) and an associated branch metric (GI 2 ); a calculation block (12) receiving the values a and b, for comparing the values a and b, selecting the largest of the values a and b and providing said selected value (MAX1) on a first output, and for producing on a second output an adjustment value (ADJ1) corresponding to an approximation of In (1 + e - | ab | ); and a third adder (19) for producing a current state metric (MAXP1) equal to the sum of the outputs (MAX1, ADJ1) of the calculation block (12); in which the first and second previous state metrics (MI 1 , MI 2 ) are coded on the same number of bits (n), and in which the adders (10, 11, 19) perform additions without retaining the carry such that the current state metric (MAXP1) and the intermediate values a and b have the same number of bits (n) as the first and second previous state metrics (MI 1 , MI 2 ). Dispositif (DM) pour réaliser une fonction de type addition-comparaison-sélection-ajustement dans un décodeur de codes de correction d'erreur fonctionnant en mode duobinaire, comprenant : des premier (MM1) et second (MM2) dispositifs selon la revendication 1 comprenant respectivement des premier et deuxième blocs de calcul (12, 22) pour produire des première (MAXP1) et deuxième (MAXP2) métriques d'état courant respectivement à partir de première et deuxième métriques d'état précédent (MI1, MI2) et de première et deuxième métriques de branches associées (GI1, GI2) et à partir de troisième et quatrième métriques d'état précédent (MI3, MI4) et de troisième et quatrième métriques de branche associées (GI3, GI4) ; un troisième bloc de calcul (32) tel qu'en revendication 1 recevant en entrée les première (MAXP1) et deuxième (MAXP2) métriques d'état courant ; et un additionneur (39) pour produire une troisième métrique d'état courant (MAXP1, MAXP2) égale à la somme des sorties (MAX3, ADJ3) du troisième bloc de calcul (32), dans lequel les métriques d'état précédent (MI1, MI2, MI3, MI4) sont codées chacune sur un même nombre (n) de bits, ledit additionneur (39) effectuant des additions sans conservation de la retenue de telle manière que la troisième métrique d'état courant (MAXP3) comporte le même nombre (n) de bits que les métriques d'état précédent (MI1, MI2, MI3, MI4). Device (DM) for performing an addition-comparison-selection-adjustment type function in an error correction code decoder operating in duobinary mode, comprising: first (MM1) and second (MM2) devices according to claim 1 respectively comprising first and second calculation blocks (12, 22) for producing first (MAXP1) and second (MAXP2) current state metrics respectively from first and second previous state metrics (MI 1 , MI 2 ) and first and second associated branch metrics (GI 1 , GI 2 ) and from third and fourth previous state metrics (MI 3 , MI 4 ) and third and fourth associated branch metrics (GI 3 , GI 4 ); a third calculation block (32) as in claim 1 receiving as input the first (MAXP1) and second (MAXP2) current state metrics; and an adder (39) to produce a third current state metric (MAXP1, MAXP2) equal to the sum of the outputs (MAX3, ADJ3) of the third calculation block (32), in which the previous state metrics (MI 1 , MI 2 , MI 3 , MI 4 ) are each coded on the same number (n) of bits, said adder (39) performing additions without retaining the carry so that the third current state metric (MAXP3) has the same number (n) of bits as the previous state metrics (MI 1 , MI 2 , MI 3 , MI 4 ). Dispositif selon la revendication 1 ou 2, dans lequel le bloc de calcul (12, 22, 32) comporte : un soustracteur (13, 23, 33) pour calculer la différence (a-b) des première (a) et deuxième (b) valeurs reçues par le bloc de calcul ; un multiplexeur (14, 24, 34) commandé par la sortie du soustracteur pour produire sur la première sortie du bloc de calcul la plus grande des valeurs reçues (a,b) ; un bloc d'approximation (15) pour produire sur la deuxième sortie du bloc de calcul (12) la valeur d'ajustement (ADJ1) sous la forme d'une valeur de un bit égale à 1 si ladite différence est égale à 0, 1 ou -1 et égale à 0 sinon. Device according to claim 1 or 2, in which the calculation block (12, 22, 32) comprises: a subtractor (13, 23, 33) for calculating the difference (ab) of the first (a) and second (b) values received by the calculation block; a multiplexer (14, 24, 34) controlled by the output of the subtractor to produce on the first output of the calculation block the largest of the values received (a, b); an approximation block (15) for producing on the second output of the calculation block (12) the adjustment value (ADJ1) in the form of a one-bit value equal to 1 if said difference is equal to 0, 1 or -1 and equal to 0 otherwise. Dispositif selon la revendication 3, dans lequel le bloc d'approximation (15) comporte une première porte logique (16) calculant un NON-OU de tous les bits de ladite différence (a-b) à l'exception de son bit de poids le plus faible, une deuxième porte logique (17) calculant un ET de tous les bits de ladite différence (a-b), et une troisième porte logique (18) calculant un OU des sorties des première et deuxième portes logiques (16, 17).Device according to claim 3, in which the approximation block (15) has a first logic gate (16) calculating a NOR of all the bits of said difference (a-b) with the exception of its least significant bit, a second logic gate (17) calculating an AND of all the bits of said difference (a-b), and a third logic gate (18) calculating an OR of the outputs of the first and second doors logic (16, 17). Décodeur comportant 2N, où N est supérieur à 1, dispositifs selon la revendication 2 (DM0, DM1, DM2, DM3, DM4, DM5, DM6, DM7) dont chacun est associé à une valeur de N bits particulière, le décodeur recevant des données sous forme de couples de bits ou bibits consécutifs ;
       la sortie de chaque dispositif associé à une première valeur étant connectée de manière à fournir l'une des métriques d'état précédent à quatre dispositifs, associés chacun à une valeur dont les N-2 bits de poids fort sont les N-2 bits de poids faible de ladite première valeur et dont les deux bits de poids faibles sont respectivement l'une des quatre valeurs possibles du dernier bibit reçu ;
       chaque dispositif associé à une première valeur dont les deux bits de poids faible sont l'une des quatre valeurs possibles (00, 01, 10, 11) d'un bibit recevant comme métriques de branche une valeur correspondant à une distance entre le bibit reçu et ladite une des quatre valeurs possibles d'un bibit.
    Decoder comprising 2 N , where N is greater than 1, devices according to claim 2 (DM0, DM1, DM2, DM3, DM4, DM5, DM6, DM7) each of which is associated with a particular value of N bits, the decoder receiving data in the form of pairs of consecutive bits or bits;
    the output of each device associated with a first value being connected so as to supply one of the preceding state metrics to four devices, each associated with a value whose N-2 most significant bits are the N-2 bits of least significant of said first value and the two least significant bits of which are respectively one of the four possible values of the last bit received;
    each device associated with a first value whose two least significant bits are one of the four possible values (00, 01, 10, 11) of a bibit receiving as branch metrics a value corresponding to a distance between the bibit received and said one of the four possible values of a bibit.
    Procédé pour réaliser une fonction de type addition-comparaison-sélection-ajustement dans un décodeur de codes de correction d'erreur fonctionnant en mode monobinaire, comprenant les étapes suivantes : i/ produire des première et deuxième valeurs intermédiaires de métrique a et b respectivement égales à la somme d'une première métrique d'état précédent (MI1) et d'une métrique de branche associée (GI1) et à la somme d'une deuxième métrique d'état précédent (MI2) et d'une métrique de branche associée (GI2) ; ii/ comparer les valeurs a et b, sélectionner la plus grande des valeurs a et b et fournir ladite valeur sélectionnée sur une première sortie, et produire sur une deuxième sortie une valeur d'ajustement correspondant à une approximation de In(1+e-|a-b|) ; et iii/ produire une métrique d'état courant égale à la somme des sorties du bloc de calcul ;    les première et deuxième métriques d'état précédent (MI1, MI2) étant codées sur un même nombre de bits et les sommes calculées aux étapes i/ et iii/ étant réalisées sans conservation de la retenue, de telle manière que la métrique d'état courant et les valeurs intermédiaires a et b comportent le même nombre de bits que les première et deuxième métriques d'état précédent (MI1, MI2).Method for performing an addition-comparison-selection-adjustment type function in a decoder for error correction codes operating in monobinary mode, comprising the following steps: i / produce first and second intermediate metric values a and b respectively equal to the sum of a first previous state metric (MI 1 ) and of an associated branch metric (GI 1 ) and to the sum of a second previous state metric (MI 2 ) and an associated branch metric (GI 2 ); ii / compare the values a and b, select the largest of the values a and b and provide said selected value on a first output, and produce on an second output an adjustment value corresponding to an approximation of In (1 + e - | ab | ); and iii / produce a current state metric equal to the sum of the outputs of the calculation block; the first and second previous state metrics (MI 1 , MI 2 ) being coded on the same number of bits and the sums calculated in steps i / and iii / being performed without retaining the carry, so that the metric d the current state and the intermediate values a and b comprise the same number of bits as the first and second previous state metrics (MI 1 , MI 2 ). Procédé pour réaliser une fonction de type addition-comparaison-sélection-ajustement dans un décodeur de codes de correction d'erreur fonctionnant en mode duobinaire, comprenant les étapes suivantes : iv/ produire des première et deuxième métriques d'état courant selon le procédé de la revendication 6, respectivement à partir de première et deuxième métriques d'état précédent (MI1, MI2) et de première et deuxième métriques de branches associées (GI1, GI2) et à partir de troisième et quatrième métriques d'état précédent (MI3, MI4) et de troisième et quatrième métriques de branches associées (GI3, GI4) ; v/ fournir une valeur sélectionnée et une valeur d'approximation calculées selon l'étape ii/ de la revendication 6 à partir des première et deuxième métriques d'état courant ; et vi/ produire une troisième métrique d'état courant égale à la somme des valeurs produites à l'étape v/, les métriques d'état précédent (MI1, MI2, MI3, MI4) étant codées chacune sur un même nombre (n) de bits et ladite somme étant effectuée sans conservation de la retenue de telle manière que la troisième métrique d'état courant comporte le même nombre (n) de bits que les métriques d'état précédent (MI1, MI2, MI3, MI4). Method for performing an addition-comparison-selection-adjustment type function in an error correction code decoder operating in duobinary mode, comprising the following steps: iv / producing first and second current state metrics according to the method of claim 6, respectively from first and second previous state metrics (MI 1 , MI 2 ) and first and second metrics of associated branches (GI 1 , GI 2 ) and from the third and fourth previous state metrics (MI 3 , MI 4 ) and from the third and fourth metrics of associated branches (GI 3 , GI 4 ); v / providing a selected value and an approximation value calculated according to step ii / of claim 6 from the first and second current state metrics; and vi / produce a third current state metric equal to the sum of the values produced in step v /, the previous state metrics (MI 1 , MI 2 , MI 3 , MI 4 ) being each coded on the same number (n) of bits and said sum being carried out without retaining the carry so that the third current state metric has the same number (n) of bits as the previous state metrics (MI 1 , MI 2 , MI 3 , MI 4 ). Procédé selon la revendication 6 ou 7, dans lequel à l'étape ii/, la valeur est sélectionnée en calculant la différence (a-b) des valeurs comparées (a, b) et en fournissant la plus grande des valeurs comparées (a,b) sur la base du signe de ladite différence (a-b), et dans lequel la valeur d'ajustement est produite comme étant une valeur de un bit égale à 1 si ladite différence est égale à 0, 1 ou -1 et égale à 0 sinon.The method of claim 6 or 7, wherein in step ii /, the value is selected by calculating the difference (a-b) of the compared values (a, b) and providing the largest of the compared values (a, b) based on the sign of said difference (a-b), and in which the value adjustment is produced as an equal bit value to 1 if said difference is equal to 0, 1 or -1 and equal to 0 if not. Dispositif selon la revendication 8, dans lequel la valeur d'ajustement est égale au OU logique d'un NON-OU logique de tous les bits de ladite différence (a-b) à l'exception de son bit de poids le plus faible et d'un ET logique de tous les bits de ladite différence (a-b).Device according to claim 8, in which the adjustment value is equal to the logical OR of a logical NON-OR of all the bits of said difference (a-b) except its least significant bit and a logical AND of all bits of said difference (a-b). Décodage selon un treillis comportant 2N, où N est supérieur à 1, états associés chacun à une valeur de N bits particulière, de données reçues sous la forme de couples de bits ou bibits consécutifs, comportant les étapes suivantes : vii/ pour le premier bibit reçu, produire selon le procédé de la revendication 7 2N métriques d'état courant associées chacune à l'une desdites valeurs à partir de quatre métrique d'état précédent initiales prédéterminées et à partir de quatre métriques de branche identiques correspondant à une distance entre le bibit reçu et une valeur du bibit égale aux deux bits de poids faible de ladite une desdites valeurs ; viii/ pour chaque bibit reçu ultérieurement, produire selon le procédé de la revendication 7 2N métriques d'état courant associées chacune à l'une desdites valeurs en prenant pour les quatre métriques d'état précédent les quatre métriques d'état courant produites pour le bibit reçu précédent et associées à une valeur dont les N-2 bits de poids faible sont les N-2 bits de poids fort de ladite une desdites valeurs, et en prenant pour les quatre métriques de branche une distance entre le bibit reçu et une valeur du bibit égale aux deux bits de poids faible de ladite une desdites valeurs. Decoding according to a trellis comprising 2 N , where N is greater than 1, states each associated with a particular value of N bits, of data received in the form of pairs of consecutive bits or bits, comprising the following steps: vii / for the first bibit received, produce according to the method of claim 7 2 N current state metrics each associated with one of said values from four predetermined initial previous state metrics and from four branch metrics identical corresponding to a distance between the received bibit and a value of the bibit equal to the two least significant bits of said one of said values; viii / for each bibit received subsequently, produce according to the method of claim 7 2 N current state metrics each associated with one of said values taking for the four previous state metrics the four current state metrics produced for the previous received bibit and associated with a value whose N-2 least significant bits are the N-2 most significant bits of said one of said values, and taking for the four branch metrics a distance between the received bibit and a bibit value equal to the two least significant bits of said one of said values.
    EP04354020A 2003-05-09 2004-05-10 Device and process to add-compare-select-adjust in a decoder Withdrawn EP1475895A1 (en)

    Applications Claiming Priority (2)

    Application Number Priority Date Filing Date Title
    FR0305648A FR2854747A1 (en) 2003-05-09 2003-05-09 APPARATUS AND METHOD FOR ADDITION-COMPARISON-SELECTION- ADJUSTMENT IN A DECODER
    FR0305648 2003-05-09

    Publications (2)

    Publication Number Publication Date
    EP1475895A1 true EP1475895A1 (en) 2004-11-10
    EP1475895A8 EP1475895A8 (en) 2005-01-26

    Family

    ID=32982393

    Family Applications (1)

    Application Number Title Priority Date Filing Date
    EP04354020A Withdrawn EP1475895A1 (en) 2003-05-09 2004-05-10 Device and process to add-compare-select-adjust in a decoder

    Country Status (3)

    Country Link
    US (1) US20050265491A9 (en)
    EP (1) EP1475895A1 (en)
    FR (1) FR2854747A1 (en)

    Citations (2)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    EP0967730A1 (en) * 1998-06-26 1999-12-29 Lucent Technologies Inc. Convolutional decoder with modified metrics
    US20010007142A1 (en) * 1999-12-23 2001-07-05 Hocevar Dale E. Enhanced viterbi decoder for wireless applications

    Family Cites Families (7)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    US3555195A (en) * 1967-10-05 1971-01-12 Rca Corp Multiplex synchronizing circuit
    US3887768A (en) * 1971-09-14 1975-06-03 Codex Corp Signal structures for double side band-quadrature carrier modulation
    US4534029A (en) * 1983-03-24 1985-08-06 International Business Machines Corporation Fault alignment control system and circuits
    JP3159349B2 (en) * 1993-12-28 2001-04-23 日本電気株式会社 Addition decoding device
    US5991914A (en) * 1996-02-15 1999-11-23 Nec Corporation Clock recovery using maximum likelihood sequence estimation
    GB9622539D0 (en) * 1996-10-30 1997-01-08 Discovision Ass Galois field multiplier for reed-solomon decoder
    AUPR679401A0 (en) * 2001-08-03 2001-08-30 Lucent Technologies Inc. High speed add-compare-select processing

    Patent Citations (2)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    EP0967730A1 (en) * 1998-06-26 1999-12-29 Lucent Technologies Inc. Convolutional decoder with modified metrics
    US20010007142A1 (en) * 1999-12-23 2001-07-05 Hocevar Dale E. Enhanced viterbi decoder for wireless applications

    Also Published As

    Publication number Publication date
    US20050265491A9 (en) 2005-12-01
    EP1475895A8 (en) 2005-01-26
    FR2854747A1 (en) 2004-11-12
    US20040223560A1 (en) 2004-11-11

    Similar Documents

    Publication Publication Date Title
    EP0848501B1 (en) Digital transmission system and method comprising a product code combined with multidimensional modulation
    EP0827285B1 (en) Information bits transmission process with error correction coding, and coder and decoder therefor
    EP1378089B1 (en) Joint turbo decoding and equalization for MIMO transmission with intersymbol interference
    EP0827284B1 (en) Information bits transmission process with error correction coding, and coder and decoder therefor
    EP0808538B1 (en) Iterative-structure digital signal reception device, and module and method therefor
    FR2815199A1 (en) Cyclic turbo coding scheme improves minimum Hamming distance
    FR2648293A1 (en) TRANSMITTER, RECEIVER AND TELECOMMUNICATION METHOD FOR IMPROVING THE FUNCTIONING OF FEEDER EQUALIZERS IN TELECOMMUNICATION SYSTEMS USING ERROR CORRECTION
    WO1997038495A1 (en) Data block convolutional coding device and method, and corresponding decoding method and device
    EP0848524A1 (en) Punctured, trellis coded QAM, with interative decoding
    EP1362447A1 (en) Method and system for the iterative encoding-decoding of streams of digital data encoded by spatio-temporal combinations, in multiple transmission and reception
    FR2810475A1 (en) Digital radio communications turbo code sequence coding decoding having two decoders dividing code sequences and sequences received allowing two parallel block decoding.
    FR2804260A1 (en) DIGITAL CORRECTIVE ERROR-TYPE CODING TRANSMITTING METHOD
    FR2765426A1 (en) DATA TRANSMISSION SYSTEM, RECEIVER AND RECORDING MEDIUM
    EP1101288B1 (en) Method and device for error correction coding and corresponding decoding method and device
    FR2790621A1 (en) Interlacing method for coding and decoding of turbo codes of binary symbols representing a physical magnitude using two convolute recursive coders having polynomial divisor with same data period
    EP2330745A1 (en) Method and device for decoding a series of blocks encoded with an error-correction code, correlated by a transmission channel
    FR2842672A1 (en) DEVICE AND METHOD FOR ROBUST DECODING OF ARITHMETIC CODES
    EP1475895A1 (en) Device and process to add-compare-select-adjust in a decoder
    FR2914447A1 (en) ELECTRONIC DATA SHIFTING DEVICE PARTICULARLY FOR ENCODING / DECODING WITH LDPC CODE
    FR2972878A1 (en) ERROR CORRECTING ENCODING METHOD, DECODING METHOD AND ASSOCIATED DEVICES
    EP1211857A1 (en) Process and device of successive value estimations of numerical symbols, in particular for the equalization of a data communication channel of information in mobile telephony
    FR2835666A1 (en) ACS MODULE IN A DECODER
    WO2008129195A1 (en) Coding and decoding of data signals with variable rates
    FR2884661A1 (en) METHOD AND DEVICE FOR DECODING A VARIABLE LENGTH CODE USING PRIORI PROBABILITY INFORMATION
    EP2262116B1 (en) Viterbi decoder with two memories adapted to GNSS signals

    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

    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 IT LI LU MC NL PL PT RO SE SI SK TR

    AX Request for extension of the european patent

    Extension state: AL HR LT LV MK

    RAP1 Party data changed (applicant data changed or rights of an application transferred)

    Owner name: STMICROELECTRONICS SA

    17P Request for examination filed

    Effective date: 20050503

    AKX Designation fees paid

    Designated state(s): DE FR GB IT

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

    Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

    18D Application deemed to be withdrawn

    Effective date: 20091201