任 蕾 邱哲賢 薄 華 金欣磊
(上海海事大學(xué) 信息工程學(xué)院, 上海 201306)
數(shù)據(jù)可視化是指應(yīng)用計(jì)算機(jī)圖形學(xué)、數(shù)字圖像處理等技術(shù)進(jìn)行有效信息傳達(dá)和交互的技術(shù)手段和過(guò)程[1],隨著技術(shù)的發(fā)展,數(shù)據(jù)可視化在教育領(lǐng)域的應(yīng)用日益廣泛。特別地,在信息類專業(yè)的課程教學(xué)中,部分課程理論性強(qiáng)、教學(xué)內(nèi)容抽象,數(shù)據(jù)可視化可將抽象的理論知識(shí)轉(zhuǎn)化為圖像或動(dòng)畫,以此幫助學(xué)生理解知識(shí)點(diǎn),達(dá)到更好的教學(xué)效果。文獻(xiàn)[2]以“電磁場(chǎng)與微波技術(shù)”課程中“均勻平面波對(duì)多層介質(zhì)分界平面的垂直入射”為例,采用了Matlab與C#混合編程方式,實(shí)現(xiàn)了這種物理現(xiàn)象的可視化演示[2]。楊富龍等以“數(shù)字信號(hào)處理”課程為例,應(yīng)用Matlab和LabVIEW軟件,設(shè)計(jì)實(shí)現(xiàn)了包括信號(hào)采集、信號(hào)分析和信號(hào)處理的可視化平臺(tái),并結(jié)合藍(lán)牙技術(shù)展示了信號(hào)處理全過(guò)程[3]。文獻(xiàn)[4]采用面向?qū)ο笤O(shè)計(jì)的軟件開(kāi)發(fā)方法,設(shè)計(jì)實(shí)現(xiàn)了基于MatlabGUI的自動(dòng)控制可視化仿真軟件平臺(tái),該平臺(tái)可方便地對(duì)系統(tǒng)進(jìn)行控制原理和方法的分析與設(shè)計(jì)[4]。文獻(xiàn)[5-7]則主要針對(duì)“電磁場(chǎng)與電磁波”課程,提出了可視化教學(xué)方案。衛(wèi)延等用Matlab軟件對(duì)鏡像電場(chǎng)進(jìn)行仿真,繪制了點(diǎn)電荷鏡像法中多種鏡像電場(chǎng)的等位面和電力線細(xì)節(jié)圖,對(duì)鏡像電場(chǎng)進(jìn)行了可視化,有利于加深學(xué)生對(duì)相關(guān)知識(shí)點(diǎn)的理解[5]。文獻(xiàn)[6]提出了基于Matlab軟件的“電磁場(chǎng)”課程可視化案例教學(xué)方法,以提高學(xué)生的實(shí)踐能力、加深對(duì)理論知識(shí)點(diǎn)的理解[6]。文獻(xiàn)[7]以最基本的均勻平面波為例,應(yīng)用Matlab實(shí)現(xiàn)了電磁波可視化,展示電磁波在各種媒質(zhì)中的傳播特性、極化特性及反射和折射現(xiàn)象等[7]。
信號(hào)處理類課程主要包括“信號(hào)與系統(tǒng)”和“數(shù)字信號(hào)處理”及相關(guān)的實(shí)踐類課程,這類課程的理論性強(qiáng)、公式多、學(xué)習(xí)難度大。動(dòng)態(tài)地展示信號(hào)處理和系統(tǒng)分析中的知識(shí)點(diǎn),可以幫助學(xué)生理解信號(hào)處理的本質(zhì)。此外,學(xué)生通過(guò)自行設(shè)計(jì)可視化案例可進(jìn)一步提升實(shí)踐能力。本文利用Matlab軟件設(shè)計(jì)實(shí)現(xiàn)了信號(hào)處理課程的數(shù)據(jù)可視化應(yīng)用平臺(tái)。該平臺(tái)將信號(hào)處理類問(wèn)題分為信號(hào)的生成和基本運(yùn)算、信號(hào)的卷積、濾波器、頻域分析和復(fù)頻域分析五大類,教學(xué)案例選擇了傅里葉級(jí)數(shù)、吉伯斯現(xiàn)象、采樣定理等經(jīng)典理論知識(shí)點(diǎn),為用戶提供了修改參數(shù)和動(dòng)畫演示的功能。該平臺(tái)既可為教師授課時(shí)展示使用,也可作為線上線下混合教學(xué)中的教學(xué)資源之一,提供給學(xué)生自學(xué)或復(fù)習(xí)使用。
Matlab軟件是數(shù)據(jù)可視化的常用軟件之一,且在信號(hào)分析與處理、系統(tǒng)仿真等領(lǐng)域有廣泛應(yīng)用。目前信號(hào)處理的實(shí)踐類課程也多采用Matlab作為基本軟件。
在Matlab 2016a及后續(xù)版本中,應(yīng)用設(shè)計(jì)工具(App Designer)正逐漸代替圖形用戶界面開(kāi)發(fā)環(huán)境(Graphical User Interface Development Environment,GUIDE)的功能。 GUIDE 是由菜單欄、工具欄、命令按鍵欄和輸入欄等基本組件構(gòu)成的用戶交互界面,用戶可利用鼠標(biāo)和鍵盤等輸入設(shè)備來(lái)控制這些對(duì)象,使計(jì)算機(jī)自動(dòng)運(yùn)行相對(duì)應(yīng)的代碼進(jìn)行計(jì)算或繪圖等。而 App Designer 則由設(shè)計(jì)視圖、組件庫(kù)、組件瀏覽器、代碼視圖、代碼瀏覽器等構(gòu)成,區(qū)別于GUIDE 中復(fù)雜多樣的底層代碼,App Designer 提供了更好的編程體驗(yàn)和視覺(jué)體驗(yàn),為用戶提供了足夠的便利[4]。此外,與GUIDE相比,App Designer是面向?qū)ο蟮木幊陶Z(yǔ)言,不僅增加了工業(yè)應(yīng)用相關(guān)的新對(duì)象,還可將App部署在網(wǎng)絡(luò)中與其他開(kāi)發(fā)者共享[8]。因此我們選用App Designer作為信號(hào)處理課程數(shù)據(jù)可視化應(yīng)用的開(kāi)發(fā)軟件。
應(yīng)用設(shè)計(jì)工具(App Designer),可根據(jù)用戶需求靈活設(shè)計(jì)軟件界面并自行開(kāi)發(fā)應(yīng)用程序,從而滿足數(shù)據(jù)可視化的要求,使用App Designer[8]設(shè)計(jì)一個(gè)完整應(yīng)用的過(guò)程如下:
(1)根據(jù)需求新建空白App,可自動(dòng)調(diào)整布局的兩欄式App或可自動(dòng)調(diào)整布局的三欄式App等;
(2)使用App Designer提供的組件庫(kù)來(lái)完成設(shè)計(jì)視圖中各個(gè)控件的布局,布局時(shí)保證界面簡(jiǎn)單清晰、使用方便;
(3)打開(kāi)各個(gè)控件的代碼視圖,編寫回調(diào)函數(shù)和實(shí)現(xiàn)各個(gè)功能的程序代碼,以保證設(shè)計(jì)的用戶交互界面能正確響應(yīng)用戶的操作;
(4)使用Matlab Compiler生成exe運(yùn)行文件,創(chuàng)建獨(dú)立的桌面應(yīng)用程序。
根據(jù)多年教學(xué)實(shí)踐,我們選取了部分信號(hào)處理課程中的知識(shí)點(diǎn),將其設(shè)計(jì)為可視化的展示模塊,按照課程知識(shí)講解的順序進(jìn)行了分類劃分。最終設(shè)計(jì)的可視化應(yīng)用平臺(tái)主要由信號(hào)的生成和基本運(yùn)算、信號(hào)的卷積、濾波器、頻域分析和復(fù)頻域分析五個(gè)基本模塊構(gòu)成,在各類模塊下包含若干個(gè)子功能模塊,具體的如圖1所示。

