使用单片机和FFT算法显示波形(高分!!!急救!!)

使用单片机和FFT算法显示波形(高分!!!急救!!),第1张

fft算法是频谱分析,输入电流或电压信号首先要使用模-数转换电路,根据精度和速度的不同要求,采用的电路也差别很大。fft的输入不外乎就是一串采样数据,以及这些数据的采样时间间隔是多少,这个你需要自己去分析或者代码中有注解就更好。fft最终可能会输出一个数组作为它的分析结果,你可以通过串口输入到电脑中,电脑通过串口接收到单片机发过来的数据以后,就可以通过一些数据分析工具把曲线显示出来。我见过用fft算法配合高速采样电路来分析钢琴音准和音色(即频谱)的实际产品,价格很贵的哦。

使用

在STM32中对信号进行FFT运算首先需要在程序文件中添加DSP库并将其文件夹加入程序中其中包括头文件与arm_cortexM4lf_math.lib在keil中需要进行如下 *** 作。

% 是单频率信号还是带有谐波的信号啊?以下是matlab程序,产生信号数据

fs=2500% 你给的100ms换算成采样频率是10HZ,这不符合采样定理,建议提高采样频率

f=50

N=256

n=1:N

t=(n-1)/fs

Am= [30.6 6 15 5 10 18]% 这个是幅值,如果是单频率,一个数即可

PH= [60 30 90 90 90 90]% 这个是相位,如果是单频率,同上

m = 6% 如果是单频率 取 1

x=zeros(1,N)

PH = PH/180*pi% 如果给的是角度,需要换算成弧度

for k=1 : m

x=x+Am(k)*cos(2*pi*f*k*t+PH(k))% x就是信号采样后的数据,就是你需要的FFT输入数据

end


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7808506.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-10
下一篇2023-04-10

发表评论

登录后才能评论

评论列表(0条)

    保存