ZXB 发表于 2020-5-16 18:23:12

请教 FFT求幅度不准可能是什么原因?

有个问题困扰了我好久,示波器上看的波形峰峰值是400多mv,用arm dsp库做fft出来后的峰峰值老是会偏小经过计算后大约300多mv。
好像也就两个函数:
   arm_cfft_f32(&ARM_CFFT_SR_F32_LEN, testInput_f32_10khz,ifftFlag,doBitReverse);
   arm_cmplx_mag_f32(testInput_f32_10khz, testOutput,FFT_SIZE); //求幅度

   maxValue=testOutput;
   vpp=maxValue*2/FFT_SIZE;
我看安抚莱教程的例子和网上的例子,都说求的幅度很准。我是用20k采样5k信号,做256点的FFT。一直没有搞明白我是哪里没有搞清楚,哪个地方错了。

eric2013 发表于 2020-5-16 18:32:13

有个跟你问题一样的。

stm32 adc fft幅值误差
http://www.armbbs.cn/forum.php?mod=viewthread&tid=97558&fromuid=58
(出处: 硬汉嵌入式论坛)

ZXB 发表于 2020-5-16 18:49:31

eric2013 发表于 2020-5-16 18:32
有个跟你问题一样的。

stm32 adc fft幅值误差


    频谱泄露 是否可以通过加窗解决?   用的是M0低端片子受限于RAM,还有一说是整周期采样不会频谱泄露的呀? 我采集的刚好是整周期怎么也会频谱泄露呢?

eric2013 发表于 2020-5-16 19:02:04

ZXB 发表于 2020-5-16 18:49
频谱泄露 是否可以通过加窗解决?   用的是M0低端片子受限于RAM,还有一说是整周期采样不会频谱泄露 ...
你这个还没有到FFT加窗这步,你要看下你采集的波形,是不是本身噪声就比较大。
你现在是20k采样5k信号,一个周期才采集了4个点,你自己想想,你这个FFT的效果能好吗。


ZXB 发表于 2020-5-16 20:19:48

eric2013 发表于 2020-5-16 19:02
你这个还没有到FFT加窗这步,你要看下你采集的波形,是不是本身噪声就比较大。
你现在是20k采样5k信号, ...

如果说是因为一个周期采样4个点数不够造成的那就算是知道问题点在哪了。 我一直以为是只有满足采样定律就可以准确无误的用FFT计算峰值了,这样看来是和采样点有关系了。

艾那的小强 发表于 2020-5-16 22:18:51

加大采样点数。4个点太少了。加到64或128点应该就好很多了。
页: [1]
查看完整版本: 请教 FFT求幅度不准可能是什么原因?