20-07-2012, 01:54 PM
CORDIC Algorithm
12CORDIC Algorithm.ppt (Size: 496 KB / Downloads: 126)
Key Ideas
Method for Elementary Function Evaluation (e.g., sin(z), cos(z), tan-1(y))
Originally Used for Real-time Navigation (Volder 1956)
Idea is to Rotate a Vector in Cartesion Plane by Some Angle
Complexity Comparable to Division
If we have a computationally efficient way of rotating a vector, we can evaluate cos, sin, and tan–1 functions
Rotation by an arbitrary angle is difficult, so we perform psuedorotations
Use special angles to synthesize a desired angle z
z = a(1) + a(2) + . . . + a(m)
Review - CORDIC - Rotation Mode
Input is Angle, – Initialized in Angle Accumulator
Vector Initialized to Lie on x-axis
Each Iteration di Chosen by Sign of Angle
Attempt to Bring Angle to Zero
Result is x Register Contains ~cos
Result is y Register Contains ~sin
Also Polar to Rectangular if x Register Initialized to Magnitude
Review - CORDIC - Vector Mode
Input is (Pre-scaled) Vector in (x,y) Registers
Angle, – Initialized to Zero
Each Iteration di Chosen to Move Vector to Lie Along Positive x-axis (Want to Reduce y Register to Zero)
Result is Original Vector Angle in Angle Accumulator
Can be Used for sin-1 and cos-1
Also Rectangular to Polar Conversion
Magnitude in x Register
12CORDIC Algorithm.ppt (Size: 496 KB / Downloads: 126)
Key Ideas
Method for Elementary Function Evaluation (e.g., sin(z), cos(z), tan-1(y))
Originally Used for Real-time Navigation (Volder 1956)
Idea is to Rotate a Vector in Cartesion Plane by Some Angle
Complexity Comparable to Division
If we have a computationally efficient way of rotating a vector, we can evaluate cos, sin, and tan–1 functions
Rotation by an arbitrary angle is difficult, so we perform psuedorotations
Use special angles to synthesize a desired angle z
z = a(1) + a(2) + . . . + a(m)
Review - CORDIC - Rotation Mode
Input is Angle, – Initialized in Angle Accumulator
Vector Initialized to Lie on x-axis
Each Iteration di Chosen by Sign of Angle
Attempt to Bring Angle to Zero
Result is x Register Contains ~cos
Result is y Register Contains ~sin
Also Polar to Rectangular if x Register Initialized to Magnitude
Review - CORDIC - Vector Mode
Input is (Pre-scaled) Vector in (x,y) Registers
Angle, – Initialized to Zero
Each Iteration di Chosen to Move Vector to Lie Along Positive x-axis (Want to Reduce y Register to Zero)
Result is Original Vector Angle in Angle Accumulator
Can be Used for sin-1 and cos-1
Also Rectangular to Polar Conversion
Magnitude in x Register