第四章 快速傅里叶变换

Preview:

DESCRIPTION

第四章 快速傅里叶变换. FFT: Fast Fourier Transform 1965 年, Cooley, Tukey 《 机器计算傅里叶级数的一种算法》. 学习目标. 理解按时间抽选的基-2 FFT 算法的算法原理、运算流图、所需计算量和算法特点 理解按频率抽选的基-2 FFT 算法的算法原理、运算流图、所需计算量和算法特点 理解 IFFT 算法 了解混合基、分裂基和基-4 FFT 算法 了解 CZT 算法 理解线性卷积的 FFT 算法及分段卷积方法. 作业练习. P200: 1 2 3 7 9 13. 一、直接计算 DFT 的问题及改进途径. - PowerPoint PPT Presentation

Citation preview

第四章 快速傅里叶变换

FFT: Fast Fourier TransformFFT: Fast Fourier Transform

19651965 年,年, Cooley, TukeyCooley, Tukey

《《机器计算傅里叶级数的一种算法》机器计算傅里叶级数的一种算法》

学习目标 理解按时间抽选的基理解按时间抽选的基 -2-2FFTFFT 算法的算法原理、运算法的算法原理、运

算流图、所需计算量和算法特点算流图、所需计算量和算法特点

理解按频率抽选的基理解按频率抽选的基 -2-2FFTFFT 算法的算法原理、运算法的算法原理、运算流图、所需计算量和算法特点算流图、所需计算量和算法特点

理解理解 IFFTIFFT 算法算法

了解混合基、分裂基和基了解混合基、分裂基和基 -4-4FFTFFT 算法算法

了解了解 CZTCZT 算法算法

理解线性卷积的理解线性卷积的 FFTFFT 算法及分段卷积方法算法及分段卷积方法

作业练习

P200:P200:

11 22 33 77 99 1313

一、直接计算 DFT 的问题及改进途径

1

0

:

( ) [ ( )] ( ) ( )N

nkN N

n

DFT

X k DFT x n x n W R k

1

0

:

1 ( ) [ ( )] ( ) ( )

Nnk

N Nk

IDFT

x n IDFT X k X k W R nN

( )N x n点有限长序列

运算量复数乘法复数乘法 复数加法复数加法

一个一个 XX((kk)) NN N – N – 11

NN个个 XX((kk))

((NN点点 DFT)DFT)

N N 22 N N ((N – N – 1)1)

实数乘法实数乘法 实数加法实数加法一次复乘一次复乘 44 22

一次复加一次复加 22

一个一个 X X ((kk)) 44NN 22NN+2 (+2 (N – N – 1)=2 (21)=2 (2N – N – 1)1)

NN个个 X X ((kk))

((NN点点 DFT)DFT)

44N N 22 22N N (2(2N – N – 1)1)

1

0

( )N

nkN

n

x n W

a jb c jd ac bd j ad cb

nkNW 的特性

* ( ) ( ) ( )nk nk N n k n N kN N N NW W W W 对称性

( ) ( ) nk N n k n N kN N NW W W 周期性

nk mnkN mNW W可约性 /

/nk nk m

N N mW W

0 / 2 ( / 2) 1 1N k N kN N N NW W W W 特殊点:

2j nk

nk NNW e

Nk nkN NW W

nN nk

N NW W

2j mnkmNe

2

2 1N

j jNe e

FFT 算法分类 :

时间抽选法时间抽选法DIT: Decimation-In-TimeDIT: Decimation-In-Time

频率抽选法频率抽选法DIF: Decimation-In-FrequencyDIF: Decimation-In-Frequency

FFT

DFT DFT

DFT DFT

算法的基本思想: 利用 系数的特性,合并 运算中的某些项, 把长序列 短序列 ,从而减少其运算量。

二 、按时间抽选的基 -2FFT 算法11 、算法原理、算法原理设序列点数 设序列点数 N N = 2= 2LL,, L L 为整数。为整数。 若不满足,则补零若不满足,则补零

1

2

2

2 1

x r x r

x r x r

0,1,..., / 2 1r N

将序列 x(n)按 n 的奇偶分成两组:

N 为 2 的整数幂的 FFT 算法称基 -2FFT 算法。

则则 xx((nn))的的 DFT:DFT:

1 1 1

0 0 0

N N Nnk nk nk

N N Nn n n

X k x n W x n W x n W

n为偶数 n为奇数

/ 2 1 / 2 1

2 12

0 0

2 2 1N N

r krkN N

r r

x r W x r W

/ 2 1 / 2 1

2 21 2

0 0

N Nrk rkkN N N

r r

x r W W x r W

/ 2 1 / 2 1

1 / 2 2 / 20 0

N Nrk k rk

N N Nr r

x r W W x r W

1 2k

NX k W X k , 0,1,... / 2 1r k N

再利用周期性求再利用周期性求 XX((kk)) 的后半部分的后半部分

1 2

1 2

( ) ( ) ( )

