第 3 章 FFT 快速傅氏变换

111

description

第 3 章 FFT 快速傅氏变换. 3.1 引言 3.2 直接计算 DFT 的问题及改进的途径 3.3 按时间抽取( DIT )的基 2-FFT 算法 3.4 按频率抽取( DIF )的基 2-FFT 算法 3.5 N 为复合数的 FFT 算法 3.6 线性调频 Z 变换( Chirp-Z 变换)算法 3.7 利用 FFT 分析时域连续信号频谱 3.8 FFT 的其他应用. 3.2 直接计算 DFT 的问题及改进的途径. 3.2.1 直接计算 DFT 的运算量问题. 两者的差别仅在指数的符号和因子 1/N. - PowerPoint PPT Presentation

Transcript of 第 3 章 FFT 快速傅氏变换

Page 1: 第 3 章   FFT 快速傅氏变换
Page 2: 第 3 章   FFT 快速傅氏变换

3.1 引言

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

3.3 按时间抽取(DIT)的基2-FFT算法

3.4 按频率抽取(DIF)的基2-FFT算法

3.5 N为复合数的FFT算法

3.6 线性调频Z变换(Chirp-Z变换)算法

3.7 利用FFT分析时域连续信号频谱

3.8 FFT的其他应用

Page 3: 第 3 章   FFT 快速傅氏变换

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

3.2.1 直接计算 DFT 的运算量问题

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

0

NkWnxkXN

n

nkN

1

0

