请教 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。一直没有搞明白我是哪里没有搞清楚,哪个地方错了。
有个跟你问题一样的。
stm32 adc fft幅值误差
http://www.armbbs.cn/forum.php?mod=viewthread&tid=97558&fromuid=58
(出处: 硬汉嵌入式论坛)
eric2013 发表于 2020-5-16 18:32
有个跟你问题一样的。
stm32 adc fft幅值误差
频谱泄露 是否可以通过加窗解决? 用的是M0低端片子受限于RAM,还有一说是整周期采样不会频谱泄露的呀? 我采集的刚好是整周期怎么也会频谱泄露呢? ZXB 发表于 2020-5-16 18:49
频谱泄露 是否可以通过加窗解决? 用的是M0低端片子受限于RAM,还有一说是整周期采样不会频谱泄露 ...
你这个还没有到FFT加窗这步,你要看下你采集的波形,是不是本身噪声就比较大。
你现在是20k采样5k信号,一个周期才采集了4个点,你自己想想,你这个FFT的效果能好吗。
eric2013 发表于 2020-5-16 19:02
你这个还没有到FFT加窗这步,你要看下你采集的波形,是不是本身噪声就比较大。
你现在是20k采样5k信号, ...
如果说是因为一个周期采样4个点数不够造成的那就算是知道问题点在哪了。 我一直以为是只有满足采样定律就可以准确无误的用FFT计算峰值了,这样看来是和采样点有关系了。 加大采样点数。4个点太少了。加到64或128点应该就好很多了。
页:
[1]