利用MATLAB实现循环卷积.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、实验目的 利用 MATLAB 实现循环卷积。 比较循环卷积与线性卷积的区别。 二、实验条件 PC 机,MATLAB7.0 三、实验内容 循环卷积的定义:两个序列的 N 点循环卷积定义为: [h(n) ? x(n)] ? ?N ?1 h(m)x(n ? m) (0 ? n ? N ) N N k ?0 利用 MATLAB 实现两个序列的循环卷积可以分三个步骤完成: (1)初始化:确定循环点数 N,测量输入 2 个序列的长度。 循环右移函数:将序列 x(n)循环右移,一共移 N 次(N 为循环卷积的循环次数), 最后将每次循环成的新序列组成一个矩阵 V。 相乘:将 x(n)移位后组成的矩阵 V 与第二个序列 h(n)对应相乘,即得循环卷积结果。程序如下: 程 序 一 : clear;close all; N=10; x1=[6 15 -6 3 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)); 运行后所得图形如下: 观察所得的循环卷积结果发现并没有呈现周期性的序列,因此将程序做下列改变。程序二: 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: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(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)); 线性卷积与循环卷积的区别: 从循环卷积的定义公式中可以看出,循环卷积和线性卷积的不同之处在于:①两个 N 点序列的 N 点循环卷积的结果仍为 N 点序列,而两个 N 点序列线性卷积的结果的长度则变为为 2N-1;②循环卷积对序列的移位采取循环移位,而线性卷积对序列则是 采取线性位移。而就是这两点不同,导致循环卷积和线性卷积有不同的结果和性质。 然而虽然循环卷积和线性卷积虽然是不同的概念,但是它们之间有一个有意义的 公式联系在一起 y(n) ? [h(n) ? x(n)] N ? ?? ??? r ??? ? ? y(n ? rN )?G ?? N ? (n) ,其中 y(n) ? h(n)* x(n) ; 也就是说,两个序列的N 点循环卷积是他们的线性卷积以 N 为周期的周期延阔。设 序列 h(n)的长度为 N ,序列 x(n)的长度为 N ,此时,线性卷积结果的序列的点数为 1 2 N ? N ? N -1;因此如果循环卷积的点数 N 小于 N ? N ?1 ,那么上述周期性延阔的 1 2 1 2

文档评论(0)

hao187 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档