Optimization of Resource Utilization of Fast Fourier Transform

ABSTRACT


INTRODUCTION
There are mainly two reasons to convert a time domain signal into frequency domain signal. First, to decompose a complex signal into simpler parts to facilitate analysis and secondly differential equation, difference equations and convolution operations in the time domain become algebraic operations in the frequency domain. The Fourier series used to convert continuous time and discrete time periodic sequence into frequency domain. The basic representation of periodic signal is the Fourier series, which is a linear weighted sum of related sinusoids or complex exponential [1]. The Fourier transform is a way to decompose a signal into its constituent frequencies and versions it is applied to the aperiodic continues time and discrete time domain signal [2]. DFT is a finite duration discrete frequency sequence which is obtained by sampling one period of Fourier Transform .Sampling is done at 'N' equally spaced points over the period extending from ω 0 =0 to ω 0 =2 .

187
The Butterfly diagram takes advantage of this redundancy and symmetry, which is part of what makes the FFT possible. An FFT is a way to compute the same result more quickly computing a DFT of N points in the naive way, using the definition, takes O(N 2 ) arithmetical operations, while an FFT can compute the same result in only O(N log N) operations. The difference in speed can be substantial, especially for long data sets where N may be in the thousands or millions-in practice, the computation time can be reduced by several order of magnitude in such cases, and the improvement is roughly proportional to N / log (N). This huge improvement made many DFT-based algorithms practical. The FFT is a fast algorithm to find out the DFT of a sequence, a direct computation of DFT of a sequence required ( 2 ) complex multiplication and( 2 − ) complex addition and if we compute DFT of a sequence by FFT algorithm there required The combination of equation (3) , (4), (5) and (6) gives the flow graph of DIT-FFT as shown in Figure-2(a). By the property of twiddle factor W N 2 =W N/2 and the definition of DFT we can write : Here As N/2 is the period of the sequence f 1 (m) and f 2 (m) so replacing k by (k+ 2 ) in Equation 3 By the periodic property of DFT and twiddle factor. Again decimating the sequence F 1 (k) and F 2 (k) we have

DECIMATION IN FREQUENCY FFT ALGORITHM
Decimation in frequency FFT algorithm indicates first computatation of FFT and then dividing the output sequence in even and odd part which is in frequency domain [4]. The flow graph is shown in Figure 2. We can devide equation (1) into two parts as follows: Put n=n+N/2 ,limit will change as When n=N/2  N/2=n +N/2 therefore n=0 When n=N-1  N-1=n +N/2 therefore n=N-1-N/2=N/2-1 Putting these values in second summation of above eq. we get : Now if we decimate the equation (8) into even and odd parts then we have Again decimating the sequence g(n) and h(n) we have:

G -TRANSPOSE ALGORITHM
G-Transpose algorithm decreases the number of twiddle accesses by an asymptotic factor of log (n) [5]. Idea behind the G-transpose algorithm is to decrease the number of twiddle table accesses by restructuring the DFT. The G-Transpose network applies the twiddle factors to each sub network's inputs. In fact, permuting the G-Transpose network's rows into bit-reversed order while leaving connectivity unchanged (that is, redrawing the G-Transpose network such that the inputs given in the order x (0), x(2), x(1), and x(3)) yields the DIT network.
Thus, a G-Transpose implementation produces the same results in finite precision arithmetic as a DIT implementation but processes input/output data like a DIF implementation. Figure 2(c) shows the flow graph of G T algorithm. G T algorithm give an asymptotic reduction in the number of twiddle factor loads required for first stage of decimation which is responsible for minimizing memory size as compare to Cooley-Tukey decimation-in-time and decimation-in-frequency FFT.

SIMULATION RESULTS AND DISCUSSION
We investigated G-Transpose, Cooley-Tukey Decimation-in-Time and Decimation-in-Frequency FFT algorithms, We have taken following parameter for simulation of all algorithms Radix=2, N=4 (4 point FFT) Input sequence x(n)={2, 2, 4, 0} Twiddle Factor W 4 0 =1 and W 4 1 =-j. The result of simulation in MATLAB for all the three algotithm are same and given as {8, -2-2j, 4, -2+2j} as shown in Figure 3, for memory optimization simulation of all Three algorithm is successfully developed using VHDL on XILINX Spartan-3 XC3S4000l-4fg900 FPGA development board. The simulation result for all the three algorithms are same which means the result of FFT is not affected but the resource utilization of all three algorithms is different. Table 1 shows the resource utilization for all three algorithms on FPGA. In the case of G-Transpose algorithm there is a decrease in number of resource utilization. It is because the number of twiddle factor loads required for the first stage of decimation is less in G-transpose as compare to DIT-FFT and DIF-FFT.