Claims
- 1. In a data processing system that executes a program of instructions, a method for performing a complex digital filter on a plurality of data samples and a set of complex coefficients comprising the computer implemented steps of:
A) for each corresponding relationship in a plurality of corresponding relationships between said complex coefficients in said set of complex coefficients and said data samples in said plurality of data samples, wherein each of said plurality of corresponding relationships is used in said complex digital filter, performing the steps of:
A1) for each complex coefficient in said set of complex coefficients, performing the steps of:
a) determining a corresponding data sample for said complex coefficient according to said corresponding relationship; b) receiving an instruction; c) in response to said instruction, performing the steps of:
c1) reading eight data elements stored as packed data, a first subset of said eight data elements including two representations of each of the components of said complex coefficient, a second subset of said eight data elements including two representations of each of the components of said corresponding data sample, wherein each representation of said components either represents the positive or negative of said component; and c2) generating a currently calculated complex number representing the product of said complex coefficient and corresponding data sample using said first and second subsets; d) adding the real component of said currently calculated complex number to a first data element of an accumulation packed data item for said corresponding relationship; and e) adding the imaginary component of said currently calculated complex number to a second data element of said accumulation packed data item for said corresponding relationship.
- 2. The method of claim 1, further comprising the computer implemented steps of:
f) shifting both said first data element and said second data element of said accumulation packed data item to the right by N bits in response to said step of adding the imaginary component.
- 3. The method of claim 1, wherein each of said eight data elements contains N bits, and the components of said currently calculated complex number are represented by 2N bits.
- 4. The method of claim 3, wherein each data element in said accumulation packed data item contains 2N bits.
- 5. The method of claim 1, wherein all of said eight data elements are positive.
- 6. The method of claim 1, wherein only a first data element in said eight data elements is negative.
- 7. The method of claim 6, wherein said first data element of said eight data elements represents either the real component or the imaginary component of said complex coefficient.
- 8. The method of claim 6, wherein said first data element of said eight data elements represents either the real component or the imaginary component of said corresponding data sample.
- 9. The method of claim 1, wherein said steps of adding are performed in response to a second instruction.
- 10. A machine-readable medium having stored thereon data representing sequences of instructions, said sequences of instructions which, when executed by a processor, cause said processor to perform a complex digital filter on a plurality of data samples and a set of complex coefficients by causing said processor to perform the computer implemented steps of:
A) for each corresponding relationship in a plurality of corresponding relationships between said complex coefficients in said set of complex coefficients and said data samples in said plurality of data samples, wherein each of said plurality of corresponding relationships is used in said complex digital filter, performing the steps of:
A1) for each complex coefficient in said set of complex coefficients, performing the steps of:
a) determining a corresponding data sample for said complex coefficient according to said corresponding relationship; b) receiving an instruction; c) in response to said instruction, performing the steps of:
c1) reading eight data elements stored as packed data, a first subset of said eight data elements including two representations of each of the components of said complex coefficient, a second subset of said eight data elements including two representations of each of the components of said corresponding data sample, wherein each representation of said components either represents the positive or negative of said component; and c2) generating a currently calculated complex number representing the product of said complex coefficient and corresponding data sample using said first and second subsets; d) adding the real component of said currently calculated complex number to a first data element of an accumulation packed data item for said corresponding relationship; and e) adding the imaginary component of said currently calculated complex number to a second data element of said accumulation packed data item for said corresponding relationship.
- 11. The machine-readable medium of claim 10, said sequences of instructions, when executed by said processor, cause said processor to perform the additional step of:
f) shifting both said first data element and said second data element of said accumulation packed data item to the right by N bits in response to said step of adding the imaginary component.
- 12. The machine-readable medium of claim 10, wherein each of said eight data elements contains N bits, and the components of said currently calculated complex number are represented by 2N bits.
- 13. The machine-readable medium of claim 12, wherein each data element in said accumulation packed data item contains 2N bits.
- 14. The machine-readable medium of claim 10, wherein all of said eight data elements are positive.
- 15. The machine-readable medium of claim 10, wherein only a first data element in said eight data elements is negative.
- 16. The machine-readable medium of claim 15, wherein said first data element of said eight data elements represents either the real component or the imaginary component of said complex coefficient.
- 17. The machine-readable medium of claim 15, wherein said first data element of said eight data elements represents either the real component or the imaginary component of said corresponding data sample.
- 18. The machine-readable medium of claim 10, wherein said steps of adding are performed in response to a second instruction.
- 19. In a data processing system that executes a program of instructions, a method for updating a set of complex coefficients used in a complex digital filter comprising the computer implemented steps of:
A) determining an error distance; B) determining a rate of convergence; C) for each complex coefficient in said set of complex coefficients, performing the steps of:
C1) determining a corresponding data sample for said complex coefficient; C2) receiving an instruction; C3) in response to said instruction, performing the steps of:
a) reading eight data elements stored as packed data, a first subset of said eight data elements including two representations of each of the components of said error distance, a second subset of said eight data elements including two representations of each of the components of said corresponding data sample, wherein each representation of said components either represents the positive or negative of said component; and b) generating a currently calculated complex number representing the product of said error distance and a complex conjugate of said corresponding data sample using said first and second subsets; C4) shifting to the right the real and imaginary components of said currently calculated complex number by said rate of convergence to generate a currently calculated complex factor; C5) subtracting the real component of said currently calculated complex factor from the real component of the complex coefficient; and C6) subtracting the imaginary component of said currently calculated complex factor from the imaginary component of the complex coefficient.
- 20. The method of claim 19, further comprising the step of:
storing said error distance as packed data having two data elements that are positive and that each represent the real component of said error distance, one data element that is positive and that represents the imaginary component of said error distance, and one data element that is negative and that represents the imaginary component of said error distance.
- 21. The method of claim 19, wherein each of said eight data elements contains N bits, and the components of said currently calculated complex number are represented by 2N bits.
- 22. The method of claim 19, wherein each complex coefficient in said set of complex coefficients is stored as packed data; wherein said step of generating said currently calculated complex number further comprises the step of storing said currently calculated complex number as packed data; wherein said step of shifting further comprises the step of storing said currently calculated complex factor as packed data; and wherein said steps of subtracting are perform simultaneously by subtracting data elements representing said currently calculated complex factor from corresponding data elements representing said complex coefficient.
- 23. The method of claim 19, wherein all of said eight data elements are positive.
- 24. The method of claim 19, wherein only a first data element in said eight data elements is negative.
- 25. The method of claim 19, wherein said step of shifting is performed in response to a second instruction.
- 26 The method of claim 19, wherein said steps of subtracting are performed in response to a second instruction.
- 27. A machine-readable medium having stored thereon data representing sequences of instructions, said sequences of instructions which, when executed by a processor, cause said processor to update a set of complex coefficients used in a complex digital filter by causing said processor to perform the computer implemented steps of:
A) determining an error distance; B) determining a rate of convergence; C) for each complex coefficient in said set of complex coefficients, performing the steps of:
C1) determining a corresponding data sample for said complex coefficient; C2) receiving an instruction; C3) in response to said instruction, performing the steps of:
a) reading eight data elements stored as packed data, a first subset of said eight data elements including two representations of each of the components of said error distance, a second subset of said eight data elements including two representations of each of the components of said corresponding data sample, wherein each representation of said components either represents the positive or negative of said component; and b) generating a currently calculated complex number representing the product of said error distance and a complex conjugate of said corresponding data sample using said first and second subsets; C4) shifting to the right the real and imaginary components of said currently calculated complex number by said rate of convergence to generate a currently calculated complex factor; C5) subtracting the real component of said currently calculated complex factor from the real component of the complex coefficient; and C6) subtracting the imaginary component of said currently calculated complex factor from the imaginary component of the complex coefficient.
- 28. The machine-readable medium of claim 27, said sequences of instructions, when executed by said processor, cause said processor to perform the additional step of:
storing said error distance as packed data having two data elements that are positive and that each represent the real component of said error distance, one data element that is positive and that represents the imaginary component of said error distance, and one data element that is negative and that represents the imaginary component of said error distance.
- 29. The machine-readable medium of claim 27, wherein each of said eight data elements contains N bits, and the components of said currently calculated complex number are represented by 2N bits.
- 30. The machine-readable medium of claim 27, and wherein each complex coefficient in said set of complex coefficients is stored as packed data; wherein said step of generating said currently calculated complex number further comprises the step of storing said currently calculated complex number as packed data; wherein said step of shifting further comprises the step of storing said currently calculated complex factor as packed data; and wherein said steps of subtracting are perform simultaneously by subtracting data elements representing said currently calculated complex factor from corresponding data elements representing said complex coefficient.
- 31. The machine-readable medium of claim 27, wherein all of said eight data elements are positive.
- 32. The machine-readable medium of claim 27, wherein only a first data element in said eight data elements is negative.
- 33. The machine-readable medium of claim 27, wherein said step of shifting is performed in response to a second instruction.
- 34. The machine-readable medium of claim 27, wherein said steps of subtracting are performed in response to a second instruction.
Parent Case Info
[0001] This is a continuation-in-part of application Ser. No. 08/523,386, filed on Sep. 5, 1995, that is currently pending.
Divisions (1)
|
Number |
Date |
Country |
Parent |
08905506 |
Jul 1997 |
US |
Child |
09760969 |
Jan 2001 |
US |
Continuations (1)
|
Number |
Date |
Country |
Parent |
09760969 |
Jan 2001 |
US |
Child |
10211203 |
Aug 2002 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
08523386 |
Sep 1995 |
US |
Child |
08905506 |
Jul 1997 |
US |