<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于DSP的G.723.1數字對講機基帶系統中的應用

基于DSP的G.723.1數字對講機基帶系統中的應用

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

本文引用地址:http://dyxdggzs.com/article/257486.htm

4 語(yǔ)音系統的軟件設計

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

4.1 初始化模塊

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

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

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

McBSP1的初始化函數如下:



4.2 語(yǔ)音編解碼模塊

該模塊主要是對G.723.1的代碼處理。系統若直接使用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有足夠的資源對后續的基帶數字化進(jìn)行實(shí)時(shí)處理。本設計主要從編譯器、C語(yǔ)言級、匯編級和算法級4個(gè)方面對G.723.1的定點(diǎn)C代碼進(jìn)行優(yōu)化。本文主要對算法級優(yōu)化進(jìn)行介紹。

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

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


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

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

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

5 調試結果分析

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

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


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

結語(yǔ)

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


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: DSP 數字對講機 系統應用

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>