利用MATLAB实现循环卷积_第1页
利用MATLAB实现循环卷积_第2页
利用MATLAB实现循环卷积_第3页
利用MATLAB实现循环卷积_第4页
利用MATLAB实现循环卷积_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1、 实验目的1. 利用MATLAB实现循环卷积。2. 比较循环卷积与线性卷积的区别。二、实验条件 PC机,MATLAB7.03、 实验内容1) 循环卷积的定义:两个序列的N点循环卷积定义为: 利用MATLAB实现两个序列的循环卷积可以分三个步骤完成:(1)初始化:确定循环点数N,测量输入2个序列的长度。(2)循环右移函数:将序列x(n)循环右移,一共移N次(N为循环卷积的循环次数),最后将每次循环成的新序列组成一个矩阵V。(3)相乘:将x(n)移位后组成的矩阵V与第二个序列h(n)对应相乘,即得循环卷积结果。程序如下:程序一:clear;close all;N=10;x1=6 15 -6 3

2、 5 7 0 1;x2=7 1 2 9 4 3 20 6;xn1=length(x1);xxn1=0:xn1-1;xn2=length(x2);xxn2=0:xn2-1;subplot(3,1,1);stem(xxn1,x1);subplot(3,1,2);stem(xxn2,x2); x11=fft(x1,N);x12=fft(x2,N);y11=x11.*x12;y1=ifft(y11,N);subplot(3,1,3);n=0:length(y1)-1;stem(n,y1,.);title(循环卷积的结果);xlabel(n);ylabel(y1(n);运行后所得图形如下:观察所得的循环

3、卷积结果发现并没有呈现周期性的序列,因此将程序做下列改变。程序二:clear;close all;N=40;x1=6 15 -6 3 5 7 0 1;x2=7 1 2 9 4 3 20 6;x2=x2,x2,x2,x2;xn1=length(x1);xxn1=0:xn1-1;xn2=length(x2);xxn2=0:xn2-1;subplot(3,1,1);stem(xxn1,x1);subplot(3,1,2);stem(xxn2,x2); x11=fft(x1,N);x12=fft(x2,N);y11=x11.*x12;y1=ifft(y11,N);subplot(3,1,3);n=0:

4、length(y1)-1;stem(n,y1,.);title(循环卷积的结果);xlabel(n);ylabel(y1(n);从图中可以看出循环卷积的结果已经呈循环序列。将程序进一步改进在x2序列之间加一些零矩阵;程序如下:clear;close all;N=50;x1=6 15 -6 3 5 7 0 1;x2=7 1 2 9 4 3 20 6;x2=x2,zeros(1,7),x2,zeros(1,7),x2,zeros(1,7),x2;xn1=length(x1);xxn1=0:xn1-1;xn2=length(x2);xxn2=0:xn2-1;subplot(3,1,1);stem(x

5、xn1,x1);subplot(3,1,2);stem(xxn2,x2); x11=fft(x1,N);x12=fft(x2,N);y11=x11.*x12;y1=ifft(y11,N);subplot(3,1,3);n=0:length(y1)-1;stem(n,y1,.);title(循环卷积的结果);xlabel(n);ylabel(y1(n);2)线性卷积与循环卷积的区别:从循环卷积的定义公式中可以看出,循环卷积和线性卷积的不同之处在于:两个N点序列的N点循环卷积的结果仍为N点序列,而两个N点序列线性卷积的结果的长度则变为为2N-1;循环卷积对序列的移位采取循环移位,而线性卷积对序列则

6、是采取线性位移。而就是这两点不同,导致循环卷积和线性卷积有不同的结果和性质。然而虽然循环卷积和线性卷积虽然是不同的概念,但是它们之间有一个有意义的公式联系在一起,其中;也就是说,两个序列的N点循环卷积是他们的线性卷积以N为周期的周期延阔。设序列h(n)的长度为,序列x(n)的长度为,此时,线性卷积结果的序列的点数为;因此如果循环卷积的点数N小于,那么上述周期性延阔的结果就会产生混叠,从而两种卷积会有不同的结果。而如果N满足的条件,就会有。这就会意味着在时域不会产生混叠。因此,可以得出结论:若通过在序列的末尾填充适当的零值,使得x(n)和h(n)成为点序列,并作出这两个序列的循环卷积与线性卷积的

7、结果在范围内相同。 将循环卷积的结果与线性卷积做对比,程序如下:clear;close all;N=50;x1=6 15 -6 3 5 7 0 1;x21=7 1 2 9 4 3 20 6;x2=x21,zeros(1,7),x21,zeros(1,7),x21,zeros(1,7),x21;xn1=length(x1);xxn1=0:xn1-1;xn2=length(x2);xxn2=0:xn2-1;subplot(4,1,1);stem(xxn1,x1);subplot(4,1,2);stem(xxn2,x2); x11=fft(x1,N);x12=fft(x2,N);y11=x11.*x

8、12;y1=ifft(y11,N);subplot(4,1,3);n=0:length(y1)-1;stem(n,y1,.);title(循环卷积的结果);xlabel(n);ylabel(y1(n); y2=conv(x1,x21);subplot(4,1,4)stem(y2,.);title(线性卷积的结果);xlabel(n);ylabel(y2(n); 关于循环卷积,需要知道循环卷积仅仅是针对离散傅里叶变换;然而,这里的循环是针对周期序列而言的;而线性卷积是针对有限长序列,要用DFT求线性卷积,必然要求周期序列的一个周期内求卷积能和有限长序列求线性卷积等值。因此需要求N点长度的循环卷积

9、必然要和线性卷积的长度一致。至少N要不少于线性卷积的长度。 四、实验结论和讨论1.学习了与循环卷积相关的概念,知道了有限长序列的循环移位是指,也就是先让序列y(n)以N为周期进行周期延拓,再进行反折,然后朝右移位,只朝一个方向移位的原因是:对周期序列向右移动一个位置,也就相当于向左移动了N1个位置,最后取(0,N1)的N个值就得到了循环移位后的N个序列值。设有序列x(n)和y(n),其N点循环卷积为:由于循环移位的关系最后得到的循环卷积的长度就是N点,m取0,1,2,N-1。循环卷积的简介表示为:。熟知了循环卷积的算法以及如何用MATLAB实现循环卷积的运算。一共分为三步分别是初始化:确定循环点数N,测量输入2个序列的长度,长度小于N的在后面补0;循环右移函数:将序列x(n)循环右移,一共移N次(N为循环卷积的循环次数),最后将每次循环成的新序列组成一个矩阵V;相乘:将x(n)移位后组成的矩阵V与第二个序列h(n)对应相乘,即得循环卷积结果。2. 再次复习了一边线性卷积的相关性质,比较了线性卷积与循环卷积之间相同与不同之处。知道当循环卷积L=线性卷积的长度时,线性卷积的结果与循环卷积的结果是相等的;但是循环卷积首先长度是不变的,而线性卷积的长度是L1+L2-1,也就是说积分或者求和的上限是不一样的,前者是1:N,而后者是无穷。3. 通过

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论