Methods for the coding/decoding of digital signals were introduced in order effectively to transmit digital data conveyed thereby.
In principle, these methods consist in adding to significant bits—the medium for the data conveyed by the aforementioned digital signals—redundancy of known bits in order to allow, following complete transmission and the introduction of errors inherent in the transmission process, decoding and reconstruction of the significant bits with good likelihood probability.
In the more specific case of block codes, including product codes, there will be considered, with reference to
The parameters of the product code P(n, k, d) are given by n=n1×n2, k=k1×k2, d=d1×d2 and the rate of the product code is given by r=r1×r2, which is the product of the rates of the codes C1 and C2.
The decoding after reception of a received product code word R={r1 . . . rn} of a single row or of a single column E={e1, . . . en} coded by the code C1 or C2 is expressed in the form R=E+G, wherein G={g1, . . . gn} designates additive white Gaussian noise introduced via the transmission channel.
The maximum likelihood of the received code word R relative to a product code word is obtained by the optimum decision D={d1, . . . , dn} verifying the equation:
D=minCi∥R−Ci∥2
equation in which
Ci={c1, . . . cn} designates a code word, and
designates the Euclidian distance of the considered word Ci from the received code word R.
As an exhaustive search of all of the code words is impracticable, in order to find the optimum decision, a decoding process proposed by R. Pyndiah consists in using a Chase algorithm to obtain the decision.
For any hard decision wherein Y={y1, . . . yn} relates to a received word R, the aforementioned algorithm consists in performing the following operations:
The reliability of this optimum decision then has to be calculated.
The aforementioned reliability in terms of log-likelihood (LLR) is given for each bit dj of the optimum decision D, by the equation:
wherein
P{ej=ε/R}, ε=±1, designates the conditional probability that the bit ej corresponds to the mapped value, given the received code word R;
In designates the Naperian logarithm.
Rigorous LLR calculation must allow for the fact that the optimum decision D is a word from among the 2k (for k1=k2) words of the code C.
In the solution proposed by R. Pyndiah, an LLR approximation for signals having a high signal-to-noise ratio SNR is given by the equation
with
m+1(j)=∥R−C+1(j)∥2etm−1(j)=∥R−C−1(j)∥2
wherein
C+1(j)={co+1(j), . . . , cn+(j)}etC−1(j)={co−1(j), . . . , cn−1(j)}
are the concurrent words of the code at a minimum distance from R, provided that the bit of rank j of these words is mapped to the value +1 or −1 respectively. The Chase algorithm allows the aforementioned concurrent words to be found. Should one of the words not exist, the reliability is fixed by a constant predetermined value β, the sign of which is given by the Chase decision. Increasing p increases the probability of finding, for a bit of rank j, the word concurrent with D.
Referring to
[W(m+1)]=[R′m)−R(m)]
with [R(m+1)]=[R]+α(m+1)[W(m+1)]
and [R(1)]=[R] for the first iteration.
In the foregoing equation, W(m) designates the extrinsic data, normalized to 1 at each iteration, and α(m) designates a coefficient, which is dependent on the current iteration, of rank m.
This is an almost optimum decoding process insofar as the data circulating from one decoding iteration to the next contains only the data provided by this iteration, owing to the subtraction operation performed, the extrinsic data alone being transmitted.
For a more detailed description of this turbodecoding process, reference may usefully be made to patent application EP 0 827 284, published on 4 Mar. 1998.
The manner in which the aforementioned coding process, for a row or a column, is carried out may be summarized as follows:
In the foregoing equation, cjd designates the bit of rank j of Cd=D and r′j designates the log-likelihood of the soft decision R′ delivered by the SISO decoder.
The embodiment according to the method described by R. Pyndiah requires the actual storage of 2p words of n bits at step a) for each decoded row or column.
Furthermore, once the aforementioned step has been executed, the implementation of steps c) and d) requires, for each step, a loop calculation to be carried out in order to distinguish the hard-decision code word or the concurrent word, respectively, at a minimum distance from the received product code word R.
Operations of this type are highly costly in terms of resources and calculating time and can be only performed easily using very high-power computing means.
The present invention seeks to remedy the drawbacks of the method of the above-described prior art.
In particular, the present invention seeks substantially to eliminate the operation of storing the product code words by the implementation of the iterative process, according to the Chase fast algorithm for example, in order, in particular, to allow decoding devices to be implanted in equipment having a much lower computing capacity, not exceeding, for example, the capacity of hand-held computers, mobile telephony terminals or even personal digital assistants, or else in digital data storage systems.
Finally, the present invention also seeks, by introducing the aforementioned simplification, to utilize a method and a device for iteratively decoding block codes in which the iterative process is reduced to a single loop, the loop processing of steps c) and d) of the prior-art method being substantially eliminated, thus significantly reducing the calculating time for carrying out the decoding, increasing the number of test code words used for the decoding, or else increasing the length of the processed code.
The method for iteratively decoding block codes by the SISO decoding of a received product code word from decoded test words, according to the present invention, is notable in that said method consists at least in generating a plurality of decoded test words using an iterative process, calculating, for each decoded test word, the analog weight expressed as the half-sum of the products of the value of each bit mapped to within + or −1 of this decoded test word and the probability of this value, in terms of log-likelihood, classifying and storing said analog weight values, in order to produce a first analog weight vector formed by the analog weight components of the decoded test words, the bit of rank j of which is at a first value, and a second analog weight vector formed by the analog weight components of the decoded test words, the bit of rank j of which is at a second value, calculating the SISO decoding soft-decision output value expressed as the difference between the analog weight components of the first and the second analog weight vector.
The device for iteratively decoding block codes by the SISO decoding of a received product code word from decoded test words, according to the present invention, is notable in that it comprises, at least for the processing of each received product code word, a module for generating, from an iterative algorithm, a plurality of decoded test words, a module for calculating, for each decoded test word, the analog weight expressed as the half-sum of the products of the value of each bit mapped to within the value +1 or −1 of this decoded test word and the probability of this value, in terms of log-likelihood, a module for sorting, by classification, the analog weight values for the decoded test words in order to produce a first analog weight vector formed by the analog weight components of the decoded test words, the bit of rank j of which is at a first value, and a second analog weight vector formed by the analog weight components of the decoded test words, the bit of rank j of which is at a second value, a first and a second register for storing said analog weight values classified according to this first or this second analog weight vector, respectively, and a module for calculating the SISO decoding soft-decision output value, comprising at least one module for subtracting the analog weight components from the first and the second analog weight vector.
The method and the device for iteratively decoding block codes according to the present invention are used for the implementation thereof, in the form of an integrated circuit, in any equipment for receiving digital signals and, in particular, in light equipment of low overall size and having limited computing resources.
The method and the device will be better understood on reading the description and on examining the following drawings in which, in addition to
Before the actual description of the block code iterative decoding method according to the present invention, the embodiment of the Chase fast iterative method will firstly be recalled. The Chase fast iterative method will be taken as a non-limiting exemplary embodiment of an iterative algorithm for generating decoded test words for carrying out the method according to the invention.
The aforementioned method or Chase fast iterative algorithm simplifies the operations of the Chase process, previously mentioned in the description, by scanning the test vectors using Gray-type counting. This mode of operation simplifies the expression of the syndrome calculated for each iteration, the notion of syndrome corresponding to the notion of error location after coding, by taking advantage of the properties of the linear block codes. The calculation of the weight for each test vector is also simplified owing to the simplification of updating, given that only a single bit has to be changed.
Introduction of the variables used in the Chase fast method.
In the aforementioned embodiment:
It will be noted that if a single bit of arbitrary rank Y is changed, the new syndrome is obtained merely by the addition to the former syndrome, modulo-2 addition, of the aforementioned vector Hi corresponding to the bit of rank i. The Gray counting introduced to distinguish the test vectors allows only a single bit to be changed per iteration and accordingly simplifies the calculation of the syndrome S in a particularly significant manner.
⊕ designates the addition of the modulo-2 bits (exclusive OR), this operation carrying out bit by bit. The development of the chase fast method is set out in the following table:
The method for iteratively decoding block codes according to the present invention will now be described in conjunction with
With reference to the aforementioned
The decoded test words Yt are obtained from a row or a column of the received product code word R. These operations are then applied sequentially to all of the rows or all of the columns following the iteration in question.
Firstly, a hard decision Y is made on the received produced code word R and values for the bits of Y, 0 or 1 (or −1 or +1 according to the convention retained) are therefore decided from the soft values without decoding.
By way of example, for a received row or column vector VR={−0.1; 0.55; 0.2; −0.6}, the retained hard decision Y is Y={0; 1; 1; 0} or {−1; +1; +1; −1} according to the chosen convention.
Secondly, the test vectors are generated, by modifying the p bits selected as being those least reliable, on the aforementioned non-decoded hard decision Y, according to all of the possible binary combinations. The decoded test words Yt are then obtained by hard decoding the aforementioned test vectors.
Among all of these combinations, the combination wherein the p least reliable bits are not changed corresponds to the decoded test word Yt obtained by direct decoding of the hard decision Y.
The following decoded test words are obtained from the hard decision Y in which the p least reliable bits are modified to obtain a test vector which is subjected to hard decoding.
The method according to the invention consists, in particular, in generating 2p decoded test words for the 2p bits of the decoded received word Y derived from the hard decoding, the value of which is the least reliable.
It will be understood, in particular, that carrying out the aforementioned Chase fast algorithm provides the above-described decoded test words Yt corresponding to the abovementioned test words.
The step A is then followed by a step B represented in
It will be noted, with reference to the table introduced hereinbefore, that the analog weights of the decoded test words Yt have been obtained, as indicated in the aforementioned table.
The analog weight, denoted generically by Weight for the decoded test words, then verifies Equation (15):
In the foregoing equation:
ri designates the log-likelihood value of the corresponding bit of rank i, i being a calculation index corresponding in fact to the index of the bit mapped to within the value +1 or −1, respectively, and ci designates this mapped value for each decoded test word Yt.
The mode of calculating the analog weight at step B and the expression of said weight for carrying out the iterative decoding method according to the present invention will now be justified.
For the concurrent words C+1(j) and C−1(j), concurrent words at the minimum distance from the received product code word R according to the decoding method of the prior art of R. Pyndiah, the definition of the analog weights is given by:
m+1(j)=∥R−C+1(j)∥2etm−1(j)=∥R−C−1(j)∥2
The value of the log-likelihood for each concurrent word is given by the equation:
However, these same values are expressed by the equations
Accordingly, the value of the log-likelihood can be expressed in the form of Equation (16)
The introduction of the definition of the new analog weight Weight for each decoded test word by Equation (15) given hereinbefore in the description therefore allows the same classification order that the conventional definitions of the prior art had to be preserved.
As a result, the expression of the analog weight mentioned hereinbefore in Equation (15) can therefore advantageously be used to classify the decoded test words generated by the Chase fast algorithm.
In the specific case of the Chase fast process, all of the possible combinations of the test vectors, which have not yet been decoded, are obtained by modifying a single bit of the test vector of the preceding iteration t in order to obtain the following test vector of the current iteration t+1, etc., from the first test vector, in order to obtain all of the possible combinations of these bits on the selected positions.
In order not to return to the same vector a plurality of times, or to forget a vector, the bits of the test vector of the preceding iteration are modified, in a proportion of a single one of said bits according to a specific sequence from a Gray counting, allowing all of the possible bit combinations to be reviewed. The order in which the bits are changed is contained in a vector adhering to this counting mode.
The fact that only a single bit is changed at each iteration allows the weight P′ of the new test vector for the current iteration t+1 to be obtained from the preceding iteration t according to the equation:
P′=P−rkc′k (17)
wherein P designates the weight of the test vector of the preceding iteration, rk designates the reliability, in terms of log-likelihood, of the modified bit of rank k, and c′k the new value mapped to within ±1 of the modified bit of rank k.
The decoded test word of the current iteration is obtained by hard decoding the test vector in question of this same iteration.
In view of the fact that the hard decoding modifies, if appropriate, only a single bit at a time, if the decoded test word does not pertain to the code, the updating of the weight according to Equation (17) can then also be used to obtain the analog weight of the decoded test word Yt.
The method for calculating the analog weight referred to hereinbefore in the description in conjunction with step B therefore allows, in accordance with a particularly notable aspect of the method according to the present invention, the SISO decoding soft output value to be calculated according to Equation (16) cited hereinbefore in the description, while preserving each time the minimum distance, provided that the jth bit of the concurrent word is at the value mapped to within the value +1 or −1 for j=0 to n.
Accordingly, following step B of
The classification operation is represented symbolically at step C of
Weight→V1(PMj+) or V2(PMj−)
It will be understood, in particular, that steps A, B, C represented in
Once all of the analog weight values PMj+ and PMj− have been classified in the form of the vectors V1 and V2, there can then be called up a soft-decision calculating, i.e. SISO decoding, step D expressed as the difference between the analog weight components of the first and second analog weight vectors V1 and V2.
The procedure for classifying the analog weight values for the decoded test words, step C of
With reference to the aforementioned figure, the classification procedure of the method according to the present invention comprises a step for starting the first analog weight vector V1 and the second analog weight vector V2, according to which each analog weight component PMj+ for the first vector V1 relating to the analog weight components of the decoded test words, the bit of rank j of which is at a first value, and respectively PMj− for the second analog weight vector V2 relating to the analog weight components of the decoded test words, the bit of rank j of which is at the second value, is started at the value PMj+=+∞ or PMj−=+∞, respectively, for all of the values of j pertaining to 0 . . . n.
The start-up operation is represented symbolically by:
V1=Weight min+={PM0+, . . . , PMj+, . . . , PMn+}
V2=Weight min−={PM0−, . . . , PMj−, . . . , PMn−}
The vectors V1 and V2 representing the list of the analog weights of the decoded test words Yt derived from the received word, with the jth bit at the first value 1 and at the second value 0 respectively.
For j=0 . . . n, an actual start-up is therefore written as PMj+=+∞ and PMj−=+∞.
The list containing the minimum weights must be understood as such on account of the procedure implemented by the following steps C1 and C2 called up further to the start-up step C0 and to the first iteration of the Chase fast algorithm denoted as C1 in
The operation consisting in classifying and storing the analog weight values therefore consists in classifying the analog weight values of the first test word obtained in the analog weight vectors of the minimum weights as a function of the value of the bits of said test word, the first tested first test word having the minimum weight relative to the start-up arbitrary weight values.
The decoded test word in question is the test word Yt.
What is known as the launching operation, carried out at the end of the first iteration at step C1 is written as follows:
If ytj=1→PMj+=Weight, the test word Yt being considered as the word having the bit of rank j=1 at a minimum distance from the received word.
The launching step C1 is then followed by a step C2, known as the tracking step, the purpose of which is to iteratively examine all of the decoded test words Yt. Thus, with reference to step C2 of
The actual classifying operation is written as follows:
for j=0 . . . n,
if ytj=0 and Weight<PMj−→PMj−=Weight
if ytj=1 and Weight<PMj+→PMj+=Weight
In the equations indicated with the description of steps C1 and C2, it will be noted that the = sign indicates the allocation of the weight value to the variable when the inferiority condition is satisfied.
Finally, step D of
With reference to
The calculating operation represented at step D of
The aforementioned condition can be met, by way of non-limitative example, by the tests D1 and D2, represented in
It will be understood that the value +∞ can be represented by any value of arbitrary high size and incompatible with an actual value of likely analog weight. The difference test may in this case take the form of an inferiority test, for example.
The calculation of the difference between the analog weight values is represented at step D4.
If not, if the value of the analog weight component PMj− of the decoded test word, the bit of rank j of which is at a value, the value 0 for example, is the only one different from the start-up value +∞, a given first negative value is allocated to the probability of the value of the bit of rank j. This operation can be carried out, as represented in
If not, if the value of the analog weight component PMj+ of the decoded test word, the bit of rank j of which is at the other value, value 1 for example, is different from the start-up value, a given value, in opposition to the first given value, is allocated to the probability of the value of the bit of rank j. This operation is carried out in the event of a negative response to the test D2 at step D5.
The first and second given values, which are negative and positive respectively, are the values β, the turbodecoding weighting coefficient.
Additional memory may be saved in order to carry out the code decoding method produced by eliminating Y, i.e. the test word decoded after hard decoding forming the decoded test word for carrying out the algorithm. In this situation, only the test vector Ybm, representing the test word, is used. This test word can be reallocated to its true value of the start of the iteration once it has been subjected to hard decoding to produce the corresponding test word, in order not to change the list of the test words, if the value of the erroneous bit and a variable indicating any parity error have been preserved. This operating procedure also eliminates the need to reallocate each time the value Yt of the test word after hard decoding, i.e. the test word decoded at the value Ybm.
Finally, the parity bit of each test word can be updated each time a bit of rank j is modified, thus obviating the need to add up all of the bits each time in order to recalculate the parity value.
The method according to the present invention is notable with regard to the methods of the prior art in that it allows a considerable gain in terms of the number of logic gates used and the actual calculating time required, while preserving the same computational result.
Firstly, exploiting the properties of the syndromes of the block codes within the Chase fast algorithm divides by n the calculating time of the syndrome in question. In fact, the number of operations required to calculate the analog weight is divided by the same factor, so, overall, the calculating time of the procedure for exploring all of the test vectors using the Chase fast algorithm is, in turn, divided by n.
Secondly, the new mode of operation for calculating reliabilities used in accordance with the present invention eliminates altogether the need to store the decoded test words examined by the iterative Chase fast algorithm procedure. With this mode of operation, it is accordingly not necessary to use an amount of memory corresponding to n×2p bits, for each row or column of the product code, thus saving a total of n2×2p bits for the decoding of the complete product code over a half-iteration. The amount of memory thus required to store the analog weights PMj− and PMj+ is now dependent merely on the length of the code and the number of bits of the quantification and is accordingly in no way dependent on the number of concurrent words or test words chosen.
Moreover, as illustrated in
An above-described device for iteratively decoding block codes by the SISO decoding of a received code word R consisting of n bits from decoded test words, in accordance with the method according to the present invention, will now be described in conjunction with
The device according to the invention is known, in a non-restrictive manner, to be integrated into a mobile telephony terminal, a personal digital assistant or a portable computer, for example.
This type of equipment conventionally comprises a central processing unit (CPU) formed by a microprocessor, a RAM, serving as the working memory and a permanent memory such as a ROM—a non-volatile memory, for example.
The device according to the invention represented in
It will be understood that the aforementioned generator module may consist of a program module recorded in the permanent memory ROM1 and called up in the working memory RAM for executing the Chase fast algorithm described hereinbefore in conjunction with the table of the present description in accordance with step A) of
It also comprises a module for calculating the analog weight of each decoded test word Yt in accordance with step B of
It also comprises a module for sorting by classification the analog weight values for the aforementioned decoded test words Yt. This sorting module may consist of a program module ROM3 called up in the working memory RAM for execution in accordance with the method according to the invention represented in FIGS. 2 (step C) and 3a.
It comprises, according to a notable aspect of the device according to the invention, a first register R1 and a second register R2 for storing the analog weight values classified according to the first and the second analog weight vector V1, V2, each relating to the analog weight components of the decoded test words.
It will be noted, by way of non-limiting example, that the aforementioned registers may be configured as a protected memory zone of the working memory RAM or by an electrically reprogrammable non-volatile memory so as to allow reconfiguration of each register R1, R2 as a function of the number of decoded test words finally retained for carrying out the decoding.
The use of an electrically reprogrammable non-volatile memory provides separation, and therefore physical protection, of the analog weight vector data and the data processed in the RAM.
Finally, the device according to the invention comprises, as illustrated in
This calculating module may consist of a program module ROM4 called up in the working memory for execution in accordance with the method according to the invention represented in FIGS. 2 (step D) and 3b.
Finally, the embodiment of the decoding device according to the present invention may advantageously be executed in chip form (dedicated integrated circuit).
The decoding method and device according to the invention are used, in particular, in the implementation of systems or equipment for storing coded data and for restoring this coded data in decoded form.
Number | Date | Country | Kind |
---|---|---|---|
0406291 | Jun 2004 | FR | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/FR05/01377 | 6/6/2005 | WO | 10/5/2007 |