( ) ( ) ( )2

kN

kN

X k X k W X k

NX k X k W X k

0,1,..., / 2 1k N

1 2

1 1 2 2

, / 2

2 2

X k X k N

N NX k X k X k X k

是以 为周期的

/ 22

Nk N k k

N N N NW W W W

分解后的运算量:分解后的运算量:复数乘法复数乘法 复数加法复数加法

一个一个 N N / 2/ 2点点DFTDFT

((N N / 2)/ 2)22 N N / 2 (/ 2 (N N / 2 / 2 ––1)1)

两个两个 N N / 2/ 2点点DFTDFT

N N 2 2 / 2/ 2 N N ((N N / 2 / 2 ––1)1)

一个蝶形一个蝶形 11 22

N N / 2/ 2 个蝶形个蝶形 N N / 2/ 2 NN

总计总计 2

2

/ 2 / 2

/ 2

N N

N

2

/ 2 1

/ 2

N N N

N

运算量减少了近一半

1 3

1 4

(2 ) ( )

(2 1) ( )

x l x l

x l x l

0,1,..., / 4 1l N

1 3 / 2 4

1 3 / 2 4

( ) ( ) ( )

( ) ( ) ( )4

kN

kN

X k X k W X k

NX k X k W X k

0,1,..., 14

Nk

N / 2 仍为偶数,进一步分解: N / 2 N / 4

2 5 / 2 6

2 5 / 2 6

( ) ( ) ( )

( ) ( ) ( )4

kN

kN

X k X k W X k

NX k X k W X k

0,1,..., 14

Nk

同理:

其中:

5 5 2( ) [ ( )] [ (2 )]X k DFT x l DFT x l

6 6 2( ) [ ( )] [ (2 1)]X k DFT x l DFT x l 0,1,..., / 4 1l N

2/ 2

k kN NW W统一系数:

这样逐级分解,直到这样逐级分解,直到 22点点 DFTDFT

当当 N N = 8= 8 时,即分解到时,即分解到XX33((kk)),, XX44((kk)),, XX55((kk)),, XX66((kk)),, k k = 0, 1= 0, 1

0 0 03 3 2 2 3

0 1 03 3 2 2 3

(0) (0) (1) (0) (4)

(1) (0) (1) (0) (4)N

N

X x W W x x W x

X x W W x x W x

/ 4 1 1

3 3 / 4 3 / 40 0

( ) ( ) ( )N

lk lkN N

l l

X k x l W x l W

0,1k

0 0 04 4 2 2 4

0 1 04 4 2 2 4

(0) (0) (1) (2) (6)

(1) (0) (1) (2) (6)N

N

X x W W x x W x

X x W W x x W x

/ 4 1 1

4 4 / 4 4 / 40 0

( ) ( ) ( )N

lk lkN N

l l

X k x l W x l W

0,1k

2 、运算量当当 N N = 2= 2LL 时,共有时,共有 LL 级蝶形,每级级蝶形,每级 N N / 2/ 2 个蝶形,个蝶形,

每个蝶形有每个蝶形有 11 次复数乘法次复数乘法 22 次复数加法。次复数加法。

2log2 2F

N Nm L N 复数乘法:

2logFa NL N N 复数加法:

2

22

( ) 2

( ) loglog2

F

F

m DFT N NNm FFT NN

比较 DFT

3 、算法特点11 )原位计算)原位计算

1 1

1 1

( ) ( ) ( )

( ) ( ) ( )

rm m m N

rm m m N

X k X k X j W

X j X k X j W

m 表示第 m 级迭代, k, j 表示数据所在的行数

2 )倒位序倒位序倒位序 自然序自然序

000000 00 00 000000

100100 44 11 001001

010010 22 22 010010

110110 66 33 011011

001001 11 44 100100

101101 55 55 101101

011011 33 66 110110

111111 77 77 111111

nn00 nn11 nn22

00 00 00

11

11 00

11

11 00 00

11

11 00

11

2 1 0 2( ) ( )x n n n n n

2 1 0 2( )n n n n0 1 2 2( )n n n n

3 )蝶形运算

对对 N N = 2= 2LL点点 FFTFFT ,,输入倒位序,输出自然输入倒位序,输出自然序,序,第第 mm 级运算每个蝶形的两节点距离为 级运算每个蝶形的两节点距离为 22m–m–11

第第 mm 级运算:级运算:1

1 11 1

1 1

( ) ( ) ( 2 )

( 2 ) ( ) ( 2 )

m rm m m N

m m rm m m N

X k X k X k W

X k X k X k W

蝶形运算两节点的第一个节点为蝶形运算两节点的第一个节点为 kk 值,表值,表示成示成 LL 位二进制数,左移位二进制数,左移 L –L – mm 位,把右位,把右边空出的位置补零,结果为边空出的位置补零,结果为 rr 的二进制的二进制数。数。

rNW 的确定

2( ) 2L mr k

4 )存储单元

