常用FFT算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
常用FFT 算法总结
一、DFT 及IDFT 的定义
对于N 点有限长序列)(n x ,其DFT 及IDFT 定义如下: DFT :∑-==1
0)()(N n nk N W n x k X
IDFT :∑-=-=1
)(1)(N k nk N
W
k X N
n x
其中,N
p j p N
e
W
/2π-=称为旋转因子,p 称为旋转因子的指数。
二、基2-FFT 算法 设序列)(n x 的长度N 满足M
N
2
=,M 为自然数。
1、时间域抽取FFT (DIT-FFT ) (1)算法原理
按n 的奇偶把)(n x 分解为两个N/2点的子序列:
)
12()()2()(21+==r x r x r x r x
则)(n x 的DFT 为
)()()12()2()(211
2/0
)12(1
2/0
2k X W k X W
r x W
r x k X k
N N r k r N
N r rk N
+=++
=
∑∑-=+-=
其中)(1k X 和)(2k X 分别为)(1r x 和)(2r x 的N/2点DFT 。 利用)(1k X 和)(2k X 的周期性,)(k X 可以表示为
⎪⎩
⎪
⎨⎧-=++=)()()2()()()(2121k X W k X N k X k X W k X k X k
N k N 上式表明一个N 点的DFT 可以用两个N/2点的DFT 来表示。 (2)运算量 当M
N
2
=时,共有M 级蝶形,每级N/2个蝶形,每个蝶形有1次复数乘法2次复数加法。
复数乘法:N
N M N m
F
2
log
2
2
=
=
复数加法:N
N NM a F
2
log
==
N
N N
N N
FFT m DFT m F F 2
2
2
log
2log 2
)
()(=
=
(3)蝶形运算
⎪⎩⎪⎨⎧-=+=----)
()()()
()()(1111j X W k X j X j X W k X k X m p
N m m m p
N m m m
表示第m 级迭代,k 和j 表示数据所在的行数,12-+=m k j ,m M k p -⋅=2。
2、频率域抽取FFT (DIF-FFT ) (1)算法原理
将)(n x 前后对半分开,得到两个子序列,其DFT 可表示为如下形式
nk N
N n kN N N n k N n N
N n nk N
N N n nk N
N n nk
N
W N n x W n x W
N n x W n x W
n x W n x k X ∑
∑
∑
∑
∑
-=-=+-=-=-=⎥⎦
⎤⎢⎣⎡++=
+
+
=
+
=
1
2/0
2
/1
2/0
)2/(1
2/0
1
2
/1
2/0
)2()()2
()()()()(
将)(k X 分解成偶数组与奇数组,可以得到
rn
N n N N n rn N N n W W N n x n x r X W N n x n x r X 2/1
2/0
2/1
2/0
)2()()12()2()()2(∑
∑
-=-=⎥⎦
⎤⎢⎣
⎡
+-=
+⎥⎦
⎤⎢⎣⎡
++=
令
⎪⎪⎩
⎪⎪⎨
⎧
⎥⎦⎤⎢⎣
⎡
+-=+
+=n N W N n x n x n x N n x n x n x )2()()()
2
()()(21
则)2(r X 和)12(+r X 分别是)(1n x 和)(2n x 的N/2点DFT ,这表明一个N 点的DFT 可以分解成两个N/2点的DFT 。 (2)运算量
运算量与时间域抽取FFT 相同。 (3)蝶形运算
[]⎩⎨⎧-=+=----p N
m m m m m m W j X k X j X j X k X k X )()()()
()()(1111
m
表示第m 级迭代,k 和j 表示数据所在的行数,m M k j -+=2,1
2
-⋅=m k p 。
三、基4-FFT 算法 设序列)(n x 的长度N 满足M
N
4
=,M 为自然数。
1、时间域抽取FFT (DIT-FFT ) (1)算法原理
将)(n x 分解为四个N/4点的子序列:
)
34()()24()()14()()4()(4321+=+=+==r x r x r x r x r x r x r x r x
则)(n x 的DFT 为
)
()()()()34()24()14()4()(4332211
4/0
)34(1
4/0
)24(1
4/0
)14(1
4/0
4k X W k X W k X W k X W
r x W
r x W
r x W
r x k X k
N k N k N N r k r N
N r k r N
N r k r N
N r rk N
+++=++
++
++
=
∑∑∑∑-=+-=+-=+-=
其中)(1k X 、)(2k X 、)(3k X 和)(4k X 分别为)(1r x 、)(2r x 、)(3r x 和)(4r x 的N/4点DFT 。 利用)(1k X 、)(2k X 、)(3k X 和)(4k X 的周期性,)(k X 可以分成4段:
⎪⎪⎪⎪⎩
⎪⎪⎪⎪⎨⎧--+=+
-+-=++--=++++=)
()()()()4
3()
()()()()2()()()()()4()()()()()(433221433221433221433221k X jW k X W k X jW k X N
k X k X W
k X W
k X W k X N k X k X jW k X W k X jW k X N k X k X W k X W k X W k X k X k
N k
N k N k N
k N
k
N
k
N k
N k
N k
N k
N k
N
上式表明一个N 点的DFT 可以用四个N/4点的DFT 来表示。