首页 理论教育 FFT算法:快速傅里叶变换的实现与应用

FFT算法:快速傅里叶变换的实现与应用

时间:2023-06-24 理论教育 版权反馈
【摘要】:FFT是DFT的快速算法,它在确定DFT的系数时,使所要求的乘法及加法次数减少。FFT算法的实质就是把一个长数据序列x,经多次分选抽取,最终分割成n/2个,每个有两个数据的序列做DFT计算,并分别算出分割后比较短的子序列的频谱;然后按一定的规则组合,即可得到整个序列x的频谱。这样,只需对只有两项的“序列”求DFT;然后应用式逐步“合并”;最终可求得原序列{x}的DFT。

FFT算法:快速傅里叶变换的实现与应用

FFT是DFT的快速算法,它在确定DFT的系数时,使所要求的乘法及加法次数减少。FFT的算法有很多种,其中大多数已编制了程序,从而使应用于数字频谱分析、滤波器模拟及相关领域的计算技术产生了较大的发展。

在按照式(5-2)的DFT直接计算Xk)值时,对于NXk)中的每一个必须做Nxn)乘以e-jkn/N。所以共有N2复数乘法运算,而且还要做NN-1)次复数相加的运算。其计算工作量直接与N的大小有关,当N较大时,计算工作量将急剧增加。

FFT算法的实质就是把一个长数据序列xn),经多次分选抽取,最终分割成n/2个,每个有两个数据的序列做DFT计算,并分别算出分割后比较短的子序列的频谱;然后按一定的规则组合,即可得到整个序列xn)的频谱。

例如:有一数据序列{xn)},n=0,1,2,…,N-1,如图5-7所示(N=8)。将序列{xn)}按偶数项和奇数项,经一次抽取组合成两个较短的半序列{yn)}和{zn)},其中

则它们与Xk)的关系为(www.xing528.com)

式(5-10)表明,原序列{xn)}的DFT能直接根据两个半序列的DFT计算出来。

如果原序列{xn)}的总项数N=2p,则可以把它分割成两个半序列,半序列{yn)}和{zn)}又可以分成4个1/4序列;然后再分成8个1/8序列,直到最后每个序列只剩下两项为止。这样,只需对只有两项的“序列”求DFT;然后应用式(5-10)逐步“合并”;最终可求得原序列{xn)}的DFT。按FFT算法逻辑步骤,编好程序用计算机进行计算。

5-7 原始序列{xn)}及其半序列{yn)}、{zn)}

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