關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > FFT在低功率微程序控制器中的應用

        FFT在低功率微程序控制器中的應用

        作者: 時間:2010-08-17 來源:網絡 收藏

        利用開環來獲得位倒置(其中N=256):

        3.4 基為2的算法
        在對樣本執行位倒置后,即可以計算了。利用蝶形方法(見圖1)計算基為2的的固件包括3個主要的循環。在循環之外包括log2N的FFT計算階段。在每一階段循環內部執行單獨的蝶形運算。FFT算法的核心是執行每一蝶形運算的塊碼。不幸的是,這一塊碼的計算是不輕便的。MUL_1與MUL_2利用微處理器的硬件乘法來執行乘法。
        3.5 復數轉化為極坐標表示
        為了計算輸入信號的幅值,必須將復數X(k)轉換為極坐標來表示。幅值將代替在固件中不再需要的FFT中的原來的值。
        式(4)中決定了二維的LUT其幅值而不是其計算。第1個值是頻譜實部4個最重要的位,而第2個值是頻譜虛部4個最重要的位。為了獲得這些最重要的位,16位有符號數右移11次。頻譜的實部與虛部都可以被用作下標時,它們被其絕對值代替了(因此符號位將是零)。
        從式(6)中,可以知道頻譜是以X(N/2)對稱的,只有前N/2+1個幅值被轉化為極坐標表示。同樣,對于輸入樣本為實數的頻譜虛部中的X(0)與X(N/2)通常為零。因此這兩個幅值通常分別是單獨計算的。固件中用來自動計算X(k)的包括原碼。
        3.6 海明窗或漢寧窗
        為了實現此任務的固件包括LUTs(Q8.7形式)將海明窗或漢寧窗到輸入樣本中。加窗對于防止泄漏是有用的。加窗可以在時域上對輸入樣本截短。海明窗的方程如方式(8)所示,而漢寧窗則如式(9)所示。

        同樣,這些實際固件的注釋包括自動為這些窗函數產生LUTs的原碼。

        4 測試結果
        為了對FFT結果測試,利用微處理器中的通用異步收發報機端口。固件將幅值X(k)上傳到PC上。這個包括FFT圖表,即利用一個窗口從PC中的串行端口中讀取這些幅值,實時地將計算得到的幅值利用圖表畫出來。利用微處理器對4個不同輸入電壓信號進行200Kb/s采樣,并在圖2中輸出其FFT圖像。

        本文引用地址:http://www.104case.com/article/162918.htm



        5 結語
        當然你可以利用無限的時間來優化及計算FFT。但是本文采取了基為2的FFT,這種方法可以很大限度地減少計算FFT所需要的加法與乘法。由于篇幅問題,有很多提高執行FFT速度的優化方法并沒有在本文中給出。例如,對于實數的輸入樣本信號,輸入樣本的虛部通常為零,而且只有開始的一半頻譜是重要的。利用這個信息,第一和最后一個FFT階段就可以更快速的執行(但可能將需要編寫更多的代碼)。對于低的微處理器,在本文中所提到的關于FFT的算法是一個好的開始。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 福建省| 绥化市| 洛南县| 芜湖市| 涪陵区| 山东省| 高碑店市| 河东区| 宁津县| 工布江达县| 祥云县| 涞源县| 金山区| 舒城县| 山阳县| 仲巴县| 城步| 保亭| 泸水县| 丹寨县| 蒙山县| 社旗县| 建德市| 滦平县| 杂多县| 德江县| 射洪县| 岑溪市| 乾安县| 时尚| 海口市| 常宁市| 辽中县| 察雅县| 洪洞县| 惠来县| 金塔县| 肇源县| 丘北县| 偏关县| 嘉善县|