1、1.1 市场与市场营销市场与市场营销1.2 我国汽车市场的发展与现状我国汽车市场的发展与现状复习思考题复习思考题实验5 卷积的原理及应用一、实验目的一、实验目的(1)通过实验进一步理解卷积定理,了解卷积的过程。(2)掌握应用线性卷积求解离散时间系统响应的基本方法。(3)了解MATLAB中有关卷积的子函数及其应用方法。二、实验涉及的二、实验涉及的MATLAB子函数子函数1.conv功能:功能:进行两个序列间的卷积运算。调用格式:调用格式:yconv(x,h);用于求取两个有限长序列x和h的卷积,y的长度取x、h长度之和减1。例如,x(n)和h(n)的长度分别为M和N,则yconv(x,h)y的长
2、度为NM1。使用注意事项:使用注意事项:conv默认两个信号的时间序列从n0开始,因此默认y对应的时间序号也从n0开始。2.sum功能:求各元素之和。调用格式:Zsum(x);求各元素之和,常用于等宽数组求定积分。3.hold功能:功能:控制当前图形是否刷新的双向切换开关。调用格式:调用格式:holdon;使当前轴及图形保持而不被刷新,准备接受此后将绘制的新曲线。holdoff;使当前轴及图形不再具备不被刷新的性质。4.pause功能:功能:暂停执行文件。调用格式:调用格式:pause;暂停执行文件,等待用户按任意键继续。pause(n);在继续执行之前,暂停n秒。三、实验原理三、实验原理1.
3、离散离散LSI系统的线性卷积系统的线性卷积由理论学习我们已知,对于线性移不变离散系统,任意的输入信号x(n)可以用d(n)及其位移的线性组合来表示,即1)(nx(1)(n)x(0)1)(n1)x(k)(nx(k)x(n)k当输入为d(n)时,系统的输出y(n)h(n),由系统的线性移不变性质可以得到系统对x(n)的响应y(n)为称为离散系统的线性卷积,简记为y(n)x(n)*h(n)kk)h(nx(k)y(n)也就是说,如果已知系统的冲激响应,将输入信号与系统的冲激响应进行卷积运算,即可求得系统的响应。MATLAB提供了进行卷积运算的conv子函数。2.直接使用直接使用conv进行卷积运算进行
4、卷积运算求解两个序列的卷积,很重要的问题在于卷积结果的时宽区间如何确定。在MATLAB中,卷积子函数conv默认两个信号的时间序列从n0开始,y对应的时间序号也从n0开始。例例5-1 已知两个信号序列:f10.8n(0n20)f2u(n)(0n10)求两个序列的卷积和。编写MATLAB程序如下:nf10:20;%建立f1的时间向量f10.8.nf1;%建立f1信号subplot(2,2,1);stem(nf1,f1,filled);title(f1(n);nf20:10;%建立f2的时间向量lf2length(nf2);%取f2时间向量的长度f2ones(1,lf2);%建立f2信号subpl
5、ot(2,2,2);stem(nf2,f2,filled);title(f2(n);yconv(f1,f2);%卷积运算subplot(2,1,2);stem(y,filled);title(y(n);结果如图5-1所示。图5-1 例5-1f1(n)、f2(n)、y(n)的波形例例5-2 如例4-1,已知一个因果系统的差分方程为6y(n)2y(n2)x(n)3x(n1)3x(n2)x(n3)满足初始条件y(1)0,x(1)0。在该系统的输入端加一个矩形脉冲序列,其脉冲宽度与周期的比例为14,一个周期取16个采样点,求该系统的响应。解解 编写MATLAB程序如下:N16;n0:N1;xones(
6、1,N/4),zeros(1,3*N/4);%产生输入信号序列subplot(3,1,1);stem(n,x,filled);a1,0,1/3,0;b1/6,1/2,1/2,1/6;hnimpz(b,a,n);%求系统的单位冲激响应subplot(3,1,2);stem(n,hn,filled);yconv(x,hn);%卷积运算subplot(3,1,3);stem(y,filled);程序执行的结果如图5-2所示。图5-2 例5-2x(n)、h(n)、y(n)的波形3.复杂序列的卷积运算复杂序列的卷积运算由于MATLAB中卷积子函数conv默认两个信号的时间序列从n0开始,因此,如果信号不
7、是从0开始,则编程时必须用两个数组确定一个信号,其中,一个数组是信号波形的幅度样值,另一个数组是其对应的时间向量。此时,程序的编写较为复杂,我们可以将其处理过程编写成一个可调用的通用子函数。下面是在conv基础上进一步编写的新的卷积子函数convnew,是一个适用于信号从任意时间开始的通用程序。functiony,nyconvnew(x,nx,h,nh)%建立convnew子函数%x为一信号幅度样值向量,nx为x对应的时间向量%h为另一信号或系统冲激函数的非零样值向量,nh为h对应的时间向量%y为卷积积分的非零样值向量,ny为其对应的时间向量n1nx(1)nh(1);%计算y的非零样值的起点位
8、置n2nx(length(x)nh(length(h);%计算y的非零样值的宽度nyn1:n2;%确定y的非零样值时间向量yconv(x,h);用上述程序可以计算两个离散时间序列的卷积和,求解信号通过一个离散系统的响应。例例5-3 两个信号序列:f1为0.5n(0n10)的斜变信号序列;f2为一个u(n2)(2n10)的阶跃序列,求两个序列的卷积和。解解 从信号序列n的范围可见,f2的时间轴起点不是n0,因此,该程序需使用卷积子函数convnew进行计算。编写MATLAB程序如下:nf10:10;%f1的时间向量f10.5*nf1;nf22:10;%f2的时间向量ntlength(nf2);%
9、取f2时间向量的长度f2ones(1,nt);y,nyconvnew(f1,nf1,f2,nf2);%调用convnew卷积子函数subplot(2,2,1),stem(nf1,f1,filled);%显示f1信号subplot(2,2,2),stem(nf2,f2,filled);%显示f2信号subplot(2,1,2),stem(ny,y,filled);%卷积积分结果程序执行的结果如图5-3所示。图5-3 例5-3f1(n)、f2(n)、y(n)的波形例例5-4 已知一个IIR数字低通滤波器的系统函数公式为输入一个矩形信号序列xsquare(n/5)(2n10p)求该系统的响应。321
10、321z0.20407z0.60439z0.343191z0.1321z0.3963z0.39630.1321H(z)编写MATLAB程序如下:nx2:10*pi;xsquare(nx/5);%产生输入信号序列subplot(3,1,1);stem(nx,x,filled);a1,0.34319,0.60439,0.20407;b0.1321,0.3963,0.3963,0.1321;nh0:9;hnimpz(b,a,nh);%求系统的单位冲激响应subplot(3,1,2);stem(nh,hn,filled);y,nyconvnew(x,nx,hn,nh);%调用convnew卷积子函数s
11、ubplot(3,1,3);stem(ny,y,filled);程序执行的结果如图5-4所示。图5-4 例5-4x(n)、h(n)、y(n)的波形4.卷积积分的动态过程演示卷积积分的动态过程演示为了更深入地理解两个序列卷积的原理,下面提供一段演示卷积积分的动态过程的MATLAB程序。例例5-5 动态地演示例5-1求解信号序列f10.8n(0n20)f2u(n)(0nlf1nf20;nf1lf2lf1;%若f2比f1长,对f1补nf1个0 elseiflf2lf1nf10;nf2lf1lf2;%若f1比f2长,对f2补nf2个0 elsenf20;lf10;%若f1与f2同长,不补0endltl
12、max;%取长者为补0长度基础%先将f2补得与f1同长,再将两边补最大长度的0uzeros(1,lt),f2,zeros(1,nf2),zeros(1,lt);t1(lt1:2*lt);%先将f1补得与f2同长,再将左边补2倍最大长度的0f1zeros(1,2*lt),f1,zeros(1,nf1);hf1fliplr(f1);%将f1作左右反折Nlength(hf1);yzeros(1,3*lt);%将y存储单元初始化fork0:2*lt%动态演示绘图 pzeros(1,k),hf1(1:Nk);%使hf1向右循环移位 y1u.*p;KG4%使输入和翻转移位的脉冲过渡函数逐项相乘yksum(
13、y1);%相加 y(klt1)yk;%将结果放入数组y subplot(4,1,1);stem(t1,u);subplot(4,1,2);stem(t1,p);subplot(4,1,3);stem(t1,y1);subplot(4,1,4);stem(k,yk);%作图表示每一次卷积的结果 axis(20,50,0,5);holdonKG1%在图形窗上保留每一次运行的图形结果pause(1);%停顿1秒钟end四、实验任务四、实验任务(1)输入并运行例题程序,理解每一条语句的意义。(2)编写MATLAB程序,描绘下列信号序列的卷积波形:f1(n)d(n1),f2(n)u(n2),(0n10)
14、f1(n)u(n),f2(n)e0.2nu(n),(0n10)x(n)sinn,h(n)(0.5)n,(3n4p)x(n)d(n2)d(n1),h(n)R4(n),(3n8)(3)已知一个系统的差分方程为y(n)0.7y(n1)2x(n)x(n2),试求此系统的输入序列x(n)u(n3)的响应。2n(4)已知一个系统试求此系统的输入序列x(n)R5(n)的响应。(5)一个LSI系统的单位冲激响应为 h(n)3d(n3)0.5d(n4)0.2d(n5)0.7d(n6)0.8d(n7)试求此系统的输入序列x(n)e0.5nu(n)的响应。2321z3zz3z3121H(z)五、实验预习五、实验预习(1)认真阅读实验原理部分,了解用MATLAB进行离散时间系统卷积的基本原理、方法和步骤。(2)读懂实验原理部分的有关例题,根据实验任务编写实验程序。(3)预习思考题:MATLAB中提供的conv卷积子函数,使用中需满足什么条件?如果条件不满足,应如何处理?六、实验报告六、实验报告(1)列写已调试通过的实验任务程序,打印或描绘实验程序产生的曲线图形。(2)思考题:回答预习思考题。请简述:调用子函数convnew进行卷积积分处理前要做哪些准备,与使用conv有何不同。