1,,1,0 ,)(1

)(N

k

nkN NnWkX

Nnx

两者的差别仅在指数的符号和因子 1/N.

Page 4: 第 3 章   FFT 快速傅氏变换

通常x(n)和 都是复数,所以计算一个 X(k)的值需要N次复数乘法运算,和 次 复数加法运算.那么,所有的X(k)就要 N2次复 数乘法运算,N(N-1)次复数加法运算.

nkNW

1N

一个 X(k) 的值的工作量 ,如 X(1)

1210 )1()2()1()0()1( NNNNN WNxWxWxWxX

N 点 DFT 运算量:

复数乘法: N2

复数加法: N(N-1)

Page 5: 第 3 章   FFT 快速傅氏变换

3.2.2 改进的途径的对称性、周期性、可约性nk

NW

.

),1(1

),1(

)2/(

2/

)(2)()(

2

kN

NkN

jN

NN

nkNnN

NkN

nkN

knNN

kNnN

WW

eWW

eWWWWWN

nkN

nkN WW *)(对称性 :

mnk

mN

nmkmN

nkN WWW 可约性 :

周期性 : )()( NknN

kNnN

nkN WWW

Page 6: 第 3 章   FFT 快速傅氏变换

3.3 按时间抽取 (DIT) 的基- 2FFT 算法 (库利 -图基算法)

( 一 )N/2 点 DFT1. 先将 x(n) 按 n的奇偶分为两组作 DFT, 设 N=2

M , 这样有 : n 为偶数时 : n 为奇数时 : 1,,1,0 ),()12(

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

22

21

N

N

rrxrx

rrxrx

1

0

)()]([)(N

n

nkNWnxnxDFTkX

3.3.1 算法原理

Page 7: 第 3 章   FFT 快速傅氏变换

1

0

)12(1

0

222

)12()2(NN

r

krN

r

rkN WrxWrx

1

0

1

0)()()(

N

n

N

n

nkN

nkN WnxWnxkX

(n 为偶数 ) (n 为奇数 )

2

22 )/(222

N

NN WeeW

jjN

因为:

)()()()()( 21

1

02

1

01

2

2

2

2kXWkXWrxWWrxkX k

Nr

rkkN

r

rkN

N

N

N

1

0

22

1

0

21

22

))(())((NN

r

rkN

kN

r

rkN WrxWWrx

Page 8: 第 3 章   FFT 快速傅氏变换

2.两点结论: (1) X (k),X (k)均为 N/2点的 DFT。 (2) X(k)=X (k)+W X (k)只能确定出

X(k)的 k= 个;即前一半的结果。

1

0

1

022

1

0

1

011

2

2

2

2

2

2

2

2

12

2

N

N

N

N

N

N

N

N

r

rk

r

rk

r

rk

r

rk

WrxWrxkX

WrxWrxkX

)()()(

)()()(

1 2

1 2kN

1,,1,0 2 N

Page 9: 第 3 章   FFT 快速傅氏变换

这就是说 ,X1(k),X2(k) 的后一半 , 分别 等于其

前一半的值。

3.X(k) 的后一半的确定

)()()()2

( 1

1

01

)(1

011

2

2

2

2

2

kXWrxWrxkN

X

N

N

N

N

N

r

rkkr

r

rkkrN

N

N WW2

2

2

)( 由于 (周期性)

)()( kXkN

X 22 2同理:

Page 10: 第 3 章   FFT 快速傅氏变换

可见 ,X(k)的后一半,也完全由 X1(k), X2 (k)的前一半所确定。

*N 点的 DFT 可由两个 N/2 点的 DFT 来计算。

)2

()2

()2

( 212

NkXW

NkX

NkX

Nk

N

1,,1,0 ),()(221 Nk

N kkXWkX

kN

kNN

kN WWWW

NN

22 )(又由于 ,所以

Page 11: 第 3 章   FFT 快速傅氏变换

实现上式运算的流图称作蝶形运算( N/2 个蝶形 )

4. 蝶形运算

12

2,1,0k )()()(

12

2,1,0k ()()(

21

21

NkXWkXkX

NkXWkXkX

kN

kN

后一半

)前一半

( 前一半 ))()()( kXWkXkX kN 21

( 后一半 ))()()2

( 21 kXWkXkN

X kN

1 1

11

-1

)(1 kX

)(2 kXk

NW

Page 12: 第 3 章   FFT 快速傅氏变换

(1)N/2 点的 DFT 运算量 :复乘次数 :复加次数 :

(2) 两个 N/2 点的 DFT 运算量 :复乘次数 :复加次数 :

(3)N/2 个蝶形运算的运算量 :复乘次数 :复加次数 :

5. 计算工作量分析

复乘 :复加 :

4)

2(

22 NN

)12

(2

NN

2

2N

)12

( N

N

2

N

NN

22

2)1

2(

2NN

NN

222

22 NNN总共运算量 :

按奇、偶分组后的计算量:

* 但是 ,N 点 DFT 的复乘为 N2 ; 复加 N(N-1);与分解后相比可知 , 计算工作点差不多减少 一半。

Page 13: 第 3 章   FFT 快速傅氏变换

例如 N=8 时的 DFT, 可以分解为两个 N/2=4 点的 DFT. 具体方法如下 :

(1)n 为偶数时 , 即 分别记作 :

)(42/ 1 kXDFTN ,得点的进行

3,2,1,0

)2()()(3

04

3

0411

k

WrxWrxkXr

rk

r

rk

);6()3(

),4()2(

),2()1(

),0()0(

1

1

1

1

xx

xx

xx

xx

);6(),4(),2(),0( xxxx

Page 14: 第 3 章   FFT 快速傅氏变换

(2) n为奇数时 ,分别记作 :

);7()3(

),5()2(

),3()1(

),1()0(

2

2

2

2

xx

xx

xx

xx

3,2,1,0

)12()()(3

04

3

0422

k

WrxWrxkXr

rk

r

rk

)(42/ 2 kXDFTN ,得点的进行

3,2,1,0),()()4(

)()()(

21

21

kkXWkXkX

kXWkXkXk

N

kN

Page 15: 第 3 章   FFT 快速傅氏变换

x1(0)=x(0)

x1(1)=x(2) N/2点 x1(2)=x(4) DFT

x1(3)=x(6)

x2(0)=x(1)

x2(1)=x(3) N/2点 x2(2)=x(5) DFT

x2(3)=x(7)

1 2~ ~

X1(0)

X1(1)

X1(2)

X1(3)

X2(0)

X2(1)

X2(2)

X2(3)WN

2

WN1

WN0

WN3

-1

-1

-1

-1

X(0)

X(1)X(2)

X(3)

X(4)

X(5)

X(6)X(7)

(3)对 X (k)和 X (k)进行蝶形运算 ,前半部为 X(0) X(3), 后半部分为 X(4) X(7) 整个过程如下图所示 :

Page 16: 第 3 章   FFT 快速傅氏变换

由于 N=2 M , 所以 N/2 仍为偶数 ,可以进一步把每个 N/2 点的序列再按其奇偶部分分解为两个 N/4 的子序列。例如,n为偶数时的 N/2 点分解为 :

( 二 ) N/4 点 DFT

1102431 Nlxlx ,,,),()(

1,,1,0),()12( 441 Nlxlx

Page 17: 第 3 章   FFT 快速傅氏变换

klN

l

lkN

l

lkN

l

lkN

l

WlxWlxkX

WlxWlxkX

NN

NN

)12(2/

1

014/

1

044

22/

1

014/

1

033

)12()()(

)2()()(

44

44

(偶中偶

)

(偶中奇 )

进行 N/4 点的 DFT, 得到

Page 18: 第 3 章   FFT 快速傅氏变换

)()()( 4312

kXWkXkX kN

1,,1,0 4 Nk

从而可得到前 N/4 的 X1(k)

后 N/4 的 X1(k) 为

)()()4

( 4312

kXWkXkN

X kN

1,,1,0 4 Nk

Page 19: 第 3 章   FFT 快速傅氏变换

( 奇中偶 )

1

04/64/

1

026

1

04/5

1

04/25

44

44

)()12()(

)()2()(

NN

NN

l

lkN

lkN

l

l

lkN

l

lkN

WlxWlxkX

WlxWlxkX

( 奇中奇)

同样对 n为奇数时, N/2 点分为两个 N/4 点 的序列进行 DFT ,则有 :

Page 20: 第 3 章   FFT 快速傅氏变换

14

,,1,0k

; (k)XW(k) X(k) X 6kN/252

N

14

,,1,0k

; (k)XW(k) Xk)4

N( X 6

kN/252

N

进行碟形运算,得:、由 )()( 65 kXkX

Page 21: 第 3 章   FFT 快速傅氏变换

例如 ,N=8时的 DFT可分解为四个 N/4的DFT,

具体步骤如下 :

)4()2()1(

)0()0()0(

)()()(

13

13

13

xxx

xxx

nxrxlx

(1) 将原序列 x(n) 的“偶中偶”部分 :

构成 N/4 点 DFT ,从而得到 X3(0), X3(1) 。

Page 22: 第 3 章   FFT 快速傅氏变换

)6()3()1(

)2()1()0(

)()()(

14

14

14

xxx

xxx

nxrxlx

(2) 将原序列 x(n) 的“偶中奇”部分 :

构成 N/4 点 DFT ,从而得到 X4(0), X4(1) 。

(3) 将原序列 x(n) 的“奇中偶”部分 :

)5()2()1(

)1()0()0(

)()()(

25

25

25

xxx

xxx

nxrxlx

构成 N/4 点 DFT ,从而得到 X5(0), X5(1) 。

Page 23: 第 3 章   FFT 快速傅氏变换

(4) 将原序列 x(n) 的“奇中奇”部分 :

)7()3()1(

)3()1()0(

)()()(

26

26

26

xxx

xxx

nxrxlx

构成 N/4 点 DFT ,从而得到 X6(0), X6(1) 。

Page 24: 第 3 章   FFT 快速傅氏变换

( 5 )由 X3(0),X3(1),X4(0),X4(1) 进行碟形运算

, 得到 X1(0),X1(1),X1(2),X1(3) 。

( 6 )由 X5(0),X5(1),X6(0),X6(1) 进行碟形运

算 ,得到 X2(0),X2(1),X2(2),X2(3) 。

Page 25: 第 3 章   FFT 快速傅氏变换

(0)= (0)= (0) N/4 (1)= (2)= (4) DFT (0)= (1)= (2) N/4 (1)= (3)= (6) DFT (0)= (0)= (1) N/4

(1)= (2)= (5) DFT (0)= (1)= (3) N/4 (1)= (3)= (7) DFT

3 1

3 1

4 1

4 1

5 2

5 2

6 2

6 2

0

2N

N

0

2

N

N

W

W

W

W

0

1

2

3

N

N

N

N

-1

-1

-1

-2

-1

-1

W

W

W

W

X (0)

X (1)

X (0)

X (1)

X (0)

X (1)

X (0)

X (1)

3

3

4

4

5

5

6

6

X (0)

X (1)

X (2)

X (3)

X (0)

X (1)

X (2)

X (3)

1

1

1

2

2

2

2

1

X(0)

X(1)

X(2)

X(3)

X(4)

X(5)

X(6)

X(7)

(7) 由 X1(0),X1(1),X1(2),X1(3); X2(0),X2(1), X2(2),X2(3) 进行碟形运算 , 得到 X(0), X(1), X(2), X(3) X(4), X(5), X(6), X(7) 。

Page 26: 第 3 章   FFT 快速傅氏变换

这样,又一次分解,得到四个N/4点 DFT, 两级蝶形运算,其运算量有大约减少一半, 即为N点 DFT的 1/4。对于N=8时 DFT,N/4点即为两点DFT,因此

0,1k ,)()(

0,1k ,)()(

0,1k ,)()(

0,1k ,)()(

4/

1

066

1

04/55

1

04/44

1

04/33

lkN

l

l

lkN

l

lkN

l

lkN

WlxkX

WlxkX

WlxkX

WlxkX

Page 27: 第 3 章   FFT 快速傅氏变换

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

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

31233

03

0233

xWxxWxX

xWxxWxX

N

N

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

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

41244

04

0244

xWxxWxX

xWxxWxX

N

N

Page 28: 第 3 章   FFT 快速傅氏变换

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

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

51255

05

0255

xWxxWxX

xWxxWxX

N

N

)7()3()1()0()1(

)7()3()1()0()0(0

61266

06

0266

xWxxWxX

xWxxWxX

N

N

Page 29: 第 3 章   FFT 快速傅氏变换

(0) (4) (2) (6) (1) (5) (3) (7)

WN0

WN0

WN0

W 0N

-1

-1

-1

-1

X (0)

X (1)

X (0)

X (1)

X (0)

X (1)

X (0)

X (1)

3

3

4

4

5

5

6

6

WN0

WN2

WN0

WN2

-1

-1

-1

-1

X (0)

X (1)

X (2)

X (3)

X (0)

X (1)

X (2)

X (3)

1

1

1

2

1

2

2

2

W

W

W

W

N0

N1

N2

N3

-1

-1

-1

-1

X(0)

X(1)

X(2)

X(3)

X(4)

X(5)

X(6)

X(7)

x

xx

x

xx

x

x

因此 ,8 点 DFT 的 FFT 的运算流图如下:

Page 30: 第 3 章   FFT 快速傅氏变换

3.3.2 按时间抽取的 FFT 算法与直接计算 DFT 运算量的比较

复乘 : mF = ( N/2).M= ( N/2)log2 N

复加 : aF =N .M=N log2 N

lbN

N

lbNN

N

MNN 2

22

22

由上节分析可知 ,N=8 需三级蝶形运算 由此可知 ,N=2M 共需 M级蝶形运算 , 而且每级都由 N/2 个蝶形运算 组成 ,每个蝶 形运算有一次复乘 ,两次复加。因此 ,N点的 FFT 的运算量为 :

直接计算 DFT 与 FFT 算法的计算量之比:

Page 31: 第 3 章   FFT 快速傅氏变换

例:如果通用计算机的速度为平均每次复数乘需要 5us ,每次复数加法需要 0.5us 用它来计算 512 点的 DFT 〔 x(n)〕,问 1) 直接计算需要多长时间? 2)用 FFT 需要多长时间?解: 1) 直接计算复乘: T1 = 5×10 - 6×N2=1.31072S

