STM32F407 DSP库的使用 2048点FFT ADC+DMA

2019-07-20 09:53发布

      基于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、如果编译说找不到文件,从工程中重新添加即可。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
Amateur
1楼-- · 2019-07-20 11:41
原子哥,我最近也用DSP库进行FFT运算,是用ADC+TIM+DMA,为什么我算出来后用matlab画出幅频响应图,为什么和直接用matlab对采样序列进行FFT变换不一样呢?
我用的是arm_cfft_radix2_f32()对采样序列进行FFT,然后用arm_cmplx_mag_f32()算出幅值,将它用matlab画出来的时候,对应的频率不一样,比如我输入的是75hz的正弦信号,但幅频特性显示的是在150hz处有最大幅度,这是为什么啊?
iyzyh
2楼-- · 2019-07-20 15:45
再奉上一个DSP库使用说明
正点原子
3楼-- · 2019-07-20 18:41
 精彩回答 2  元偷偷看……
xc1989
4楼-- · 2019-07-20 19:23
回复【楼主位】iyzyh:
---------------------------------
楼主下载不了啊
iyzyh
5楼-- · 2019-07-20 22:07
回复【4楼】xc1989:
---------------------------------
我刚试了一下,可以呀~
xc1989
6楼-- · 2019-07-21 00:47
 精彩回答 2  元偷偷看……

一周热门 更多>