Optimized FFT/IFFT module
First Claim
1. A system to perform Fast Fourier Transform (FFT) and Inverse Fast Fourier Transform (IFFT) operations, the system comprising:
- a first module to receive a plurality of inputs, said plurality of inputs being combined after first multiplicands are applied to each corresponding input;
a first multiplicand generator to provide said first multiplicands to said first module;
a first multiplier module to receive an output of said first module;
a second multiplicand generator to provide a second multiplicand to said first multiplier module, said second multiplicand being applied to said output of said first module by said first multiplier module;
a second multiplier module to receive an output of said first multiplier module;
a third multiplicand generator to provide a third multiplicand to said second multiplier module, said third multiplicand being applied to said output of said first multiplier module by said second multiplier module;
a third multiplier module to receive said output of said first multiplier module, said third multiplier module being configured to generate first and second outputs;
a fourth multiplicand generator to provide a fourth multiplicand to said third multiplier module, said fourth multiplicand being applied to said output of said first multiplier module by said third multiplier module to generate said first output of said third multiplier module, an image of said fourth multiplicand being applied to said output of said first multiplier module by said third multiplier module to generate said second output of said third multiplier module;
a map module to receive outputs of said multiplier modules and to apply multiplication factors to selected outputs of said multiplier modules, said map module having multiple outputs; and
an accumulation module to receive each of said multiple outputs of said map module, said accumulation module being configured to perform an accumulation task for each of said multiple outputs of said map module, said accumulation module having multiple outputs, where the multiple outputs of the accumulation module are one of an FFT and an IFFT of the plurality of inputs.
3 Assignments
0 Petitions
Accused Products
Abstract
The present invention discloses an optimal hardware implementation of the FFT/IFFT operation that minimizes the number of clock cycles required to compute the FFT/IFFT while at the same time minimizing the number of complex multipliers needed. For performing an N-point FFT/IFFT operation in N clock cycles, the optimal hardware implementation consists of several modules. An input module receives a plurality of inputs in parallel and combines the inputs after applying a multiplication factor to each of the inputs. At least one multiplicand generator is used to provide multiplicands to the system. At least two complex multiplier modules for performing complex multiplications are required with at least one of the complex multiplier modules receiving an output from the input module. Each of the complex multiplier modules receives multiplicands from the at least one multiplicand generator. Furthermore, at least one of the complex multiplier modules receives an output of another complex multiplier module. A map module is provided for receiving outputs of the at least two complex multiplier modules, the map module selecting and applying a multiplication factor to each of the outputs received to generate multiple outputs. Finally, an accumulation module receives and performs an accumulation task on each of the multiple outputs of the map module thereby generating a corresponding number of multiple outputs. In a preferred embodiment, the N-point FFT/IFFT operation is performed in N clock cycles using
complex multipliers. In a specific implementation, a system comprising 3 complex multipliers is used to compute a 64-point FFT/IFFT operation in 64 clock cycles. Advantageously, the total number of clock cycles required to complete the FFT/IFFT operation is minimized while at the same time minimizing the number of complex multipliers needed.
47 Citations
25 Claims
-
1. A system to perform Fast Fourier Transform (FFT) and Inverse Fast Fourier Transform (IFFT) operations, the system comprising:
-
a first module to receive a plurality of inputs, said plurality of inputs being combined after first multiplicands are applied to each corresponding input; a first multiplicand generator to provide said first multiplicands to said first module; a first multiplier module to receive an output of said first module; a second multiplicand generator to provide a second multiplicand to said first multiplier module, said second multiplicand being applied to said output of said first module by said first multiplier module; a second multiplier module to receive an output of said first multiplier module; a third multiplicand generator to provide a third multiplicand to said second multiplier module, said third multiplicand being applied to said output of said first multiplier module by said second multiplier module; a third multiplier module to receive said output of said first multiplier module, said third multiplier module being configured to generate first and second outputs; a fourth multiplicand generator to provide a fourth multiplicand to said third multiplier module, said fourth multiplicand being applied to said output of said first multiplier module by said third multiplier module to generate said first output of said third multiplier module, an image of said fourth multiplicand being applied to said output of said first multiplier module by said third multiplier module to generate said second output of said third multiplier module; a map module to receive outputs of said multiplier modules and to apply multiplication factors to selected outputs of said multiplier modules, said map module having multiple outputs; and an accumulation module to receive each of said multiple outputs of said map module, said accumulation module being configured to perform an accumulation task for each of said multiple outputs of said map module, said accumulation module having multiple outputs, where the multiple outputs of the accumulation module are one of an FFT and an IFFT of the plurality of inputs. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system to perform an N-point FFT/IFFT operation, where N is an integer number of input samples, the system comprising:
-
an input module to receive a plurality of inputs in parallel and to combine said inputs after applying a multiplication factor to each of said inputs; at least one multiplicand generator to provide multiplicands to said system; at least two multiplier modules to perform complex multiplications, at least one of said multiplier modules being configured to receive an output of said input module, each of said multiplier modules being configured to receive multiplicands from said at least one multiplicand generator, at least one of said multiplier modules being configured to receive an output of another multiplier module; a map module to receive outputs of all of said at least two multiplier modules, said map module to apply a multiplication factor to each of said outputs of said at least two multiplier modules, said map module being configured to generate multiple outputs; and an accumulation module for to accumulate said multiple outputs of said map module, the accumulation module being configured to generate multiple outputs, where said multiple outputs of said accumulation module are one of an FFT and an IFFT of the plurality of inputs. - View Dependent Claims (11, 12, 13, 14, 15, 25)
-
-
16. A system for performing Fast Fourier Transform/Inverse Fast Fourier Transform (FFT/IFFT) operations, the system comprising:
-
a first summing module to receive four inputs, said first summing module generating an output by combining said four inputs after applying a first set of multiplication factors to said four inputs; a first storage means to provide said first set of multiplication factors to said first summing module; a first complex multiplier module to receive said output of said first summing module; a first multiplicand generator to provide a first multiplicand to said first complex multiplier module, said first multiplicand being applied to said output of said first summing module by said first complex multiplier module; a second complex multiplier module to receive an output of said first complex multiplier module; a second multiplicand generator to provide a second multiplicand to said second complex multiplier module, said second multiplicand being applied to said output of said first complex multiplier module by said second multiplier module; a third complex multiplier module to receive said output of said first complex multiplier module, said third complex multiplier module to generate first and second outputs; a third multiplicand generator to provide a third multiplicand to said third complex multiplier module, said third multiplicand being applied to said output of said first complex multiplier module by said third complex multiplier module to generate said first output of said third multiplier module, an image of said third multiplicand being applied to said output of said first complex multiplier module by said third complex multiplier module to generate said second output of said third complex multiplier module; a map module to receive said outputs of said complex multiplier modules, said map module generating a plurality of outputs by applying a second set of multiplication factors to selected outputs of said complex multiplier modules; and an accumulation module to receive said plurality of outputs from said map module, said accumulation module to generate a plurality of outputs by performing an accumulation task for each of said plurality of outputs from said map module, wherein said plurality of outnuts of said accumulation module are one of an FFT and an IFFT of the four inputs. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24)
-
Specification