US 20090153375 A1
A method is described for adjusting soft values in a code block prior to decoding. A count of saturated soft values in a code block is determined and one or more of the soft values in the code block are adjusted based on the count of saturated soft values. The count may be determined by incrementing the count for each positive saturated soft value and decrementing the count of each negative saturated soft value. The soft values may be adjusted by adding an offset computed based on the count to the soft values.
1. A method of adjusting soft values input to a decoder in a wireless receiver, said method comprising:
determining a count of saturated soft values in a code block containing a plurality of soft values output by a demodulator; and
adjusting said soft values in said code block based on said count of saturated soft values to compensate for bias attributable to bit width limitations of the decoder.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
8. The method of
9. A device for adjusting soft values input to a decoder in a wireless receiver, said device comprising:
a saturation counter to determine a count of saturated soft values in a code block containing a plurality of soft values output by a demodulator; and
an adjustment unit for adjusting one or more soft values in said code block based on said count to compensate for bias attributable to bit width limitations of the decoder.
10. The device of
11. The device of
12. The device of
13. The device of
14. The device of
15. The device of
16. The device of
The present invention relates generally to decoding of received signals and, more particularly, to a method for compensating soft values that are input to a decoder to account for bias attributable to bit width limitations.
The ultimate purpose of a communication system is to transmit information from an information source to a destination over a communication channel. In wireless communication systems, noise and multipath fading cause bit errors to occur during transmission. Forward error correction (FEC) may be employed to significantly reduce the number of bit errors. An encoder at the transmitter adds redundancy to information prior to its transmission. At the receiver, a decoder makes use of the redundant information and a priori knowledge of the coding scheme to detect and correct errors that may have occurred during transmission of the information.
In some communication systems, the received signal is demodulated by the receiver to generate soft values for input to the decoder rather than hard bit decisions. The soft values contain reliability information that can be exploited by the decoder to improve decoding. The number of bits used to represent the soft values, hereinafter referred to as the bit width, is one consideration in the design of a soft value decoder. It is usually desirable to limit the bit width of the soft values to reduce the computational complexity of the decoder. However, limiting the bit width of the soft values may degrade the performance of the decoder.
The channel decoder is typically designed based on the assumption that the noise will have a zero mean. When the bit width is limited, many of the soft values may become saturated. If the number of saturated values is unevenly matched between the positive and negative values, the noise introduced by the communication channel cannot be assumed to have zero mean. When the positive saturated values exceed the negative saturated values, the mean of the noise will be low. Conversely, when the negative saturated values exceed the positive saturated values, the mean of the noise will be high. If the bias introduced by limiting the bit width of the soft values is not compensated for, the performance of the decoder may be degraded.
The present invention provides a method and apparatus to compensate for bias introduced by limiting the bit width of soft values input to a soft value decoder. According to one exemplary embodiment, a count of saturated soft values in a code block is made, and one or more soft values in the code block are compensated based on the saturation count. In some embodiments, the saturation count is incremented for positive saturated soft values and decremented for negative saturated soft values. The saturation count may then be used to generate an offset that is added to soft values in the code block. In one exemplary embodiment, the saturation count may be used to generate a saturation ratio that is mapped to one of two or more predetermined offsets.
The demodulator 110 may, for example, comprise a generalized RAKE receiver (GRAKE), chip equalizer, or other type of demodulator that outputs soft values for decoding. The decoder 130 may, for example, comprise a trellis decoder, such as a Viterbi decoder, that accepts soft values as an input. The compensation unit 120 is interposed between the demodulator 110 and decoder 130. The bit width of the soft values output by the demodulator 110 may be limited to reduce the computational complexity of the decoder 130. Compensation unit 120 compensates for bias attributable to bit width limitations of the soft values.
Compensation unit 125 compensates the soft values yi in a code block for bias attributable to bit width limitations. The compensation unit 125 comprises an offset calculator 126 and a soft value compensation module 128. The offset calculator 126 computes an offset based on the saturation count C, which is to be added to the soft values in the code block. The soft value compensation module 128 compensates the soft values based on the offset supplied by the offset calculator 126. The soft values are read sequentially from the buffer 122. The soft value compensation module 128 adds an amount equal to the offset to selected soft values. In one embodiment, the offset is added to all of the soft values in the code block. If the compensated soft values exceed predetermined maximum values, the soft value compensation module 128 limits the compensated soft value to a predetermined maximum value. The compensated soft values ŷi are then output to the decoder 130.
where N is the number of soft values in the code block. Offset calculator 126 then maps the saturation ratio R given by Eq. 1 to a corresponding offset (block 176). In one exemplary embodiment, there may be a limited number of predetermined offsets. As one example, the offsets may be limited to 0, ±1, and ±2. The offset calculator 126 determines which one of the predetermined offsets to use based on the saturation ratio R and the sign of the saturation count (sign (C)). An exemplary mapping function is given by:
where t1 and t2 are predetermined threshold values. The threshold values are values in the range of 0.0 to 1.0. Exemplary threshold values are t1=0.125 and t2=0.35. The mapping function selects an offset of 0 when the saturation ratio R is less than t1, selects ±1 when the saturation ratio is greater than or equal to t1 and less than t2, and selects ±2 when the saturation ratio is greater than or equal to t2. The sign of the offset is determined by the sign of the saturation count C. Once the offset is determined, the offset is output to the soft value compensation module 128 (block 178).
The soft values are fed to the soft value compensation module 128 one at a time. For each soft value, the soft value compensation module 128 adds the offset computed in Eq. 2 to the soft value yi (block 182) to obtain an adjusted soft value ŷi. After adding the offset, the soft value compensation module 128 determines whether the adjusted soft value ŷi exceeds predetermined limits (block 184). In the exemplary embodiment, the magnitude of the adjusted soft value ŷi is limited to a predetermined maximum magnitude PMAX. Adjusted soft values ŷi falling in the range of −PMAX to PMAX are output to the decoder 130 (block 188). Adjusted soft values ŷi greater than PMAX are adjusted down to equal PMAX (block 186) and output to the decoder 130 (block 188). Adjusted soft values ŷi less than −PMAX are adjusted upward to equal −PMAX (block 186) and output to the decoder 130 (block 188).
From the foregoing, it can be seen that the soft value compensation module 128 leaves the soft values unchanged when the magnitude of the saturation count C is low. As the magnitude of the saturation count C increases, the soft value compensation module 128 increases the magnitude of the offset in step-wise fashion. The threshold values t1 and t2 can be adjusted to the location of the step changes in the offset.
By compensating the soft values prior to the decoder 130, it is possible to limit the bit width of the soft values, and thus reduce decoder complexity while still maintaining good performance levels. The present invention may, of course, be carried in other specific ways than those herein set forth without departing from the scope and essential characteristics of the invention. The present embodiments are, therefore, to be considered in all respects as illustrative and not restrictive, and all changes coming within the meaning and equivalency range of the appended claims are intended to be embraced therein.