如何用matlab生成一个频率渐变的正弦信号

此正弦信号一共10个周波,其中前5个周波为80HZ,后5个周波为100HZ。

clear all


f1=80;f2=100;%频率
N=5;%周期个数

t1=N*1/f1;t2=N*1/f2;


fs=2000; %采样频率,按照采样定理200hz即可,但为了光滑好看,因为信号时间较短,还是要多一些
t=0:1/fs:(t1+t2);%信号时间数组


y=sin(f1*2*pi*t).*(t>=0&t<=t1)+sin(f2*2*pi*(t-t1)).*(t>=t1&t<=(t1+t2));
%信号起始点都从0开始的正弦波,相位为零,最后相加。


plot(t,y);
xlabel('时间/S'),ylabel('信号y')


 

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-06-19
t=0:0.1:20*pi;
f1=80;f2=100;
t1=[t(1:length(t)/2) zeros(size(length(t)/2+1:end))];
t2=[zeros(size(t(1:length(t)/2))) t(length(t)/2:end)];
A=sin(2*pi*f1*t1)+sin(2*pi*f2*t2);
plot(t,A)
第2个回答  2014-06-19
t1=0:pi/10:10*pi;
t2=10*pi:pi/10:20*pi;
a1=sin(80*t1);a2=sin(100*t2);
plot(t1,a1,t2,a2)
按上面语句试试
相似回答