sN N 01152.0log2 2

2) 用 FFT 计算复乘: T1 = 5×10 - 6×

sN N 002304.0log2 复加: T2 = 0.5×10 - 6×

T= T1+ T2=0.013824s

思考:若计算 300 点的 DFT ,运算量个为多少?

复加: T2 = 0.5×10 - 6×N(N-1)=0.130816 S T= T1+ T2=1.441526s

Page 32: 第 3 章   FFT 快速傅氏变换

(0)=X0(0) X1(0) X2(0) X3(0)=X(0)

(4)=X0(1) X1(1) X2(1) X3(1)=X(1)

(2)=X0(2) X3(2)=X(2)

(6)=X0(3) X3(3)=X(3)

(1)=X0(4) X1(4) X2(4) X3(4)=X(4)

(5)=X0(5) X3(5)=X(5)

(3)=X0(6) X3(6)=X(6)

(7)=X0(7) X1(7) X2(7) X3(7)=X(7)

W

W

W

W

N0

N2

N0

N2

-1

-1

-1

-1

W

W

W

WN

N

N

N0

1

2

3

W

W

W

W

N0

N0

N0

N0

-1

-1

-1

-1

.

.

.

.

.

.

.

.

.

.

.

3.3.3 按时间抽取的的 FFT 算法的特点及 DIT-FFT 程序框图

1. 原位运算输入数据、中间运算结果和最后输出均用同一存储器。

xxx

xxxxx

Page 33: 第 3 章   FFT 快速傅氏变换

r

Nmmm

rNmmm

WjXkXjX

