cordicsincos
CORDIC-based approximation of sine and cosine
Syntax
[
y
, x
]
= cordicsincos(theta,niters)
Description
[
computes
the sine and cosine of y
, x
]
= cordicsincos(theta
,niters
)theta
using a CORDIC algorithm approximation. y
contains
the approximated sine result, and x
contains
the approximated cosine result.
Input Arguments
|
|
|
|
Output Arguments
|
CORDIC-based approximated sine of |
|
CORDIC-based approximated cosine of |
Examples
The following example illustrates the effect of the number of
iterations on the result of the cordicsincos
approximation.
wrdLn = 8; theta = fi(pi/2, 1, wrdLn); fprintf('\n\nNITERS\t\tY (SIN)\t ERROR\t LSBs\t\tX (COS)\t ERROR\t LSBs\n'); fprintf('------\t\t-------\t ------\t ----\t\t-------\t ------\t ----\n'); for niters = 1:(wrdLn - 1) [y, x] = cordicsincos(theta, niters); y_FL = y.FractionLength; y_dbl = double(y); x_dbl = double(x); y_err = abs(y_dbl - sin(double(theta))); x_err = abs(x_dbl - cos(double(theta))); fprintf(' %d\t\t%1.4f\t %1.4f\t %1.1f\t\t%1.4f\t %1.4f\t %1.1f\n', ... niters, y_dbl,y_err, (y_err * pow2(y_FL)), x_dbl,x_err, ... (x_err * pow2(y_FL))); end fprintf('\n'); |
The output table appears as follows:
NITERS Y (SIN) ERROR LSBs X (COS) ERROR LSBs ------ ------- ------ ---- ------- ------ ---- 1 0.7031 0.2968 19.0 0.7031 0.7105 45.5 2 0.9375 0.0625 4.0 0.3125 0.3198 20.5 3 0.9844 0.0156 1.0 0.0938 0.1011 6.5 4 0.9844 0.0156 1.0 -0.0156 0.0083 0.5 5 1.0000 0.0000 0.0 0.0312 0.0386 2.5 6 1.0000 0.0000 0.0 0.0000 0.0073 0.5 7 1.0000 0.0000 0.0 0.0156 0.0230 1.5
More About
More About
Algorithms
Extended Capabilities
Version History
Introduced in R2010a