按时间抽取的基2FFT算法分析

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

第四章 快速傅里叶变换

有限长序列可以通过离散傅里叶变换(DFT)将其频域也离散化成有限长序列.但其计算量太大,很难实时地处理问题,因此引出了快速傅里叶变换(FFT). 1965年,Cooley 和Tukey 提出了计算离散傅里叶变换(DFT )的快速算法,将DFT 的运算量减少了几个数量级。从此,对快速傅里叶变换(FFT )算法的研究便不断深入,数字信号处理这门新兴学科也随FFT 的出现和发展而迅速发展。根据对序列分解与选取方法的不同而产生了FFT 的多种算法,基本算法是基2DIT 和基2DIF 。FFT 在离散傅里叶反变换、线性卷积和线性相关等方面也有重要应用。

快速傅里叶变换(FFT )是计算离散傅里叶变换(DFT )的快速算法。 DFT 的定义式为

)(k X =)()(1

0k R W n x N N n kn

N

∑-= 在所有复指数值kn

N W 的值全部已算好的情况下,要计算一个)(k X 需要N 次复数乘法和N -1次复数加法。算出全部N 点)(k X 共需2

N 次复数乘法和)1(-N N 次复数加法。即计算量是与2

N 成正比的。

FFT 的基本思想:将大点数的DFT 分解为若干个小点数DFT 的组合,从而减少运算量。

N W 因子具有以下两个特性,可使DFT 运算量尽量分解为小点数的DFT

运算:

(1) 周期性:k N n N kn N n

N k N W W W )()(++== (2) 对称性:k N N k N

W W -=+)

2/(

利用这两个性质,可以使DFT 运算中有些项合并,以减少乘法次数。例子:求当N =4时,X(2)的值

)

()]3()1([)]2()0([)()]3()1([)]2()0([)3()2()1()0()()2(0

424046

44424043

24对称性-=周期性W x x x x W x x W x x W x W x W x W x W n x X n n +++++=+++==∑=

通过合并,使乘法次数由4次减少到1次,运算量减少。

FFT 的算法形式有很多种,但基本上可以分为两大类:按时间抽取(DIT )和按频率抽取(DIF )。

4.1 按时间抽取(DIT )的FTT

为了将大点数的DFT 分解为小点数的DFT 运算,要求序列的长度N 为复合数,最常用的是M

N 2=的情况(M 为正整数)。该情况下的变换称为基2FFT 。下面讨论基2情况的算法。 先将序列x(n)按奇偶项分解为两组 ⎩⎨

⎧=+=)

()12()()2(21r x r x r x r x 12,,1,0-=N

r Λ

将DFT 运算也相应分为两组

=

=)]([)(n x DFT k X ∑-=1

)(N n kn

N

W

n x

∑∑-=-==

1

n 0

1

0)()(N n kn N

N n n kn N

W

n x W

n x 为奇数为偶数+

∑∑-=+-=++

1

2/0

)12(1

2/0

2)12()2(N r k r N

N r rk N

W

r x W

r x =

∑∑-=-=+12/0

22

1

2/0

21)()(N r rk

N k N

N r rk N

W r x

W

W

r x =

∑∑-=-=+12/0

2/2

1

2/0

2

/1)()(N r rk

N k N

N r rk

N W r x

W

W

r x =

(因为rk N rk N W W 2/2=) )()(21k X W k X k

N +=

其中)(1k X 、)(2k X 分别是)()(21n x n x 、的N/2点的DFT

)(1k X 12

0,)2()(1

2/02/1

2/02

/1-≤

≤=

∑∑-=-=N k W r x W

r x N r rk N N r rk

N = )(2k X 12

0,)12()(1

2/0

2

/12/0

2

/2-≤

≤+=

∑∑-=-=N k W

r x W

r x N r rk N N r rk N = 至此,一个N 点DFT 被分解为两个N/2点的DFT 。 上面是否将全部N 点的)(k X 求解出来了?

分析:)(1k X 和)(2k X 只有N/2个点(12

,

,1,0-=N

k Λ)

,则由)(k X )()(21k X W k X k

N

+=只能求出)(k X 的前N/2个点的DFT ,要求出全部N 点的)(k X ,需要找出)(1k X 、)(2k X 和)2/(N k X +的关系,其中12

,

,1,0-=N k Λ。由式子)(k X )()(21k X W k X k

N

+=可得 )2/(N k X +)2/()2/(22

/1N k X W N k X N k N

+++=+化简得 )2/(N k X +=)()(21k X W k X k

N

-=,12

,,1,0-=N

k Λ 这样N 点DFT 可全部由下式确定出来:

⎪⎩⎪⎨⎧-=++=)

()()2/()

()()(2121k X W k X N k X k X W k X k X k

N k

N 12,,1,0-=N k Λ (*) 上式可用一个专用的碟形符号来表示,这个符号对应一次复乘和两次复加运

相关文档
最新文档