WjXkXkX

)()()(

)()()(

11

11

设用 m(m=1,2,… ,M) 表示第 m列 ;用 k,j 表示蝶形

输入数据所在的(上 /下)行数 (0,1,2,… ,N-1);这时任何一个蝶形运算可用下面通用式表示:

由运算流图可知 ,一共有 N个输入 /出行 ,一共有log2 N=M 列(级)蝶形运算 .

-1

)()()( 11 jXWkXkX mr

Nmm

)()()( 11 jXWkXjX mk

Nmm

)(1 kX m

)(1 jX mr

NW

Page 34: 第 3 章   FFT 快速傅氏变换

可见 ,在某列进行蝶形运算的任意两个节点 (行 )k 和 j的节点变量

就完全可以确定蝶形运算的结果 , 与其它行 (节点 )无关。 这样 ,蝶形运算的两个输出值仍可放回蝶形运算的两个输入所在的存储器中 ,即实现所谓原位运算。每一组 (列 )有 N/2 个蝶形运算 ,所以只需N个存储单元,可以节省存储单元。

)(),( jXkX mm

)(),( 11 jXkX mm

Page 35: 第 3 章   FFT 快速傅氏变换

2 倒位序规律

由图可知 ,输出 X(k) 按正常顺序排

列在存储单元 ,而输入是按顺序 :

这种顺序称作倒位序 ,即二进制数倒位。

);); 7(),3(),5(),1(6(),2(),4(),0( xxxxxxxx

Page 36: 第 3 章   FFT 快速傅氏变换

n =00

n =10

n =01

n =11

n =01

n =11

0

1

0

1

0

1

0

1

),,( 012 nnnx

(n2)

x(000) 0

x(100) 4

x(010) 2

x(110) 6

x(001) 1

x(101) 5

x(011) 3

x(111) 7

(偶)

(奇)

这是由奇偶分组造成的 ,以 N=8 为例 说明如下 :

Page 37: 第 3 章   FFT 快速傅氏变换

3. 倒位序实现 输入序列先按自然顺序存入存储单元 ,然后经变址运算来实现倒位序排列

设输入序列的序号为 n, 二进制为 (n2 n1 n0 )2 , 倒位序顺序用 表示 ,其倒位序二进制为 (n0 n1 n2 )2 , 例如 , N=8 时如下表:

Page 38: 第 3 章   FFT 快速傅氏变换

0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 4 2 0 1 0 0 1 0 2 3 0 1 1 1 1 0 6 4 1 0 0 0 0 1 1 5 1 0 1 1 0 1 5 6 1 1 0 0 1 1 3 7 1 1 1 1 1 1 7

自然顺序 n 二进制 n n n 倒位序二进制 n n n 倒位顺序 n^2 1 0 0 1 2

Page 39: 第 3 章   FFT 快速傅氏变换

A(1) A(2) A(3) A(4) A(5) A(6) A(7) A(8)x(0) x(1) x(2) x(3) x(4) x(5) x(6) x(7)

x(0) x(4) x(2) x(6) x(1) x(5) x(3) x(7)

变址处理方法

存储单元自然顺序

变址

倒位序4. 蝶形运算两节点的距离 :2m-1

其中 ,m表示第 m列 ,且 m =1,… ,M 例如 N=8=23 , 第一级 (列 )距离为 21-1=1, 第二级 (列 )距离为 22-1=2 , 第三级 (列 )距离为 23-1=4。

Page 40: 第 3 章   FFT 快速傅氏变换

5.WNr 的确定

考虑蝶形运算两节点的距离为 2m-1 , 蝶形运算可表为 Xm(k)=Xm-1(k)+Xm-1(k+2m-1)WN

r

Xm(k+2m-1)=Xm-1(k)-Xm-1(k+2m-1)WNr

由于 N为已知 ,所以将 r的值确定即可。

为此,令第一个节点标号 k=(n2n1n0)2 , 再将 k= (n2n1n0)2 左移 (M-m) 位 ,右边位置补零 , 就可得到 (r)2 的值,即 (r)2 =(k)22M-

m 。

r 的确定 :

Page 41: 第 3 章   FFT 快速傅氏变换

例如 N=8=23

(1)k=2 , m=3 的 r 值 ,

∵k=2=(010)2 左移M-m=3-3=0 ,

∴ r=(010)2=2;

(2)k=3 ,m=3 的 r 值 ; k= 3=(011)2,

左移 0 位 ,r=3;

(3)k=5 ,m=2 的值 ; k=5=(101)2 ,

左移M-m=1 位 r=(010)2 =2 。

Page 42: 第 3 章   FFT 快速傅氏变换

共计 (N+N/2) 个存储单元。

6. 存储单元

x 存输入序列 (n),n=0,1, ,N-1,

计 N 个单元 ;

r

NW 存放 系数 , r=0,1, , ( N/2 ) -1, 需 N/2 个存储单元;

Page 43: 第 3 章   FFT 快速傅氏变换

3.4 按频率抽取( DIF) 的基- 2FFT 算法 (桑德—图基算法 )

3.4.1 算法原理 1.N 点 DFT 的另一种表达形式

1

0

)()(N

n

nkNWnxkX

1

2/

1

0

)()(2 N

Nn

nkN

n

nkN WnxWnx

N

1

0

)(1

0

22

2

)2

()(

NN

N

n

knN

n

nkN W

NnxWnx

Page 44: 第 3 章   FFT 快速傅氏变换

nkN

n

kN WW

Nnxnx

NN

1

0

22)

2()(

, 12 jN eW

N kkN

N

W )1(2

nkN

n

k WN

nxnxkX

N

1

0

2

)2

()1()()(

1,,1,0 Nk

Page 45: 第 3 章   FFT 快速傅氏变换

2.N 点 DFT 按 k的奇偶分组可分为两个 N/2 的 DFT 当 k 为偶数 ,即 k=2r 时 ,(-1)k =1; 当 k 为奇数 ,即 k=2r+1 时 (-1)k =-1 。 这时 X(k) 可分为两部分:

nr

n

nrN

n

N

N

N

WN

nxnx

WN

nxnxrX

2

2

2

1

0

21

0

)2

()(

)2

()()2(

1,,1,0 2 Nr

k 为偶数时:

Page 46: 第 3 章   FFT 快速傅氏变换

k 为奇数时:

nr

n

nN

rnN

n

N

N

N

WWN

nxnx

WN

nxnxrX

2

2

2

1

0

)12(1

0

)2

()(

)2

()()12(

1,,1,0 2 Nr

Page 47: 第 3 章   FFT 快速傅氏变换

1,,1,0

)]2

