STM32F405的FFT,衰减很严重,怎么解决?

2019-07-21 02:37发布

用STM32F405的DSP库做64点FFT,衰减很大, 是我用错了么,有用过的老师么,指导一下。
另这个信号怎么用F4的FFT,插值的话,误差很大。

#define Fs 14400.0f
#define PI2 PI*2.0f

for(i=0;i<288;i++)
     adcfft=1000.0f+100.0f*arm_sin_f32(PI2*i*50.0f/Fs)+ 10.0f * arm_cos_f32(PI2*i*100.0f/Fs) + 1.0f*arm_sin_f32(PI2*i*150.0f/Fs);
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
正点原子
1楼-- · 2019-07-21 04:12
帮顶
lsj9383
2楼-- · 2019-07-21 08:20
什么是衰减很大、
你的插值又是指的神马、
什么又是误差很大、
+_+
lsj9383
3楼-- · 2019-07-21 10:22
我简单说一下你的问题。

你的窗是个64点的窗,采样频率是14400.

所以频率的物理分辨率为 14400/64 = 225Hz.(这是由于原频谱和sa卷积所造成的)

但是信号一个是50Hz, 一个是100Hz,一个是150Hz,在FFT是无法分辨这些频率的。

虽然不知道你的到底表述的是什么,不过根据你的这个信号,用64点做FFT,根本就是有问题的。
liujinyi016
4楼-- · 2019-07-21 13:41
 精彩回答 2  元偷偷看……
lsj9383
5楼-- · 2019-07-21 18:22
1.fs=3200Hz,fft点数为64, 信号是50Hz 100Hz 150Hz的FFT如下图,和理论结果一致。不知道你所指的衰减情况是指的什么?



2.288点的FFT,可以减两个点来做FFT,也可以补零不到512做FFT。建议用补零的方法,因为减两个点会造成物理频率分辨率的轻微降低。
liujinyi016
6楼-- · 2019-07-21 20:03
 精彩回答 2  元偷偷看……

一周热门 更多>