ADPCM語音編解碼電路設(shè)計(jì)及FPGA實(shí)現(xiàn)_第1頁
ADPCM語音編解碼電路設(shè)計(jì)及FPGA實(shí)現(xiàn)_第2頁
ADPCM語音編解碼電路設(shè)計(jì)及FPGA實(shí)現(xiàn)_第3頁
ADPCM語音編解碼電路設(shè)計(jì)及FPGA實(shí)現(xiàn)_第4頁
ADPCM語音編解碼電路設(shè)計(jì)及FPGA實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

ADPCM語音編解碼電路設(shè)計(jì)及FPGA實(shí)現(xiàn)

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

ADPCM算法及其編解碼器原理

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

ADPCM是利用樣本與樣本之間的高度相關(guān)性和量化階自適應(yīng)來壓縮數(shù)據(jù)的一種波形編碼技術(shù)。ADPCM標(biāo)準(zhǔn)是一個代碼轉(zhuǎn)換系統(tǒng),它使用ADPCM轉(zhuǎn)換技術(shù)實(shí)現(xiàn)64Kb/sA律或u律PCM(脈沖編碼調(diào)制)速率和32Kb/s速率之間的相互轉(zhuǎn)換。ADPCM的簡化框圖如圖1所示。

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

540)=540"vspace=5>

電路的整體結(jié)構(gòu)

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

電路整體結(jié)構(gòu)如圖2所示,其中En_en、En_de分別是編碼和解碼的使能信號,RST則為復(fù)位信號。當(dāng)WE為“1”時,RAM寫有效,而當(dāng)WE為“0”時,RAM讀有效,CS為“1”時,RAM可進(jìn)行寫或者讀操作。

540)=540"vspace=5>

電路設(shè)計(jì)過程

本文采用Top-down方法進(jìn)行電路設(shè)計(jì)。主要設(shè)計(jì)流程如下:首先基于VerilogHDL運(yùn)用Active-HDL進(jìn)行電路的RTL級描述和功能仿真,將經(jīng)過功能仿真正確的程序在QuartusⅡ開發(fā)系統(tǒng)中進(jìn)行綜合和適配,接下來將得到的網(wǎng)表文件(.vo)和具有時延信息的反標(biāo)文件(.sdo)調(diào)入ModelSimSE中,并加入所選器件相應(yīng)的器件庫進(jìn)行時序仿真,時序仿真通過后,將QuartusII得到的“*.sof”文件通過JTAG配置模式下載到FPGA中進(jìn)行不可掉電的實(shí)際測試,也可將“*.pof”文件通過AS配置模式下載到FPGA中進(jìn)行可掉電的實(shí)際測試。電路系統(tǒng)的頂層程序如下。

moduleADPCM_TOP(PCM_OUT,PCM_IN,RECORD,PLAY,CLK,CLK8K):

parameterADDR_WIDTH=14;

parameterPCM_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;

inputCLK,RECORD,PLAY;

outputCLK8K;

wire[3:0]code_in,code_out;

wireen_encoder,en_decoder,re_rst,pl_rst,WE,CS,CLK_8K;

wire[ADDR_WIDTH-1:0]ADDRESS;

assignCLK8K=CLK_8K,

CLOCK—GEU0(ClK,RECORD,CLK_8K);

encoder_newU1(PCM_INre_rst,en_encoder,CLK_8Kcode_in);

RAMU2(ADDRESS,WECS,CLK_8K,code_in,code_out);

decoder_newU3(pl_rstCLK_8K,code_out,en_decoderPCM_OUT);

controllogicU4(CS,re_rstpl_rst,en_encoder,en_decoder,WEADDRESS,RECORD,PLAYCLK_8K);

endmodule

予模塊電路設(shè)計(jì)及仿真

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

1編碼電路

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

540)=540"vspace=5>

2解碼電路

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

3其他模塊

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

整體電路仿真

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

540)=540"vspace=5>

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

本文基于FPGA驗(yàn)證所設(shè)計(jì)的電路。這里選用Altera公司Cyclone系列的EPIC6Q240C8器件,其內(nèi)部有90Kb的存儲容量,6k個邏輯單元,2個PLL。由于電路采用8kHz采樣頻率,編碼后的ADPCM碼為4位,設(shè)定錄音時間為2s,所以需要64Kb存儲容量:同時,設(shè)計(jì)需要大約400個左右的邏輯單元。所以選用此低成本的FPGAIlp可滿足設(shè)計(jì)要求,而且基本上充分利用了內(nèi)部資源。此芯片

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論