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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于DSP的G.723.1數(shù)字對講機(jī)基帶系統(tǒng)中的應(yīng)用

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

          作者: 時(shí)間:2012-05-24 來源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/257486.htm

          4 語音系統(tǒng)的軟件設(shè)計(jì)

          總體軟件流程如圖4所示。當(dāng)處于發(fā)送狀態(tài)時(shí),通過MCBSP1接收來自 AD7311L的數(shù)字化語音數(shù)據(jù),調(diào)用語音壓縮編碼程序,編完1幀輸出數(shù)據(jù),然后繼續(xù)進(jìn)行后續(xù)的相關(guān)基帶處理。當(dāng)處于接收狀態(tài)時(shí),接收來自后續(xù)基帶處理的數(shù)據(jù),調(diào)用語音解碼程序;解碼后的語音數(shù)據(jù),再以每幀的數(shù)據(jù)通過MCBSP1送入AD7311L,最后還原成原始語音。下面主要介紹初始化模塊及語音編解碼模塊。

          4.1 初始化模塊

          系統(tǒng)的初始化是系統(tǒng)運(yùn)行的基礎(chǔ)部分,它涉及系統(tǒng)的整體硬件設(shè)計(jì),如引腳的分配及連接、各芯片采用的工作模式等問題。本系統(tǒng)初始化模塊劃分為3個(gè)部分:初始化微處理器、初始化語音處理器、初始化外部寄存器。

          初始化函數(shù)名為DSP_Init.c,主要是對DSP的時(shí)鐘(clock),外部存儲器接口(EMIF)和多通道串行緩沖串口(McBSP)進(jìn)行初始化設(shè)置。

          AD7311L的初始化函數(shù)主要是對其的外部引腳配置,該模塊分為McBSP1的配置和AD7311L的硬件配置。

          McBSP1的初始化函數(shù)如下:



          4.2 語音編解碼模塊

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

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

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


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

          ②高速率的脈沖激勵(lì)編碼(MP-MLQ)函數(shù)Find_Best()中計(jì)算預(yù)測殘差信號
          時(shí)需要進(jìn)行卷積碼預(yù)算,對其進(jìn)行優(yōu)化。計(jì)算誤差信號的均方值
          時(shí),式中
          先通過加減運(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。由此可見優(yōu)化減少了大量的運(yùn)算。

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

          5 調(diào)試結(jié)果分析

          最終在TMS320C5509A上實(shí)時(shí)實(shí)現(xiàn)G.723.1標(biāo)準(zhǔn)。對于1幀語音在高速率6.3 kbps模式下,編解碼算法占用時(shí)間7.42 ms,算法復(fù)雜度為49.5 MIPS;低速率5.3 kbps模式下,編解碼占用時(shí)間5.34 ms,算法復(fù)雜度35.6 MIPS。

          其主要模塊代碼優(yōu)化前后占用的時(shí)間對比如表1所列。


          整個(gè)程序優(yōu)化后,G.723.1算法占用CPU的資源不到20%,即DSP還有足夠的資源對后續(xù)的基帶算法進(jìn)行處理。

          結(jié)語

          在工作頻率為200 MHz的C5509A自制硬件電路上,實(shí)現(xiàn)了對G.723.1標(biāo)準(zhǔn)的實(shí)時(shí)處理。將2塊板子串口相連,收端揚(yáng)聲器可以傳出發(fā)端傳來的實(shí)時(shí)、連續(xù)和清晰的語音。最后優(yōu)化驗(yàn)證以及整體基帶系統(tǒng)的調(diào)試結(jié)果證明,語音壓縮編碼方案選用正確,代碼優(yōu)化結(jié)果良好,硬件電路設(shè)計(jì)合理,在頻譜帶寬、DSP資源有限的條件下,圓滿地實(shí)現(xiàn)了G.723.1語音壓縮編碼在對講機(jī)基帶數(shù)字化系統(tǒng)設(shè)計(jì)中的應(yīng)用。從DSP的CPU負(fù)載情況看,G.723.1的代碼還可進(jìn)一步優(yōu)化。若想進(jìn)一步降低功耗,可采用全匯編實(shí)現(xiàn)。


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

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