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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 在MSP430F1611上實現(xiàn)周期圖譜分析及校正

          在MSP430F1611上實現(xiàn)周期圖譜分析及校正

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

          ③為節(jié)約RAM內(nèi)存空間,將旋轉(zhuǎn)因子對應(yīng)的正余弦表制作成表格存放在ROM空間中,而蝶形運算時可通過查表得到旋轉(zhuǎn)因子后再進行FFT運算。
          ④由于FFT運算過程中的旋轉(zhuǎn)因子是通過左移14位取整得到的,因此蝶形運算過程中需要乘法運算結(jié)果右移14位。單片機乘法器的結(jié)果寄存器,由高16位乘法結(jié)果寄存器RESFII、低16位乘法結(jié)果寄存器RESLO組成,右移14位操作就是保留高位結(jié)果寄存器所有內(nèi)容和低位結(jié)果寄存器中的高兩位,因此RESHI、RESLO一起向左移2位,然后保留高位結(jié)果寄存器作為乘法結(jié)果就可實現(xiàn)右移14位過程。


          5 算法測試
          為了驗證算法的實時性和正確性,通過信號發(fā)生器產(chǎn)生標(biāo)準(zhǔn)信號送入所研制的基于MSP430f1611為核心的處理系統(tǒng),對算法進行了全面的測試。
          (1)測試算法運行時間
          測試對2 048點數(shù)據(jù)進行所需要的總時間。預(yù)先設(shè)置單片機的P5.4引腳為普通I/O,且為輸出方式,接著,循環(huán)執(zhí)行FFT運算和程序,且每次開始FFT計算和功率譜估算前,將P5.4輸出電平翻轉(zhuǎn),因此P5.4輸出的相鄰兩次翻轉(zhuǎn)電平的時間間隔就是FFT運算和的總時間。通過數(shù)字存儲示波器觀測P5.4引腳輸出的信號波形,如圖4所示。

          每次高低電平翻轉(zhuǎn)的時間間隔約為500 ms,即對2 048點數(shù)據(jù)進行功率譜估計總共需要500 ms。
          (2)測試算法計算精度
          由于FFT運算的最大誤差發(fā)生在非整周期采樣時,所以,選擇這些最大誤差點來進行測試。由于泄漏誤差,信號基頻表示為
          f0=(k+d)fs/N (7)
          式(7)中,k為整數(shù),d為小數(shù)(定義d為泄漏誤差系數(shù))。由于泄漏誤差不超過頻率分辨率的二分之一,所以|d|≤O.5。當(dāng)d=O時,即為整周期采樣情況;當(dāng)d=O.5時,就是最大非整周期采樣的地方。因為所研制的基于FFT的頻譜分析方法將應(yīng)用于數(shù)字渦街流量計,在此,針對氣體40口徑頻率范圍為69~1 380 Hz,設(shè)定采樣頻率為3 717.472 199 Hz,數(shù)據(jù)點數(shù)為2 048,選擇不同的k值得到不同的頻率信號,由信號發(fā)生器產(chǎn)生幅值為60 mV的這些信號,送入兩線制渦街流量計信號處理系統(tǒng)低通濾波器前端,然后經(jīng)過預(yù)放大電路和低通濾波電路后,送入進行頻率估計。


          上一頁 1 2 3 4 下一頁

          評論


          技術(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); })();