An efficient circuit and method for performing radix-3 Discrete Fourier transform (DFT) of a 3*2M size data frame are provided. The data frame is split and fast Fourier transform (FFT) processed as three sub-frames. Radix-3 operations are performed on the FFT processed sub-frames over a number of stages with time shared hardware to compute the DFT of the data-frame. FFT operations are performed on the second and third sub-frames to produce respective sub-transforms. Concurrently with FFT processing of the first sub-frame, butterfly operations are performed on the sub-transforms of the second and third sub-frames. Through the use of time-shared hardware and arranging FFT operations to correspond with radix-3 operations at various stages of processing, the DFT is performed with existing FFT processors while reducing resource requirements and/or reducing DFT transform time over the full-parallel radix-3 implementation.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A circuit for performing mixed-radix discrete Fourier transform on a frame of size N, comprising: a fast Fourier transform processor block; a memory block having an input coupled to an output of the fast Fourier transform processor block by means of a first circuit path, and an output coupled to an input of the fast Fourier transform processor block; and a radix-2 butterfly circuit having first and second inputs coupled to the memory block by means of respective second and third circuit paths, and first and second outputs coupled to the memory block; wherein the memory block and fast Fourier transform processor block are configured to subdivide the frame into first, second, and third sub-frames of size N/3, and perform fast Fourier transform on each of the sub-frames to produce a sub-transform; and wherein the radix-2 butterfly circuit is configured to perform radix-2 summation of two of the sub-transforms concurrently with fast Fourier transform of one of the sub-frames.
2. The circuit of claim 1 , wherein the first circuit path includes a complex multiplication block, the complex multiplication block having an input coupled to the output of the fast Fourier transform processor block and an output coupled to the input of the memory block.
3. The circuit of claim 2 , wherein the circuit is configured to operate in first, second, and third modes; and while operating in the first mode: the memory block inputs the second sub-frame and a third sub-frame to the fast Fourier transform processor block to produce respective second and third sub-transforms; the fast Fourier transform processor block inputs the second and third sub-transforms to the complex multiplication block to apply respective first and second twiddle factors to produce rotated second and third sub-transforms; and the memory block receives and stores the rotated second and third sub-transforms output from the complex multiplication block; while operating in the second mode: the memory block inputs the first sub-frame to the fast Fourier transform processor block to produce a first sub-transform; the fast Fourier transform processor block inputs the rotated second and third sub-transforms to the radix-2 butterfly circuit to produce a first upper output and a first lower output; and the complex multiplication block multiplies the first lower output by third twiddle factor to produce a rotated first lower output; and the memory block receives and stores the first upper output and the rotated first lower output; and while operating in the third mode: the memory block inputs the first sub-transform and the rotated first upper output to the radix-2 butterfly circuit to produce a second upper output and a second lower output; the memory block receives and stores the second upper output; the memory block inputs the second lower output and rotated first lower output to the radix-2 butterfly circuit to produce a third upper output and a third lower output; and the circuit outputs the second upper output, the third upper output, and the third lower output.
4. The circuit of claim 3 , wherein: in response to the rotated second and third sub-transforms, the radix-2 butterfly circuit is configured to: output a sum of the rotated second and third sub-transforms on the first output, and output a difference between the rotated second and third sub-transforms on the second output; in response to the second lower output and the rotated first lower output, the radix-2 butterfly circuit is configured to: output a sum of the second lower output and the rotated first lower output on the first output; and output a difference between the rotated second and third sub-transforms on the second output; and in response to the first upper output and the first sub-transform, the radix-2 butterfly circuit is configured to: output a sum of the first upper output and the first sub-transform on the first output, and output on the second output, a difference between the first sub-transform and the first upper output divided by two.
5. The circuit of claim 3 , wherein while operating in the second mode, the circuit concurrently inputs the first sub-frame to the fast Fourier transform processor block to produce the first sub-transform and inputs the rotated second and third sub-transforms to the radix-2 butterfly circuit to produce a first upper output and a first lower output.
6. The circuit of claim 3 , wherein: the second output of the radix-2 butterfly circuit is coupled to a second input of the complex multiplication block; and the complex multiplication block multiplies the first lower output by a twiddle factor to produce the rotated first lower output.
7. The circuit of claim 2 , wherein: the circuit is configured to operate in first, second, and third modes; and while operating in the first mode: the memory block inputs the second sub-frame and a third sub-frame to the fast Fourier transform processor block to produce respective second and third sub-transforms; the fast Fourier transform processor block inputs the second sub-transform to the complex multiplication block to apply a first twiddle factor to produce a rotated second sub-transform; and the memory block receives and stores the rotated second sub-transform output from the complex multiplication block; while operating in the second mode: the memory block inputs the first sub-frame to the fast Fourier transform processor block to produce a first sub-transform; the memory block inputs the third sub-transform to the complex multiplication block to apply a second twiddle factor to produce a rotated third sub-transform; and the memory block receives and stores the rotated first sub-transform output from the complex multiplication block; the memory block inputs the rotated second and third sub-transforms to the radix-2 butterfly circuit to produce a first upper output and a first lower output; and the complex multiplication block multiplies the first lower output by a third twiddle factor to produce a rotated first lower output; the memory block receives and stores the first upper output and the rotated first lower output in the memory block; and while operating in the third mode: the memory block inputs the first sub-transform and the rotated first upper output to the radix-2 butterfly circuit to produce a second upper output and a second lower output; the memory block receives and stores the second upper output; the memory block inputs the second lower output and rotated first lower output to the radix-2 butterfly circuit to produce a third upper output and a third lower output; and the circuit outputs the second upper output, the third upper output, and the third lower output.
8. The circuit of claim 1 , further comprising a complex multiplication block, the complex multiplication block having an input and an output coupled to the memory block.
9. The circuit of claim 1 , where N/3 is a power of two.
10. A method for performing discrete Fourier transforms, the method comprising receiving a data frame of size N; subdividing the data frame into three sub-frames of size N/3, including a first sub-frame, a second sub-frame, and a third sub-frame beginning at respective indexes 0, 1 and 2 of the data frame; inputting the second sub-frame to a fast Fourier transform block to produce a second sub-transform; applying a first twiddle factor to the second sub-transform to produce a rotated second sub-transform; inputting the third sub- frame to the fast Fourier transform block to produce a third sub-transform; applying a second twiddle factor to the third sub-transform to produce a rotated third sub-transform; inputting the rotated second sub-transform and the rotated third sub-transform to a butterfly block to produce a first upper output and a first lower output; multiplying the first lower output by a third twiddle factor to produce a rotated first lower output; inputting the first sub-frame to the fast Fourier transform block to produce a first sub-transform; inputting the first upper output and first sub-transform to the butterfly block to produce a second upper output and a second lower output; inputting the second lower output and the rotated first lower output to the butterfly block to produce a third upper output and a third lower output; and storing the second upper output, the third upper output, and the third lower output in a computer readable storage medium.
11. The method of claim 10 , wherein the butterfly block is configured to: add the rotated second sub-transform and the rotated third sub-transform to produce the first upper output; and subtract the rotated first sub-transform from the rotated second sub-transform to produce the first lower output.
12. The method of claim 10 , wherein the butterfly block is configured to: add the first upper output and the first sub-transform to produce the second upper output; perform a right shift operation on the first upper output; and subtract the right shifted first upper output from the first sub-transform to produce the second lower output.
13. The method of claim 10 , wherein the butterfly block comprises a radix- 2 butterfly circuit.
14. The method of claim 10 , wherein the butterfly block comprises a radix-4 butterfly circuit.
15. An Orthogonal Frequency Division Multiplex (OFDM) communication device, comprising: an input block; a fast Fourier transform block coupled to the input block; a complex multiplication block coupled to an output of the fast Fourier transform block, the complex multiplication block being configured to apply twiddle factors to the output of the fast Fourier transform block; a storage unit having inputs coupled to the input section and to an output of the complex multiplication block; a radix-2 butterfly block having a first input and second input coupled to the storage unit; an output block that is coupled to the fast Fourier transform block; and wherein: the fast Fourier transform block performs transformations on sub-frames of size N/3 of a data frame of size N; and the radix-2 butterfly block is configured to perform radix-3 summations in three iterative stages of radix-2 summations.
16. The OFDM communication device of claim 15 , wherein the communication device is an OFDM receiver, and the OFDM communication device further includes a receive antenna coupled to an input of the input block.
17. The OFDM communication device of claim 15 , wherein the input block includes: a quadrature demultiplexer coupled to an input of the input block; and one or more analog to digital converters coupled to an output of the quadrature demultiplexer and an output of the input block.
18. The OFDM communication device of claim 15 , wherein: the communication device comprises an OFDM transmitter; the fast Fourier transform block is configured to perform inverse Fourier transforms; and the OFDM communication device further includes an antenna coupled to an output of the output block.
19. The OFDM communication device of claim 18 , wherein the output block includes: a quadrature demultiplexer coupled to an input of the output block; one or more digital to analog converters coupled to one or more inputs of the quadrature demultiplexer; and an output amplifier coupled to one or more outputs of the digital to analog converters and an output coupled to an output of the output block.
20. The OFDM communication device of claim 15 , wherein at least one of the three iterative stages of radix-2 summations is performed concurrently with the transformation of at least one of the sub-frames of size N/3.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
January 25, 2010
June 5, 2012
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.