()([)(

)2

()()(

2

2

1

N

nN

n

WN

nxnxnx

Nnxnxnx

1,,1,0

)()12(

)()2(

21

2

02

12

01

2

2

N

nr

N

n

nr

N

n r

WnxrX

WnxrX

N

N

可见 ,上面两式均为 N/2 的 DFT 。

Page 48: 第 3 章   FFT 快速傅氏变换

)2

()()(1

Nnxnxnx

1,,1,02 Nn

nNW

Nnxnxnx

)

2()()(2

3. 蝶形运算进行如下碟形运算:和 )

2()(

Nnxnx

-1n

NW)

2(

Nnx

)(nx

Page 49: 第 3 章   FFT 快速傅氏变换

-1

-1

-1

-1

W

W

W

W

N

N

N

N

0

1

2

3

4.N=8 时 , 按 k 的奇偶分解过程

先蝶形运算,后 DFT:)0(x)1(x

)5(x)4(x

)3(x

)2(x

)7(x)6(x

)0(X

)2(X

)6(X

)1(X)3(X

)5(X

)7(X

)4(XDFT

N点2

DFT

N点2

Page 50: 第 3 章   FFT 快速傅氏变换

5.仿照 DIT的方法

再将 N/2 点 DFT 按 k的奇偶分解为两个

N/4 点的 DFT

Page 51: 第 3 章   FFT 快速傅氏变换

X[0]

X[6]

X[4]

X[2]

X[1]

X[5]

X[3]

X[7]

0NW1NW2

NW3

NW-1

-1

-1

-1

x[0]

x[3]

x[1]

x[2]

x[4]

x[5]

x[6]

x[7]

0NW

2NW

2 点DFT

-1

-1

2NW

0NW

-1

-1

2 点DFT

2 点DFT

2 点DFT

Page 52: 第 3 章   FFT 快速傅氏变换

(0) X(0) (1) X(4) (2) X(2) (3) X(6) (4) X(1) (5) X(5) (6) X(3) (7) X(7)

-1

-1

-1

-1

W

W

W

W

N

N

N

N

0

1

2

3

-1

-1

-1

-1

W

W

W

W

N

N

N

N

0

2

0

2

-1

-1

-1

-1

W

W

W

W

N

N

N

N

0

0

0

0

x

x

x

x

x

x

x

x

6. 如此进行下去 , 直至分解为 2点 DFT

Page 53: 第 3 章   FFT 快速傅氏变换

3.4.2 按频率抽取法的运算特点

rNmmm

mmm

WjXkXjX

jXkXkX

)]()([)(

)()()(

11

11

-1 WN

r

)(1 kX m

)(1 jX m

)()()( 11 jXkXkX mmm

rNmmm WjXkXjX )]()([)( 11

每级 ( 列 ) 都是由 N/2 个蝶形运算构成 ,即 :

Page 54: 第 3 章   FFT 快速傅氏变换

DIF 法与 DIT 法的异同

1.相同点 (1) 进行原位运算; (2) 运算量相同;

2.不同点 DIT 先作复乘再作加减; DIF 先作减法再作复乘

Page 55: 第 3 章   FFT 快速傅氏变换

Matlab 中快速离散傅立叶变换函数一维快速离散傅立叶正变换函数Y = fft(x) 当 x 的长度为 2 的整数幂时,用基- 2 算法,否则用分裂算法Y = fft(x,n) n 点的快速傅立叶变换,当 x 大于 n 时截断x ,当 x小于 n 时补零一维快速离散傅立叶逆变换函数Y =ifft(x)Y = ifft(x,n)

Page 56: 第 3 章   FFT 快速傅氏变换

例:求 ; N=14 点的 DFT

)14/6cos()( nnx

Matlab 程序如下:

Page 57: 第 3 章   FFT 快速傅氏变换

clear allN=14;n=0:1:N-1;xn=cos((6*pi*n)/14);XK =fft(xn,N);magXK=abs(XK);phaXK=angle(XK);subplot(2,1,1);stem(n,xn)xlabel('n');ylabel('x(n)');title('x(n)) N=14');subplot(2,1,2)k=0:length(magXK)-1;stem(k,magXK,'.');xlabel('k');ylabel('|X(k)|');title('X(k) N=14');

Page 58: 第 3 章   FFT 快速傅氏变换
Page 59: 第 3 章   FFT 快速傅氏变换

3.5 N 为复合数的 FFT 算法

1) 若序列的点数 N=2M 时,采用基 -2FFT 算法的基本原理。这种基 -2FFT 算法程序简单,效率高,使用方便,在实际中使用得最多。

2) 若不满足 N=2M ,可将 x(n)增补一些零值点。 有限长序列补零之后,并不影响其频谱 X(ejω) ,只不过其频谱的抽样点数增加了,所造成的结果是增加了计算量而已。 但是,有时计算量增加太多,浪费较大。

3) 若 N 是一个复合数,即它可以分解成一些因子的乘积,则可以

用 FFT 的一般算法,即混合基 FFT 算法,如库利 - 图基( Coole

y Tukey )算法,而基 -2 算法只是这种一般算法的特例。

Page 60: 第 3 章   FFT 快速傅氏变换

问题引出:( 1)实际中,也许对其它围线上 z变换取样发生兴趣。如语音处理中,常常需要知道某一围线 z变换的极点所处的复频率。

( 2)只需要计算单位圆上某一段的频谱。如窄带信号,希望在窄带频率内频率抽样能够非常密集,提高分辨率,带外则不考虑。

( 3)若 N是大素数时,不能加以分解,又如何有效计算这种序列 DFT 。例 N=311 ,若用基2则须补 N=28=512 点,要补 211 个零点。

3.6 线性调频 Z变换( Chirp-Z变换)算法

Page 61: 第 3 章   FFT 快速傅氏变换

单位圆与非单位圆采样( a ) 沿单位圆采样 ; (b) 沿 AB 弧采样

o o

o o A B

X (e j)

Re [z ] Re [z ]

jIm [z ]jIm [z ]

A

B

(a ) (b )

X (e j)

Page 62: 第 3 章   FFT 快速傅氏变换

3.6.1 算法基本原理 已知 x(n) ( 0≤n≤N-1 )是有限长序列,其 Z变换为

1

