基于STM32F407VGT6,是官方的discovery板子。
官方给的DSP库中有不少现成的函数,包括复数函数,滤波函数等等,都是对FPU运算优化过的,网上说可以比普通的浮点运算快10倍至百倍,大家可以试一试。
这里上传我的一个工程,基于IAR EWARM6.4 ,主要功能是40KHz的AD采样,数据由DMA传输至数组,调用库中函数进行FFT变换,我对结果进行了简单处理,大家在仿真界面下添加FFT.c中的graphic数组,graphic[0]到graphic[15]代表了0~20Khz的频率范围,用函数信号发生器作为输入信号,效果不错。
以下是工程
1、编译会有很多整型赋值给浮点的警告,不用理会,因为ADC采样值是整型,而做FFT需使用浮点
2、如果编译说找不到文件,从工程中重新添加即可。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
我用的是arm_cfft_radix2_f32()对采样序列进行FFT,然后用arm_cmplx_mag_f32()算出幅值,将它用matlab画出来的时候,对应的频率不一样,比如我输入的是75hz的正弦信号,但幅频特性显示的是在150hz处有最大幅度,这是为什么啊?
一周热门 更多>