用matlab怎么才能产生矩形波和三角波
矩形波:
sys=tf([3,10],[1,10,40,100])
[u,t] = gensig('square',4,10);
lsim(sys,'k',u,t)
hold on;plot(t,u,'-.')
三角波:
T = 10*(1/50);
Fs = 1000;
dt = 1/Fs;
t = 0:dt:T-dt;
x = sawtooth(2*pi*50*t);
plot(t,x)
扩展资料:
注意事项
1、y=tripuls(T) T是一个数组,表示信号时间。
2、y=tripuls(T, w) w是三角波的宽度。
3、y=tripuls(T, w, s) s是三角波是斜率(-1<s<1)。
y=tripuls(t)产生非周期的三角波信号,三角波宽度为时间轴的一半。
y=tripuls(t,w,s)制定三角波的宽度为w,斜率为s(-1<s<1)。s说是斜率,其实代表了最大值在w区间内出现的最大值,比如s=0,则最大值出现在对称点上,s=0.5,最大值出现在右半区间的中点处,s=1,则出现在右半区间的右边界点处,也即最大值为出现在距离对称点w/2*s处。
2024-12-24 广告
可以用matlab的gensig()函数,来产生矩形波,即
[u,t]=gensig('square',4,10) %产生信号时间区间为4,采样周期为10的矩形波
可以用matlab的sawtooth()函数,来产生三角波,即
x = sawtooth(2*pi*50*t) %产生三角波
实现代码:
figure(1) %图1
sys=tf([3,10],[1,10,40,100])
[u,t] = gensig('square',4,10);
lsim(sys,'k',u,t)
hold on;plot(t,u,'-.')
figure(2) %图2
T = 10*(1/50);
Fs = 1000;
dt = 1/Fs;
t = 0:dt:T-dt;
x = sawtooth(2*pi*50*t);
plot(t,x)