第03章-5 快速傅里叶变换(FFT)

合集下载

快速傅里叶变换(FFT)详解

快速傅里叶变换(FFT)详解

⽂中内容均为个⼈理解,如有错误请指出,不胜感激前⾔先解释⼏个⽐较容易混淆的缩写吧FMT 快速莫⽐乌斯变化—>感谢stump提供多项式复数在介绍复数之前,⾸先介绍⼀些可能会⽤到的东西(好像画的不是很标准。

)定义设a ,b 为实数,i 2=−1,形如a +bi 的数叫复数,其中i 被称为虚数单位,复数域是⽬前已知最⼤的域在复平⾯中,x 代表实数,y 轴(除原点外的点)代表虚数,从原点(0,0)到(a ,b )的向量表⽰复数a +bi模长:从原点(0,0)到点(a ,b )的距离,即√a 2+b 2幅⾓:假设以逆时针为正⽅向,从x 轴正半轴到已知向量的转⾓的有向⾓叫做幅⾓运算法则加法:因为在复平⾯中,复数可以被表⽰为向量,因此复数的加法与向量的加法相同,都满⾜平⾏四边形定则(就是上⾯那个)乘法:⼏何定义:复数相乘,模长相乘,幅⾓相加代数定义:(a +bi )∗(c +di )=ac +adi +bci +bdi 2=ac +adi +bci −bd=(ac −bd )+(bc +ad )i单位根下⽂中,默认n 为2的正整数次幂在复平⾯上,以原点为圆⼼,1为半径作圆,所得的圆叫单位圆。

以圆点为起点,圆的n 等分点为终点,做n 个向量,设幅⾓为正且最⼩的向量对应的复数为ωn ,称为n 次单位根。

根据复数乘法的运算法则,其余n −1个复数为ω2n ,ω3n ,…,ωn n 注意ω0n =ωn n =1(对应复平⾯上以x 轴为正⽅向的向量)那么如何计算它们的值呢?这个问题可以由欧拉公式解决ωk n =cos k ∗2πn +i sin k ∗2πn例如图中向量AB 表⽰的复数为8次单位根单位根的幅⾓为周⾓的1n在代数中,若z n =1,我们把z 称为n 次单位根单位根的性质ωk n =cos k2πn +i sin k 2πn (即上⾯的公式)ω2k 2n =ωk n证明:ω2k 2n =cos2k ∗2π2n +i sin2k ∗2π2n =ωk nωk +n2n =−ωk n ωn2n =cos n 2∗2πn +i sin n 2∗2πn =cos π+i sin π=−1ω0n =ωn n =1讲了这么多,貌似跟我们的正题没啥关系啊。

快速傅里叶变换 FFT

快速傅里叶变换 FFT

因为
,所以:
上式中X1(k)和X2(k)分别为x2(r)和x2(r)的N/2点DFT, 即
由于X1(k)和X2(k)均以N/2为周期,且 X(k)又可表示为:
,以
即将一个N点的DFT分解成为两个N/2点的DFT。 上述运算可用右下图来表示,称为蝶形运算符号。
从右图可知,要完成一 个蝶形运算需要进行一 次复数相乘和两次复数 相加运算。
对于象雷达、通信、声纳等需要实时处理的信号, 因为其运算量更大,所以无法满足信号处理的实时 性要求。迫切需要有新的算法。
二、DFT运算的特点
实际上,DFT运算中包含有大量的重复运算。在WN
矩阵中,虽然其中有N2个元素,但由于WN的周期
性,其中只有N个独立的值,即
,且
这N个值也有一些对称关系。总之,WN因子具有如 下所述周期性及对称性:
N 1
X (k) x(n)WNkn n0
x(n)
1 N
N 1
X (k)WNkn
k 0
k 0,1,2, , N 1 n 0,1,2, , N 1
计算X(k)的运算量:需要N2次复数乘法,N(N-1)
次复数加法。在N较大时计算量很大。
例如:N=1024时, 需要1,048,576次复数乘法, 即 4,194,304次实数乘法
1.对称性
2.周期性 由上述特性还可得出:
利用上述对称特性,可使DFT运算中有些项可以合 并,这样,可使乘法次数减少大约一半;利用WN 矩阵的对称性及周期性,可以将长序列的DFT分解 为短序列的DFT,N越小,运算量能够减少。 例如,对于四点的DFT,直接计算需要16次复数乘 法,根据上述特性可以有以下形5年,J. W. Cooley和J. W. Tukey巧妙应用DFT中 W因子的周期性及对称性提出了最早的FFT,这是 基于时间抽取的FFT。具有里程碑式的贡献(运算量 缩短两个数量级)

