蝶形演算法圖
A. 怎麼理解蝶形運算和FFT以及怎麼使用
輸出就是頻譜
之所以是蝶形運算,
實際上得出的是以2點為周期的幅值
以4點為周期的幅值
以6點為周期的幅值
以8點為周期的幅值
以此類推
B. 數字信號處理蝶形運算的具體演算法 越詳細越好 書看不懂啊
應該是書本講的最為詳細,多找幾本書看看吧
C. 蝶形運算的公式
Wnk =e^-j (2Π/n) *k =cos(-(2Π/n)* k)-j*sin((2Π/n)* k)
D. 快速傅里葉變換的計算方法
計算離散傅里葉變換的快速方法,有按時間抽取的FFT演算法和按頻率抽取的FFT演算法。前者是將時域信號序列按偶奇分排,後者是將頻域信號序列按偶奇分排。它們都藉助於的兩個特點:一是周期性;二是對稱性,這里符號*代表其共軛。這樣,便可以把離散傅里葉變換的計算分成若干步進行,計算效率大為提高。
時間抽取演算法 令信號序列的長度為N=2,其中M是正整數,可以將時域信號序列x(n)分解成兩部分,一是偶數部分x(2n),另一是奇數部分x(2n+1),於是信號序列x(n)的離散傅里葉變換可以用兩個N/2抽樣點的離散傅里葉變換來表示和計算。考慮到和離散傅里葉變換的周期性,式⑴可以寫成
⑶其中(4a)(4b)由此可見,式⑷是兩個只含有N/2個點的離散傅里葉變換,G(k)僅包括原信號序列中的偶數點序列,H(k)則僅包括它的奇數點序列。雖然k=0,1,2,…,N-1,但是G(k)和H(k)的周期都是N/2,它們的數值以N/2周期重復。
因為於是由式⑶和式⑷得到(5a)(5b)
因此,一個抽樣點數為N 的信號序列x(n)的離散傅里葉變換,可以由兩個 N/2抽樣點序列的離散傅里葉變換求出。依此類推,這種按時間抽取演算法是將輸入信號序列分成越來越小的子序列進行離散傅里葉變換計算,最後合成為N點的離散傅里葉變換。
通常用圖1中蝶形演算法的信號流圖來表示式⑸的離散傅里葉變換運算。例如,N=8=2的抽樣點的信號序列x(n)的離散傅里葉變換,可用如圖2所示的FET演算法的信號流圖來計算。
①N=2點的離散傅里葉變換的計算全由蝶形運算組成,需要M級運算,每級包括N/2個蝶形運算,總共有 個蝶形運算。所以,總的計算量為次復數乘法運算和N log2N次復數加法運算。
②FFT演算法按級迭代進行,計算公式可以寫成
⑹N抽樣點的輸入信號具有N個原始數據x0(n),經第一級運算後,得出新的N個數據x1(n),再經過第二級迭代運算,又得到另外N個數據x2(n),依此類推,直至最後的結果x(k)=xM(k)=X(k)在逐級迭代計算中,每個蝶形運算的輸出數據存放在原來存貯輸入數據的單元中,實行所謂「即位計算」,這樣可以節省大量存放中間數據的寄存器。
③蝶形運算中加權系數隨迭代級數成倍增加。由圖2可以看出系數的變化規律。對於N=8,M=3情況,需進行三級迭代運算。在第一級迭代中,只用到一種加權系數;蝶形運算的跨度間隔等於1。在第二級迭代中,用到兩種加權系數即、;蝶形運算的跨度間隔等於2。在第三級迭代中,用到4種不同的加權系數即、、、;蝶形運算的跨度間隔等於4。可見,每級迭代的不同加權系數的數目比前一級迭代增加一倍;跨度間隔也增大一倍。
④輸入數據序列x(n)需重新排列為x(0)、x⑷、x⑵、x⑹、x⑴、x⑸、x⑶、x⑺,這是按照二進制數的碼位倒置所得到的反序數,例如N=8中數「1」的二進制數為「001」,將其碼位倒轉變為「100」,即為十進制數「4」。
頻率抽取演算法按頻率抽取的 FFT演算法是將頻域信號序列X(k)分解為奇偶兩部分,但演算法仍是由時域信號序列開始逐級運算,同樣是把N點分成N/2點計算FFT,可以把直接計算離散傅里葉變換所需的N次乘法縮減到次。
在N=2的情況下,把N點輸入序列x(n)分成前後兩半
⑺
時間序列x1(n)±x2(n)的長度為N/2,於是N點的離散傅里葉變換可以寫成
(8a)
(8b)
頻率信號序列X(2l)是時間信號序列x1(n)+x2(n)的N/2點離散傅里葉變換,頻率信號序列X(2l+1)是時間信號序列【x1(n)-x2(n)】的N/2點離散傅里葉變換,因此,N點離散傅里葉變換的計算,通過兩次加(減)法和一次乘法,從原來序列獲得兩個子序列,所以,頻率抽取演算法也具有蝶形運算形式。以2為基數的FFT基本蝶形運算公式為
⑼
其計算量完全和時間抽取演算法一樣,即只需次乘法運算和Nlog2N次加(減)法運算。圖3 表示N=8=2點的離散傅里葉變換的信號流圖。由圖可見,它以三級迭代進行即位計算,輸入數據是按自然次序存放,使用的系數也是按自然次序,而最後結果則以二進制反序存放。
實際上,頻率抽取演算法與時間抽取演算法的信號流圖之間存在著轉置關系,如將流圖適當變形,可以得出多種幾何形狀。
除了基2的FFT演算法之外,還有基4、基8等高基數的FFT演算法以及任意數為基數的FFT演算法。
E. 蝶形運算的基本介紹
1. 2點DFT運算稱為蝶形運算,而整個FFT就是由若干級迭代的蝶形運算組成,而且這種演算法採用原位運算,故只需N個存儲單元2. ∑∑(2)式(2)是FFT基4頻域抽取演算法的基本運算單元,一般稱為蝶形運算.下一步再將X(4m+i),i=0,1,2,3分解成4個N42序列,迭代r次後完成計算,整個演算法的復雜度減少為O(Nlog4N)
第一列蝶形運算只有一種類型:系數,參加運算的兩個數據點間距為1。第二列有兩種類型的蝶形運算:系數分別為 ,參加蝶形運算的兩個數據點的間距等於2。第三列有4種類型的蝶形運算:系數分別是 ,參加蝶形運算的兩個數據點的間距等於4。可見,每一列的蝶形類型比前一列增加一倍,參加蝶形運算的兩個數據點的間距也增大一倍,最後一列系數用得最多,為4個,即 ,而前一列只用到它偶序號的那一半,即,第一列只有一個系數,即。
上訴結論可以推廣到N=的一般情況,規律是第一列只有一種類型的蝶形運算,系數是 ,以後每列的蝶形類型,比前一列增加一倍,到第是N/2個蝶形類型,系數是,共N/2個。由後向前每推進一列,則用上述系數中偶數序號的那一半,例如第列的系數則為參加蝶形運算的兩個數據點的間距,則是最末一級最大,其值為N/2,向前每推進一列,間距減少一半。
F. 怎樣用fft蝶形圖計算序列的DFT
這里傳不了圖,到我空間相冊裡面去取,我已經做好了!
http://hi..com/%C1%F7%D0%C7%C8%D5%CA%B3/album/item/68b1ab1af14a49f94bedbc4d.html#IMG=68b1ab1af14a49f94bedbc4d