DECODING MODULE WITH LOGARITHM CALCULATION FUNCTION
20170222755 · 2017-08-03
Inventors
Cpc classification
H03M13/6577
ELECTRICITY
H03M13/1102
ELECTRICITY
H04L1/005
ELECTRICITY
H03M13/112
ELECTRICITY
International classification
Abstract
A decoding module for a communication device includes a first calculation circuit, outputting the larger between a first parameter and a second parameter as a first output parameter; a first arithmetic circuit, calculating a first product of a third parameter and a first slope, and a first difference between a first constant and the first product; a second arithmetic circuit, calculating a second product of the third parameter and a second slope, and a second difference between a second constant and the second product; a second calculation circuit, selecting the largest among a third constant, the first difference and the second difference and generating a second output parameter, wherein the third constant is zero; and an addition circuit, adding the first output parameter and the second output parameter to generate output information, according to which the communication device determines a data bit.
Claims
1. A decoding module, applied to a communication device, the communication device receiving an input signal and generating a first parameter and a second parameter according to a data bit of the input signal and a first check bit and a second check bit corresponding to the data bit, the decoding module comprising: a first calculation circuit, outputting the larger between the first parameter and the second parameter as a first output parameter; a first arithmetic circuit, calculating a first product of a third parameter and a first slope, and a first difference between a first constant and the first product; a second arithmetic circuit, calculating a second product of the third parameter and a second slope, and a second difference between a second constant and the second product; a second calculation circuit, selecting the largest among a third constant, the first difference and the second difference, and generating a second output parameter, wherein the third constant is zero; and an addition circuit, adding the first output parameter and the second parameter to generate output information; wherein, the communication device determines the data bit according to the output information.
2. The decoding module according to claim 1, further comprising: a multiplication circuit, multiplying the largest among the third constant, the first difference and the second difference by a ratio parameter to generate a result as the second output parameter; wherein, the third parameter is an absolute value of a product of a reciprocal of the ratio parameter and an absolute difference between the first parameter and the second parameter.
3. The decoding module according to claim 1, wherein the third parameter is an absolute value of a difference between the first parameter and the second parameter.
4. The decoding module according to claim 1, wherein the first calculation circuit comprises: a comparator, comparing the first parameter and the second parameter to generate a control signal indicating a value relationship between the first parameter and the second parameter; and a multiplexer, selecting one of the first parameter and the second parameter as the first output parameter according to the control signal.
5. The decoding module according to claim 1, wherein the first arithmetic circuit comprises: a multiplier, calculating a first product of the third parameter and the first slope; and an adder, calculating the first difference between the first constant and the first product.
6. A decoding module, applied to a communication device, the communication device receiving an input signal and generating a first parameter and a second parameter according to a data bit of the input signal and a first check bit and a second check bit corresponding to the data bit, the decoding module comprising: a first calculation circuit, outputting the larger between the first parameter and the second parameter as a first output parameter; a first arithmetic circuit, calculating a first value obtained from substituting a third parameter into a first curve function; a second arithmetic circuit, calculating a second value obtained from substituting the third parameter into a second curve function; a second calculation circuit, selecting the largest among a constant, the first value and the second value and generating a second output parameter, wherein the constant is zero; and an addition circuit, adding the first output parameter and the second output parameter to generate output information; wherein the communication device determines the data bit according to the output information, the first curve function and the second curve function are n.sup.th functions, and n is greater than or equal to 1.
7. The decoding module according to claim 6, further comprising: a multiplication circuit, multiplying the largest among the third constant, the first difference and the second difference by a ratio parameter to generate a result as the second output parameter; wherein, the third parameter is an absolute value of a product of a reciprocal of the ratio parameter and an absolute difference between the first parameter and the second parameter.
8. The decoding module according to claim 6, wherein the third parameter is an absolute value of a difference between the first parameter and the second parameter.
9. The decoding module according to claim 6, wherein the first calculation circuit comprises: a comparator, comparing the first parameter and the second parameter to generate a control signal indicating a value relationship between the first parameter and the second parameter; and a multiplexer, selecting one of the first parameter and the second parameter as the first output parameter according to the control signal.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
DETAILED DESCRIPTION OF THE INVENTION
[0018]
[0019] To perform the iterative decoding process, the decoding device 10 may need to support a logarithm calculation function. For example, when the LLR is calculated, the SISO decoding modules SISO1 and SISO2 may need to calculate an equation below:
ln(e.sup.A+e.sup.B) (1)
[0020] In the SISO decoding module SISO1, the parameters A and B may be values generated according to the input information LLR(ui) and LLR(p) and the extrinsic information LLR1(ui). In the SISO decoding module SISO2, the parameters A and B may be values generated according to the input information LLR(p) and LLR(q) and the extrinsic information LLR2(ui). Equation (1) may be simplified as:
ln(e.sup.A+e.sup.B)=max(A, B)+llr.sub.scale*ln(1+e.sup.−d) (2)
[0021] In equation (2),
and llr.sub.scale is a ratio parameter.
[0022] In one embodiment, the SISO decoding modules SISO1 and SISO2 may use three straight lines L1 to L3 to approximate the value of ln(1+e.sup.−d) to reduce the hardware costs of implementing the logarithm calculation function.
L1: Y=0 (3)
L2: Y=o1−m1*d (4)
L3: Y=o2−m2*d (5)
[0023] In the above equations, (−m1) and (−m2) are slopes of the straight lines L2 and L3, respectively, and o1 and o2 are constant terms of the straight lines L2 and L3, respectively. In one embodiment, the constant terms o1 and o2 and the slopes (−m1) and (−m2) may be obtained by using a least square method. As shown in
ln(e.sup.A+e.sup.B)=max(A, B)+llr.sub.scale*max(0,o1−m1*d,o2−m2*d) (6)
[0024] It is known from equation (6) that, by approximating the value of ln(1+e.sup.−d) using the straight lines L1 to L3, the embodiment of the present invention is able to complete the calculation of a natural logarithm through a simple calculation process, hence significantly reducing the hardware costs of implementing the logarithm calculation function.
[0025] According to different applications and design concepts, hardware for implementing the logarithm calculation function may be realized through various methods.
and llr.sub.scale is a ratio parameter. Similarly, the arithmetic circuit 304, including a multiplier 316 and an adder 318, calculates a difference of subtracting a product of the parameter d and a slope m2 from a constant term o2, and outputs the difference calculated to the calculation circuit 306. After receiving the differences calculated by the arithmetic circuits 304 and 306, the calculation circuit 310 outputs the larger between the received parameters to the multiplication circuit 308. The multiplication circuit 308 multiplies the output from the calculation circuit 310 by the ratio parameter llr.sub.scale, and outputs the product to the addition circuit 310. The addition circuit 310 adds up the received signals to generate a calculation result of equation (6) to realize the logarithm calculation function.
[0026]
[0027] Further, equation (6) may be re-written as:
[0028] Wherein C1=llr.sub.scale*o1, C2=llr.sub.scale*o2, and
[0029] In equation (7), the ratio parameter llr.sub.scale is integrated into the calculation of max(0,o1−m1*d,o2−m2*d). Known from equation (7), by modifying the constant terms and variables of straight line functions for approximating the parameter of 14 +e .sup.d), the logarithm calculation can be further simplified.
[0030]
[0031] According to different applications and design concepts, one person ordinary skilled in the art can make appropriate variations and modifications based on the above embodiments. For example, the decoding modules 30 and 50 may be applied to any operation device needing to implement the logarithm calculation function (e.g., calculating a posterior probability) instead of being applied to only turbo code decoders.
[0032] In one embodiment, the straight lines L1 to L3 for approximating ln(1+e.sup.−d) may be altered to multiple-power functions (e.g., an n.sup.th degree polynomial function, where n is greater or equal to 1). Coefficients of the multiple-power function may be obtained by, for example but not limited to, polynomial fitting calculation. In this embodiment, the arithmetic circuit 302 in
[0033] Further, the number of straight lines used for approximating ln(1+e.sup.−d) may be appropriately adjusted. In one embodiment, the number of straight lines used for approximating ln(1+e.sup.−d) may be changed from 3 to 4 (as the straight lines L1 to L3 in
ln(e.sup.A+e.sup.B)=max(A, B)+llr.sub.scale*max(0,o1−m1*d,o2−m2*d,o3−m3*d) (8)
[0034] In equation (8), (−m1), (−m2) and (−m3) are slopes of the straight lines L2 to L4, respective, o1 to o3 are constant terms of the straight lines L2 to L4, respectively, and L1 is a straight line of Y=0.
[0035]
[0036] In conclusion, by approximating a logarithm curve using a plurality of straight lines, the decoding device of the embodiments implements the logarithm calculation function with a simple hardware structure, thereby significantly reducing hardware costs and operation costs.
[0037] While the invention has been described by way of example and in terms of the preferred embodiments, it is to be understood that the invention is not limited thereto. On the contrary, it is intended to cover various modifications and similar arrangements and procedures, and the scope of the appended claims therefore should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements and procedures.