打印
[其他ST产品]

STM32F4 Timer+ADC+DMA+FFT的理解与应用

[复制链接]
楼主: 我爱台妹mmd
手机看帖
扫描二维码
随时随地手机跟帖
61
我爱台妹mmd|  楼主 | 2023-8-27 18:06 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
这里为什么会在第16个点,想必大家也能够理解了。(2000Hz/125Hz=16)
这里提一嘴:对于1KHz的信号,基波频率是1KHz,二次谐波是2KHz,三次谐波是3KHz。也就是第8,第16,第24个点。

使用特权

评论回复
62
我爱台妹mmd|  楼主 | 2023-8-27 18:06 | 只看该作者
输入125Hz 0V到3V(即幅度:3V,偏移:1.5V)
这里我们尝试直接输入f0=125Hz。

使用特权

评论回复
63
我爱台妹mmd|  楼主 | 2023-8-27 18:07 | 只看该作者

使用特权

评论回复
64
我爱台妹mmd|  楼主 | 2023-8-27 18:07 | 只看该作者

使用特权

评论回复
65
我爱台妹mmd|  楼主 | 2023-8-27 18:07 | 只看该作者
如愿以偿的出现在了第一个点的位置。

使用特权

评论回复
66
我爱台妹mmd|  楼主 | 2023-8-27 18:07 | 只看该作者

输入200Hz 0V到3V(即幅度:3V,偏移:1.5V)
这里或许就有人好奇了,输入的信号如果不是125Hz的整数倍会怎样,我们来试试。输入一个200Hz看看。

使用特权

评论回复
67
我爱台妹mmd|  楼主 | 2023-8-27 18:07 | 只看该作者

使用特权

评论回复
68
我爱台妹mmd|  楼主 | 2023-8-27 18:07 | 只看该作者

使用特权

评论回复
69
我爱台妹mmd|  楼主 | 2023-8-27 18:07 | 只看该作者

使用特权

评论回复
70
我爱台妹mmd|  楼主 | 2023-8-27 18:07 | 只看该作者
可以看到,幅值散在了理论上200Hz附近的各个位置,但实际上这个横坐标上是没有200Hz这个点的,所以造成了这样的结果。这样的幅值信息也是相当不准确的,所以我们在应用的的过程中要尽量避免这种情况。所以控制好采样率fs是关键! 毕竟用dsp库的话采样点数NPT是没法控制的嘛。根据公式:

频谱图频率分辨率:f0 = fs/NPT

使用特权

评论回复
71
我爱台妹mmd|  楼主 | 2023-8-27 18:08 | 只看该作者
让横坐标的点尽量踩在被采信号的频率上!

使用特权

评论回复
72
我爱台妹mmd|  楼主 | 2023-8-27 18:08 | 只看该作者
输入1KHz 1V到3V(即幅度:2V,偏移:2V)
这里我们再试一下改变一下偏移和整体幅度看看。

使用特权

评论回复
73
我爱台妹mmd|  楼主 | 2023-8-27 18:08 | 只看该作者

使用特权

评论回复
74
我爱台妹mmd|  楼主 | 2023-8-27 18:08 | 只看该作者

使用特权

评论回复
75
我爱台妹mmd|  楼主 | 2023-8-27 18:08 | 只看该作者

使用特权

评论回复
76
我爱台妹mmd|  楼主 | 2023-8-27 18:08 | 只看该作者
再次利用公式:

Voltage = AD_Value*3.3V/4096
Vdc = 2491 * 3.3V / 4096 = 2.007 V
V(1KHz) = (1255 * 3.3V / 4096) * 2 =2.022 V

与输入的信号差不多相符。

使用特权

评论回复
77
我爱台妹mmd|  楼主 | 2023-8-27 18:08 | 只看该作者
结语
在做FFT时,对其概念的理解尤为重要。从时域到频域,被采信号的频率、采样率、采样点数、频率分辨率的概念和物理意义以及它们之间的关系等等,都是需要去理解的。
而FFT的作用远不止这些,除了幅值,它还可以进行相位相关的运算。本文利用的是256个点,如果有需求也可以尝试使用cr4_fft_1024_stm32(OutBufArray, InBufArray, NPT)取1024个点。根据需求控制好采样率。利用Timer+ADC+DMA的模式充分利用了外设资源,在使用的过程中注意它们之间联系的相关配置。

使用特权

评论回复
78
Bowclad| | 2024-5-12 23:00 | 只看该作者
为什么不能配置成连续转换模式啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则