Claims
- 1. In a system for computing a fast Fourier transform having a data memory for storing data values and a coefficient memory for storing coefficient values, a circuit for addressing the data memory comprising:
a multiplexer having an output for addressing the data memory, a first input of the multiplexer defining a data memory read address and a second input of the multiplexer defining a data memory write address; and a write FIFO disposed in communication with the second input of the multiplexer, the write FIFO having an input that is connected to the first input of the multiplexer.
- 2. The circuit as defined in claim 1, wherein the write FIFO is a four-deep FIFO, configured to store four addresses, before delivering the first stored address to the second input of the multiplexer.
- 3. The circuit as defined in claim 1, further including a pointer register that is configured to contain and output an address value for the data memory.
- 4. The circuit as defined in claim 3, further including a control circuit that is configured to load a value into the pointer register.
- 5. The circuit as defined in claim 4, further including a second multiplexer having an output that is in communication with an input of the pointer register, the second multiplexer having a first input that is in communication with the control circuit.
- 6. The circuit as defined in claim 5, further including a modulo adder having an output that is disposed in communication with a second input of the second multiplexer.
- 7. The circuit as defined in claim 6, further a step size register, having an input in communication with the control circuit and configured to store and output a data memory address step size.
- 8. The circuit as defined in claim 7, further including a carry adder disposed to add the output of the step size register and the output of the pointer register, the carry adder having an output disposed in communication with the input of the modulo adder.
- 9. The circuit as defined in claim 8, further including an exclusive OR circuit having two sets of inputs, the first set of inputs disposed to receive the output of the pointer register and the second set of inputs disposed to receive the output of the step size register.
- 10. The circuit as defined in claim 9, wherein the exclusive OR circuit further has a set of outputs electrically connected to the input of the write FIFO and the first input of the multiplexer.
- 11. The circuit as defined in claim 4, wherein the control circuit includes a processor for executing instructions.
- 12. A method for computing a fast Fourier transform of a series of data values comprising the steps of:
(a) computing all complex butterfly operations in a first stage of computation; (b) computing a first complex butterfly operation in a next stage of computation, wherein the first complex butterfly operation includes a twiddle factor having a first value; (c) computing all remaining complex butterfly operations in the said next stage of computation having twiddle factors equal to the first value, skipping intervening butterfly computations having values different than the first value; (d) computing a previously uncomputed next complex butterfly operation in the said next state of computation, wherein the said next complex butterfly operation includes a twiddle factor having a second value, said second value being different than the first value; and (e) computing all remaining complex butterfly operations in the said next stage of computation having twiddle factors equal to the second value, skipping intervening butterfly computations having values different than the second value.
- 13. The method as defined in claim 12, further including the step of: (f) repeating steps (d) and (e) until all complex butterfly operations in the said next stage of computations have been computed.
- 14. The method as defined in claim 13, further including the step of: (g) repeating steps (b) through (f) until all stages of computations have been computed.
- 15. The method as defined in claim 12, wherein the steps of computing complex butterfly operations include the step reading two data values from two memory locations to use in the computation of the complex butterfly operation, and writing computed values back to the two memory locations, thereby overwriting the data values previously stored in those locations.
- 16. The method as defined in claim 12, wherein step (b) further includes the step of reading the twiddle value having a first value from a first address within a coefficient memory.
- 17. The method as defined in claim 12, wherein step (d) further includes the step of reading the twiddle value having a second value from a second address within the coefficient memory.
- 18. A method for computing a fast Fourier transform of a series of data values comprising the steps of:
computing all complex butterfly operations in a given stage of computations, before computing any of the complex butterfly operations in a subsequent stage; and computing all other complex butterfly operations in the given stage of computations having a twiddle factor equal to the first value before computing any other complex butterfly operations in the given stage of computations, after computing a first complex butterfly operation in a given stage of computations, wherein the first complex butterfly operation utilizes a twiddle factor having a first value.
- 19. In a system for computing a fast Fourier transform having a data memory for storing data values and a coefficient memory for storing coefficient values, a circuit for addressing the data memory comprising:
a read address generating circuit configured to point to addresses within the data memory for reading data values therefrom, the read address generating circuit having an output in communication with the data memory; a write address storage circuit configured to receive and store values from the output of the read address generating circuit, the write address storage circuit configured to point to address within the data memory for writing data values thereto; and a selector circuit having an output in direct communication with the data memory, the output of the selector circuit configured to select the address of the data memory for reading data therefrom and writing data thereto, the selector circuit having a first input in communication with the output of the read address generating circuit, the selector circuit further having a second input in communication with the output of the write address storage circuit.
- 20. The circuit as defined in claim 19, wherein the selector circuit includes a multiplexer.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] The present application claims the benefit of U.S. Provisional Patent Application Ser. No. 60/085,831, filed May 18, 1998, and entitled “FFT Implementation in the Frequency Domain.”
Provisional Applications (1)
|
Number |
Date |
Country |
|
60085831 |
May 1998 |
US |
Continuations (1)
|
Number |
Date |
Country |
Parent |
09311964 |
May 1999 |
US |
Child |
10198896 |
Jul 2002 |
US |