一. 简介
离散傅里叶变换(Discrete Fourier Transform, DFT)是数字信号处理最重要的基石之一,也是对信号进行分析和处理时最常用的工具之一。在200多年前法国数学家、物理学家傅里叶提出后来以他名字命名的傅里叶级数之后,用DFT这个工具来分析信号就已经为人们所知。但在很长时间内,这种分析方法并没有引起更多的重视,最主要的原因在于这种方法运算量比较大。
快速傅里叶变换(Fast Fourier Transform, FFT)是1965年由库利(T.W.Cooley)和图基(J.W.Tukey)共同提出的一种快速计算DFT的方法。这种方法充分利用了DFT运算中的对称性和周期性,从而将DFT运算量从N2减少到N*log2N。当N比较小时,FFT优势并不明显。但当N大于32开始,点数越大,FFT对运算量的改善越明显。比如当N为1024时,FFT的运算效率比DFT提高了100倍。
在库利和图基提出的FFT算法中,其基本原理是先将一个N点时域序列的DFT分解为N个1点序列的DFT,然后将这样计算出来的N个1点序列DFT的结果进行组合,得到最初的N点时域序列的DFT值。实际上,这种基本的思想很早就由德国伟大的数学家高斯(1777年4月30日-1855年2月23日)提出过,只是由于当时尚欠东风——计算机还没发明。在20世纪60年代,伴随着计算机的发展和成熟,库利和图基的成果掀起了数字信号处理的革命,因而FFT发明者的桂冠才落在他们头上。
库利和图基的FFT算法的最基本运算为蝶形运算,每个蝶形运算包括两个输入点,因而也称为基-2算法。在这之后,又有一些新的算法,进一步提高了FFT的运算效率,比如基-4算法、分裂基算法等。这些新算法对FFT运算效率的提高一般在50%以内,远远不如FFT对DFT运算的提高幅度。从这个意义上说,FFT算法是里程碑式的。可以说,正是计算机技术的发展和FFT的出现,才使得数字信号处理迎来了一个崭新的时代。
只有周期信号可以通过傅里叶变换分解,随机信号、无规则信号是不能分解的。
二. FFT(Matlab角度分析)
现举例:
假设我们有一个信号(如图一所示),它是一个与时间无关的常数。
它含有
①2V的直流分量(注:信号的直流分量就是信号的平均值),
②频率为50Hz、相位为-30度、幅度为3V的交流信号,
以及一个
③频率为75Hz、相位为90度、幅