STM32/STM8技术论坛
直播中

硬汉Eric2013

9年用户 1035经验值
擅长:嵌入式技术
私信 关注
[经验]

【安富莱——DSP教程】第16章 ControllerFunctions的使用(二)

第16章  ControllerFunctions的使用(二)
    本期教程主要讲解控制函数中的cos和sin函数数值的获取,这里使用的函数比起第10章中使用的sin和cos函数数值的获取要方便很多。
    16.1 浮点数SIN和COS
    16.2 定点数SIN和COS
    16.3 Clark正变换和逆变换
    16.4 Park正变换和逆变换
    16.5 总结

回帖(4)

硬汉Eric2013

2015-6-15 10:58:51
16.1  浮点数SIN和COS
16.1.1  arm_sin_cos_f32
函数定义如下:
    void arm_sin_cos_f32(float32_t theta, float32_t *pSinVal, float32_t * pCosVal)
参数定义:
     [in]  theta    input value in degrees   
      [out] *pSinValpoints to the processed sine output.   
     [out] *pCosVal points to the processed cos output.  
注意事项:
       1.    参数theta的单位是角度。这里输入角度-180到179就能得到一个周期的正弦或者余弦数值。

16.1.2  实例讲解
实验目的:
    1. 学习ControllerFunctions中SIN和COS的求解
实验内容:
           1. 按下按键K1, 串口打印函数DSP_SIN_COS的输出结果
实验现象:
           通过窗口上位机软件SecureCRT(V5光盘里面有此软件)查看打印信息现象如下:
16.1.png

程序设计:
  1. /*
  2. *********************************************************************************************************
  3. *    函 数 名: DSP_SIN_COS
  4. *    功能说明: 浮点数cos和sin计算
  5. *    形    参:无
  6. *    返 回 值: 无
  7. *********************************************************************************************************
  8. */
  9. static void DSP_SIN_COS(void)
  10. {
  11.      int16_t i;
  12.      float32_t pSinVal;
  13.      float32_t pCosVal;

  14.      for(i = -180; i < 180; i++)
  15.      {
  16.          arm_sin_cos_f32(i, &pSinVal, &pCosVal);                                                       (1)
  17.          printf("i = %d pSinVal = %f pCosVal = %frn", i, pSinVal, pCosVal);
  18. //       printf("%frn", pSinVal);                                                                    (2)
  19. //       printf("%frn", pCosVal);                                                                    (3)
  20.      }
  21. }
1.     sin和cos数据的求解。
2.     通过matlab绘制sin函数的输出数据的曲线(绘制方法见第10章的10.4小节)
16.2.png

3.     通过matlab绘制cos函数的输出数据的曲线(绘制方法见第10章的10.4小节)
16.3.png


举报

硬汉Eric2013

2015-6-17 14:46:05
本帖最后由 硬汉Eric2013 于 2015-6-17 14:49 编辑

16.2  定点数SIN和COS16.2.1  arm_sin_cos_q31
函数定义如下:
    void arm_sin_cos_q31(q31_ttheta, q31_t * pSinVal, q31_t * pCosVal)
参数定义:
    [in]  theta   input value in degrees   
     [out] *pSinVal points to the processed sineoutput.   
    [out] *pCosValpoints to the processed cos output.  
注意事项:
    1.    参数theta的单位是角度。这里输入角度 -2^31 ~ 2^31-1 就能得到一个周期的正弦或者余弦数值。
16.2.2  实例讲解
实验目的:
    1. 学习ControllerFunctions中SIN和COS的求解
实验内容:
           1. 按下按键K2, 串口打印函数DSP_SIN_COS的输出结果
实验现象:
           通过窗口上位机软件SecureCRT(V5光盘里面有此软件)查看打印信息现象如下:
16.4.png

程序设计:
  1. /*
  2. *********************************************************************************************************
  3. *    函 数 名: DSP_SIN_COS_Q31
  4. *    功能说明: 定点数cos和sin计算
  5. *    形    参:无
  6. *    返 回 值: 无
  7. *********************************************************************************************************
  8. */
  9. static void DSP_SIN_COS_Q31(void)
  10. {
  11.      int16_t i;
  12.      q31_t pSinVal;
  13.      q31_t pCosVal;

  14.      for(i = -256; i < 256; i++)
  15.      {
  16.          arm_sin_cos_q31(i*8388608, &pSinVal, &pCosVal);                                              (1)
  17.          printf("i = %d pSinVal = %d pCosVal = %drn", i, pSinVal, pCosVal);                       
  18. //       printf("%drn", pSinVal);                                                                   (2)
  19. //       printf("%drn", pCosVal);                                                                   (3)
  20.      }
  21. }
1.    sin和cos数据的求解。
2.    通过matlab绘制sin函数的输出数据的曲线(绘制方法见第10章的10.4小节)
16.5.png


3.    通过matlab绘制cos函数的输出数据的曲线(绘制方法见第10章的10.4小节)
16.6.png



举报

硬汉Eric2013

2015-6-17 14:47:01
16.3  Clarke 正变换和逆变换
    暂时没有研究,留待以后解决。
16.4  Park 正变换和逆变换
    暂时没有研究,留待以后解决。
16.5  总结
    本期教程就跟大家讲这么多,有兴趣的可以深入研究下算法的实现。

举报

dacheng0931

2015-6-19 21:32:46
                         谢谢分享
举报

更多回帖

发帖
×
20
完善资料,
赚取积分