數學定義:
(詳細參考:https://www.baidu.com/link?url=oYAuG2o-pia_U3DlF5n_MJZyE5YKfaVRUHTTDbM1FwM_kDTjGCxKpw_PbOK70jE2geVioprSVyPTTQuLwN-IhMH8NREmWSDnmcfQEY8w0kq&wd=&eqid=8244c46a0009451a000000035c0e2c39)
有限長序列可以通過離散傅里葉變換(DFT)將其頻域也離散化成有限長 序列.但其計算量太大,很難實時地處理問題,因此引出了快速傅里葉變換 (FFT). 1965 年,Cooley 和 Tukey 提出了計算離散傅里葉變換(DFT)的快 速算法,將 DFT 的運算量減少了幾個數量級。從此,對快速傅里葉變換(FFT) 算法的研究便不斷深入,數字信號處理這門新興學科也隨 FFT 的出現和發 展而迅速發展。根據對序列分解與選取方法的不同而產生了 FFT 的多種算 法,基本算法是基2DIT 和基2DIF。FFT 在離散傅里葉反變換、線性卷積 和線性相關等方面也有重要應用。
快速傅里葉變換(FFT)是計算離散傅里葉變換(DFT)的快速算法。
DFT 的定義式為:
代碼示例:
%fft示例:產生60Hz和150Hz帶噪聲的信號源,並用傅里葉變換方法查找主頻信號 %產生帶噪聲的聲源信號,並提取離散信號 t=0:0.001:0.6; %噪聲信號的主頻是60Hz和150Hz x=sin(2*pi*60*t)+sin(2*pi*150*t); y=x+2*randn(size(t)); plot(1000*t(1:50),y(1:50)) title('Signal Corrupted with Zero-Mean Random Noise') xlabel('time(ms)') grid on; %進行512點的快速傅里葉變換 Y=fft(y,512); %功率譜測量計算 Pyy=Y.*conj(Y)/512; f=1000*(0:256)/512; %繪制頻譜圖形 figure; plot(f,Pyy(1:257)) title('Frequency content of y') xlabel('frequency(Hz)') grid on;