中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 采用定點(diǎn)DSP處理芯片ADSP2181的語音信號的識別

        采用定點(diǎn)DSP處理芯片ADSP2181的語音信號的識別

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

         3.2 數(shù)據(jù)精度的

        本文引用地址:http://www.antipu.com.cn/article/148843.htm

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

          (1)擴(kuò)展精度

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

          (2)偽浮點(diǎn)法來表示浮點(diǎn)數(shù)

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

          以上兩種方法,都可以提高運(yùn)算精度,但在實(shí)際操作時,要根據(jù)系統(tǒng)的要求和算法的復(fù)雜度,來權(quán)衡考慮。

          3.3 變量的維護(hù)

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

          3.4 循環(huán)嵌套的

          算法的實(shí)現(xiàn),有許多是在循環(huán)中實(shí)現(xiàn)的。對于循環(huán)的處理,需要注意以下幾個問題:

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

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

          3.5 采用模塊化的程序設(shè)計(jì)方法

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

          在總調(diào)時,需要在各模塊中設(shè)置好相應(yīng)的人口參數(shù)與出口參數(shù),維護(hù)好堆棧指針與中間變量等。

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

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

          (1)支持小數(shù)和整數(shù)兩種運(yùn)算方式,在計(jì)算時應(yīng)選擇小數(shù)方式,使計(jì)算結(jié)果的絕對值都小于1;

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

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

          (4)循環(huán)處理后的一組數(shù)據(jù)可能有不同的指數(shù),要進(jìn)行歸一化處理,以便后續(xù)定點(diǎn)操作對指數(shù)和尾數(shù)部分分別處理。

          4 結(jié) 語

          用定點(diǎn)DSP構(gòu)成的語音識別系統(tǒng)有著廣泛的應(yīng)用前景,在編寫語音識別算法時,對其進(jìn)行定點(diǎn)化處理以及一些原則和方法對其他類似的算法也有著現(xiàn)實(shí)指導(dǎo)意義。在實(shí)際應(yīng)用中,應(yīng)注意根據(jù)DSP芯片的特點(diǎn),對算法進(jìn)行優(yōu)化,使得DSP芯片的性能得到充分的發(fā)揮。


        上一頁 1 2 下一頁

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