CORDIC Based Implementation of Fast Fourier Transform: - CORDIC Is An Iterative Arithmetic Computing
CORDIC Based Implementation of Fast Fourier Transform: - CORDIC Is An Iterative Arithmetic Computing
Abstract – CORDIC is an iterative arithmetic computing Cooley Tukey is most prominent in FFT and radix-2, radix-
algorithm capable of evaluating various elementary functions 4 are more use because of its simple structure based on
using a unified shift-and-add operations. Fast Fourier Transform butterfly and good use of periodicity and symmetry
processor based on CORDIC is implemented. The key ideas are property. There are two methods for computing FFT are
replacing the sine and cosine twiddle factors in conventional FFT when input sequence is broken into even and odd sequences
architecture by iterative CORDIC rotations which allow the called Decimation in Frequency.
reduction in read-only memory (ROM). The use of CORDIC in
FFT results in the elimination of multipliers, saves area, power
In FFT processor, butterfly is the basic unit and using
and cost CORDIC finds many applications as it providing a
simpler way of computing complex multiplications. It is proved single butterfly whole computation is done. So, main
that CORDIC is most suitable alternative. concern is on butterfly unit. It comprises of Twiddle factor
and complex addition and multiplication. FFT
Keywords - Butterfly, CORDIC, DFT, FFT, ROM, Twiddle requires N computations. Using CORDIC in place of
factor. twiddle factor can solve the problem of complex
multiplication. It can also solve the problem of space
required on ROM and also time required to perform the
I. INTRODUCTION
operation.
With increasing use of technology in every field the need
for digital signal processing has increased. Nowadays, there In year 2009 CORDIC completed its 50 year of invention;
is more demand for reduced cost, area, power and increased by J.VOLDER [5]. This iterative process require only
speed; which motivated the development of more simple add and shift operation and can perform many
sophisticated DSP algorithms to enhance the performance. computing tasks such as trigonometry, logarithmic,
Discrete Fourier Transform is most power tool for exponential, hyperbolic, real and complex multiplication,
performing DSP. DFT decomposes a sequence into smaller eigen value estimation, square root, division, singular value
sequences and in this computation it requires arithmetic decomposition and many more. With all these
operations. It has a slow and complex computation. computations it become unavoidable part of DSP and may
other systems. CORDIC is proposed by J. Volder [6] in
1965 and further generalizes by Walther [7] and refined by
() = ∑
()
Householder and many other [8] [9] [10][11][12]. It is the
fastest technique to perform these operations demanded
k = 0, 1, 2... ... N-1 (1) only add-and-shift, and attractive due to its efficient and
low cost implementation of large class of applications.
Where,
=
In this paper, CORDIC is implemented using 2’s
() is the Discrete Fourier Transform and () is a complement signed fixed point representation. Using
sequence of samples
is called twiddle factor. Due to its CORDIC a specialized hardware FFT Processor is
complexity, Fast Fourier Transform has been proposed by implement using radix-2 DIT algorithm for 8 point. The
Cooley and Tukey [2]. Fast Fourier Transform is a cleaver detailed description and block diagram are given as well. It
trick for obtaining the same result as the DFT, using less shows that more efficient alternative has been considered
computation time. FFT decomposes the sequence, it follow for replacement of complex multiplier. Simulation results
the rule of divide and conquer. Plenty of work has been are shown for CORDIC.
done on FFT like radix-2, radix-4, split [3], Hybrid [4]. But
II. FAST FOURIER TRANSFORM Fig. 1 shows the basic Butterfly structure.
An efficient algorithm proposed by Cooley-Tukey is the Butterfly produces two complex outputs that become
fastest version of DFT. In this paper, implementation of butterfly inputs in the next stage. In each stage number of
radix-2 DIT algorithm for FFT computations is presented butterfly remains same (N/2), the number of input and
[13]. output remains the same from one stage to next. An “in-
place” implementation writes each butterfly output over the
A Discrete Fourier Transform X (k), 0 ≤ k ≤ N-1 is defined
next butterfly input. In an “in-place” implementation, the
in (1) can be computed using FFT. This N point DFT is
FFT results in same memory range as original inputs.
broken into two N/2 point DFT groups of even and odd.
Thus FFT uses a recursive algorithm. In this implementation the output is in normal sequence but
input is bit reversed. 8-point radix-2 FFT is shown in fig. 2.
In fig.3 radix-2 butterfly computation element diagram is
() ()
() = ()
+ (2 + 1)
shown. It comprises of sine generator, multipliers, and
addition/subtraction units. FFT require ROM and complex
multipliers for computation. Due to which FFT become
(2) more complex for computation [14].
() = ()
+
(2 + 1)
(3)
() = ∑ ()
/ +
∑
(2 + 1)
/ (4)
() = !() +
"() k=0,1........N/2 (5)
$ $
=
#$/
= %& − ' &*
Since A(k) and B(k) are periodic, with period N/2, then
A(k+ N/2) = A(k) and B(k + N/2) = B(k) and the factor
/
= −
.
551
International Conference on Computer & Communication Technology (ICCCT)-2011
From fig 3 we come to know that Butterfly unit require 85 = 95 − 65 arctan(2
5 ) (13)
multipliers, addition and subtraction unit for computation
and this acquire large area, cost and power. To cut down The generalized CORDIC algorithm for iteration can be
cost, area and power and to increase speed, use of CORDIC written as
in butterfly unit is an unavoidable demand of today. 5 = 5 − : 45 65 2
5
75 = 45 + 5 65 2
5
85 = 95 − 65 ;5 (14)
III.CORDIC – OVERVIEW
Where, the parameter : can assume one of the three values:
The CORDIC algorithm proposed in 1959 with an : =1 Circular rotations ;5 = <-12-i
objective to build a real-time navigational computer for use := 0 linear rotate ;5 =2-i
on aircrafts but later extended in 1971. CORDIC stands for := -1 hyperbolic rotation ;5 = <-12-i
CO-ordinate Rotation Digital Computer. The operations on
computer that are cheapest and fastest to perform are (A)
addition and subtraction, (B) comparing numbers to see −1; *A 9 < 0
di = ?
which is larger or smaller, (C) storing and retrieving +1; *A 9 ≥ 0
numbers from memory, and (D) shifting the binary point.
CORDIC, thus uses operations (A)–(D) to evaluate
functions. The heart of the algorithm is a series of cleverly
performed rotations. The CORDIC algorithm provides an IMPLEMENTATION OF CORDIC
efficient means of computing functions by rotating a vector
through some angle. There are two modes of operation There are number of ways to implement CORDIC. Here
rotation and vectoring. If vector v is rotated by an angle ∅ Iterative CORDIC structure is used. The hardware
as shown in fig.4 having coordinates (x, y) then a new implementation of CORDIC algorithm is shown in fig. 5 it
vector v ' can be obtained with coordinates (x', y') where x' requires x, y, z three registers, a look up table to store
and y' can be obtained using x, y and ∅ by the following values of ;5 , two shifter unit and add/subtract unit. The
method called rotation mode and in vectoring mode look up table is stored in ROM of memory.[16]
coordinate component of a vector are given [15].
552
International Conference on Computer & Communication Technology (ICCCT)-2011
$ $
j (bI cos ( ) − bR sin ( )) (17) FFT is consists of processing unit and the routing unit.
$ $
Yi = (bI cos ( ) − bR sin ( ) (19) In CORDIC processor the real and imaginary parts of X (k)
Where one is real part and another is imaginary part. is taken as the initial values for x and y.
The CORDIC equations can be written for radix-2 is:-
5 = 5 − : 45 65 2
5
75 = 45 + 5 65 2
5
85 = 95 − 65 ;5 (20)
X0 = a
Y0 = b
Z0 = 2πkn/N
Scaling factor K is independent and compensated. In radix-
2 it is constant K= 1.6475.
1. The most direct one is multiplying the final output By the help of CORDIC algorithm the exponential factor is
with 1/K. K-1 is constant for radix-2. realized by sine and cosine operations.
$ $
X = (bR cos E F +bI sin ( )
553
International Conference on Computer & Communication Technology (ICCCT)-2011
$ $
Y = (bI cos ( ) − bR sin ( )
bR’ = -bI
bI’ = bR
V. CONCLUSION AND SIMULATION RESULTS Fig.9 the simulation result for CORDIC based FFT processor
Simulation results:
554
International Conference on Computer & Communication Technology (ICCCT)-2011
555