圖1 信號(hào)處理類課程數(shù)據(jù)可視化應(yīng)用平臺(tái)的模塊組成圖
目前信號(hào)處理可視化的案例選擇,我們考慮了在信號(hào)處理類課程中便于展示且僅依賴靜態(tài)圖片或公式推導(dǎo)難以闡述的部分知識(shí)點(diǎn),例如,吉伯斯現(xiàn)象,我們?cè)谄脚_(tái)中展示了有限項(xiàng)周期正弦信號(hào)合成周期脈沖信號(hào)的過(guò)程,同時(shí)為了加深學(xué)生的理解,還在實(shí)驗(yàn)課程中布置了類似的任務(wù),讓學(xué)生通過(guò)設(shè)計(jì)并實(shí)現(xiàn)三角脈沖信號(hào)的合成過(guò)程,從而理解傅里葉級(jí)數(shù)的本質(zhì)和基本原理。此外,信號(hào)的卷積實(shí)現(xiàn)過(guò)程、線性時(shí)不變系統(tǒng)的零極點(diǎn)分布和系統(tǒng)特性的關(guān)系等也非常適合用動(dòng)態(tài)過(guò)程進(jìn)行演示。今后,可視化應(yīng)用案例還可進(jìn)一步擴(kuò)充。
可視化應(yīng)用的主界面根據(jù)應(yīng)用程序的框架設(shè)計(jì)思路制作,如圖2所示。主界面由標(biāo)題、5個(gè)基本分類模塊選擇按鈕、設(shè)計(jì)信息以及“退出”按鈕構(gòu)成。用戶點(diǎn)擊任意一個(gè)按鈕即可進(jìn)入相對(duì)應(yīng)的基本分類中,再根據(jù)課堂需要使用其中的子功能模塊。主界面右下角的“退出”按鈕用來(lái)關(guān)閉該應(yīng)用。部分可視化界面圖如圖2~13所示。

