<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è) > 嵌入式系統 > 設計應用 > G.723.1編譯碼算法的DSP實(shí)現

G.723.1編譯碼算法的DSP實(shí)現

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


其中,τξ是一個(gè)中間參數,d是r〔n〕和h〔n〕之間的相關(guān)值,Φ是沖激響應的協(xié)方差矩陣。C、ε的計算:

  對奇位置的碼矢量,先把偶脈沖移一個(gè)樣本位置,然后用上式計算。
3 
3.1 硬件設計
系統框圖如圖1所示。

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


  模擬的語(yǔ)音信號通過(guò)TP3057的A/D轉換變?yōu)閿底中盘査腿階-2181(采樣頻率8kHz)。TP3057是美國國家半導體公司生產(chǎn)的A律編/解碼器,它包含一個(gè)利用A/D和D/A轉換結構的A律脈沖編碼調制的編解碼器/濾波器單片電路和一個(gè)串行PCM接口。其中,編碼部分還包含一個(gè)可調輸入增益的放大器、一個(gè)有源RC前置濾波器、自動(dòng)調零電路、一個(gè)A率壓縮編碼器。解碼部分包括一個(gè)A律解碼器和截止頻率為3400Hz的低通濾波器。前者從A律壓擴的信號中重建模擬信號,后者校正譯碼器輸出的sinx/x響應并濾除高頻信號。
  A-2181是Analog Devices公司生產(chǎn)的一種性能優(yōu)越的單片機,適合于高速的數字信號處理。 A-2181除了三個(gè)運算單元、數據地址發(fā)生器和一個(gè)程序序列器,還含有兩個(gè)串行口、一個(gè)16位的內部IDMA口、一個(gè)8位的BDMA口、一個(gè)可編程定時(shí)器、外部中斷能力及片內程序和數據存儲器。片內集成了80k字節的存儲器,包括16k長(cháng)度為24bit的程序存儲器和16k長(cháng)度為16bit的數據存儲器。
  利用IDMA口的自動(dòng)接受發(fā)送功能,可以方便地ADSP-2181與主CPU間的數據交互。PC機通過(guò)IMDA口將程序裝載入ADSP-2181內部存儲器中。在A(yíng)DSP-2181全速執行時(shí),主機可以查詢(xún)其狀態(tài),讀取壓縮后的碼流,也可送入待解碼的數據。
3.2 軟件設計
  軟件設計包括三個(gè)模塊:接口模塊、編碼模塊和解碼模塊。
  接口模塊ADSP-2181與主CPU之間的數據交換。該模塊包括DSP的主控程序和數據傳輸兩部分。DSP的主控程序負責將采集到的語(yǔ)音數據分幀,送入編碼器,并將接受到的碼流分類(lèi)后送入解碼模塊。數據傳輸部分負責采集數據和與主CPU的數據交換。
  DSP程序根據ITU-TG.723.1標準定點(diǎn),分為初始化(G723—Init)、編碼(G723—Incode)、解碼(G723—Decode)三個(gè)模塊。
G723—Icode對包含240個(gè)采樣點(diǎn)的一幀信號進(jìn)行編碼,返回12個(gè)或10個(gè)字長(cháng)的二進(jìn)制數據。
輸入數據由串口得到,放在數組G723—Enc—Inp中,返回值放在數組G723—Enc—Out中,對于6.3kbps長(cháng)工為12個(gè)字,對于5.3kbps長(cháng)度為10個(gè)字。其格式按照G.723.1標準進(jìn)行封裝。
  G723—Decode根據接收到的12字或10字打包數據重建240個(gè)語(yǔ)音樣點(diǎn)。輸入數據放在G723 
  Dec—Inp中,輸出放在數組G723—Dec—Out中。
  主機程序采用VisualC++編寫(xiě),通過(guò)串口與DSP通信。
3.3 C語(yǔ)言的優(yōu)化
  開(kāi)發(fā)中采用AD公司的集成仿真軟件VisualDSP++,但是通常,C器能完成整個(gè)工作的70%,而30%的進(jìn)一步優(yōu)化必須通過(guò)手寫(xiě)匯編來(lái)實(shí)現。
3.3.1 循環(huán)展開(kāi)
  使用具有并行能力的DSP開(kāi)發(fā)軟件時(shí),一個(gè)重要的思想就是充分利用DSP的字長(cháng)和數目眾多的運算單元,盡量把循環(huán)體展開(kāi)。通過(guò)增加每次循環(huán)中執行的指令數來(lái)減少總的循環(huán)次數,可使得在同樣的時(shí)鐘周期內能運行更多的指令,提高了循環(huán)的效率。
3.3.2 提高寄存器的利用率
  DSP芯片內部的運算單元運行效率非常高,但如果寄存器和數據總線(xiàn)之間的數據交換頻繁,將使DSP的執行效率大打折扣。因為DSP在進(jìn)行內存操作時(shí),往往需要若干周期的延遲,如Load指令要有4個(gè)周期的延遲,Store指令需要2個(gè)周期的延遲。為了減少耗時(shí)的內存操作,可以在程序進(jìn)入循環(huán)體之前,將要頻繁使用的數據預先放入寄存器,然后反復調用,實(shí)踐證明這種方法可以提高一部分效率。
4 實(shí)驗結果
  所有代碼全部通過(guò)了ITU-T測試矢量的測試。
測試結果表明,對于高碼率(6.3kbps)所需計算量為24.8MIPS,對于低碼率(5.3kbps),所需計算量為21.3MIPS。該實(shí)現可以在IP電話(huà)、視頻會(huì )議中得到廣泛應用。


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

關(guān)鍵詞: 實(shí)現 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>