FFT在低功率微程序控制器中的應用
在以前,外圍設備是更大的微處理器如特定用途集成電路和DSP中的內存。現(xiàn)在,低功率微處理器包括了外圍設備,這樣就有機會在低功耗的情況下進行復雜的運算。本文介紹了在低功率的微處理器中執(zhí)行快速傅里葉變換(FFT),其中微處理器包括一周期的硬件乘法器。這個應用可以實時計算輸入電壓的頻譜。
為了完成此任務,一個模數(shù)轉換器對輸入信號進行采樣然后傳輸?shù)轿⑻幚砥?。微處理器再對樣本信號進行256點的FFT,這樣就獲得輸入電壓的頻譜。為了測試其有效性,微處理器計算頻譜的幅值然后實時地傳輸給示波器。
1 背景
為了確定輸入樣本信號的頻譜信息,需要計算輸入樣本的離散傅里葉變換(DFT)。離散傅里葉變換定義為:
式中:N是樣本點數(shù);X(k)是頻譜,與x(n)代表輸入樣本。利用歐拉方程的一致性將這個求和公式中的輸入樣本與頻譜分離為它們的實部與虛部,可得以下方程式:
因為輸入樣本只是考慮實部。式(2)與式(3)中的求和公式的第二項消失了,假設有N個樣本,直接計算式(2)、式(3)需要2N2次乘法及2N(N-1)次加法。因此256點輸入樣本的DFT將要求131072次乘法和130560次加法。
已經(jīng)出現(xiàn)了很多種FFT算法。普通的以基為2的算法連續(xù)將DFT分解成2個更小的DFT。為了使其變成可能,N必須分解為2的整數(shù)冪。轉化為以2為基的FFT的步驟見圖1的蝶形計算。從圖1的蝶形計算中可觀察到,獲得基為2的FFT算法的解只需要(N/2)log2N次乘法與Nlog2N次加法。在圖l中的值WH通常認為是旋轉因子且能夠在執(zhí)行FFT前計算得到。本文引用地址:http://butianyuan.cn/article/162918.htm
在圖1中,F(xiàn)FT的輸入具有特殊的形式。它是具有位倒置下標的原始順序。因此,當計算基為2的N=8的FFT時,輸入數(shù)據(jù)的記錄順序要求為O(000b),1(001b),…,0(000b),4(100b),…。
FFT是以正確的順序作為輸出。圖1同樣揭示了單一的蝶形計算的結果只是FFT的下一階段的輸入。因為計算是在適當?shù)奈恢弥型瓿傻?,舊值可以代替新獲得值且在計算N點的FFT只是需要2N個變量樣本(需要2N個變量是因為每一個變量值都有一個實部與虛部)。
當完成FFT時,結果是以復數(shù)為記法的。式(4)和式(5)將復數(shù)表示形式轉變?yōu)橐詷O坐標表示:
在DSP的文章里介紹了很多關于DFT/FFT的優(yōu)化方法,使其計算速度更快且需要的計算量更少,其中一個比較重要的優(yōu)化方法(也可能是最容易執(zhí)行的)。
從觀察DFT中可以獲得,因為具有N點的實值信號的DFT是以X(N/2)為對稱的,因此有:
評論