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

          關(guān) 閉

          新聞中心

          EEPW首頁(yè) > 安全與國(guó)防 > 設(shè)計(jì)應(yīng)用 > G.723.1在DSP數(shù)字對(duì)講機(jī)基帶系統(tǒng)中的應(yīng)用

          G.723.1在DSP數(shù)字對(duì)講機(jī)基帶系統(tǒng)中的應(yīng)用

          作者: 時(shí)間:2009-09-22 來(lái)源:網(wǎng)絡(luò) 收藏

          4.2 編解碼

            該主要是對(duì)的代碼處理。系統(tǒng)若直接使用ITU提供的定點(diǎn)C源代碼, C5509A完成1幀的編碼需要53 400 912個(gè)周期,即使C5509A工作在最高頻率200 MHz,也需要267 ms。所以代碼必須經(jīng)過(guò)優(yōu)化,且優(yōu)化后的代碼占用DSP的資源不能過(guò)高,這樣才能保證DSP有足夠的資源對(duì)后續(xù)的基帶數(shù)字化進(jìn)行實(shí)時(shí)處理。本設(shè)計(jì)主要從編譯器、C語(yǔ)言級(jí)、匯編級(jí)和算法級(jí)4個(gè)方面對(duì)的定點(diǎn)C代碼進(jìn)行優(yōu)化。本文主要對(duì)算法級(jí)優(yōu)化進(jìn)行介紹。

            在對(duì)算法進(jìn)行仿真的過(guò)程中發(fā)現(xiàn),基音估計(jì)、自適應(yīng)碼本搜索、固定碼本搜索和代數(shù)碼本搜索等編解碼的總時(shí)間超過(guò)70%,因此優(yōu)化措施應(yīng)著重對(duì)這幾個(gè)模塊的算法進(jìn)行優(yōu)化。

            ①開(kāi)環(huán)基音估測(cè)函數(shù)Estim_Pitch()中,計(jì)算圖1f[n]中的互相關(guān)值COL(j):


            尋找使得COL(j)max,開(kāi)環(huán)基音周期j的搜索范圍18~142。在基音周期較短時(shí),基音頻率較大;對(duì)信號(hào)編碼質(zhì)量影響較大,而基音周期較長(zhǎng)時(shí),基音頻率較小,對(duì)語(yǔ)音信號(hào)編碼質(zhì)量較小。所以18~58之間基音周期采用逐點(diǎn)計(jì)算搜索,而59~142之間以采用隔點(diǎn)計(jì)算,可以減少運(yùn)算量。

           ?、诟咚俾实拿}沖激勵(lì)編碼(MP-MLQ)函數(shù)Find_Best()中計(jì)算預(yù)測(cè)殘差信號(hào)     時(shí)需要進(jìn)行卷積碼預(yù)算,對(duì)其進(jìn)行優(yōu)化。計(jì)算誤差信號(hào)的均方值     時(shí),式中   先通過(guò)加減運(yùn)算完成,最后做1次增益G的乘法運(yùn)算即可得到r’[n],這樣計(jì)算1次殘差矢量最多需要60×6=360次加減運(yùn)算,而優(yōu)化前的預(yù)算量為4×8×(1+2L+58+59)=56 640。由此可見(jiàn)優(yōu)化減少了大量的運(yùn)算。

            ③基本運(yùn)算庫(kù)函數(shù)優(yōu)化。G.723.1代碼的基本運(yùn)算庫(kù)函數(shù)Basop.c中,存在大量數(shù)字信號(hào)處理功能的函數(shù),而且占據(jù)絕大部分運(yùn)算,如L_mac()、L_mull()、L_add()、sature()等,所以還需在這幾個(gè)函數(shù)上進(jìn)行一些優(yōu)化工作。



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();