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

          新聞中心

          EEPW首頁 > 消費電子 > 設(shè)計應(yīng)用 > 基于ARM7TDMI內(nèi)核SEP3203處理器的語音信號的軟件實時編解碼的實現(xiàn)

          基于ARM7TDMI內(nèi)核SEP3203處理器的語音信號的軟件實時編解碼的實現(xiàn)

          作者: 時間:2010-09-02 來源:網(wǎng)絡(luò) 收藏

          本文基于東南大學國家專用集成電路系統(tǒng)工程技術(shù)研究中心自主研發(fā)的ARM7TDMI內(nèi)核的32位SoC——SEP3203處理器,采用G.721標準ADPCM算法,實現(xiàn)了信號的軟件實時編解碼,為處理應(yīng)用提供了一種有效的解決方案。

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

            1 G.721標準概述

            1937年,A.H.Reeves提出脈沖編碼調(diào)制(PCM),開創(chuàng)了數(shù)字化通信的歷程。CCITT在20世紀80年代初,開始研究低于64 Kb/s的非PCM編碼算法,先后制定通過了G.721、G.728、 G.729等編碼標準。其中,G.721協(xié)議作為ADPCM的典型算法,不僅具有與PCM近乎相同的語音質(zhì)量,而且有簡單的算法結(jié)構(gòu)和優(yōu)良的抗誤碼性能,在衛(wèi)星、海纜及便攜式數(shù)字語音設(shè)備等方面都有廣泛應(yīng)用。G.721算法的簡化框圖如圖1所示。

            編碼過程:

           ?、?計算Sl(k)與自適應(yīng)預(yù)測器輸出Se(k)的差值E(k)=Sl(k)-Se(k);

           ?、?通過自適應(yīng)量化模塊對E(k)進行量化,得到ADPCM碼字I(k);

           ?、?通過自適應(yīng)反量化模塊對I(k)計算得到量化差分預(yù)測信號Dq(k);

           ?、?根據(jù)重建信號Sr(k)=Se(k)+Dq(k)和Dq(k)更新預(yù)測濾波器系數(shù);

           ?、?利用新的系數(shù),計算得到Se(k+1),重復(fù)上述5個步驟,壓縮下一個語音采樣數(shù)據(jù)。

            解碼過程:

           ?、?通過自適應(yīng)反量化和自適應(yīng)預(yù)測得到Dq(k)和Se(k),得到語音重建信號Sr(k);

           ?、?對重建信號Sr(k)進行PCM格式轉(zhuǎn)換,得到PCM碼字Sp(k);

           ?、?采用與編碼器相同的方法更新預(yù)測濾波器系數(shù);

           ?、?為實現(xiàn)雙向通信,同步調(diào)整Sp(k);

            ⑤ 利用新的濾波器系數(shù),重復(fù)上述5個步驟,解碼下一個I(k)。


          圖1 G.721編碼器和解碼器簡化框圖

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 3 4 下一頁

          關(guān)鍵詞: 多媒體 嵌入式 語音

          評論


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