28
第第第 第第第第第第第 FFT

第五章 快速傅立叶变换 ( FFT )

  • Upload
    jerrod

  • View
    150

  • Download
    1

Embed Size (px)

DESCRIPTION

第五章 快速傅立叶变换 ( FFT ). 傅立叶变换. 傅立叶变换. 时域 < —— > 频域 离散信号 周期谱 周期信号 离散谱 离散周期信号 离散周期谱. DFT 的定义. DFT 的定义. DFT 的定义. FFT. 将 N 点的序列分为两个 N/2 点的序列. x1[n] = x[2n] x2[n] = x[2n+1]. 将 N 点 DFT 分为两个 N/2 点 DFT. 将 N 点 DFT 分为两个 N/2 点 DFT. 上式的最后一步是因为. - PowerPoint PPT Presentation

Citation preview

Page 1: 第五章 快速傅立叶变换 ( FFT )

第五章快速傅立叶变换( FFT )

Page 2: 第五章 快速傅立叶变换 ( FFT )

傅立叶变换

Page 3: 第五章 快速傅立叶变换 ( FFT )

傅立叶变换 时域 <——> 频域 离散信号 周期谱 周期信号 离散谱 离散周期信号 离散周期谱

Page 4: 第五章 快速傅立叶变换 ( FFT )

)()(00 tT

Page 5: 第五章 快速傅立叶变换 ( FFT )

DFT 的定义

)1,...,1,0(

)(1][

][)(

/21

0

1

0

/2

Nk

ekXN

nx

enxkX

NnkjN

k

N

n

Nnkj

Page 6: 第五章 快速傅立叶变换 ( FFT )

DFT 的定义

Nj

N

N

n

nkN

eW

WnxkX

2

1

0

][)(

Page 7: 第五章 快速傅立叶变换 ( FFT )

DFT 的定义

,...2,1,0,

))((

lm

WW nkN

lNkmNnN

Page 8: 第五章 快速傅立叶变换 ( FFT )

FFT

Page 9: 第五章 快速傅立叶变换 ( FFT )

将 N 点的序列分为两个 N/2 点的序列

x1[n] = x[2n]x2[n] = x[2n+1]

Page 10: 第五章 快速傅立叶变换 ( FFT )

将 N 点 DFT 分为两个 N/2 点 DFT

)(2)(1

][2][1

]12[]2[

][][)(

12/

02/

12/

02/

12/

0

)12(12/

0

2

1

0

1

0

kXWkX

WnxWWnx

WnxWnx

nn

WnxWnxkX

kN

N

n

nkN

kN

N

n

nkN

N

n

knN

N

n

nkN

nkN

N

n

N

n

nkN

为奇数为偶数

Page 11: 第五章 快速傅立叶变换 ( FFT )

将 N 点 DFT 分为两个 N/2 点 DFT

上式的最后一步是因为

2/

)2/

2(

2)2

(2 ][

N

Nj

Nj

N

We

eW

Page 12: 第五章 快速傅立叶变换 ( FFT )

将 N 点 DFT 分为两个 N/2 点 DFT

我们已经将一个 N 点的 DFT 分解成为两个 N/2 点的 DFT 。但是, X ( k )有 N 点,但 X1( k )和 X2 ( k )都只有 N/2 点,因此,前面计算的只是 X ( k )的前一半项的结果。

Page 13: 第五章 快速傅立叶变换 ( FFT )

将 N 点 DFT 分为两个 N/2 点 DFT

对于后一半 X ( k ),有

)(2)(1

)2/(2)2/(1)(

kXWkX

NkXWNkXkXkN

kN

kN

kN

NN

kNN WWWW )2/()2/(

这是因为

Page 14: 第五章 快速傅立叶变换 ( FFT )

将 N 点 DFT 分为两个 N/2 点 DFT

这样,只要计算出( 0 , N/2-1 )区间的 X1 ( k )和 X2( k ),也就可以很方便地计算整个( 0 , N-1 )区间的全部 X( k ),从而大大地节省了运算量。

Page 15: 第五章 快速傅立叶变换 ( FFT )

将 N 点 DFT 分为两个 N/2 点 DFT

Page 16: 第五章 快速傅立叶变换 ( FFT )

将 N/2 点 DFT 分为两个 N/4 点 DFT

Page 17: 第五章 快速傅立叶变换 ( FFT )

2 点 DFT

Page 18: 第五章 快速傅立叶变换 ( FFT )

8 点蝶 2FFT

Page 19: 第五章 快速傅立叶变换 ( FFT )

按频率抽取( DIF ) x1[n] = x[n]

x2[n] = x[n+N/2]

n=0 , 1 ,……, N/2-1

Page 20: 第五章 快速傅立叶变换 ( FFT )

按频率抽取( DIF )

12/

0

1

2/

12/

0

])[2][1(

][][)(

N

n

nkN

kj

N

Nn

nkN

N

n

nkN

Wnxenx

WnxWnxkX

Page 21: 第五章 快速傅立叶变换 ( FFT )

按频率抽取( DIF )

12/

02/

12/

0

12/

02/

12/

0

2

])[2][1(

])[2][1()12(

])[2][1(

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

)12(

N

nN

nN

N

nN

N

n

nkN

nkN

nN

nk

kn

WnxnxW

WnxnxkX

Wnxnx

WnxnxkX

Page 22: 第五章 快速傅立叶变换 ( FFT )

DIT 与 DIF

DIT 输入是混序的,频域的输出是顺序的 DIF 输入是顺序的,频域的输出是混序的

DIT 的复数乘法出现在加减之前 DIF 的复数乘法出现在加减之后

Page 23: 第五章 快速傅立叶变换 ( FFT )
Page 24: 第五章 快速傅立叶变换 ( FFT )

定点 DSP 计算 1024 点 FFT 的时间 DSP 时间( ms )TMS320C25 10.9TMS320C6201 0.067DSP56001 1.65

Page 25: 第五章 快速傅立叶变换 ( FFT )

浮点 DSP 计算 1024 点 FFT 的时间 DSP 时间( ms )TMS320C30 3.87TMS320C40 1.02ADSP21060 0.46DSP96001 0.6ADSP21160 0.45s

Page 26: 第五章 快速傅立叶变换 ( FFT )

顺序、混序与位倒序DIT 与 DIF 总有一边是混序的绝大多数 DSP 都提供了位倒序( bit r

everse )寻址指令

Page 27: 第五章 快速傅立叶变换 ( FFT )

溢出问题

在多级运算中,要充分注意溢出的问题,尤其是用定点 DSP时

Page 28: 第五章 快速傅立叶变换 ( FFT )

无论是 C 语言,还是 DSP汇编语言的 FFT 程序都有现成的程序可用