《快速傅里叶变换》课件

《快速傅里叶变换》课件
FFT算法的出现极大地推动了数字信号 处理技术的发展和应用。
FFT的历史背景
01
1960年代,Cooley和Tukey提 出了基于“分治”思想的FFT 算法,为快速傅里叶变换的实 用化奠定了基础。
02
随后,出现了多种FFT算法的 变种和优化,如Radix-2、 Radix-4等。
03
随着计算机技术的发展,FFT 算法在硬件实现上也得到了广 泛应用,如FPGA、GPU等。
《快速傅里叶变换》ppt课件
contents
目录
• FFT简介 • FFT基本原理 • FFT实现 • FFT的应用 • FFT的优化与改进 • FFT的挑战与未来发展
01 FFT简介
FFT的定义
快速傅里叶变换(FFT):一种高效计算离散傅里叶变换(DFT)及其逆变换的 算法。它将复杂度为$O(N^2)$的DFT计算降低到$O(Nlog N)$,大大提高了计 算效率。
详细描述
混合基数FFT算法结合了基数-2和基数-4算法的特点,利用两者在计算过程中的 互补性,减少了计算量,提高了计算效率。同时,该算法在处理大规模数据时 ,能够保持较高的精度。
分段FFT算法
总结词
分段FFT算法将输入数据分成若干段,对每一段进行快速傅里叶变换,以降低计算复杂度和提高计算效率。
详细描述
02 FFT基本原理
离散傅里叶变换(DFT)
定义
应用
DFT是时间域信号到频域的变换,通 过计算信号中各个频率成分的幅度和 相位,可以分析信号的频谱特性。
DFT在信号处理、图像处理、频谱分 析等领域有广泛应用。
计算量
DFT的计算量随着信号长度N的增加 而呈平方关系增长,因此对于长信号 ,计算量巨大。

FFT快速傅里叶变换word精品文档16页

FFT快速傅里叶变换word精品文档16页

快速傅里叶变换[编辑]维基百科,自由的百科全书跳转至:导航、搜索傅里叶变换Z变换傅里叶级数傅里叶变换离散傅里叶级数离散时间傅里叶变换离散傅里叶变换快速傅里叶变换分数傅里叶变换短时距傅立叶变换小波变换离散小波变换连续小波变换快速傅里叶变换(英语:Fast Fourier Transform, FFT),是离散傅里叶变换的快速算法,也可用于计算离散傅里叶变换的逆变换。

快速傅里叶变换有广泛的应用,如数字信号处理、计算大整数乘法、求解偏微分方程等等。

本条目只描述各种快速算法。

对于复数序列,离散傅里叶变换公式为:直接变换的计算复杂度是(参见大O符号)。

快速傅里叶变换可以计算出与直接计算相同的结果,但只需要的计算复杂度。

通常,快速算法要求n能被因数分解,但不是所有的快速傅里叶变换都要求n是合数,对于所有的整数n,都存在复杂度为的快速算法。

除了指数的符号相反、并多了一个1/n的因子,离散傅里叶变换的正变换与逆变换具有相同的形式。

因此所有的离散傅里叶变换的快速算法同时适用于正逆变换。

