GD32之克拉克变换

[复制链接]
 楼主| zeshoufx 发表于 2019-9-3 19:51 | 显示全部楼层 |阅读模式
一、克拉克变换
输入信号:
ia=sin(2*pi*50*t);
ib=sin(2*pi*50*t+120);

二、克拉克变换测试程序
  1. #include "dsp_clark.h"



  2. void clark_test(void)
  3. {
  4.         u16 i=0;
  5.         static float32_t a[320]={0,0.309016994374947,0.587785252292473,0.809016994374948,0.951056516295154,1,0.951056516295154,
  6. ......};
  7.        
  8.         static float32_t b[320]={0.580611184212314,0.803789806568364,0.948287882324612,0.999960933048743,0.953750840508565,
  9. ......};
  10.        
  11.         float32_t iapha[320];
  12.         float32_t ibelt[320];



  13.         for(i=0;i<320;i++)
  14.         {
  15.                 arm_clarke_f32(a[i],b[i],&iapha[i],&ibelt[i]);
  16.                 printf("%f\r\n",iapha[i]);
  17.         }
  18.        
  19. }




三、结果
88565d6e5294ee54c.png

四、主函数

  1. /*
  2.     昆明电器科学研究所 张恩寿 2019年5月3日
  3.        
  4.        
  5. */
  6. #include "bitband.h"
  7. #include "led_config.h"
  8. #include "systick.h"
  9. #include "usart.h"
  10. #include "spi_flash.h"
  11. #include "tft.h"
  12. #include "key_lookup.h"
  13. #include "dsp_clark.h"




  14. int main(void)
  15. {                       
  16.         systick_config(120);
  17.         nvic_priority_group_set(NVIC_PRIGROUP_PRE2_SUB2);
  18.         usart0_init(115200);
  19.     led_init();
  20.         clark_test();
  21.         
  22.         while(1)
  23.         {
  24.                 led_on();
  25.                 delay_nms(600);
  26.                 led_off();
  27.                 delay_nms(600);
  28.         }
  29.                
  30. }





五、总结
可能是昨天晚上取得数据和今天的有所误差,,不过串口打印出来的数据个别出现极大或极小,,后续将持续研究

评论

自己顶一个  发表于 2019-9-5 11:05
您需要登录后才可以回帖 登录 | 注册

本版积分规则

67

主题

1998

帖子

15

粉丝
快速回复 在线客服 返回列表 返回顶部