t=[t0:dt:tf]; st=length(t); n1=floor((t1-t0)/dt); x1=zeros(1,st);
x1(n1)=1/dt;
subplot(2,2,1),stairs(t,x1),grid on
axis([0,5,0,22])
x2=[zeros(1,n1-1),ones(1,st-n1+1)];
subplot(2,2,3),stairs(t,x2),grid on
axis([0,5,0,1.1])
alpha=-0.5;w=10;x3=exp((alpha+j*w)*t); subplot(2,2,2),plot(t,real(x3)),grid on subplot(2,2,4),plot(t,imag(x3)),grid on 程序运行结果:
题目二:LTI系统的零输入响应
设计要求:描述n阶线性时不变(LTI)连续系统的微分方程为:
a1(dy/dt)+ a2(dy/dt)+…+ an(dy/dt)+ (an+1)y= b1(du/dt)+…+ bm(du/dt)+ (bm+1)u,已知y及其各阶导数的初始值为y(0),y(1)(0),…, y(n-1)(0),求系统的零输入响应。
参考程序:a=input('输入分母系数向量a=[a1,a2......]='); n=length(a)-1;
Y0=input('输入初始条件向量 Y0=[y0,Dy0,D2y0,....]='); p=roots(a);V=rot90(vander(p));c=V\\Y0'; dt=input('dt='); tf=input('tf=') t=0:dt:tf; y=zeros(1, length(t)); for k=1:n y=y+c(k)*exp(p(k)*t);end
plot(t,y),grid; hold on
运行此程序并输入:a=[3,5,7,1]; dt=0.2;tf=8;
Y0取[1,0,0];[0,1,0];[0,0,1],三种情况,运行结果如图
n
n
n-1
m
m
6
实验三 连续信号卷积
实验目的:掌握使用 MATLAB 实现信号的卷积运算、卷积的可视化 题目一:卷积的计算
设计要求:某LTI系统的冲激响应h(t)=e
始条件为零,求系统的响应y(t).
-0.1t
,输入u(t)如图3-1(a)所示,初
参考程序:clear
uls=input('输入u数组 u=(例如ones(1,10))');
lu=length(uls);
hls=input('输入h数组 h=(例如exp(-0.1*[1:15]))');
lh=length(hls);
lmax=max(lu,lh);
if lu>lh nu=0;nh=lu-lh;
elseif lu else nu=0;lh=0; end dt=input('输入时间间隔dt=(例如0.5)') 7 lt=lmax; u=[zeros(1,lt),uls,zeros(1,nu),zeros(1,lt)]; t1=(-lt+1:2*lt)*dt; h=[zeros(1,2*lt),hls,zeros(1,nh)]; hf=fliplr(h); y=zeros(1,3*lt); for k=0:2*lt p=[zeros(1,k),hf(1:end-k)]; y1=u.*p*dt; yk=sum(y1); y(k+lt+1)=yk; subplot(4,1,1);stairs(t1,u) axis([-lt*dt,2*lt*dt,min(u),max(u)]),hold on ylabel('u(t)') subplot(4,1,2);stairs(t1,p) 8 axis([-lt*dt,2*lt*dt,min(p),max(p)]) ylabel('h(k-t)') subplot(4,1,3);stairs(t1,y1) axis([-lt*dt,2*lt*dt,min(y1),max(y1)+eps]) ylabel('s=u*h(k-t)') subplot(4,1,4);stem(k*dt,yk) axis([-lt*dt,2*lt*dt,floor(min(y)+eps),ceil(max(y+eps))]) hold on,ylabel('y(k)=sum(s)*dt') if k==round(0.8*lt) disp('暂停,按任意键继续'),pause else pause(1), end end 程序2:u=input('输入u数组u='); h=input('输入h数组h='); dt=input('输入时间间隔dt='); y=conv(u,h); 9 plot(dt*([1:length(y)]-1),y),grid 题目二:LTI系统的零状态响应 设计要求:设二阶连续系统,其特性 可用常微分方程表示:d2y/dt2+2(dy/dt)+8y=u 求其冲激响应。若输入为u=3t+cos(0.1t),求其零状态响应。 参考程序:clf,clear a=input('多项式分母系数向量a='); b=input('多项式分子系数向量b='); t=input('输入时间序列t=[0:dt:tf]'); u=input('输入序列u='); tf=t(end); dt=tf/(length(t)-1); [r,p,k]=residue(b,a); h=r(1)*exp(p(1)*t)+r(2)*exp(p(2)*t); 10