CORDIC function basics

This page covers CORDIC algorithm basics. It covers CORDIC function uses. It describes CORDIC Rotation mode and Vector Mode.

CORDIC stands for Co-ordiate Rotation Digital Computer. It is the concept or algorithm used to calculate trigonometric (sin, cos) and hyperbolic (tan-1) functions. It works based on look up table concept. For example, you would like to calculate sin(φ) for some angle φ In this method, all the values of sin(φ) for each and every φ is stored in a memory (RAM). Later based on φ, corresponding value is outputted.

The cordic is used when hardware multiplier is not available. As CORDIC is used in FPGA/DSP where subtraction, addition, table lookup and bitshift operations are only available to be used.

CORDIC uses

CORDIC is used for operations such as sine, cosine, polar to rectangle, general rotation, arctangent, vector magnitude, rectangular to polar, Arcsine, Arccosine etc. It is also used for Linear Functions, Hyperbolic Functions, Square Rooting, Logarithms, Exponentials etc.


Operation Mode Initialize Direction
Sine, Cosine Rotation x = 1/An, y = 0, z = α Reduce z to Zero
Polar to Rect. Rotation x = (1/An)Xmag , y = 0, z = Xphase Reduce z to Zero
General Rotation Rotation x = (1/An)X0 , y = (1/An)y0, z = α Reduce z to Zero
Arctangent Vector x = (1/An)X0 , y = (1/An)y0, z = 0 Reduce y to zero
Vector Magnitude Vector x = (1/An)X0 , y = (1/An)y0, z = 0 Reduce y to zero
Rect. to Polar Vector x = (1/An)X0 , y = (1/An)y0, z = 0 Reduce y to zero
Arcsine, Arccosine Vector x = (1/An), y = 0, arg = sin(α) or cos(α) Reduce y to value in arg register

CORDIC rotation mode and vector mode

Following two modes rotation mode and vector modes are used.

Rotation Mode


CORDIC rotation mode

Vector Mode


CORDIC vector mode

Following table of CORDIC rotation angles is very useful. This is stored in the form of look up table and is derived when needed.


CORDIC rotation angles

Useful Links to MATLAB codes

Refer following as well as links mentioned on left side panel for useful MATLAB codes.
OFDM Preamble generation  Time off estimation corr  Freq off estimation corr  channel estimation  11a WLAN channel  PN sequence generation  OFDMA Tx Rx  AES DES  carrier aggregation  CCDF  FIR Filter  IIR Filter  Low Pass FIR  Viterbi decoder  CRC8 CRC32 

RF and Wireless Terminologies