1、【研讨题目 2】 信号与系统时域分析专题研讨【目的】1.研究用离散方法近似计算连续信号的卷积积分;2.通过分析近似计算卷积积分过程中出现的问题,锻炼学生分析问题和解决问题的能力;【知识点】信号时域分析,卷积积分,卷积和【研讨题目】连续信号卷积积分的数值近似计算两个连续信号的卷积积分定义为 d)()(thxty为了能用数值方法进行计算,需对连续信号进行抽样。记 xk=x(k), hk=h(k),为进行数值计算所选定的抽样间隔,可以证明连续信号卷积积分可近似的表示为(1)()()ykxkh由式(1)可知,可以利用 Matlab 提供的 conv 函数近似计算连续信号的卷积积分。一、(*)理论分析为
2、了对近似计算的结果进行分析,用解析的方法计算下列卷积积分,推出卷积积分的解析表达式;(1) 时限信号卷积积分x1(t)=u(t)u(t1),y 1(t)=x1(t)x1(t);卷积结果为:y1(t)= x1(t)x1(t)=r(t)-2*r(t-1)+r(t-2)(2) 分段常数信号卷积积分x2(t)= x1(t)+2 x1(t1)+ x1(t2),h 2(t)= x1(t) x1(t1), y2(t)=x2(t)h2(t);卷积结果为:y2(t)= x2(t)h2(t)=y1(t)+y1(t-1)-y1(t-2)-y1(t-3)=r(t)-r(t-1)-2*r(t-2)+2*r(t-3)+r
3、(t-4)-r(t-5) (3) 非时限信号卷积积分x3(t)=u(t),h 3(t)=etu(t), y3(t)=x3(t)h3(t) 卷积结果为:y3= x 3(t)h3(t) =1-exp(-t)*u(t)二、(*)时限信号卷积积分的近似计算取不同的值,用 Matlab 函数 conv 近似计算卷积积分 y1(t)并画出其波形,讨论 的取值对计算结果的影响。上图中,绿线为间隔 0.01 的结果,蓝线是间隔 0.1 结果,红线为实际结果,由此可见:时间间隔越小,与实际结果越接近。附程序代码:t1=0:0.01:5;t2=0:0.1:5;t=0:0.1:5;x1=1.*(t1=0)-1.*(
4、t1=1);x2=1.*(t2=0)-1.*(t2=1);y1=convn(x1,x1);y2=convn(x2,x2);y=t.*t=0-2*(t-1).*t=1+(t-2).*t=2N1=length(y1); %length 函数取 y1 的长度%N2=length(y2);plot(t,y,r);hold on;plot(0:0.01:(N1-1).*0.01,y1*0.01,g);plot(0:0.1:(N2-1).*0.1,y2*0.1,b);axis(0 5 0 1)三、(*)分段常数信号卷积积分的 Matlab 计算(1)若 x2k=1,2 ,1,0; k=0,1,2, h2k
5、= 1,1 ; k=0,1,计算离散卷积 y2k=x2kh2k; y2k=x2kh2k结果如下:附程序代码:x2=1,2,1,0;h2=1,-1;y2=conv(x2,h2);N=length(y2);stem(0:N-1,y2);axis(0 8 -1 1)(2)比较 y2(t)和 y2k,你发现了什么?y2(t)的图像如下:附程序代码:t=0:0.1:5;y=t.*t=0-(t-1).*t=1-2*(t-2).*t=2+2*(t-3).*t=3+(t-4).*t=4-(t-5).*t=5plot(t,y);hold on;axis(0 8 -1 1)y2(t)和 y2k图像比较:附程序代码
6、:x2=1,2,1,0;h2=1,-1;y2=conv(x2,h2);t=0:0.1:5;y=t.*t=0-(t-1).*t=1-2*(t-2).*t=2+2*(t-3).*t=3+(t-4).*t=4-(t-5).*t=5N=length(y2);stem(0:N-1,y2);hold on;axis(0 8 -1 1)plot(t,y);hold on;axis(0 8 -1 1)比较两图可知,y 2(t)与 y2t的卷积积分相似,将 y2t向右平移一个单位后,两图像波形重合,若在 y2t最前面补零,或缩小抽样间隔,即可由 y2t的卷积积分近似地求解 y2(t)地卷积积分。(3)对(2)中
7、发现象进行理论分析,根据理论分析的结果,给出用 Matlab 函数 conv 计算卷积积分 y2(t) 的方法并画出卷积积分 y2(t)的波形;x2(t)=u(t)+u(t-1)-u(t-2)-u(t-3),h2(t)=u(t)-2u(t-1)+u(t-2)x2k=1, 2 ,1, 0; k=0,1,2, h2k= 1,1; k=0,1当抽样间隔为 0.1 时,y 2t比 y2(t)超前一个单位,故在 y2t最前面补零,采用plot 即可画出 y2(t)的正确波形。另外,由二题研讨可知,将抽样间隔缩小(例如抽样间隔取 0.01) ,采用 plot 画图也可以得到 y2(t)的正确波形。采用补零
8、的方法画出 y2(t)的波形为:附程序代码:x2=0,1,2,1,0;h2=1,-1; %在 x2 最前面补零y2=conv(x2,h2);N=length(y2);plot(0:N-1,y2);axis(0 8 -1 1 (4)若分段常数的区间宽度不是 1,应如何修改算法? 如图,若间隔为0.5时,图像及代码如下:附程序代码:x2=1,2,1,0;h2=1,-1;y2=conv(x2,h2);N=length(y2);stem(0:0.5:(N-1).*0.5,y2); %红体为相比间隔为1的函数修改的部分axis(0 8 -1 1)(5)完成了分段常数信号卷积积分的分析和计算后,你对 y1
9、(t)的近似计算方法有无新的认识?可以由离散的卷积来近似的计算连续函数的卷积,但是要根据实际函数在 0 右边的积分的值,来确定离散函数向右偏移的格数,如可以取 y1(t)的边界值先进行离散序列的卷积,如在用 y2t来近似计算 y2(t)时,由于 y2(t)在 01 时,存在卷积积分的由 0 逐渐增长,到 1 时,存在着积分的变化,所以应将离散的图形向右平移一个单位。同时由于连续序列卷积后也是连续的可以将相邻的离散点相连。这样可以较快的计算出 y1(t)的近似。四、(*)非时限信号卷积积分的近似计算近似计算若卷积积分 y3(t)。若出现问题请分析出现问题的原因,并给出一种解决问题的方案;根据提出
10、的方案完成近似计算卷积分的程序;用近似方法计算 y3(t)的代码及结果如下。当区间长度为 20 时:附程序代码:N=0.01;t=0:0.01:20;x=1*(t=0);y=exp(-t).*(t=0);yt=conv(x,y);subplot(211);n=0:0.01:40;plot(n,N*yt);axis(0 20 0 2);xlabel(时间(s));ylabel(近似值 yt(t);subplot(212);yt1=(1-exp(-t).*(t=0);plot(t,yt1);axis(0 inf 0 2);xlabel(时间(s));ylabel(真实值 yt(t);当区间长度为
11、40 时:附程序代码:N=0.01;t=0:0.01:20;x=1*(t=0);y=exp(-t).*(t=0);yt=conv(x,y);subplot(211);n=0:0.01:40;plot(n,N*yt);axis(0 40 0 2);xlabel(时间(s));ylabel(近似值 yt(t);subplot(212);yt1=(1-exp(-t).*(t=0);plot(t,yt1);axis(0 inf 0 2);xlabel(时间(s));ylabel(真实值 yt(t);出现这种情况的原因:因为 conv 函数无法计算一个无穷的卷积,题目中虽然是算了 exp(-t)的卷积,
12、但是实际取的是(0,20)这个区间内的值,在做卷积的计算过程中,使用 matlab 对 t 进行了赋值,在赋值以外的点,被认为时 0,所以在t=0B=1 2 3 ;C=conv(A,B);C1=conv(A,B,valid);subplot(211)stem(1:length(C)-1,C);axis(-1,10,0,30); xlabel(conv(A,B)c=length(C)subplot(212)stem(1:length(C1)-1,C1);axis(-1,10,0,30); xlabel(conv(A,B,valid)c1=length(C1)附:valid 的原理图解:-4 -3 -2 -1 0 1 2 3 4 5 600.511.522.533.544.55-4 -3 -2 -1 0 1 2 3 4 5 600.511.522.533.544.55图(1) 图(2)-4 -3 -2 -1 0 1 2 3 4 5 600.511.522.533.544.55-4 -3 -2 -1 0 1 2 3 4 5 600.511.522.533.544.55图(3) 图(4)-4 -3 -2 -1 0 1 2 3 4 5 600.511.522.533.544.55-4 -3 -2 -1 0 1 2 3 4 5 600.511.522.533.544.55图(5) 图(6)