DSP編程代碼,FFT算法,經典!!
FFT實驗
一、 理論:
公式(1)FFT運算公式
FFT并不是一種新的變換,它是離散傅立葉變換(DFT)的一種快速算法。由于我們在計算DFT時一次復數乘法需用四次實數乘法和二次實數加法;一次復數加法則需二次實數加法。每運算一個X(k)需要4N次復數乘法及2N+2(N-1)=2(2N-1)次實數加法。所以整個DFT運算總共需要4N^2次實數乘法和N*2(2N-1)=2N(2N-1)次實數加法。如此一來,計算時乘法次數和加法次數都是和N^2成正比的,當N很大時,運算量是可觀的,因而需要改進對DFT的算法減少運算速度。
根據傅立葉變換的對稱性和周期性,我們可以將DFT運算中有些項合并。
我們先設序列長度為N=2^L,L為整數。將N=2^L的序列x(n)(n=0,1,……,N-1),按N的奇偶分成兩組,也就是說我們將一個N點的DFT分解成兩個N/2點的DFT,他們又從新組合成一個如下式所表達的N點DFT:
一般來說,輸入被假定為連續、合成的。當輸入為純粹的實數的時候,我們就可以利用左右對稱的特性更好的計算DFT。
我們稱這樣的RFFT優化算法是包裝算法:首先2N點實數的連續輸入稱為“進包”。其次N點的FFT被連續被運行。最后作為結果產生的N點的合成輸出是
標簽:
FFT
DSP
編程代碼
算法
上傳時間:
2015-04-29
上傳用戶:牛布牛