The present invention relates to error handling in the field of communication systems, and more specifically to decoding signals, which have been transmitted using error correction codes, using a Turbo decoding technique.
In communication systems, a signal representing information is sent from a transmitter to a receiver via a channel. Most modern radio communication systems operate in the digital domain, which involves a number of different signal processing possibilities.
In cases when it is expected that the channel 14 will distort the signal (which is usually the case in radio communication systems), a channel encoder 15 may be employed to lessen this effect. Channel encoding involves encoding the information in such a way prior to transmission that, when the complementary channel decoding process is performed in a channel decoder 16 at the receiver, it will be possible to correct and/or detect errors in the received signal.
Channel encoding typically involves generating one or more extra bits as a function of the input information bitstream, or, in other words, channel encoding adds redundancy in a structured manner to the bitstream. The extra bits are transmitted along with the original information bits and are used in the channel decoding process to correct and/or detect errors in the received bits.
After the channel encoding, a modulator 17 is used to convert the bitstream into waveforms suitable for transmission over the channel 14. After transmission over the channel 14, the signal is demodulated by a demodulator 18, which performs a conversion of the waveforms into a bitstream. Since the channel 14 introduces noise and interference, the signal output from the demodulator 18 normally is different from the signal input to the modulator 17.
The output bitstream from the demodulator is input to the channel decoder, and, finally, the source decoder 19 outputs the signal to the destination 12.
Returning to the channel coding process, one technique that is known in the art is called Turbo coding. Turbo coding arrangements and operation are described in many publications, of which C. Berrou and A. Glavieux, “Near Optimum Error Correcting Coding and Decoding: Turbo-codes,” IEEE Transactions on Communications, 44 (10), October 1996 is one example.
Turbo coders are being designed into more and more systems. For example, the third generation partnership project, 3GPP, has chosen Turbo coding as one of the methods for channel coding in WCDMA (Wideband Code Division Multiple Access) mobile communication systems.
The second encoder 105 similarly generates a second stream of systematic bits, s2, and a second stream of parity bits, p2. The systematic bits, s2, represent the original shuffled information bits supplied to the second encoder 105, and the parity bits, p2, represent the redundant information generated by the second encoder 105.
The outputs from the first encoder 101 and the second encoder 105 are supplied to a multiplexer 107, which combines them into a single bitstream that is to be transmitted to the receiver via a channel. It will be recognized that, since the systematic bits s2 merely represent a shuffled version of the systematic bits s1, it is not really necessary to transmit the systematic bits s2 to the receiver. This is represented in the figure by the use of dashed lines and parentheses. In embodiments in which only s1, p1 and p2 are transmitted, the receiver side would include circuitry (not shown) for re-creating s2 by suitably shuffling the received version of s1. For the sake of simplicity, the figure is drawn as though s2 were transmitted along with the other parameters s1, p1 and p2. The dashed line between the encoding part and the decoding part is meant to indicate that the bitstream is transmitted over a channel using various units such as is well known in the art.
At the receiver, the bit stream sent over the channel is estimated and represented in the form of soft parameter values or soft bits s1′, p1′, s2′ and p2′. These values are supplied from a demultiplexer 109 that also splits them up into their constituent parts and supplies these parts in pairs to a respective one of a first maximum a posteriori (MAP) decoder 111 and a second MAP decoder 113. The first MAP decoder 111 operates on the non-interleaved bits s1′, p1′, and the second MAP decoder 113 operates on the interleaved bits s2′, p2′.
Typically, the decoding process starts with one run of the first decoder 111, which generates extrinsic information as well as an output vector L1. In the terminology of Turbo decoders, this procedure is called one half iteration. The extrinsic information is in the form of soft values, or estimates of the original transmitted data symbols, whereas the output vector L1 consists of hard values (i.e., the decided upon values that are considered to represent the original transmitted data symbols).
In the Turbo decoder arrangement, the extrinsic information generated by the first decoder 111 as a result of its half iteration is shuffled by an interleaver 115, and the shuffled information is then supplied to the second decoder 113. The second decoder 113 is then permitted to operate. The extrinsic information supplied by the first decoder 111 via the interleaver 115 is taken into account when the second decoder 113 performs its half iteration, which in turn produces extrinsic information as well as an output vector that, after un-shuffling by the deinterleaver 119, is an output vector L2i. Since the second decoder 113 operates on interleaved data, its outputs are also interleaved. Thus, the extrinsic information generated by the second decoder 113 is supplied to a deinterleaver 117 so that it may be passed on to the first decoder 111 for use in a next half iteration.
In operation, some number of Turbo decoder iterations are performed until the output vector L2i is considered to have converged on a reliable result.
Theoretically, the MAP decoder mentioned above is an optimal decoder. Since it involves complicated multiplication and exponentiation operations, its equivalent in the logarithmic domain, the logarithmic maximum a posteriori decoder (Log-MAP) is often implemented instead, which replaces the multiplications by additions. However, the Log-MAP decoder is still too computationally intensive for many applications, e.g. in handsets for mobile telephony, and therefore a decoder approximation which is denoted Log-Max (logarithmic maximum) is implemented for some cases. Experience has shown that the performance of Log-Max is worse than that of Log-MAP for good transmission conditions, but for heavily fading or noisy channels Log-Max can perform better than Log-MAP.
In US2004/0151259 A1, a method of decoding a Turbo-code encoded signal is described wherein, in a first variant, an error information representing an error of the SIR (Signal to Interference Ratio) is determined and compared to a threshold value to decide whether the channel conditions are good or bad. In the former case, a Log-MAP algorithm is selected and in the latter case a “MaxLogMAP” (in this application called Log-Max) algorithm is selected. In a second variant the speed of a mobile phone as well as a delay profile for the transmission channel are used for deciding which algorithm to use.
It may be noted that the selection methods according to US2004/0151259 A1 depend heavily on the accuracy and timing of the estimates of SIR or the instantaneous delay profiles for various speeds. All of these may be difficult to estimate properly in a radio environment with fading and varying speeds. Moreover, in US2004/0151259 the performance of the Turbo decoders have been measured statistically, which means that for an arbitrary coding block it is uncertain which decoder will give the best result.
U.S. Pat. No. 6,400,731 discloses a variable rate CDMA communication system in which the receiver comprises a plurality of Viterbi decoders that are operated in parallel.
Fossorier M. P. C et al “Complementary reliability-based decodings of binary linear block codes” in IEEE Transactions on information theory, IEEE Service center, Piscataway, N.J., US, vol. 43, no. 5, September 1997 (1997-09), pages 1667-1672, XP002264082 discloses a hybrid reliability-based decoding algorithm which combines the reprocessing method based on the most reliable basis and a generalized Chase-type algebraic decoder based on the least reliable positions.
US 2002/0404 discloses Log-MAP and Max-Log-MAP decoding algorithms for Turbo decoding.
Thus, it is desirable to provide strategies for selecting decoder algorithms for a Turbo decoder arrangement.
A purpose of the embodiments of the present invention is to provide methods and receivers that Turbo decode Turbo encoded information and alleviate the foregoing and other problems.
According to an aspect of the invention, such a method for Turbo decoding a received Turbo encoded bitstream in a communication system is disclosed. The method comprises the steps of decoding the received bitstream using a first Turbo decoding algorithm to produce a first decoded bitstream and a first error measure, in parallel with decoding the received bitstream using a second Turbo decoding algorithm for producing a second decoded bitstream and a second error measure, and selecting, for further processing in a receiver, the decoded bitstream and error measure from the decoding algorithm which produces the most favorable error measure.
Specifically, at least two different Turbo decoders are run in parallel and the output from the decoder is selected which gives the best result according to some given criteria, under the existing circumstances.
This gives the possibility to choose the best available decoding algorithm on the level of each single coding block, unaffected by statistical measurement latencies and errors.
It should be noted that a lot of processing power is consumed by, for example, a radio unit and a baseband unit in the receiver prior to decoding, and, therefore, it is important that the channel decoder does not fail to deliver the correct results. Since embodiments of the invention improve the performance of the receiver by using only the output from the decoder which is most suited for the present conditions, this is much less likely to happen. Further, this makes it possible to save the transmitting power of the transmitter.
Thus, embodiments of the present invention provide an efficient way of performing channel decoding.
According to embodiments of the invention, the error measure corresponds to the number of error indicating Cyclic Redundancy Check (CRC) flags.
In the decoding step, the first error measure can be determined on basis of the number of error indicating CRC flags associated with the first decoded bitstream and the second error measure can be determined on basis of the number of error indicating CRC flags associated with the second decoded bitstream. In the selecting step, the most favorable error measure can be the error measure corresponding to the smallest number of error indicating CRC flags. In other words, if only one CRC flag is used for determining the error measure, the decoder output having a CRC flag indicating no error is chosen. If the number of CRC flags used for determining the error measure is larger than one, the decoder output, which comprises the smallest number of error indicating CRC flags and, thus, the smallest number of incorrectly decoded blocks, is selected. The latter would be advantageous in a situation where the number of Turbo decoder iterations is strictly limited and there are several decoded blocks per TTI.
The selecting step can be repeated once per one or more Transmission Timing Intervals, TTI.
The step of decoding can comprise decoding the received bitstream using at least a third algorithm in parallel with the first and the second algorithms, to even further enhance the flexibility of the channel decoding.
At least one of the decoders may use a logarithmic domain maximum a posteriori, Log-MAP, algorithm.
Further, at least one of the decoders may use an approximation of a Turbo decoding algorithm, and such an approximation may be a logarithmic maximum, Log-Max, approximation of a logarithmic domain maximum a posteriori, Log-MAP, algorithm.
Another possibility for such an approximation is a logarithmic maximum, Log-Max, approximation of a logarithmic domain maximum a posteriori, Log-MAP, algorithm plus a predetermined number of correction terms.
These correction terms may be in linear units, in which case a so called linear logarithmic (Lin-Log) decoder is achieved.
Thus, one or more different approximate decoders may be run in parallel with one or more approximate decoders or with a decoder using a Log-Map algorithm.
According to another aspect of the invention, a receiver for processing a received Turbo encoded bitstream in a communication system is disclosed. The receiver comprises a first channel decoder which is arranged to use a first Turbo decoding algorithm to produce a first decoded bitstream and a first error measure, and a second channel decoder which is arranged to use a second Turbo decoding algorithm to produce a second decoded bitstream and a second error measure. The decoders are operable in parallel, and the receiver further comprises a selector which is arranged to select, for further processing in the receiver, the decoded bitstream and the error measure from the decoder which has the most favorable error measure.
The receiver can be arranged to determine the first error measure on basis of the number of error indicating CRC flags of the first decoded bitstream and the second output error measure on basis of the number of error indicating CRC flags of the second decoded bitstream. The selector can be arranged to select the most favorable error measure as the error measure corresponding to the smallest number of error indicating CRC flags.
The selector can be arranged to select the output and error measure once per one or more Transmission Timing Intervals, TTIs, or block of data.
The receiver can further comprise at least a third decoder which is arranged to use a third algorithm to decode the bitstream in parallel with the first and the second decoder, in order to further enhance the flexibility and performance of the receiver.
At least one of the decoders can be arranged to use a logarithmic domain maximum a posteriori, Log-MAP, algorithm.
At least one of the decoders can be arranged to use an approximate Turbo decoding algorithm.
Specifically, at least one of said decoders can be arranged to use a logarithmic maximum, Log-Max, approximation of a logarithmic domain maximum a posteriori, Log-MAP, algorithm.
At least one of said decoders is arranged to use a logarithmic maximum, Log-Max, approximation of a logarithmic domain maximum a posteriori, Log-MAP, algorithm plus a predetermined number of correction terms. These correction terms can be linear.
The receiver can be incorporated in a wireless communications device or a base station for wireless communication.
Embodiments of the invention will now be described more in detail in connection with the enclosed drawings.
To facilitate an understanding of exemplifying embodiments, many aspects are described in terms of sequences of actions that can be performed by elements of a computer system. For example, it will be recognized that in each of the embodiments, the various actions can be performed by specialized circuits or circuitry (e.g., discrete logic gates interconnected to perform a specialized function), by program instructions being executed by one or more processors, or by a combination of both.
In
A channel decoding unit 208 according to an embodiment of the invention is shown in
The encoded bitstream is input to two decoders 16a and 16b in parallel.
Each decoder 16a and 16b implements a different approximate or non approximate Turbo decoding algorithm. In this context it may be noted that the term Turbo decoding algorithm is used for both approximate and non approximate algorithms. Each decoder works in the same way as a standard one. This parallel decoding addresses the problem of having to choose a single decoder a priori which should work for all different conditions.
The output from each of the decoders 16a, 16b corresponds to the output vector L2i, as described in relation to
The comparison and selection may advantageously be done once each TTI (Transmission Time Interval), or once per a predefined number of TTI:s, but it is also possible to do it more often, such as once per coded block length if there are more than one coded block per TTI. The CRC flags of the selected decoder are output for further use in the outer loop power control 302.
The decoded bitstream from the selected decoder is then output to an additional processor 304 and to higher layer processing in the receiver. The bitstream and the CRC flags from the non selected decoder are discarded.
In other words, instead of outputting the CRC flags and the decoded bit stream directly after decoding, a new block, in form of the selector 301, which may be implemented in hardware or in software, or a combination thereof, is added to the receiver. The selector 301 compares error measures, which are based on the number of error indicating CRC flags, and selects the decoder with the least errors, and then only outputs the selected decoder's CRC flags for power control etc, and the selected decoder's decoded bit stream for processing in the higher layers.
Regarding the Turbo decoding algorithms used, it may be noted that in addition to the previously discussed Log-MAP decoder and Log-Max decoder, a Log-Max decoder with a number of correction terms can be used. Such a decoder with linear correction terms is denoted Log-Lin (logarithmic linear) and may be used in order to reduce losses for good transmission conditions, and to optimize performance for less good transmission conditions.
As is known in the art, the calculation of the a posteriori probability, i.e. the extrinsic information in the MAP algorithm in the logarithmic domain, uses a soft combining operation COM(x,y), between two values x and y. The operation is defined as
COM(x,y)≡max(x,y)+log(1+e−|x−y|)
In the approximate Turbo decoding algorithms, approximations of the COM(x,y) operation are used. In the Log-Lin decoder the COM(x,y) operation is approximated as
wherein the floor operator rounds the variable off towards the closest lower integer, wi is an integer value chosen appropriately (4 is a common choice) and com2corr (also known as correlation length) is chosen depending on the application.
The usual way of choosing the parameters for a decoder is to run the decoder with various numbers of linear correction terms of different magnitudes, for different transport scenarios, to obtain a set of parameters which on average give the best results for the tested cases. For any one of the decoders in the parallel decoder arrangement according to the discussed embodiment of the invention the choice could be com2corr=4 for a decoder with only one correction term,
when |x−y|=0. For another decoder, com2corr=8 may be used with more correction terms, namely
when |x−y|=0, and
when 0<|x−y|≦4. Using com2corr<4 gives the most simple Log-Lin decoder which is known as the Log-Max decoder.
In the embodiment of the invention shown in
In any case, when choosing one single decoder based on results from tested scenarios, the chosen decoder may perform well for a large part of the tested scenarios, but it will hardly have the best performance for all the tested scenarios. Further, the possibility exists that there are other cases which have not been tested. Therefore, embodiments of the invention are advantageous in that at least two decoders are used in parallel, which gives the possibility of adapting to more scenarios. That is, one does not have to choose one single decoder a priori.
Further, the choice between the decoder outputs is made after decoding, which means that there is no need for making a possibly uncertain estimate of the type of transport scenario and choosing the decoder based on statistical data regarding what decoder would perform best for that estimated scenario.
As regards the cooperation between the respective decoders and the selector, a number of different options exist. As a first alternative, a CRC check is performed after each iteration of the respective Turbo decoders. In that case the CRC check can be used to stop the decoding when either of the parallel decoders shows a CRC flag indicating no error, i.e. a correct block. This may save both processing power and time.
As a second alternative, the CRC check is performed after a predefined number of iterations for the Turbo decoders, and then the result from the decoder showing a CRC flag indicating no error, is chosen by the selector.
If both decoders—or in a situation where there are more than two decoders in parallel, at least two of the decoders—have CRC flags indicating no error, any one of the decoder outputs with CRC flags indicating no error may be chosen by the selector.
If, on the other hand, there is no output with a CRC flag indicating no error, more iterations may be performed, or as an alternative, the output from the decoder which gave the best result for the past coding block(s) is chosen.
In
In
The receiver may be used in a wireless communication device, such as a mobile telephone, pager, etc. or a base station.
Thus, the embodiments disclosed herein are merely illustrative and should not be considered restrictive in anyway. The scope of the invention is given by the appended claims, rather than the preceding description, and all variations and equivalents which fall within the range of the claims are intended to be embraced therein.
Number | Date | Country | Kind |
---|---|---|---|
06003196.0 | Feb 2006 | EP | regional |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/EP07/01053 | 2/8/2007 | WO | 00 | 10/21/2008 |
Number | Date | Country | |
---|---|---|---|
60743353 | Feb 2006 | US |