当前位置:
文档之家› 精品课件-数字信号处理(第四版)(高西全)-第4章
精品课件-数字信号处理(第四版)(高西全)-第4章
点DFT和(4.2.10)式或(4.2.11)式所示的N/4个蝶形运算,
如图4.2.3所示。依次类推,经过M次分解,最后将N点DFT
分解成N个1点DFT和M级蝶形运算,而1点DFT就是时域序列
本身。一个完整的8点DIT-FFT运算流图如图4.2.4所示。
图中用到关系式
。W图N中k / m输入W序Nmk列不是顺序排
In Time FFT,简称DIT-FFT ); 频域抽取法FFT (Decimation In Frequency FFT,简称DIF-FFT)。本节介 绍DIT-FFT
设序列x(n)的长度为N,且满足N=2M,M为自然数。按n 的奇偶把x(n)分解为两个N/2点的子序列
x1(r) x(2r), x2 (r) x(2r 1),
x1
(2l
1)WNk
( /
2l 2
1)
l 0
l 0
N / 41
N / 41
x3 (l)WNkl/ 4 WNk / 2
x4
(l
)WNk
l /
4
l 0
l 0
X 3 (k ) WNk/ 2 X 4 (k )
k 0, 1, , N 1 2
(4.2.9)
第4章 快速傅里叶变换(FFT)
式中
N / 41
r0
2
(4.2.6)
由于X1(k)和X2(k)均以N/2为周期,
kN
WN 2
WNk
且
,因此X(k)又可表示为
第4章 快速傅里叶变换(FFT)
X (k) X1(k) WNk X 2 (k),
X
(k
N 2
)
X1(k)
WNk
X
2
(k ),
k 0, 1, , N 1 2
(4.2.7)
k 0, 1, , N 1 2
第4章 快速傅里叶变换(FFT) 4.2 基2FFT
4.2.1 直接计算DFT 有限长序列x(n)的N点DFT为
N 1
X(4(.k2).1) x(n)WNkn k 0, 1, , N 1 n0
考虑x(n)为复数序列的一般情况,对某一个k值,直 接按(4.2.1)式计算X(k)的1个值需要N次复数乘法和 (N-1)次复数加法。因此,计算X(k)的所有N个值,共需 N2次复数乘法和N(N-1)次复数加法运算。
4.2.3 DIT-FFT算法与直接计算DFT运算量的比较 由DIT-FFT算法的分解过程及图4.2.4可见,N=2M 时,其
运算流图应有M级蝶形,每一级都由N/2个蝶形运算构成。因 此,每一级运算都需要N/2次复数乘和N次复数加(每个蝶形需 要两次复数加法)。所以,M级运算总共需要的复数乘次数为
复数加次数为
X 4 (k) WNk / 2
X
4
,k (k)
0,
1,
,
N叶变换(FFT)
用同样的方法可计算出
X X
2 2
(k) X5(k k N 4
) WNk/2 X 6 (k) X 5 (k) WNk/2 X
6
(k
)
k 0, 1, , N 1 4
(4.2.11)
m N
WN 2
WNm
(4.2.3b)
FFT算法就是不断地把长序列的DFT分解成几个短序列的 DFT,并利用 的周WNk期n 性和对称性来减少DFT的运算次 数。算法最简单最常用的是基2FFT。
第4章 快速傅里叶变换(FFT)
4.2.2 时域抽取法基2FFT基本原理 基2FFT算法分为两类:时域抽取法FFT(Decimation
第4章 快速傅里叶变换(FFT)
X3(k)
x3 (l)WNkl/ 4 DFT[x3 (l)]N
l0
4
N / 41
X 4 (k)
x4 (l)WNkl/ 4 DFT[x4 (l)]N
l0
4
同理,由X3(k)和X4(k)的周期性和
Wm N /2
的对称性
W kN / 4 N /2
WNk / 2
最后得到:
X1(k) X 3 (k) WNk/ 2 X1(k N / 4) X 3 (k)
x2 (r)WN2kr
r0
r0
第4章 快速傅里叶变换(FFT)
因为 所以
W 2kr N
j2π 2kr
e N
j 2π kr
e N2
W kr N/
2
N / 21
N / 21
X (k)
x1(r)WNkr/ 2 WNr
x2 (r)WNkr/ 2
r0
r0
X1(k) WNk X 2 (k) k 0,1, 2, , N -1
(4.2.8)
这样,就将N点DFT分解为两个N/2点DFT和(4.2.7)式以及 (4.2.8)式的运算。(4.2.7)和(4.2.8)式的运算可用图4.2.1 所示的流图符号表示,称为蝶形运算符号。采用这种图示法, 经过一次奇偶抽取分解后,N点DFT运算图可以用图4.2.2表示。 图中,N=23=8, X(0)~X(3)由(4.2.7)式给出,而X(4)~ X(7) 则由(4.2.8)式给出。
r 0, 1, r 0, 1,
, N 1 2
, N 1 2
第4章 快速傅里叶变换(FFT)
则x(n)的DFT为
X (k)
x(n)WNkn
x(n)WNkn
n偶数
n奇数
N / 21
N / 21
x(2r)WN2kr
x(2r 1)WNk (2r1)
r0
r0
N / 21
N / 21
x1(r)WN2kr WNk
2
N 2
2
N 2
N (N 1) 2
N 1
N2 2
第4章 快速傅里叶变换(FFT)
复数加法次数为
N N 1 2N N 2 2 2 2
由此可见,仅仅经过一次分解,就使运算量减少近一半。 既然这样分解对减少DFT的运算量是有效的,且N=2M, N/2 仍然是偶数,故可以对N/2点DFT再作进一步分解。
如前所述,N点DFT的复乘次数等于N2。显然,把N点 DFT分解为几个较短的DFT,可使乘法次数大大减少。另 外,旋转因子具有明显的周期性和对称性。其周期性表 现为
(4.2.W2)NmlN
j2π (mlN )
e N
j2πm
e N
WNm
第4章 快速傅里叶变换(FFT) 其对称性表现为
WNm WNN m 或者 [WNN m ]* WNm (4.2.3a)
第4章 快速傅里叶变换(FFT)
自从1965年库利(T. W. Cooley)和图基(J. W. Tuky) 在《计算数学》(Math. Computation, Vol. 19, 1965) 杂志上发表了著名的《机器计算傅里叶级数的一种算法》 论文后,桑德(G. Sand)—图基等快速算法相继出现,又 经人们进行改进,很快形成一套高效计算方法,这就是 现在的快速傅里叶变换(FFT)。
列,但后面会看到,其排列是有规律的。图中的数组A用于
存放输入序列和每级运算结果,在后面讨论编程方法和倒
序时要用到。
第4章 快速傅里叶变换(FFT) 图4.2.3 8点DFT二次时域抽取分解运算流图
第4章 快速傅里叶变换(FFT) 图4.2.4 8点DIT-FFT运算流图
第4章 快速傅里叶变换(FFT)
第4章 快速傅里叶变换(FFT)
4.2.4 DIT-FFT 1. 由图4.2.4可以看出,DIT-FFT的运算过程很有规律。
N=2M点的FFT共进行M级运算,每级由N/2个蝶形运算组成。 同一级中,每个蝶形的两个输入数据只对计算本蝶形有用, 而且每个蝶形的输入、输出数据结点又同在一条水平线上, 这就意味着计算完一个蝶形后,所得输出数据可立即存入原 输入数据所占用的存储单元(数组元素)。这样,经过M级运 算后,原来存放输入序列数据的N个存储单元(数组A)中便依 次存放X(k)的N个值。这种利用同一存储单元存储蝶形计算 输入、输出数据的方法称为原位(址)计算。原位计算可节省
其中
N / 41
X5 (k)
x5 (l)WNkl/4 DFT[x5 (l)]N
l0
4
N / 41
X6 (k)
x6 (l)WNkl/4 DFT[x6 (l)]N
l0
4
x5 (l) x6 (l)
x2 x2
((22ll)1),l
0,
1,
, N / 4 1
第4章 快速傅里叶变换(FFT)
这样,经过第二次分解,又将N/2点DFT分解为2个N/4
(4.2.4)
第4章 快速傅里叶变换(FFT)
其中X1(k)和X2(k)分别为x1(r)和x2(r)的N/2点DFT, 即
N / 21
X1(k)
x1(r)WNkr/ 2 DFT[x1(r)]N
r0
2
(4.2.5)
N / 21
X 2 (k)
x2 (r)WNkr/ 2 DFT[x2 (r)]N
第4章 快速傅里叶变换(FFT)
当 N 1时,N(N-1)≈N2。由上述可见,N点DFT的
乘法和加法运算次数均为N2。当N较大时,运算量相当可 观。例如N=1024时,N2=1 048 576。这对于实时信号处 理来说,必将对处理设备的计算速度提出难以实现的要 求。所以,必须减少其运算量,才能使DFT在各种科学和
这种算法使DFT的运算效率提高了1 ~ 2个数量级, 为数字信号处理技术应用于各种信号的实时处理创造了 条件,大大推动了数字信号处理技术的发展。
第4章 快速傅里叶变换(FFT)
人类的求知欲和科学的发展是永无止境的。多年来, 人们继续寻求更快、更灵活的好算法。1984年,法国的杜 哈梅尔(P. Dohamel)和霍尔曼(H. Hollmann)提出的分裂 基快速算法,使运算效率进一步提高。本章主要讨论基 2FFT