目录[隐藏]∙ 1 一般的简化理论∙ 2 快速傅里叶变换乘法量的计算∙ 3 Cooley-Tukey算法o 3.1 设计思想∙ 4 其他算法∙ 5 实数或对称资料专用的算法∙ 6 复杂度以及运算量的极限∙7 参考资料∙8 参阅一般的简化理论[编辑]假设一个M*N Sub-rectangular matrix S可分解成列向量以及行向量相乘:若有个相异的non-trivialvalues( where )有个相异的non-trivial values则S共需要个乘法。

Step 1:Step 2:简化理论的变型:也是一个M*N的矩阵。

若有个值不等于0,则的乘法量上限为。

快速傅里叶变换乘法量的计算[编辑]假设,其中彼此互质点DFT的乘法量为,则点DFT的乘法量为:假设,P是一个质数。

若点的DFT需要的乘法量为且当中 () 有个值不为及的倍数,有个值为及的倍数,但不为的倍数,则N点DFT的乘法量为:Cooley-Tukey算法[编辑]主条目:Cooley-Tukey快速傅里叶变换算法Cooley-Tukey算法是最常见的FFT算法。

《快速傅里叶变换FF》课件

《快速傅里叶变换FF》课件
《快速傅里叶变换ff 》ppt课件
contents
目录
• FFT简介 • FFT的基本原理 • FFT的应用 • FFT的实现 • FFT的性能优化 • FFT的局限性
CHAPTER 01
FFT简介
FFT的定义
快速傅里叶变换(FFT):一种高效计算离散傅里叶变换(DFT)及其逆变换的 算法。它将复杂度为$O(N^2)$的DFT计算降低到$O(Nlog N)$,极大地提高了 计算效率。
通过选择适合特定数据集的基数,混 合基数FFT可以在不同的应用场景下 获得最佳性能。
混合基数FFT结合了基于2的幂次和基 于其他基数的算法,以获得更好的计 算效率和精度。
CHAPTER 06
FFT的局限性
浮点运算的开销
快速傅里叶变换(FFT)是一种高效的算法,用于计算离散傅里叶变换(DFT)和其逆变换。然而, 由于FFT涉及到大量的复数运算,因此其计算开销相对较大,尤其是对于大规模数据。
分段FFT
分段FFT是一种将大规模FFT分 解为多个小规模FFT的方法, 可以显著提高计算速度。
通过将输入数据分成多个段, 每个段可以独立进行FFT计算 ,从而并行处理多个段。
分段FFT适用于大规模数据集 ,可以有效地利用多核处理器 和分布式计算资源,提高计算 效率。
混合基数FFT
混合基数FFT是一种将不同基数算法 结合在一起的FFT方法,可以获得更 好的性能。
快速傅里叶变换(FFT)算法
定义
快速傅里叶变换(FFT)是一种高效的计算离散傅里叶变换( DFT)和其逆变换的算法。它通过一系列数学运算将DFT的 计算量从N^2降低到了Nlog2N,大大提高了计算效率。
算法原理
FFT算法基于DFT的周期性和对称性,将一个N点的DFT分解 为多个较短序列的DFT,然后利用递归和分治的思想进行计 算,最终得到原始序列的频域表示。

快速傅里叶变换PPT课件

快速傅里叶变换PPT课件

W
0 N
运算即可求出
所有8点X(k)的
W
1 N
值。
W
2 N
W
3 N
分解一次后所需的运算量=2个N/2的DFT+N/2蝶形
-
14
运算量比较
N点DFT的运算量
每次蝶形含一次复数
复数乘法次数: N2
乘和两次复数加
复数加法次数: N(N-1)
分解一次后所需的运算量=2个N/2的DFT+ N/2蝶形:
复数乘法次数: 2*(N/2)2+N/2=N2/2+N/2
-
3
4.2 直接计算DFT的问题及改进的途径
DFT的运算量 设复序列x(n) 长度为N点,其DFT为
N1
X(k) x(n)WNnk n0
k=0,,…,N-1
(1)计算一个X(k) 值的运算量
复数乘法次数: N
复数加法次数: N-1
(2)计算全部N个X(k) 值的运算量
复数乘法次数: N2
复数加法次数: N(N-1)
-
5
4.2.2 减少运算工作量的途径
主要原理是利用系数
W
nk N
的以下特性对DFT进行分解:
(1)周期性 W N (nN)kW N n(kN)W N nk
(2)对称性
(WNnk )
W nk N
W k(N n) N
(3)可约性
Wmnk mN
WNnk
WNnk WNnk/m/m
另外,
WNN/2 1
W(kN/2) N
复数加法次数: 2*(N/2)(N/2-1)+2*N/2=N2/2
通过一次分解后,运算工作量减少了差不多一半。

