張 林, 王艷芬, 張曉光, 蘆楠楠
(中國礦業(yè)大學(xué) 信息與電氣工程學(xué)院, 江蘇 徐州 221116)
基于Matlab GUI的數(shù)字信號處理演示平臺設(shè)計
張 林, 王艷芬, 張曉光, 蘆楠楠
(中國礦業(yè)大學(xué) 信息與電氣工程學(xué)院, 江蘇 徐州 221116)
利用Matlab GUI設(shè)計并發(fā)布了可獨立運行的數(shù)字信號處理課程的實驗演示平臺。該平臺涵蓋離散時間信號與系統(tǒng)的時域分析和頻域分析、數(shù)字濾波器系統(tǒng)設(shè)計兩大模塊,實現(xiàn)了數(shù)字信號處理課程中核心教學(xué)內(nèi)容的交互式實時動態(tài)仿真。課堂使用結(jié)果表明,該平臺具有界面友好、便于使用、參數(shù)可變、驗證結(jié)果正確等特點,各章節(jié)模塊間邏輯結(jié)構(gòu)清晰、更利于提高課堂授課的效果及學(xué)生對核心知識的理解。
數(shù)字信號處理; 演示平臺; Matlab GUI
“數(shù)字信號處理”課程是高校信息類專業(yè)非常重要的專業(yè)基礎(chǔ)課。該課程知識體系嚴(yán)謹(jǐn)、概念抽象、理論推導(dǎo)繁瑣復(fù)雜、理論與實際聯(lián)系緊密。目前,大多數(shù)的高校在進(jìn)行數(shù)字信號處理課程教學(xué)中都采用理論講解與Matlab多媒體演示相結(jié)合的方式,盡力使抽象的理論知識具體化、形象化,以加深學(xué)生對課程內(nèi)容的掌握[1-6]。因此,在數(shù)字信號處理課程的教學(xué)中,如何規(guī)劃和設(shè)計交互性強(qiáng)、執(zhí)行方便的多媒體演示平臺,一直是有待解決的問題。本文結(jié)合中國礦業(yè)大學(xué)目前正在進(jìn)行的“數(shù)字信號處理”課程雙語教學(xué)改革,利用Matlab的圖形用戶接口(graphic user interface,GUI),以數(shù)字信號處理理論知識為基礎(chǔ),基于英語和Matlab GUI開發(fā)了數(shù)字信號處理演示平臺。該平臺既可用于數(shù)字信號處理課程的課堂教學(xué)演示和實驗輔助教學(xué),也可作為學(xué)生課后自學(xué)平臺,使課堂教學(xué)和實驗教學(xué)相輔相成。
1.1 演示平臺結(jié)構(gòu)
數(shù)字信號處理演示平臺涵蓋離散時間信號與系統(tǒng)的時域分析和頻域分析、數(shù)字濾波器系統(tǒng)設(shè)計兩大模塊,其中數(shù)字濾波器系統(tǒng)設(shè)計包括無限長數(shù)字響應(yīng)濾波器(IIR)和有限長數(shù)字響應(yīng)濾波器(FIR)的設(shè)計[7-9]。
在數(shù)字信號處理演示平臺的設(shè)計中,每個知識模塊的界面設(shè)計都包含兩部分內(nèi)容:GUI界面和回調(diào)函數(shù)。GUI界面框架設(shè)計是利用Matlab用戶界面提供的不同控件對界面進(jìn)行設(shè)計;回調(diào)函數(shù)則根據(jù)界面設(shè)計實現(xiàn)相應(yīng)的功能,數(shù)字信號處理的功能均需在控件的回調(diào)函數(shù)中實現(xiàn)。
1.2 主界面設(shè)計
該演示平臺的設(shè)計分為引導(dǎo)界面和演示主界面兩個部分。其中,引導(dǎo)界面分為課程引導(dǎo)界面(見圖1)和章節(jié)引導(dǎo)界面。點擊課程引導(dǎo)界面上的“Enter”按鈕,將進(jìn)入章節(jié)引導(dǎo)界面;點擊 “Exit” 按鈕,則關(guān)閉整個演示系統(tǒng)。在章節(jié)引導(dǎo)界面中,選擇相應(yīng)的章節(jié)實驗內(nèi)容,則進(jìn)入對應(yīng)的實驗演示子界面。
圖1 演示平臺課程引導(dǎo)界面
1.3 子界面設(shè)計
根據(jù)實驗內(nèi)容的不同設(shè)計了不同的子界面。以離散傅里葉變換和序列傅里葉變換的關(guān)系實驗為例,離散傅里葉變換實際上是序列傅里葉變換在(0,2π]上的等間隔采樣值。按照設(shè)計思路,在GUI設(shè)計界面中添加相應(yīng)的控件,包括3個靜態(tài)文本框、3個可編輯文本框、2個按鈕和4個軸對象控件,分別用于輸入信號參數(shù)、顯示序列傅里葉變換和離散傅里葉變換之后的幅度譜和相位譜,如圖2所示。為使用方便,可編輯的文本框均可以賦予初值,供使用者參考;使用者也可根據(jù)需要,自行輸入數(shù)值。點擊“plot x(n)”按鈕時,軸對象axesPlot5顯示待分析信號的波形;點擊“DTFT”按鈕時,軸對象axesPlot1和axesPlot2分別顯示待分析信號的序列傅里葉變換的幅度譜和相位譜;點擊“DFT”按鈕時,軸對象axesPlot3和axesPlot4分別顯示待分析信號的離散傅里葉變換的幅度譜和相位譜[10-11]。
圖2 離散傅里葉變換和序列傅里葉變換的關(guān)系實驗界面
界面設(shè)計完成后,需要對演示平臺進(jìn)行測試和驗證,以保證該平臺能夠?qū)崿F(xiàn)預(yù)期的功能[12]。
2.1 離散時間和系統(tǒng)的時域分析
離散時間和系統(tǒng)的時域分析實驗中包含序列傅里葉分析實驗、序列的卷積運算實驗以及單位脈沖響應(yīng)實驗。以下為序列的卷積運算實驗驗證示例。
序列x(n)={3,2,1},h(n)={2,1,1},則:
y(n)=x(n)*h(n)={6,7,7,3,1},如圖3所示。
圖3 序列的卷積運算實驗頁面
2.2 離散時間和系統(tǒng)的頻域分析
離散時間和系統(tǒng)的頻域分析實驗包含系統(tǒng)的零極點分析實驗和2個序列傅里葉分析案例。以其中的一個序列傅里葉分析實驗為例。
描述線性時不變系統(tǒng)的差分方程為
a0y(n)+a1y(n-1)+a2y(n-2)=
b0x(n)+b1x(n-1)+b2x(n-2)
假設(shè)a={1,-0.5,0.25},b={1,2,1},則系統(tǒng)的單位脈沖響應(yīng)、幅頻和相頻特性如圖4(a)所示。若在此系統(tǒng)中輸入:
x1(n)=[5+3cos(0.2πn)+4sin(0.3πn)]u(n)
系統(tǒng)的輸出如圖4(b)所示。改變輸入信號的頻率f1、f2和幅度A0、A1、A2,則可以得到不同的輸出信號。
圖4 離散時間傅里葉變換實例驗證實驗
2.3 離散傅里葉變換
離散傅里葉變換章節(jié)的實驗包括DTFT和DFT關(guān)系實驗及DFT案例實驗。以DTFT和DFT關(guān)系實驗為例,其界面設(shè)計如1.3節(jié)中描述。假設(shè)4點的序列為x(n),其DTFT和4點DFT分析的結(jié)果如圖5所示??梢钥闯?DFT可以看作是DTFT在區(qū)間[0,2π)上的等間隔采樣。
圖5 DTFT和DFT關(guān)系實驗驗證
2.4 IIR數(shù)字濾波器的設(shè)計
IIR數(shù)字濾波器設(shè)計章節(jié)的實驗主要包括脈沖響應(yīng)不變法、雙線性變換法以及頻率轉(zhuǎn)換法設(shè)計濾波器3個實驗案例。以脈沖響應(yīng)不變法設(shè)計濾波器實驗為例。假設(shè)巴特沃斯數(shù)字低通濾波器的通帶截止頻率fp=0.1 kHz,通帶最大衰減Rp=1 dB,阻帶截止頻率fs=0.3 kHz,阻帶最小衰減Rs=10 dB。設(shè)置好參數(shù)之后,點擊“AF”按鈕,則首先設(shè)計出符合參數(shù)要求的模擬濾波器;點擊“DF”按鈕,則對模擬濾波器在時域進(jìn)行周期延拓,得到符合參數(shù)要求的數(shù)字濾波器。可以看出,由于脈沖響應(yīng)不變法對模擬濾波器的單位脈沖響應(yīng)進(jìn)行了時域的周期延拓,導(dǎo)致其頻譜出現(xiàn)了周期混疊現(xiàn)象,在圖6所示的演示結(jié)果中,設(shè)計的數(shù)字濾波器出現(xiàn)了混疊失真。
圖6 脈沖響應(yīng)不變法設(shè)計數(shù)字濾波器實驗頁面
2.5 FIR數(shù)字濾波器的設(shè)計
FIR數(shù)字濾波器的設(shè)計章節(jié)的實驗主要包括窗函數(shù)設(shè)計法和頻率采樣法設(shè)計數(shù)字濾波器兩個實驗案例。以窗函數(shù)設(shè)計法實驗為例。假設(shè)低通FIR數(shù)字濾波器的截止頻率ωc=0.2π,函數(shù)窗長度N=11。本演示平臺中,可選擇rectangle window、Hanning window和Blackman window等3種窗函數(shù)完成設(shè)計。選擇相應(yīng)的函數(shù)窗之后,即可得到使用相應(yīng)窗函數(shù)設(shè)計的濾波器的幅頻特性,如圖7所示。
圖7 窗函數(shù)法設(shè)計數(shù)字濾波器實驗頁面
目前,在數(shù)字信號處理課程的課堂教學(xué)中,多媒體的使用已非常普及。但是教師要進(jìn)行隨堂演示,通常要求教室的教學(xué)設(shè)備預(yù)先安裝Matlab,或者隨堂攜帶筆記本電腦,使用不夠方便。學(xué)生想要通過演示程序加深理解,若是直接面對源碼,勢必?fù)p失一些獨立思考的機(jī)會。因此,若能將演示平臺打包成獨立運行的可執(zhí)行文件發(fā)布,將對課堂教學(xué)及學(xué)生課后復(fù)習(xí)有更好的效果。
Matlab編譯器可將m文件直接編譯為可獨立使用的.exe可執(zhí)行文件發(fā)布,程序的運行不再依賴于
Matlab仿真環(huán)境,且執(zhí)行速度優(yōu)于原m文件[13-14]。因此,本文將上述文件打包發(fā)布,目前維護(hù)的是v1.2版本。
基于Matlab GUI的數(shù)字信號處理演示平臺涵蓋了數(shù)字信號處理課程的核心知識,便于使用,是相關(guān)課程及實驗的輔助教學(xué)系統(tǒng)。一方面,教師在課堂講授時可通過交互的方式對課程中的概念和原理進(jìn)行實時仿真,形象、具體地展示課程中抽象的理論知識,充分激發(fā)學(xué)生的學(xué)習(xí)興趣;另一方面,學(xué)生可在該平臺改變輸入?yún)?shù),理解并掌握各種信號及系統(tǒng)的分析方法,輔助理論知識的學(xué)習(xí)。
References)
[1] 王艷芬,張曉光,李劍.加強(qiáng)Matlab實驗環(huán)節(jié),促進(jìn)研究性課程教學(xué)改革[J].實驗技術(shù)與管理,2010,27(11):111-113.
[2] 王艷芬,張曉光.Matlab實踐在《數(shù)字信號處理》教學(xué)中的應(yīng)用[J].實驗科學(xué)與技術(shù),2012,10(5):108-110.
[3] 劉艷.基于MATLAB GUI的數(shù)字信號處理仿真平臺的設(shè)計[J].電子世界,2013(17):133-134.
[4] 李強(qiáng),明艷,陳前斌,等.基于Matlab的數(shù)字信號處理實驗仿真系統(tǒng)的實現(xiàn)[J].實驗技術(shù)與管理,2006,23(5):81-83.
[5] 王艷芬,史良.基于MATLAB軟件環(huán)境的《數(shù)字信號處理》課程新實驗開發(fā)[J].實驗技術(shù)與管理,2002,19(3):61-63.
[6] 劉文斐.基于Matlab的“數(shù)字信號處理”探究式教學(xué)[J].電氣電子教學(xué)學(xué)報,2014,36(5):108-110.
[7] Oppenheim A V, Schafer R W, Buck J R. Discrete-time signal processing[M].New Jersey:Prentice hall Englewood Cliffs,1989.
[8] McClellan J H, Shafer R W,Yoder M A. DSP first: A multimedia approach[M].New Jersey:Prentice Hall PTR,1997.
[9] 王艷芬,王剛,張曉光,等.數(shù)字信號處理原理及實現(xiàn)[M].北京:清華大學(xué)出版社,2008.
[10] 李文磊,劉士榮,陳征,等.MATLAB在自動控制理論實驗中的應(yīng)用[J].實驗技術(shù)與管理,2006,23(2):68-71.
[11] 張鳴,閆紅梅.基于Matlab GUI的信號與系統(tǒng)實驗平臺設(shè)計[J].實驗技術(shù)與管理,2016,33(1):100-103.
[12] 陳懷琛.數(shù)字信號處理教程:MATLAB釋義與實現(xiàn)[M].北京:電子工業(yè)出版社,2008.
[13] 張衛(wèi)山,尚劍鋒,劉雪林,等.基于MATLAB GUI的波動光學(xué)仿真平臺[J].大學(xué)物理實驗,2013,26(3):85-87.
[14] 張力.MATLAB在語音信號處理輔助教學(xué)中的應(yīng)用[J].電氣電子教學(xué)學(xué)報,2005,27(2):96-99.
Design of presentation platform of digital signal processing based on matlab GUI
Zhang Lin, Wang Yanfen, Zhang Xiaoguang, Lu Nannan
(School of Information and Electrical Engineering, China University of Mining and Technology, Xuzhou 221116, China)
The presentation platform of digital signal processing is developed based on Matlab GUI, which can operate independently. It covers both the time domain and frequency domain analysis of discrete time signals and systems, as well as the design of digital filter systems. It provides the dynamic interactive simulation for the key contents for the course. The practice shows that this platform is friendly interface developed and easy to use. It also allows users to change parameters in each experiment, and gets reasonable validation results. It shows clear logical relations between one chapter and another chapter, which helps to improve the performance of class.
digital signal processing; presentation platform; Matlab GUI
10.16791/j.cnki.sjg.2016.12.038
2016-06-19
江蘇省高等教育教改研究立項課題(2015JSJG275)資助;教育部第六批國家特色專業(yè)建設(shè)項目(TS1Z293)資助;中國礦業(yè)大學(xué)教育教學(xué)改革與建設(shè)項目(2014YB14)資助
張林(1981—),女,江蘇海安,博士,副教授,主要研究方向為數(shù)字信號處理、生物信息處理.
E-mail:lin.zhang@cumt.edu.cn
TN911.72
: A
: 1002-4956(2016)12-0154-04