<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > FFT在低功率微程序控制器中的應(yīng)用

          FFT在低功率微程序控制器中的應(yīng)用

          作者: 時間:2010-08-17 來源:網(wǎng)絡(luò) 收藏
          0 引言
          在以前,外圍設(shè)備是更大的微處理器如特定用途集成電路和DSP中的內(nèi)存?,F(xiàn)在,低微處理器包括了外圍設(shè)備,這樣就有機會在低功耗的情況下進行復(fù)雜的運算。本文介紹了在低的微處理器中執(zhí)行快速傅里葉變換(),其中微處理器包括一周期的硬件乘法器。這個可以實時計算輸入電壓的頻譜。
          為了完成此任務(wù),一個模數(shù)轉(zhuǎn)換器對輸入信號進行采樣然后傳輸?shù)轿⑻幚砥鳌N⑻幚砥髟賹颖拘盘栠M行256點的,這樣就獲得輸入電壓的頻譜。為了測試其有效性,微處理器計算頻譜的幅值然后實時地傳輸給示波器。

          1 背景
          為了確定輸入樣本信號的頻譜信息,需要計算輸入樣本的離散傅里葉變換(DFT)。離散傅里葉變換定義為:

          式中:N是樣本點數(shù);X(k)是頻譜,與x(n)代表輸入樣本。利用歐拉方程的一致性將這個求和公式中的輸入樣本與頻譜分離為它們的實部與虛部,可得以下方程式:

          因為輸入樣本只是考慮實部。式(2)與式(3)中的求和公式的第二項消失了,假設(shè)有N個樣本,直接計算式(2)、式(3)需要2N2次乘法及2N(N-1)次加法。因此256點輸入樣本的DFT將要求131072次乘法和130560次加法。
          已經(jīng)出現(xiàn)了很多種算法。普通的以基為2的算法連續(xù)將DFT分解成2個更小的DFT。為了使其變成可能,N必須分解為2的整數(shù)冪。轉(zhuǎn)化為以2為基的FFT的步驟見圖1的蝶形計算。從圖1的蝶形計算中可觀察到,獲得基為2的FFT算法的解只需要(N/2)log2N次乘法與Nlog2N次加法。在圖l中的值WH通常認為是旋轉(zhuǎn)因子且能夠在執(zhí)行FFT前計算得到。

          本文引用地址:http://www.ex-cimer.com/article/162918.htm


          在圖1中,F(xiàn)FT的輸入具有特殊的形式。它是具有位倒置下標的原始順序。因此,當計算基為2的N=8的FFT時,輸入數(shù)據(jù)的記錄順序要求為O(000b),1(001b),…,0(000b),4(100b),…。
          FFT是以正確的順序作為輸出。圖1同樣揭示了單一的蝶形計算的結(jié)果只是FFT的下一階段的輸入。因為計算是在適當?shù)奈恢弥型瓿傻?,舊值可以代替新獲得值且在計算N點的FFT只是需要2N個變量樣本(需要2N個變量是因為每一個變量值都有一個實部與虛部)。
          當完成FFT時,結(jié)果是以復(fù)數(shù)為記法的。式(4)和式(5)將復(fù)數(shù)表示形式轉(zhuǎn)變?yōu)橐詷O坐標表示:

          在DSP的文章里介紹了很多關(guān)于DFT/FFT的優(yōu)化方法,使其計算速度更快且需要的計算量更少,其中一個比較重要的優(yōu)化方法(也可能是最容易執(zhí)行的)。
          從觀察DFT中可以獲得,因為具有N點的實值信號的DFT是以X(N/2)為對稱的,因此有:


          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();