最近学校电赛队伍招新,出的招新题就是低频示波器的。之前一直没有弄懂FFT,借着这次机会实现了一下,做了一个小示波器
- FFT原理简述
FFT,就是快速傅里叶变换,这个操作能够将时域信号转化成频域信号,然后对信号进行分析
这样说可能有点抽象。讲细点就是指能够直观的看出来目标信号的频率是多少。x轴坐标本来是表示时间,FFT之后变成了表示频率,就是这个意思
对于信号处理,FFT之后的结果,波峰一般会出现在我们希望测得信号的频率附近(十分相近)
- 官方文件解释
stm32官方给了几个用于处理FFT的文件,如图所示:
其中有两个汇编文件两个头文件:汇编文件是定义了FFT的计算函数,我们直接调用即可
cr4_fft_1024_stm32.s是包含了计算1024个点的FFT的函数的汇编文件,另一个汇编文件同理
stm32_dsp.h里面有关于FFT处理函数的声明,我们包含了这个头文件之后直接调用函数即可
补充:stm32_dsp.h当中有一个include的头文件,需要根据情况进行修改,比如说用其他型号板子或者其他库开发的记得要修改,不然编译时会报错
- 算法解释
//进行FFT运算等操作
void FFT_Wave(void)
{
u16 i;
float mid_value