0)()(

N

n

nznxzX

为适应 z可以沿 Z平面更一般的路径取值,故沿 Z平面上的一段螺线作等分角的采样, z的这些采样点 zk 为 zk=AW-k k=0, 1, …, M-1

M 为所要分析的复频率的点数,即采样点的总数,不一定等于 N; A和 W都是任意复数,可表示为 :

Page 63: 第 3 章   FFT 快速傅氏变换

0

0

0

0

j

j

eWW

eAA

令:

)(0000

0000 kjkjkkjk eWAeWeAz 则:

])1(()1(001

)(00

)(1001

00

00

00

00

0

MjMM

kjkk

j

j

eWAz

eWAz

eWAz

eAz

Page 64: 第 3 章   FFT 快速傅氏变换

螺线采样

A0 表示起始采样点 z0 的矢量半径长度,通常 A0≤1; 否则 z0将处于单位圆 |z|=1 的外部。 θ0 表示起始采样点 z0 的相角,它可以是正值或负值。φ0 表示两相邻采样点之间的角度差。 φ0 为正时,表示 zk 的路径是逆时针旋转的; φ0 为负时,表示 zk 的路径是顺时针旋转的。W0 的大小表示螺线的伸展率。W0>1 时,随着 k 的增加螺线内缩 ; W0<1 时,则随 k 的增加螺线外伸 ; W0=1 时,表示是半径为 A0 的一段圆弧。 若又有 A0=1, 则这段圆弧是单位圆的一部分。

Page 65: 第 3 章   FFT 快速傅氏变换

1

0

1

0

)(

)()(

N

n

nkn

N

n

nkk

WAnx

znxzX

0≤k≤M-1

复数乘法: NM次 复数加法: (N-1)M 次当 N , M很大时 , 这个量很大 , 这就限制了运算速度。但是,我们通过一定的变换,可以采用 FFT 算法,这样就可以大大提高运算速度。

这样,延螺线采样值为:

Page 66: 第 3 章   FFT 快速傅氏变换

nk 可以用以下表达式来替换

])([2

1 222 nkknnk

2

)(1

0

22

22

)(1

0

2

222

222

])([

)()(

nkN

n

nn

k

knkN

n

nn

k

WWAnxW

WWWAnxzX

如果定义 :

2

2

2

2

)(

)()(n

nn

Wnh

WAnxng

n=0, 1, …, N-1

Page 67: 第 3 章   FFT 快速傅氏变换

则它们的卷积为:

2

)(1

0

2

1

0

22

])([

)()()()(

nkN

n

nn

N

n

WWAnx

nkhngkhkg

)]()([)( 2

2

khkgWzXk

k 所以:k=0, 1, …, M-1

Page 68: 第 3 章   FFT 快速傅氏变换

Chirp-Z变换的线性系统表示

x (n )

2/ 2 )( nWnh

2/ 2nnWA

g (n )h (n )

£ £½£ 1 / h (n )

X (zn

)

Page 69: 第 3 章   FFT 快速傅氏变换

线性系统 h(n) 是非因果的,当 n 的取值为 0 到 N-1 , k 的取值为 0, 1, …, M-1 时, h(n) 是在 n=-(N-1) 到 n=M-1 取值。也就是说, h(n) 是一个有限长序列,点数为 N+M-1 ,见图 3-20( a)。输入信号 g(n)也是有限长序列,点数为 N 。 g(n)*h(n)的点数为 2N+M-2 ,因而用圆周卷积代替线性卷积且不产生混叠失真条件是圆周卷积的点数应大于或等于 2N+M-2 。但是,由于我们只需要前 M 个值 X ( zk ) (k=0, 1, …, M-1) ,对以后的其他值是否有混叠失真并不感兴趣,这样可将圆周卷积的点数缩减到最小为 N+M-1 。当然,为了进行基 -2 FFT 运算,圆周卷积的点数应取为 L≥N+M-1 ,同时又满足 L=2m 的最小 L。这样可将 h(n) 先补零值点,补到点数等于 L,也就是从 n=M开始补 L-(N+M-1) 个零值点,补到 n=L-N处,或补 L-(N+M-1) 个任意序列值,然后将此序列以 L为周期而进行周期延拓,再取主值序列,从而得到进行圆周卷积的一个序列,如图 3-20 ( b)所示。 进行圆周卷积的另一个序列只需要将 g(n)补上零值点,使之成为 L点序列即可,如图 3-20 ( c)所示。

3.6.2 Chirp-Z 变换( CZT )的实现步骤

Page 70: 第 3 章   FFT 快速傅氏变换

图 3-20 Chirp-Z 变换的圆周卷积图( M≤n≤L-1 时, h(n) 和 g(n) 的圆周卷积不代表线性卷积)

o n

n

n

no

o

o

M £ 1

M £ 1 L £ N £«1 L £ 1

£ ( N £ 1)

N £ 1

M £ 1

¡

2 2n

2/]))[(( 2 )( LnWnh £ £½

ÈÎÒâÖµ

2

2

)( )(n

nWAnxng £ £½

h (n ) g (n )

(a )

(b )

(c )

(d )

n £½M ÒÔºóµÄÐòÁÐûÓл ³ö

L £ 1

L

Page 71: 第 3 章   FFT 快速傅氏变换

( 1 )选择一个最小的整数 L,使其满足 L≥N+M-1 ,同时满足 L=2m ,以便采用基 -2 FFT 算法。

0

)()(2

2

nxWAng

nn 0≤n≤N-1

N≤n≤L-1

1

0

2

)()(N

n

rnL

jengrG

0≤r≤L-1

CZT 运算的实现步骤:

2

2

)()(n

nWAnxng ( 2 )将 补上零值点, 变为 L点序列,因而有:

Page 72: 第 3 章   FFT 快速傅氏变换

( 3)形成 L点序列 h(n)

2

)(

2

2

2

)(0)(nL

n

W

W

nh 或任意值

0≤n≤M-1

L-N+1≤n≤L-1

M≤n≤L-N

1

0

2

)()(L

n

rnL

jenhrH

0≤r≤L-1

( 4 )将 H(r) 和 G(r) 相乘,得 Q(r)=H(r)G(r) , Q(r) 为 L点频域离散序列。

Page 73: 第 3 章   FFT 快速傅氏变换

( 5 )用 FFT 法求 Q(r) 的 L点 IDFT ,得 h(n) 和 g(n)的圆周卷积

1

0

2

)()(1

)()()(L

r

rnL

jerGrH

Lnqngnh

L

式中,前 M 个值等于 h(n) 和 g(n) 的线性卷积结果[ h(n)*g(n) ] ; n≥M 的值没有意义,不必去求。

10)()( 2

2

MkkqWzXk

k

( 6)求 )( kzX

Page 74: 第 3 章   FFT 快速傅氏变换

1 )形成 L点序列 ,但只有其中 N点序列值,需要 N次复乘,而系数 可事先准备好。

)()()( 2

2

nxWAngn

n

2

2nnWA

3.6.3 运算量的估计

2 )形成 L点序列 h(n) 。 h(n)也可事先准备好, h(n) 的 L点 FFT 即 H(r)也可预先计算好,可不用考虑其计算量。

5)计算 X(zk)= ( 0≤k≤M-1 ),需要 M次复乘。 )(2

2

kqWk

3 )计算 G(r) , q(n), 需要 2次 L点 FFT ( IFFT ),共需要 LlbL次复乘。 4 ) 计算 Q(r)=G(r)H(r), 需要 L 次复乘

当 N, M 都较大时(例如 N, M 都大于 50 时), CZT 的 FFT 算法比直接算法的运算量要小得多。

CZT 总的复数乘法次数为: mc=L lbL+N+M+L

Page 75: 第 3 章   FFT 快速傅氏变换

