王仲杰
(中國(guó)飛行試驗(yàn)研究院 西安 710089)
基于單片機(jī)的PCM語(yǔ)音編碼系統(tǒng)設(shè)計(jì)?
王仲杰
(中國(guó)飛行試驗(yàn)研究院 西安 710089)
針對(duì)傳統(tǒng)數(shù)字處理信號(hào)方案在處理語(yǔ)音編碼中存在性能差和成本高的問(wèn)題,提出一種基于單片機(jī)技術(shù)低功耗、高性能語(yǔ)音編碼系統(tǒng)。借助單片機(jī)技術(shù)的優(yōu)勢(shì),同時(shí)根據(jù)傳統(tǒng)PCM在語(yǔ)音編碼方面的劣勢(shì),搭建以FPGA為主控芯片的語(yǔ)音編碼控制模塊,并引入ADPCM優(yōu)化算法對(duì)語(yǔ)音編碼進(jìn)行處理,從而大大提高了語(yǔ)音編碼系統(tǒng)的性能,減少了成本,實(shí)現(xiàn)了低功耗、高效的語(yǔ)音編碼處理。最后通過(guò)仿真和硬件測(cè)試,驗(yàn)證了上述方案設(shè)計(jì)的可行性和合理性。
FPGA芯片;ADPCM優(yōu)化算法;語(yǔ)音編碼;硬件設(shè)計(jì);仿真
隨著當(dāng)前計(jì)算機(jī)技術(shù)和微電子技術(shù)的不斷發(fā)展,數(shù)字技術(shù)也開(kāi)始飛速發(fā)展,被應(yīng)用在各個(gè)不同的行業(yè)和領(lǐng)域,并引發(fā)了數(shù)字系統(tǒng)設(shè)計(jì)理念的變革。當(dāng)前,在數(shù)字信號(hào)處理領(lǐng)域之中,大部分采用的是傳統(tǒng)的DSP處理方式,或者是一些專用的集成電力方案。雖然這些方案提高了數(shù)字信號(hào)處理的效率,但是還是存在性能差、成本高、開(kāi)發(fā)周期長(zhǎng)等缺點(diǎn),制約著PCM算法的運(yùn)行[1]。因此,如何借助現(xiàn)有的微電子技術(shù)完成大規(guī)模數(shù)字運(yùn)算,并實(shí)現(xiàn)語(yǔ)音算法成為當(dāng)前思考的重點(diǎn)。對(duì)此,本文提出一種基于FPGA的單片機(jī)語(yǔ)音編碼系統(tǒng),并注重就實(shí)現(xiàn)ADPCM算法的運(yùn)行進(jìn)行研究,從而提高當(dāng)前的數(shù)字化處理效率。
FPGA,中文全稱為現(xiàn)場(chǎng)可編程門(mén)陣列,是在CPLD,EPLD,GAL,PAL等可編程邏輯器件基礎(chǔ)上,逐步發(fā)展和演變而來(lái)的,是一種類似于掩膜可編輯門(mén)陣列的編程器件。FPGA作為一種半定制的產(chǎn)品,可以根據(jù)設(shè)計(jì)的數(shù)字系統(tǒng)要求,進(jìn)行現(xiàn)場(chǎng)設(shè)置和修改。FPGA器件內(nèi)部結(jié)構(gòu)主要包括可編程邏輯塊(CLB)、I/O可輸入與輸出、PIR互連資源塊等構(gòu)成,具體見(jiàn)圖1所示。
對(duì)FPGA芯片的工作原理是通過(guò)查找表來(lái)實(shí)現(xiàn)對(duì)器件的可重復(fù)燒寫(xiě)。而查找表的原理在開(kāi)發(fā)的數(shù)字邏輯系統(tǒng)中,會(huì)計(jì)算出相關(guān)的結(jié)果,然后邏輯運(yùn)算的真值表被事先存入到查找表之中,它的輸入則為邏輯運(yùn)算的輸入,而它的輸出則為運(yùn)算結(jié)果。當(dāng)任何一個(gè)信號(hào)在輸入到FPGA芯片后,都相當(dāng)于是直接輸入了某個(gè)具體地址來(lái)查找表,這個(gè)地址對(duì)應(yīng)的計(jì)算結(jié)果就是輸出結(jié)果。
圖1 FPGA內(nèi)部結(jié)構(gòu)
而對(duì)于FPGA的開(kāi)發(fā)通常都是通過(guò)硬件描述性語(yǔ)言Verilog HDL或者是VHDL來(lái)進(jìn)行開(kāi)發(fā)。這種開(kāi)發(fā)語(yǔ)言的優(yōu)點(diǎn)在于移植性好;電路與芯片工藝無(wú)關(guān);輸入效率高等特點(diǎn)。
自適應(yīng)差分脈沖編碼調(diào)制(ADPCM),是綜合了自適應(yīng)脈沖編碼調(diào)制(APCM)的自適應(yīng)特性和差分脈沖編碼調(diào)制(DPCM)的差分特性的一種波形編碼算法。該算法具有延遲低、音質(zhì)高等特點(diǎn),從而在近些年來(lái)被廣泛應(yīng)用在數(shù)字語(yǔ)音信號(hào)處理方面。通過(guò)ADPCM算法,將傳統(tǒng)的16bit的PCM數(shù)據(jù)直接壓縮成大小為4bit的ADPCM數(shù)據(jù),從而對(duì)數(shù)據(jù)進(jìn)行傳輸和存儲(chǔ)。該編碼算法的核心是隨著信號(hào)幅度的不斷變化,通過(guò)量化間隔大小的方式進(jìn)行自適應(yīng)的調(diào)整;通過(guò)以前的樣本值去估計(jì)接下來(lái)的抽樣值,從而讓接下來(lái)的抽樣值與實(shí)際值更加接近。而這主要利用了信號(hào)前后存在相關(guān)性,從而可以通過(guò)自適應(yīng)量化間隔的方式來(lái)實(shí)現(xiàn)對(duì)傳統(tǒng)PCM數(shù)據(jù)的壓縮。具體原理則如圖2所示。
圖2 ADPCM編碼原理
其中,Si表示16bit二進(jìn)制補(bǔ)碼語(yǔ)音信號(hào);Sp為預(yù)測(cè)采樣值;d表示與線性輸入Si之間的差值;XP(n-1)上一級(jí)的抽樣值;dq表示編碼輸出I被逆化成的差值;Sr差值dq與預(yù)測(cè)采樣Sp蘇得到的解碼輸出值。
在圖1的原理中,無(wú)論是對(duì)語(yǔ)音信號(hào)進(jìn)行編碼還是譯碼,都必須通過(guò)更新步長(zhǎng)的方式,并借助其工作原理——量化步長(zhǎng)索引調(diào)整表及其對(duì)應(yīng)的值來(lái)實(shí)現(xiàn)步長(zhǎng)值的更新。
要實(shí)現(xiàn)ADPCM對(duì)語(yǔ)音信息的優(yōu)化處理,搭建有效的硬件平臺(tái)是關(guān)鍵,也是基礎(chǔ)。結(jié)合FPGA芯片的特點(diǎn)及編碼系統(tǒng)功能需求,其硬件組成主要包括FPGA主控芯片、仿真接口JTAG、供電電源、LED顯示、語(yǔ)音放大器、串口通信模塊等,具體如圖3所示。
圖3 編碼系統(tǒng)硬件平臺(tái)設(shè)計(jì)
為提高該控制系統(tǒng)的運(yùn)算處理能力,本文選擇XC3S5000系列中的XC3S5000-5FGG676C型號(hào)。該系列芯片是由賽靈思推出的一款面向低端市場(chǎng)FPGA系列,具體結(jié)構(gòu)如圖4所示。
圖4 XC3S5000系列芯片內(nèi)部結(jié)構(gòu)
該系列芯片典型的優(yōu)勢(shì)在于擁有104個(gè)18*18專用乘法器,同時(shí)擁有33280slice、104個(gè)RAM模塊,大大提供了整體運(yùn)算性能。
在對(duì)FPGA的開(kāi)發(fā)中,最為關(guān)鍵的一個(gè)問(wèn)題就是硬件配置,必須通過(guò)專門(mén)的仿真器來(lái)實(shí)現(xiàn)。在配置體系中,包括仿真器、專門(mén)的編程軟件和加載電路。配置模式也包括主串、從串等五種不同模式。本文則選擇常用的主串模式。具體配置電路如圖5所示。
圖5 配置電路設(shè)計(jì)
根據(jù)ADPCM算法的原理,其主要是完成對(duì)語(yǔ)音信號(hào)的處理,即將PCM16bit信號(hào)通過(guò)壓縮編碼成為4bit的數(shù)據(jù)信號(hào),然后在通過(guò)解碼,得到初始的16bitPCM信號(hào)。因此,要實(shí)現(xiàn)ADPCM信號(hào)的處理,主要涉及三個(gè)步驟。
假設(shè)PCM輸入值為X(n),前一時(shí)刻的預(yù)測(cè)值為Y(n-1),兩者之間的差值為 D(n),編碼值為C(n)。其中編碼值的具體計(jì)算為
而根據(jù)公式(1)可以求解出下一次編碼的量化步長(zhǎng)值,具體計(jì)算為
同時(shí)還必須求取下一次編碼的預(yù)測(cè)值,具體計(jì)算為
其中,?=step[index]×C(n)/4+step[index]/8,step[index]表示量化步長(zhǎng)表當(dāng)中給出的步長(zhǎng)值。具體索引表如表1。
表1 索引表
在該編碼流程中,需要將16bit的PCM信號(hào)轉(zhuǎn)換為4bit的ADPCM語(yǔ)音信息,而對(duì)該模塊的實(shí)現(xiàn),是通過(guò)調(diào)用前面的查找表來(lái)實(shí)現(xiàn)的。具體流程設(shè)計(jì)則如圖6所示。
圖6 編碼流程設(shè)計(jì)
解碼主要是將4bit的ADPCM語(yǔ)音數(shù)據(jù)轉(zhuǎn)換為16bit的PCM信號(hào),并將其存入到FIFO緩存之中。
為驗(yàn)證上述編碼和解碼的正確性,采用model?sim對(duì)上述的流程進(jìn)行驗(yàn)證,從而可以得到如圖8和圖9的結(jié)果。
圖7 解碼流程設(shè)計(jì)
圖8 編碼仿真
圖9 解碼仿真
通過(guò)上述的仿真可以看出,無(wú)論是編碼還是解碼,其產(chǎn)生的波形圖達(dá)到了預(yù)想的功能,說(shuō)明本文設(shè)計(jì)的硬件可很好地對(duì)語(yǔ)音信號(hào)進(jìn)行預(yù)算,滿足ADPCM算法對(duì)信號(hào)的處理。
本文結(jié)合FPGA芯片和ADPCM各自的優(yōu)勢(shì),實(shí)現(xiàn)了對(duì)語(yǔ)音信號(hào)的完美編碼和解碼,從而提高了語(yǔ)音信號(hào)處理的效率,也實(shí)現(xiàn)了一款高效和低成本的系統(tǒng),為語(yǔ)音編碼的處理提供了參考借鑒。
[1]柯俊霄.采用單片機(jī)壓縮編碼的數(shù)碼錄放系統(tǒng)設(shè)計(jì)[J].電子設(shè)計(jì)工程,2014,22(5):124-126.KE Junxiao.Using MCU realize speech compression cod?ing digital recording system design[J].International Elec?tronic Elements,2014,22(5):124-126.
[2]裴志兵,胡平平.基于C8051F007的ADPCM語(yǔ)音編碼系統(tǒng)設(shè)計(jì)[J].信息通信,2016(1):59-61.PEI Zhibing,HU Pingping.The design of ADPCM speech coding system based on C8051F007[J].Information&Communications,2016(1):59-61.
[3]劉華.語(yǔ)音聲碼器模型及ADPCM聲碼器仿真[J].長(zhǎng)春師范學(xué)院學(xué)報(bào),2013,32(6):22-24.LIU Hua.The Model of Speech Codec and the Simulation of ADPCM's Codec[J].Journal of Changchun Teachers College,2013,32(6):22-24.
[4]程麗媛,江國(guó)棟.采用單片機(jī)壓縮編碼的數(shù)碼錄放系統(tǒng)設(shè)計(jì)[J].南京工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報(bào),2013,13(2):24-27.CHENG Liyuan,JIANG Guodong.Digital Recording Sys?tem Design of Speech Compression Coding Using MCU[J].Journal of Nanjing Institute of Industry Technology,2013,13(2):24-27.
[5]徐運(yùn)武,李艷.基于單片機(jī)控制的小型程控交換系統(tǒng)設(shè)計(jì)[J].湖北理工學(xué)院學(xué)報(bào),2013,29(3):8-12.XU Yunwu,LI Yan.Design of Small Exchange Experi?ment System Based on Single Chip Microcomputer Control[J].Journal of Huangshi Institute of Technology,2013,29(3):8-12.
[6]秦源汛,梁維謙,劉潤(rùn)生.低功耗高速無(wú)線傳輸語(yǔ)音采集系統(tǒng)的設(shè)計(jì)[J].電聲技術(shù),2012,36(1):51-54.QIN yuanxun,LIANG Weiqian,LIU Runsheng.Design on Wireless Transmission Voice Acquisition System[J].Au?dio Engineering,2012,36(1):51-54.
[7]張超,林孝康.基于AMBE2000和CMX7141的數(shù)字對(duì)講機(jī)基帶系統(tǒng)的設(shè)計(jì)[J].電聲技術(shù),2012,36(3):32-35,59.ZHANG Chao,LIN Xiaokang.Design of baseband system for digital interphone based on AMBE2000 and CMX7141[J].Audio Engineering,2012,36(3):32-35,59.
[8]王小軍,趙嘎,舒平平,等.基于FPGA的IMA-ADPCM編/解碼器的設(shè)計(jì)與實(shí)現(xiàn)[J].云南大學(xué)學(xué)報(bào)(自然科學(xué)版),2012,34(4):415-419.WANG Xiaojun,ZHAO Ga,SHU Pingping,et al.FP?GA-based IMA-ADPCM codec research and design[J].Journal of Yunnan University(Natural Sciences),2012,34(4):415-419.
[9]張翎影.數(shù)字對(duì)講機(jī)中語(yǔ)音編碼的研究與DSP實(shí)現(xiàn)[J].電子制作,2013(16):66.ZHANG Lingying.Voice Codec Research and DSP Imple?mentation in Digital Intercom[J].Practical Electronics,2013(16):66.
[10]馮金金,吳游.基于DSP的音頻信號(hào)壓縮通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].信息技術(shù),2016,40(8):200-203.FENG Jinjin,WU You.Design and implementation of communication system of audio signal compression based on the DSP[J].Information Technology,2016,40(8):200-203.
Design of PCM Speech Coding System Based on Single Chip Microcomputer
WANG Zhongjie
(Chinese Flight Test Establishment,Xi'an 710089)
Aiming at the problem of poor performance and high cost of traditional digital signal processing in speech coding,a low power consumption and high performance speech coding system based on single chip computer is proposed.With the help of SCM technology,build the voice encoding control module with FPGA as the main chip,at the same time according to the traditional PCM in speech encoding disadvantage,ADPCM algorithm is introduced to handle voice encoding,which greatly improves the per?formance of speech encoding system,reducing the cost,the realization of the speech processing of low power consumption,efficient encoding.Finally,the feasibility and rationality of the above scheme design are verified by simulation and hardware testing.
FPGA chip,ADPCM optimization algorithm,speech coding,hardware design,simulation
Class Number TP391
TP391
10.3969/j.issn.1672-9722.2017.12.045
2017年6月9日,
2017年7月31日
王仲杰,男,碩士,高級(jí)工程師,研究方向:試飛測(cè)試。