你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F407 128个点FFT问题请教

[复制链接]
憨客鱼 提问时间:2024-8-24 12:35 / 已解决

我用STM32F407 ST 自带的FFT库做FFT运算, 我的采样频率为250K ,信号为14.038K ,

当采样点数为1024 的时候 14.038 *1024/250 = 57.5 所以FF计算出来的结果最大值在 57 和 58之间,这个和我实际的运算结果相吻合,另外幅度计算也正确

我把采样点数改为256 14.038*256/250 = 14.3749 最大值应该在14 和 15之间 ,这个和我实际的运算结果也吻合,幅度计算也正确

但是当采样点数为128 的时候,14.038*128、250 = 7.187 最大值应该在7和 8之间,但是我实际运算值最大在4和 5之间,另外幅度计算和实际加的电压也对不上

下面依次是128,256,1024 FFT 计算后的结果,

ac2c29188150f12a2d884e3335b95a8.png

a85fc1c3613f5af21769483ae9bd0b2.png

4f910cc489e58f7b721fb1747f15b3c.png

收藏 评论3 发布时间:2024-8-24 12:35

举报

3个回答
xmshao 最优答案 回答时间:6 天前
这里提醒你两点:


第一、采样点数往往是有最小要求,并非随心所欲,一般根据采样频率和最小频率分辨率决定;


第二、我们选择样点数时,还得考虑所使用FFT运算函数类型,有的是基2的,有的是基4的。


假设你现在选用的FFT计算函数是基4类型的,128采样点就不太合适,若强行使用可能会导致较大误差。


你也可以到DSP库函数代码里阅读相关应用函数的说明。


据个人验证,即使我们针对某FFT函数给了不太合适的参数,比方样点数时,目前编译器似乎并不会报错提醒。
Glenxu 回答时间:4 天前

如果是128点的话,建议把每组计算后的时间拉大,否则中断过多导致主计算程序延迟混乱。

并且采样的块(128个)因该和运算的次数以及每秒计算的次数为整数倍最好。

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版