输入序列输入序列 xx((nn) : ) : NN 个存储单元个存储单元r

NW系数 : N / 2 个存储单元

4、 DIT 算法的其他形式流图 输入倒位序输出自然序输入倒位序输出自然序 输入自然序输出倒位序输入自然序输出倒位序 输入输出均自然序输入输出均自然序 相同几何形状相同几何形状

输入倒位序输出自然序输入倒位序输出自然序 输入自然序输出倒位序输入自然序输出倒位序

三 、按频率抽选的基 -2FFT 算法

11 、算法原理、算法原理设序列点数设序列点数 N=N=22LL,, LL 为整数。为整数。

将将 XX((kk))按按 kk 的奇偶分组前,先将输入的奇偶分组前,先将输入 xx((nn))按按 nn的顺序分成前后两半:的顺序分成前后两半:

1 / 2 1 1

0 0 / 2

( ) ( ) ( ) ( )N N N

nk nk nkN N N

n n n N

X k x n W x n W x n W

/ 2 1 / 2 12

0 0

( )2

NN N n knk

N Nn n

Nx n W x n W

/ 2 1

/ 2

0

( )2

NNk nk

N Nn

Nx n x n W W

/ 2 1

0

( ) ( 1)2

Nk nk

Nn

Nx n x n W

0,1,..., 1k N

/ 2 1NNW

按按 kk 的奇偶将的奇偶将 XX((kk)) 分成两部分:分成两部分:2

2 1

k r

k r

0,1,..., / 2 1r N

/ 2 12

0

(2 ) ( )2

Nnr

Nn

NX r x n x n W

/ 2 1(2 1)

0

(2 1) ( )2

Nn r

Nn

NX r x n x n W

/ 2 1

/ 20

( )2

Nnr

Nn

Nx n x n W

/ 2 1

/ 20

( )2

Nn nr

N Nn

Nx n x n W W

令令

1

2

( ) ( )2

( ) ( )2

nN

Nx n x n x n

Nx n x n x n W

0,1,..., 12

Nn

则则 XX(2(2rr))和和 XX(2(2rr+1)+1) 分别是分别是 xx11((nn))和和 xx22((nn)) 的 的 N N / 2/ 2点点 DFTDFT ,,记为记为 XX11((kk))和和 XX22((kk))

x1(0)

x1(1)

-1

x1(2)

x1(3)

-1

x2(0)

x2(1)

-1x2(2)

x2(3)-1

N/2 点DFT

N/2 点DFT

x(0)

x(7)

x(1)

x(2)

x(3)

x(4)

x(5)

x(6)

X1(0)=X(0)

X2(0)=X(1)

X1(1)=X(2)

X1(2)=X(4)

X1(3)=X(6)

X2(1)=X(3)

X2(2)=X(5)

X2(3)=X(7)

1NW

0NW

2NW

3NW

N N /2/2 仍为偶数,进一步分解:仍为偶数,进一步分解: N N /2 /2 N N /4/4

3 1 1

4 1 1 / 2

( ) ( ) ( / 4)

( ) [ ( ) ( / 4)] nN

x n x n x n N

x n x n x n N W

0,1,..., 14

Nn

3 1 3

4 1 4

( ) (2 ) [ ( )]

( ) (2 1) [ ( )]

X k X k DFT x n

X k X k DFT x n

0,1,..., 14

Nk

x3(0)

x3(1)

-1

-1

x4(0)

x4(1)

N/4 点DFT

N/4 点DFT

x1(0)

x1(1)

x1(2)

x1(3)

X3(0)=X1(0)=X(0)

X4(0)=X1(1)=X(2)

X3(1)=X1(2)=X(4)

X4(1)=X1(3)=X(6)

0/ 2NW

1/ 2NW

0,1,..., 14

Nk 5 2 5

6 2 6

( ) (2 ) [ ( )]

( ) (2 1) [ ( )]

X k X k DFT x n

X k X k DFT x n

同理:同理:

其中:其中:

5 2 2

6 2 2 / 2

( ) ( ) ( / 4)

( ) [ ( ) ( / 4)] nN

x n x n x n N

x n x n x n N W

0,1,..., 14

Nn

逐级分解,直到逐级分解,直到 22点点 DFTDFT

0 03 3 2 2 3 3 3

0 1 03 3 2 2 3 3 3

(0) (0) (0) (1) (0) (1)

(4) (1) (0) (1) [ (0) (1)] N

X X x W W x x x

X X x W W x x x W

/ 4 1 1

3 3 / 4 3 / 40 0

( ) ( ) ( )N

lk lkN N

l l

X k x l W x l W

0,1k

当当 NN=8=8 时,即分解到时,即分解到xx33((nn)),, xx44((nn)),, xx55((nn)),, xx66((nn)),, nn=0,1=0,1

0 04 4 2 2 4 4 4

0 1 04 4 2 2 4 4 4

(2) (0) (0) (1) (0) (1)

(6) (1) (0) (1) [ (0) (1)] N

X X x W W x x x

X X x W W x x x W

/ 4 1 1

4 4 / 4 4 / 40 0

( ) ( ) ( )N

lk lkN N

l l

X k x l W x l W

0,1k

2 、算法特点11 )原位计算)原位计算

1 1

1 1

( ) ( ) ( )

( ) [ ( ) ( )]m m m

rm m m N

X k X k X j

X j X k X j W

rNW

1( )mX k

1( )mX j

( )mX k

( )mX j-1

LL 级蝶形运算,每级级蝶形运算,每级 NN/2/2 个蝶形,每个蝶形结构:个蝶形,每个蝶形结构:

mm 表示第表示第 mm 级迭代,级迭代, kk,, jj 表示数据所在的行数表示数据所在的行数

2 )蝶形运算

对对 N=N=22LL点点 FFTFFT ,,输入自然序,输出倒位序,输入自然序,输出倒位序,两节点距离:两节点距离: 22L-mL-m==N N / 2/ 2mm

1 1

1 1

( ) ( )2

( )2 2

m m m m

rm m m Nm m

NX k X k X k

N NX k X k X k W

第第 mm 级运算:级运算:

蝶形运算两节点的第一个节点为蝶形运算两节点的第一个节点为 kk 值,表示成值,表示成 LL位二进制数,左移位二进制数,左移 mm-1-1 位,把右边空出的位置位,把右边空出的位置补零,结果为补零,结果为 rr 的二进制数。的二进制数。

rNW 的确定

12( ) 2mr k

3、 DIT与 DIF的异同 基本蝶形不同基本蝶形不同

2log2F

Nm N 2logFa N N

DITDIT: : 先复乘后加减先复乘后加减 DIFDIF: : 先减后复乘先减后复乘

运算量相同运算量相同

都可原位运算都可原位运算 DITDIT和和 DIFDIF 的基本蝶形互为转置的基本蝶形互为转置

四 、 IFFT 算法比较:比较:

1: nk nk

N NFFT W W IFFTN

1 1

2

L

N

1

0

1( ) ( )

Nnk

Nk

x n X k WN

IDFTIDFT::

1

0

( ) ( )N

nkN

n

X k x n W

DFTDFT::

1* *

0

1( ) ( )

Nnk

Nk

x n X k WN

*1 ** *

0

1 1( ) ( ) [ ( )]

Nnk

Nk

x n X k W DFT X kN N

1

0

1( ) ( )

Nnk

Nn

x n X k WN

共轭 FFT 共轭 乘 1/ N( )X k

*( )X k ( )x n

直接调用 FFT 子程序计算 IFFT 的方法:

直接直接 DFTDFT 方法 方法 / / CZTCZT 方法:当要求准确的方法:当要求准确的 NN点点 DFTDFT ,,且且 NN 是素数时是素数时

五、 N 为复合数的 FFT 算法——混合基算法

基基 -2-2FFTFFT 算法:算法: 2LN

2LN 当 时 补零使满足补零使满足 2LN

混合基混合基 FFTFFT 算法:算法: NN 是复合数是复合数

11 、 整数的多基多进制表示形式、 整数的多基多进制表示形式

1 2 2 1 0 2L Ln n n n n n 自然序

0 1 2 2 1 22 L Ln n n n n n 倒位序

1 2 21 2 2 1 0102 2 2 2L L

L Ln n n n n n

1 20 1 2 1102 2 2L L

L Ln n n n n

2L N(( 11 )二进制:)二进制:

0,1in 其中

0, , 1i L

(( 22)) rr 进制:进制: LN r

1 2 2 11 2 2 1 010

L LL Ln n r n r n r n r n

1 20 1 2 110

L LL Ln n r n r n r n

1 2 2 1 0L L rn n n n n n 0, , 1in r 其中

0, , 1i L 0 1 2 2 1L L rrn n n n n n

(( 33 )多基多进制(混合基):)多基多进制(混合基): 1 2 LN rr r

1 2

1 2 1 0L

L L r r rn n n n n

1 2 3 2 3 4 1 010 L L L L Ln n r r r n r r r n r n

1 10 1 , 1Ln r 其中 ,,

2 20,1, , 1Ln r

0 0,1, , 1Ln r

0,1, , 1i L in r 即 0, , 1i L

0 1 2 1 1 1 2 2 2 1 110 L L L Ln n rr r n r r r n r n

2 12 1

0 1 2 1LL

L L r r rr r rn n n n n

例:例: 1 24 4N rr

10 4 4

5 4 1 1 11

4 4 1010

5 11 4 1 1 5

10 4 4

6 4 1 2 12

10 4 4

11 4 2 3 23

4 4 1010

6 21 4 2 1 9

4 4 1010

11 32 4 3 2 14p

1 2 0 1 0104n n r n n n

0 1 1 0 1104n n r n n n

0 0,1,2,3n

1 0,1,2,3n

