This invention relates to a CORDIC-based digital signal processing system and, more particularly, to CORDIC-BASED FFT AND IFFT apparatus and method.
In general, an N-point FFT (Fast Fourier Transform) is expressed mathematically as [1]
where Xn is the nth element of a discrete time signal vector x=[x0 . . . xN-1] with N data samples, and Xk is the kth element of vector X=[X0 . . . XN-1] that corresponds to FFT of x. In general, both xn and Xk can be considered as complex numbers. Direct implementation of an FFT using (1) is always avoided due to its extremely high computation load especially when N is large. Thus, instead of directly implementing (1), an N-point FFT or IFFT (Inverse Fast Fourier Transform) is always implemented using stages of small-sized FFT or IFFT units. As an example, an 8-point FFT can be implemented using three stages each comprising four 2-point FFT operations.
Further, in order to reduce processing latency while increasing throughput of a device that implements FFT/IFFT operations, a number of processors are used in parallel.
FFT has conventionally been implemented using DSP (Digital Signal Processor), parameterized ASIC (Application Specific Integrated Circuit), IP (intellectual property) cores, FPGA (Field Programmable Gate Array) and reconfigurable processors. It has been noted that when a processor is based on CORDIC (coordinate rotation digital computer) [2], the resulting FFT utilizes less hardware resources in comparison to MAC (Multiply and Accumulate) based processors. This is especially so when the size of FFT is large. Whereas there are hybrid processors based on a combination of CORDIC and ADDER units [3], or CORDIC and FFT/IFFT Kernel [2][P1], this patent consider processors which are purely based on CORDIC [4][5][6].
As an example,
The intermediate signal S′2 is given by
S′2=−2−0.5(s1−s2) (2)
Therefore, output signals “S1” and “S2” are related to the input samples “s1” and “s2” by the following equations:
S1=2−0.5(s1+s2)
S2=2−0.5(s1−s2) (3)
From (1), FFT [S1′ S2′] of [s1 s2] is given by
S1′=(s1+s2)
S2′=(s1−s2) (4)
J. G. Proakis and D. G. Manolakis, Introduction to Digital Signal Processing, Maxwell Macmillan, 1989
Y. H. Hu, “CORDIC-Based VLSI Architecture for Digital Signal Processing,” IEEE Signal Processing Magazine, pp. 16-July 1992
R. Sarmineto, F. Tobajas, et. al, “A CORDIC Processor for FFT Computations and Its Implementation Using Gallium Arsenide Technology,” IEEE Trans. on VLSI Systems, pp. 18-30, vol. 6, no. 1, March 1998
C. Ying, S. Chen and J. Chih, “Efficient CORDIC Designs for Multi-Mode OFDM FFT,” ICASSP Page(s): 1036-1039, vol. 3, May 2006
B. Heyne, J. Gotze, “A Pure CORDIC based FFT for Reconfigurable Digital Signal Processing,” 12th European Signal Processing Conference (EUSIPCO2004), Vienna, Austria, 2004
B. Heyne, J. Gotze, “CORDIC-Based algorithms for software defined Radio (SDR) baseband Processing,” Adv. Radio Sci., 4, 179-184, 2006
Kulkarni et al., “Reconfigurable Vector-FFT/IFFT, Vector-Multiplier/Divider,” U.S. Pat. No. 7,082,451 B2
The entire disclosures of the above mentioned Non-Patent Documents and Patent Document are herein incorporated by reference thereto. The analysis below described is given by the present invention.
From the equations (2) and (3), it can be said that conventional purely CORDIC based FFT requires a processor that perform only sign reversal operation.
For large size radix-2 based FFT or IFFT, the sign reversal operation ends up consuming significant amount or resources.
Another example is given in
As in the case of a 2-point FFT that has been explained above, additional CORDIC processors are used to perform sign reversal in order to generate scaled results of an 8-point FFT.
As described above, the conventional purely CORDIC based FFT or IFFT requires additional processing steps or processors for performing sign reversal.
The minimization of computational load in a purely CORDIC-based processor that is used to implement FFT or IFFT is demanded.
Accordingly, it is an object of the present invention to provide an apparatus and method which may reduce hardware resources or processing steps in a CORDIC-based FFT or IFFT.
In one aspect (first) of the present invention, there is provided an apparatus for performing a 2-point FFT (Fast Fourier Transform) wherein first and second complex input signals (‘s1’ and ‘s2’) are evaluated to generate 2-point FFT's first and second complex output signals (“S1” and “S2”), said apparatus comprising first and second CORDIC processors (C1 and C2), each of the first and second CORDIC processors including:
first and second input ports (‘p1’ and ‘p2’) that respectively represent real input port and imaginary input port; and
first and second output ports (‘P1’ and ‘P2’) that respectively represent real output port and imaginary output port for outputting rotated data; wherein real part of the first input signal (‘s1’) is applied to the imaginary input port (‘p2’) of the first CORDIC processor (C1);
imaginary part of the first input signal (‘S1’) is applied to the imaginary input port (‘p2’) of the second CORDIC processor (C2);
real part of the second input signal (‘s2’) is applied to the real input port (‘p1’) of the first CORDIC processor (C1);
imaginary part of the second input signal (‘s2’) is applied to the real input port (‘p1’) of the second CORDIC processor (C2);
the first and second CORDIC processors (C1 and C2) rotate the respective input signals by 45 degrees in the clockwise direction;
data from real output port (‘p1’) of said first CORDIC processor (C1), and data from real output port (‘p1’) of the second CORDIC processor (C2), constitute respectively real part and imaginary part of the 2-point FFT's first output signal (“S1”); and
data from the imaginary output port (‘p2’) of said first CORDIC processor (C1), and data from the imaginary output port (‘p2’) of said second CORDIC processor (C2) constitute respectively real part and imaginary part of the 2-point FFT's second output signal (“S2”).
In another aspect (second aspect) of the present invention, there is provided an apparatus for performing a 2-point FFT (Fast Fourier Transform), first and second complex input signals (‘S1’ and ‘s2’) are evaluated to generate 2-point FFT's first and second complex output signals (“S1” and “S2”), said apparatus comprising first and second CORDIC processors (C1 and C2), each of said first and second CORDIC processors comprising at least first and second input ports (‘p1’ and ‘p2’) that respectively represent real input port and imaginary input port; and
at least first and second output ports (‘P1’ and ‘P2’) that respectively represent real output port and imaginary output port for outputting rotated data; wherein
real part of said first input signal (‘s1’) is applied to the real input port of the first CORDIC processor (C1);
imaginary part of said first input signal (‘s1’) is applied to the real input port of the second CORDIC processor (C2);
real part of the second input signal (‘s2’) is applied to the imaginary input port of the first CORDIC processor (C1);
imaginary part of the second input signal (‘s2’) is applied to the imaginary part of the second CORDIC processor (C2);
the first and second CORDIC processors (C1 and C2) rotate respective input signals applied thereto by 45 degrees in the anticlockwise direction;
data from imaginary output port of the second CORDIC processor (C2), and data from the imaginary output port of the first CORDIC processor (C1), constitute respectively real part and imaginary part of the 2-point FFT's first output signal (“S1”); and
data from real output port of the second CORDIC processors (C2), and data from the real output port of the first CORDIC processors (C1), constitute respectively real part and imaginary part of the 2-point FFT's second output signal (“S2”).
In a third aspect of the present invention, there is provided an apparatus for performing a 4-point FFT, said apparatus comprising first and second stages for processing FFT of four complex data samples,
the first stage comprising two 2-point FFT for processing four input signals of complex data (x1, x2, x3, x4);
a second stage for processing the output of the first stage using two 2-point FFT;
wherein in the first stage, data is processed as set forth in first or second aspect.
In a fourth aspect of the present invention, there is provided an apparatus for performing a 4-point FFT, said apparatus comprising first and second stages for processing FFT of four complex data samples,
the first stage comprising two 2-point FFT for processing input signals of complex data (x1, x2, x3, x4);
the second stage for processing the output of the first stage using first and second pair of CORDIC processors;
each of the first and second CORDIC processors including at least first and second input ports (‘p1’ and ‘p2’) that respectively represent real input port and imaginary input port; and
at least first and second output ports (‘P1’ and ‘P2’) that respectively represent real output port and imaginary output port for outputting rotated data;
wherein in the second stage of the FFT,
input signals (a1, a2) into the first pair of CORDIC processors is processed as stated in the first or second aspect;
input signals (a3, a4) into the second pair of CORDIC processors is processed as follows:
applying real part of the first input signal (‘a3’) to the real input port of the first CORDIC processor (C1) of the second pair of CORDIC processors;
applying imaginary part of the first input signal (‘a3)’ to the real input port of the second CORDIC processor (C2) of the second pair of CORDIC processors;
applying real part of the second input signal (‘a4’) to the imaginary input port of the first CORDIC processor (C1) of the second pair of CORDIC processors; and
applying imaginary part of the second input signal (‘a4’) to the imaginary input port of the second CORDIC processor (C2) of the second pair of CORDIC processors;
two CORDIC processors (C1 and C2) of the second pair of CORDIC processors, rotate respective input signals applied thereto by 45 degrees in the anticlockwise direction;
imaginary output port of first CORDIC processor (C1), and real output port of the second CORDIC processor (C2) in the second pair of CORDIC processors, constitute respectively real part and imaginary part of the third output signal (“S2”) from the second stage of the FFT;
real output port of first CORDIC processor (C1), and data from the imaginary output port of the second CORDIC processor (C2) in the second pair of CORDIC processors, constitute respectively real part and imaginary part of the fourth output signal (“S3”) from the second stage of the FFT.
In a fifth aspect of the present invention, there is provided an apparatus for performing an 8-point FFT, comprising three stages for processing FFT of eight complex data samples;
the first stage comprising two pairs of 4-point FFT for processing eight complex input signals (s1, s2, . . . , s8) and generate eight complex output signals;
the output of said two pairs of 4-point FFT being multiplied by twiddle factors in the second stage to generate an output for being processed by the third stage of the 8-point FFT;
the third stage comprising four pairs of 2-point FFT, wherein the 2-point FFT in the third stage, data is processed has as set forth in first aspect or second aspect.
In a sixth aspect of the present invention, there is provided an apparatus for performing an 8-point FFT comprising three stages for processing FFT of eight complex data samples;
the first stage comprising two pairs of 4-point FFT for processing the eight samples of complex input signals (s1, s2, . . . , s8) and generate eight samples of complex output signals;
the output of said pairs of 4-point FFT being selectively multiplied by twiddle factors or rotated by an equivalent rotational angle in the second stage to generate an output for being processed by the third stage of the 8-point FFT;
the third stage comprising four pairs of CORDIC processors;
each of the CORDIC processors in the four pairs of CORDIC processors comprising at least two input ports (‘p1’ and ‘p2’) that respectively represent real input port and imaginary input port; and
at least first and second output ports (‘P1’ and ‘P2’) that respectively represent real output port and imaginary output port for outputting rotated data;
wherein the third stage, one of the pairs of CORDIC processors process two input signals (a8 and a9) of complex data applied thereto to generate two output signals (A8 and A9) as follows:
applying real part of the first input signal (‘a8’) to the real input port of the first CORDIC processor (C1) of the pair of CORDIC processors;
applying imaginary part of the first input signal (‘a8)’ to the real input port of the second CORDIC processor (C2) of the pair of CORDIC processors;
applying real part of second input signal (‘a9’) to the imaginary input port of the second CORDIC processor (C2) of the pair of CORDIC processors;
applying imaginary part of second input signal (‘a9’) to the imaginary input port of the first CORDIC processor (C1) of the pair of CORDIC processors;
wherein two CORDIC processors (C1 and C2), of the pair of CORDIC processors, rotate respective input signals applied thereto by 45 degrees in the anticlockwise direction;
data from the imaginary output port of first CORDIC processor (C1), and data from the real output port of the second CORDIC processor (C2) in the second pair of real number CORDIC processors, constitute respectively real part and imaginary part of the first output signal;
data from the real output port of first CORDIC processor (C1), and data from the imaginary output port of the second CORDIC processor (C2) in the second pair of CORDIC processors, constitute respectively real part and imaginary part of the second output signal.
In a seventh aspect of the present invention, there is provided an apparatus for performing an FFT comprising multiple stages for processing FFT of complex data samples, with at least one stage implemented using at least one 2-point FFT, wherein in the stage implementing 2-point FFT, at least one of the 2-point FFT will process data as set forth in first or second aspect.
In an eighth aspect of the present invention, there is provided an apparatus for performing an FFT comprising multiple stages for processing FFT of complex data samples with at least one stage implemented using 4-point FFT, wherein the stage, at least one of the 4-point FFT data will be processed as set forth in third aspect or fourth aspect.
In a ninth aspect of the present invention, there is provided an apparatus for performing an FFT comprising multiple stages for processing FFT of complex data samples with at least one stage implemented using 8-point FFT, wherein the stage, at least one of the 8-point FFT data will be processed as set forth in fifth aspect or sixth aspect.
In a tenth aspect of the present invention, there is provided a processor for processing four complex data samples (a1, a2, a3 and a4), said processor comprising two pairs of CORDIC processors with at least two CORDIC processors (C1 and C2) for rotating second (a4) complex input signals applied thereto in the clockwise direction by 90 degrees and evaluating a 2-point FFT of the first input signal sample (a3) and rotated second input signal sample;
each the CORDIC processors comprising at least first and second input ports (‘p1’ and ‘p2’) that respectively represent real input port and imaginary input port; and
at least first and second output ports (‘P1’ and ‘P2’) that respectively represent real output port and imaginary output port for outputting rotated data,
where in the processor,
first and second input signals into the first pair of CORDIC processors are processed as defined in the first aspect or second aspect and
third and fourth input signals (‘a3’ and ‘a4’) into the second pair of CORDIC processors are processed as follows:
applying real part of the third input signal (‘a3’) to the real input port of the first CORDIC processor (C1) of the second pair of CORDIC processors;
applying imaginary part of the third input signal (‘a3’) to the real input port of the second CORDIC processor (C2) of the second pair of CORDIC processors;
applying real part of the fourth input signal (‘a4’) to the imaginary input port of the second CORDIC processor (C2) of the second pair of CORDIC processors;
applying imaginary part of the fourth input signal (‘a4’) to the imaginary input port of the second CORDIC processor (C2) of the second pair of CORDIC processors;
two CORDIC processors (C1 and C2) of the second pair of CORDIC processors, rotate respective input signals applied thereto by 45 degrees in the anticlockwise direction;
data from the imaginary output port of the first CORDIC processor (C1), and data from the real output port of the second CORDIC processor (C2) in the second pair of real number CORDIC processors, constitute respectively real part and imaginary part of a first output signal;
data from the real output port of first CORDIC processor (C1), and data from the imaginary output port of the second CORDIC processor (C2) in the second pair of CORDIC processors, constitute respectively real part and imaginary part of a second output signal.
In an eleventh aspect of the present invention, there is provided an apparatus for performing a 2-point IFFT comprising two CORDIC processors (C1 and C2), each comprising at least first and second input ports (‘p1’ and ‘p2’) that respectively represent real input port and imaginary input port; and
at least first and second output ports (‘P1’ and ‘P2’) that respectively represent real output port and imaginary output port for outputting rotated data;
wherein in the 2-point IFFT, IFFT of two samples of complex input signals (‘s1’ and ‘s2’) is evaluated to generate two output signal (“S1” and “S2”),
real part of the first input signal (‘s1’) is applied to imaginary port (‘p2’) of the first CORDIC processor (C1);
imaginary part of the first input signal (‘s1’) is applied to imaginary port (‘p2’) of the second CORDIC processor (C2);
real part of second input signal (‘s2’) is applied to the real input port of the first CORDIC processor (C1);
imaginary part of second input signal (‘s2’) is applied to the real input port of the second CORDIC processor (C2);
two CORDIC processors (C1 and C2) rotate respective input signals applied thereto by 45 degrees in the clockwise direction;
data from the real output port (‘p1’) of first CORDIC processor (C1), and data from the real output port (‘P1’) of the second CORDIC processor (C2), constitute respectively real part and imaginary part of the 2-point IFFT's first output signal (“S1”;
data from the imaginary output port (‘P2’) of first CORDIC processor (C1), and data from the imaginary output port of the second CORDIC processor (C2), constitute respectively real part and imaginary part of the 2-point IFFT's second output signal (“S2”).
In a twelfth aspect of the present invention, there is provided an apparatus for performing a 2-point IFFT comprising two CORDIC processors (C1 and C2), each including at least first and second input ports (‘p1’ and ‘p2’) that respectively represent real input port and imaginary input port; and
at least first and second output ports (‘P1’ and ‘P2’) that respectively represent real output port and imaginary output port for outputting rotated data;
wherein IFFT of two samples of complex input signals (‘S1’ and ‘s2’) is evaluated as follows:
applying the real part of the first input signal (‘s1’) to the real input port of the first CORDIC processor (C1);
applying imaginary part of the first input signal (‘s1’) to the real input port of the second CORDIC processor (C2);
applying real part of second input signal (‘s2’) to the imaginary input port of the first CORDIC processor (C1); and
applying imaginary part of second input signal (‘s2’) to the imaginary part of the second CORDIC processor (C2);
and generates two output signals (‘S1’ and ‘S2’),
wherein in the 2-point IFFT,
the two CORDIC processors (C1 and C2) rotate respective input signals applied thereto by 45 degrees in the anticlockwise direction;
data from the imaginary output port of second CORDIC processor (C2), and data from the imaginary output port of the first CORDIC processor (C1), constitute respectively real part and imaginary part of the 2-point IFFT's first output signal (“S1”); and
data from the real output port of second CORDIC processors (C2), and data from the real output port of the first CORDIC processors (C1), constitute respectively real part and imaginary part of the 2-point IFFT's second output signal (“S2”).
In a thirteenth aspect of the present invention, there is provided an apparatus for performing a 4-point IFFT comprising two stages for processing IFFT of four complex data samples,
the first stage comprising two 2-point IFFT for processing complex input signals (x1, x2, x3, x4);
the second stage processing the output of the first stage using two 2-point IFFT, where in the first stage of the 4-point IFFT:
data is processed as set forth in the eleventh aspect or twelfth aspect.
In a fourteenth aspect of the present invention, there is provided an apparatus for performing a 4-point IFFT comprising two stages for processing IFFT of four complex data samples,
the first stage comprising two 2-point IFFT for processing complex input signals (x1, x2, x3, x4);
the second stage processing the output of the first stage using two pairs of CORDIC processors;
each of the CORDIC processors including at least first and second input ports (‘p1’ and ‘p2’) that respectively represent real input port and imaginary input port; and
at least first and second output ports (‘P1’ and ‘P2’) that respectively represent real output port and imaginary output port for outputting rotated data;
wherein in the second stage of the IFFT,
input signals (a1, a2) into the first pair of CORDIC processors is processed as set forth in the eleventh aspect or twelve aspect;
input signals (a3, a4) into the second pair of CORDIC processors is processed as follows:
applying real part of the first input signal (‘a3’) to the real input port of the first CORDIC processor (C1) of the second pair of CORDIC processors;
applying imaginary part of the first input signal (‘a3’) to the real input port of the second CORDIC processor (C2) of the second pair of CORDIC processors;
applying real part of second input signal (‘a4’) to the imaginary input port of the second CORDIC processor (C2) of the second pair of CORDIC processors;
applying imaginary part of second input signal (‘a4’) to the imaginary input port of the first CORDIC processor (C1) of the second pair of CORDIC processors; and
two CORDIC processors (C1 and C2) of the second pair of CORDIC processors, rotating respective input signals applied thereto by 45 degrees in the anticlockwise direction;
wherein data from the real output port of first CORDIC processor (C1), and data from the imaginary output port of the second CORDIC processor (C2) in the second pair of CORDIC processors, constitute respectively real part and imaginary part of the third output signal (“X3”) from the second stage of the IFFT; and
data from the imaginary output port of first CORDIC processor (C1), and data from the real output port of the second CORDIC processor (C2) in the second pair of CORDIC processors, constitute respectively real part and imaginary part of the fourth output signal (“X4”) from the second stage of the IFFT.
In a fifteenth aspect of the present invention, there is provided an apparatus for performing an 8-point IFFT comprising three stages for processing IFFT of eight complex data samples;
the first stage comprising two pairs of 4-point IFFT for processing the eight samples of complex input signals (s1, s2, . . . , s8) and generate eight complex output signals;
wherein the output of said two pairs of 4-point IFFT are multiplied by twiddle factors in the second stage to generate an output for being processed by the third stage of the 8-point IFFT;
the third stage comprising four pairs of 2-point IFFT, wherein in the 2-point IFFT in the third stage, data is processed as set forth in the eleventh aspect or twelfth aspect.
In a sixteenth aspect of the present invention, there is provided an apparatus for performing an 8-point IFFT comprising three stages for processing IFFT of eight complex data samples;
the first stage comprising two pairs of 4-point IFFT for processing the eight complex input signals (s1, s2, . . . , s8) and generate eight complex output signals;
the output of said pairs of 4-point IFFT being selectively multiplied by twiddle factors or rotated by an equivalent rotational angle in the second stage to generate an output for being processed by the third stage of the 8-point IFFT;
the third stage comprising four pairs of CORDIC processors;
each of the CORDIC processors in the four pairs of CORDIC processors comprising at least first and second input ports (‘p1’ and ‘p2’) that respectively represent real input port and imaginary input port; and
at least first and second output ports (‘P1’ and ‘P2’) that respectively represent real output port and imaginary output port for outputting rotated data;
wherein in the third stage, one of the pairs of CORDIC processors process two input samples (a3 and a4) of complex data applied thereto as follows:
applying real part of the first input signal (‘a3’) to the real input port of the first CORDIC processor (C1) of the pair of CORDIC processors;
applying imaginary part of the first input signal (‘a3’) to the real input port of the second CORDIC processor (C2) of the pair of CORDIC processors;
applying real part of the second input signal (‘a4’) to the imaginary input port of the second CORDIC processor (C2) of the pair of CORDIC processors;
applying imaginary part of the second input signal (‘a4’) to the imaginary input port of the first CORDIC processor (C1) of the pair of CORDIC processors; and
two CORDIC processors (C1 and C2) of the pair of CORDIC processors, rotating respective input signals applied thereto by 45 degrees in the anticlockwise direction;
wherein data from the real output port of first CORDIC processor (C1), and data from the imaginary output port of the second CORDIC processor (C2) in the second pair of real number CORDIC processors, constitute respectively real part and imaginary part of the first output signal; and
data from the imaginary output port of first CORDIC processor (C1), and data from the real output port of the second CORDIC processor (C2) in the second pair of CORDIC processors, constitute respectively real part and imaginary part of the second output signal.
In a seventeenth aspect of the present invention, there is provided an apparatus for performing an IFFT comprising multiple stages for processing IFFT of complex data samples with at least one stage implemented using at least one 2-point IFFT, wherein in the stage implementing 2-point IFFT, at least one of the 2-point IFFT processes data as set forth in the eleventh or twelfth aspect.
In an eighteenth aspect of the present invention, there is provided an apparatus for performing an IFFT comprising multiple stages for processing IFFT of complex data samples with at least one stage implemented using 4-point IFFT, wherein in the stage, at least one of the 4-point IFFT processes data as set forth in the thirteenth or fourteenth aspect.
In a nineteenth aspect of the present invention, there is provided an apparatus for performing an IFFT comprising multiple stages for processing IFFT of complex data samples with at least one stage implemented using 8-point IFFT, wherein in the stage, at least one of the 8-point IFFT processes data as set forth in the fifteenth or sixteenth aspect.
In a twentieth aspect of the present invention, there is provided a processor for processing four samples of complex input signals (a1, a2, a3 and a4), the processor comprising two pairs of CORDIC processors with at least two CORDIC processors (C1 and C2) for rotating the second signal (a4) in the clockwise direction by 90 degrees and evaluating a 2-point IFFT of the first input signal (a3) and the rotated second input signal;
each the CORDIC processors comprising at least first and second input ports (‘p1’ and ‘p2’) that respectively represent real input port and imaginary input port; and
first and second output ports (‘P1’ and ‘P2’) that respectively represent real output port and imaginary output port for outputting rotated data;
where in the processor,
first and second input signals into the first pair of CORDIC processors are processed as defined in the twelfth aspect or thirteenth aspect; and
third and fourth input signals (‘a3’ and ‘a4’) into the second pair of CORDIC are processed as follows:
applying real part of the first input signal (‘a3’) to the real input port of the first CORDIC processor (C1) of the second pair of CORDIC processors;
applying imaginary part of the first input signal (‘a3’) to the real input port of the second CORDIC processor (C2) of the second pair of CORDIC processors;
applying real part of second input signal (‘a4’) to the imaginary input port of the second CORDIC processor (C2) of the second pair of CORDIC processors;
applying imaginary part of second input signal (‘a4’) to the imaginary input port of the first CORDIC processor (C1) of the second pair of CORDIC processors; and
two CORDIC processors (C1 and C2), of the second pair of CORDIC processors, rotating respective input signals applied thereto by 45 degrees in the anticlockwise direction;
wherein data from the real output port of first CORDIC processor (C1), and data from the imaginary output port of the second CORDIC processor (C2) in the second pair of CORDIC processors, constitute respectively real part and imaginary part of the first output signal; and
data from the imaginary output port of first CORDIC processor
(C1), and data from the real output port of the second CORDIC processor (C2) in the second pair of CORDIC processors, constitute respectively real part and imaginary part of the second output signal.
In a twenty-first aspect of the present invention, there is provided an apparatus for performing an IFFT comprising multiple stages for processing IFFT of complex data samples with at least one stage implemented using two CORDIC processors as set forth in the thirteen aspect.
In further aspects of the present invention, there are provided methods for performing FFT and IFFT, respectively, which will become apparent from the entire disclosure including claims and drawings.
Meritorious effect of the present invention is that FFT or IFFT result is obtained using only CORDIC processors, thus achieving reduction in operations or hardware resources.
Still other features and advantages of the present invention will become readily apparent to those skilled in this art from the following detailed description in conjunction with the accompanying drawings wherein examples of the invention are shown and described, simply by way of illustration of the mode contemplated of carrying out this invention. As will be realized, the invention is capable of other and different examples, and its several details are capable of modifications in various obvious respects, all without departing from the invention. Accordingly, the drawing and description are to be regarded as illustrative in nature, and not as restrictive.
Assume that we are given a vector (u1,u2) on the x-y plane with x-coordinate data (real data) u1 and a y-coordinate data (imaginary data) u2.
The CORDIC processor (C1) rotates (u1, u2) by an angle θ in the clockwise direction to generate an output (U1,U2), where U1 is the x-coordinate data and U2 is the resulting y-coordinate data.
U
1
=u
1 cos(θ)−u2 sin(θ)
U
2
=u
2 cos(θ)+u1 sin(θ) (5)
Alternatively,
U
1
+iU
2=(u1+iu2)eiθ (6)
Now, consider a case where we need to calculate FFT of a vector with two complex data samples (input signals) s1 and s2. In the present invention, as shown in
The respective inputs to each of the two CORDIC processors (C1) and (C2) are then rotated 45 degrees in the clockwise direction. Resulting output signals from CORDIC processors (C1 and C2) are then routed as follows:
As in the conventional method, output data from real port (p1) of first CORDIC processor (C1) and output data from real port (p1) of second CORDIC processor respectively constitute real and imaginary part of the first output data (S1) of a 2-point FFT data. The output data from imaginary port (p2) of first CORDIC processor (C1) and output data from imaginary port (p2) of second CORDIC processor (C2) respectively constitute real and imaginary part of the second output data (S2) of a 2-point FFT data.
Output data from imaginary port (p2) of the second CORDIC processor (C2) and output data from imaginary port (p2) of the first CORDIC processor (C1) respectively constitute real and imaginary part of the first output data (S1) of a 2-point FFT data.
The output data from real port (p1) of first CORDIC processor (C1) and output data from real port (p1) of second CORDIC processor (C2) respectively constitute imaginary and real part of the second output data (S2) of a 2-point FFT data.
<A 2-Point FFT with Twiddle Factor at One of its Input>
In an N-point FFT or IFFT that can be factored, FFT or IFFT implementation can be done in stages. The results of a previous stage are multiplied by twiddle factors before being applied to the next stage. Typical twiddle factors are expressed as Twn,k=eiπnk/N. As an example, for a 4-point FFT, n={0,1} and k={0,1}.
Another aspect of the present invention is described for implementing the system described in
With reference to
The respective inputs to each of the two CORDIC processors (C1) and (C2) are then rotated by 45 degrees in the anticlockwise direction. Resulting output data (signal) from each CORDIC processor are then routed as follows:
Output data from imaginary port (p2) of the first CORDIC processor (C1) and output data from real port (p1) of second CORDIC (C2) processor respectively constitute real and imaginary part of the first output data (A3).
The output data from real port (p1) of first CORDIC processor (C1) and output data from imaginary port (p2) of second CORDIC processor (C2) respectively constitute real and imaginary part of the second output data (A4).
In IFFT, twiddle factors takes on complex conjugate of equivalent twiddle factors in an FFT. Thus, rather than use e2iπ/4, a 4-point IFFT uses e−2iπ/4 as its twiddle factor.
Output data from real port (p1) of the first CORDIC processor (C1) and output data from imaginary port (p2) of second CORDIC (C2) processor respectively constitute real and imaginary part of the first output data (A8).
The output data from imaginary port (p2) of first CORDIC processor (C1) and output data from imaginary port (p2) of second CORDIC processor (C2) respectively constitute real and imaginary part of the second output data (A9).
Performance of the proposed ideas can be explained as follows:
In a 2-point FFT proposed in
S
1=2−0.5(s1+s2)
S
2=2−0.5(s1−s2) (7)
This is equivalent to scaled FFT of a vector [s1 s2]. It clear from
In the first stage, there are two pairs of CORDIC processors. First stage FFT-1 includes two CORDIC processors configured as shown in
The first pair FFT-1 computes 2-point FFT of data samples [x1 x3] while the second pair of CORDIC processors FFT-2 computes 2-point FFT of [x2 x4].
Computation of 2-point FFT is based on the design proposed in
Outputs from these two pairs of CORDIC processors are [a1 a3] and [a2 a4], respectively. The output data from the first stage is then processed in the second stage as follows:
Evaluate 2-point FFT of two samples of data, [a1 a2], using the first pair of CORDIC processors (FFT-3) in second stage of a 4-point FFT. Once again, the 2-point FFT can be implemented using the design proposed in
Next, 2-point FFT of two samples of data [a3 a4e−iπ/2] is evaluated using the second pair of CCORDIC processors (FFT-4) in the second stage of a 4-point FFT.
This operation is implemented using the design presented in
The first stage of 4-point FFT implements 2-point FFT of [x1 x3] and [x2 x4] then generates [a1 a3] and [a2 a4] as output data. From (7) [a1 a3] and [a2 a4] are given by
respectively. The second stage implements two 2-point FFT operations on [a1 a2] and [a3 a4e−iπ/2], respectively. Using (7) or (8), output data will therefore be given by
From (1) it can be said that (9) represents scaled FFT of [x1 x2 x3 x4]. Thus, the proposed method enables the implementation of a 4-point FFT using purely CORDIC based processors. The 4-point FFT can also be used to implement a scaled 4-point IFFT. As an example, if one is interested in evaluating the IFFT of [x1 x2 x3 x4], then the scaled IFFT results F[x1 x2 x3 x4] will be given by
F[x1x2x3x4]=[X1X4X3X2] (10)
where X1, X2, X3 and X4 are the scaled FFT results that have been given in (8).
First and second stage can be considered as performing two 4-point FFT operations. These are the FFT of [s1 s5 s3 s7] and [s2 s6 s4 s8], respectively. These two 4-point FFT are implemented as explained with reference to
The output of the two 4-point FFT are then multiplied by two twiddle factors w81, w82 and w83, where
w
8
1
=e
i2π/8, (11)
w
8
2
=e
i2π2/8 (12)
and
w
8
3
=e
i2π3/8 (13)
respectively.
Third Stage of implementing an 8-point FFT involves four pairs of CORDIC for performing 2-point FFT operations. Note that in this figure, it is possible to combine the twiddle factor multiplication with w82 and the 2-point FFT (3P-S3). When these two operations are combined, the pair of CORDIC processors (3P-S3) will be implemented using IIp that has been illustrated in
w
8
−1
=e
−i2π/8 (14)
and
w
8
−3
=e
−i2π3/8, (15)
respectively.
As in the case of FFT, a 4-point IFFT consist of two stages. In the first stage, there are two pairs of CORDIC processors. The first pair computes 2-point IFFT of data samples [S1 S5] while the second pair of CORDIC processors computes 2-point IFFT of [S3 S7]. The computation of 2-point IFFT is based on design proposed in
Evaluate 2-point IFFT of two samples of data, [a1 a2], using the first pair of CORDIC processors in second stage of a 4-point FFT. Once again, the 2-point IFFT can be implemented using the design proposed in
Third Stage of implementing an 8-point IFFT involves three pairs of CORDIC for performing 2-point IFFT operations and one pair of CORDIC for evaluating 2-point IFFT of [b5 b6e−iπ/2]. The later one-pair of CORDIC is implemented as shown in
It is possible to apply this technology to any signal processing system that evaluates FFT or IFFT using a stage with 2-point FFT or IFFT.
It should be noted that other objects, features and aspects of the present invention will become apparent in the entire disclosure and that modifications may be done without departing the gist and scope of the present invention as disclosed herein and claimed as appended herewith.
Also it should be noted that any combination of the disclosed and/or claimed elements, matters and/or items may fall under the modifications aforementioned.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP2007/069328 | 9/26/2007 | WO | 00 | 3/5/2010 |