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

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于FPGA的FFT算法優(yōu)化及其在磁共振譜儀中的應(yīng)用

          基于FPGA的FFT算法優(yōu)化及其在磁共振譜儀中的應(yīng)用

          作者: 時間:2012-05-22 來源:網(wǎng)絡(luò) 收藏

          旋轉(zhuǎn)因子WN的二進(jìn)制表示可看作是若干項(xiàng)2次冪數(shù)相加組合而成的數(shù),那么一個數(shù)與WN相乘即可通過在移位操作的基礎(chǔ)上執(zhí)行相應(yīng)的加法操作來實(shí)現(xiàn)。根據(jù)正弦函數(shù)與余弦函數(shù)的對稱性,第5階與第6階與相乘所占用的乘法器完全可以省略。

          o.JPG

          如式(11)所示,在WN的二進(jìn)制序列中,在不引入噪聲的基礎(chǔ)上把N個移位寄存器和N-1個加法器的運(yùn)算用2個移位寄存器和1個減法器來實(shí)現(xiàn)。這樣不僅可以大大減少硬件資源的消耗,最大的優(yōu)點(diǎn)是不消耗RAM和乘法器資源,因此速度很快。

          2.3 邏輯資源與性能分析

          該設(shè)計中的64點(diǎn)并行模塊通過在不同系列芯片綜合仿真后,系統(tǒng)時鐘最高可達(dá)285 MHz,完全滿足設(shè)計要求。所占用的邏輯資源和性能與Xilinx IPcore比較如表1所示。

          p.JPG

          b.JPG

          Xilinx公司的ISE集成開發(fā)環(huán)境可以提供成熟的 IP核,但是由于占用大量的DSP Slices,可移植性很差,但該設(shè)計中由于沒有用到DSP Slices,可移植性很強(qiáng)。圖7為64點(diǎn)并行FFT模塊的時序圖,圖中運(yùn)算器的數(shù)據(jù)處理時間為1個時鐘周期,數(shù)據(jù)處理的延時Tlatency為37個時鐘周期,使得整個運(yùn)算器的數(shù)據(jù)處理吞吐率高達(dá)656 Gb/s,而數(shù)據(jù)延時時間僅為0.129 μs,與Xilinx公司和Altera公司已經(jīng)成熟的FFT處理器相比時延大大減少,提高了FFT處理器實(shí)時處理性能。

          3 結(jié)語

          該設(shè)計通過對64點(diǎn)并行FFT進(jìn)行改進(jìn),大大提高了信號處理的實(shí)時性,所占用的邏輯資源和有限字長效應(yīng)引起的噪聲也得到了優(yōu)化,可移植性大大增強(qiáng)。該設(shè)計已經(jīng)完成了硬件電路的設(shè)計與調(diào)試,結(jié)果證明通過雙通道頻譜圖對由于增益與相位不平衡產(chǎn)生的鏡像峰進(jìn)行調(diào)節(jié),可大大提高譜儀信號檢測的準(zhǔn)確性,也使譜儀的應(yīng)用更加方便。


          上一頁 1 2 3 4 下一頁

          關(guān)鍵詞: FPGA FFT 算法優(yōu)化 磁共振

          評論


          相關(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); })();