第五章 快速傅立叶变换 ( FFT )
description
Transcript of 第五章 快速傅立叶变换 ( FFT )
第五章快速傅立叶变换( FFT )
傅立叶变换
傅立叶变换 时域 <——> 频域 离散信号 周期谱 周期信号 离散谱 离散周期信号 离散周期谱
)()(00 tT
DFT 的定义
)1,...,1,0(
)(1][
][)(
/21
0
1
0
/2
Nk
ekXN
nx
enxkX
NnkjN
k
N
n
Nnkj
DFT 的定义
Nj
N
N
n
nkN
eW
WnxkX
2
1
0
][)(
DFT 的定义
,...2,1,0,
))((
lm
WW nkN
lNkmNnN
FFT
将 N 点的序列分为两个 N/2 点的序列
x1[n] = x[2n]x2[n] = x[2n+1]
将 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
为奇数为偶数
将 N 点 DFT 分为两个 N/2 点 DFT
上式的最后一步是因为
2/
)2/
2(
2)2
(2 ][
N
Nj
Nj
N
We
eW
将 N 点 DFT 分为两个 N/2 点 DFT
我们已经将一个 N 点的 DFT 分解成为两个 N/2 点的 DFT 。但是, X ( k )有 N 点,但 X1( k )和 X2 ( k )都只有 N/2 点,因此,前面计算的只是 X ( k )的前一半项的结果。
将 N 点 DFT 分为两个 N/2 点 DFT
对于后一半 X ( k ),有
)(2)(1
)2/(2)2/(1)(
kXWkX
NkXWNkXkXkN
kN
kN
kN
NN
kNN WWWW )2/()2/(
这是因为
将 N 点 DFT 分为两个 N/2 点 DFT
这样,只要计算出( 0 , N/2-1 )区间的 X1 ( k )和 X2( k ),也就可以很方便地计算整个( 0 , N-1 )区间的全部 X( k ),从而大大地节省了运算量。
将 N 点 DFT 分为两个 N/2 点 DFT
将 N/2 点 DFT 分为两个 N/4 点 DFT
2 点 DFT
8 点蝶 2FFT
按频率抽取( DIF ) x1[n] = x[n]
x2[n] = x[n+N/2]
n=0 , 1 ,……, N/2-1
按频率抽取( DIF )
12/
0
1
2/
12/
0
])[2][1(
][][)(
N
n
nkN
kj
N
Nn
nkN
N
n
nkN
Wnxenx
WnxWnxkX
按频率抽取( 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
DIT 与 DIF
DIT 输入是混序的,频域的输出是顺序的 DIF 输入是顺序的,频域的输出是混序的
DIT 的复数乘法出现在加减之前 DIF 的复数乘法出现在加减之后
定点 DSP 计算 1024 点 FFT 的时间 DSP 时间( ms )TMS320C25 10.9TMS320C6201 0.067DSP56001 1.65
浮点 DSP 计算 1024 点 FFT 的时间 DSP 时间( ms )TMS320C30 3.87TMS320C40 1.02ADSP21060 0.46DSP96001 0.6ADSP21160 0.45s
顺序、混序与位倒序DIT 与 DIF 总有一边是混序的绝大多数 DSP 都提供了位倒序( bit r
everse )寻址指令
溢出问题
在多级运算中,要充分注意溢出的问题,尤其是用定点 DSP时
无论是 C 语言,还是 DSP汇编语言的 FFT 程序都有现成的程序可用