新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 在MSP430F1611上實現周期圖譜分析及校正

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

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

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 赤城县| 华坪县| 长岭县| 阿瓦提县| 沽源县| 栾城县| 永修县| 九龙坡区| 城市| 开原市| 凌海市| 亳州市| 遂川县| 闽侯县| 肥西县| 九江市| 海伦市| 慈溪市| 读书| 山阳县| 罗定市| 池州市| 伊春市| 宝坻区| 奇台县| 大渡口区| 漳浦县| 佛坪县| 合肥市| 越西县| 阳城县| 桐柏县| 印江| 壶关县| 临沭县| 连州市| 镇坪县| 东乡族自治县| 正宁县| 三原县| 镇原县|