实验三 连续信号卷积(MATLAB)

实验目的:掌握使用 MATLAB 实现信号的卷积运算、卷积的可视化
题目一:卷积的计算
设计要求:某 LTI 系统的冲激响应 h(t)=e -0.1t
,输入 u(t)如图 3-1(a)所示,
初始条件为零,求系统的响应 y(t).
参考程序:clear
uls=input('输入 u 数组 u=(例如 ones(1,10))');
lu=length(uls);
hls=input('输入 h 数组 h=(例如 exp(-0.1*[1:15]))');
lh=length(hls);
14 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)')
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
15 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)
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)')
16 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

你可能感兴趣的:(matlab,开发语言)