Fast fourier transform apparatus and method
First Claim
1. An apparatus for providing a Fast Fourier Transform to convert a signal between time and frequency domains comprising:
- a radix-N core, the radix-N core including;
at least N multipliers;
a twiddle-factor lookup table storing complex twiddle factors, the twiddle-factor lookup table coupled to one input of each one of the multipliers;
a conversion random access memory storing transform points, the conversion random access memory coupled to another input of each one of the multipliers;
an array of at least N-times-N adder-subtractor-accumulators;
a set of holding latches that hold both a real and imaginary portion respectively of a first transform point, and wherein a fetch of a real portion of a first twiddle factor from the twiddle-factor lookup table is interleaved in time with a fetch of an imaginary portion of the first twiddle factor, and two substantially simultaneous first and second multiply operations take place in the N multipliers to multiply the real portion of first twiddle factor by the real and imaginary portion respectively of the first transform point, and two substantially simultaneous third and fourth multiply operations take place in the N multipliers to multiply the imaginary portion of the first twiddle factor by the real and imaginary portion respectively of the first transform point.
3 Assignments
0 Petitions
Accused Products
Abstract
A apparatus for providing a Fast Fourier Transform (FFT) and an inverse FFT is provided. The apparatus comprises a radix-N core. The radix-N core includes at least N multipliers. The radix-N core also includes a twiddle-factor lookup table that stores complex twiddle-factors. The twiddle-factor lookup table is coupled to one input of each of the multipliers. The radix-N core also includes a conversion random access memory (RAM) that stores transform points. The conversion RAM is coupled to another input of each of the multipliers. The radix-N core also includes an array of at least N-times-N adder-subtracter-accumulators.
-
Citations
11 Claims
-
1. An apparatus for providing a Fast Fourier Transform to convert a signal between time and frequency domains comprising:
-
a radix-N core, the radix-N core including;
at least N multipliers;
a twiddle-factor lookup table storing complex twiddle factors, the twiddle-factor lookup table coupled to one input of each one of the multipliers;
a conversion random access memory storing transform points, the conversion random access memory coupled to another input of each one of the multipliers;
an array of at least N-times-N adder-subtractor-accumulators;
a set of holding latches that hold both a real and imaginary portion respectively of a first transform point, and wherein a fetch of a real portion of a first twiddle factor from the twiddle-factor lookup table is interleaved in time with a fetch of an imaginary portion of the first twiddle factor, and two substantially simultaneous first and second multiply operations take place in the N multipliers to multiply the real portion of first twiddle factor by the real and imaginary portion respectively of the first transform point, and two substantially simultaneous third and fourth multiply operations take place in the N multipliers to multiply the imaginary portion of the first twiddle factor by the real and imaginary portion respectively of the first transform point. - View Dependent Claims (2, 3, 4, 5)
the at least N multipliers include at least 2×
N multipliers;
the array of at least N-times-N adder-subtractor-accumulators are used to accumulate real portions of results, and further comprising an array of at least N-times-N adder-subtractor-accumulators that are used to accumulate imaginary portions of the results.
-
-
3. The apparatus according to claim 2, wherein:
at least some of the adder-subtractor-accumulators have at least four operand inputs.
-
4. The apparatus according to claim 1, wherein:
-
the at least N multipliers include at least 2×
N multipliers;
the array of at least N-times-N adder-subtractor-accumulators are used to accumulate real portions of results, and further comprising an array of at least N-times-N adder-subtractor-accumulators that are used to accumulate imaginary portions of the results.
-
-
5. The apparatus according to claim 4, wherein:
at least some of the adder-subtractor-accumulators have at least four operand inputs.
-
6. An apparatus for providing a Fast Fourier Transform to convert a signal between time and frequency domains comprising:
-
a radix-4 butterfly core, the radix-4 butterfly core including;
at least eight multipliers;
a twiddle-factor lookup table storing complex twiddle factors, the twiddle-factor lookup table coupled to one input of each one of the multipliers;
a conversion random access memory storing transform points, the conversion random access memory coupled to another input of each one of the multipliers;
an array of at least thirty-two adder-subtractor-accumulators coupled to outputs of the multipliers, each adder-subtractor-accumulator capable of performing at least a five-way addition/subtraction operation;
a sequencer coupled to the twiddle-factor lookup table, to the conversion random access memory, and to the adder-subtractor-accumulators in order to control normal and transposed butterfly operations;
a set of holding latches that hold both a real and imaginary portion respectively of a first, second, third and fourth transform point, and wherein a fetch of real portions of a first, second, third and fourth twiddle factors from the twiddle-factor lookup table is interleaved in time with a fetch of imaginary portions of the first, second, third and fourth twiddle factors, and eight substantially simultaneous first, second, third, fourth, fifth, sixth, seventh and eighth multiply operations take place in the eight multipliers to multiply the real portion of the first twiddle factor by the real and imaginary portion respectively of the first transform point, the real portion of the second twiddle factor by the real and imaginary portion respectively of the second transform point, the real portion of the third twiddle factor by the real and imaginary portion respectively of the third transform point, and the real portion of the fourth twiddle factor by the real and imaginary portion respectively of the fourth transform point, and eight substantially simultaneous ninth, tenth, eleventh, twelfth, thirteenth, fourteenth, fifteenth and sixteenth multiply operations take place in the eight multipliers to multiply the imaginary portion of the first twiddle factor by the real and imaginary portion respectively of the first transform point, the imaginary portion of the second twiddle factor by the real and imaginary portion respectively of the second transform point, the imaginary portion of the third twiddle factor by the real and imaginary portion respectively of the third transform point, and the imaginary portion of the fourth twiddle factor by the real and imaginary portion respectively of the fourth transform point. - View Dependent Claims (7, 8, 9, 10)
at least sixteen of the at least thirty-two adder-subtractor-accumulators are used to accumulate real portions of results, and at least sixteen of the at least thirty-two adder-subtractor-accumulators are used to accumulate imaginary portions of the results.
-
-
8. The apparatus according to claim 7, wherein:
at least some of the adder-subtractor-accumulators have at least four operand inputs.
-
9. The apparatus according to claim 6, wherein:
-
at least sixteen of the at least thirty-two adder-subtractor-accumulators are used to accumulate real portions of results, and at least sixteen of the at least thirty-two adder-subtractor-accumulators are used to accumulate imaginary portions of the results.
-
-
10. The apparatus according to claim 9, wherein:
at least some of the adder-subtractor-accumulators have at least four operand inputs.
-
11. A method for providing a Fast Fourier Transform to convert a signal between time and frequency domains comprising the steps of:
-
fetching substantially simultaneously both the real and imaginary portions of at least a first and second transform point;
fetching substantially simultaneously the real portions of at least a first and second twiddle factor, sequential with fetching substantially simultaneously the imaginary portions of at least the first and second twiddle factor;
multiplying substantially simultaneously the real portions of at least a first and second twiddle factor by the real and imaginary portions of at least a first and second transform point to generate a first, second, third and fourth product, sequential with multiplying substantially simultaneously the imaginary portions of at least the first and second twiddle factor by the real and imaginary portions of at least a first and second transform point to generate a fifth, sixth, seventh and eighth product;
holding in latches the real and imaginary portions of the at least a first and second transform point so that the real and imaginary portions of the at least a first and second transform point can be used in both of said multiplying steps;
accumulating the first, second, third and fourth products into four separate values;
accumulating the fifth, sixth, seventh and eighth products with the four separate values;
accumulating the first, second, third and fourth products into two separate values;
accumulating the fifth, sixth, seventh and eighth products with the two separate values;
during a first pass;
accumulating the first, second, third and fourth products into two separate values; and
accumulating the fifth, sixth, seventh and eighth products with the two separate values; and
during a second pass;
accumulating the first, second, third and fourth products into four separate values; and
accumulating the fifth, sixth, seventh and eighth products with the four separate values.
-
Specification