新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 在MSP430F1611上 實現周期圖譜分析及校正

        在MSP430F1611上 實現周期圖譜分析及校正

        作者: 時間:2009-06-30 來源:網絡 收藏

        摘要 基于FFT的周期圖譜分析方法可以有效地從含有噪聲的信號中提取有用信息;但是,由于低功耗單片機的速度和內存有限,所以無法實時地完成FFT運算。為此,我們采用匯編語言編制FFT程序。采用定點運算來減少運算量和存儲量;采用先判斷再移位的方式,既防止了數據溢出,又保證了足夠的計算精度,從而在430上實現了2048點FFT。其精度和實時性滿足儀表的要求,并成功應用于低功耗、兩線制數字渦街流量計。
        關鍵詞 功率譜估計 定點計算 430

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


        引 言
        基于FFT的頻譜分析方法可以從含有噪聲的信號中提取有用的信息,在儀器儀表的數據處理中具有重要的應用價值。為了保證頻譜分析的精度,往往進行多點的FFT運算,例如,1024點、2048點等,這樣運算量大、所占內存也大,只有采用DSP(數字信號處理器)才能實現實時的處理。目前,在工業現場普遍使用的兩線制、低功耗自動化儀表,由于儀表本身消耗電流必須控制在4 mA之內,所以無法采用DSP等運算能力強的芯片,只能采用低功耗單片機;而低功耗單片機的運算速度和內存容量都很有限,所以,至今未見用其進行多點數FFT運算的報道。為了能夠用低功耗單片機實時做FFT運算,以提高自動化儀表信息處理的能力,我們用匯編語言編制FFT程序,在程序中用定點數運算(以下簡稱定點FFT),采取措施防止數據溢出,保證計算精度,合理分配內存。測試結果表明,我們編制的程序在單片機上,完成一次2048點的基于FFT的頻譜分析和校正只需要500 ms,精度也達到要求,可以用于以低功耗單片機為核心的儀表中,實時完成信號處理任務。


        1 定點運算
        1.1 數據表示
        在MSP430中使用C語言實現FFT運算,其乘法和加法運算都是默認使用浮點實現的。于MSP430屬于定點單片機,因此浮點運算必須由大量的定點指令模擬,這將耗費大量的時間。因此我們針對MSP430的特點,使用匯編語言編制FFT程序,在程序中用定點數運算,并將數據統一使用16位定點數表示。16位定點數中最高位(左邊的第1位)作為符號位,剩下的15位用于存放數值。數據格式如圖1所示.

        1.2 數據定標
        定點單片機參與數值運算的數都是16位的整型數,但是運算過程中的數不一定都是整數。那么,定點計算過程中如何處理小數呢?這其中的關鍵就是由程序員來確定一個數的小數點處于16位中的哪一位。這就是數的定標。
        通過設定小數點在16位數中的不同位置,就可以表示不同大小和不同精度的小數了。數的定標有Q表示法和S表示法兩種。表1列出了一個16位數的16種Q表示、S表示及它們所能表示的十進制數值范圍。
        從表1中可以看出,同樣一個16位數,若小數點設定的位置不同,它所表示的數也就不同。例如,十六進制數2000H=8192,用Q0表示;十六進制數2000H=O.25,用Q15表示;但對于定點運算來說,處理方法是完全相同的。下面簡要介紹如何使用定點數乘法運算模擬浮點數乘法。

        熱式質量流量計相關文章:熱式質量流量計原理
        流量計相關文章:流量計原理

        上一頁 1 2 3 4 下一頁

        關鍵詞: F1611 1611 430F MSP

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 兴仁县| 临桂县| 安国市| 威远县| 洛阳市| 辉县市| 鹿泉市| 桑植县| 峨山| 新沂市| 景德镇市| 常德市| 蒙山县| 新营市| 吉林市| 黑山县| 徐汇区| 稷山县| 凤山市| 宝鸡市| 雅安市| 荣成市| 太湖县| 卢湾区| 宽城| 商河县| 五寨县| 麻栗坡县| 偃师市| 兴和县| 陆丰市| 新巴尔虎左旗| 吕梁市| 云浮市| 怀安县| 郑州市| 汶川县| 观塘区| 正蓝旗| 晋中市| 定远县|