硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2591|回复: 5
收起左侧

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

[复制链接]

11

主题

30

回帖

63

积分

初级会员

积分
63
发表于 2020-5-16 18:23:12 | 显示全部楼层 |阅读模式
有个问题困扰了我好久,示波器上看的波形峰峰值是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[testIndex];
     vpp=maxValue*2/FFT_SIZE;
我看安抚莱教程的例子和网上的例子,都说求的幅度很准。  我是用20k采样5k信号,做256点的FFT。一直没有搞明白我是哪里没有搞清楚,哪个地方错了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
发表于 2020-5-16 18:32:13 | 显示全部楼层
有个跟你问题一样的。

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

使用道具 举报

11

主题

30

回帖

63

积分

初级会员

积分
63
 楼主| 发表于 2020-5-16 18:49:31 | 显示全部楼层
eric2013 发表于 2020-5-16 18:32
有个跟你问题一样的。

stm32 adc fft幅值误差

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

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
发表于 2020-5-16 19:02:04 | 显示全部楼层
ZXB 发表于 2020-5-16 18:49
频谱泄露 是否可以通过加窗解决?   用的是M0低端片子受限于RAM,还有一说是整周期采样不会频谱泄露 ...

你这个还没有到FFT加窗这步,你要看下你采集的波形,是不是本身噪声就比较大。
你现在是20k采样5k信号,一个周期才采集了4个点,你自己想想,你这个FFT的效果能好吗。


回复

使用道具 举报

11

主题

30

回帖

63

积分

初级会员

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

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

使用道具 举报

0

主题

77

回帖

77

积分

初级会员

积分
77
发表于 2020-5-16 22:18:51 | 显示全部楼层
加大采样点数。4个点太少了。加到64或128点应该就好很多了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-2 01:16 , Processed in 0.247367 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表