1. Field of the Invention
The present invention is related to a data transfer system using iterative signal processing to decode convolutionally coded signals, and more particularly, to a turbo decoder by implementing the iterative decoding and a method to generate a stopping signal to stop the iterative decoding.
2. Description of the Prior Art
Turbo code is a capacity-approaching error correction code having high performance. Because of its high performance and proper decoding complexity, it has been widely used in many communication systems, such as CCSDS standard in deep space, DVB-RCS standard in broadcast systems, W-CDMA, WiMAX or 3GPP-LTE in cellular systems, etc.
The turbo decoding principle is further extended to other iterative signal processing such as serial turbo codes, hybrid turbo codes, turbo equalization, turbo detection, etc.
The turbo code disclosed in U.S. Pat. No. 5,446,747 is constructed by parallel concatenating two convolutional codes via an interleaver. Similar to '747, the conventional turbo decoder adopts iterative way to decode. The decoder is a decoding loop, which connects a first maximum a-posteriori (MAP) decoding module, an interleaver, a second MAP decoding module, and a deinterleaver in series. In that, the main function of MAP decoding module is to calculate a-posteriori probability (APP) and is usually implemented by the BCJR algorithm. The BCJR algorithm was published by Bahl et al. in IEEE Transactions on Information Theory in March 1974. Moreover, the prior art '747 disclosed that after receiving a data block, the data enters the decoding loop via the first MAP decoder. Then, one iteration of decoding is performed by the first MAP decoding, interleaving, the second MAP decoding and deinterleaving in order. The conventional turbo decoding performs iterative decoding using a fixed number of iterations. The more the number of iterations is performed, the higher the accuracy of data is obtained. The performance can be close to Shannon's channel capacity limit. However, when the number of iterations is increased, the performance improvement is reduced gradually and saturated accordingly. More iterations will only increase the power consumption and decoding delay, therefore it is necessary to have a stopping method to solve this problem.
When the turbo decoding is implemented in handheld or portable devices, power consumption is a very important issue. How to design a proper stopping method for iterative decoding is an issue to be resolved. By reviewing some presently known prior art, the stopping methods published by Wang et al. in IEEE ICASSP'06 in May 2006 were categorized into two classes. One class is based on soft information such as cross entropy (CE), sign change ratio (SCR), and sign difference ratio (SDR). The other is based on hard-decision information such as hard decision aided (HDA). The aforementioned prior art are good in saving the number of iterations for iterative decoding, but they suffer from shortcomings of requiring large memory and complicated calculations.
The operation related to the CE method published by Hagenauer et al. in IEEE Transactions on Information Theory in March 1996 is briefed in the following. Please refer to
Still refer to the MAP decoding module in
where the subscript k is the kth time instant; {tilde over (γ)}k(s′,s) is the branch metric from state s′ to state s; ukε{+1, −1} is the value of transmitted symbol; E+/E− is the set of (s′,s) branch pair corresponding to uk=+1/uk=−1, respectively; {tilde over (α)}k (s) is the forward state metric; {tilde over (β)}k (s′) is the backward state metric; Ld/La/Le are the APP/a-priori information/extrinsic information, respectively; Lc is the channel reliability, yks is the value of received systematic information symbol, LsLcyks is the log-likelihood ratio of yks; ykp is the value of received parity symbol, LpLcykp is the log-likelihood ratio of ykp; xkp, is the value of transmitted parity symbol; Hk and Gk are the normalized term for {tilde over (α)}k(s) and {tilde over (β)}k (s′), respectively; and max*{a,b}=max(a,b)+ln(1+e−|a-b|). Note that the dashed line in
At the ith iteration, the stopping method module receives the ith APP (d1(i)=(Ld1,1(i), Ld1,2(i), . . . , Ld1,k(i), . . . , Ld1,N(i))), where N is data block length, of the first MAP decoding module and the ith extrinsic information (e2(i)=(Le2,1(i), Le2,2(i), . . . , Le2,N(i))) of the second MAP decoding module from the turbo decoding module and the cross-entropy is calculated as
where the Le2,k(i-1) is the extrinsic information of the kth data bit of the second MAP decoding module at (i−1)th iteration and the exp (•) is exponential function. When the stopping condition is qualified as
where εs is a threshold developed in accordance with bit error rate (BER) performance requirement, then a stopping signal 203′ is generated. The CE method is good in saving the number of iterations, but the drawbacks of requiring large memory (because the extrinsic information of entire data block e2(i-1)=(Le2,1(i-1), Le2,2(i-1), . . . , Le2,k(i-1), . . . , Le2,N(i-1)) is required to be memorized) and complicated calculations such as N exponential operations and N division operations are obvious.
The SCR method was published by Shao et al. in IEEE Transactions on Information Theory in August 1999. It is a simplified version of the CE method.
where the E[•] is expectation function, the sgn(•) is sign function, the ⊕ is exclusive OR logic, and C(i) is the number of different signs of the extrinsic information between ith and (i−1)th iteration of the second MAP decoding module. When the stopping condition is qualified as
where εs is a threshold developed in accordance with BER performance requirement, then a stopping signal is generated. Because the SCR method is simplified, the saving of the number of iterations is not as good as CE. Similar to the CE method, the SCR method is also required more memories (because the signs of the extrinsic information of entire data block are required to be memorized).
For the HDA method, it is another Shao's method. The HDA method is a further simplified version of the CE method. When the stopping condition is qualified as
sgn(Le2,k(i))=sgn(Le2,k(i-1))
for all k, then a stopping signal is generated. However, Shao et al. mentioned that the saving of iteration of the HDA method is not as good as the CE method or the SCR method in high SNR region. The HDA method is also required memories to store the signs of the extrinsic information of entire data block.
The SDR method was published by Wu et al. in IEEE Communications Letters in August 2000. It extends the idea of the SCR method to the a-priori information aj(i)=(Laj,1(i), Laj,2(i), . . . , Laj,k(i), . . . , Laj,N(i)) and the extrinsic information ej(i)=(Lej,1(i), Lej,2(i), . . . , Lej,k(i), . . . , Lej,N(i)) of a single MAP decoding module, where jε{1, 2} can be either the first MAP decoding module or the second MAP decoding module. When the stopping condition is qualified as
where εs is a threshold developed in accordance with BER performance requirement, then a stopping signal is generated The SDR method does not required extra memories to store the signs of the extrinsic information of entire data block. Comparing the number of iteration saving, the SDR method is the worst.
More stopping methods were also discussed in the paper of Wang et al. The major difference is the signals transferred to the stopping method module being the a-priori information and/or extrinsic information. There are some pros and cons between the number of iteration saving and the BER performance. Due to the fact that an entire data block of the a-priori information and/or extrinsic information is needed to transfer to the stopping method module, a common drawback is high complexity of calculations for stopping condition (because at least N operations are required to calculate the stopping condition).
Generally, when the turbo decoding module is converged, the a-priori information aj(i), the extrinsic information ej(i) or the APP in the entire data block will be converged. Using an entire data block to design the stopping methods are the conventional methods in the prior art, such as U.S. Pat. Nos. 6,738,948, 6,898,254, 6,518,892, 6,956,912, and U.S. Patent App. US 2005/0015696, etc. The prior art are intuitive, but the drawback of requiring large memory and/or complicated calculations is obvious.
According to the problems described above, the main object of the present invention is to provide a low complexity method for stopping the iterative decoding. The method for the iterative decoding not only preserves the performance of decoding and effectiveness in reducing the number of iterations in the prior art, but also includes the advantages of low memory requirement and without complicated calculations. In addition, when the method of the present invention used for stopping the iterative decoding is implemented in a chip, the present invention offers advantages in the saving of power consumption as well as in the effectiveness by reducing the chip area.
Another object of the present invention is to provide an iterative signal processor for decoding convolutionally coded signals. The iterative signal processor has a function to determine the stopping index for iterative signal processing, such that the number of iterations in the iterative decoding is reduced and as a result the requirements in memory needs and calculation operation are reduced. In comparison to the conventional iterative signal processing with the fixed number of iterative decoding, the present invention creates effectiveness in power saving as well as delay time saving.
Still another object of the present invention is to provide an apparatus for wireless communication. The apparatus have a function to determine the stopping index for iterative signal processing, such that the number of iterations in the iterative decoding is reduced and as a result the requirements in memory needs and calculation operation are reduced. In comparison to the conventional iterative signal processing with the fixed number of iterative decoding, the present invention creates effectiveness in power saving as well as delay time saving.
According to the objects above, the present invention provides A method for stopping an iterative MAP decoding of convolutionally coded signals, the method comprising: (a) selecting an integer value k, 1≦k≦N+ν, where N is the data block length of said convolutionally coded signals and ν is the memory length of said convolutionally coded signals; (b) providing at least one MAP decoding module to perform said iterative MAP decoding of said convolutionally coded signals; (c) generating a state metric signature vector at kth time instant by said MAP decoding module during said iterative MAP decoding; (d) accumulating state metric signatures in said state metric signature vector into a stopping index variable; (e) setting a predetermined threshold; (f) comparing said stopping index variable with said predetermined threshold; and (g) stopping said MAP iterative decoding when said stopping index variable is less than said predetermined threshold.
Furthermore the present invention provides a method for stopping an iterative MAP decoding of convolutionally coded signals, the method comprising: (a) selecting an integer value k, 1≦k≦N+ν, where N is the data block length of said convolutionally coded signals and ν is the memory length of said convolutionally coded signals; (b) providing at least one MAP decoding module to perform said iterative MAP decoding of said convolutionally coded signals; (c) generating a forward state metric signature vector at kth time instant by said MAP decoding module during said iterative MAP decoding; (d) generating a backward state metric signature vector at kth time instant by said MAP decoding module during said iterative MAP decoding; (e) accumulating each product of forward state metric signature in said forward state metric signature vector and backward state metric signature of same state in said backward state metric signature vector into a stopping index variable; (f) setting a predetermined threshold; (g) comparing said stopping index variable with said predetermined threshold; and (h) stopping said iterative MAP decoding when said stopping index variable is greater than said predetermined threshold.
In addition, the present invention provides an iterative signal processor for decoding convolutionally coded signals, comprising: an iterative signal processing module including a plurality of MAP decoding modules and said plurality of MAP decoding modules output at least one state metric signature vector at kth time instant during an iterative MAP decoding process performed by the iterative signal processor, wherein k is a selected integer value satisfying 1≦k≦N+ν, where N is the data block length of said convolutionally coded signals and ν is the memory length of said convolutionally coded signals; and a stopping method module including: an accumulator configured to accumulate a plurality of state metric signatures in said state metric signature vector into a stopping index variable; and a decision unit configured to compare said stopping index variable with a predetermined threshold, when said stopping index variable is less than said predetermined threshold, said decision unit will output a stopping signal to said iterative signal processing module, and said iterative MAP decoding is determined to be stopped.
The foregoing aspects and many of the attendant advantages of this invention will become more readily appreciated as the same become better understood by reference to the following detailed description, when taken in conjunction with the accompanying drawings, wherein:
The detailed description of the present invention will be discussed in the following embodiments, which are not intended to limit the scope of the present invention, but can be applicable to other applications.
Different from the concept in the prior art, a stopping method is disclosed in the present invention and the method is using the value of state metric at a particular time instant within the MAP decoding module during the iterative decoding process. It should be noted that the data generated at a particular time instant is used in the present invention instead of an entire data block. According the concept described above, a stopping method in the present invention is disclosed in the following.
Given a parallel turbo code of data block length N comprised two convolutional codes of ν-bit memory with zero-state trellis termination and the Log-MAP algorithm is used as the MAP decoding module in a turbo decoding module, the MAP decoding module will calculate the state metric of states at time k during the iterative decoding process, where the state metric includes the forward state metric {tilde over (α)}k (s) and the backward state metric {tilde over (β)}k(s). Because the state metric is a function of the a-priori information and the a-priori information is a function of the extrinsic information of entire data block e, the state metric can be expressed as a function of the extrinsic information of entire data block. Therefore, the state metric can be a compact representation of e. In more details,
{tilde over (α)}k(s)=gα,k(La,k)=gα,k(hα,k(e))=fα,k(e), for 1≦k≦N
where fα,k (•)=gα,k(hα,k(•)), gα,k(•) and hα,k(•) is a function at time k, respectively. Because {tilde over (α)}k(s) is also a function of La,N for N<k≦N+ν, the range of k can be extended to N+ν, i.e.,
{tilde over (α)}k(s)=fα,k(e) for 1<k≦N+ν.
Similarly,
{tilde over (β)}k(s)=gβ,k+1(La,k+1)=gβ,k+1(hβ,k+1(La,k+1))=fβ,k+1(e) for 0≦k≦N−1
where fβ,k+1(•)=gβ,k+1(hβ,k+1(•)), gβ,k+1(•) and hβ,k+1(•) is a function at time k+1, respectively. Note that the range of k is different for the forward and backward state metric due to the nature of decoding algorithm. For convenience, the state metric including {tilde over (α)}k(s) for 1≦k≦N+ν and {tilde over (β)}k(s) for 0≦k≦N−1 is defined as state metric signature ρk(s), i.e., ρk(s) is a common alias of {tilde over (α)}k(s) and {tilde over (β)}k(s). In details, ρk(s)={tilde over (α)}k(s) or {tilde over (β)}k(s) for 1≦k≦N−1, ρk(s)={tilde over (β)}k (s) for k=0, and ρk(s)={tilde over (α)}k(s) for N≦k≦N+ν. Moreover, the k=[{tilde over (α)}k(0) {tilde over (α)}k(1) . . . {tilde over (α)}k(S−1)] and k=[{tilde over (β)}k(0) {tilde over (β)}k(1) . . . {tilde over (β)}k(S−1)] is defined as the forward and backward state metric signature vector, respectively, where S is the total number of state of the convolutional code. The state metric signature vector k is defined as a common alias of the forward state metric signature vector k and the backward state metric signature vector k. When the turbo decoding module is converged, the e is converged accordingly. Thus, the state metric signature ρk(s) which embedded the information of e can be used as a stopping index for turbo decoding. Because the state metric signature is a compact representation of e, low-complexity stopping method is possible if the state metric signature is employed. The present invention uses the state metric signature to design the stopping method.
According to the definition of variables, the fundamental stopping method in the present invention is disclosed as follows. When a turbo decoder is doing the ith iteration, the stopping method module receives the state metric signature vector j,k(i) of the jth MAP decoding module at ith iteration from the turbo decoder so as to calculate a stopping index TI, where
When TI<εs, the iterative decoding is stopped, where εs is a threshold developed in accordance with BER performance requirement. All other variants of the fundamental stopping method are extension of the present invention and it will be described later.
In order to make the description, features and advantages can be more clearly understood in the present invention, the detailed description of the following embodiments will be cooperated with the drawings.
For simplicity, a parallel turbo code of data block length N comprised two convolutional codes of ν-bit memory with zero-state trellis termination is considered in the following embodiments and the Log-MAP algorithm is used as the MAP decoding module in the turbo decoding module.
The turbo decoding module 10 in the following embodiments of the present invention basically is a decoding loop, and the turbo decoding module 10 comprises a first MAP decoding module 101, an interleaver (π) 103, a second MAP decoding module 102 and a deinterleaver (π−1) 104. The stopping method module 20 comprises an accumulator 201 and a decision unit 202. It then outputs a stopping signal 203 to the turbo decoding module 10 so as to control whether to continue iterative decoding or not.
Please refer to
The turbo decoding module 10 receives a data block and performs iterative decoding. At the ith iteration, the second MAP decoding module 102 will transfer the forward state metric signature vector 2,k to the stopping method module 20. The accumulator 201 of the stopping method module 20 will accumulate all the forward state metric signatures α2,k(i)(s) and save the result in the stopping index variable TI, i.e.,
Then, the decision unit 202 will compare the accumulated result of the stopping index variable TI with a threshold εs. When the stopping index is less than the predetermined threshold, i.e., TI<εs, then the stopping signal 203 is generated to the turbo decoding module 10 so as to stop the iterative decoding. Otherwise, the iteration is repeated until the stopping condition is fulfilled (TI<εs) or a fixed number of iterations are performed.
The present embodiment is similar to the first embodiment. Instead of using 2,k the backward state metric signature vector 2,k is used to calculate the stopping index. As shown in
In the present embodiment, the turbo decoding module 10 receives a data block and performs iterative decoding. At the ith iteration, the second MAP decoding module 102 will transfer the backward state metric signature vector 2,k to the stopping method module 20. The accumulator 201 of the stopping method module will accumulate all the backward state metric signatures β2,k(i)(s) and save the result in stopping index variable TI, i.e.,
Then, the decision unit 202 will compare the accumulated result of the stopping index variable TI with a threshold εs. When the stopping index is less than the predetermined threshold, i.e., TI<εs, then the stopping signal 203 is generated to the turbo decoding module 10 so as to stop iterative decoding. Otherwise, the iteration is repeated until the stopping condition is fulfilled (TI<εs) or a fixed number of iterations are performed.
The present embodiment is a combination of the first embodiment and second embodiment. Instead of using 2,k or 2,k alone, both of 2,k and 2,k are used to calculate the stopping index. As shown in
In the present embodiment, the turbo decoding module 10 receives a data block and performs iterative decoding. At the ith iteration, the second MAP decoding module 102 will transfer the state metric signature vectors 2,k and 2,k to the stopping method module 20. The accumulator 201 of the stopping method module will accumulate all the state metric signatures α2,k(i)(s) and β2,k(i)(s) and save the result in stopping index variable TI, i.e.,
Then, the decision unit 202 will compare the accumulated result of the stopping index variable TI with a threshold εs. When the stopping index is less than the predetermined threshold, i.e., TI<εs, then the stopping signal 203 is generated to the turbo decoding module 10 so as to stop iterative decoding. Otherwise, the iteration is repeated until the stopping condition is fulfilled (TI<εs) or a fixed number of iterations are performed.
The present embodiment is a variant of the third embodiment. Instead of using vector summation of 2,k and 2,k, product of 2,k and 2,k (i.e., 2,kT·2,k) are used to calculate the stopping index. As shown in
In the present embodiment, the turbo decoding module 10 receives a data block and performs iterative decoding. At the ith iteration, the second MAP decoding module 102 will transfer the state metric signature vectors 2,k and 2,k to the stopping method module 20. The accumulator 201 of the stopping method module will accumulate each product of the state metric signatures α2,k(i)(s) and ⊕2,k(i)(s) of same state and save the result in stopping index variable TI, i.e.,
Then, the decision unit 202 will compare the accumulated result of the stopping index variable TI with a threshold εs. When the stopping index is greater than the predetermined threshold, i.e., TI>εs, then the stopping signal 203 is generated to the turbo decoding module 10 so as to stop iterative decoding. Otherwise, the iteration is repeated until the stopping condition is fulfilled (TI>εs) or a fixed number of iterations are performed.
The present embodiment is an extension of the first embodiment. Instead of using 2,k from single stage of MAP decoding module, two stages of forward state metric signature vectors including 1,k and 2,k are used to calculate the stopping index. As shown in
The turbo decoding module 10 receives a data block and performs iterative decoding. At the ith iteration, the first MAP decoding module 101 will transfer the forward state metric signature vector 1,k to the stopping method module 20; then the second MAP decoding module 102 will transfer the forward state metric signature vector 2,k to the stopping method module 20. The accumulator 201 of the stopping method module will accumulate all the forward state metric signatures including α1,k(i)(s) and α2,k(i)(s) and save the result in stopping index variable TI, i.e.,
Then, the decision unit 202 will compare the accumulated result of the stopping index variable TI with a threshold εs. When the stopping index is less than the predetermined threshold, i.e., TI<εs, then the stopping signal 203 is generated to the turbo decoding module 10 so as to stop iterative decoding. Otherwise, the iteration is repeated until the stopping condition is fulfilled (TI<εs) or a fixed number of iterations are performed.
In order to demonstrate the efficiency of the present invention, simulations were conducted to verify the performance of different embodiments in the present invention. The simulation parameters are as follows. The turbo code constructed by parallel concatenating two (7,5) recursive systematic convolutional codes with zero-state trellis termination via a quadratic polynomial permutation (QPP) interleaver is used. The data block length is 6144 and the code rate is 1/3. The Log-MAP algorithm is used as the MAP decoding algorithm. The threshold is targeted to the BER performance less than 10−5. At the mean time, the maximum number of iteration is limited to 8.
As shown in
As shown in
Obviously, the different embodiments in the present invention are able to save the number of iterations for a given target BER performance. The advantages of the present invention are low memory requirement and without complicated calculations. When the stopping method is made in a chip, the area of the chip is also reduced effectively. When the stopping method is used in handheld or portable devices, the durability is better.
Based on the principle of using a plurality of forward state metric signature vectors from different decoding steps in the fifth embodiment and the principle of combining forward and backward state metric signature vectors in the third and fourth embodiments, it is obvious these principles can be extended to other embodiments in the present invention. The effect of using a plurality of state metric signature vectors and combining forward and backward state metric signature vectors will be beneficial to the tradeoff of performance and complexity. Therefore, only some sample parameters are used in the simulations for demonstration, which are not intended to limit the scope of the present invention. Obviously, these embodiments can be practiced by the connection relationship similar to
Though the parallel turbo code is used in the present invention, it is not limited herein due to the MAP decoding module is applicable to all kind of iterative signal processing for convolutionally coded signals. A plurality of MAP decoding modules in the present invention can be used to iteratively process the parallel, serial, or hybrid concatenation of convolutionally coded signals and systems, such as serial turbo codes, turbo equalization, turbo detection and other iterative signal processing. Furthermore, the stopping method of iterative signal processing in the present invention can be embedded in a chip and executed as an iterative signal processor; and it is also used in the way of software, the stopping method of iterative signal processing is implemented in software program to be executed. For example, the stopping method of iterative signal processing is saved in a computer-readable medium and then called to be executed by main program.
It should be noted that the main feature of the present invention is to transfer and utilize the state metric signature of MAP decoding module at a particular time instant instead of the a-priori information, extrinsic information or APP values of an entire data block.
Furthermore, the turbo code in the present invention is implemented in apparatus such as handheld devices, portable devices or base stations in cellular communication systems, which includes at least one antenna to receive a radio frequency signal with convolutionally coded baseband signals such as turbo codes, multipath fading signals, multi-antenna signals, etc., an demodulator connected with the antenna and configured to demodulate the radio frequency signal to the convolutionally coded baseband signals, and an iterative signal processor connected with the demodulator and configured to do the iterative signal processing for the convolutionally coded baseband signals. An iterative signal processor such as turbo decoder, turbo equalizer or turbo detector, etc. implemented by at least one MAP decoding module, and the MAP decoding module output at least one state metric signature vector during iterative processing process. The stopping method module includes an accumulator configured to accumulate the state metric signatures generated by the MAP decoding module into a stopping index variable. In addition, a decision unit configured to compare the stopping index variable with a predetermined threshold for stopping iterative decoding, when the stopping index is less than the predetermined threshold, the decision unit will output a stopping signal to the iterative signal processing module and the iterative decoding is determined to be stopped.
Although specific embodiments have been illustrated and described, it will be appreciated by those skilled in the art that various modifications may be made without departing from the scope of the present invention, which is intended to be limited solely by the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
5446747 | Berrou | Aug 1995 | A |
6518892 | Shen et al. | Feb 2003 | B2 |
6700937 | Turin | Mar 2004 | B1 |
6738948 | Dinc et al. | May 2004 | B2 |
6879648 | Ebel, Sr. et al. | Apr 2005 | B2 |
6891485 | Jaffe et al. | May 2005 | B2 |
6898254 | Wolf et al. | May 2005 | B2 |
6956912 | Bass | Oct 2005 | B2 |
8397141 | Lapstun | Mar 2013 | B2 |
20030061561 | Rifaat et al. | Mar 2003 | A1 |
20030142727 | Monogioudis et al. | Jul 2003 | A1 |
20040022336 | Yu et al. | Feb 2004 | A1 |
20040140915 | Shen et al. | Jul 2004 | A1 |
20050015696 | Bune | Jan 2005 | A1 |
20050022090 | Cameron et al. | Jan 2005 | A1 |
20070011586 | Belogolovyi et al. | Jan 2007 | A1 |
20090089643 | Hsieh | Apr 2009 | A1 |
Number | Date | Country | |
---|---|---|---|
20120272125 A1 | Oct 2012 | US |