fft 快速傅里叶变换 (fast fourier transform)

fft 快速傅里叶变换 (fast fourier transform)

FFT 快速傅里叶变换(Fast Fourier Transform) 是一种用于快速计算傅里叶变换的算法,是在傅里叶变换的基础上发展而来的。

FFT 算法被广泛应用于数字信号处理、图像处理、声音处理、卷积操作、解析几何等领域,它的高效性和实时性使得它成为了当今计算机科学领域不可或缺的一部分。

一、傅里叶变换简介傅里叶变换是将一个时域信号转换为频域信号的过程,其公式如下:$F(\omega)=\int_{-\infty}^{\infty}f(t)e^{-i\omega t}dt$其中,$f(t)$ 表示时域信号,$F(\omega)$ 表示频域信号,$\omega$ 表示角频率。

傅里叶变换可以分为连续傅里叶变换和离散傅里叶变换两种。

连续傅里叶变换仅适用于连续信号,而离散傅里叶变换适用于离散信号。

二、离散傅里叶变换离散傅里叶变换是一种将离散信号变换为频域信号的方法,其公式如下:$X_k=\sum_{n=0}^{N-1}x_n e^{-\frac{2\pi i}{N}kn},k=0,1,...,N-1$其中,$x_n(n=0,1,...,N-1)$ 表示原始离散信号,$X_k(k=0,1,...,N-1)$ 表示变换后的频域信号。

但是,使用该公式直接计算离散傅里叶变换的时间复杂度为$O(N^2)$,计算效率低下。

三、FFT 快速傅里叶变换FFT 快速傅里叶变换是一种基于DFT 离散傅里叶变换的高效算法,它的时间复杂度可以达到$O(NlogN)$,较之直接计算DFT 的时间复杂度要低得多。

FFT 算法的基本思想是将 DFT 分治成多个较小的 DFT,并利用其重复性降低运算次数。

1.蝴蝶运算蝴蝶运算是 FFT 算法的基本运算,通过它可以将 DFT 的计算复杂度降低为 $O(N)$。

蝴蝶运算的实质是将两个相邻点之间的信号进行乘法和加法运算,其公式如下:$X_k=X_{k1}+W_{N}^kX_{k2},X_{k+N/2}=X_{k1}-W_{N}^kX_{k2}$其中,$X_{k1}$ 表示 $X_k$ 中偶数项,$X_{k2}$ 表示 $X_k$ 中奇数项,$W_N$ 是DFT 的核函数。

快速傅立叶变换(FFT)

快速傅立叶变换(FFT)

快速傅立叶变换(FFT)快速傅立叶变换(FFT)4.1引言快速傅立叶变换(FFT)并不是一种新的变换,而是离散傅立叶变换(DFT)的一种快速算法。

DFT的计算在数字信号处理中非常有用。

例如在FIR滤波器设计中会遇到从h(n)求H(k)或由H(k)计算h(n),这就要计算DFT;信号的谱分析对通信、图像传输、雷达等都是很重要的,也要计算DFT。

因直接计算DFT的计算量与变换区间长度N的平方成正比,当N较大时,计算量太大。

自从1965年图基(J. W. Tukey)和库利(T. W. Coody)在《计算数学》(Math. Computation , Vol. 19, 1965)杂志上发表了著名的《机器计算傅立叶级数的一种算法》论文后,桑德(G. Sand)-图基等快速算法相继出现,又经人们进行改进,很快形成一套高效运算方法,这就是快速傅立叶变换简称FFT(Fast Fourier Transform)。

