Claims
- 1. A machine used in a digital filter, comprising:
a. means for computing a set of products of a first number, said set of products having at least two members b. means for storing said set of products in a look-up table c. means for accessing said look-up table to provide a first member of said set of products d. means for computing a first product equal to the product of said first number and a first filter coefficient, said first means using said first member of said set of products e. means for accessing said look-up table to provide a second member of said set of products f. means for computing a second product equal to the product of said first number and a second filter coefficient, said second means using said second member of said set of products whereby computation of said first product and computation of said second product both use members of said set of products from said look-up table, so that computational results are shared and multiplier implementation cost can be reduced.
- 2. The machine of claim 1, further including:
a. means for computing a first output of said digital filter using said first product b. means for computing a second output of said digital filter using said second product, said second output not being the same output as said first output whereby said set of products stored in said look-up table can be used in computing outputs of said digital filter at more than one index value, even though the coefficients of the filter may change from index value to index value.
- 3. The machine of claim 1 in which:
a. said first filter coefficient is a constant coefficient b. said second filter coefficient is a constant coefficient c. said set of products does not contain a subset of products from which the product of the first number and every coefficient value can be computed d. said set of products does contain a subset of products from which the product of the first number and every allowed coefficient can be computed whereby said look-up table can be small in size and yet still contain the products necessary for computing said first product, said second product, and products of said first number and other coefficients of said digital filter.
- 4. The machine of claim 1, in which said first filter coefficient is not a constant coefficient, further including means for using said first product in computing a first output of said digital filter, whereby said look-up table can be used for shared multiplication and implementation cost reduction in computing outputs of adaptive filters.
- 5. The machine of claim 1, further including means to adapt parameter values of said digital filter, said means using said first product and said second product, said first product and said second product not being the same product, whereby said look-up table can be used for shared multiplication and corresponding implementation cost reduction in adaptive filters which use adaptation techniques such as least-mean-square (LMS) techniques, recursive least-square (RLS) techniques, fast RLS techniques, and Kalman techniques, among others.
- 6. The machine of claim 1, further including:
a. means for computing a first output of said digital filter using said first product b. means for adapting parameter values of said digital filter using said second product whereby said set of products stored in said look-up table can be used in computing an output of said digital filter and also in adaptive filters which use adaptation techniques such as least-mean-square (LMS) techniques, recursive least-square (RLS) techniques, fast RLS techniques, and Kalman techniques, among others.
- 7. The machine of claim 1 in which:
a. said means for computing said set of products produces a first member of said set of products b. said means for computing said set of products produces a second member of said set of products using said first member whereby said means of computing said set of products for said look-up table can use shared multiplication in order to reduce implementation costs.
- 8. The machine of claim 1 in which:
a. said means for computing said set of products produces a first member of said set of products and a first intermediate term b. said means for computing said set of products produces a second member of said set of products using said first intermediate term c. said first intermediate term is not stored in said look-up table whereby said means of computing said set of products for said look-up table can use shared multiplication in the form of shared intermediate terms in order to reduce implementation costs.
- 9. The machine of claim 1 in which:
a. said first number is a member of a strict subset of the values supported by the finite-precision numeric format of said first number, such as a number representing an input symbol from an input symbol constellation b. said means for computing said set of products of said first number cannot compute the corresponding set of products for an arbitrary number representation in the finite-precision numeric format of said first number whereby said means for computing said set of products can exploit known relationships among the possible values of said first number to compute said set of products of said first number with reduced cost.
- 10. The machine of claim 1 further including:
a. means for computing a set of products of a second number, said set of products having at least two members b. means for storing said set of products of said second number in said lookup table in place of said set of products of said first number whereby the memory locations of said look-up table can contain said set of products of said first number when said set of products of said first number is needed, and whereby the memory locations of said look-up table can contain said set of products of said second number when said set of products of said first number is no longer needed.
- 11. A method used in digital filtering, comprising:
a. computing a set of products of a first number, said set of products having at least two members b. storing said set of products in a look-up table c. accessing said look-up table to provide a first member of said set of products d. computing a first product equal to the product of said first number and a first filter coefficient, using said first member of said set of products e. accessing said look-up table to provide a second member of said set of products f. computing a second product equal to the product of said first number and a second filter coefficient, using said second member of said set of products whereby the computation method for said first product and the computation method for said second product both use members of said set of products from said look-up table, so that computational results are shared and multiplication implementation cost can be reduced.
- 12. The method of claim 11, further including:
a. computing a first output of said digital filter using said first product b. computing a second output of said digital filter using said second product, said second output not being the same output as said first output whereby said set of products stored in said look-up table can be used in computing outputs of said digital filter at more than one index value, even though the coefficients of the filter may change from index value to index value.
- 13. The method of claim 11 in which:
a. said first filter coefficient is a constant coefficient b. said second filter coefficient is a constant coefficient c. said set of products does not contain a subset of products from which the product of the first number and e very coefficient value can be computed d. said set of products does contain a subset of products from which the product of the first number and every allowed coefficient can be computed whereby said look-up table can be small in size and yet still contain the products necessary for computing said first product, said second product, and products of said first number and other coefficients of said digital filter.
- 14. The method of claim 11, in which said first filter coefficient is not a constant coefficient, further including computing a first output of said digital filter using said first product, whereby said look-up table can be used for shared multiplication and implementation cost reduction in computing outputs of adaptive filters.
- 15. The method of claim 11, further including adapting of parameter values of said digital filter, said adapting using said first product and said second product, said first product and said second product not being the same product, whereby said look-up table can be used for shared multiplication and corresponding implementation cost reduction in adaptive filters which use adaptation techniques such as least-mean-square (LMS) techniques, recursive least-square (RLS) techniques, fast RLS techniques, and Kalman techniques, among others.
- 16. The method of claim 11, further including:
a. computing a first output of said digital filter using said first product b. adapting of parameter values of said digital filter using said second product whereby said set of products stored in said look-up table can be used in computing an output of said digital filter and also in adaptive filters which use adaptation techniques such as least-mean-square (LMS) techniques, recursive least-square (RLS) techniques, fast RLS techniques, and Kalman techniques, among others.
- 17. The method of claim 11 in which:
a. said computing of said set of products produces a first member of said set of products b. said computing said set of products produces a second member of said set of products using said first member whereby said computing of said set of products for said look-up table can use shared multiplication in order to reduce implementation costs.
- 18. The method of claim 11 in which:
a. said computing of said set of products produces a first member of said set of products and a first intermediate term b. said computing of said set of products produces a second member of said set of products using said first intermediate term whereby said computing of said set of products for said look-up table can use shared multiplication in the form of shared intermediate terms in order to reduce implementation costs.
- 19. The method of claim 11 in which:
a. said first number is a member of a strict subset of the values supported by the finite-precision numeric format of said first number, such as a number representing an input symbol from an input symbol constellation b. the method of said computing of said set of products of said first number cannot be used to compute the corresponding set of products for an arbitrary number representation in the finite-precision numeric format of said first number whereby the method of said computing of said set of products can exploit known relationships among the possible values of said first number to compute said set of products of said first number with reduced cost.
- 20. The method of claim 11 further including:
a. computing a set of products of a second number, said set of products having at least two members b. storing said set of products of said second number in said look-up table in place of said set of products of said first number whereby the memory locations of said look-up table can contain said set of products of said first number when said set of products of said first number is needed, and whereby the memory locations of said look-up table can contain said set of products of said second number when said set of products of said first number is no longer needed.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The invention is related to U.S. PTO application Ser. No. 09/976,920 with filing date Oct. 15, 2001 and entitled SHARED MULTIPLICATION IN SIGNAL PROCESSING TRANSFORMS, submitted as a separate application by Charles D. Murphy.