新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 采用定點DSP處理芯片ADSP2181的語音信號的識別

        采用定點DSP處理芯片ADSP2181的語音信號的識別

        作者: 時間:2012-06-26 來源:網絡 收藏

         3.2 數據精度的

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

          用16b的實現算法時,雖然程序的運行速度提高了,但是數據精度比較低。這可能由于中間過程的累計誤差而引起運算結果的不正確。為了提高數據的運算精度,在程序中了以下的方法:

          (1)擴展精度

          在精度要求比較高的地方,將計算的中間變量32b,甚至48b來表示。這樣,在指令條數增加不多的情況下卻使運算精度大大提高了。

          (2)偽浮點法來表示浮點數

          偽浮點法即用尾數+指數的方法來表示浮點數。這時,數據塊的尾數可以采用Q1.15數據格式,數據塊的指數相同。這種表示數據的方法有足夠大的數據范圍,可以完全滿足數據精度的要求,但是需要自己編寫一套指數和尾數運算庫,會額外增加程序的指令數和運算量,不利于實時實現。

          以上兩種方法,都可以提高運算精度,但在實際操作時,要根據系統的要求和算法的復雜度,來權衡考慮。

          3.3 變量的維護

          在高級語言中,有全局變量與局部變量存儲的區別,但在程序中,所有聲明的變量在鏈接時都會分給數據空間。所以如果按照高級語言那樣定義局部變量,就會浪費大量的存儲空間,這對數據空間較為緊張的DSP來說,顯然是不合理的。為了節省存儲空間,在編寫DSP程序時,最好維護好一張變量表。每進入一個DSP子模塊時,不要急于分配新的局部變量,應優先使用已分配但不用的變量。只有在不夠時才分配新的局部變量。

          3.4 循環嵌套的

          算法的實現,有許多是在循環中實現的。對于循環的處理,需要注意以下幾個問題:

          (1)ADSP2100系列DSP中,循環嵌套最多不能超過4重,否則就會發生堆棧溢出,導致程序不能正確執行。但在的DSP程序中,包括中斷在內的嵌套程序往往超過4重。這時不能使用DSP提供的do…unTIl…指令,只能自己設計出一些循環變量,自己維護這些變量。由于這時沒有使用DSP的循環堆棧,所以也不會導致堆棧溢出。另外,如果采用jump指令從循環指令中跳出,則必須維護好PC,LOOP和CNTR三個堆棧的指針。

          (2)盡量減少循環體內的指令數。在多重循環的內部,減少指令數有利于降低程序的執行次數。這樣有利于減少程序的執行時間、提高操作的實時性。

          3.5 采用模塊化的程序設計方法

          在語音識別算法的實現中,為了便于程序的設計和調試,采用了模塊化的程序設計方法。以語音識別的基本過程為依據進行模塊劃分,每個模塊再劃分為若干個子模塊,然后以模塊為單元進行編程和調試。在編寫程序之前,首先用高級語言對每個模塊進行算法仿真,在此基礎上再進行匯編程序的編寫。在調試時,可以采用高級語言與匯編語言對比的調試方式,這樣可以通過跟蹤高級語言與匯編語言的中間狀態,來驗證匯編語言的正確性,并及時的發現和修改錯誤,縮短編程周期。另外,在程序的編寫過程中,應在關鍵的部分加上必要的注釋與說明,以增強程序的可讀性。

          在總調時,需要在各模塊中設置好相應的人口參數與出口參數,維護好堆棧指針與中間變量等。

          3.6 利用C語言與匯編語言的混合編程

          現在,大多數的DSP都支持匯編語言與C或C++語言的混合編程,也不例外。用C語言開發DSP程序具有縮短開發周期、降低程序復雜度的優點,但是,程序的執行效率卻不高,會增加額外的機器周期,不利于程序的實時實現。為此,在用C語言編寫語音識別算法時,我們采用了化處理技術。是16位定點處理器,定點化處理應注意以下幾個問題:

          (1)支持小數和整數兩種運算方式,在計算時應選擇小數方式,使計算結果的絕對值都小于1;

          (2)用雙字定點運算庫代替C語言的浮點庫,提高運算精度;

          (3)注意在每次乘加運算之后進行飽和操作,防止結果的上溢和下溢;

          (4)循環處理后的一組數據可能有不同的指數,要進行歸一化處理,以便后續定點操作對指數和尾數部分分別處理。

          4 結 語

          用定點DSP構成的語音識別系統有著廣泛的應用前景,在編寫語音識別算法時,對其進行定點化處理以及一些原則和方法對其他類似的算法也有著現實指導意義。在實際應用中,應注意根據DSP芯片的特點,對算法進行優化,使得DSP芯片的性能得到充分的發揮。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 菏泽市| 通海县| 堆龙德庆县| 青冈县| 清丰县| 丰城市| 平利县| 霍林郭勒市| 大渡口区| 临夏市| 和林格尔县| 新郑市| 通许县| 上高县| 永春县| 洛宁县| 当涂县| 信阳市| 奉化市| 云霄县| 法库县| 永嘉县| 三河市| 积石山| 金塔县| 武鸣县| 闵行区| 房产| 天峨县| 运城市| 平舆县| 库尔勒市| 六盘水市| 宿迁市| 桂林市| 剑河县| 积石山| 喀喇沁旗| 太和县| 南岸区| 大足县|