精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于FPGA驗證所設計的ADPCM算法語音編解碼電路

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-07-02 08:08 ? 次閱讀

近年來,多媒體技術逐漸深入到人們的生活中。MP3播放器已經成為流行的便攜式音頻播放設備,由于MP3編碼算法非常復雜,目前,一部分MP3播放器的錄音功能主要基于ADPCM算法和DSP來實現。本文闡述了ADPCM語音編解碼VLSI芯片的設計方法以及利用FPGA硬件實現。

ADPCM算法及其編解碼器原理

ADPCM(Adaptive Differential Pulse Code Modulation,自適應差分脈沖編碼調制)綜合了APCM的自適應特性和DPCM系統的差分特性,是一種性能較好的波形編碼。它的核心思想是:利用自適應改變量化階的大小,即使用小的量化階去編碼小的差值,使用大的量化階去編碼大的差值;使用過去的樣本值估算下一個輸入樣本的預測值,使實際樣本值和預測值之間的差值總是最小。ADPCM記錄的量化值不是每個采樣點的幅值,而是該點的幅值與前一個采樣點幅值之差。

ADPCM是利用樣本與樣本之間的高度相關性和量化階自適應來壓縮數據的一種波形編碼技術。ADPCM標準是一個代碼轉換系統,它使用ADPCM轉換技術實現64kb/s A律或u律PCM(脈沖編碼調制)速率和32kb/s速率之間的相互轉換。ADPCM的簡化框圖如圖1所示。

ADPCM編解碼器的輸入信號是G.711 PCM代碼,采樣率是8kHz,每個代碼用8位表示,因此它的數據率為64kb/s。而ADPCM的輸出代碼是“自適應量化器”的輸出,該輸出是用4位表示的差分信號,它的采樣率仍然是8kHz,它的數據率為32kb/s,這樣就獲得了2∶1的數據壓縮。

電路的整體結構

基于ADPCM算法,可將語音編解碼VLSI芯片分成編碼、解碼、存儲、控制和時鐘幾個模塊。編碼模塊實現數據壓縮功能,將輸入的PCM信號轉換成ADPCM碼;存儲模塊在控制模塊的作用下,保存編碼所得的ADPCM碼;解碼模塊實現解壓縮功能,將ADPCM碼轉換得到PCM碼;控制模塊的作用是控制其他模塊的協調工作;時鐘模塊主要實現對外部晶振的原始時鐘信號進行分頻,以得到電路系統實際所需的時鐘信號。

電路整體結構如圖2所示,其中En_en、En_de分別是編碼和解碼的使能信號,RST則為復位信號。當WE為“1”時,RAM寫有效,而當 WE為“0”時,RAM讀有效,CS為“1”時,RAM可進行寫或者讀操作。

基于FPGA驗證所設計的ADPCM算法語音編解碼電路

(a) ADPCM編碼器

基于FPGA驗證所設計的ADPCM算法語音編解碼電路

(b)ADPCM解碼器

圖1 ADPCM簡化框圖

電路設計過程

本文采用Top-down方法進行電路設計。主要設計流程如下:首先基于Verilog HDL運用Active-HDL進行電路的RTL級描述和功能仿真;將經過功能仿真正確的程序在Quartus II開發系統中進行綜合和適配;接下來將得到的網表文件(.vo)和具有時延信息的反標文件(.sdo)調入ModelSim SE中,并加入所選器件相應的器件庫進行時序仿真;時序仿真通過后,將Quartus II得到的“*.sof”文件通過JTAG配置模式下載到FPGA中進行不可掉電的實際測試,也可將“*.pof”文件通過AS配置模式下載到FPGA中進行可掉電的實際測試。電路系統的頂層程序如下。

基于FPGA驗證所設計的ADPCM算法語音編解碼電路

圖2 電路整體結構圖

module ADPCM_TOP ( PCM_OUT,PCM_IN ,RECORD,PLAY,CLK, CLK8K);

parameter ADDR_WIDTH=14;

parameter PCM_WIDTH=8;

