网站大量收购独家精品文档,联系QQ:2885784924

快速傅里叶变换(FFT)算法--理论与程序设计.doc

快速傅里叶变换(FFT)算法--理论与程序设计.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
快速傅里叶变换(FFT)算法--理论与程序设计

快速傅里叶变换(FFT)算法 ——理论与程序设计 引言 快速傅里叶变换(FFT)是信号谱分析与实时处理中的一种重要变换。它来自于1965年图基(J. W. Tuky)和库利(T. W. Coody)在《计算数学》(Math. Computation, Vol. 19,1965)杂志上发表的著名的论文:“机器计算傅里叶级数的一种算法”,后来很多科学家对这个算法进行进一步的改进,比如桑德(G. Sand)- 图基快速算法,1984年法国的杜哈梅尔(P. Dohamel)和霍尔曼(H. Hollmann)提出的分裂基快速算法,很快形成了一套高效运算方法,这就是现在的快速傅里叶变换,简称FFT(Fast Fourier Transform)。这种算法为数字信号处理技术应用于各种信号的实时处理创造了良好的条件,大大推动了数字信号处理技术的发展。 基2 FFT算法 DFT理论告诉我们,N点的DFT的复乘次数等于N2。显然,把N点的DFT分解成几个较短的DFT,可使乘法次数大大减少。另外,利用旋转因子具有明显的周期性和对称性。 周期性: 对称性:,, FFT算法思想:不断地把长序列的DFT分解成几个短序列的DFT,并利用旋转因子的周期性和对称性来减少DFT的运算次数。 FFT算法基本上分为两大类:时域抽取法FFT(简称DIT-FFT)和频域抽取法FFT(简称DIF-FFT)。 (一)时域抽取法FFT的算法思想: 将序列x(n)按n为奇、偶数分为x1(n)、x2(n)两组序列;用2个N/2点DFT来完成一个N点DFT的计算。 设序列x(n)的长度为N,且满足:,是自然数 按n的奇偶把x(n)分解为两个N/2点的子序列: (2) 用N/2点X1(k)和X2(k)表示序列x(n)的N点DFT X(k) 注意:这里的k的取值范围为0,1,…,N-1 由于和均以N/2为周期,且, 又可表示为: 这样将N点DFT分解为两个N/2点的DFT 对上式的运算用下图所示的流图符号来表示 图1 蝶形运算符号 完成一个蝶形运算需要一次复数乘和两次复数加法运算,经过一次分解后,共需要复数乘和复数加的次数为2(N/2)2+N/2和N2/2 图2 N=8点的DIT-2FFT(时域抽取图)一次分解图 (3) 第二次分解: 将x1(r)按r取奇、偶可分解成2个长度为N/4的子序列 x3(l)= x1(2l)、 x4(l) = x1(2l+1),l=0,1,…,N/4-1; 根据上面推导可得: 将x2(r)按r取奇、偶可分解成2个长N/4的子序列 x5(l)= x2(2l) , l=0,1,…,N/4-1 x6(l) = x2(2l+1) ; 同理得 、 图3 N=8点DFT的二次时域抽取分解图 再次分解,对N=8点,可分解三次。 图4 N=8点DIT-FFT运算流图 图5 N=8点DIT-FFT运算流图 (二)DIT―FFT算法与直接计算DFT运算量的比较 1、直接DFT运算N点运算: 复数乘次数:N×N 复数加次数:N×(N-1) 2、 用DIT-FFT作N点运算: 复数乘次数:M×N/2=N/2×log2N; 复加次数: 2 ×N/2×M= N×log2N。 可见FFT大大减少了运算次数,提高了运算速度。 (三)DIT―FFT的运算规律及编程思想 1.原位计算 序列长为N=2M点的FFT,有M级蝶形,每级有N/2个蝶形运算。 同一级中,每个蝶形的两个输入数据只对本蝶形有用,每个蝶形的输入、输出数据节点在用一条水平线上。这样,当计算完一个蝶形后,所得的输出数据可立即存入原输入数据所占用的存储单元。经过M级运算后,原来存放输入序列数据的N个存储单元中可依次存放X(k)的N个值。 原位计算:利用同一存储单元存储蝶形计算输入、输出数据的方法。 优点:节约存储空间、降低设备成本。 2.旋转因子的变化规律 N点DIT―FFT运算流图中,每个蝶形都要乘以旋转因子称为旋转因子的指数。N=8 =23 时各级的旋转因子 第一级:L=1,有1个旋转因子: J=0 第二级:L=2,有2个旋转因子: J=0,1 第三级: L=3,有4个旋转因子: J=0,1,2,3 对于N=2M 的一般情况,第L级共有2L-1个不同的旋转因子: J=0,1,2,… ,2L-1-1。 故: , 按照上面两式可以确定第L级运算的旋转因子。 3、同一级中,同一旋转因子对应蝶形数目 第L级FFT运算中,同一旋转因子用在2M-L个蝶形中; 4、同一级中,

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档