CSI-DSP  Version 1.0.0
CSI DSP Software Library
函数
正弦余弦

函数

void csky_sin_cos_f32 (float32_t theta, float32_t *pSinVal, float32_t *pCosVal)
 浮点正弦余弦函数. 更多...
 
void csky_sin_cos_q31 (q31_t theta, q31_t *pSinVal, q31_t *pCosVal)
 Q31 正弦余弦函数. 更多...
 

简要说明

通过一组表的查找和插值,来计算三角正弦和余弦。 为Q31和浮点数据类型提供了不同的函数。 浮点版本的输入是以度为单位,定点Q31的输入是缩放映射到[-180 +180]度的[-1 0.9999]。

浮点函数也支持超出一般范围的值。发生这种情况的时候,函数会需要额外的时间来调整输入值到[-180 180]的范围.

算法实现基于360个表项的线性插值。 使用的步骤如下:

  1. 计算最接近的整数表索引.
  2. 计算输入的小数部分 (fract).
  3. 根据索引 index 从正弦表中发现对应的 y0 和索引 index+1 对应的 y1.
  4. 正弦值计算 *psinVal = y0 + (fract * (y1 - y0)).
  5. 根据索引 index 从余弦表中发现对应的 y0 和索引 index+1 对应的 y1.
  6. 余弦值计算 *pcosVal = y0 + (fract * (y1 - y0)).

函数说明

void csky_sin_cos_f32 ( float32_t  theta,
float32_t pSinVal,
float32_t pCosVal 
)
参数
[in]theta度数输入值
[out]*pSinVal指向正弦输出结果.
[out]*pCosVal指向余弦输出结果.
返回
none.
void csky_sin_cos_q31 ( q31_t  theta,
q31_t pSinVal,
q31_t pCosVal 
)
参数
[in]theta缩放到度数的输入值
[out]*pSinVal指向正弦输出结果
[out]*pCosVal指向余弦输出结果
返回
none.

Q31输入值的范围是[-1 0.999999] ,然后映射到的度数范围是 [-180 179].