ImageVerifierCode 换一换
格式:DOC , 页数:13 ,大小:237.50KB ,
资源ID:1261073      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1261073.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于重叠相加法圆周卷积的实现.doc)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于重叠相加法圆周卷积的实现.doc

1、武汉理工大学数字信号处理课程设计说明书目 录摘要1 理论学习11.1圆周卷积原理11.2重叠相加法21.3重叠相加法圆周卷积41.4线性卷积、圆周卷积、重叠相加法、DFT、FFT之间的联系52 程序设计62.1程序设计思路62.2程序设计流程图72.3 程序代码73程序调试与结果与分析9心得体会11参考文献121 理论学习1.1圆周卷积原理对两个N点序列和,除了可以做线性卷积外,还有一种很重要的卷积运算,就是圆周卷积。令则圆周卷积结果长度不变, 为N.由上式可以得出圆周卷积与周期卷积的关系,就是有限长序列圆周卷积结果的周期延拓,等于它们周期延拓后的周期卷积。也就是说,周期卷积的主值序列,是各周

2、期序列主值序列的圆周卷积。若、分别是长度为N、M的序列则与线性卷积至多M+N-1个非零值,如果LM+N-1时,周期延拓才不会发生混叠。之所以讨论用圆周卷积来计算线性卷积的条件,是因为圆周卷积可在频域下利用DFT求得,从而可采用DFT的快速算法FFT来计算,这样就可以利用FFT来计算线性卷积,大大提高运算效率。圆周卷积的实现步骤如下图:图1.1 圆周卷积的实现步骤1.2重叠相加法DFT 是连续傅里叶变换在时域和频域上都离散的形式,将时域信号的采样变换为在离散时间傅里叶变换频域的采样。在形式上,变换两端(时域和频域上)的序列是有限长的。DFT 具备明确且合理的物理含义,适合应用于数字系统,同时可以

3、方便地由计算机进行运算。对于线性非移变离散系统,可由线性卷积表示时域输入输出关系,即y(n)=x(n)*h(n)通常采用循环卷积降低运算量,但实际中往往无法满足对信号处理的实时性要求。因此,产生了重叠相加法,用以快速计算线性卷积,成为了DFT 的一个重要应用。重叠相加法是将待过滤的信号分割成长为N 的若干段,如图1 所示,每一段都可以和有限时宽单位取样响应作卷积,再将过滤后的各段重叠相加。具体算法实现原理如图2 所示,建立缓存序列,每次输入N 点序列,通过计算x(n) 和h(n) 的循环卷积实现线性卷积运算,将缓存的M-1 点序列和卷积结果相加,并输出前N 点作为计算结果,同时缓存后M-1 点

4、,如此循环,直至所有分段计算完毕,则输出序列y(n)为最终计算结果。图1.2 重叠相加法的分段示意图图1.3 重叠相加法算法示意图1.3重叠相加法圆周卷积在实际应用中利用FFT来计算两个序列的圆周卷积从而实现计算其线性卷积,但是常遇到的问题是参加卷积的两个序列的长度相差较大,这样长度小的序列就需要补很多的零点,这样就需要较大的存储量,运算时间也会变长。所以常用到的解决方法有两种,其中一种就是重叠相加法。h(n)长度为N,x(n)长度为无限长,x(n)取M点,且与N尽量接近 x(n)与h(n)的卷积为图1.4 重叠相加法的卷积示意图重叠相加法的步骤如下(1)将h(n)补零延长到L =M+ N -

5、1,并计算长为L的FFT,得到 H(k)。(2)分别将xk(n)补零延长到L =M+ N -1,并计算长为L的FFT,得到 Xk(k)(3)计算,并求长为L的反变换,即(4)将yk(n)的重叠部分相加,最后得到结果为1.4线性卷积、圆周卷积、重叠相加法、DFT、FFT之间的联系由时域与频域的关系可知,两序列和在时域下进行线性卷积的结果等于这两个序列在频域下相乘后进行反变换回时域的结果。圆周卷积在一定条件下(LM+N-1)与线性卷积得到的结果相同,而圆周卷积可在频域下利用DFT求得,从而可采用DFT的快速算法FFT来计算,这样就可以利用FFT来计算线性卷积,大大提高运算效率。而在利用FFT来计算

6、圆周卷积的过程中当两序列的长度相差较大时采用重叠相加法来进行计算可有效提高计算的效率,减小存储空间的消耗。2 程序设计2.1程序设计思路函数conv (x1,x2,L)设计(1) x1(n)进行N点快速傅里叶变换得X1k(2) x2(n)进行N点快速傅里叶变换得X2k(3) 进行频域相乘Yk=X1k*X2k(4) 对Yk进行反变换得到时域卷积结果y(n)函数overlap_add(x,h,N)设计方案1:(1)首先取长序列x(n)进行分段的长度N,以使其分段后的长度与较短的相近(2)确定圆周卷积的周期L(3)填充序列使得循环中对序列的索引不会超出范围(4)确定分段数K(5)对序列进行分段调用c

7、onv ()函数计算圆周卷积(6)各段重叠相加(7)取出实际的输出序列方案2:(1)首先取圆周卷积的周期L(即进行L点的快速傅里叶变换)(2)计算每一分段的大小N(3)填充序列使得循环中对序列的索引不会超出范围(4)计算分段数K(5)对序列进行分段调用conv ()函数计算圆周卷积(6)各段重叠相加(7)取出实际的输出序列结论:方案二比较接近我们平常的思维,使用较为方便,利于程序调试。2.2程序设计流程图开始输入序列x(n),h(n)计算各个序列长度,分段数,生成临时序列填入保留值后分段循环卷积输出前N个点并为t(n)重新赋为保留值完成所有分段计算输出序列y(n)结束图2.1 程序设计流程图2

