STM32F407+FFT+详细解读!!!!
在STM32F407上做FFT的运算:
在对采集到的信号做FFT运算之前,我们先要明确以下几个东西:
- 采样频率(Fs)和进行一次FFT运算的点数(N)
- 基4FFT运算,点数只能是4的指数倍,即N=256、1024。
有了上述几个知识点后,我们先来看一下下面的这张图:
这张图是我通过stm32的ADC采集一个1KHZ的方波,然后进行1024个点的FFT得到的,此时的采样率大约为256KHZ,注意:这里的采样率是大约为256KHZ,与256KHZ有较大的偏差,这个偏差造成的后果就是右图的频谱图能量不集中。(频谱图中我去掉了直流分量与后面的一些点。)
下面我们再看一张图:
在这张图中,我的采样率大约是512KHZ,且与512KHZ很接近,输入的信号仍为1KHZ的方波,此时右图的频谱图能量就很集中,与理想FFT的结果非常的接近,这是我们所希望看到的,那么这是为啥呢?
原因其实很简单,在频谱图中,X轴所代表的就是频率的大小,具体的计算公式式为:频率 = X * Fs / N 其中Fs就是我们的采样频率,N就是FFT计算的点数。
让我们来验证一下吧!
第二张图的最高点的x值为2,带入公式计算可得:频率=2*512KHZ/1024=1KHZ,这不就刚好对应我们的基波频率么。之后排下来就是3次谐波、5次谐波…偶次谐波几乎为零。
那么频谱图的y轴代表什么含义呢?
y轴的值代表的就是对应谐波的幅度(Vp),不过转换为幅度还需要一个公式:幅度 = Y * 2 / N。
PS:不过在32上其实是比较难做到采样频率的精确控制的,最好的方式是用FPGA驱动一个ADS8505(或者其他的ADC模块)实时采集数据,之后再将数据发给32.
以上就是对FFT的全部讲解啦!如果有小伙伴想下载源码可以点击此链接哦!!!
https://download.csdn.net/download/qq_43373204/12959634
STM32F407+FFT+详细解读!!!!相关推荐
- NLP突破性成果 BERT 模型详细解读 bert参数微调
https://zhuanlan.zhihu.com/p/46997268 NLP突破性成果 BERT 模型详细解读 章鱼小丸子 不懂算法的产品经理不是好的程序员 关注她 82 人赞了该文章 Goo ...
- VINS-mono详细解读与实现
VINS-mono详细解读 VINS-mono详细解读 前言 Vins-mono是香港科技大学开源的一个VIO算法,https://github.com/HKUST-Aerial-Robotics/V ...
- R回归模型输出结果详细解读:summary、call、residuals、Coefficients、Assessing Model Fit
R回归模型输出结果详细解读:summary.call.residuals.Coefficients.Assessing Model Fit 目录 R回归模型输出结果详细解读:summary.call. ...
- MemCache超详细解读
MemCache是什么 MemCache是一个自由.源码开放.高性能.分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高 ...
- CSS 详细解读定位属性 position 以及参数
Css 详细解读定位属性 position 以及参数 position 定位属性,是CSS中非常重要的属性.除了文档流布局,就是定位布局了.本来我对这个问题没有放在心上,毕竟写了这么多年的css,对p ...
- MemCache详细解读
MemCache是什么 MemCache是一个自由.源码开放.高性能.分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高 ...
- 直播 | 腾讯天衍实验室张子恒:详细解读天衍实验室知识图谱对齐技术
「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...
- Madgwick算法详细解读
Madgwick算法详细解读 极品巧克力 前言 接上一篇文章<Google Cardboard的九轴融合算法>. Madgwick算法是另外一种九轴融合的方法,广泛应用在旋翼飞行器上,效果 ...
- Transformer详细解读与预测实例记录
文章目录 Transformer详细解读与预测实例记录 1.位置编码 1)输入部分: 2)位置编码部分: 2.多头注意力机制 1)基本注意力机制 2)transformer中的注意力 3.残差和Lay ...
最新文章
- java兔子_JAVA经典兔子问题
- SqlServer一些用法
- destoon php,DESTOON_7.0_UTF8
- boost::mp11::integer_sequence相关用法的测试程序
- 18.HMM隐马尔可夫模型
- linux搭建vsftp服务器_Linux安装配置vsftp搭建FTP的详细配置
- JAVA注解和反射(笔记)
- Hello OpenGL——OpenGL在Visual c++6.0安装和配置
- python request对四类参数的处理_如何处理Djang中同一参数具有多个变量的request.GET...
- 前端获取不了rest请求自定义headers的问题
- Node.js入门笔记
- 盘点那些跨界玩到飞起的程序员们!
- 用 Python 爬取了 14 年的福彩 3D 信息!彩民们,只能帮你们到这了
- Leetcode Contains Duplicate II
- 阅读《黑客与画家》有感——Hackers and Painters
- python开发100个小程序_Python小程序100例
- 生动的ajax图片显示效果,LightBox
- JavaWeb 页面跳转方式连接数据库
- 使用ViKey加密狗实现Windows登陆的方法
- form表单同时提交带文本和图片的数据