Escolar Documentos
Profissional Documentos
Cultura Documentos
INTRODUCTION
The Discrete Fourier Transform (DFT) plays an important role in the analyses,
design and implementation of the discrete-time signal- processing algorithms
and systems it is used to convert the samples in time domain to frequency
domain. The Fast Fourier Transform (FFT) is simply a fast (computationally
efficient) way to calculate the Discrete Fourier Transform (DFT). The wide
usage of DFTs in Digital Signal Processing applications is the motivation to
Implement FFTs. Almost every branch of engineering and science uses Fourier
methods. The words "frequency," "period," "phase," and "spectrum" are
important parts of an engineer's vocabulary.
The Discrete Fourier transform is used to produce frequency analysis
of discrete non periodic signals. The FFT is another method of achieving the
same result, but with less overhead involved in the calculations. Transforms
basically convert a function from one domain to another with no loss of
information. Fourier Transform converts a function from the time (or spatial)
domain to the frequency domain. DFT is identical to samples of the Fourier
transform at equally spaced frequencies. Consequently, computation of the Npoint DFT corresponds to the computation of N samples of the Fourier
transform at N equally spaced frequencies k = 2k/N. Considering input x[n]
to be complex, N complex multiplications and (N-1) complex additions are
required to compute each value of the DFT, if computed directly from the
formula given as
To compute all N values therefore requires a total N 2 complex
multiplications and N (N-1) complex additions. Each complex multiplication
requires four real multiplications and two real additions and each complex
addition requires two real additions. Therefore a total of 4N2 real multiplications
and N(4N-2) real additions are required. Besides these multiplications and
1
additions there should be provision for storing N complex input sequences and
also to store N output values. Contrary to this by using Decimation in Time FFT
radix-2 algorithm the number of complex multiplications and additions will be
reduced to (N/2)
log 2 N
and N log 2 N
complex x[n]. A large number of FFT algorithms have been developed over the
years, notably the Radix-2, Radix-4, Split- Radix, Fast Hartley Transform
(FHT), Quick Fourier Transform (QFT), and the Decimation-in-TimeFrequency (DITF), algorithms.Among these Radix-2,Radix-4,FHT are of prime
concern in this project.In RAD-2 algorithm the DFT computation is initially
split into two summations, one of which involves the sum over the first data
points and the other over the next data points where as a four-way split is used
in RAD-4. For the DHT, the kernel is real unlike the complex exponential
kernel of the DFT.
The objectives of this project involve
Familiarisation of the various FFT algorithms and a comparative study of
the above on the basis of effective speed and area involved.
Familiarisation
of
FPGA and
various
steps
involved
in
the
Chapter 2
FAST FOURIER TRANSFORM
The first major breakthrough in implementation of Fast Fourier Transform
(FFT), algorithms was the Cooley-Tukey algorithm developed in the mid-1960s,
which reduced the complexity of a Discrete Fourier Transform from (N 2) to
(NlogN), At that time, this was a substantial saving for even the simplest of
applications. Since then, a large number of FFT algorithms have been
developed. The Cooley-Tukey algorithm became known as the Radix- 2
algorithm and was shortly followed by the Radix-3, Radix-4, and Mixed Radix
algorithms. Further research led to the Fast Hartley Transform (FHT) and the
Split Radix (SRFFT) algorithms. Recently, two new algorithms have emerged:
the Quick Fourier Transform (QFT), and the Decimation-In-Time-Frequency
(DITF), algorithm. In this project we provide a comparison of 3 contemporary
FFT algorithms. The criteria used are the operations count, memory usage and
computation time. We chose the following algorithms for our analysis: Radix- 2
(RAD2), Radix-4 (RAD4), FHT.
The relationship between finite sequence {x(n)} in time domain and its
representation {X(k)} in frequency domain is given by the following Discrete
Fourier Transform.
N1
, 0<k<N-1
n=0
X ( n )=IDFT ( x ( k ) ) =
j
W nk
N =e
1
N
N 1
x ( k ) Wnk
N
, 0<n<N-1
k=0
2 nk
N
When computing DFT, we can find some ratios are computed repeatedly. In
addition, W nkN owns following characteristics.
3
(n+ N )k
W nk
=W nN(k+ N)
N =W N
nk
n ( N k )
W nk
N =( W N ) =W N
W nN =W N , W N =W nnN
n
N
2
N
)
2
, W (k+
=W kN
N
W =1
2.1 Review of FFT algorithms: The basic principle behind most Radix based
FFT algorithms is to exploit the symmetry properties of a complex exponential
that is the cornerstone of the Discrete Fourier Transform (DFT), These
algorithms
divide
the
problem
into
similar
sub-problems
(butterfly
N 1
n=
N
2
k
x ( n ) + (1 ) . x n+
)}
N
W nk
N
2
N
1
2
X (k )=
n=0
x (n)+ x n+
N
2
)} W
nk
N
2
N
1
2
X ( 2k )=
n=0
N
. W nkN W nkN
2
2
2
x ( n )x n+
N
1
2
X ( 2 k +1 )=
n=0
complex
additions. Observe that the output of the whole process is out-of-order and
requires a bit reversal operation to place the frequency samples in the correct
order.
2.2.2 Radix-4 Algorithm: The RAD4 algorithm is very similar to the RAD2
algorithm in concept. Instead of dividing the DFT computation into halves as in
RAD2, a four-way split is used. The N- point input sequence is split into four
subsequences, x(4n),, x(4n+1), , x(4n+2), and x(4n+3), , where n=0,1,N/4-1.
N
1
4
N
1
2
nk
X ( k ) = x (n)W nk
N + x (n)W N +
n=0
n=
N
4
3N
1
4
n=
N
2
x (n)W nk
N+
N
1
4
m=0
n=
setting
F(l,q)=
N
1
2
3N
4
x (n)W nk
N
N
X(p,q)=X( 4 . p+ q ,
And
X(l,m)=X(4m+1) , where
N
x ( n ) {cos
N 1
X (k )=
n=0
multiplications and two real additions using the DFT. For the DHT, this
computation involves only two real multiplications and one real addition. There
exists an inexpensive mapping of coefficients from the Hartley domain to the
Fourier domain, which is required to convert the output of a DHT to the
traditional DFT coefficients.Following equation , relates the DFT coefficients to
the DHT coefficients for an N-point DFT computation.
Re(DFT(k))=
DHT ( k ) + DHT ( N k )
2
Im(DFT(k))=
DHT ( k )DHT ( N k )
2
Chapter 3
7
that target different design sizes, design speeds, and cost requirements. Some of
the more popular devices include the XC4000, the Spartan series, and the Virtex
II series.
and the routing channels. Each input pin can be programmed to connect to one
or more of the tracks in a channel using either a multiplexer or multiple
transistors (see Figure 3.2). Output pins, on the other hand, are connected to
tracks using tri-state buffers. The number of tracks that a pin can connect to is
called its connection block flexibility. Switch blocks reside at the intersections
of horizontal and vertical routing channels. They provide programmable
switches used to connect tracks from both the vertical and horizontal channels
incident to the switch. The number of outgoing tracks that each ingoing track
can connect to is called its switch block flexibility. An FPGA generally consists
of a two-dimensional array of logic blocks that can be connected by general
interconnection resources.
Chapter 4
IMPLEMENTATION TOOLS
13
14
15
Chapter 5
CONCLUSION
By this project we try to implement a fixed point fft on an FPGA in
collaboration with NeST Technologies. The purpose of this project is to develop
an understanding of the underlying principles in FFT implementation with the
FPGA technique as an alternate approach to the general or special purpose
microprocessors. Implementation of fixed point FFT algorithm using FPGA
technique seems to be easy and simple compared with other techniques. Also it
is possible to implement another applications or algorithms using this approach
in the field of single or image processing. Communications systems, and
electronic circuit design etc.
REFERENCES
16
17