与标准 FFT 算法相比, CZT 算法有以下特点:输入序列长 N 及输出序列长 M不需要相等。 N 及 M不必是高度合成数,二者均可为素数。 Zk 的角间隔是任意的,其频率分辨率也是任意的。周线不必是 z 平面上的圆,在语音分析中螺旋周线具有某些优点。

起始点 z0 可任意选定,因此可以从任意频率上开始对输入数据进行窄带高分辨率的分析。

若 A=1,M=N, 可用 CZT 来计算 DFT ,即使 N 为素数时也可以。

总之, CZT 算法具有很大的灵活性,在某种意义上说 ,它是一个一般化的 DFT 。

Page 76: 第 3 章   FFT 快速傅氏变换

FFT 算法应用

利用 N点复序列的 FFT 计算两个 N点实序列 FT

利用 N点复序列的 FFT ,计算 2N点序列的 FFT

利用 FFT 计算 IFFT

Page 77: 第 3 章   FFT 快速傅氏变换

利用 N点复序列的 FFT 算法计算

两个 N点实序列 FFT

x1(n), x2(n) 是实序列,

将其构成复序列 Y(k)=X1(k)+j X2(k)

DFT{x1( n)+j x2(n)}=YR (k)+jYI (k)

?)(1 nxDFT

?)(2 nxDFT

)()( 21 njxnxDFT ])[(])[( NINR kjYkY

]))[(][(])[(][2

1][1 NIINRR mYmYjmYmYkxDFT

]))[(][(])[(][2

1][2 NIINRR mYmYjmYmY

jkxDFT

Page 78: 第 3 章   FFT 快速傅氏变换

利用 N 点复序列的 FFT ,计算 2N 点序列的 FFT

y[k] 是一个长度为 2N 的序列

1,1,0]12[][

]2[][][

2

1

Nkkykx

kykxky

1,,1,0 ][][][

][][][

221

221

NmmXWmXNmY

mXWmXmYmN

mN

问题:如何利用 N点 FFT ,计算 4N点序列的 FFT ?

Page 79: 第 3 章   FFT 快速傅氏变换

利用 FFT 实现 IFFT mk

N

N

kWkxkxDFTmX ][][][

1

0

mkN

N

mWmX

NmXIDFTkx

][

1][][

1

0

mk

N

N

m

WmXN

kx ][1

][1

0

步骤: A) 将 X [m] 取共轭]}[{) mXDFTFFTB 流图计算用

C) 对 B) 中结果取共轭并除以 N

Page 80: 第 3 章   FFT 快速傅氏变换

[例 ] 有一频谱分析用的 FFT处理器,其采 样点数必须是 2的整数幂 , 假定没有采用任何特殊的数据处理措施,已知条件为(1)频 率分辨率为 ( 2)信号的最高频率 ,试确定以下参量:( 1)最小记录长度 ;(2) 采样点间的最大时间间隔 T; (3) 在一个记录中的最小点数 N。

ZH10ZkH4

Pt

Page 81: 第 3 章   FFT 快速傅氏变换

解: ( a ) 最小记录长度

sFtP 1.01011 stP 1.0,

( b )最大的采样时间间隔 T

s

ffT hs

3

3

10125.0

1042/12/1/1

(c) 最小记录点数 N

10242

80010/1042/210

3

N

FfN h

Page 82: 第 3 章   FFT 快速傅氏变换

3.7.2 可能出现的误差用 FFT 对连续信号进行傅氏分析时可能造成的误差 1.混叠现象 为避免混叠 , 由采样定理可知,须满足 其中 , 为采样频率 ; 为信号的最高频率分量;

或者

其中 ,T 为采样间隔。但 和 F 矛盾:兼顾 和 F 应:

hs ff 2sf hf

hs ffT

2

11

hf

F

f

FN h21

hf

Page 83: 第 3 章   FFT 快速傅氏变换

2. 栅栏效应 用 FFT 计算频谱时,只是知道为频率 的频谱采样值。在两个谱线之间的情况就不知道 , 这相当通过一个栅栏观察景象一样,故称作栅栏效应。

Nkwk2

减少栅栏效应的一个方法就是使频域采样更密,增加频域采样点数 N ,即在数据末端添加一些零值点,可使 F 变小来提高 辨力,使谱线更密。

Page 84: 第 3 章   FFT 快速傅氏变换

3. 频谱泄漏与谱间干扰

