- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数字信号处理
课程设计
题目:通过重叠相加法实现卷积
院系:自动化与信息工程学院
专业:通信工程
班级: 通信
学号:
设计任务
对随机信号进行滑动均值滤波,分析统计特征。
功能:
对给定的数据进行滑动均值滤波。要求从文本文件中读入数据,分析滤波前后的信号统计特征:包括均值、方差、平均功率、自相关和功率谱密度。各项功能可以在界面中选择。画出原始数据的曲线,滤波后的波形,以及自相关序列,功率谱密度。
设计步骤:
初步完成总体设计,搭好框架,确定人机对话的界面,确定输入输出函数的接口;
编写主要程序,包括快速傅立叶正变换和逆变换的程序;
编写实现输入输出功能的程序;
编写波形输出程序;
用matlab的相应函数进行检验。
要求:
用结构化设计方法。一个程序划分成若干模块,每一个模块的函数功能要划分好,总体设计应画出流程图;
输入输出界面要友好;
源程序书写要规范,加必要的注释;
要提供通过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行并计算循
您可能关注的文档
最近下载
- (2024秋新版)人教PEP版三年级英语上册全册教案.doc
- ISO15189质量手册--输血科通用模版(文档-100页).docx VIP
- RBA6.0版标准资料学习课件.ppt VIP
- 2025年北森领导力测试题及答案.doc VIP
- AI政务大厅业务平台架构方案.pptx VIP
- 医疗器械临床应用管理办法.pptx VIP
- 征信简版电子版PDF个人信用报告最新版2024年可编辑带水印模板.pdf VIP
- 人工智能对人类发展利大于弊VS弊大于利辩论赛正方辩词一辩、二辩、三辩、四辩发言稿.pptx VIP
- 人工智能对人类发展利大于弊VS弊大于利辩论赛 反方辩词一辩、二辩、三辩、四辩发言稿.docx VIP
- 北森在线测评题库及答案.doc VIP
文档评论(0)