参考资料:
连续时间系统的时域分析涉及到的Matlab函数:
step:用于计算连续时间系统的单位阶跃响应。
impulse:用于计算连续时间系统的单位冲激响应。
lsim:用于计算连续系统在任意输入作用下的响应。
dsolve:Symbolic Math Toolbox中的函数,用于求解常微分方程。
Conv:求卷积
t=-1:0.01:5;
f1=((t>0)-(t>1)); %阶跃函数u(t)-u(t-1)
f2=((t>0)-(t>1));
f3=conv(f1,f2);f3=f3*0.01;
k=2*length(t)-1;
k3=linspace(2*t(1),2*t(end),k);
subplot(2,2,1)
plot(t,f1);
title('f1(t)')
xlabel('t')
ylabel('f1(t)')
subplot(2,2,2)
plot(t,f2)
title('f2(t)')
xlabel('t')
ylabel('f2(t)')
subplot(2,2,3)
plot(k3,f3);
h=get(gca,'position');
h(3)=2.5*h(3);
set(gca,'position',h);
title('f(t)=f1(t)*f2(t)');
xlabel('t');
ylabel('f(t)');
运行结果如图:
t=-1:0.01:5;
f1=(t>0);
f2=exp(-2*t).*(t>0);
f3=conv(f1,f2);f3=f3*0.01;
k=2*length(t)-1;
k3=linspace(2*t(1),2*t(end),k);
subplot(2,2,1)
plot(t,f1);
title('f1(t)')
xlabel('t')
ylabel('f1(t)')
subplot(2,2,2)
plot(t,f2)
title('f2(t)')
xlabel('t')
ylabel('f2(t)')
subplot(2,2,3)
plot(k3,f3);
h=get(gca,'position');
h(3)=2.5*h(3);
set(gca,'position',h);
title('f(t)=f1(t)*f2(t)');
xlabel('t');
ylabel('f(t)');
运行结果如图:
t=[0:0.01:10];
a=[1 3 2]%等式左边系数数组
b=[1 3]%等式右边数组
x=exp(-3*t).*(t>0);%输入信号
s=step(b,a,t)%单位阶跃响应
subplot(2,2,1);
plot(t,s);grid on;
xlabel('t');
ylabel('g(t)');
title('Step Response');%单位阶跃响应
h=impulse(b,a,t);%单位冲激响应
subplot(2,2,2);
plot(t,h);grid on;
xlabel('t');
ylabel('h(t)');
title('Impulse Response');%单位冲激响应
y=conv(x,h)*0.01%零状态响应
subplot(2,2,3);
plot(t,y([1:length(t)]));grid on;
xlabel('t');
ylabel('r_{st}(t)');
title('r_{zs}(t)=x(t)*h(t)\Delta=0.01');%零状态响应标题
运行结果如图:
t = [0:0.01:6];
x = exp(-2*t);
h = (t>0);
y = conv(x,h)*0.01;
y1 = 0.5*(1-exp(-2*t));
plot(t,y([1:length(t)]),'-.',t,y1,'r');
xlabel('t');ylabel('y(t)');
title('y(t)=x(t)*h(t)\Delta=0.01');
legend('近似值','解析式')
运行结果如图: