101
第第第 第第第第第第第 FFT: Fast Fourier Transform FFT: Fast Fourier Transform 1965 1965 Cooley, Tukey Cooley, Tukey 年年年年年年年年年年 年年年 年年年年年年年年年年 年年年

第四章 快速傅里叶变换

Embed Size (px)

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

Page 1: 第四章  快速傅里叶变换

第四章 快速傅里叶变换

FFT: Fast Fourier TransformFFT: Fast Fourier Transform

19651965 年,年, Cooley, TukeyCooley, Tukey

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

Page 2: 第四章  快速傅里叶变换

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

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

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

理解理解 IFFTIFFT 算法算法

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

了解了解 CZTCZT 算法算法

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

Page 3: 第四章  快速傅里叶变换

作业练习

P200:P200:

11 22 33 77 99 1313

Page 4: 第四章  快速傅里叶变换

一、直接计算 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点有限长序列

Page 5: 第四章  快速傅里叶变换

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

一个一个 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

Page 6: 第四章  快速傅里叶变换

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

Page 7: 第四章  快速傅里叶变换

FFT 算法分类 :

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

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

FFT

DFT DFT

DFT DFT

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

Page 8: 第四章  快速傅里叶变换

二 、按时间抽选的基 -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 算法。

Page 9: 第四章  快速傅里叶变换

则则 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

Page 10: 第四章  快速傅里叶变换

再利用周期性求再利用周期性求 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

Page 11: 第四章  快速傅里叶变换
Page 12: 第四章  快速傅里叶变换

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

一个一个 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

运算量减少了近一半

Page 13: 第四章  快速傅里叶变换

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

Page 14: 第四章  快速傅里叶变换

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统一系数:

Page 15: 第四章  快速傅里叶变换
Page 16: 第四章  快速傅里叶变换

这样逐级分解,直到这样逐级分解,直到 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

Page 17: 第四章  快速傅里叶变换
Page 18: 第四章  快速傅里叶变换

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

Page 19: 第四章  快速傅里叶变换

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 表示数据所在的行数

Page 20: 第四章  快速傅里叶变换

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

Page 21: 第四章  快速傅里叶变换
Page 22: 第四章  快速傅里叶变换

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

Page 23: 第四章  快速傅里叶变换

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

rNW 的确定

2( ) 2L mr k

Page 24: 第四章  快速傅里叶变换
Page 25: 第四章  快速傅里叶变换

4 )存储单元

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

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

Page 26: 第四章  快速傅里叶变换

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

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

Page 27: 第四章  快速傅里叶变换
Page 28: 第四章  快速傅里叶变换
Page 29: 第四章  快速傅里叶变换
Page 30: 第四章  快速傅里叶变换
Page 31: 第四章  快速傅里叶变换
Page 32: 第四章  快速傅里叶变换

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

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

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

Page 33: 第四章  快速傅里叶变换

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

Page 34: 第四章  快速傅里叶变换

按按 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

Page 35: 第四章  快速傅里叶变换

令令

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))

Page 36: 第四章  快速傅里叶变换

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

Page 37: 第四章  快速傅里叶变换

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

Page 38: 第四章  快速傅里叶变换

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

Page 39: 第四章  快速傅里叶变换

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

Page 40: 第四章  快速傅里叶变换
Page 41: 第四章  快速傅里叶变换

逐级分解,直到逐级分解,直到 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

Page 42: 第四章  快速傅里叶变换
Page 43: 第四章  快速傅里叶变换

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 表示数据所在的行数表示数据所在的行数

Page 44: 第四章  快速傅里叶变换

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 级运算:级运算:

Page 45: 第四章  快速傅里叶变换

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

rNW 的确定

12( ) 2mr k

Page 46: 第四章  快速傅里叶变换
Page 47: 第四章  快速傅里叶变换

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

2log2F

Nm N 2logFa N N

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

运算量相同运算量相同

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

Page 48: 第四章  快速傅里叶变换

四 、 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::

Page 49: 第四章  快速傅里叶变换
Page 50: 第四章  快速傅里叶变换

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 的方法:

Page 51: 第四章  快速傅里叶变换

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

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

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

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

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

Page 52: 第四章  快速傅里叶变换

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

Page 53: 第四章  快速傅里叶变换

(( 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

Page 54: 第四章  快速傅里叶变换

(( 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

Page 55: 第四章  快速傅里叶变换

例:例: 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

Page 56: 第四章  快速傅里叶变换

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

Page 57: 第四章  快速傅里叶变换

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 列变量列变量

Page 58: 第四章  快速傅里叶变换

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

Page 59: 第四章  快速傅里叶变换

的的 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

Page 60: 第四章  快速傅里叶变换

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

Page 61: 第四章  快速傅里叶变换
Page 62: 第四章  快速傅里叶变换

当当 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基 算法基 算法

Page 63: 第四章  快速傅里叶变换

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

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 直接计算: ,

Page 64: 第四章  快速傅里叶变换

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

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

Page 65: 第四章  快速傅里叶变换

六、基 六、基 -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整序

Page 66: 第四章  快速傅里叶变换

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

Page 67: 第四章  快速傅里叶变换

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

Page 68: 第四章  快速傅里叶变换

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

Page 69: 第四章  快速傅里叶变换

的四进制数 按二进制倒位序排列成的四进制数 按二进制倒位序排列成 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

Page 70: 第四章  快速傅里叶变换

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

Page 71: 第四章  快速傅里叶变换
Page 72: 第四章  快速傅里叶变换

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 级要乘旋转因子)

Page 73: 第四章  快速傅里叶变换

七、分裂基 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

Page 74: 第四章  快速傅里叶变换

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

Page 75: 第四章  快速傅里叶变换

利用周期性 分成四段: 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

Page 76: 第四章  快速傅里叶变换
Page 77: 第四章  快速傅里叶变换

的第一级分解得 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。

Page 78: 第四章  快速傅里叶变换
Page 79: 第四章  快速傅里叶变换

基 -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

Page 80: 第四章  快速傅里叶变换

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

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

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

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

Page 81: 第四章  快速傅里叶变换

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

Page 82: 第四章  快速傅里叶变换

抽样点:抽样点: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

Page 83: 第四章  快速傅里叶变换

求抽样点处的求抽样点处的 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 次复加

Page 84: 第四章  快速傅里叶变换

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

Page 85: 第四章  快速傅里叶变换

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 且

Page 86: 第四章  快速傅里叶变换
Page 87: 第四章  快速傅里叶变换

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

Page 88: 第四章  快速傅里叶变换

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)

Page 89: 第四章  快速傅里叶变换

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

Page 90: 第四章  快速傅里叶变换

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

2

1j

NA M N W e

当 , , 时, CZT=DFT ,解决

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

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

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

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

Page 91: 第四章  快速傅里叶变换

九、线性卷积和线性相关的 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

Page 92: 第四章  快速傅里叶变换

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 则

Page 93: 第四章  快速傅里叶变换

比较直接计算和比较直接计算和 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 需采用分段卷积

重叠相加法重叠保留法

Page 94: 第四章  快速傅里叶变换

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)

Page 95: 第四章  快速傅里叶变换
Page 96: 第四章  快速傅里叶变换

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

Page 97: 第四章  快速傅里叶变换
Page 98: 第四章  快速傅里叶变换
Page 99: 第四章  快速傅里叶变换

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

Page 100: 第四章  快速傅里叶变换

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

Page 101: 第四章  快速傅里叶变换

思考题:

11 )频谱分析)频谱分析

23 ( )j k

Nz re

X z

)计算

2 )计算线性卷积

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