快速傅里叶变换(FFT)

时间:2023-02-01 15:02:07

一、FFT的意义

DFT虽然实现了FT的计算机计算,但是计算量大,不适合实时的数字信号处理。FFT算法的出现,使DFT的计算效率更高,速度更快。

二、FFT与DFT的关系

从FT到DFT经过了数字角频率w的离散化,由此带来了一些数学公式的改写。而FFT是DFT算法上的突破,可以说数学理论上与DFT是一样的。可以认为,FFT就是DFT的一种快速好用的计算方法,FFT替代了定义法计算的笨拙,如此而已。正因为如此,所以可以看到FFT与DFT的运算结果是相同的。

三、matlab实验

1、程序

L=;                        %原离散信号有8点
n=[::L-] %原信号是1行8列的矩阵
xn=[ ]; %构建原始信号,为指数信号
subplot(,,);
stem(n,xn);
title('原信号'); N=;
i=[::N-];
Xk=fft(xn,N);
subplot(,,);
stem(i,abs(Xk));
title('FFT变换');

说明:

程序实现FFT的部分是直接调用matlab函数库中的fft()函数:

       Xk=fft(xn,N);
至于它的算法详细实现,本人还未研究,待哪天空闲时再来补充。

2、实验结果

快速傅里叶变换(FFT)

说明:从实验结果中可以看出,FFT的计算结果与DFT完全一样,也说明了FFT只是DFT的一种快速运算方法。

参考:用matlab对信号进行傅里叶变换

西电《数字信号处理》第三版