input [PCM_WIDTH-1:0] PCM_IN ;

wire [PCM_WIDTH-1:0] PCM_IN ;

output [PCM_WIDTH-1:0] PCM_OUT ;

wire [PCM_WIDTH-1:0] PCM_OUT ;

input CLK, RECORD,PLAY;

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

子模塊電路設計及仿真

整個語音編解碼VLSI芯片包括編碼電路、解碼電路、存儲電路、控制電路和時鐘電路幾個部分。下面分別具體描述關鍵電路的設計。

1 編碼電路

編碼電路實現數據壓縮功能,將輸入的PCM信號轉換成均勻的PCM碼,然后與預測信號進行差分,得到的差分信號經過“自適應量化器”進行壓縮編碼得到ADPCM碼,ADPCM碼被返回經過“逆自適應量化器”以及“自適應預測器”用來構建下一個預測信號。編碼電路仿真波形如圖3所示,其中PCM_IN為編碼器輸入信號(PCM碼),CODE為編碼后得到的輸出信號(ADPCM碼)。

基于FPGA驗證所設計的ADPCM算法語音編解碼電路

圖3 編碼電路仿真波形

2 解碼電路

解碼電路實現解壓縮功能,將ADPCM碼經過“逆自適應量化器”得到量化差分信號,量化差分信號與預測值相加得到重構信號,然后轉換成PCM碼。解碼電路仿真波形如圖4所示,其中CODE為解碼器輸入信號(ADPCM碼),PCM_OUT為解碼后得到的輸出信號(PCM碼)。與圖3中編解碼前的PCM_IN對比,可以看出解碼誤差很小。

3 其他模塊

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

整體電路仿真

在子模塊電路仿真正確后,對系統整體進行仿真,可以得到圖5所示波形。此次仿真輸入信號PCM_IN激勵采用Testbench產生。在編碼使能信號RECORD為“0”時,開始編碼,RECORD跳變到“1”時,編碼被屏蔽;此時解碼使能信號PLAY為“0”,開始解碼,PLAY跳變到“1”時,解碼被屏蔽。從圖中可以看出編碼前輸入信號PCM_IN的激勵和解碼后輸出PCM_OUT的響應基本符合。由于ADPCM算法本身是有損壓縮,可以確定本電路系統的設計是正確可靠的。

FPGA驗證及結論

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

FPGA驗證表明:電路的最大時鐘延遲為26.903ns,最高工作頻率可達37.17MHz,可以很好地再現被錄入的語音,具有較高的保真度和很好的實時性。在電子地圖、車載信息終端語音播報、治安報警系統,特別是便攜式語音記錄裝置等方面具有較高的應用價值。同時,也指明了數字語音壓縮處理高效設計方法的方向。

基于FPGA驗證所設計的ADPCM算法語音編解碼電路

圖4 編碼電路仿真波形

基于FPGA驗證所設計的ADPCM算法語音編解碼電路

圖5 系統仿真波形


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1626

    文章

    21671

    瀏覽量

    601883
  • 解碼器
    +關注

    關注

    9

    文章

    1131

    瀏覽量

    40679
  • 存儲
    +關注

    關注

    13

    文章

    4265

    瀏覽量

    85675
