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

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

ID:6676840

大小:207.26 KB

页数:20页

时间:2018-01-22

通过重叠相加法实现卷积的报告_第1页
通过重叠相加法实现卷积的报告_第2页
通过重叠相加法实现卷积的报告_第3页
通过重叠相加法实现卷积的报告_第4页
通过重叠相加法实现卷积的报告_第5页
资源描述:

《通过重叠相加法实现卷积的报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数字信号处理课程设计题目:通过重叠相加法实现卷积院系:自动化与信息工程学院专业:通信工程班级:通信091学号:3090432028姓名:雷帛川指导教师:李建勋职称:副教授2012年7月10日-2012年7月14日设计任务对随机信号进行滑动均值滤波,分析统计特征。功能:对给定的数据进行滑动均值滤波。要求从文本文件中读入数据,分析滤波前后的信号统计特征:包括均值、方差、平均功率、自相关和功率谱密度。各项功能可以在界面中选择。画出原始数据的曲线,滤波后的波形,以及自相关序列,功率谱密度。设计步骤:1)

2、初步完成总体设计,搭好框架,确定人机对话的界面,确定输入输出函数的接口;2)编写主要程序,包括快速傅立叶正变换和逆变换的程序;3)编写实现输入输出功能的程序;4)编写波形输出程序;5)用matlab的相应函数进行检验。要求:1)用结构化设计方法。一个程序划分成若干模块,每一个模块的函数功能要划分好,总体设计应画出流程图;2)输入输出界面要友好;3)源程序书写要规范,加必要的注释;4)要提供通过Matlab函数进行检验的结果;5)程序一定要要能运行起来。一、原理经常遇到两个序列的长度相差很大的情况

3、,解决这个问题的方法就是将长序列分段计算,运用分段处理方法中的重叠相加法计算两个序列的卷积运算。设一个给定序列是长度为n1的A,另一个导入序列是长度为n2的B,其中B序列是相对A序列比较长的,所以可以把B分为和A一样长的若干段段,即B分后每一小段长度为n1。根据公式:可知将B序列的每一小段与A序列做现行卷积,然后将所有的n2/n1段的线性卷积结果相加起来就是整个B序列和A序列的线性卷积结果,而又在本设计中,B序列的一小段和A序列的线性卷积又可由循环卷积来实现,只要让循环卷积的点数,循环卷积的结果

4、就和线性卷积的结果等价,在本实验中取,故A序列和B序列的线性卷积可认为是由A序列和B的每一小段做点的循环卷积的最终累加和,另外还有两个个问题需要考虑,首先是做循环卷积时要对A序列和B序列的那一小段补零做卷积后,最终做累加的时候要考虑重叠的片段,必须将重叠的两段加起来。不重叠的片段直接赋值。其次是如果B序列长度n2不是A序列长度n1的整数倍时,必须将B序列余下的那几个数补零后和A序列做点循环卷积再加到最终的结果的相应位置。下列是计算循环卷积的过程:在本次课设题中序列A和B序列的某一小段做循环卷积,

5、由于已知A序列的长度为n1,故可取B序列的每一小段都和A序列相等长度,并且取循环卷积的点数为,这就保证每一组的循环卷积都等效于线性卷积。做循环卷积可运用循环卷积矩阵做,其第一步是将A序列和B序列的某一小段补零到长度为,然后把A序列通过变换生成的循环卷积矩阵,将补零后的B的某一小段转置,然后用循环卷积矩阵乘以它就可以得到循环卷积的结果,在此也即线性卷积。重叠相加法的图示如下:二、设计过程1.循环卷积子函数流程图开始输入A序列和B序列若A或B序列的长度大于L则出错若A和B的任一个长度小于L则补零算出

6、循环卷积矩阵并用它和B补零矩阵的转置相乘输出结果结束2.主函数流程图开始输入给定序列A和导入序列BN1=length(A)N2=lehgth(B)将B分为i=fix(n2/n1)个长度为n1的小段取循环卷积点数为L=2*n1-1,并调用设计的子函数每组的循环卷积结果按相应的规则相加将最后一组循环卷积结果未重叠的部分加在得到的总的序列后若mod(n2,n1)~=0将B余下的那几个数补零到L长度再做循环卷积,结果加在叠加序列的后面画出图形,输出结果结束3.循环卷积子函数源程序:functiony=C

7、onvmy4(A,B,L)%创建循环卷积函数ifL

8、

9、Llength(A)%如果A序列长度小于L则补零到LA=[A,zeros(1,L-length(A))];endifL>length(B)%给B序列补零到LB=[B,zeros(1,L-length(B))];B=B';%B转置endE=A(1,1);C=A(1,[2:L]);%写循环矩阵的第一行D=fliplr(C);A=[

10、E,D];y(1)=A(1,1).*B(1,1);forh=2:1:Ly(1)=y(1)+A(1,h).*B(h,1);%%计算循环卷积序列的第一个值endfork=2:1:Lt=A(1,L);fori=L:-1:2A(1,i)=A(1,i-1);%得到矩阵的第二到L行并计算循环卷积的end%另外几个值A(1,1)=t;y(k)=0;form=1:1:Ly(k)=y(k)+A(1,m).*B(m,1);endend4.主函数源程序:A=input('请输入给定序列:');c=load('huan

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。