2 2 3 1 3 0 2 1 0103 2 2n n r r n r n n n n

0 1 2 1 1 2 0 1 0104 3 4n n r r n r n n n n

0 0,1n 2 0,1,2,3n 1 0,1,2n

1 2 34 3 2N r r r 例:

10 4 3 2

23 3 2 3 2 2 1 321

2 3 4 1010

23 123 4 3 1 4 2 3 23

10 4 3 2

3 3 2 0 2 1 1 011

2 3 4 1010

3 110 4 3 1 4 1 0 18

10 4 3 2

14 3 2 2 2 1 0 210

2 3 4 1010

14 012 4 3 0 4 1 2 6

22 、 的快速算法、 的快速算法 1 2N r r

1 2N rr 1 2 0n n r n 1 12

0 2

0,1, , 1

0,1, , 1

n rn r

n r

为 进制

1 21

0 1

0 1, , 1

0,1, , 1

k rk r

k r

,为 进制2 1N r r 1 1 0k k r k

1 2N rr

2 1N r r行 列行 列1r 2r 1n 行序号行序号 0n 列序号列序号

1r 2r行 列行 列 0k 行变量行变量 1k 列变量列变量

1

1 1 0 1 00

,N

nkN

n

X k X rk k X k k x n W

2 12 1 0 1 1 0

0 1

1 1

2 1 00 0

r rr n n r k k

Nn n

x r n n W

2 1

2 1 0 1 0 1 0 0 1 2 1 1

0 1

1 1

1 00 0

,r r

r n k r n k n k r r n kN N N N

n n

x n n W W W W

2 1

1 0 0 0 0 1

1 2

0 1

1 1

1 00 0

,r r

n k n k n kr N r

n n

x n n W W W

2

0 0 0 1

2

0

1

1 0 00

,r

n k n kN r

n

X k n W W

2

0 1

2

0

1'1 0 0 2 0 1

0

, ,r

n kr

n

X k n W X k k

的的 DFTDFT 算法算法 1 2N r r

(1) (1) 改写 成改写 成 x n 1 0,x n n

2 1 0 1 0,x n x r n n x n n 1 1

0 2

0,1, , 1

0,1, , 1

n r

n r

(2)(2) 做 个 点做 个 点 DFT DFT ,,得 得 为参量,输入变量 ,输出变量 的 点 为参量,输入变量 ,输出变量 的 点 DFTDFT

2r 1r 1 0 0,X k n

0n1n 0k 1r

(3) (3) NN 个 (旋转因子) 个 (旋转因子) 0 01 0 0, n k

NX k n W '1 0 0,X k n

(4)(4) 做 个 点做 个 点 DFTDFT ,,得 得 为参量,输入变量 ,输出变量 的 点为参量,输入变量 ,输出变量 的 点 DFTDFT

1r 2r 2 0 1,X k k

0k 1k0n 2r

(5) (5) 整序整序 1 0,X k k X k 1 1 0k rk k

1 2 4 2 8N rr 例 例

1 02n n n 1

0

0,1,2,3

0,1

n

n

1 04k k k 1

0

0,1

0,1,2,3

k

k

1

1 0 1 0

1

1 1

1 3

1 0 0 1 0 1 0 40 0

, , ,r

n k n kr

n n

X k n x n n W x n n W

0 0 0 0'1 0 0 1 0 0 1 0 0 8, , ,n k n k

NX k n X k n W X k n W

2

0 1 0 1

2

0 0

1 1' '

2 0 1 1 0 0 1 0 0 20 0

, , ,r

n k n kr

n n

X k k X k n W X k n W

1 0,X k k X k

当当 NN 为高组合素数时:为高组合素数时: 1 2 LN r r r

个 点个 点 DFTDFT ,乘以旋转因子,乘以旋转因子2 3 1L Lr r r r 1r

个 点个 点 DFTDFTLr1 2 2 1L Lr r r r X k 整序

个 点个 点 DFTDFT ,乘以旋转因子,乘以旋转因子1 3 1L Lr r r r 2r

个 点个 点 DFTDFT ,乘以旋转因子,乘以旋转因子1 2 2L Lr r r r 1Lr

LL级级 rr点点 DFTDFT

LN r

称基 算法,称基 算法,r 基基 算法算法 2r 2

混合基算法(基 算法)混合基算法(基 算法) 1 2 LN rr r 1 2 Lr r r

4r 4基 算法基 算法

混合基算法的运算量混合基算法的运算量

1 2N rr 不计译序、整序工作量不计译序、整序工作量

(( 22 )乘)乘 NN 个旋转因子 复乘 个旋转因子 复乘 NN

总计:总计: 2 22 1 1 2 1 2 1Fm r r N rr N r r

2 1 1 1 2 2 1 21 1 2Fa r r r r r r N r r

(( 11 ) 个 点) 个 点 DFT DFT 2r 1r复乘复乘 2

2 1r r

2 1 1 1r r r 复加复加

(( 33 ) 个 点) 个 点 DFTDFT 2r1r2

