北京交通大学信号与系统时域分析【研讨题目2】 信号与系统时域分析专题研讨【目的】1.研究用离散方法近似计算连续信号的卷积积分;2.通过分析近似计算卷积积分过程中出现的问题,锻炼学生分析问题和解决问题的能力; 【知识点】信号时域分析,卷积积分,卷积和 【研讨题目】连续信号卷积积分的数值近似计算 两个连续信号的卷积积分定义为τττd )()()(-=⎰∞∞-t h x t y为了能用数值方法进行计算,需对连续信号进行抽样。
记x [k ]=x (k), h [k ]=h (k ),为进行数值计算所选定的抽样间隔,可以证明连续信号卷积积分可近似的表示为(Δ)Δ([][])y k x k h k ≈⨯*(1)由式(1)可知,可以利用Matlab 提供的conv 函数近似计算连续信号的卷积积分。
一、(*)理论分析为了对近似计算的结果进行分析,用解析的方法计算下列卷积积分,推出卷积积分的解析表达式; (1) 时限信号卷积积分x 1(t )=u (t )-u (t -1),y 1(t )=x 1(t )*x 1(t );卷积结果为:y1(t)= x 1(t )*x 1(t )=r(t)-2*r(t-1)+r(t-2) (2) 分段常数信号卷积积分x 2(t )= x 1(t )+2 x 1(t -1)+ x 1(t -2),h 2(t )= x 1(t )- x 1(t -1), y 2(t )=x 2(t )*h 2(t );卷积结果为:y2(t)= x 2(t )*h 2(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(t-4)-r(t-5) (3) 非时限信号卷积积分x 3(t )=u (t ),h 3(t )=e -t u (t ), y 3(t )=x 3(t )*h 3(t )卷积结果为:y3= x 3(t )*h 3(t ) =[1-exp(-t)]*u(t) 二、(*)时限信号卷积积分的近似计算取不同的△值,用Matlab 函数conv 近似计算卷积积分y 1(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.*(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>=2]N1=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)若x2[k]={1,2 ,1,0; k=0,1,2}, h2[k]= {1,1 ; k=0,1},计算离散卷积y2[k]=x2[k]*h2[k];y2[k]=x2[k]*h2[k]结果如下:附程序代码: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)和y2[k],你发现了什么?y(t)的图像如下:2附程序代码: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>=5]plot(t,y);hold on;axis([0 8 -1 1])y2(t)和y2[k]图像比较:附程序代码: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>=5]N=length(y2);stem(0:N-1,y2);hold on;axis([0 8 -1 1])plot(t,y);hold on;axis([0 8 -1 1])比较两图可知,y2(t)与y2[t]的卷积积分相似,将y2[t]向右平移一个单位后,两图像波形重合,若在y2[t]最前面补零,或缩小抽样间隔,即可由y2[t]的卷积积分近似地求解y2(t)地卷积积分。
(3)对(2)中发现象进行理论分析,根据理论分析的结果,给出用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)x2[k]={1, 2 ,1, 0; k=0,1,2}, h2[k]= {1,1;k=0,1}当抽样间隔为0.1时,y2[t]比y2(t)超前一个单位,故在y2[t]最前面补零,采用plot即可画出y2(t)的正确波形。
另外,由二题研讨可知,将抽样间隔缩小(例如抽样间隔取0.01),采用plot画图也可以得到y2(t)的正确波形。
采用补零的方法画出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(t)的近似计算方法有无新的认识?可以由离散的卷积来近似的计算连续函数的卷积,但是要根据实际函数在0右边的积分的值,来确定离散函数向右偏移的格数,如可以取y1(t)的边界值先进行离散序列的卷积,如在用y2[t]来近似计算y2(t)时,由于y2(t)在0~1时,存在卷积积分的由0逐渐增长,到1时,存在着积分的变化,所以应将离散的图形向右平移一个单位。
同时由于连续序列卷积后也是连续的可以将相邻的离散点相连。
这样可以较快的计算出y1(t)的近似。
四、(**)非时限信号卷积积分的近似计算近似计算若卷积积分y3(t)。
若出现问题请分析出现问题的原因,并给出一种解决问题的方案;根据提出的方案完成近似计算卷积分的程序;用近似方法计算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)');当区间长度为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)的卷积,但是实际取的是(0,20)这个区间内的值,在做卷积的计算过程中,使用matlab对t进行了赋值,在赋值以外的点,被认为时0,所以在t>=0&t<=20这个区间内是没有问题的,但是t一但大于20两者的卷积就会有缺失,计算值就不在准确,t>20的部分就相当于是错误的,没有任何意义。
解决方法:在绘制图形时,将绘制图形的坐标范围限定在t的取值范围之内,或绘制图形后去掉无效值。
五、(***)卷积函数conv函数选项的定义与应用研究在新版MATLAB中,卷积函数conv提供了选项conv(A, B,’valid’ ),下面将研究conv(A, B,’valid’ )的定义及应用。
(1)读MATLAB提供的关于conv的Help,给出卷积函数conv(A, B,’valid’ )的定义。
设计一些简单的实验,验证你给出的定义。
你认为这样定义的卷积有何优缺点?键入“help conv”可知matlab对于valid的定义:C = CONV(A, B, SHAPE) returns a subsection of the convolution with sizespecified by SHAPE:'valid' - returns only those parts of the convolutionthat are computed without the zero-padded edges.LENGTH(C)is MAX(LENGTH(A)-MAX(0,LENGTH(B)-1),0).【只返回那些卷积计算无零填充的边缘部分】接下来利用A=[1 2 3 4 5]和B=[1 2 3]对valid进行研究。