耿艷香 蒲艷紅 陳宇 李海丹 潘福利 蔡姍姍
摘要:大學(xué)在教學(xué)模式方面需要根據(jù)技術(shù)的發(fā)展來做一些改進(jìn),取其精華,去其糟粕,保留原有“教”的部分,加入更多“學(xué)”的部分,“學(xué)”即實(shí)驗(yàn)教學(xué)的部分。本文以MATLAB作為設(shè)計(jì)開發(fā)的軟件,利用圖形用戶界面工具箱建立GUI界面,設(shè)計(jì)基于MATLAB的數(shù)字信號(hào)處理虛擬實(shí)驗(yàn)平臺(tái),將數(shù)字信號(hào)處理的實(shí)驗(yàn)內(nèi)容集中在一個(gè)平臺(tái)上,操作簡單方便,結(jié)果直觀準(zhǔn)確,提高了數(shù)字信號(hào)處理課程的教學(xué)質(zhì)量和效果。
關(guān)鍵詞:數(shù)字信號(hào)處理;人機(jī)交互;虛擬實(shí)驗(yàn)環(huán)境;GUI界面
中圖分類號(hào):G642.0 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1674-9324(2018)36-0274-03
一、數(shù)字信號(hào)處理的實(shí)驗(yàn)教學(xué)現(xiàn)狀
數(shù)字信號(hào)處理(digital signal processing,DSP)是一門隨著計(jì)算機(jī)和信息學(xué)科的快速發(fā)展而發(fā)展起來的新興學(xué)科,現(xiàn)已成為大學(xué)本科電子及通信專業(yè)必修的專業(yè)基礎(chǔ)課。數(shù)字信號(hào)處理就是以數(shù)字為載體對(duì)信號(hào)進(jìn)行處理,通過專用的信號(hào)處理的硬件設(shè)備,將信號(hào)數(shù)字化,以利于信號(hào)的傳輸、分析與變換,來達(dá)到高效的傳輸與便捷的處理的目的。
二、MATLAB軟件的簡單介紹
MATLAB是美國MathWorks公司開發(fā)的商業(yè)數(shù)學(xué)軟件,它用于向用戶提供概念設(shè)計(jì)、算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級(jí)計(jì)算語言以及交互式的集成環(huán)境,主要包含了MATLAB和Simulink兩大部分。MATLAB的主要特點(diǎn)在于可以依據(jù)相對(duì)簡捷的語言規(guī)則,編織出界面優(yōu)美、功能強(qiáng)大且結(jié)果可靠的高質(zhì)量的設(shè)計(jì)程序,而且程序的編寫也相對(duì)其他設(shè)計(jì)語言簡單了很多,有利于初學(xué)者的學(xué)習(xí);并且調(diào)試簡單,效率極高。MATLAB可以進(jìn)行矩陣運(yùn)算、實(shí)現(xiàn)算法、創(chuàng)建用戶界面、繪制函數(shù)和數(shù)據(jù)等,主要應(yīng)用于信號(hào)檢測與分析、信號(hào)處理與通訊、圖像處理、工程計(jì)算等領(lǐng)域。隨著軟件版本的不斷升級(jí),MATLAB包含的功能也越來越強(qiáng)大,它所應(yīng)用的范圍也越來越廣闊。在此次數(shù)字信號(hào)處理虛擬實(shí)驗(yàn)平臺(tái)的設(shè)計(jì)中,主要通過對(duì)MATLAB中圖形用戶界面工具箱的使用來進(jìn)行對(duì)虛擬實(shí)驗(yàn)平臺(tái)的設(shè)計(jì)。如圖1所示,選擇Blank GUI(Default)建立GUI對(duì)象。
建立GUI對(duì)象之后,進(jìn)入GUI編輯界面,如圖2所示。GUI編輯界面主要包括GUI對(duì)象選擇區(qū)、GUI工具欄、GUI布局區(qū)、狀態(tài)欄四個(gè)部分。通過對(duì)數(shù)字信號(hào)處理實(shí)驗(yàn)知識(shí)點(diǎn)的理解,設(shè)計(jì)出相應(yīng)的實(shí)驗(yàn)界面。
三、基于MATLAB的數(shù)字信號(hào)處理實(shí)驗(yàn)平臺(tái)的設(shè)計(jì)
(一)設(shè)計(jì)目標(biāo)
數(shù)字信號(hào)處理實(shí)驗(yàn)平臺(tái)的設(shè)計(jì)的根本設(shè)計(jì)目標(biāo)是建立一個(gè)涵蓋數(shù)字信號(hào)處理基礎(chǔ)理論知識(shí)和實(shí)踐操作的集成虛擬實(shí)驗(yàn)平臺(tái),實(shí)現(xiàn)包括序列的運(yùn)算、變換、頻譜分析、濾波等多個(gè)實(shí)驗(yàn)內(nèi)容,結(jié)合現(xiàn)代化的信息技術(shù),將實(shí)驗(yàn)的硬件進(jìn)行虛擬化,并將其所應(yīng)用的方向進(jìn)行延伸,用于課前預(yù)習(xí)、實(shí)物操作過程的輔助以及課后復(fù)習(xí),對(duì)教學(xué)內(nèi)容的理解和掌握等方面,學(xué)生可以對(duì)自己沒有掌握的內(nèi)容側(cè)重復(fù)習(xí),不僅提高了學(xué)習(xí)的效率,而且操作方面也更加方便。
(二)設(shè)計(jì)步驟
在本平臺(tái)的設(shè)計(jì)中,平臺(tái)布局的設(shè)計(jì)采用自頂向下的設(shè)計(jì)方法,也就是先設(shè)計(jì)主界面,確定主界面所要包含的內(nèi)容和實(shí)驗(yàn)名稱,然后根據(jù)主界面的實(shí)驗(yàn)進(jìn)行子界面的實(shí)驗(yàn)內(nèi)容、框架的設(shè)計(jì)。設(shè)計(jì)完成之后的界面,只是一些靜態(tài)的界面,不能運(yùn)用于教學(xué)實(shí)驗(yàn)的操作,若想達(dá)到教學(xué)的實(shí)驗(yàn)?zāi)康?,必須進(jìn)行回調(diào)函數(shù)的編寫,插入實(shí)驗(yàn)所需的程序,運(yùn)行之后就可得到教學(xué)實(shí)驗(yàn)結(jié)果。
其設(shè)計(jì)的具體步驟如下,包含幾個(gè)部分:
1.先分析確定平臺(tái)所要實(shí)現(xiàn)的基本功能,確定平臺(tái)設(shè)計(jì)的整體框架,即主界面和包含實(shí)驗(yàn)內(nèi)容和操作的實(shí)驗(yàn)子界面。
2.利用MATLAB軟件中的圖形用戶界面工具箱進(jìn)行GUI界面的設(shè)計(jì),在GUI對(duì)象選擇區(qū)選擇“按鈕”、“文本”、“坐標(biāo)軸”、“面板”等控件,然后在GUI布局區(qū)對(duì)每一個(gè)實(shí)驗(yàn)界面進(jìn)行設(shè)計(jì)。
3.完成平臺(tái)布局設(shè)計(jì)之后,在GUI工具欄對(duì)界面控件的屬性進(jìn)行設(shè)置;
4.根據(jù)每個(gè)實(shí)驗(yàn)所要得到的結(jié)果,分別對(duì)每個(gè)實(shí)驗(yàn)界面的控件編寫相對(duì)應(yīng)的回調(diào)函數(shù),然后運(yùn)行得到結(jié)果。
5.將設(shè)計(jì)完成的實(shí)驗(yàn)主界面以及子界面利用程序連接起來,將一個(gè)個(gè)單一的界面整合成一個(gè)系統(tǒng),即通過數(shù)字信號(hào)處理實(shí)驗(yàn)主界面的按鈕控件就可以進(jìn)入到它所包含的任何一個(gè)實(shí)驗(yàn)子界面進(jìn)行實(shí)驗(yàn)。
6.實(shí)驗(yàn)界面總體的調(diào)試和完善。
(三)虛擬實(shí)驗(yàn)平臺(tái)的實(shí)現(xiàn)
1.實(shí)驗(yàn)平臺(tái)的內(nèi)容。數(shù)字信號(hào)處理虛擬實(shí)驗(yàn)平臺(tái)是由多個(gè)實(shí)驗(yàn)GUI界面構(gòu)成的,利用MATLAB中的圖形用戶界面工具箱建立GUI對(duì)象,通過對(duì)GUI的編輯來搭建實(shí)驗(yàn)平臺(tái)界面。主界面包含對(duì)數(shù)字信號(hào)處理課程的簡介和六個(gè)實(shí)驗(yàn)部分,如圖3所示。目前包括序列的運(yùn)算、快速傅里葉變換(FFT)實(shí)現(xiàn)、利用FFT做連續(xù)信號(hào)的頻譜分析、離散傅里葉變換(DFT)、無限沖擊響應(yīng)濾波器(IIR)實(shí)現(xiàn)、有限沖擊響應(yīng)濾波器(FIR)實(shí)現(xiàn),后續(xù)可繼續(xù)增加。每個(gè)實(shí)驗(yàn)又包括實(shí)驗(yàn)指導(dǎo)書界面和實(shí)驗(yàn)操作界面,實(shí)驗(yàn)指導(dǎo)書界面有實(shí)驗(yàn)?zāi)康?、?shí)驗(yàn)原理以及實(shí)驗(yàn)操作所需要的函數(shù),通過開始實(shí)驗(yàn)進(jìn)入實(shí)驗(yàn)操作界面,通過對(duì)實(shí)驗(yàn)參數(shù)的設(shè)置,得到不同的實(shí)驗(yàn)結(jié)果,然后通過對(duì)結(jié)果進(jìn)行分析比對(duì),更加深刻地理解并掌握所學(xué)的理論基礎(chǔ)知識(shí)。
2.實(shí)驗(yàn)平臺(tái)的操作及實(shí)現(xiàn)。(1)實(shí)驗(yàn)平臺(tái)的操作。在進(jìn)行實(shí)驗(yàn)教學(xué)時(shí),學(xué)生使用學(xué)號(hào)登錄實(shí)驗(yàn)系統(tǒng),點(diǎn)擊數(shù)字信號(hào)處理課程的按鈕進(jìn)入實(shí)驗(yàn)課程主界面,如圖3所示。瀏覽課程簡介以及實(shí)驗(yàn)名稱,選擇需要做的實(shí)驗(yàn),點(diǎn)擊實(shí)驗(yàn)名稱按鈕,進(jìn)入實(shí)驗(yàn)指導(dǎo)書界面,如圖4所示,進(jìn)入實(shí)驗(yàn)一的指導(dǎo)書界面。在實(shí)驗(yàn)指導(dǎo)界面包括實(shí)驗(yàn)?zāi)康摹?shí)驗(yàn)原理、實(shí)驗(yàn)函數(shù)和開始實(shí)驗(yàn)四個(gè)操作按鈕。以實(shí)驗(yàn)一指導(dǎo)書界面為例,通過點(diǎn)擊“實(shí)驗(yàn)?zāi)康摹?、“?shí)驗(yàn)原理”、“實(shí)驗(yàn)函數(shù)”按鈕,得到相應(yīng)的界面,如圖5、圖6、圖7所示。學(xué)生可以通過這些界面了解實(shí)驗(yàn)內(nèi)容以及實(shí)驗(yàn)的操作方法。當(dāng)然,學(xué)生也可通過工具欄的“首頁”或“數(shù)字信號(hào)處理”按鈕返回實(shí)驗(yàn)主界面。
閱讀完實(shí)驗(yàn)指導(dǎo)書之后,學(xué)生就可以進(jìn)入到實(shí)驗(yàn)的操作部分,點(diǎn)擊實(shí)驗(yàn)指導(dǎo)書界面的“開始實(shí)驗(yàn)”按鈕,進(jìn)入到實(shí)驗(yàn)操作界面,以“序列的運(yùn)算”實(shí)驗(yàn)為例,如圖8所示。學(xué)生在操作界面選擇運(yùn)算類型,包括“序列相加”、“序列相乘”、“位移”、“反褶”、“卷積”和“尺度變換”,點(diǎn)擊下拉菜單選擇任一運(yùn)算類型,點(diǎn)擊“開始”按鈕就可得到實(shí)驗(yàn)結(jié)果,如選擇“尺度變換”得到實(shí)驗(yàn)結(jié)果如圖9所示。當(dāng)然,學(xué)生也可通過“重置”按鈕清空實(shí)驗(yàn)結(jié)果,重新開始實(shí)驗(yàn)。
(2)實(shí)驗(yàn)平臺(tái)的實(shí)現(xiàn)。對(duì)于實(shí)驗(yàn)平臺(tái)的實(shí)現(xiàn),采用MATLAB中的圖形用戶界面工具箱創(chuàng)建一個(gè)GUI對(duì)象,進(jìn)入GUI編輯界面,如圖2所示。在編輯界面的GUI對(duì)象選擇區(qū)選擇對(duì)象控件,然后在GUI布局區(qū)進(jìn)行控件布局排版設(shè)計(jì)。以“離散傅里葉變換(DFT)”實(shí)驗(yàn)為例,在GUI編輯界面先放置三個(gè)實(shí)驗(yàn)面板區(qū)域,包括“實(shí)驗(yàn)信息”面板、“參數(shù)設(shè)置”面板和“結(jié)果顯示”面板。在“實(shí)驗(yàn)信息”面板選擇“靜態(tài)文本標(biāo)簽”和“單選按鈕”控件編輯實(shí)驗(yàn)的名稱及變換序列的選擇;在“參數(shù)設(shè)置”面板選擇“彈出式菜單”和“按鈕”控件編輯實(shí)驗(yàn)參數(shù)及實(shí)驗(yàn)開始和重置的按鈕;在“結(jié)果顯示”面板選擇“坐標(biāo)軸”控件進(jìn)行實(shí)驗(yàn)結(jié)果的顯示。“離散傅里葉變換(DFT)”實(shí)驗(yàn)整體布局如圖10所示。對(duì)實(shí)驗(yàn)界面的整體布局設(shè)計(jì)完成之后,在GUI工具欄設(shè)置對(duì)象屬性。比如采用檢查器工具對(duì)控件進(jìn)行“FontSize”、“FontWeight”、“BackgroundColor”、“String”、“Visible”等屬性的設(shè)置,如圖11所示。
完成界面的以上編輯之后,還須進(jìn)行回調(diào)函數(shù)的編寫,插入實(shí)驗(yàn)所需的程序。選擇實(shí)驗(yàn)控件,點(diǎn)擊檢查器中“Callback”屬性,編寫該控件的回調(diào)函數(shù),如圖12所示。編寫完所有控件的回調(diào)函數(shù)之后,對(duì)程序進(jìn)行調(diào)試運(yùn)行,就可得到實(shí)驗(yàn)操作界面,對(duì)該界面的實(shí)驗(yàn)參數(shù)進(jìn)行選擇或設(shè)置,就可得到該實(shí)驗(yàn)的實(shí)驗(yàn)結(jié)果,如圖13所示,為離散傅里葉變換(DFT)的實(shí)驗(yàn)結(jié)果。
本文講述了基于MATLAB設(shè)計(jì)的數(shù)字信號(hào)處理課程實(shí)驗(yàn)仿真平臺(tái),系統(tǒng)地闡述了課程部分實(shí)驗(yàn)的具體操作過程。虛擬實(shí)驗(yàn)平臺(tái)的設(shè)計(jì),不僅展示了MATLAB的GUI界面在數(shù)字信號(hào)處理課程輔助教學(xué)中的優(yōu)點(diǎn),而且交互性的實(shí)驗(yàn)界面以及其參數(shù)的可設(shè)置性使得數(shù)字信號(hào)理解分析的過程變得更加容易控制,實(shí)驗(yàn)結(jié)果更加直觀,因而將其應(yīng)用到數(shù)字信號(hào)處理課程輔助教學(xué)中可使得學(xué)生對(duì)理論公式和數(shù)值計(jì)算更易于理解并掌握。
參考文獻(xiàn):
[1]徐慶偉,郭振鐸,劉洲峰.數(shù)字信號(hào)處理課程教學(xué)方式的改革與研究[J].中國教育技術(shù)裝備,2010,(06):27.
[2]翟月英,曾蓉,孟馨.“數(shù)字信號(hào)處理”教學(xué)革新之引入文獻(xiàn)閱讀研討課[J].通訊世界,2016,(18):99-100.