这种算法使DFT的运算效率提高1~2个数量级。

4.2 基2 FFT算法一、直接计算DFT的问题及改进的途径设x(n)为N点有限长序列,其DFT正变换为= , k=0,1,…,N-1其反变换(IDFT)x(n)= ,n=0,1,…,N-1二者的差别只在于的指数符号不同,以及差一个常数乘因子1/N,因而下面我们只讨论DFT正变换的运算量,反变换的运算量是完全相同的。

考虑x(n)为复数序列的一般情况,每计算一个X(k),需要N次复数乘法以及(N-1)次复数加法。

因此,对所有N个k值,共需N2次复数乘法及N(N-1)次复数加法运算。

所以直接计算DFT,乘法次数和加法次数都是和N2成正比的,当N很大时,运算量是很可观的,因而需要改进对DFT的计算方法,以减少运算次数。

下面讨论减少运算工作量的途径。

仔细观察DFT的运算就可看出,利用系数以下固有特性,就可减小DFT的运算量:(1)的对称性()*=(2)的周期性 ==(3)的可约性 ==由此可得:==,=-1,=-。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

令 得到
上面两式所表示的是N/2的DFT。
在实际计算中,首先形成序列g(n)和h(n),然后计算h(n)WNn,最后分 别计算g(n) 和h(n)WNn的N/2点DFT,便得到偶数输出点和奇数输出点 的DFT。计算流程图如图3. 24所示。
由于N是2的整数幂,所以N/2仍然是偶数。这样,可以将N/2点DFT 的输出再分为偶数组和奇数组,也就是将N/2点的DFT计算进一步分 解为两个N/4点的DFT计算,其推导过程如下。 将g(n)分为前后两组,得到
图中用n表示自然顺序的标号,用l表示码位倒置的标号。当l=n时, x(n)和x(l)不必互相调换。当l≠n时, 必须将x(l)和x(n)互相调换,但只 能调换一次,为此必须规定每当l>n时,要将x(l)和x(n)相互调换,即 把原来存放x(n)的存储单元中的数据调入存储x(l)的存储单元中,而 把原来存储x(l)的存储单元中的数据调入到存储x(n)的存储单元中。 这样,按自然序输入的数据x(n)经过变址计算后变成了码位倒 置的排列顺序,便可进入第一级的蝶形运算。
3. 5. 3 蝶形、同址和变址计算 1. 蝶形计算 任何一个N为2的整数幂(即N=2M)的DFT,都可以通过M次分解,最 后成为2点的 DFT来计算。M次分解构成了从x(n)到X(k)的M级迭代计 算,每级由N/2个蝶形组成。图3.20表示了蝶形的一般形式表示。 其输入和输出之间满足下列关系:
从上式可以看出完成一个蝶形计 算需一次复数乘法和两次复数加法。 因此,完成N点的时间抽选FFT计 算的总运算量为
大多数情况下复数乘法所花的时间最多,因此下面ቤተ መጻሕፍቲ ባይዱ以复数乘 法的计算次数为例来与直接计算进行比较。 直接计算DFT需要的乘法次数为αD=N2,于是有
例如,当N=1024时,则: 205,即直接计算DFT所需复数乘法 次数约为FFT的205倍。显然,N越大,FFT的速度优势越大。 表3. 2列出了不同N值所对应的两种计算方法的复数乘法次数和 它们的比值。
蝶形运算的特点是,首先每一个蝶形运算都需要两个输入数 据,计算结果也是两个数据,与其它结点的数据无关,其它蝶形 运算也与这两结点的数据无关、因此,一个蝶形 运算一旦计算完 毕,原输入数据便失效了。这就意味着输出数据可以立即使用原 输 人数据结点所占用的内存。原来的数据也就消失了。输出、输 人数据利用同一内存单 元的这种蝶形计算称为同位(址)计算。 可以看出, 每一级的蝶形的输入与输出在运算前后可以存储在 同一地址(原来位置上)的存储单元中,这种同址运算的优点是可以 节省存储单元,从而降低对计算机存储量的要求或降低硬件实现 的成本。
因为
所以
(3.66)
按照式(3.65)和式(3.66)可画出图3.15所示的信号流程图。
式(3.65)和式(3.66)把原来N点DFT的计算分解成两个N/2点DFT的计 算。照此可进一 步把每个N/2点DFT的计算再各分解成两个N/4点 DFT的计算。具体说来,是把{x(0),x(2),x(4),x(6)}和{x(1),x(3), x(5),x(7)}分为{x(0),x(4) | x(2),x(6)}和{x(1),x(5) | x(3),x(7)}。这样, 原信号序列被分成{x(0),x(4) | x(2),x(6) I x(1),x(5) I x(3),x(7)}4个2项 信号。G(k)和H(k)分别计算如下:
3. 5. 2 时间抽选基2FFT算法(库里—图基算法) 这种算法简称为时间抽选FFT算法,其基本出发点是,利用旋 转因子WNk的对称性和周期性,将一个大的DFT分解成一些逐次 变小的DFT来计算。 分解过程遵循两条规则: ①对时间进行偶奇分解; ②对频率进行前后分解。 设N=2M,M为正整数。为了推导方便,取N=23=8,即离散时间 信号为
2.同址(原位)计算 图3. 19包含log2N级迭代运算,每级由N/2个蝶形计算构成。蝶形计 算的优点是可以进行所谓同址或原位计算。 现在来考察第一级的计算规律。设将输入x(0),x(4),x(2),x(6), x(1),x(5),x(3),x(7)分别存入计算机的存储单元M(1), M(2), M(3),…, M(7)和M(8)中。首先,存储单元M(1)和M(2)中的数据x(0)和x(4)进入运 算器并进行蝶形运算,流图中各蝶形的输入量或输出量是互不相 重的,任何一个蝶形的二个输入量经蝶形运算后,便失去了利用 价值,不再需要保存。这样,蝶形运算后的结果便可以送到M(1)和 M(2)存储起来。类似地,M(3)和M(4)中的x(2)和x(6)进入运算器进行蝶 形运算后的结果也被送回 到M(3)和M(4)保存,等等。第二级运算与 第一级类似,不过,M(1)和M(3)存储单元中的数 据进行蝶形运算后 的结果被送回M(1)和M(3)保存,M(2)和M(4)中的数据进行蝶形运算 后送回M(2)和M(4)保存,等等。这样一直到最后一级的最后一个蝶 形运算完成。
(3.67)
(3.68)
(3.69)
(3.70) 这样,用式(3.67)~(3.70)4个公式就可计算图3.15中的两组N/2点 DFT。图3.16所示的是其中一组G(k)的计算。
将图3.16与图3.15所示的信号流程图合并,便得到图3.17所示的信 号流程图。
因为N=8,所以上图中N/4点的DFT就是2点的DFT,不能再分解了。
FFT算法是基于可以将一个长度为N的序列的离散傅里叶变换 逐次分解为较短的离散傅里叶变换来计算这一基本原理的。这 一原理产生了许多不同的算法,但它们在计算速度上均取得了 大致相当的改善。 在本章中我们集中讨论两类基本的FFT算法。 第一类 称为按时间抽取(Decimation-in-Time)的基2FFT算法,它 的命名来自如下事实:在把原计算安排成较短变换的过程中, 序列x(n)(通常看作是一个时间序列)可逐次分解为较短的子序列。 第二类称为按频率抽取(Decimation-in-Frequency)的基2FFT算法, 在这类算法中是将离散傅里叶变换系数序列X(k)分解为较短的 子序列。 前面两种算法特别适用于N等于2的幂的情况。 对于N为合数的情况,本章也将介绍两种处理方法。
在导出FFT算法之前,首先来估计一下直接计算DFT所需的计算量。 DFT的定义
其中
将DFT定义式展开成方程组
将方程组写成矩阵形式
用向量表示
用复数表示:
从矩阵形式表示可以看出,由于计算一个X(k)值需要N次复乘法和 (N-1)次复数加法,因而计算N个X(k)值,共需N2次复乘法和N(N-1)次 复加法。每次复乘法包括4次实数乘法和2次实数加法,每次复加 法包括2次实数加法,因此计算N点的DFT共需要4N2次实数乘法和 (2N2+2N·(N-1))次实数加法。当N很大时,这是一个非常大的计算量。 FFT算法主要利用了WNk的两个性质: (1)对称性,即 (2)周期性,即 r为任意整数。
第03章 离散傅里叶变换及其快 速算法
邹江 zoujiang@
3. 5 快速傅里叶变换(FFT)
3.5.1 DFT的计算量 离散傅里叶变换在实际应用中是非常重要的,利用它可以计算信 号的频谱、功率谱和线性卷积等。但是,如果使用定义式(3.20)来 直接计算DFT,当N很大时,即使使用高速计算机,所花的时间也 太多。因此,如何提高计算DFT的速度,便成了重要的研究课题。 1965年库利 (Cooley)和图基(Tukey)在前人的研究成果的基础上提出了 快速计算DFT的算法,之后,又出现了各种各样快速计算DFT的方 法,这些方法统称为快速傅里叶变换(Fast Fourier Transform),简称为 FFT。FFT的出现,使计算DFT的计算量减少了两个数量级,从而成 为数字信号处理强有力的工具。 快速傅里叶变换(FFT)是离散傅里叶变换(DFT)的快速算法。它是 DSP领域中的一项重大突破,它考虑了计算机和数字硬件实现的约 束条件、研究了有利于机器操作的运算结构,使DFT的计算时间缩 短了1~2个数量级,还有效地减少了计算所需的存储容量,FFT技术 的应用极大地推动了DSP的理论和技术的发展。
最后介绍一下时间抽选FFT算法的另外一些形式的流程图。对于任 何流程图,只要保持 各节点所连支路及其传输系数不变,则不论 节点位置怎样排列,所得到的流程图总是等效的,因而都能得到 DFT的正确结果,只是数据的提取和存储次序不同而已。 把图3. 19中与x(4)水平相邻的所有节点和与x(1)水平相邻的所有节 点交换,把与x(6)水平相邻的所有节点和与 x(3)水平相邻的所有节点 交换,而与x(2)、x(5)和x(7)水平相邻各节点位置不变,就可以从图3. 19得到图3.22。图3.22与图3.19的区别只是节点的排列不同,而支路 传输比,即WN的 各次幂保持不变。显然图3.22所示流程图的输入是 正序(自然顺序)排列的,输出是码位倒置 排列的,所以输出要进行 变址计算。图3. 22所示的流程图相当于最初由库利和图基给出的时 间抽选算法。
3.变址计算 从图3. 19所示的流程图看出,同址计算要求输入x(n)是“混序” 排列的。所谓输入为“混 序”,并不是说输入是杂乱无章的,实 际上它是有规律的。如果输入x(n)的序号用二进制码来 表示,就可 以发现输入的顺序恰好是正序输入的“码位倒置”,表3. 3列出了 这种规律。
在实际运算中,按码位倒置顺序输入数据x(n),特别当N较大时, 是很不方便的。因此,数据总是按自然顺序输入存储,然后通过 “变址”运算将自然顺序转换成码位倒置顺序存储。实现这种转换 的程序可用图3. 21来说明。
另一种形式的流程图是将节点排列成输入 和输出两者都是 正序排列,但这类流程图不能进行同址计算,因而需要两列 长度为N的复数存储器。
3.5.4 频率抽选基2FFT算法 频率抽选基2FFT算法简称为频率抽选,它的推导过程遵循两个 规则:①对时间前后分;②对频率偶奇分。 设N=2M,M为正整数。为推导方便,取N=23=8。 首先,根据规则(1),将x(n)分成前一半和后一半,即 x(n)={x(0), x(1), x(2), x(3), I x(4), x(5), x(6), x(7)} 这样
相关文档
最新文档