圖2 信號(hào)處理類課程數(shù)據(jù)可視化App主界面

圖3 連續(xù)信號(hào)生成子功能模塊界面

圖4 離散信號(hào)生成子功能模塊界面

圖5 連續(xù)信號(hào)卷積動(dòng)態(tài)過(guò)程界面

圖6離散信號(hào)卷積動(dòng)態(tài)過(guò)程界面

圖7 1、3、5、89項(xiàng)合成的吉伯斯現(xiàn)象波形比較圖

圖8 巴特沃斯低通濾波器

圖9 脈沖寬度為3和周期為5的信號(hào)時(shí)域和頻域圖

圖13 零極點(diǎn)對(duì)系統(tǒng)特性的影響示例2
其中,圖5和圖6分別是連續(xù)和離散信號(hào)的卷積動(dòng)態(tài)過(guò)程截圖,卷積的過(guò)程包括信號(hào)的翻轉(zhuǎn)、平移、相乘、積分(或疊加),通過(guò)動(dòng)態(tài)的可視化展示可以幫助學(xué)生理解卷積的本質(zhì),特別是圖解法的求解過(guò)程。圖12和圖13分別是不同系統(tǒng)函數(shù)的零極點(diǎn)分布和系統(tǒng)特性的關(guān)系,圖12是典型的數(shù)字低通濾波器,圖13是帶通濾波器。用戶可以自行選擇零極點(diǎn)的位置,從而得到不同的系統(tǒng)頻率特性,該示例可以在離散線性時(shí)不變系統(tǒng)的頻率響應(yīng)幾何求解、數(shù)字濾波器的基本概念等課程教學(xué)中展示使用。平臺(tái)中的大部分示例,用戶均可自行輸入各類參數(shù),以觀察不同情況下運(yùn)行結(jié)果的差異。
我們?cè)O(shè)計(jì)的信號(hào)處理課程可視化應(yīng)用平臺(tái)可生成應(yīng)用程序,從而在課程教學(xué)中發(fā)揮教學(xué)輔助作用。主要體現(xiàn)在以下方面:
(1)線上線下混合教學(xué)模式的重要資源。目前,我們將課程的教學(xué)資源,包括教學(xué)視頻、多媒體課件、實(shí)驗(yàn)指導(dǎo)資料等全部公布于學(xué)習(xí)通平臺(tái),并已應(yīng)用兩個(gè)輪次。設(shè)計(jì)的可視化應(yīng)用平臺(tái)可作為信號(hào)處理課程教學(xué)資源的補(bǔ)充。
(2)實(shí)踐類課程的教學(xué)輔助。目前,我們選擇的大部分可視化案例都與實(shí)驗(yàn)教學(xué)內(nèi)容相關(guān),因此,該平臺(tái)可在實(shí)踐類課程中發(fā)揮積極作用。
基于Matlab開(kāi)發(fā)了信號(hào)處理課程中數(shù)據(jù)的可視化應(yīng)用平臺(tái)。該平臺(tái)包括信號(hào)的生成和基本運(yùn)算、信號(hào)的卷積、濾波器、頻域分析和復(fù)頻域分析五大模塊。數(shù)據(jù)可視化的設(shè)計(jì)中包括了部分參數(shù)可調(diào)整的互動(dòng)式可視化案例,可以通過(guò)調(diào)節(jié)數(shù)據(jù)來(lái)深刻理解信號(hào)處理的原理和過(guò)程。