• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于DSP的數字對講機基帶系統中的應用

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

    作者: 時間:2012-06-16 來源:網絡 收藏
    4.1初始化模塊

    本文引用地址:http://www.czjhyjcfj.com/article/148898.htm

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

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

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

      McBSP1的初始化函數如下:

      

      

      4.2語音編解碼模塊

      該模塊主要是對G.723.1的代碼處理。系統若直接使用ITU提供的定點C源代碼,C5509A完成1幀的編碼需要53400912個周期,即使C5509A工作在最高頻率200MHz,也需要267ms。所以代碼必須經過優化,且優化后的代碼占用DSP的資源不能過高,這樣才能保證DSP有足夠的資源對后續的化進行實時處理。本設計主要從編譯器、C語言級、匯編級和算法級4個方面對G.723.1的定點C代碼進行優化。本文主要對算法級優化進行介紹。

      在對G.723.1算法進行仿真的過程中發現,基音估計、自適應碼本搜索、固定碼本搜索和代數碼本搜索等模塊占語音編解碼的總時間超過70%,因此優化措施應著重對這幾個模塊的算法進行優化。

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

      

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

      ②高速率的脈沖激勵編碼(MP-MLQ)函數Find_Best()中計算預測殘差信號

      時需要進行卷積碼預算,對其進行優化。計算誤差信號的均方值

      時,式中

      先通過加減運算完成,最后做1次增益G的乘法運算即可得到r’[n],這樣計算1次殘差矢量最多需要60×6=360次加減運算,而優化前的預算量為4×8×(1+2L+58+59)=56640。由此可見優化減少了大量的運算。

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

      5調試結果分析

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

      其主要模塊代碼優化前后占用的時間對比如表1所列。

      

      整個程序優化后,G.723.1算法占用CPU的資源不到20%,即DSP還有足夠的資源對后續的算法進行處理。

      結語

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


    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 顺义区| 秀山| 新乐市| 西林县| 曲周县| 兖州市| 临海市| 平阳县| 明光市| 凌云县| 梧州市| 南召县| 上蔡县| 册亨县| 郎溪县| 涞水县| 荣昌县| 桐梓县| 如皋市| 通道| 伊吾县| 宜丰县| 瑞昌市| 安徽省| 蒙自县| 宜阳县| 米脂县| 仪陇县| 拉孜县| 洛浦县| 蕉岭县| 镶黄旗| 招远市| 青龙| 宁德市| 榆林市| 特克斯县| 句容市| 武胜县| 平江县| 合山市|