新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > G.723.1編譯碼算法的DSP實現

        G.723.1編譯碼算法的DSP實現

        作者: 時間:2011-07-05 來源:網絡 收藏


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

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

        本文引用地址:http://www.104case.com/article/150508.htm


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


        上一頁 1 2 下一頁

        關鍵詞: 實現 DSP 算法 編譯

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 汾西县| 彝良县| 青海省| 泽库县| 石林| 始兴县| 平果县| 惠水县| 长春市| 惠州市| 枝江市| 巫山县| 怀来县| 张家港市| 湖口县| 许昌县| 济宁市| 清新县| 安仁县| 上栗县| 富锦市| 伊吾县| 成都市| 方正县| 岳普湖县| 怀柔区| 兴仁县| 文安县| 沐川县| 海淀区| 开阳县| 灵寿县| 固镇县| 宜兰县| 辉南县| 枣庄市| 雷州市| 罗平县| 咸阳市| 洛川县| 喜德县|