当前位置:文档之家› 线性卷积与圆周卷积演示程序的设计

线性卷积与圆周卷积演示程序的设计

实验一线性卷积与圆周卷积演示程序的设计实验报告学号专业班级指导老师分数《数字信号处理课程设计》任务书实验一 线性卷积与圆周卷积演示程序的设计一、 实验目的目的:① 熟练掌握MATLAB 工具软件在工程设计中的使用;② 熟练掌握线性卷积与圆周卷积的关系及LSI 离散时间系统系统响应的求解方法。

要求:① 动态演示线性卷积的完整过程;② 动态演示圆周卷积的完整过程; ③ 对比分析线性卷积与圆周卷积的结果。

步骤:① 可输入任意2待卷积序列x1(n)、x2(n),长度不做限定。

测试数据为:x1(n)={1,1,1,1,0,0,1,1,1,1,0,0},x2(n)={0,1,2,1,0,0,0,1,2,1,0,0};② 分别动态演示两序列进行线性卷积x1(n)﹡x2(n)和圆周卷积x1(n)⊙x2 (n)的过程;要求分别动态演示翻转、移位、乘积、求和的过程;③ 圆周卷积默认使用2序列中的最大长度,但卷积前可以指定卷积长度N 用以进行混叠分析;④ 根据实验结果分析两类卷积的关系。

⑤ 假定时域序列x1(n)、x2(n)的长度不小于10000,序列容自定义。

利用 FFT 实现快速卷积,验证时域卷积定理,并与直接卷积进行效率对比。

