如何用matlab产生一组数组,这组数组将作为c编的FFT程序(单片机上)的输入部分。

如何用matlab产生一组数组,这组数组将作为c编的FFT程序(单片机上)的输入部分。,第1张

% 是单频率信号还是带有谐波的信号啊?以下是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

一般人是不算ROM的大小,至多只是估计。因为一个完整的程序,不同的人,甚至同一个人,程序的思路方法不一样,程序大小会差比较多。而且你的程序,除了算法,还有其他的很多东东,如显示、按键、通信等等,这些可能比你的算法的程序量还要大得多。

所以建议你先用仿真(如PROTEUS仿真),选用足够大的ROM的单片机,编制完整的程序,就知道花了多少的程序空间。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存