1 2r r

1 2 2 1r r r

复乘复乘复加复加

2 ( 1)F Fm N a N N 直接计算: ,

混合基节省的运算量混合基节省的运算量

2

1 2 1 21 1

N NR

N r r r r

1 21 2N r r R

1 2 LN r r r

1

1L

F ii

m N r L

1L 次乘次乘 NN 个旋转因子个旋转因子

个 点个 点 DFTDFT2 3 1L Lr r r r 1r

个 点个 点 DFTDFT1 3 1L Lr r r r 2r

个 点个 点 DFTDFTLr1 2 2 1L Lr r r r

六、基 六、基 -4-4FFTFFT 算法算法 当混合基当混合基 FFTFFT 算法中 时,算法中 时, 即为基即为基 -4-4FFTFFT 算法,算法, nn、、 kk 都为都为 44 进制数进制数

1 2 4Lr r r

个 点个 点 DFTDFT 乘乘 NN 个旋转因子个旋转因子1r1

N

r

个 点个 点 DFTDFT 乘乘 NN 个旋转因子个旋转因子2r2

N

r

个 点个 点 DFTDFTLrL

N

r X k整序

216 4N 1 0

1 0

4

4

n n n

k k k

1 0 0 0 0 1

0 1

3 34 4

1 00 0

, n k n k n kN N N

n n

X k x n n W W W

1 0

1

3

1 0 0 1 0 40

1) , , n k

n

X k n x n n W

0 0'1 0 0 1 0 02) , , n k

NX k n X k n W

0 1

0

3'

2 0 1 1 0 0 40

3) , , n k

n

X k k X k n W

0 0 0 01 0 4 0 4 0 4 0 4 00, 0, 1, 2, 3,X n W x n W x n W x n W x n

0 1 2 31 0 4 0 4 0 4 0 4 01, 0, 1, 2, 3,X n W x n W x n W x n W x n

1 0,n k1) 1) 的的 44点点 DFTDFT

1 0

1

3

1 0 0 1 0 40

, , n k

n

X k n x n n W

0 2 4 61 0 4 0 4 0 4 0 4 02, 0, 1, 2, 3,X n W x n W x n W x n W x n

0 2 0 24 0 4 0 4 0 4 00, 1, 2, 3,W x n W x n W x n W x n

0 3 6 91 0 4 0 4 0 4 0 4 03, 0, 1, 2, 3,X n W x n W x n W x n W x n

0 3 2 14 0 4 0 4 0 4 00, 1, 2, 3,W x n W x n W x n W x n

0 0 0 01 0 04 4 4 4

0 1 2 31 0 04 4 4 4

0 2 0 21 0 04 4 4 4

0 3 2 11 0 04 4 4 4

0, 0,

1, 1,

2, 2,

3, 3,

X n x nW W W W

X n x nW W W W

X n x nW W W W

X n x nW W W W

0

0

0

0

0,1 1 1 11,1 12,1 1 1 13,1 1

x n

x nj j

x n

x nj j

的四进制数 按二进制倒位序排列成的四进制数 按二进制倒位序排列成 0k 0,1,2,3 0,2,1,3

1 0 0

1 0 0

1 0 0

1 0 0

0, 0,1 1 1 12, 1,1 1 1 11, 2,1 13, 3,1 1

X n x n

X n x n

X n x nj j

X n x nj j

0 0 '1 0 0 1 0 02) , ,n k

NX k n W X k n

0 1,n k3) 的 4 点 DFT

0

0

0

00 0 0 02 0 1 0 164 4 4 4

0 1 2 32 0 1 0 164 4 4 4

20 2 0 22 0 1 0 164 4 4 4

30 3 2 12 0 1 0 164 4 4 4

,0 ,0

,1 ,1

,2 ,2

,3 ,3

k

k

k

X k X k WW W W W

X k X k WW W W W

X k X k WW W W W

X k X k WW W W W

0

0

0

01 0 16

1 0 162

1 0 163

1 0 16

,01 1 1 1,11 1,21 1 1 1,31 1

k

k

k

X k W

X k Wj j

X k W

X k Wj j

2

33 1 log

4 8F

Nm L N N

0 1NW 一个 4点 FFT 不需乘法,只需 3 次乘旋转因子( 除外)

2log2F

Nm N而基 -2FFT

4LN 基 -4FFT 运算量:

每级有 N/4 个 4点 FFT ,共 L 级( L-1 级要乘旋转因子)

七、分裂基 FFT 算法对偶序号使用基 -2FFT 算法,对奇序号使用基 -4FFT 算法,称分裂基 FFT 算法 针对 的算法中具有最少乘法次数,且同址运算。

2LN

将 分成三个序列。 x n 2LN x n

1 2x r x r 0, , 12

Nr

2

3

4 1 0, , 1

44 3

x l x l Nl

x l x l

1

0

Nnk

Nn

X k x n W

1 1 1

2 4 44 1 4 32

