SPUC
3.0
|
Cordic rotator. More...
#include <cordic.h>
Public Member Functions | |
cordic (int n=7) | |
initializes tables and constants for the CORDIC algorithm More... | |
Numeric | vector_mag (complex< Numeric > in) |
Returns magnitude through CORDIC vectoring. More... | |
float_type | vector_arg (complex< Numeric > in) |
Returns arg through CORDIC vectoring. More... | |
complex< Numeric > | rotate (complex< Numeric > in, float_type angle) |
Public Attributes | |
std::vector< float_type > | arctan_lut |
std::vector< complex< Numeric > > | stage |
long | stages |
float_type | vector_angle |
Protected Member Functions | |
Numeric | cordic_vector (complex< Numeric > in) |
Cordic vectoring calculates arg and magnitude. More... | |
Cordic rotator.
Performs CORDIC rotations To rotate a vector through an angle of theta, we calculate:
x' = x cos(theta) - y sin(theta) y' = x sin(theta) + y cos(theta) Can be easily modified for hyperbolic and other functions
|
inline |
initializes tables and constants for the CORDIC algorithm
|
inlineprotected |
Cordic vectoring calculates arg and magnitude.
Referenced by SPUC::cordic< CNumeric >::vector_arg(), and SPUC::cordic< CNumeric >::vector_mag().
|
inline |
Referenced by SPUC::qpsk_variable< Numeric >::clock().
|
inline |
Returns arg through CORDIC vectoring.
|
inline |
Returns magnitude through CORDIC vectoring.
std::vector<float_type> SPUC::cordic< Numeric >::arctan_lut |
std::vector<complex<Numeric> > SPUC::cordic< Numeric >::stage |
long SPUC::cordic< Numeric >::stages |
float_type SPUC::cordic< Numeric >::vector_angle |