通过重叠相加法实现卷积的报告.docVIP

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数字信号处理 课程设计 题目:通过重叠相加法实现卷积 院系:自动化与信息工程学院 专业:通信工程 班级: 通信091 学号: 3090432028 姓名: 雷帛川 指导教师: 李建勋 职称: 副教授 2012年7月1日2012年7月14日 用结构化设计方法。一个程序划分成若干模块,每一个模块的函数功能要划分好,总体设计应画出流程图; 输入输出界面要友好; 源程序书写要规范,加必要的注释; 要提供通过Matlab函数进行检验的结果; 程序一定要要能运行起来。 原理 经常遇到两个序列的长度相差很大的情况,解决这个问题的方法就是将长序列分段计算,运用分段处理方法中的重叠相加法计算两个序列的卷积运算。 设一个给定序列是长度为n1的A,另一个导入序列是长度为n2的B,其中B序列是相对A序列比较长的,所以可以把B分为和A一样长的若干段段,即B分后每一小段长度为n1。根据公式: 可知将B序列的每一小段与A序列做现行卷积,然后将所有的n2/n1段的线性卷积结果相加起来就是整个B序列和A序列的线性卷积结果,而又在本设计中,B序列的一小段和A序列的线性卷积又可由循环卷积来实现,只要让循环卷积的点数,循环卷积的结果就和线性卷积的结果等价,在本实验中取,故A序列和B序列的线性卷积可认为是由A序列和B的每一小段做点的循环卷积的最终累加和, 另外还有两个个问题需要考虑,首先是做循环卷积时要对A序列和B序列的那一小段补零做卷积后,最终做累加的时候要考虑重叠的片段,必须将重叠的两段加起来。不重叠的片段直接赋值。其次是如果B序列长度n2不是A序列长度n1的整数倍时,必须将B序列余下的那几个数补零后和A序列做点循环卷积再加到最终的结果的相应位置。 下列是计算循环卷积的过程: 在本次课设题中序列A和B序列的某一小段做循环卷积,由于已知A序列的长度为n1,故可取B序列的每一小段都和A序列相等长度,并且取循环卷积的点数为,这就保证每一组的循环卷积都等效于线性卷积。做循环卷积可运用循环卷积矩阵做,其第一步是将A序列和B序列的某一小段补零到长度为,然后把A序列通过变换生成的循环卷积矩阵,将补零后的B的某一小段转置,然后用循环卷积矩阵乘以它就可以得到循环卷积的结果,在此也即线性卷积。 重叠相加法的图示如下: 设计过程 1.循环卷积子函数流程图 2.主函数流程图 3.循环卷积子函数源程序: function y=Convmy4(A,B,L) %创建循环卷积函数 if Llength(A)||Llength(B) %A和B中任何一个序列长度大于L则出错 error(出错); end if Llength(A) %如果A序列长度小于L则补零到L A=[A,zeros(1,L-length(A))]; end if Llength(B) %给B序列补零到L B=[B,zeros(1,L-length(B))]; B=B; %B转置 end E=A(1,1); C=A(1,[2:L]); %写循环矩阵的第一行 D=fliplr(C); A=[E,D]; y(1)=A(1,1).*B(1,1); for h=2:1:L y(1)=y(1)+A(1,h).*B(h,1); % %计算循环卷积序列的第一个值 end for k=2:1:L t=A(1,L); for i=L:-1:2 A(1,i)=A(1,i-1); %得到矩阵的第二到L行并计算循环卷积的 end %另外几个值 A(1,1)=t; y(k)=0; for m=1:1:L y(k)=y(k)+A(1,m).*B(m,1); end end 4.主函数源程序:

文档评论(0)

fpiaovxingl + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档