数字信号处理 第四章05 分裂基.ppt...

42
数字信号处理 周治国 2015.10

Upload: others

Post on 20-Sep-2019

4 views

Category:

Documents


0 download

TRANSCRIPT

数字信号处理

周治国

2015.10

第四章 快速傅里叶变换

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

基-4 按时间Or 抽取 FFT算法流图?按频率

N=16 基-4 按频率抽取FFT流图

回忆: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

分裂基按时间Or 抽取 FFT算法流图?按频率

N=16 分裂基按时间抽取 FFT算法流图

N=16 分裂基按时间抽取 FFT算法流图

N=16 分裂基按时间抽取 FFT算法流图

N=16 基-2 按时间抽取FFT流图

基-2、基-4、分裂基按时间抽取 FFT算法流图x(n)输入序号是否相同?

N=16 基-2 按频率抽取FFT流图

N=16 基-4 按频率抽取FFT流图

基-2、基-4、分裂基按频率抽取 FFT算法流图X(k)输出序号是否相同?

往年真题:

1、试给出4点分裂基FFT算法L形蝶形运算公式,并画出相应的L形蝶形运算流图。

参考:P148 图4-24

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= − − −

往年真题:

4、设有两个有限长实序列,试给出用基-2 FFT计算其线性卷积的方法步骤(要求尽量减少乘法运算次数),并与用线性卷积定义直接计算时的运算量做以比较。

1.x(n)->X(k)

y(n)->Y(k)

可以采用实序列FFT算法

N点FFT计算2N点

2.x(n)*y(n)=IFFT[X(k)Y(k)]

综合4-7(实序列)和4-10(卷积)

往年真题:

5、已知实序列x(n)和y(n),长度分别为N和M,试给用

仅用基-2 FFT正变换快速计算其线性卷积的方法步骤,

要求尽量减少乘法运算次数。

06(08-09)

问题:1,与基2比较,基4FFT算法运算量,复乘?复加?

2,与基2和基4FFT比较,分裂基FFT算法能够减小运算量原理?