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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > G.723.1編譯碼算法的DSP實(shí)現(xiàn)

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

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


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

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

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


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


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

          關(guān)鍵詞: 實(shí)現(xiàn) DSP 算法 編譯

          評(píng)論


          相關(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); })();