数字信号处理 第四章05 分裂基.ppt...
TRANSCRIPT
3 / 30
§4-6 分裂基FFT算法
一、背景
对更快速算法的需求
NNFFT 2log2
~ 2−基
1984年,杜梅尔(P.Douhamel)霍尔曼(H.Hollman)
基-2 FFT
基-4 FFTNNFFT 2log
3~ 分裂基
§4-6 分裂基FFT算法
4 / 30
ν2,10 ),( =−≤≤∀ NNnnxDFT[x(n)]→ 更快的FFT算法设 N=Pq, P=N/4, q=4
令 n=Pn1+n0 = N/4 n1+n0 ; 0≤n1 ≤3, 0≤ n0≤(N/4)-1 k=4k1+k0 ; 0≤k1≤(N/4)-1 , 0≤ k0≤ 3
1 0
0 1
0
0
1
0
4 1 3 ( )4
1 00 0
4 10 2 3
0 4 0 4 0 4 0 40
( ) ( )
( )4
3( ) ( ) ( ) ( )4 2 4
Nkn
Nn
NN k n n
Nn n
Nknk k k
Nn
X k x n W
Nx n n W
N N Nx n W x n W x n W x n W W
−
=
− +
= =
−
=
=
= +
= + + + + + +
∑
∑ ∑
∑
基4-DIF FFT算法
4 14 2
0
3(4 2) ( ) ( ) ( ) ( )4 2 4
Nkn n
Nn
N N NX k x n x n x n x n W−
+
=
+ = − + + + − + ∑
4 14 3
0
3(4 3) ( ) ( ) ( ) ( )4 2 4
Nkn n
Nn
N N NX k x n jx n x n jx n W−
+
=
+ = + + − + − + ∑
1 0 1 0 1 0 1 0 0
0
0 0 0 1 0 0
0
1 0
4 1(4 ) 2(4 ) 3(4 ) (4 )
0 0 4 0 4 0 40
4 12 3 (4 )
0 0 4 0 4 0 40
( ) (4 )
3( ) ( ) ( ) ( )4 2 4
3( ) ( ) ( ) ( )4 2 4
Nk k k k k k k k n
Nn
Nk k k k k n
Nn
X k X k k
N N Nx n x n W x n W x n W W
N N Nx n x n W x n W x n W W
−+ + + +
=
−+
=
= +
= + + + + + +
= + + + + + +
∑
∑
),( 3,2,1,0 010 nnkkk →→=
4-DIF↓
基 (4-43)14
0 −≤≤Nk
4 14
0
3(4 ) ( ) ( ) ( ) ( )4 2 4
Nkn
Nn
N N NX k x n x n x n x n W−
=
= + + + + + + ∑
4 14
0
3(4 1) ( ) ( ) ( ) ( )4 2 4
Nkn n
Nn
N N NX k x n jx n x n jx n W−
+
=
+ = − + − + + + ∑
0 1 00,1, 2,3k k k n n=在 时,用 表示 , 表示
1416W
1516W
16Re[ ]mW
16Im[ ]mW
016W
116W
216W
316W4
16W5
16W
616W
716W
816W
916W
1016W
1116W
1216W 13
16W
1716W
116W−
38W
1832W
1416W
1516W
16Re[ ]mW
16Im[ ]mW
016W
116W
216W
316W4
16W5
16W
616W
716W
816W
916W
1016W
1116W
1216W 13
16W
1716W
116W−
38W
1832W
参考P96 图3-21
基4-DIF FFT算法
4 12
/40
3(4 2) ( ) ( ) ( ) ( )4 2 4
Nn kn
N Nn
N N NX k x n x n x n x n W W−
=
+ = − + + + − + ∑
4 13
/40
3(4 3) ( ) ( ) ( ) ( )4 2 4
Nn kn
N Nn
N N NX k x n jx n x n jx n W W−
=
+ = + + − + − + ∑
14
0 −≤≤Nk
4 10
/40
3(4 ) ( ) ( ) ( ) ( )4 2 4
Nkn
N Nn
N N NX k x n x n x n x n W W−
=
= + + + + + + ∑
4 1
/40
3(4 1) ( ) ( ) ( ) ( )4 2 4
Nn kn
N Nn
N N NX k x n jx n x n jx n W W−
=
+ = − + − + + + ∑
22
3( ) ( ) ( ) ( ) ( )4 2 4
nN
N N Nx n x n x n x n x n W = − + + + − +
33
3( ) ( ) ( ) ( ) ( )4 2 4
nN
N N Nx n x n jx n x n jx n W = + + − + − +
00
3( ) ( ) ( ) ( ) ( )4 2 4 NN N Nx n x n x n x n x n W = + + + + + +
13( ) ( ) ( ) ( ) ( )
4 2 4n
NN N Nx n x n jx n x n jx n W = − + − + + +
蝶形运算:×— 3次+— ?次
( )
( )4
( )2
3( )4
x n
Nx n
Nx n
Nx n
+
+
+
0
2
1
3
( )
( )
( )
( )
x n
x n
x n
x n
111
11
1
1
-1
1
-1
-j
-1
j
j
-1
-j
0NW
2nNW
nNW
3nNW
基4-DIF FFT算法
22
3( ) ( ) ( ) ( ) ( )4 2 4
nN
N N Nx n x n x n x n x n W = − + + + − + 3
33( ) ( ) ( ) ( ) ( )
2 4 4n
NN N Nx n x n x n j x n x n W = − + + + − +
00
3( ) ( ) ( ) ( ) ( )4 2 4 NN N Nx n x n x n x n x n W = + + + + + +
13( ) ( ) ( ) ( ) ( )
2 4 4n
NN N Nx n x n x n j x n x n W = − + + + − +
蝶形运算:×— 3次+— 8次
( )
( )4
( )2
3( )4
x n
Nx n
Nx n
Nx n
+
+
+
0
2
1
3
( )
( )
( )
( )
x n
x n
x n
x n
0NW
2nNW
nNW
3nNW
{ }1 1 1 1
{ }1 1 j j− −
{ }1 1 1 1− −
{ }1 1 j j− −
( )
( )4
( )2
3( )4
x n
Nx n
Nx n
Nx n
+
+
+
0
2
1
3
( )
( )
( )
( )
x n
x n
x n
x n
111
11
1
1
-1
1
-1
-j
-1
j
j
-1
-j
0NW
2nNW
nNW
3nNW
基4-DIF FFT算法
( )
( )4
( )2
3( )4
x n
Nx n
Nx n
Nx n
+
+
+
0
2
1
3
( )
( )
( )
( )
x n
x n
x n
x n
-j
22
3( ) ( ) ( ) ( ) ( )2 4 4
nN
N N Nx n x n x n x n x n W = + + − + + + 3
33( ) ( ) ( ) ( ) ( )
2 4 4n
NN N Nx n x n x n j x n x n W = − + + + − +
00
3( ) ( ) ( ) ( ) ( )2 4 4 NN N Nx n x n x n x n x n W = + + + + + +
13( ) ( ) ( ) ( ) ( )
2 4 4n
NN N Nx n x n x n j x n x n W = − + − + − +
0NW
nNW
2nNW
3nNW
蝶形运算:×— 3次+— 8次 (8个x)
( )
( )4
( )2
3( )4
x n
Nx n
Nx n
Nx n
+
+
+
0
2
1
3
( )
( )
( )
( )
x n
x n
x n
x n
111
11
1
1
-1
1
-1
-j
-1
j
j
-1
-j
0NW
2nNW
nNW
3nNW
回忆:N=12 组合数基-3x4 FFT流图
( )
( )4
( )2
3( )4
x n
Nx n
Nx n
Nx n
+
+
+
0
2
1
3
( )
( )
( )
( )
x n
x n
x n
x n
1111
1
1
1
-1
1
-1
-j
-1
j
j
-1
-j
0NW
2nNW
nNW
3nNW
N=30 基-3x2x5 组合数 FFT流图
( )
( )4
( )2
3( )4
x n
Nx n
Nx n
Nx n
+
+
+
0
2
1
3
( )
( )
( )
( )
x n
x n
x n
x n
1111
1
1
1
-1
1
-1
-j
-1
j
j
-1
-j
0NW
2nNW
nNW
3nNW
14
4
0
3(4 1) ( ) ( ) ( ) ( )2 4 4
N
n knN N
n
N N NX k x n x n j x n x n W W−
=
+ = − + − + − + ∑
14
3 4
0
3(4 3) ( ) ( ) ( ) ( )2 4 4
N
n knN N
n
N N NX k x n x n j x n x n W W−
=
+ = − + + + − + ∑
12
0 ,)]2
()([)2(1
2
0
2 −≤≤++= ∑−
=
NkWNnxnxkX
N
n
knN
(4-44)14
0 −≤≤Nk
:)24()4( +kXkX 与合并
分裂基FFT算法原理:
nNWNnxNnxjNnxnxnx 32
4 )4
3()4
()2
()()(
+−++
+−=
∆
2 ( ) ( ) ( ), 0 12 2N Nx n x n x n n
∆
= + + ≤ ≤ −
nNWNnxNnxjNnxnxnx
+−+−
+−=
∆
)4
3()4
()2
()()(14
14
0 −≤≤Nn
L形蝶形运算:×— 2次+— 6次
令
则(4-44)式变为:1 1
2 22
2 2 20 0 2
(2 ) ( ) ( ) [ ( )]
N N
kn knN N
n nX k x n W x n W DFT x n
− −
= =
= = =∑ ∑
1 14 4
1 4 1 14 4 4
0 0 4
(4 1) ( ) ( ) [ ( )]
N N
kn knN N
n nX k x n W x n W DFT x n
− −
= =
+ = = =∑ ∑
1 14 4
2 4 2 24 4 4
0 0 4
(4 3) ( ) ( ) [ ( )]
N N
kn knN N
n nX k x n W x n W DFT x n
− −
= =
+ = = =∑ ∑
12
22
0
2
(2 ) ( )
[ ( )]
N
knN
nX k x n W
DFT x n
−
=
=
=
∑
14
1 44
014
(4 1) ( )
[ ( )]
N
knN
nX k x n W
DFT x n
−
=
+ =
=
∑
14
2 44
024
(4 3) ( )
[ ( )]
N
knN
nX k x n W
DFT x n
−
=
+ =
=
∑
L形蝶形(流图)图4-21/P.146与基4比较WN
可见:
DFTN −
DFTN−
2
DFTN−
4
DFTN−
4
DFTN−
4
DFTN−
8
DFTN−
8
DFTN−
8
DFTN−
16
DFTN−
16
DFTN−
8
DFTN−
16
DFTN−
16
)14
( 30)(
)14
( 30)(
)12
( 70)()(
24
14
21
−≤≤
−≤≤
−≤≤→
Nnnx
Nnnx
Nnnxnx
20 / 30
例:N=16 分裂基第一次分解L形流图:图4-22 P.147分解1:
分解2:
142)1
8( 10)(
142)1
8( 10)(
122)1
4( 30)()(
24
14
22
−=−≤≤
−=−≤≤
−=−≤≤→
NNnny
NNnny
NNnnynx
分解3:
0)(
0)(
10)()(
24
14
22
=
=
≤≤→
nnznnz
nnzny 4点分裂基L形运算流图图4-24/P.148
LLLL
→
→
)(
)(24
14
nxnx
图4-24 → 图4-23 → 图4-22 图4-25 P.148⇒
16点分裂基DIF-FFT算法流图
N/4=4点
DFT
N/4=4点
DFT
N/2(8)点
DFT
x(0)
x(1)
x(2)x(3)
x(4)x(5)
x(6)
x(7)
x(8)
x(9)
x(10)
x(11)
x(12)
x(13)x(14)
x(15)
j−
j−
j−
j−
2x (0)
2x (1)
2x (2)
2x (3)
2x (4)
2x (5)
2x (6)
2x (7)
X(0)
X(2)
X(4)
X(6)
X(8)
X(10)
X(12)X(14)
X(1)
X(5)X(9)X(13)
X(3)
X(7)X(11)X(15)
14x (0)14x (1)14x (2)14x (3)
24x (0)24x (1)24x (2)24x (3)
0NW1
NW2
NW3
NW0
NW
1N
W
2N
W
3N
W
X(2k)
X(4k 1)+
X(4k 3)+
长偶
长奇之偶
长奇之奇
Length-32 split-radix FFT
23 / 30
蝶形个数:8 4 6 5
024681012141618202224262830
1591317212529
37111519232731
0481216202428
21018266142230
081624
4201228
191725
5211329
3111927
7231531
34 / 30
三、运算量分析
L形分解:共M-1级 N=2M
每级L形碟形个数: 41Nl =
1,...,3,2,24
1 −=−= − MjlNl j
j
每个L形碟形:×— 2次
总的复数乘法次数:
∑−
=
×=1
12
M
jjM lC
92)1(
91log
31
2MN NN −+−= (4-48)
相比 ,下降33%NN2log
2%100
21)
31
21( ×−=
NN 2log—+ 相同(∵ 个数相同) 理解
§4-7 实序列的FFT算法
35 / 30
一、问题的提出
FFTnxDFTnx →∀ )]([)( —
10 ),()( * −≤≤=∀ Nnnxnx
? )]([ FFTnxDFT →
可能的办法:
FFTnyjnxnx →→+→ )(0)()(①
硬件专用算法 /)]([)( →→ nxDFTnx②
能否有更好的方法吗?③
实数:
36 / 30
二、算法一:用一个N-FFT同时计算两个N点实序列
10 ),( 1 −≤≤∀ Nnnx10 ),(2 −≤≤ Nnnx
1 2
( ) ( ) ( ),X k X k jX k= +b b b
)()()( 21 njxnxnx +=∆
DFT的性质:[P.91]
)()()(
)( )( )(
kXkXKX
njxnxnx
opep
ir
+=
+=
bbb)]()([
21)( * nxnxnxr +=
∆
)]()([21)( * nxnxnjxl −=
∆
周期共轭对称分量 周期共轭反对称分量
X1(k), X2(k)都是复数序列(Matlab)
37 / 30
即:
)]([)( nxDFTkX rep
∆
= )]()([21 * kNXkX −+=
)]([)( njxDFTkX iop
∆
= )]()([21 * kNXkX −−=
)]()([21)()( *
1 kNXkXkXkX ep −+==∴
)]()([2
)()( *2 kNXkXjkjXkX op −−−=−=
(4-51)
(4-52)
)()(
2
1
nxnx →→ FFTnx )(
)()(
* kNXkX
− )()(
2
1
kXkX Nk ,...,1,0=
1/2
-j*1/2
38 / 30
三、算法二:用一个N-FFT计算一个2N点实序列
120 ),()( * −≤≤=∀ Nnnxnx
)12()()2()(
2
1
+==
nxnxnxnx
令:
1,...,1,0 −= Nn
)()()( 21 kjXkXkY +=
→)(nx)()(
2
1
nxnx →→ FFTny )(
)()(
* kNYkY
− )()(
2
1
kXkX
)()(
kNXkX
+
)()()( 21 njxnxny +=
)()(1 kYkX ep=
)()(2 kjYkX op−=
)()()( 221 kXWkXkX kN+=
)()()( 221 kXWkXkNX kN−=+
10 −≤≤ Nk
1/2
-j*1/2
kNW2
见P127 图4-2
*1 [ ( ) ( )]2
Y k Y N k= + −*1 [ ( ) ( )]
2j Y k Y N k= − − −