实验7利用FFT实现快速卷积2..docVIP

  1. 1、本文档共5页,可阅读全部内容。
  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文档。上传文档
查看更多
实验7利用FFT实现快速卷积2.

实验七 利用FFT实现快速卷积 一、?实验目的 1、通过这一实验,加深理解FFT在实现数字滤波(或快速卷积)中的重要作用,更好的利用FFT进行数字信号处理。 2、进一步掌握循环卷积和线性卷积两者之间的关系。? 二、实验原理 ?数字滤波器根据系统的单位脉冲响应h(n)是有限长还是无限长可分为有限长单位脉冲响应(Finite Impulse Response)系统(简记为FIR系统)和无限长单位脉冲响应(Infinite Impulse Response)系统(简记为IIR系统)。 对于FIR滤波器来说,除了可以通过数字网络来实现外,也可以通过FFT的变换来实现。 一个信号序列x(n)通过FIR滤波器时,其输出应该是x(n)与h(n)的卷积: 或 当h(n)是一个有限长序列,即h(n)是FIR滤波器,且时 在数字网络(见图7.1)类的FIR滤波器中,普遍使用的横截型结构(见下图7.2)就是按这个卷积公式构成的。 ? ? ? 图7.1 滤波器的数字网络实现方法 ? ? ? 图7.2 FIR滤波器横截型结构 ? 应用FFT实现数字滤波器实际上就是用FFT来快速计算有限长度列间的线性卷积。 粗略地说,这种方法就是先将输入信号x(n)通过FFT变换为它的频谱采样 值X(k),然后再和FIR滤波器的频响采样值H(k)相乘,H(k)可事先存放在存储器中,最后再将乘积H(k)X(k)通过快速傅里叶变换(简称IFFT)还原为时域序列,即得到输出y(n)如图7.3所示。 ? ? ? ? ? 图7.3 数字滤波器的快速傅里叶变换实现方法 ? 现以FFT求有限长序列间的卷积及求有限长度列与较长序列间的卷积为例来讨论FFT的快速卷积方法。 1、序列和的列长差不多。设的列长为,的列长为,要求 N 用FFT完成这一卷积的具体步骤如下: 为使两有限长序列的线性卷积可用其循环卷积代替而不发生混叠,必须选择循环卷积长度,若采用基2-FFT完成卷积运算,要求(为整数)。 用补零方法使,变成列长为的序列。 用FFT计算的点离散傅里叶变换 做和乘积, 用FFT计算的离散傅里叶反变换得 2、当x(n)长度很长时,即,通常不允许等x(n)全部采集齐后再进行卷积,否则使输出相对于输入有较长的延时,另外,若太大,要补上太多的零点,很不经济,且FFT的计算时间也要很长。为此,采用分段卷积的方法,即把x(n)分成长度与h(n)相仿的一段段,分别求出每段卷积的结果,然后用相应的方式把它们结合起来,便是总的输出。分段卷积方法主要有两种,即重叠相加法和重叠保留法。具体内容请参考教材中“快速离散傅里叶变换”一章中的线性卷积的FFT算法部分,本实验这部分不作重点要求。 三、实验方法 若序列x1(n)、x2(n)为长度分别为N1、N2的有限长序列,N,。由DFT的性质可知:当时有。序列较长时DFT运算通常用快速算法FFT实现。在MATLAB的信号处理工具箱中函数FFT和IFFT用于快速傅里叶变换和逆变换。函数FFT的调用格式同实验三。 例7.1:用FFT实现下两序列的线性卷积。 实现程序: n=[0:1:11]; m=[0:1:5]; N1=length(n); N2=length(m); xn=0.8.^n; %生成x(n) hn=ones(1,N2); %生成h(n) N=N1+N2-1; XK=fft(xn,N); HK=fft(hn,N); YK=XK.*HK; yn=ifft(YK,N); if all(imag(xn)==0)(all(imag(hn)==0)) %实序列的循环卷积仍然为实序列 yn=real(yn); end x=0:N-1; stem(x,yn,’.’) ?运行结果: 图6.4 利用FFT实现线性卷积 四、实验内容及要求 1、数字滤波器的脉冲响应为可自定,本实验取 输入序列可选下列几种情况 ???可取16 2、实验前,预先计算好的值。 3、实验前,预先编制一个应用FFT实现数字滤波器的通用程序。 4、上机独立调试,并打印或记录实验结果。 5、将实验结果与预先笔算的结果比较,验证其正确性。? 五、思考题 对一个有限长序列进行DFT等价于将该序列周期延拓后进行DFS展开,因为DFS也只是取其中一个周期来计算,所以FFT在一定条件下也可以用以分析周期信号序列。如果实正弦信号sin(2πfn),f=0.1用16点FFT来做DFS运算,得到的频谱时信号本身的真实谱吗? 六、实验报告要求 1、简述实验原理,画出程序框图,并列出实验程序清单,包括必要的

文档评论(0)

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

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

1亿VIP精品文档

相关文档