80
第第第 第 --2 第第第第第第 FFT 第 第 Decimation-in- Frequency(DIF) (Sander-Tukey)

第四节 基--2按频率抽取的 FFT 算法D ecimation-in-Frequency(DIF) (Sander-Tukey)

  • Upload
    carina

  • View
    376

  • Download
    0

Embed Size (px)

DESCRIPTION

第四节 基--2按频率抽取的 FFT 算法D ecimation-in-Frequency(DIF) (Sander-Tukey). 一、算法原理. 设输入序列长度为N=2 M (M为正整数,将该序列的频域的输出序列X(k)(也是M点序列,按其频域顺序的奇偶分解为越来越短的子序列,称为基2按频率抽取的FFT算法。也称为Sander-Tukey算法。. 二、算法步骤 1.分组. DFT 变换:. 已证明频域上 X(k) 按k的奇偶分为两组,在时域上x(n)按n的顺序分前后两部分,现将输入x(n)按n的顺序分前后两部分 : 前半子序列x(n),0 ≤ n≤N/2-1 ; - PowerPoint PPT Presentation

Citation preview

第四节基 --2 按频率抽取的FFT 算法 Decimation-

in-Frequency(DIF)(Sander-Tukey)

一、算法原理• 设输入序列长度为 N=2M(M 为正整数,将该序

列的频域的输出序列 X(k)( 也是 M 点序列,按其频域顺序的奇偶分解为越来越短的子序列,称为基 2 按频率抽取的 FFT 算法。也称为 Sander-Tukey 算法。

二、算法步骤1.分组

DFT 变换:

1

0

)()(N

n

knNWnxkX 1,,0 Nk

已证明频域上 X(k) 按 k 的奇偶分为两组,在时域上 x(n) 按 n 的顺序分前后两部分,现将输入 x(n) 按 n 的顺序分前后两部分 :

前半子序列 x(n),0≤n≤N/2-1;

后半子序列 x(n+N/2),0≤n≤N/2-1;

例: N=8 时,前半序列为: x(0),x(1),x(2),x(3);

后半序列为: x(4),x(5),x(6),x(7);

则由定义输出(求 DFT )

2. 代入 DFT 中

1

1

])2

()([

)2

()(

])2

()([)()

2

22

2

2

2

12

0

12

0

)2

(1

2

0

)2

(1

2

0

1

0

kN

N

kN

Nkjk

N

Njk

N

N

nkN

kN

N

N

n

N

n

kN

n

N

N

n

nkN

kN

n

N

N

n

nkN

N

n

nkN

Wk

WkeeW

WWN

nxnx

WN

nxWnx

WN

nxWnxWnxkX

奇数时

偶数时又

3. 变量置换 --1

)又

代入令

,令

分偶数时,频率的偶数部当置换分成两部分,进行变量的奇偶将按

'2/

'2/

2'2

2'2/

'2

'212/

0

12/

0

2

(

12

,1,0')]2

()([)'2(

'2

16,4,2,0)]2

()([)(

12

,1,0''2,1

)(

nkN

nkNjnk

Nj

nkN

nkN

nkN

N

n

nkN

N

n

kN

N

WeeWW

NkW

NnxnxkX

kk

NkWN

nxnxkX

NkkkW

kkXk

12/,,0 Nk

3. 变量置换 --2

一半。点,所以其运算量降低序列只有由于

求得。(序列的可以通过的偶数部分的频域可见:

(则

设一个新序列:

后一半序列前一半序列

2)(

))()()(

12

,1,0')')]()'2(

12

2,1,0),2

()()(

)()(

12

,1,0')]2

()([)'2(

1

11

1'2/

12/

01

1

'2/

12/

0

Nnx

kDFTXnxkXnx

NkkXWnxkX

Nn

Nnxnxnx

nxnx

NkW

NnxnxkX

nkN

N

n

nkN

N

n

3. 变量置换 --3

)又

代入令

,令

分奇数时,频率的奇数部同理:当

)(

'2/

'2/

2'2

2'2/

'2

1'212/

0

12/

0

2

(

12

,1,0')]2

()([)1'2(

1'2

17,5,3,1)]2

()([)(

12

,1,0'1'2,1

nkN

nkNjnk

Nj

nkN

nkN

knN

N

n

nkN

N

n

kN

N

WeeWW

NkW

NnxnxkX

kk

NkWN

nxnxkX

NkkkW

k

3. 变量置换 --4

一半。点,所以其运算量降低序列只有由于

求得。(序列的可以通过的奇数部分的频域可见:

(则

设一个新序列:

后一半序列前一半序列

2)(

))()()(

12

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

12

2,1,0,)]2

()([)(

)()(

12

,1,0')2

()()1'2(

2

21

2'2/

12/

02

2

'2/

12/

0

Nnx

kDFTXnxkXnx

NkkXWnxkX

NnW

Nnxnxnx

nxnx

NkWW

NnxnxkX

nkN

N

n

nN

nkN

nN

N

n

4. 结论 1

• 一个 N 点的 DFT 被分解为两个 N/2 点 DFT 。 X1(k),X2(k) 这两个 N/2 点的 DFT 按照:

DFTNNkkXkXkX

kkkkNkkXkX

NNDFTN

kXkXkX

点又合成(

分别代入再用,即先求出

点点点

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

12/1,0')'()'(2/2/

)1'2()'2()

21

21

可见:如此分解,直至分到 2 点的 DFT 为止。

4. 结论 2

12

,1,0')]2

()([

)]()'

12

,1,0')]2

()([

)]()'

'2/

12/

0

'2/

12/

022

'2/

12/

0

'2/

12/

011

NkWW

Nnxnx

WnxkX

NkW

Nnxnx

WnxkX

nkN

N

n

nN

nkN

N

n

nkN

N

n

nkN

N

n

三、蝶形流图表示

蝶形单元:时域中,前后半部表示式用蝶形结表示。

x(n)

x(n+N/2)

nNW

)()2/()( 1 nxNnxnx

)()]2/()([ 2 nxWNnxnx nN

与时间抽取法的推演过程一样,由于 N=2L,N/2 仍为偶数,所以可以将 N/2 点 DFT 的输出 X(k) 再分为偶数组和奇数组,这样就将一个 N/2 点的 DFT 分成两个 N/4 点 DFT 的输入,也是将 N/2点的 DFT 的输入上、下对半分后通过蝶形运算而形成,直至最后为 2 点 DFT 。

例子:求 N=23=8点 DIF ( 1)先按 N=8-->N/2=4,做 4点的 DIF:

nNW

Nnxnxnx

Nnxnxnx

)]2

()([)(

)2

()()(

2

1

先将 N=8DFT 分解成 2 个 4 点 DFT:

可知:时域上: x(0),x(1),x(2),x(3) 为偶子序列

x(4),x(5),x(6),x(7) 为奇子序列

频域上: X(0),X(2),X(4),X(6) 由 x1(n) 给出

X(1),X(3),X(5),X(7), 由 x2(n) 给出

将 N=8 点分解成 2 个 4 点的 DIF 的信号流图

4 点DFT

x(0)

x(1)

x(2)

x(3)

4 点DFT

x(4)

x(5)

x(6)

x(7)

X(0)X(2)X(4)X(6)

X(1)X(3)X(5)X(7)

X1(k)前半部分序列后半部分序列

nN

nN

nN

nN

WxxxWxxxWxxxWxxx

xxxxxxxxxxxx

)]7()3([3,)]6()2([2,)]5()1([1,)]4()0([0

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

22

22

1111

)()()()(

)()()()(如:

08W

18W2

8W

38W

x1(n)

x2(n) X2(k)

(2)N/2(4 点 )-->N/4(2 点 )FFT(a)先将 4点分解成 2点的 DIF:

• 因为 4点 DIF 还是比较麻烦,所以再继续分解。

后半部分序列、前半部分序列、

)3()2(

)1()0(:)(

11

111 xx

xxnx

1014

0)]

2()([

)()2

()(

411

311

,),在此()(

若设:

L

NL

LxWN

nxnx

LxN

nxnx

nN

后半部分序列、前半部分序列、

同理:)3()2(

)1()0(:)(

22

222 xx

xxnx

1014

0)]

2()([

)()2

()(

622

522

,),在此()(

同理:

L

NL

LxWN

nxnx

LxN

nxnx

nN

( b) 一个 2 点的 DIF 蝶形流图

2点 DFT

2点 DFTx1(0)

x1(1)

x1(2)

x1(3)

x3(0)

x3(1)

x4(0)

x4(1)

X(0)

X(4)

X(2)

X(6)

08W

28W

)3()1()1(,)2()0()0( 113113 xxxxxx 其中

(c) 另一个 2 点的 DIF 蝶形流图

2点 DFT

2点 DFTx2(0)

x2(1)

x2(2)

x2(3)

x5(0)

x5(1)

x6(0)

x6(1)

X(1)

X(5)

X(3)

X(7)

08W

28W

(3)将 N/4( 2 点) DFT 再分解成 2 个 1 点的 DFT

(a) 求 2 个一点的 DFT

02

102

21

2

02

02

12

023

02

02

02

023

1

02

1,0;1,0

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

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

)()(

2

WW

knWWWW

WxWxWxWxX

WxWxWxWxX

WnxkX

nknknkN

nkN

n

nk

N

,其中,则

这里用到对称性这是一蝶形结

代入上面流图可知:

最后剩下两点 DFT, 它可分解成两个一点 DFT ,但一点DFT 就等于输入信号本身,所以两点 DFT 可用一个蝶形结表示。取 x3(0) 、 x3(1) 为例。

(b)2 个 1 点的 DFT 蝶形流图

1点 DFTx3(0)

1点 DFTx3(1)

X(0)

X(4)

02W

进一步简化为蝶形流图:

02W

X(0)

X(4)

x3(0)

x3(1)

(4) 一个完整 N=8 的按频率抽取 FFT 的运算流图

x(0)

x(1)

x(2)

x(3)

x(4)

x(5)

x(6)

x(7)3

8W

28W

18W

08W

08W

08W

08W

08W

08W

08W

28W

28W

X(0)

X(4)

X(2)

X(6)

X(1)

X(5)

X(3)

X(7)12/0 NNN WW 其中旋转因子,共有

m=0 m=1 m=2

(5)DIF 的特点

(a)输入自然顺序,输出乱序且满足码位倒置规则。

(b)根据时域、频域互换,可知:

输入乱序,输出自然顺序。

( 6) DIF 与 DIT 比较 1

• 相同之处:• ( 1) DIF 与 DIT 两种算法均为原位运

算。• ( 2 ) DIF 与 DIT 运算量相同。• 它们都需要

算法是两种等价的与次复加

次复乘

FFTDITDIFNa

Nm

NF

NF

2

2

lg

lg2

( 6) DIF 与 DIT 比较 2• 不同之处:( 1) DIF 与 DIT 两种算法结构倒过来。DIF 为输入顺序,输出乱序。运算完毕再运行

“二进制倒读”程序。DIT 为输入乱序,输出顺序。先运行“二进制

倒读”程序,再进行求 DFT 。( 2 ) DIF 与 DIT 根本区别:在于蝶形结不同。DIT 的复数相乘出现在减法之前。DIF 的复数相乘出现在减法之后。

作业• 试画出 N=16 点的基 -2 按频率抽取的

FFT 流图( DIF )。

第五节 IFFT 运算方法

• 以上所讨论的 FFT 的运算方法同样可用于IDFT 的运算,简称为 IFFT 。即快速付里叶反变换。从 IDFT 的定义出发,可以导出下列二种利用 FFT 来计算 FFT 的方法。

一、利用 FFT 计算 IFFT 的思路 1

• 将下列两式进行比较

IDFTFFT

NWWDFT

WnxnxDFTkX

WkXN

kXIDFTnx

nkN

nkN

N

k

nkN

N

k

nkN

算法都可以拿来运算或频率抽取抽取)那么以上讨论的时间(

将运算结果都除以改成运算中的每个系数只要把

3)2()1(

)()]([)(

)(1

)]([)(

1

0

1

0

二、利用 FFT 计算 IFFT 的思路 2

• 利用 FFT 计算 IFFT 时在命名上应注意:• (1) 把 FFT 的时间抽取法,用于 IDFT 运算

时,由于输入变量由时间序列 x(n) 改成频率序列 X(k), 原来按 x(n) 的奇、偶次序分组的时间抽取法 FFT ,现在就变成了按 X(k)的奇偶次序抽取了。

• ( 2 )同样,频率抽取的 FFT 运算用于 IDFT 运算时,也应改变为时间抽取的 IFFT 。

三、改变 FFT 流图系数的方法1. 思路

• 在 IFFT 的运算中,常常把 1/N 分解为 (1/2)m ,并且在 M 级运算中每一级运算都分别乘以 1/2 因子,就可得到IFFT 的两种基本蝶形运算结构。(并不常用此方法)

2.IFFT 的基本蝶形运算

2

1

nNW

2

1

BWA nN

2

1

BWA nN

2

1

A

B

2

1

nNW

2

1

BA2

1

nNWBA

2

1

A

B

(a) 频率抽取 IFFT 的蝶形运算

(b) 时间抽取 IFFT 的蝶形运算

四 . 直接利用 FFT 流图的方法1. 思路

• 前面的两种 IFFT 算法,排程序很方便,但要改变 FFT 的程序和参数才能实现。

• 现介绍第三种 IFFT 算法,则可以完全不必改动 FFT 程序。

2. 直接利用 FFT 流图方法的推导

1

0

**

*1

0

*

1

0

*

1

0

)()(

)]}([{1

(])([1

)(

)(1

)(

)(1

)(

N

n

nkN

nkN

N

k

nkN

N

k

nkN

N

k

WnxkX

kXDFTN

WkXN

nx

WkXN

nx

WkXN

nx

比较与

取共轭再取共轭)

对它取共轭: *

可知:只须将频域成份一个求共轭变换,即( 1 )将 X(k) 的虚部乘以 -1 ,即先取 X(k) 的共轭,得 X*(k) 。 (2) 将 X*(k) 直接送入FFT 程序即可得出 Nx*(n) 。 (3) 最后再对运算结果取一次共轭变换,并乘以常数 1/N ,即可以求出 IFFT 变换的 x(n) 的值。

此为 DFT 可用 FFT 程序

3. 直接利用 FFT 流图方法的注意点

( 1) FFT 与 IFFT 连接应用时,注意输入输出序列的排列顺序,即应注意是自然顺序还是倒序。

( 2 ) FFT 和 IFFT 共用同一个程序时,也应注意利用 FFT 算法输入输出的排列顺序,即应注意自然顺序还是例位序

( 3 )当把频率抽取 FFT 流图用于 IDFT时,应改称时间抽取 IFFT 流图。

( 4 )当把时间抽取 FFT 流图用于 IDFT时,应改称频率抽取 IFFT 流图。

作业• 用 C 语言完成 N=128 点的 DIT , DIF 及

IDIT , IDIF 。

第六节线性调频 Z 变换

一、引入• 以上提出 FFT 算法,可以很快地求出全部 DFT 值。

即求出有限长序列 x(n) 的 z 变换 X(z) 在单位园上 N个等间隔抽样点 zk 处的抽样值。它要求 N 为高度复合数。即 N 可以分解成一些因子的乘积。例 N=2L

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

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

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

二、问题提出• 由上面三个问题提出:• 为了提高 DFT 的灵活性,须用新的方法。• 线性调频 z 变换 (CZT) 就是适用这种更

为一般情况下,由 x(n) 求 X(zk) 的快速变换

• CZT :来自于雷达专业的专用词汇。

三、算法原理1. 定义

• Z 变 换 采 用 螺 线 抽 样 , 可 适 用 于 更 一 般 情 况 下 由 x(n) 求 X(zk) 的 快 速 算 法 , 这 种 变 换 称 为 线 性 调 频 Z 变 换 ( 简 称 CZT ).

2.CZT公式推导 1• 已 知 x(n) , 0≤n≤N-1, 则它的 z 变换是:

• 为适应 z 可以沿平面内更一般的路径取值,故:沿 z平面上的一段螺线作等分角的抽样,则 z 的取样

点 Zk 可表示为:

• 其中 M :表示欲分析的复频谱的点数。 M 不一定等于 N 。 A , 都为任意复数。

1

0

)()N

n

nznxzX(

1,1,0, MkAz kk

0000 , jj eeAA

2.CZT公式推导 2

1

0

2

)(

22

1

0

1

0

22

)(

2

222

1

0

1

0

222

222

])([

)()()(

])([2

1

)()(

1,1,0,)(

)()()]([

)(

N

n

nknn

k

N

n

N

n

knknnnkn

k

kk

N

n

nkn

N

n

nkk

k

AnxW

AnxAnxzX

nkknnk

BulesteinZzXzX

MkAnx

znxzXnxCZT

zXz

布鲁斯坦所提出的等式我们利用上的取值。迹在给定的更为一般的轨就是即

中代入将

2.CZT公式推导 3

的方法来求得。而圆周卷积可用的圆周卷积来实现。与可以用的离散卷积与这里

得到,即:的离散卷积值并乘与可以通过

变换值点的由上式可知:

FFTnhng

nhngMknhngzX

nhng

zXzz

MknkhngzX

Mnnh

NnAnxng

k

k

kkk

N

n

k

k

n

nn

)()()()(

1,,1,0)],()([)(

)()(

)(

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

11,0)(

11,0,)()(

2

2

1

0

2

2

2

2

2

2

2

2

3.用 CZT 求解 DFT 的流图

)( kzX)(nx

2

2nnA 2

2k

2

2

)(n

Wnh

)(ng )(kG

4.CZT 变换各点的值

))1(()1(001

)(00

)(100100

)(0000

0

0

00

00

000

0000

0

0

,

1,1,0

MjMM

kjkk

jj

kjkkjkjk

j

j

kk

eAZ

eAZeAZeAZ

eAeeAZe

eAAMkAZ

5 、图形

6 、说明 1( 1)A 为起始样点位置

,表示在园内通常正可负,为角频率):为起始样点相角(可

:为起始样点半径,

1

,

0

0

0

00

A

AeAA j

6 、说明 2

( 2) zk 是 z平面一段螺线上的等分角上某一采样点。

上的一部分。,这段园弧则是单位园若的一段园弧,:表示半径弯曲(向原点盘旋)围线(螺线)盘旋向内

的增加,随着盘旋向外弯曲的增加,围线(螺线)随着

弯曲。旋是向内弯曲还是向外它的大小控制着围线盘:为螺线的伸展率。其中

11

:1:1

0

00

0

0

0

)(00

00

AA

kk

eAz kjkk

6 、说明 3

的路径是逆时针旋转。为正时,表示当的路径是顺时针旋转。为负时,表示当

它可以是正值或负值。(即

之间角频率差。:表示两相邻

k

k

k

zz

zzzzz

0

0

2110

0),~,~

)3(

6 、说明 4

。变换求出该序列即由,为均匀分布在单位园上此时

等分)时,(。即

即(当满足下面特殊条件:

DFTCZTz

NNM

eec

AeAAbNMa

k

Nj

j

j

221

,)(

01,1)(:)

)4(

00

2

0

000

0

0

6 、说明 5

变换)(线性调频此变换称为线性调频信号(

号为在雷达系统中称这种信(

列成线性增长的复指数序随时间可以想象为频率)序列(

ZCZTSignalChirp

enh

n

nh

nj

n

n

)

))(

)(

)(5

22

2

2

0

2

2

7、 CZT 的实现步骤 1

的序列。变成列长为利用加长补零方法将同时又满足

,使其满足选择一个最小数

即得)相乘,(信号将这些数值与欲分析的

的各值求出

、、、即由已知和根据已知

的序列变成列长为)加长补零将(

LngL

MNLL

LnN

NnnxAng

NnngNnnx

NnA

AeeAA

Lng

m

nn

nn

jj

)(,2

,1

1

10

0

)()(

10),(10)(

)10(

)(1

2

2

0000

00

2

2

00

7、 CZT 的实现步骤 2

10)()

)()(2

1

0

2

LrengrG

DFTngFFTFFTng

L

n

rnL

j

。序列的方法求利用。的)求(

7、 CZT 的实现步骤 3

。点求值区间中而后作周期延拓,取主点,补零加长至此为先将

点的序列。补零加长,周期延拓成)(

DFTLNnh

LnNL

NLnMMn

nh

Lnh

nL

n

)(11

010

)(

)(3

2

)(

2

2

2

7、 CZT 的实现步骤 4

10)()

)()(4

1

0

2

LrenhrH

DFTnhFFTFFTnh

L

n

rnL

j

。序列的方法求利用。的)求(

7、 CZT 的实现步骤 5

的频域值。这样就求出了相乘,因为时域卷积等于频域

(的序列。为逐点相乘得到是列长仍

和的二序列将列长为的乘积。与)求(

)()(

10)()()

)()()()(4

nhng

LrrHrGrQL

rHrFLrHrG

7、 CZT 的实现步骤 6

10)()()()()(

)()()()()(

)()(6

Mkkhkgkhkgkq

MMkhkgkhkgkq

LrQIFFTrQ

点序列。点有关,所以只取前由于只有

这样就得到点离散付里叶反变换。作将的)作(

7、 CZT 的实现步骤 7

10)()(

)(10)(7

2

2

2

2

MkkgzX

zXMMkkg

k

k

k

k

值。个即得所要求的

与)将(

8、 CZT 变换运算流程图

9、 CZT 运算量的估算 1

NngDCCDD

ACCAD

NA

NnNnxA

ng

nnnn

n

nn

n

nn

nn

3)(,

,1

2

)10()(

)(1

1101

1

20

12

1

0

2

2

2

2

2

共需所以形成)

,设(

次复乘。可经过递推产生需而

次复乘需与

)形成(

9、 CZT 运算量的估算 2

MLLN

CZTM

MkkgzX

M

LIFFTrG

LrHrF

LFFTLrHnh

LFFTLrGng

Nnh

L

k

k

L

L

L

n

2

2

2

2

2

2

log2

35

8

10)()

)7(

log2

)(6

)()()5(

log2

)()(4

log2

)()(3

2)(2

2

2

共需运算量为:)(次复乘需要

点的输出形成

次复乘运算需要进行)由(

次复数运算。相乘,需要与

次复乘运算。,约需点需作求)由(

次复乘运算。,约需点需作求)由(

次也需要)同理,形成(

10、 CZT 运算量与直接运算量比较

当M、 N足够小时,直接算法运算量少。

但 M 、 N 值比较大时(大于 50 ), CZT 算法比直接算法的运算量少得多。

例 M=50 , N=50 , N*M=2500 次

而 CZT<1600 次。

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

有某些优点。( 5 )起始点 z0 可任意选定,因此可以从任意频率上开始

对输入数据进行窄带高分辨率的分析。( 6 )若 A=1,M=N, 可用 CZT 来计算 DFT ,即使 N 为素数

时,也可以。总之, CZT 算法具有很大的灵活性,在某种意义上说,它

是一个一般化的 DFT 。

0

12、 CZT 变换的应用 1

• ( 1 )利用 CZT 变换计算 DFT 。

NM

N

WA

0

211

0

0

00

满足条件:

12、 CZT 变换的应用 2( 2 )对信号的频谱进行细化分析。其中对窄带信号频谱或对部分感兴趣的频谱进行细化分析。

。和频率采样的范围决定由)(由频率分辨率决定。)(

定。由感兴趣的起始频率决)(参数的选择:

,平面单位园上必须在即

0

0

0

00

)()(00

321

11

0000

M

WAzz

eeWAzk

kjkjkk

这样 CZT 只对感兴趣的频率区段进行采样。计算量小很多,有利于实时处理。或在保证实时处理的情况下,可大提高频率分辨率。

12、 CZT 变换的应用 3( 3 )求解 z 变换 X(z) 的零、极点。用于语音信号处理过程中。具体方法:利用不同半径同心圆,进行等间隔的采样。

的零点的谷值决定(由的极点的峰值决定(由

计算

,改变,,令

)()|)(|lg20)()|)(|lg20

1,1,0

|)(|lg20|)(|lg20

201

2

0000

zXdBreXzXdBreX

Nk

reXzX

AN

W

jw

jw

kN

jwk

作业

实现过程示意图。的路径及画出

,,,

平面路径为:已知:个复频谱法求其前试用

其他

点序列已知:一个

CZTz

A

zzXCZT

n

nnx

nx

k

k

20

22.1

38.0

).(10

70

0

1)(

)(8

0000

第七节 FFT 的应用• 凡是利用付里叶变换来进行分析、综合、

变换…的地方,都可以利用 FFT 算法来减少其计算量。

• FFT主要应用在( 1 )快速卷积( 2 )快速相关( 3 )频谱分析

一、快速卷积• 设 x(n) 的长度为 N 点, h(n) 的长度为 M

点,则:• y(n) 的长度为 N+M-1 点。所以直接计算

y(n) 线性卷积运算量为 NM 。

1. 利用圆周卷积代替线卷积• 用圆周卷积( FFT )代替线卷积的必要条件: x(n) 、 h(n)补零加长至 L=N+M-1.

• 然后计算圆卷积。求出 y(n) 代表线卷积。

10

10)()(

10

10)()(

LnN

Nnnhnh

LnN

Nnnxnx

2 、用 FFT 计算 y(n) 的步骤• (1)求 H(k)=DFT[h(n)] (L 点) • (2) 求 X(k)=DFT[x(n)] (L 点)• (3) 计算 Y(k)=X(k)H(k) (L 点)• (4) 求 y(n)=IDFT[Y(k)] (L 点)

2 、用 FFT 计算 y(n) 与直接计算 y(n) 的运算量比较

称分段过滤的方法。这时须采用分段卷积或的优点。则体现不出其圆周卷积

长度差很多时,与)当当(的优点。可以体现出其圆周卷积

长度差不多时,与)当(

计算运算量用直接计算运算量

求线卷积运算量用

)()(2

)()(1

]log2

31)[1(

log2

3

)1(2

2

nhnx

nhnx

MN

NMFFT

K

LL

FFT

MN

m

L

3 、分段卷积的方法• ( 1 )重叠相加法• ( 2 )重叠保留法• 设 x(n) 的长度为长序列 N, h(n) 为短序

列列 M。

( 1 )重叠相加法 1• ( 1) x(n) 为分段,每段长为 p 点, p选择与

M 数量组相同。用 xi(n) 表示 x(n) 的第 i段 .

点的圆周卷积。然后作点,须补零加长至与

取其长度法计算。都可用上述快速卷积办对于每一个

这样

其他

LLnhnx

MpLnhnx

nhnxnynhnx

nxnx

in

pinipnxnx

i

i

ii

ii

i

)()(,1

),()(

)()()()()(

)()(

,10

1)1()()(

0

0

( 1 )重叠相加法 2

)点重叠。相邻两段输出序列有(点,长度为点,而长度为

重叠部分相加起来:将各段

点计算相乘:点计算

点)计算(

11)()(

)()()()7(

)]([)()4()()()()3(

)]([)()],([)(10

10)()(

1)1(0

1)1()()(

2

0

Mmpnypnx

nynyny

kYIFFTnyIFFTLkXkHkY

nhDFTkHnxDFTkXDFTLLnM

Mnnhnh

Lnpi

pinipnxnx

DFTL

ii

iii

ii

ii

ii

i

( 1 )重叠相加法例子

1092222222221)(

0,0,10,9,10,9)(

8,7,2,2,6,5)(

4,3,2,2,2,1)(:)()()(

0,0,0,0,10,9)(

0,0,8,7,6,5)(

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

21,43)()()(4

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

3

2

1

3

2

1

,,,,,,,,,,,个值相加,得最后将前两个值与后两

圆周卷积后得

分段后

进行分段分块时每块长度重叠部分,解:

重叠分段卷积法求利用令

ny

ny

ny

nynhnxny

nx

nx

nxMNL

MNMnhnxnyN

nhnnnx

ii

( 2 )重叠保留法 1

)()()()3()]([)(

)]([)(2

1

1)1(

)()(1

kXkHkYnxDFTkX

nhDFTkHFFTN

M

MNLLM

MNnxnx

ii

ii

i

相乘

点)计算(个零值点。则需要在它前边填充

前一段保留信号,而对第一段,由于没有,准备进行圆卷积。点短序列组成个输入序列值,的再补上前一段保留下来

段的前边这样分段后,应在每一为短序列的长度;点,每段长度为

,分成几个短序列)先将(

( 2 )重叠保留法 2

)]1([)(

)1()5()]([)(

)4(

MLinyny

MkYIDFTny

IFFTN

i

ii

出。就构成了最后的正确输来的序列衔接起来,再把各相邻输出段留下必须舍去。不等于线性卷积的值,

个点的前由于每段圆周卷积结果

点计算

( 2 )重叠保留法例子

,与重叠相加法同,,,,,,,,,,,前面两个值应舍去,得

,,,,,,,圆周卷积后得,,,,

分段后

进行分段分块时每块长度重叠部分,解:

重叠保留法求利用令同重叠相加法的题目:

1092222222221)(

10,92287)(

2,2,2,244)(

2,2,2,14,3)(:)()()(

0,0,10,987)(

8,7,6,453)(

4,3,2,010)(61

21,43)()()(4

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

3

2

1

3

2

1

ny

ny

ny

nynhnxny

nx

nx

nxMNL

MNMnhnxnyN

nhnnnx

ii

二、快速相关1. 方法

10

10)()(

10

10)()(

(21

)()()(

:)()(

1

0

*

LnM

Mnnyny

LnN

Nnnxnx

mLMNL

FFT

mnymxnr

MnyNnx

m

L

myx

为整数),令且,来代替线性相关,选择

圆周相关法来求线性相关,是用利用

相关点,要求线性的长度为点,的长度为设

2. 步骤

自相关序列。则求得若(

而得到。后,取共轭再乘的可以利用即:

,来求程序计算同样可以用已有的点求

求乘积点求

并求点求

),()(),()()

1)(

)(1

)(1

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

)]([)()()()],([)()(

*)(

*1

0

*)(

)(

nrnrnynxeN

FFTkRr

WkRN

WkRN

r

rIFFTFFTkRIDFTnrIFFTNd

kYkXkRcnyDFTkYFFTNb

kXnxDFTkXFFTNa

xxxy

yxnyx

N

k

nkNyx

nkNxynyx

nyx

yxyx

yx

三、频谱分析• 这里我们仅介绍 FFT 的仪器设备:快速

付里叶分析仪。• 其功能为:• ( 1 )能分析确定性信号的频谱。• ( 2 )估计随机信号的功率谱• ( 3 )并对信号进行快速卷积滤波• ( 4 )计算相关函数

1. 频谱分析仪的框图

数据选择器

A/D

保护滤波器

输入电路

输入

数据存储器 运算器 数据选择器

控制器

变址单元 函数发生器

输出缓冲器

D/A

输出

2. 部件说明( 1 )保护滤波器:对输入信号进行模拟滤波,滤掉噪声,提取感兴趣的有用信号,以便分析频谱。

( 2 )运算器:完成时间抽取 FFT或 Chirp-Z变换所要求运算。

( 3) RAM:存储输入数据。( 4) ROM(函数发生器)。以表格形式存放蝶形运算因子 W.

(5) 变址单元:根据输入数据,进行码位倒置排序。