收藏 人收藏

    評論

    相關推薦

    語音和音頻統一編解碼算法研究

    最近在研究MPEG-D標準的語音和音頻統一編解碼算法(USAC),USAC是2011年才開始提出來的,感覺挺有研究意義的,大家有興趣可以互相交流下
    發表于 07-20 15:38

    振南對ADPCM音頻編解碼原理的一些通俗闡述【附振南的ADPCM解碼原代碼】

    寫ZN-X開發板整板測試程序的后期,振南開始轉向專注于ADPCM音頻的解碼算法。對于音視頻的編解碼,振南一直是很感興趣的。VS1003錄音向外輸出的數據是經過
    發表于 06-17 14:35

    如何去設計ADPCM語音編解碼電路

    ADPCM算法及其編解碼器原理是什么?如何去設計ADPCM語音編解碼
    發表于 05-06 06:37

    如何采用FPGA實現汽車智能語音報警系統設計?

    本文采用FPGA實現ADPCM(Adaptive Differential Pulse CodeModulation,自適應差分脈沖編碼調制)編解碼器設計,對語音信息進行壓縮存儲。從而
    發表于 05-17 06:26

    基于DSP Builder的ADPCM算法實現

    本文對ADPCM 編解碼原理進行了分析,并針對語音記錄系統的特點,對標準ADPCM 編解碼系統進行了簡化。提出了一種適合
    發表于 09-16 10:43 ?24次下載

    G.726語音編解碼器在SoPC中的實現

    在對G.726 語音編解碼標準分析的基礎上給出了基于FPGA 的DSP 設計流程,利用MATLAB/Simulink、DSP Builder 和SOPC Builder 工具設計了G.726
    發表于 11-30 14:59 ?12次下載

    G.726語音編解碼器在SoPC中的實現

    在對G.726語音編解碼標準分析的基礎上給出了基于FPGA的DSP設計流程,利用MATLAB/Simulink、DSP Builder和SOPC Builder工具設計了G.726語音
    發表于 07-16 15:06 ?18次下載

    基于ADPCM算法語音報警系統

    介紹了一種采用FPGA硬件實現ADPCM算法的方法,并基于此算法對預先采集的各種報警語音進行壓縮編碼并存儲。在遇到危險時,由單片機做出危險判
    發表于 12-11 15:59 ?28次下載
    基于<b class='flag-5'>ADPCM</b><b class='flag-5'>算法</b>的<b class='flag-5'>語音</b>報警系統

    基于AMR語音編解碼算法的VoIP系統

    本文提出了一種基于AMR語音編解碼算法的新VoIP系統,該系統可以根據網絡信道質量的好壞來自適應地選擇一種最佳的傳輸速率,從而使得合成后的語音質量有了更加良好的QoS保障。
    發表于 06-24 11:05 ?1593次閱讀
    基于AMR<b class='flag-5'>語音</b><b class='flag-5'>編解碼</b><b class='flag-5'>算法</b>的VoIP系統

    ADPCM語音編解碼VLSI芯片的設計方法

      ADPCM算法及其編解碼器原理   ADPCM(Adaptive Differential Pulse Code Modulation,自適應差分脈沖編碼調制)綜合了APCM的自
    發表于 09-03 16:58 ?2493次閱讀
    <b class='flag-5'>ADPCM</b><b class='flag-5'>語音</b><b class='flag-5'>編解碼</b>VLSI芯片的設計方法

    基于ADPCM語音壓縮算法研究

    摘 要 ADPCM算法目前已成為很受用的語音壓縮算法之一。給出PCM概念。討論DPCM,DM,ADM與ADPCM的 壓縮
    發表于 04-08 11:20 ?84次下載

    RS編解碼FPGA實現-說明

    RS編解碼FPGA實現-說明RS編解碼FPGA實現-說明。
    發表于 05-04 15:59 ?21次下載

    多制式語音編解碼算法的DSP設計

    的可靠性和效率。因此,研究語音處理技術并將其用基于DSP芯片硬件系統實現有著非常重要的現實意義和廣闊的市場前景。本文介紹了語音編解碼硬件平臺的設計思路和編解碼
    發表于 11-06 14:14 ?3次下載

    基于STM8的ADPCM音頻解碼輸出DAC語音的程序源碼

    STM8上實現ADPCM音頻解碼,通過DAC輸出語音的程序源碼。
    發表于 01-24 15:06 ?37次下載

    如何使用L9320實現ADPCM語音編解碼

    對L9320編解碼器的工作原理和使用方法 進行了分析,給出了L9320在便攜式語音系統中的典型應用電路.
    發表于 12-20 17:27 ?24次下載
    如何使用L9320實現<b class='flag-5'>ADPCM</b><b class='flag-5'>語音</b><b class='flag-5'>編解碼</b>