当前位置:编程学习 > Matlab >>

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

本人正在做一个在msp430单片机上运行的fft程序,该程序输入部分是用matlab产生的一组数组。 采样点数是256个点,信号频率是50Hz,采样周期采用100ms吧。 我不会用matlab,但老师要求用matlab做出来。
补充:修正一下:采样频率fs=2560Hz,采样点N=256,输入信号X=3cos(100π t+18度)+0.5cos(150π t+25度)。
追问:
问题修正:采样频率fs=2560Hz,采样点N=256,输入信号X=3cos(100π t+18度)+0.5cos(150π t+25度)。

请问如何做?
fs=2560; 
f=50;
N=256;
n=1:N; 
t=(n-1)/fs;
x=zeros(1,N);
x=3*cos(2*pi*f*t+18/180*pi)+0.5*cos(2*pi*f*1.5*t+25/180*pi);
谢谢卜师傅,如果我要输出16进制数组的话,该加上什么语句?
答案:% 是单频率信号还是带有谐波的信号啊?以下是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

上一个:帮忙下载个文件,我文库老是下不了,灰色预测[GM(1,1) ]MATLAB程序,链接地址在下面
下一个:MATLAB程序问题,谁帮我解释下标有#号的地方对应的程序是什么意思和作用

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,