FFT---快速傅里叶变换
基于离散傅立叶变换(DFT),以获取信号的频域特征。传统的DFT算法能够获取信号频域特征,但是算法计算量大,耗时长,不利于计算机实时对信号进行处理,在工程中无法应用,作为DFT的一种快速实现算法,FFT很好的解决了这个问题。
DFT变换公式,由此公式,每计算一个频率点X(k)均需要进行N次复数乘法和N-1次复数加法,计算N各点的X(k)共需要N^2次复数乘法和N*(N-1)次复数加法。当x(n)为实数的情况下,计算N点的DFT需要2*N^2次实数乘法,2*N*(N-1)次实数加法。计算量很大
正所谓“有需求就会有市场”,前人伟大的智慧,给出了一下几种解决方法
1.基-2 FFT ---DFT点数为N = 2^M(M为整数)时的FFT,可以分为两类:按时间抽取法(DIT-FFT)和按频率抽取法FFT(DIF-FFT)
DIT-FFT
把长为N = 2^M点的时域序列x(n)按序号的奇偶逐级分解,最终得到N/2个2点时域序列。通过迭代计算2点的DFT,使DFT计算量减少(假设采样序列点数为N=2^L,L为整数,如果不满足这个条件可以人为地添加若干个0以使采样序列点数满足这一要求)
X'(k’)为偶数项分支的离散傅立叶变换,X''(k’’)为奇数项分支的离散傅立叶变换,对于N点的FFT计算需要总共的实数乘法数量为:2×N×log2(N);总的复数加法次数为:2xNxlog2(N)。
快速计算方法的流程:1.对于输入数据序列进行倒位序变换。2.蝶形运算的循环结构。 3.浮点到定点转换需要注意的关键问题 4.计算过程中的溢出问题
来源:https://www.cnblogs.com/jackcin/p/3416653.html