Claims
- 1. A method for computing the function log(ex1+ex2) or ln(ex1+ex2) for a first argument value x1 and a second argument value x2, comprising:
generating a table, comprising:
generating a first data field including a plurality of table index values being selected from a predefined range of |x1−x2| argument values; scaling said table index values by a first scaling factor; generating a second data field including a plurality of computed table values computed based on the equation log(1+e−|x1-x2|) or ln(1+e−|x1-x2|) for each of said |x1-x2| argument values selected for said table index values; and scaling said computed table values by said first scaling factor.
- 2. The method of claim 1, wherein said first argument value x1 and said second argument value x2 are not scaled by said first scaling factor.
- 3. The method of claim 2, further comprising:
computing an index value z=|x1-x2|; comparing said index value z to said plurality of table index values in said first data field of said table; determining a first one of said plurality of table index values to which said index value z corresponds; obtaining a first computed table value from said plurality of computed table values in said second data field of said table associated with said first one of said plurality of table index values; determining a greater of said first argument value x1 and said second argument value x2; and adding said first computed table value to said greater of said first argument value x1 and said second argument value x2.
- 4. A circuit for computing the function log(ex1+ex2) or ln(ex1+ex2) for a first argument value x1 and a second argument value x2, said circuit comprising:
a table storing a first data field including a plurality of table index values and a second data field including a plurality of computed table values corresponding to said plurality of table index values;
wherein said plurality of table index values are selected from a predefined range of |x1-x2| argument values and scaled by a first scaling factor; and said plurality of computed table values are computed based on the equation log(1+e−|x1-x2|) or ln(1+e−x1-x2|) for each of said |x1-x2| argument values selected for said table index values, and scaled by said first scaling factor.
- 5. The circuit of claim 4, wherein said first argument value x1 and a second argument value x2 are not scaled by said first scaling factor.
- 6. The circuit of claim 5, wherein said circuit computes the function log(ex1+ex2) or ln(ex1+ex2) for an index value z=|x1-x2|by comparing said index value z to said plurality of table index values in said first data field of said table, determining a first one of said plurality of table index values to which said index value z corresponds, obtaining a first computed table value from said plurality of computed table values in said second data field associated with said first one of said plurality of table index values, and adding said first computed table value to the greater of said first argument value x1 and said second argument value x2.
- 7. A circuit for decoding input data, comprising:
a decoder implementing the maximum a posteriori probability decoding algorithm, said decoder using a table for computing the function log(ex1+ex2) or ln(ex1+ex2 )where x1 and x2 are first and second argument values, each derived from said input data, said table storing a first data field including a plurality of table index values and a second data field including a plurality of computed table values corresponding to said plurality of table index values;
wherein said plurality of table index values are selected from a predefined range of |x1-x2| argument values and scaled by a first scaling factor; and said plurality of computed table values are computed based on the equation log(1+e−|x1-x2|) or ln(1+e−|x1-x2|) for each of said |x1-x2| argument values selected for said table index values, and scaled by said first scaling factor.
- 8. The circuit of claim 7, wherein said first argument value x1 and said second argument value x2 are not scaled by said first scaling factor.
- 9. The circuit of claim 7 wherein said decoder computes the function log(ex1+ex2) or ln(ex1+ex2) for an index value z=|x1-x2| by obtaining a first computed value from said plurality of computed table values in said second data field of said table associated with a first table index value of said plurality of table index values in said first data field corresponding to said index value z, and adding said first computed table value to the greater of said first argument value x1 and said second argument value x2.
- 10. The circuit of claim 7 wherein said decoder computes the function log(ex1+ex2) or ln(ex1+ex2) for an index value z=|x1-x2| by comparing said index value z to said plurality of table index values in said first data field of said table, determining a first one of said plurality of table index values to which said index value z corresponds, obtaining a first computed table value from said plurality of computed table values in said second data field associated with said first one of said plurality of table index values, and adding said first computed table value to the greater of said first argument value x1 and said second argument value x2.
- 11. The circuit of claim 7 wherein said table is stored in a memory unit in said decoder.
- 12. The circuit of claim 7 wherein said table is stored in a logic circuit in said decoder.
- 13. The circuit of claim 7 wherein said plurality of table index values are selected at regular intervals within said predefined range of |x1-x2| argument values.
- 14. The circuit of claim 7 wherein said table has at most eight entries of said plurality of table index values and said plurality of computed table values.
- 15. The circuit of claim 7 wherein said first scaling factor is the noise variance of said input data.
- 16. The circuit of claim 15 wherein each of said plurality of table index values and each of said plurality of computed table values are multiplied by said noise variance.
- 17. The circuit of claim 7 wherein said input data is quantized and said first scaling factor is a quantizer level value indicative of the first quantizer output level.
- 18. The circuit of claim 17 wherein each of said plurality of table index values and each of said plurality of computed table values are divided by said quantizer level value.
- 19. The circuit of claim 17, wherein said table further comprises a second scaling factor being a value for dynamic range and precision adjustment, and each of said plurality of table index values and each of said plurality of computed table values are scaled by said first and second scaling factor while said input data are scaled by said second scaling factor only.
- 20. The circuit of claim 19 wherein each of said plurality of table index values and each of said plurality of computed table values are multiplied by said second scaling factor.
- 21. The circuit of claim 7 wherein said table further comprises a second scaling factor and said plurality of table index values and said plurality of computed table values are scaled by said first and second scaling factors.
- 22. The circuit of claim 7 wherein said decoder implements the Log-MAP decoding algorithm.
- 23. The circuit of claim 7 wherein said input data is punctured and said decoder comprises a depuncturing circuit for depuncturing said input data.
- 24. A method in a decoder applying the maximum a-posteriori probability algorithm for computing the function log(ex1+ex2) or ln(ex1+ex2) for a first argument value x1 and a second argument value x2, comprising:
generating a table, comprising:
generating a first data field including a plurality of table index values being selected from a predefined range of |x1-x2| argument values; scaling said table index values by a first scaling factor; generating a second data field including a plurality of computed table values computed based on the equation log(1+e−|x1-x2|) or ln(1+e−|x1-x2|) for each of said |x1-x2| argument values selected for said table index values; and scaling said computed table values by said first scaling factor.
- 25. The method of claim 24, wherein said first argument value x1 and said second argument value x2 are not scaled by said first scaling factor.
- 26. The method of claim 24, further comprising:
computing an index value z=|x1-x2|; obtaining a first computed table value from said plurality of computed table values in said second data field of said table associated with a first table index value of said plurality of said table index values in said first data field corresponding to said index value z; determining a greater of said first argument value x1 and said second argument value x2; and adding said first computed table value to said greater of said first argument value x1 and said second argument value x2.
- 27. The method of claim 24, further comprising:
computing an index value z=|x1-x2|; comparing said index value z to said plurality of table index values in said first data field of said table; determining a first one of said plurality of table index values to which said index value z corresponds; obtaining a first computed table value from said plurality of computed table values in said second data field of said table associated with said first one of said plurality of table index values; determining a greater of said first argument value x1 and said second argument value x2; and adding said first computed table value to said greater of said first argument value x1 and said second argument value x2.
- 28. The method of claim 24, further comprising:
storing said table in a memory unit in said decoder.
- 29. The method of claim 24, further comprising:
storing said table in a logic circuit in said decoder.
- 30. The method of claim 24, wherein said plurality of table index values are selected at regular intervals within said predefined range of |x1-x2| argument values.
- 31. The method of claim 24, wherein said first scaling factor is the noise variance of input data being decoded by said decoder.
- 32. The method of claim 31, wherein said scaling of said table index values and said scaling of said computed table values comprise:
multiplying said table index values by said first scaling factor; and multiplying said computed table values by said first scaling factor.
- 33. The method of claim 24, wherein said first scaling factor is a quantizer level value indicative of the first quantizer output level of input data being decoded by said decoder.
- 34. The method of claim 33, wherein said scaling of said table index values and said scaling of said computed table values comprise:
dividing said table index values by said first scaling factor; and dividing said computed table values by said first scaling factor.
- 35. The method of claim 33, further comprising:
scaling said table index values by a second scaling factor, said second factor being a value for dynamic range and precision adjustment; scaling said computed table values by said second scaling factor; scaling said first argument value x1 and said second argument value x2 by said second scaling factor only.
- 36. The method of claim 35, wherein said scaling of said table index values and said scaling of said computed table values comprise:
multiplying said table index values by said second scaling factor; and multiplying said computed table values by said second scaling factor.
- 37. The method of claim 24, wherein said scaling of said table index values and said scaling of said computed table values further comprise scaling by a second scaling factor.
- 38. The method of claim 24, wherein said decoder implements the Log-MAP decoding algorithm.
- 39. A circuit for decoding a frame of input data, comprising:
a decoder implementing the maximum a posteriori probability decoding algorithm, said decoder having an input terminal coupled to receive said frame of input data, a bit probabilities output terminal, and a bit decision output terminal, said decoder using a table for computing the function log(ex1+ex2) or ln(ex1+ex2) where x1 and x2 are first and second argument values, each derived from said input data, said table storing a first data field including a plurality of table index values and a second data field including a plurality of computed table values corresponding to said plurality of table index values; wherein said plurality of table index values are selected from a predefined range of |x1-x2| argument values and scaled by a first scaling factor; and said plurality of computed table values are computed based on the equation log(1+e−|x1-x2|) or ln(1+e−|x1-x2|) for each of said |x1-x2| argument values selected for said table index values, and scaled by said first scaling factor; an interleaver for interleaving a posteriori information computed in said decoder; a deinterleaver for deinterleaving a posteriori information computed in said decoder; and a switch for selectively connecting said bit probabilities output terminal of said decoder to said interleaver or said deinterleaver.
- 40. The circuit of claim 39, wherein said input data are not scaled by said first scaling factor.
- 41. The circuit of claim 39, wherein said first scaling factor is the noise variance of said input data.
- 42. A receiver for receiving a data stream being transmitted over a channel, said receiver comprising:
a turbo decoder coupled to receive said data stream from said demodulator, said turbo decoder comprising:
a decoder implementing the maximum a posteriori probability decoding algorithm, said decoder using a table for computing the function log(ex1+ex 2) or ln(ex1+ex2) where x1 and x2 are first and second argument values, each derived from said data stream, said table storing a first data field including a plurality of table index values and a second data field including a plurality of computed table values corresponding to said plurality of table index values; wherein said plurality of table index values are selected from a predefined range of |x1-x2| argument values and scaled by a first scaling factor; and said plurality of computed table values are computed based on the equation log(1+e−|x1-x2|) or ln(1+e−|x1-x2|) for each of said |x1-x2| argument values selected for said table index values, and scaled by said first scaling factor.
- 43. The circuit of claim 42 wherein said decoder computes the function log(ex1+ex2) or ln(ex1+ex2) for an index value z=x1-x2| by comparing said index value z to said plurality of table index values in said first data field of said table, determining a first one of said plurality of table index values to which said index value z corresponds, obtaining a first computed table value from said plurality of computed table values in said second data field associated with said first one of said plurality of table index values, and adding said first computed table value to the greater of said first argument value x1 and said second argument value x2.
- 44. The circuit of claim 42 wherein said table is stored in a memory unit in said decoder.
- 45. The circuit of claim 42 further comprising a demodulator for demodulating said data stream.
- 46. A method for computing the function log(ex1+ex2) or ln(ex1+ex2) for a first argument value x1 and a second argument value x2, comprising:
generating a table, comprising:
generating a first data field including a plurality of table index values being selected from a predefined range of |x1-x2| argument values; scaling said table index values by a first scaling factor; generating a second data field including a plurality of computed table values computed based on the equation log(1+e−|x1-x2|) or ln(1+e−|x1-x2|) for each of said |x1-x2| argument values selected for said table index values; scaling said computed table values by said first scaling factor; computing an index value z=|x1-x2|; comparing said index value z to said plurality of table index values in said first data field of said table; determining a first one of said plurality of table index values to which said index value z corresponds; obtaining a first computed table value from said plurality of computed table values in said second data field of said table associated with said first one of said plurality of table index values; determining a greater of said first argument value x1 and said second argument value x2; and adding said first computed table value to said greater of said first argument value x1 and said second argument value x2.
- 47. A circuit for computing the function log(ex1+ex2) or ln(ex1+ex2) for a first argument value x1 and a second argument value x2, said circuit comprising:
a table storing a first data field including a plurality of table index values and a second data field including a plurality of computed table values corresponding to said plurality of table index values; wherein said plurality of table index values are selected from a predefined range of |x1-x2| argument values and scaled by a first scaling factor; and said plurality of computed table values are computed based on the equation log(1+e−|x1-x2|) or ln(1+e−|x1-x2|) for each of said |x1-x2| argument values selected for said table index values, and scaled by said first scaling factor; and wherein said circuit computes the function log(ex1+ex2) or ln(ex1+ex2) for an index value z=|x1−x2| by comparing said index value z to said plurality of table index values in said first data field of said table, determining a first one of said plurality of table index values to which said index value z corresponds, obtaining a first computed table value from said plurality of computed table values in said second data field associated with said first one of said plurality of table index values, and adding said first computed table value to the greater of said first argument value x1 and said second argument value x2.
- 48. A circuit for decoding input data, comprising:
a decoder implementing the maximum a posteriori probability decoding algorithm, said decoder using a table for computing the function log(ex1+ex2) or ln(ex1+ex2)where x1 and x2 are first and second argument values, each derived from said input data, said table storing a first data field including a plurality of table index values and a second data field including a plurality of computed table values corresponding to said plurality of table index values; wherein said plurality of table index values are selected from a predefined range of |x1-x2| argument values and scaled by a first scaling factor; and said plurality of computed table values are computed based on the equation log(1+e−|x1-x2|) or ln(1+e−|x1-x2|) for each of said |x1-x2| argument values selected for said table index values, and scaled by said first scaling factor; and wherein said decoder computes the function log(ex1+ex2) or ln(ex1+ex2) for an index value z=|x1−x2| by obtaining a first computed value from said plurality of computed table values in said second data field of said table associated with a first table index value of said plurality of table index values in said first data field corresponding to said index value z, and adding said first computed table value to the greater of said first argument value x1 and said second argument value x2.
- 49. A method in a decoder applying the maximum a-posteriori probability algorithm for computing the function log(ex1+ex2) or ln(ex1+ex2) for a first argument value x1 and a second argument value x2, comprising:
generating a table, comprising:
generating a first data field including a plurality of table index values being selected from a predefined range of |x1-x2| argument values; scaling said table index values by a first scaling factor; generating a second data field including a plurality of computed table values computed based on the equation log(1+e−|x1-x2|) or ln(1+e−|x1-x2|) for each of said |x1-x2| argument values selected for said table index values; scaling said computed table values by said first scaling factor; computing an index value z=|x1-x2|; obtaining a first computed table value from said plurality of computed table values in said second data field of said table associated with a first table index value of said plurality of said table index values in said first data field corresponding to said index value z; determining a greater of said first argument value x1 and said second argument value x2; and adding said first computed table value to said greater of said first argument value x1 and said second argument value x2.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] The present application is related to concurrently filed U.S. patent application Ser. No.: xx/xxx,xxx (Attorney Docket No. M-8832 US), entitled “Look-Up Table Addressing Scheme” of Yuan et al.; concurrently filed U.S. patent application Ser. No.: xx/xxx,xxx (Attorney Docket No. M-8833 US), entitled “Look-up Table Index Value Generation in a Turbo Decoder” of Zhang et al.; and concurrently filed U.S. patent application Ser. No.: xx/xxx,xxx (Attorney Docket No. M-8928 US), entitled “A Stop Iteration Criterion for Turbo Decoding” of Yuan et al. The applications referenced herein and the present application are commonly assigned and have at least one common inventor.