快速计算离散傅里叶变换.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
快速计算离散傅里叶变换

第4章 快速计算离散傅里叶变换 4.1 引言 4.2 基2FFT算法 4.3 进一步减少运算量的措施 4.4 分裂基FFT算法 4.5 离散哈特莱变换(DHT) 4.1 引言 与序列的傅里叶变换相比,离散傅里叶变换有实用价值。但是按定义直接计算DFT有实用价值吗?只有一些。因为这种算法的计算数度太慢了。特别是与后人发明的算法相比,它的慢更显突出。 1965年,J. W. Cooley 和 J. W. Tukey在Mathematics of Computation上发表了An algorithm for the machine calculation of complex Fourier series。它极大的提高了计算离散傅里叶变换的速度。 从定义来看N点长的DFT的运算量。 1 直接计算DFT需:复乘N2次,复加(N-1)N次。因为 1个k需复乘N次,复加(N-1)次。 对于复乘1次需50μs,复加1次需10μs的计算机,用直接法做N=1024点长的DFT共需多少时间? 10242×50 ×10-6 +1023×1024×10×10-6=63(s) 2 Cooley和Tukey发明的方法计算DFT需:复乘(N/2)log2N次,复加Nlog2N次。用来计算上面的DFT共需多少时间? 512×10× 50 ×10-6 +1024×10×10×10-6=0.36(s) 4.2 基2(radix2)FFT算法 4.2.1 直接计算DFT的特点及减少运算量的方法 直接计算N个采样值的DFT 需要有N2次复数乘法和N(N-1)次复数加法。 如果把N分成几小段,降低DFT的规模,是不是可以大幅度地减少乘法和加法的运算次数? 还有,WNkn具有对称性和周期性,是不是可以巧妙地利用? 例如,当N=8时,从形式上看,W8kn共有64个值。但从图来看, Wkn实际上只有W0~W7这8个值是独立的;而且,其中有一半是对称的。 科学家Cooley和Tukey正是巧妙地利用这些特性加快了DFT的运算速度。 周期性: 对称性: 4.2.2 时域抽取法基2FFT基本原理 设序列x(n)的长度N=2M,M为自然数。 (1) 缩短DFT,把x(n)按n的奇偶顺序分成两半。 则x(n)的DFT为 (2) 重组DFT,按DFT的定义重新组合变短的DFT。∵变短后的DFT中X1(k)和X2(k)分别为x1(r)和x2(r)的N/2点DFT,周期为N/2;∵对称性WNk+N/2 = -WNk。∴X(k)又可表示为 经过这两步骤处理后,1个N点的DFT就变成了2个N/2点的DFT。运算量变成: 复乘(N/2)2×2+(N/2)≈N2/2次, 复加(N/2) ×(N/2-1) ×2 +(N/2) × 2=N2/2次。 比原来多了还是少了? 2次分解x(n)的DFT: (1) 缩短x1(r)和x2(r)的DFT,与第一次分解相同,将x1(r)按奇偶分解成两个N/22长的子序列x3(l)和x4(l),即 则x1(r)的DFT为 3次分解DFT,… ,长度为N/23,… 8点DIT―FFT运算流图 需要几次分解DFT,才会使DFT变为1点的DFT? 4.2.3 时域抽取法快速傅里叶变换的运算量 从分解的级来看—— ①每级需复乘N/2次,?复加N次;? ②M=log2N级需复乘N/2×M次,?复加N×M次。? 对于复乘1次需50μs,复加1次需10μs的计算机,现在做N=1024点的DFT运算。 按定义直接运算需要 10242×50 ×10-6 +1023×1024×10×10-6=63(s) 按DIT-FFT运算需要 512×10× 50 ×10-6 +1024×10×10×10-6=0.36(s) 它们的速度相差63÷0.36=175 (倍)! 例如:分析序列x(n)=sin(1.8n)+cos(1.8n)的频谱。 clear,close all %用两种方法计算DFT n=0:1023;w=1.8; x=sin(w*n)+cos(w*n); subplot(2,1,1),stem(n,x,.); %axis([250,350,-1.5,1.5]) w=linspace(0,2*pi,1024); tic;X1=x*exp(-j*n*w);toc;%时间约1.36秒,复加0.2微秒 tic;X2=fft(x);toc;%时间约0秒

文档评论(0)

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

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

1亿VIP精品文档

相关文档