蝶形運算的旋轉因子計算:旋轉因子是WnkN(nk是上標,N是下標),n是原序列裏的某壹點,k是DFT(或FFT)後的序列某壹點,N為變換的點數。WnkN=e^[-j*2pi*n*k/N],這是壹個復指數項。
do_fft函數:
如果需要計算的序列長為2,兩個位置分別寫為x[0]+x[1]和x[0]-x[1]然後返回。
對需要計算的序列前半部分調用do_fft函數。
對需要計算的序列後半副本調用do_fft函數。
for (int i=0; i<length/2; ++i) 。
x[i+length/2] *= Wi;註意這裏需要先確定需要的是哪個W。
x[i]和x[i+length/2] 分別改寫為 x[i]+x[i+length/2]和x[i]-x[i+length/2]。
蝶形結此詞匯
仍最常使用於庫利-圖基快速傅立葉變換算法中,利用遞回的方式將n點離散傅立葉運算中的n點輸入分解為 n=r*m,轉換輸入信號為r點的m組信號分別進行r點離散傅立葉運算(換句煥說就是r點DFT做m次)。
而r點的離散傅立葉運算基本上為轉換後的輸入信號乘上旋轉因子以蝶形結架構做加法運算。(前述為時域抽取法的運算方式,逆向操作先進行蝶形結架構做加法運算,再乘上旋轉因子,則為頻域抽取法運算方式)。