在实际应用中,通常将所观测的信号 限制在一定的时间间隔内 ,也 就是说,在时域对信号进行截断操作 ,或 称作加时间窗 ,亦即用时间窗函数乘以信号 ,由卷积定理可知,时域相乘 ,频域为卷积 ,这就造成拖尾现象 , 称之为频谱泄漏 .

)(1 nx

Page 85: 第 3 章   FFT 快速傅氏变换

0n

0

)(1 nx )(1jeX

n

)(2 nx

)(2jeX

n

)()( 21 nxnxny

jeY

Page 86: 第 3 章   FFT 快速傅氏变换

减少频谱泄漏与谱间干扰:截断长度应该是周期的整数倍(正弦信号)

增加信号的长度

信号不要突然截断

Page 87: 第 3 章   FFT 快速傅氏变换

例:求其 X(ejw) , X(k)

)n.cos()n.cos()n(x 520480

Page 88: 第 3 章   FFT 快速傅氏变换

x(n) 前 10 点数据,求 X(ejw) , |X(k)|

混叠、不能区分 21 ,ww

Page 89: 第 3 章   FFT 快速傅氏变换

x(n) 前 10 点数据,后补零至 100 点 , 求 X(ejw) , |X(k)|

混叠、 X(k)密度增加,不能区分 21 ,ww

Page 90: 第 3 章   FFT 快速傅氏变换

x(n) 前 100 点数据,求 X(ejw) , |X(k)|

无混叠、能区分 21 ,ww

Page 91: 第 3 章   FFT 快速傅氏变换

x(n) 前 128 点数据,求 X(ejw) , |X(k)|

有混叠、能区分 21 ,ww

Page 92: 第 3 章   FFT 快速傅氏变换

x(n) 前 50 数据,求 X(ejw) , |X(k)|

无混叠、能区分 21 ,ww

Page 93: 第 3 章   FFT 快速傅氏变换

例 :x(n)=e (-0.05n) ,取 N=20 求其 X(k)

Page 94: 第 3 章   FFT 快速傅氏变换
Page 95: 第 3 章   FFT 快速傅氏变换
Page 96: 第 3 章   FFT 快速傅氏变换

o

o

o

o

o N / 4 N / 2 k

/ (rad / s)

f / Hz

f¡ä

/ rad

0.5

fs / 2

s / 2

ͼ3-25

Page 97: 第 3 章   FFT 快速傅氏变换

例 3-已知信号

x(t)=0.15sin(2πf1t)+sin(2πf2t)-0.1sin(2πf3t) ,其

中 , f1=1Hz, f2=2 Hz, f3=3Hz。 x(t)包含三个正弦波,

但从时域波形图 3-26 ( a)来看,似乎是一个正弦信号,

很难看到小信号的存在, 因为它被大信号所掩盖。 取 fs=3

2 Hz作频谱分析。

nnnnTxnx

32

6sin1.0

32

4sin

32

2sin15.0)()(

解 因 fs=32 Hz ,故

Page 98: 第 3 章   FFT 快速傅氏变换

该信号为周期信号,其周期为 N=32 。现对 x(n) 作32 点的离散傅里叶变换 (DFT) ,其幅度特性 |X(k)|如图 3-26(b) 所示。图中仅给出了 k=0, 1, …, 15 的结

果。 k=16, 17, …, 32 的结果可由 |X(N-k)|=|X(k)|

得出。因 N=32, 故频率分辨率 F=fs/N=1Hz。 由图 3-

26(b) 可知 , k=1, 2, 3 所对应的频谱即为频率 f1=1

Hz, f2=2 Hz, f3=3Hz 的正弦波所对应的频谱。幅

频图如图 3-26 ( b) , 该图中小信号成分清楚显示

出来。 可见小信号成分在时域中很难辨识而在频域中

容易识别。

Page 99: 第 3 章   FFT 快速傅氏变换

图 3-26 已知信号的时域图和幅频图

£ 2

£ 1

0

1

2

0 10 20 30

(a ) (b )

00

5 10 15

8

16

n k

x (n ) |X (k )|

Page 100: 第 3 章   FFT 快速傅氏变换

3.8 FFT 的其他应用一. FFT算法的快速卷积法1 原理

1

0

)()()()()(L

m

mnhmxnhnxny

点,则:为输出 1)( MLny

)(nh离散线性移不变系统的冲激响应 M 点)(nx输入有限长序列 L 点

直接计算乘法次数 md= ML

Page 101: 第 3 章   FFT 快速傅氏变换

由圆周卷积定理得 Y ( k ) =X ( k ) H ( k )

)]().([)]([)( kHkXIDFTkYIDFTny

)()()()()(

1

nhnxnhnxny

MLN

则若取

Page 102: 第 3 章   FFT 快速傅氏变换

2 用 FFT 算 的步骤 )(ny

;1)(),(.1 点补零点,至少为将 LMNnhnx

;求 )()(.2 nhFFTkH

;求 )()(.3 nxFFTkX ;求 )()()(.4 kHkXkY

。求 )()(.5 kYIFFTny

计算量:

)2

31(

2

3lbNNNNlbNmF

Page 103: 第 3 章   FFT 快速傅氏变换

3 快速卷积结构图

h(n)N 点FFT H(k)

Y(k)

N 点FFT

X(k))(nx

N 点IFFT

)()()( nhnxny

Page 104: 第 3 章   FFT 快速傅氏变换

四、直接计算线性卷积和 FFT 法计算线性卷积比较:

)1(123

1)1(

123

1

LMbLM

ML

bNN

ML

m

mK

F

dm

Page 105: 第 3 章   FFT 快速傅氏变换

分两种情况讨论如下: ( 1 ) x(n) 与 h(n) 点数差不多。 例如, M=L ,则 N=2M-1≈2M ,则

bM

M

bM

MKm 135

123

25

2

这样可得下表:

M=L 8 16 32 64 128 256 512 1024 2048 4096

Km 0.572 0.941 1.6 2.78 5.92 8.82 16 29.24 53.9 99.9

当 M=8 时, FFT 法的运算量大于直接法;当 M=32 时,二者相当;当 M=512 时, FFT 法运算速度可快 16 倍;当 M=4096

时, FFT 法约快 100 倍。可以看出,当 M=L 且 M 超过 32 以后,M 越长, FFT 法的好处越明显。因而将圆周卷积称为快速卷积。

Page 106: 第 3 章   FFT 快速傅氏变换

( 2 ) 当 x(n) 的点数很多时,即当 L>>M 。通常不允许等 x

(n) 全部采集齐后再进行卷积 ; 否则,使输出相对于输入有较长

的延时。此外,若 N=L+M-1 太大, h(n) 必须补很多个零值点,

很不经济,且 FFT 的计算时间也要很长。这时 FFT 法的优点就

表现不出来了,因此需要采用分段卷积或称分段过滤的办法。即

将 x(n) 分成点数和 h(n) 相仿的段,分别求出每段的卷积结果,

然后用一定方式把它们合在一起,便得到总的输出,其中每一段

的卷积均采用 FFT 方法处理。有两种分段卷积的办法 : 重叠相

加法和重叠保留法。

Page 107: 第 3 章   FFT 快速傅氏变换

五 .几点说明 1.当 M=L 时 ,用圆周卷积计算线性 卷积的速度快 ,点数越多,速度越快 , N≥64时 ,速度增加明显 .

2. L>>M 时 , 速度增加不太明显 , 为了 增加速度 ,采用 : (1)重叠相加法 (2)重叠保留法。

Page 108: 第 3 章   FFT 快速傅氏变换

例 x(n)=0.8n 长度为 12 , h(n) = R6(n) ,求线性卷积

n=[0:1:11];m=[0:1:5]N1=length(n);N2=length(m);

xn=0.8.^n;hn=ones(1,N2);yn1=conv(xn,hn);

N=N1+N2-1;XK=fft(xn,N);HK=fft(hn,N);

YK=XK.*HK;yn2=ifft(YK,N);

x=0:N-1;subplot(211);stem(x,yn1,'.')subplot(212);stem(x,yn2,'.')

Page 109: 第 3 章   FFT 快速傅氏变换

N=17 点

Page 110: 第 3 章   FFT 快速傅氏变换

N=22 点

Page 111: 第 3 章   FFT 快速傅氏变换

N=10 点