陳志英 ,劉 虹 ,陳飄萍
(1.廈門理工學(xué)院電氣工程與自動(dòng)化學(xué)院,福建 廈門 361024;2.廈門理工學(xué)院光電與通信工程學(xué)院,福建 廈門 361024)
基于模型的數(shù)字濾波器設(shè)計(jì)及DSP實(shí)現(xiàn)
陳志英1,劉虹2,陳飄萍2
(1.廈門理工學(xué)院電氣工程與自動(dòng)化學(xué)院,福建 廈門 361024;2.廈門理工學(xué)院光電與通信工程學(xué)院,福建 廈門 361024)
以低通音頻數(shù)字濾波器設(shè)計(jì)為例,提出一種基于模型的濾波器設(shè)計(jì)及DSP硬件實(shí)現(xiàn)方法.硬件由TIDSP器件TMS320VC5509A與高性能多媒體數(shù)字語音編解碼器TLV320AIC23構(gòu)成.軟件采用MATLABSimulink對(duì)FIR濾波器進(jìn)行建模,采用S-function編寫VC5509A與AIC23相關(guān)接口驅(qū)動(dòng)等自定義模型.通過代碼自動(dòng)生成技術(shù)產(chǎn)生C代碼并下載至DSP中進(jìn)行處理器在環(huán)硬件測(cè)試,結(jié)果顯示音頻濾波效果明顯,表明基于模型設(shè)計(jì)方法是正確與高效的.
數(shù)字濾波器;DSP實(shí)現(xiàn);MATLABSimulink;TMS320VC5509A;TLV320AIC23
數(shù)字濾波器是數(shù)字信號(hào)處理中常用的算法之一,傳統(tǒng)設(shè)計(jì)方法是先采用MATLAB軟件建立濾波器算法模型進(jìn)行仿真、調(diào)試,驗(yàn)證正確后再采用手工編寫C代碼或匯編代碼在DSP硬件系統(tǒng)上實(shí)現(xiàn)[1-2].這種方法不僅要求設(shè)計(jì)人員熟悉數(shù)字濾波器理論計(jì)算,還要求熟悉DSP硬件架構(gòu)及軟件編程,并需要花費(fèi)大量時(shí)間來編制程序、查錯(cuò)、調(diào)試、驗(yàn)證,明顯增加和重復(fù)了工作量,延長(zhǎng)了研究周期,且無法利用MATLAB強(qiáng)大的數(shù)據(jù)處理工具和可視化功能.因此傳統(tǒng)設(shè)計(jì)方法存在開發(fā)難度較大、效率較低等不足.文獻(xiàn)[3]提出基于模型的設(shè)計(jì)方法解決了該問題.基于模型的設(shè)計(jì)方法核心是將算法模型設(shè)計(jì)和系統(tǒng)硬件測(cè)試在統(tǒng)一的開發(fā)環(huán)境MATLAB中進(jìn)行,有效地將開發(fā)流程的2個(gè)部分結(jié)合在一起,在該開發(fā)環(huán)境中不僅可以對(duì)系統(tǒng)結(jié)構(gòu)、算法進(jìn)行描述,還能夠?qū)ο到y(tǒng)不同層次、不同組件和不同數(shù)據(jù)類型進(jìn)行建模.建模后可自動(dòng)生成嵌入式C代碼(無須人工編寫程序)下載至DSP硬件系統(tǒng)進(jìn)行在環(huán)測(cè)試調(diào)試嵌入式代碼的實(shí)時(shí)性,使調(diào)試過程中數(shù)據(jù)可視化,及早發(fā)現(xiàn)與解決問題,從而確保在開發(fā)早期完成嵌入式系統(tǒng)軟件的測(cè)試,大幅度提高研究開發(fā)的效率[3-5].本文利用基于模型的方法設(shè)計(jì)了FIR低通音頻數(shù)字濾波器,結(jié)合MATLABIDELINK嵌入式開發(fā)環(huán)境接口直接生成嵌入式C代碼在DSP器件TMS320VC5509A上驗(yàn)證實(shí)現(xiàn).由于MATLAB未集成VC5509A的各種接口驅(qū)動(dòng),系統(tǒng)還需利用S-function編寫DSP音頻A/D采集與音頻D/A輸出等自定義驅(qū)動(dòng)模型.為了方便系統(tǒng)的統(tǒng)一設(shè)計(jì)及仿真,本文也設(shè)計(jì)了一個(gè)GUI可視化操作界面,該界面可進(jìn)行FIR濾波器設(shè)計(jì)與濾波仿真,將較為理想的濾波參數(shù)傳遞給DSP代碼,在線調(diào)試DSP運(yùn)行,完成了從設(shè)計(jì)到軟件仿真、再從軟件仿真到硬件測(cè)試的全過程.
系統(tǒng)是基于高性能定點(diǎn)DSP芯片TMS320VC5509A和高性能多媒體數(shù)字語音編解碼器TLV320AIC23硬件平臺(tái)實(shí)現(xiàn).AIC23內(nèi)部帶有ADC和DAC模塊,VC5509A利用AIC23內(nèi)部的ADC模塊采集音頻信號(hào),然后進(jìn)行FIR低通濾波處理,最后從AIC23的DAC模塊輸出,從而完成音頻信號(hào)的采集、濾波、播放.VC5509A與AIC23的連接采用I2C接口與多通道緩沖串行接口(McBSP0).SCLK、SDIN是AIC23的配置時(shí)鐘引腳和配置數(shù)據(jù)輸入引腳,與VC5509A的SCL和SDA連接,二者以I2C總線方式進(jìn)行數(shù)據(jù)傳輸.VC5509A通過該I2C接口配置AIC23內(nèi)部寄存器,其中每個(gè)寄存器前7位(bit)為寄存器地址,后9位為寄存器內(nèi)容.BCLK、LRCOUT、DIN和DOUT分別是AIC23的時(shí)鐘引腳、幀信號(hào)引腳、ADC方向的數(shù)據(jù)輸入引腳和DAC方向的數(shù)據(jù)輸出引腳,與VC5509A的McBSP0串行接口6個(gè)引腳CLKR0、CLKX0、FSX0、FSR0、DX0、DR0相連,VC5509A通過該McBSP0接口分別控制AIC23內(nèi)部ADC模塊和DAC模塊實(shí)現(xiàn)采集與播放音頻信號(hào)[6-9].系統(tǒng)硬件原理如圖1所示.
在MATLABSimulink環(huán)境下建立系統(tǒng)仿真模型,如圖2所示,包括主系統(tǒng)模型和While循環(huán)子系統(tǒng)模型.主系統(tǒng)模型包括AIC23S-Function、constant、while、CustomBoard,功能是利用AIC23S-Function對(duì)AIC23和DSP芯片初始化后,觸發(fā)while模型,并使while模型進(jìn)入無限循環(huán),如圖2(a)所示.While模型設(shè)置兩個(gè)輸入控制端IC、In1,AIC23模型初始化完成后輸出使能IC端觸發(fā)While子系統(tǒng)模塊;In1端輸入常數(shù)“1”使While子系統(tǒng)觸發(fā)后不斷循環(huán)工作.CustomBoard模型設(shè)置系統(tǒng)目標(biāo)DSP芯片類型為VC5509A,它包含了部分芯片接口的驅(qū)動(dòng)程序,并提供代碼自動(dòng)生成和處理器在環(huán)測(cè)試功能.While子系統(tǒng)模型內(nèi)部結(jié)構(gòu)如圖2(b)所示,ADS-Function模塊實(shí)現(xiàn)音頻信號(hào)A/D采集,DigitalFilterDesign模塊實(shí)現(xiàn)FIR低通濾波處理,DAS-Function模塊實(shí)現(xiàn)音頻數(shù)據(jù)D/A轉(zhuǎn)換播放.由于CustomBoard模型未集成VC5509A芯片I2C、McBSP0串行接口驅(qū)動(dòng)程序,AIC23S-Function,ADS-Function,DAS-Function3個(gè)驅(qū)動(dòng)模塊都是利用S-FunctionBuilder工具建立的自定義CMEXS-Function模型,分別對(duì)應(yīng)AIC23芯片內(nèi)部寄存器、ADC模塊及DAC模塊的控制.
2.1S-Function模型
MATLAB中S-FunctionBuilder工具可根據(jù)用戶要求和已有C代碼自動(dòng)創(chuàng)建生成S-Function模型,無需從頭編寫S-Function,簡(jiǎn)化了整個(gè)系統(tǒng)模型設(shè)計(jì)及創(chuàng)建工作.TI公司為VC5509A提供了大量的內(nèi)部接口應(yīng)用C源程序,包括I2C、McBSP0串口驅(qū)動(dòng)程序,請(qǐng)參考文獻(xiàn)[10]-[12],相關(guān)函數(shù)與頭文件見表1.用戶可利用S-FunctionBuilder將這些函數(shù)稍作修改后構(gòu)建成所需的自定義S-Function模型.
下面簡(jiǎn)要說明S-Function創(chuàng)建過程.打開S-FunctionBuilder,首先設(shè)置模型名稱,然后在“DataProperties”選項(xiàng)卡設(shè)置輸入輸出端口,在“Libraries”選項(xiàng)卡聲明模型頭文件、外部函數(shù)、源程序(見表1),在“Outputs”選項(xiàng)卡中編輯實(shí)現(xiàn)模型功能的輸出C代碼(如表2所示),最后,單擊“Build”按鈕創(chuàng)建,若“BuildInfo”選項(xiàng)卡無顯示錯(cuò)誤信息,則AIC23S-Function創(chuàng)建成功[3].
表2 “Outputs”選項(xiàng)卡輸出代碼
2.2FIR低通濾波模型
DigitalFilterDesign模塊(圖2(b))是MATLAB信號(hào)處理工具箱中一種圖形化濾波器設(shè)計(jì)與分析工具FDATool,利用FDATool可快速設(shè)計(jì)FIR或IIR濾波器[13-15].本文采用Kaiser窗口設(shè)計(jì)FIR低通濾波器,雙擊該模塊,采樣頻率設(shè)置為48kHz,截止頻率設(shè)置為2 500Hz,階數(shù)設(shè)置為16,最后點(diǎn)擊“DesignFilter”按鈕就完成濾波器參數(shù)生成.若在調(diào)試過程中需要修改濾波器的參數(shù),重新設(shè)置FDATool濾波器要求,就可快速得到新濾波器參數(shù)并傳遞到DSP芯片中運(yùn)行.
為使基于模型設(shè)計(jì)具有統(tǒng)一的開發(fā)環(huán)境,本文設(shè)計(jì)了系統(tǒng)可視化操作界面(GUI),如圖3所示.界面包含2個(gè)功能:一是進(jìn)行FIR濾波器設(shè)計(jì)及仿真,并將濾波器參數(shù)生成C文件,傳遞給DSP代碼;二是對(duì)TICCSIDE進(jìn)行操作控制,完成程序編譯、鏈接、下載、運(yùn)行和停止等操作,操作命令位于菜單欄“TICCS”中.如此,在統(tǒng)一MATLAB環(huán)境下,完成了從系統(tǒng)模型設(shè)計(jì)到軟件仿真、再從軟件仿真到硬件測(cè)試的全過程.
FIR濾波器設(shè)計(jì)及仿真可以針對(duì)不同的音頻片段進(jìn)行濾波,該片段不一定含有噪音,不含噪音的音頻在經(jīng)過不同類型的濾波器濾波后,將出現(xiàn)不同的效果.例如經(jīng)過一個(gè)低通濾波器,音頻的高音片段將大幅度衰減,低音部分則將比較明顯,會(huì)呈現(xiàn)一個(gè)低音炮的效果.反之,如果通過高通濾波器,高音明顯突出.下面,將通過對(duì)一個(gè)含有噪音的音頻片段進(jìn)行音頻濾波測(cè)試基于模型設(shè)計(jì)的有效性.圖4是一段含有噪音的原始音頻片段采樣序列及其幅頻特性,可判斷噪音范圍約在3 500Hz之后,因此系統(tǒng)設(shè)計(jì)一個(gè)截止頻率為2 500Hz的FIR低通濾波器,采樣頻率為48kHz,濾波階數(shù)不宜太高(數(shù)字濾波器階數(shù)越大,DSP處理的點(diǎn)數(shù)就越多,計(jì)算量越大,影響處理速度),設(shè)置在20階左右,其幅頻特性曲線如圖5所示.打開系統(tǒng)仿真模型,自動(dòng)生成C代碼,將濾波參數(shù)傳遞給生成的C代碼,并將代碼下載到硬件實(shí)現(xiàn)處理器在環(huán)實(shí)時(shí)運(yùn)行[16-18].在硬件板麥克風(fēng)J5端接入含有噪音的音頻信號(hào),在J7輸出端接揚(yáng)聲器,結(jié)果明顯從揚(yáng)聲器分辨出音頻濾波后的效果變化.同時(shí)將J7端音頻保存在PC機(jī)中,分析其信號(hào)序列與幅頻特性,如圖6所示,可以看出,噪音已被濾除且濾波效果顯著.
本文提出了一種基于模型的數(shù)字濾波器設(shè)計(jì)及其硬件實(shí)現(xiàn)方法,以低通音頻數(shù)字濾波器為設(shè)計(jì)對(duì)象,詳細(xì)介紹基于模型方法的設(shè)計(jì)過程及DSP實(shí)現(xiàn),通過DSP處理器硬件在環(huán)系統(tǒng)測(cè)試驗(yàn)證了基于模型方法的正確性與有效性.結(jié)果證明基于模型設(shè)計(jì)方法大幅度簡(jiǎn)化了傳統(tǒng)濾波器設(shè)計(jì)過程,縮短了項(xiàng)目的研究開發(fā)進(jìn)度,且模型建立后,類似MATLABSimulink自帶模型,可多次重復(fù)利用,省去了每次重復(fù)建模編程的過程,其模型直接代碼生成技術(shù)為不熟悉DSP硬件及軟件的理論研究人員提供了一種很好的實(shí)踐驗(yàn)證方法,具有較好的應(yīng)用借鑒與參考價(jià)值.
[1]何麗娜,葉聽,汪偉.數(shù)字濾波器(FIR)設(shè)計(jì)算法研究[J].電聲技術(shù),2014,38(2):67-70.
[2]譚等泰.最優(yōu)型數(shù)字濾波器的設(shè)計(jì)與實(shí)現(xiàn)[J].電測(cè)與儀表,2014,51(4):81-85.
[3]劉杰.基于模型的設(shè)計(jì)及其嵌入式實(shí)現(xiàn)[M].北京:北京航空航天大學(xué)出版社,2010.
[4]馮璨,李剛,趙剛.基于模型設(shè)計(jì)思想的功率測(cè)量技術(shù)研究[J].電測(cè)與儀表,2014,51(19):1-7.
[5]栗華山,李東.一種基于消息驅(qū)動(dòng)的嵌入式DSP系統(tǒng)應(yīng)用設(shè)計(jì)模式[J].計(jì)算機(jī)應(yīng)用與軟件,2013,30(7):294-297.[6]TEXASINSTRUMENT.TMS320VC5509Afixed-pointdigitalsignalprocessordatamanual[EB/OL].[2014-11-03].http://www.ti.com/lit/ds/symlink/tms320vc5509a.pdf.
[7]TEXASINSTRUMENT.TLV320AIC23datamanual[EB/OL].[2014-11-03].http://www.ti.com/lit/ds/symlink/tlv320aic23.pdf.
[8]TEXASINSTRUMENT.TLV320AIC23EVMuser’sguide[EB/OL].[2014-11-03].http://www.ti.com/lit/ug/sleu003/sleu003.pdf.
[9]TEXASINSTRUMENT.TMS320VC5509Ahardwaredesigner’sresourceguide[EB/OL].(2004-06-29)[2014-11-03].http://www.ti.com/lit/an/spraa30/spraa30.pdf.
[10]TEXASINSTRUMENT.ProgrammingtheTMS320VC5509AI2Cperipheral[EB/OL].[2014-11-03].http://www.ti.com/lit/an/spra785a/spra785a.pdf.
[11]TEXASINSTRUMENT.ADSP/BIOSAIC23codecdevicedriverfortheTMS320C5509EVM[EB/OL].[2014-11-03].http://www.ti.com/lit/an/spra857a/spra857a.pdf.
[12]TEXASINSTRUMENT.TMS320VC5509DSPmultichannelbufferedserialport(McBSP)referenceguide[EB/OL].(2005-04-14)[2014-11-03].http://www.ti.com/lit/ug/spru592e/spru592e.pdf.
[13]王彭,顏湘武,董清.基于MATLAB和DSP的電壓閃變檢測(cè)方法的實(shí)現(xiàn)[J].電測(cè)與儀表,2008,45(11):11-14.[14]張三軍,郭慶.基于MATLAB與DSP的心電整系數(shù)數(shù)字濾波器設(shè)計(jì)[J].國(guó)外電子測(cè)量技術(shù),2009,28(3):69-72.
[15]程永進(jìn),馬 沖.基于Matlab的FIR濾波器在DSP中的實(shí)現(xiàn)[J].電子技術(shù),2009(12):59-60.
[16]鄒依依,郭燦新,黃成軍,等.EmbeddedMATLAB在局部放電DSP嵌入式采集系統(tǒng)中的應(yīng)用[J].電工技術(shù),2008(12):52-54.
[17]王偉,李育挺,馬松輝.基于模型的驗(yàn)證與測(cè)試技術(shù)[J].計(jì)算機(jī)測(cè)量與控制,2013,21(4):987-989.
[18]侯瑩,洪征,潘璠,等.基于模型的Fuzzing測(cè)試腳本自動(dòng)化生成[J].計(jì)算機(jī)科學(xué),2013,40(3):206-209.
(責(zé)任編輯李寧)
Model-Based Digital Filter Design and DSP Realization
CHEN Zhi-ying1,LIU Hong2,CHEN Piao-ping2
(1.SchoolofElectricalEngineeringandAutomation,XiamenUniversityofTechnology,Xiamen361024,China;2.SchoolofOptoelectronicandCommunicationEngineering,XiamenUniversityofTechnology,Xiamen361024,China)
Thispaperpresentsamodel-baseddesignofdigitalfilterandDSPrealization,takingadigitallowpassaudiofilterasexample.ThehardwareconsistedofaTIDSPdeviceTMS320VC5509AandahighperformancemultimediadigitalvoiceprocessorTLV320AIC23.FIRfilterwasbuiltinMATLABSimulinkandinterfacedrivermodelsbetweenVC5509AandAIC23wasprogrammedusingS-function.CcodeofsystemwasgeneratedandloadedintheDSPdevicebytheautomaticcodegeneratingtechnology.AtestofthesystemwithDSPprocessorintheloopwasmadeandtheresultsprovedthatthemodel-baseddesignisworkableandefficient.
digitalfilter;DSPrealization;MATLABSimulink;TMS320VC5509A;TLV320AIC2
2014-11-10
2014-12-08
福建省教育廳科技項(xiàng)目(JK2013036;JB14078)
陳志英(1978-),女,副教授,碩士,研究方向?yàn)橹悄茈娖骷捌湓诰€監(jiān)測(cè)技術(shù).E-mail:chzy207@163.com
TN713.7;TP368.2A
1673-4432(2015)01-0039-06