Implementation of Cordic Algorithm Using Matlab & VHDL For Wlan Receiver
Implementation of Cordic Algorithm Using Matlab & VHDL For Wlan Receiver
Implementation of Cordic Algorithm Using Matlab & VHDL For Wlan Receiver
I INTRODUCTION:
The CORDIC (COordinate Rotation DIgital
Computer) algorithm was developed by Volder in 1959. It
rotates the vector, stepbystep, with a given angle.
Additional theoretical work has been done by Walther in
1971. The main principle of CORDIC are calculations based
on shiftregisters and adders instead of multiplications, what
saves much hardware resources. All trigonometric functions
can be computed using vector rotation. CORDIC is used for
polar to rectangular and rectangular to polar conversions and
also for calculation of trigonometric functions, vector
magnitude and in some transformations, like discrete Fourier
transform (DFT) or discrete cosine transform (DCT). In
particular case, the CORDIC algorithm is used in wireless
LAN (WLAN) by receivers.
This paper is organized in following five steps. Step
first contains the CORDIC algorithm, its architecture and
WLAN with OFDM system. Step second deals with the
implementation of OFDM system in WLAN using FFT/IFFT
in MATLAB. Step third includes the implementation of
CORDIC algorithm in MATLAB for the WLAN receiver in
order to find out the angle of incomming vectors from
transmitter. Step four deals with CORDIC moduld to which
the calculated angle theta is given as input to comput the sine
and cosine functions using Simulink. Step five includes the
VHDL implementation of CORDIC and the simulation
results.
Above
fig. shows the CORDIC module for
implementating Sine and cosine Trignometric function using
Embedded MATLAB function block.
The basic equations for vector rotation are [4]
x = cos()[x-ytan()]
y = cos()[y+xtan()]
= Rotation angle.
(1)
where x and y are original coordinates before rotation and x
and y are the coordinates after rotation. This equatationcan
be simplified by assuming that the tangent is a power of 2.
Tan() = + 2^(-n)
(2)
Then any angle of rotation can be obtained by performing
successive smaller rotations. This assumption help us to
write equation (1) in the form of iterative operations.
Xn+1 = Kn [xn-yndn 2^(-n)]
Yn+1 = Kn [yn+xndn 2^(-n)]
Zn+1 = zn dnatan 2^(-n)
Kn = cos(atan 2^-n)) = 1 + 1+ 2^(-2n)
Dn = +1
(3)
These equations can be used in two different modes: rotation
mode and vector mode. In rotation mode, the input vector
rotates by a specific angle. In vector mode, the input vector
rotates to the x axis.
In rotation mode the following equations are used:
Xn+1 = Kn [xn yndn 2^(-n)]
Yn+1 = Kn[yn + xndn 2^(-n)]
Zn+1 = zn dnatan2^(-n)]
Xn = cos(0)
Yn = sin (0)
From the above equatations, the angle theta is calculated
from the OFDM based WLAN system and given to CORDIC
module designed in simulink to implement the trignometric
functions Sine and Cosine.
The output wave form is as shown in following fig.
CONCLUSION
The CORDIC module designed in MATLAB
simulink has more flexibility to operate for the
implementation of the trignometric function Sine and
Cosine. The CORDIC rotations can be used to perform the
operations on the given input angle to rotate it to the desired
direction and magnitude and phase can be computed. Finnaly
the VHDL module varifies the performance of CORDIC
module with the help of Modelsim simulator.
REFERENCES
Valls. J. Kuhmann. M. Parhi, K.K. Efficient Mapping of CORDIC
Algorithm on FPGA, Signal processing systems 2000. IEEE
workshop, pp336-343, 11-13 oct. 2000.
[2] Anastasia Lashko, Oleg Zakaznov, CORDIC implementation using
VHDL for WLAN receiver,
[3] Benjamin Heyne, Jurgen Gotze ,A pure cordic based FFT for
reconfigurable digital signal processing
[4] Volder J.E.: "The CORDIC Trigonometric Computing Technique", IRE
Trans. Electronic Computers, vol. EC8, pp 330334, 1959.
[1]