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

    EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 基于ADPCM語(yǔ)音編解碼VLSI芯片的設(shè)計(jì)方法

    基于ADPCM語(yǔ)音編解碼VLSI芯片的設(shè)計(jì)方法

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

    input CLK, RECORD,PLAY;

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

      output CLK8K;

      wire[3:0] code_in,code_out;

      wire en_encoder,en_decoder,re_rst,pl_rst,WE,CS,CLK_8K;

      wire [ADDR_WIDTH-1:0] ADDRESS;

      assign CLK8K =CLK_8K;

      CLOCK_GE U0 (CLK,RECORD, CLK_8K);

      encoder_new U1 ( PCM_IN,re_rst ,en_encoder, CLK_8K ,code_in );

      RAM U2 (ADDRESS,WE,CS,CLK_8K,code_in,code_out);

      decoder_new U3 (pl_rst, CLK_8K ,code_out ,en_decoder,PCM_OUT);

      controllogic U4(CS,re_rst,pl_rst,en_encoder,en_decoder,WE,ADDRESS,RECORD,PLAY,CLK_8K);

      endmodule

      子模塊電路及仿真

      整個(gè)包括編碼電路、電路、存儲(chǔ)電路、控制電路和時(shí)鐘電路幾個(gè)部分。下面分別具體描述關(guān)鍵電路的

      1 編碼電路

      編碼電路實(shí)現(xiàn)數(shù)據(jù)壓縮功能,將輸入的PCM信號(hào)轉(zhuǎn)換成均勻的PCM碼,然后與預(yù)測(cè)信號(hào)進(jìn)行差分,得到的差分信號(hào)經(jīng)過(guò)“自適應(yīng)量化器”進(jìn)行壓縮編碼得到碼,碼被返回經(jīng)過(guò)“逆自適應(yīng)量化器”以及“自適應(yīng)預(yù)測(cè)器”用來(lái)構(gòu)建下一個(gè)預(yù)測(cè)信號(hào)。編碼電路仿真波形如圖3所示,其中PCM_IN為編碼器輸入信號(hào)(PCM碼),CODE為編碼后得到的輸出信號(hào)(碼)。

      

      圖3 編碼電路仿真波形

      2 電路

      解碼電路實(shí)現(xiàn)解壓縮功能,將ADPCM碼經(jīng)過(guò)“逆自適應(yīng)量化器”得到量化差分信號(hào),量化差分信號(hào)與預(yù)測(cè)值相加得到重構(gòu)信號(hào),然后轉(zhuǎn)換成PCM碼。解碼電路仿真波形如圖4所示,其中CODE為解碼器輸入信號(hào)(ADPCM碼),PCM_OUT為解碼后得到的輸出信號(hào)(PCM碼)。與圖3中編解碼前的PCM_IN對(duì)比,可以看出解碼誤差很小。

      3 其他模塊

      控制電路控制其他電路模塊的協(xié)調(diào)工作,在編碼的同時(shí)使能存儲(chǔ)器寫(xiě)入信號(hào),使編碼電路輸出數(shù)據(jù)可以及時(shí)存入存儲(chǔ)器;在解碼的同時(shí)使能存儲(chǔ)器讀出信號(hào),編碼和解碼不能同時(shí)進(jìn)行。時(shí)鐘電路主要實(shí)現(xiàn)對(duì)外部晶振的原始時(shí)鐘信號(hào)進(jìn)行分頻,以得到電路系統(tǒng)實(shí)際所需的時(shí)鐘信號(hào)。本系統(tǒng)采用的外部晶振固有頻率為14.318MHz,經(jīng)過(guò)分頻后可以獲得8kHz時(shí)鐘。存儲(chǔ)電路在控制電路的作用下,保存編碼所得的ADPCM碼(32kb/s),由于只需驗(yàn)證電路的功能,所以只設(shè)定了2s的錄音存儲(chǔ)空間,即64kb存儲(chǔ)容量。

      整體電路仿真

      [table][/table] 在子模塊電路仿真正確后,對(duì)系統(tǒng)整體進(jìn)行仿真,可以得到圖5所示波形。此次仿真輸入信號(hào)PCM_IN激勵(lì)采用Testbench產(chǎn)生。在編碼使能信號(hào)RECORD為“0”時(shí),開(kāi)始編碼,RECORD跳變到“1”時(shí),編碼被屏蔽;此時(shí)解碼使能信號(hào)PLAY為“0”,開(kāi)始解碼,PLAY跳變到“1”時(shí),解碼被屏蔽。從圖中可以看出編碼前輸入信號(hào)PCM_IN的激勵(lì)和解碼后輸出PCM_OUT的響應(yīng)基本符合。由于ADPCM算法本身是有損壓縮,可以確定本電路系統(tǒng)的是正確可靠的。

      FPGA驗(yàn)證及結(jié)論

      本文FPGA驗(yàn)證所設(shè)計(jì)的電路。這里選用Altera公司Cyclone系列的EP1C6Q240C8器件,其內(nèi)部有90kb的存儲(chǔ)容量,6k個(gè)邏輯單元,2 個(gè)PLL。由于電路采用8kHz采樣頻率,編碼后的ADPCM碼為4位,設(shè)定錄音時(shí)間為2s,所以需要64kb存儲(chǔ)容量;同時(shí),設(shè)計(jì)需要大約400個(gè)左右的邏輯單元。所以選用此低成本的FPGA即可滿(mǎn)足設(shè)計(jì)要求,而且基本上充分利用了內(nèi)部資源。此的引腳有240 個(gè),能滿(mǎn)足外面的引腳連接,而且價(jià)格也易于接受。

      FPGA驗(yàn)證表明:電路的最大時(shí)鐘延遲為26.903ns,最高工作頻率可達(dá)37.17MHz,可以很好地再現(xiàn)被錄入的,具有較高的保真度和很好的實(shí)時(shí)性。在電子地圖、車(chē)載信息終端播報(bào)、治安報(bào)警系統(tǒng),特別是便攜式語(yǔ)音記錄裝置等方面具有較高的應(yīng)用價(jià)值。同時(shí),也指明了數(shù)字語(yǔ)音壓縮處理高效設(shè)計(jì)的方向。

      

      圖4 編碼電路仿真波形

      

      圖5 系統(tǒng)仿真波形


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

    評(píng)論


    相關(guān)推薦

    技術(shù)專(zhuān)區(qū)

    關(guān)閉
    主站蜘蛛池模板: 阿克| 连山| 栖霞市| 溧阳市| 东莞市| 蒲江县| 松滋市| 巨野县| 瓦房店市| 从江县| 肃北| 体育| 宾川县| 琼海市| 清新县| 洪江市| 绍兴县| 濮阳县| 东港市| 万山特区| 延安市| 抚宁县| 鄱阳县| 龙门县| 东乌珠穆沁旗| 手机| 金阳县| 库尔勒市| 蓬溪县| 上思县| 昆明市| 凯里市| 红安县| 手游| 普定县| 青冈县| 永靖县| 曲周县| 宁阳县| 遂溪县| 德州市|