二、实验原理1、线性卷积:线性时不变系统(Linear Time-Invariant System, or L. T. I 系统)输入、输出间的关系为:当系统输入序列为)(n x ,系统的单位脉冲响应为)(n h ,输出序列为)(n y ,则系统输出为:∑∞-∞==-=m n h n x m n h m x n y )(*)()()()(或∑+∞-∞==-=m n x n h m n x m h n y )(*)()()()(上式称为离散卷积或线性卷积。

图1.1示出线性时不变系统的输入、输出关系。

)(n δ→ L. T. I —→)(n h —→ —→图1.1 线性时不变系统的输入、输出关系2、圆周卷积设两个有限长序列)(1n x 和)(2n x ,均为N 点长)(1n x )(1k X )(2n x )(2k X如果)()()(213k X k X k X ⋅=则)()(~)(~)(10213n R m n x m x n x N N m ⎥⎦⎤⎢⎣⎡-=∑-=[]∑---=1021)()(N m N m n x m x)(1n x =N 10)(2-≤≤N n n x上式称为圆周卷积。

注:)(~1n x 为)(1n x 序列的周期化序列;)()(~1n R n x N 为)(~1n x 的主值序列。

上机编程计算时,)(3n x 可表示如下:∑∑-+==-++-=1121213)()()()()(N n m nm m n N xm x m n x m x n x3、两个有限长序列的线性卷积序列)(1n x 为L 点长,序列)(2n x 为P 点长,)(3n x 为这两个序列的线性卷积,则)(3n x 为∑+∞-∞=-=m m n xm x n x )()()(213)(n x 0L. T. I∑+∞-∞=-=m m n h m x n y )()()(D F T D F T且线性卷积)(3n x 的最大长1-+P L ,也就是说当1-≤n 和1-+≥P L n 时)(3=n x 。

4、圆周卷积与线性卷积的关系序列)(1n x 为L 点长,序列)(2n x 为P 点长,若序列)(1n x 和)(2n x 进行N 点的圆周卷积,其结果是否等于该两序列的线性卷积,完全取决于圆周卷积的长度:当1-+≥P L N 时圆周卷积等于线性卷积,即)(1n x N )(*)()(212n x n x n x =当1-+<P L N 时,圆周卷积等于两个序列的线性卷积加上相当于下式的时间混叠,即⎪⎩⎪⎨⎧-≤≤+=∑+∞-∞=nN n rN n x n x r N 其它010)()(33三、实验步骤已知两个有限长序列)4(5)3(4)2(3)1(2)()(-+-+-+-+=n n n n n n x δδδδδ )3(2)2()1(2)()(-+-+-+=n n n n N H δδδδ1、实验前,预先笔算好这两个序列的线性卷积及下列几种情况的圆周卷积)()1(n x ⑤)(n h )()2(n x ⑥)(n h )()3(n x ⑨)(n h )()4(n x ⑩)(n h2、编制一个计算圆周卷积的通用程序,计算上述4种情况下两个序列)(n x 与)(n h 的圆周卷积。

3、上机调试并打印或记录实验结果。

4、将实验结果与预先笔算的结果比较,验证其正确性。

五、实验报告1、列出计算两种卷积的公式,列出实验程序清单(包括必要的程序说明)。

2、记录调试运行情况及所遇问题的解决方法。

3、给出实验结果,并对结果作出分析。

验证圆周卷积两者之间的关系实验结果(1)程序clear all;N1=5;N2=4;xn=[1,1,1,1,0,0,1,1,1,1,0,0];%生成x(n)hn=[0,1,2,1,0,0,0,1,2,1,0,0];%生成h(n)yln=conv(xn,hn);%直接用函数conv计算线性卷积ycn=circonv(xn,hn,5);%用函数circonv计算N1点圆周卷积ny1=[0:1:length(yln)-1];ny2=[0:1:length(ycn)-1];subplot(2,1,1);%画图stem(ny1,yln);ylabel('线性卷积');subplot(2,1,2);stem(ny2,ycn);ylabel('圆周卷积');题目:已知两个有限长序列x(n)=δ(n)+2δ(n-1)+3δ(n-2)+4δ(n-3)+5δ(n-4)h(n)=δ(n)+2δ(n-1)+δ(n-2)+2δ(n-3)计算以下两个序列的线性卷积和圆周卷积(1)x(n)⑤y(n) (2)x(n)⑥y(n) (3)x(n)⑨y(n) (4)x(n)⑩y(n)●调用函数circonvfunction yc=circonv(x1,x2,N)%用直接法实现圆周卷积%y=circonv(x1,x2,N)%y:输出序列%x1,x2:输入序列%N:圆周卷积的长度if length(x1)>Nerror;endif length(x2)>Nerror;end%以上语句判断两个序列的长度是否小于Nx1=[x1,zeros(1,N-length(x1))];%填充序列x1(n)使其长度为N,序列h(n)的长度为N1,序列x(n)的长度为N2x2=[x2,zeros(1,N-length(x2))];%填充序列x2(n)使其长度为Nn=[0:1:N-1];x2=x2(mod(-n,N)+1);%生成序列x2((-n))N,镜像,可实现对x(n)以N为周期的周期延拓,加1是因为MATLAB 向量下标只能从1开始。

H=zeros(N,N);%生成N行N列的零矩阵for n=1:1:NH(n,:)=cirshifted(x2,n-1,N);%该矩阵的k行为x2((k-1-n))Nendyc=x1*H';%计算圆周卷积●调用函数cirshiftdfunction y=cirshiftd(x,m,N)%直接实现序列x的圆周移位%y=cirshiftd(x,m,N)%x:输入序列,且它的长度小于N%m:移位位数%N:圆周卷积的长度%y:输出的移位序列if length(x)>Nerror('x的长度必须小于N');endx=[x,zeros(1,N-length(x))];n=[0:1:N-1];y=x(mod(n-m,N)+1);•函数(1)x(n)⑤y(n)clear all;N1=5;N2=4;xn=[1 2 3 4 5];%生成x(n)hn=[1 2 1 2];%生成h(n)yln=conv(xn,hn);%直接用函数conv计算线性卷积ycn=circonv(xn,hn,5);%用函数circonv计算N1点圆周卷积ny1=[0:1:length(yln)-1];ny2=[0:1:length(ycn)-1];subplot(2,1,1);%画图stem(ny1,yln);ylabel('线性卷积');subplot(2,1,2);stem(ny2,ycn);ylabel('圆周卷积');•函数(2)x(n)⑥y(n)clear all;N1=5;N2=4;xn=[1 2 3 4 5];%生成x(n)hn=[1 2 1 2];%生成h(n)yln=conv(xn,hn);%直接用函数conv计算线性卷积ycn=circonv(xn,hn,6);%用函数circonv计算N1点圆周卷积ny1=[0:1:length(yln)-1];ny2=[0:1:length(ycn)-1];subplot(2,1,1);stem(ny1,yln);ylabel('线性卷积');subplot(2,1,2);stem(ny2,ycn);ylabel('圆周卷积');•函数(3)x(n)⑨y(n)clear all;N1=5;N2=4;xn=[1 2 3 4 5];%生成x(n)hn=[1 2 1 2];%生成h(n)yln=conv(xn,hn);%直接用函数conv计算线性卷积ycn=circonv(xn,hn,9);%用函数circonv计算N1点圆周卷积ny1=[0:1:length(yln)-1];ny2=[0:1:length(ycn)-1];subplot(2,1,1);stem(ny1,yln);ylabel('线性卷积');subplot(2,1,2);stem(ny2,ycn);ylabel('圆周卷积');•函数(4)x(n)⑩y(n)clear all;N1=5;N2=4;xn=[1 2 3 4 5];%生成x(n)hn=[1 2 1 2];%生成h(n)yln=conv(xn,hn);%直接用函数conv计算线性卷积ycn=circonv(xn,hn,10);%用函数circonv计算N1点圆周卷积ny1=[0:1:length(yln)-1];ny2=[0:1:length(ycn)-1];subplot(2,1,1);stem(ny1,yln);ylabel('线性卷积');subplot(2,1,2);stem(ny2,ycn);ylabel('圆周卷积');六、思考题:①圆周卷积与线性卷积的关系:若有x1(n)与x2(n)两个分别为N1与N2的有限长序列,则它们的线性卷积y1(n)为N1+N2-1的有限长序列,而它们的N点圆周卷积y2(n)则有以下两种情况:1,当N<N1+N2-1时,y2(n)是由y1(n)的前N点和后(N1+N2-1-N)点圆周移位后的叠加而成;N> N1+N2-1时,y2(n)的前N1+N2-1的点刚好是y1(n)的全部非零序列,而剩下的N-(N1+N2-1)个点上的序列则是补充的零。

相关主题