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