0 0 0

2 4 1 4 3

N N N

l k l krkN N N

r l l

x r W x l W x l W

1 1 1

2 4 43

1 2 2 4 3 40 0 0

N N N

rk k lk k lkN N N N N

r l l

x r W W x l W W x l W

31 2 3

k kN NX k W X k W X k

偶序号的 点 DFT 2

N奇序号的 点 DFT

4

N

利用周期性 分成四段: X k

31 2 3

k kN NX k X k W X k W X k

31 2 34 4

k kN N

N NX k X k jW X k jW X k

31 2 3

3

4 4k k

N N

N NX k X k jW X k jW X k

31 2 32

k kN N

NX k X k W X k W X k

0, , 14

Nk

的第一级分解得 4个分裂基216 4N X k

2X k 3X k 1X k同样对 、 、 作进一步分解。

2X k 3X k 和 的第二级分解分别是基 -4 的 4点 DFT。

1X k 的第二级分解得 2 个分裂基。一个基 -4 的 4点 DFT 和 2 个基 -2 的 4点DFT。

基 -2 ,基 -4 等基本碟形结都没有乘法,只有每个分裂基有两次复乘。

运算量: 2LN

2L 2 0B

3L 3 2B

4L 2

4 3 22 2 6LB B B

5L 25 4 32 2 18LB B B

分裂基碟形数: 21 22 2L

L L LB B B

2

1log

3Fm N N 2 2

3 1log log

8 2N N N N

八 、线性调频 z 变换( CZT) 算法

FFTFFT 不适用于:不适用于: 只研究信号的某一频段,要求对该频段抽样密只研究信号的某一频段,要求对该频段抽样密

集,提高分辨率;集,提高分辨率; 研究非单位圆上的抽样值;研究非单位圆上的抽样值; 需要准确计算需要准确计算 NN点点 DFTDFT ,,且且 NN 为大的素数;等等。为大的素数;等等。

CZTCZT 算法:对算法:对 zz 变换采用螺线抽样,变换采用螺线抽样, chirp-chirp-zz 变换变换线性调频 线性调频 zz 变换变换

1 、算法原理 NN 点有限长序列,其点有限长序列,其 zz 变换:变换:

1

0

( ) ( )N

n

n

X z x n z

kkz AW 0,1,..., 1k M

00 0

jz A e 00

jW W e

沿 z 平面上的一段螺线作等分角抽样,抽样点 zk :

其中:

M 为要分析的复频谱点数

0 0( )0 0

j kkkz A W e

抽样点:抽样点:0 0( )

0 0j kk

kz A W e

0A :起始抽样点的矢量半径长度0 :起始抽样点的相角0 :相邻抽样点的角度差

0 0 0 0 : 逆时针 :顺时针

0W :螺线的伸展率W0>1 :螺线内缩 W0<1 : 螺线外伸

当W0=1 ,则表示半径为 A0 的一段圆弧若又有 A0=1 ,则表示单位圆上的一段圆弧若又有 , M=N ,即为序列的 DFT。0 00, 2 / N

求抽样点处的求抽样点处的 zz 变换:变换:

1 1

0 0

( ) ( ) ( )N N

n n nkk k

n n

X z x n z x n A W

0,1,..., 1k M

2 2 2 1/ 2 ( )nk n k k n 由

2 2 2( )12 2 2

0

( ) ( )n k n kN

nk

n

X z x n A W W W

2 2 2( )12 2 2

0

( )k n k nN

n

n

W x n A W W

NM 次复乘 (N-1) M 次复加

2

2( ) ( )n

ng n x n A W 令2

2( )n

h n W

0,1,..., 1n N

2 2

12 2

0

( ) ( ) ( ) ( )* ( )k kN

kn

X z W g n h k n W g k h k

0,1,..., 1k M

2 2 2( )1

2 2 2

0

( )k n k nN

nk

n

X z W x n A W W

2、 CZT 的实现步骤及运算量的估算

2

2( ) ( )n

ng n x n A W 其中2

2( )n

h n W

0,1,..., 1n N

2 2 2( )1

2 2 2

0

( )k n k nN

nk

n

X z W x n A W W

0,1,..., 1k M

( ) : 0 ~ 1g n N ( ) : ( 1) ~ ( 1)h n N M 1N M 点

( )* ( ) : 2 2h n g n N M

( ) 0 ~ 1kX z k M

1 2mL N M L 且

2

2 ( ) 0 1( )0 1

nnA W x n n Ng n

N n L

21

0

( ) [ ( )] ( )L j rn

L

n

G r FFT g n g n e

0 1r L

1L N M 2mL 1) 选择 ,且2) 形成 L 点序列 g(n): (3N)

求其 L点 FFT: ( L/2*log2L)

2 / 2n nnC A W 系数

2 2( 1) ( 1) / 2 / 2 1/ 2 11 ( )n n n n n

n n nC A W A W W W A C D

1/ 2 1 1 1/ 2 11