8、.3 程序代码function y = circular_conv( x1,x2,L) % 利用循环卷积计算线性卷积 % 循环卷积采用频域计算方法,已FFT代替DFT,降低运算量 X1k = fft(x1,L); %x1做L点FFT X2k = fft(x2,L); %x1做L点FFT Yk = X1k.*X2k; %频域相乘 y = ifft(Yk); %FFT反变换得循环卷积结果 function y = overlap_add(x,h,N) %重叠相加法实现 %核心为将高点数DFT转化为低点数DFT,且用循环卷积计算线性卷积 M = length(h); %获得h(n)的长度 if N

9、M %为N选择合适的值保证运算正确 N = M+1; end L = M+N-1; %循环卷积与线性卷积结果相同时需要进行运算的最少点数 Lx = length(x); %获得x(n)的长度 T = ceil(Lx/N); %确定分段数T t = zeros(1,M-1); %初始化序列t(n) x = x,zeros(1, (T+1)*N-Lx); %不足的分段补零 y = zeros(1, (T+1)*N); %生成输出序列y(n),长度足够长 for i=0:1:T xi=i*N+1; x_seg = x(xi:xi+N-1); %选择低点数计算时的分段x(n) y_seg = circ

10、ular_conv(x_seg,h,L); %调用循环卷积计算线性卷积 y_seg(1:M-1) = y_seg(1:M-1)+t(1:M-1);%完成重叠相加 t(1:M-1) = y_seg(N+1:L); %重新对t(n)赋值为保留的后M-1点 y(xi:xi+N-1) = y_seg(1:N); %直接输出前N个点 end y=y(1:Lx+M-1); %取出最终的输出序列3程序调试与结果与分析先输入程序段conv( x1,x2,L)保存为circular_conv.m再输入程序段overlap_add(x,h,N)保存为overlap_add.m如下图:图3.1 程序调试输入序列和周

11、期Lx1=1:1:10;x2=-2,0,2;L=12;图3.2 程序调试结果1如图可见,运算结果:-2 -4 -4 -4 -4 -4 -4 -4 -4 -4 18 20输入指令输出图表可获得更直观的结论:x=1:1:10;h=-2,0,2;overlap_add(x,h,12);subplot(3,1,1);c=1:10;stem(c,x);subplot(3,1,2);b=1:3;stem(b,h);subplot(3,1,3);a=1:12;stem(a,ans);图3.3 卷积结果由程序运行结果与线性卷积结果比较可以知道程序计算结果正确的,程序设计完成。心得体会在画家眼里,设计是一幅清明

12、上河图或是一幅向日葵;在建筑师眼中,设计是昔日鎏金般的圆明园或是今日一塑自由女神像;在电子工程师心中,设计是贝尔实验室的电话机或是华为的程控交换机。凡此种种,但凡涉及设计都是一件美好的事情,因为她能给人以美的幻想,因为她能给人以金般财富,因为她能给人以成就之感,更为现实的是她能给人以成长以及成长所需的营养,而这种营养更是一种福祉,一辈子消受不竭享用不尽。我就是以此心态对待此次DSP课程设计的,所谓“态度决定一切”,于是偶然又必然地收获了诸多,概而言之,大约以下几点: 温故而知新。课程设计发端之始,思绪全无,举步维艰,对于理论知识学习不够扎实的我深感“书到用时方恨少”,于是想起圣人之言“温故而知

13、新”,便重拾教材与实验手册,对知识系统而全面进行了梳理,遇到难处先是苦思冥想再向同学请教,终于熟练掌握了基本理论知识,学会了如何思考的思维方式,找到了设计的灵感。 思路即出路。当初没有思路,诚如举步维艰,茫茫大地,不见道路。在对理论知识梳理掌握之后,茅塞顿开,柳暗花明,思路如泉涌,高歌“条条大路通罗马”。顿悟,没有思路便无出路,原来思路即出路。 实践出真知。文革之后,关于真理的大讨论最终结果是“实践是检验真理的唯一标准”,自从耳闻以来,便一直以为马克思主义中国化生成的教条。时至今日,课程设计基本告成,才切身领悟“实践是检验真理的唯一标准”,才明晓实践出真知。 创新求发展。“创新”目前在我国已经

14、提升到国家发展战略地位,足见“创新”的举足轻重。而在DVD产品上市之初及以后相当长时间内,原本前景看好的国内市场却使国内DVD生产商无利可图,只因核心技术受制于人,每台售出总要交付高额专利技术使用费。因此,我们在课程设计中不忘在小处创新,未必是创新技术,但凡创新思维亦可,未必成功,只要实现创新思维培育和锻炼即可。 过而能改,善莫大焉。至善至美,是人类永恒的追求。但是,不从忘却“金无足赤,人无完人”,我们换种思维方式,去恶亦是至善,改错亦为至美。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的仿真环节,本身就是在践行“过而能改,善莫大焉”的知行观。最后,我想我必须对我的指导老师说一声谢谢!参考文献1 刘泉、阙大顺、郭志强,数字信号处理,电子工业出版社,20092唐昌建,Matlab编程基础及应用,四川大学网络教育学院, 2003.53吴锡龙,电路分析,高等教育出版社,20044张志涌,MATLAB教程,北京航天航空大学出版社,20055曹弋,MATLAB教程及实例,机械工业出版社,200812

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1