n nn nD W W A W W W A WD

1/ 2 1

0 0 1D W A C

33 )形成)形成 LL 点序列点序列 hh((nn):):2

2

2

( )

2

0 1

( ) 0

1 1

n

L n

W n M

h n M n L N

W L N n L

21

0

( ) [ ( )] ( )L j rn

L

n

H r FFT h n h n e

0 1r L

求其 L点 FFT: (L/2*log2L)

(2N)

44 )求乘积)求乘积( ) ( ) ( )Q r H r G r

21

0

1( ) [ ( )] ( ) ( )

L j rnL

n

q k IFFT Q r H r G r eL

( ) ( ) ( )Mq k q k R k 取

2

2( ) ( )k

kX z W q k 0 1k M

(M)

(L)

5 )求 L点 IFFT 的 q (k)

(L/2*log2L)

6 )求得抽样点的 z 变换 :

总运算量 : 2

3log 5

2Fm L L N L M

3、 CZT 算法的优点 NN,, MM 可为任意数,可不等可为任意数,可不等

2

1j

NA M N W e

当 , , 时, CZT=DFT ,解决

了 N 为素数的快速算法问题

z0任意,从任意频率开始,便于窄带高分辨率分析

周线可以是螺线,而不一定是圆弧

0 任意,易调整频率分辨率

九、线性卷积和线性相关的 FFT 算法11 、线性卷积的、线性卷积的 FFTFFT 算法算法

dm LM需运算量:

( ) ( 1 )h n h M n

若系统满足线性相位,即:

/ 2dm LM则需运算量:

若 L点 x(n),M点 h(n),则直接计算其线性卷积 y(n)

1

0

( ) ( ) ( )M

m

y n h m x n m

FFTFFT 法:以圆周卷积代替线性卷积法:以圆周卷积代替线性卷积2 1mN M L 令

( ) 0 1( )

0 1

x n n Lx n

L n N

( ) 0 1( )

0 1

h n n Mh n

M n N

2(1 3/ 2*log )Fm N N

1)1) HH((kk) = ) = FFT FFT [[hh((nn)] )] N N /2*log/2*log22NN

4) y(n) = IFFT [Y(k)] N /2*log2N

3) Y(k) = H(k)X(k) N

2) X(k) =FFT [x(n)] N /2*log2N

N( ) ( )* ( ) ( ) ( )y n x n h n x n h n 则

比较直接计算和比较直接计算和 FFTFFT 法计算的运算量法计算的运算量

22 (1 3/ 2*log )d

mF

m MLK

m N N

2

2 24 [1 3/ 2*(1 log )] 10 6logm

M MK

M M M

22 3logm

MK

L

讨论:讨论:M L 1 2N M L M 则11 )当)当

L M 1N M L L 则22 )当)当

mL K 需采用分段卷积

重叠相加法重叠保留法

1 )重叠相加法

2 1mN M L 令

0,1,...i ( ) ( 1) 1

( )0i

x n iL n i Lx n

n

其它

( ) ( ) [ ( )* ( )] [ ( ) ( )]i i ii i i

y n y n x n h n x n h n N

( )

( )

x n L

L h n M

对长序列 分段,每段 点,与 的长度 等数量级

1 ( ) [ ( )]i iX k FFT x n)

2 ( ) [ ( )]H k FFT h n)

3 ( ) ( ) ( )i iY k X k H k )

4 ( ) [ ( )]i iy n IFFT Y k)

5 ( ) ( )ii

y n y n)

2 )重叠保留法

舍弃舍弃 yyii((nn)) 的前的前 MM-1-1 个点,再将个点,再将 yyii((nn)) 顺次连接,顺次连接,即得即得 yy((nn))。。

[ ( +1)] 0 1( )

0i

x n i N M n Nx n

n

其它分段分段

0 0 2( )

[ ( 1)] 1

n Mx n

x n M M n

右移序列右移序列

卷积卷积 ( ) ( )* ( ) ( ) ( )i i iy n x n h n x n h n N

2 、线性相关的 FFT 算法若若 LL点点 xx((nn)),, MM点点 yy((nn)) ,,计算线性相关:计算线性相关:

1*

0

( ) ( ) ( )M

xym

r n x n m y m

2 1mN M L 令

( ) 0 1( )

0 1

x n n Lx n

L n N

( ) 0 1( )

0 1

y n n My n

M n N

1 ( ) [ ( )]X k FFT x n)

( ) [ ( )]Y k FFT y n2)*3 ( ) ( ) ( )xyR k X k Y k )

4 ( ) [ ( )]xy xyr n IFFT R k)

*1 1*

0 0

1 1( ) ( ) ( )

N Nnk nk

xy xy N xy Nk k

r n R k W R k WN N

思考题:

11 )频谱分析)频谱分析

23 ( )j k

Nz re

X z

)计算

2 )计算线性卷积

2mN 下列 DFT应用中,能否将 x(n) 补零点使

Recommended