魯 瑩,明念坤
(西南林業(yè)大學(xué)大數(shù)據(jù)與智能工程學(xué)院,昆明 650224)
《信號(hào)與系統(tǒng)》在電子信息類相關(guān)專業(yè)中處于非常重要的地位,且是信號(hào)處理類的學(xué)科基礎(chǔ)課,此類課程是以信號(hào)特性和處理等工程問題為背景,經(jīng)數(shù)學(xué)抽象及理論概括而形成的理論性和系統(tǒng)性很強(qiáng)的課程。其不僅概念抽象,數(shù)學(xué)公式推導(dǎo)也較為繁雜,結(jié)果較難理解。教好和學(xué)好此類課程對(duì)學(xué)生建立專業(yè)基礎(chǔ)、進(jìn)一步讀研深造至關(guān)重要。傳統(tǒng)教學(xué)模式已無法滿足學(xué)生的需求,當(dāng)前改革任務(wù)是探索多模式教學(xué)方法[1-2]。近幾年來,考研人數(shù)逐年增多,導(dǎo)致“考研熱”持續(xù)升溫,使考研競爭日益白熱化[3-4]?;谡n程的教學(xué)改革,結(jié)合當(dāng)前日益趨多的學(xué)生選擇該方向作為考研,開發(fā)“信號(hào)與系統(tǒng)”綜合學(xué)習(xí)平臺(tái)軟件,充分與當(dāng)前形勢(shì)相結(jié)合。
目前,關(guān)于“信號(hào)與系統(tǒng)”教學(xué)輔助平臺(tái)絕大多數(shù)采用MathsWorks 公司開發(fā)的Matlab 軟件進(jìn)行仿真。魯瑩等[5]用Matlab開發(fā)的教學(xué)輔助平臺(tái),方便學(xué)生形象直觀地理解、掌握課程中的基本知識(shí)[6-8]。考慮到Matlab 作為商業(yè)軟件,價(jià)格不菲,若用于學(xué)術(shù)、研究或其他用途,需獲得版權(quán)授權(quán)許可,且存在被禁用風(fēng)險(xiǎn)[9]。在大數(shù)據(jù)時(shí)代下,Python 作為開源軟件,是一種解釋性的、面向?qū)ο蟮?、互?dòng)式的、帶有動(dòng)態(tài)語義的高級(jí)程序設(shè)計(jì)語言[10],廣泛應(yīng)用于科學(xué)運(yùn)算和工程領(lǐng)域[11]。在豐富的第三方庫支持下,Python 在信號(hào)處理、科學(xué)計(jì)算等多方面優(yōu)勢(shì)日益明顯。因此,采用Python 語言設(shè)計(jì)并開發(fā)“信號(hào)與系統(tǒng)”綜合學(xué)習(xí)平臺(tái)更完整、更容易實(shí)現(xiàn),操作更簡便,形象直觀,易于擴(kuò)展。
平臺(tái)架構(gòu)由登錄窗體、主窗體和36 個(gè)子窗體組成,如圖1所示。主窗體的結(jié)構(gòu)結(jié)合吳大正等[12]信號(hào)與線性系統(tǒng)分析的章節(jié)進(jìn)行設(shè)計(jì),由8個(gè)固定的模塊組成,每個(gè)模塊都涵蓋了講義、重要擴(kuò)展知識(shí)、例題、習(xí)題、習(xí)題解析及參數(shù)可調(diào)的動(dòng)態(tài)窗口仿真。平臺(tái)采用Python 以PyQt5庫為核心設(shè)計(jì)平臺(tái)GUI 界面[13],結(jié)合了在數(shù)值計(jì)算中起關(guān)鍵作用的NumPy 庫、執(zhí)行代數(shù)運(yùn)算處理的SciPy 庫、用于符號(hào)運(yùn)算的SymPy 庫和將結(jié)果繪制成圖表的Matplotlib庫[14-15]。
圖1 平臺(tái)架構(gòu)框圖
流程框圖如圖2 所示。用戶登錄成功后方可進(jìn)入平臺(tái),在平臺(tái)主窗體中可選擇相應(yīng)模塊進(jìn)行學(xué)習(xí)。
圖2 流程框圖
登錄窗口如圖3 所示,其分為登錄和注冊(cè)兩部分。用戶需輸入正確的用戶名和密碼方可進(jìn)入主窗體,其中用戶名和密碼存儲(chǔ)在Excel 文件中。
圖3 登錄窗口
主窗口如圖4所示??赏ㄟ^按鈕進(jìn)行8個(gè)模塊的功能訪問,同時(shí),為了讓用戶有更為親切和舒適的體驗(yàn)感,使用我校一景觀點(diǎn)圖片作為其背景圖片。在主窗體的右下方可顯示當(dāng)前時(shí)間、登錄用戶、指導(dǎo)教師和開發(fā)者。
圖4 主窗口
限于篇幅,本文僅節(jié)選重要擴(kuò)展知識(shí)模塊中的“連續(xù)時(shí)間的平移、反轉(zhuǎn)和尺度變換”“奇偶分解”以及“卷積積分”進(jìn)行介紹。
2.4.1 連續(xù)時(shí)間信號(hào)的平移、反轉(zhuǎn)和尺度變換運(yùn)算
連續(xù)時(shí)間信號(hào)的平移、反轉(zhuǎn)和尺度變換運(yùn)算是第一章入門知識(shí)點(diǎn),尤其涉及三者運(yùn)算順序時(shí),學(xué)生學(xué)習(xí)過程中會(huì)碰到其運(yùn)算方法種類多、過程復(fù)雜,導(dǎo)致錯(cuò)誤率高。平臺(tái)中計(jì)算信號(hào)的平移、反轉(zhuǎn)和尺度變換運(yùn)算,只需下拉組合框選擇信號(hào)f1(t)和運(yùn)算類型,再點(diǎn)擊繪制按鈕,即可得出波形圖。同時(shí),用戶還可查看信號(hào)的表達(dá)式和仿真源代碼,其窗口如圖5所示。連續(xù)時(shí)間信號(hào)的平移,即f(t) ?f(t-b),其算法原理是,若b>0,f(t)右移b,若b<0,f(t)左移|b|。如圖6所示,f(t)左移一個(gè)單位所得f(t+ 1)的函數(shù)圖像。信號(hào)的反轉(zhuǎn),即f(t) ?f(-t)。如圖7 所示,f(t)以縱軸鏡像對(duì)稱得到f(-t)的函數(shù)圖像。信號(hào)的尺度變換,即f(t) ?f(|a|t),其算法原理是,若|a| >1,f(t)以原點(diǎn)為基準(zhǔn)點(diǎn),在時(shí)間軸上壓縮;若|a| <1,f(t)以原點(diǎn)為基準(zhǔn)點(diǎn),在時(shí)間軸上展寬。如圖8 所示,f(t)以原點(diǎn)為基準(zhǔn)點(diǎn),壓縮兩倍得到f(2t)的函數(shù)圖像。
圖5 信號(hào)的平移、反轉(zhuǎn)和尺度變換運(yùn)算窗口
圖6 信號(hào)的平移運(yùn)算
圖7 信號(hào)的反轉(zhuǎn)運(yùn)算
圖8 信號(hào)的尺度變換運(yùn)算
2.4.2 奇偶分解
為了便于研究復(fù)雜信號(hào)的傳輸和處理問題,通常將復(fù)雜信號(hào)進(jìn)行分解。任何信號(hào)可分解為偶分量和奇分量之和,其算法原理為
其中:偶分量fe(t)=fe(-t), 奇分量fo(t)=-fo(-t),其二者的算法原理為
這部分知識(shí)點(diǎn)簡單,但學(xué)生易混淆奇偶分量的公式,平臺(tái)通過查看源代碼和信號(hào)分解成奇偶分量的波形,幫助學(xué)生掌握這部分知識(shí)點(diǎn)。在計(jì)算信號(hào)的奇偶分解時(shí),只需下拉組合框選擇信號(hào)f(t),點(diǎn)擊繪制按鈕,即可得出波形圖。同時(shí),可仿真源代碼,其窗口如圖9所示。
圖9 奇偶分解
2.4.3 卷積積分
卷積積分是一種重要的數(shù)學(xué)方法[12]。已知定義在區(qū)間(-∞,+∞)上的兩個(gè)函數(shù)f1(t)和f2(t),則定義:
卷積積分是考研重點(diǎn),學(xué)生在學(xué)習(xí)時(shí)會(huì)感到枯燥,且難以理解和掌握,因此,學(xué)好卷積積分為學(xué)習(xí)后續(xù)章節(jié)打下良好基礎(chǔ)。完成卷積運(yùn)算通常可以通過定義求解、圖解法以及性質(zhì)進(jìn)行運(yùn)算,且這幾年考研題目側(cè)重于考查學(xué)生作圖能力,但對(duì)于初學(xué)者存在概念難理解、公式難記易混淆、靜不下心去研究卷積過程中的每一個(gè)步驟等問題。本平臺(tái)可更好地、更直觀地幫助理解。在平臺(tái)中計(jì)算卷積積分,只需選擇信號(hào)f1(t)和f2(t),點(diǎn)擊下拉組合框中的運(yùn)算類型,再點(diǎn)擊繪制按鈕,即可得出波形圖,還可查看信號(hào)的表達(dá)式和仿真源代碼。其窗體如圖10所示。
圖10 卷積積分
2.5.1 常見信號(hào)波形發(fā)生器
在信號(hào)與系統(tǒng)中,碰到的信號(hào)種類繁多,其波形復(fù)雜。實(shí)驗(yàn)室的波形發(fā)生器數(shù)量有限且昂貴,無法滿足學(xué)生的需求,使得理論學(xué)習(xí)和實(shí)踐嚴(yán)重脫節(jié)。為從一定程度上緩和這種現(xiàn)象,平臺(tái)在“Python 入門”模塊中設(shè)置波形發(fā)生器功能。如圖11 所示,波形發(fā)生器可產(chǎn)生11 種包含正弦波、方波、三角波等參數(shù)可調(diào)的常見信號(hào)波形。同時(shí),當(dāng)鼠標(biāo)接觸畫布時(shí),畫布正下方會(huì)出現(xiàn)“點(diǎn)擊勾選,可調(diào)節(jié)橫軸的范圍”的多選按鈕,點(diǎn)擊勾選后,在彈出的輸入框中設(shè)置時(shí)間軸初始值和末尾值,點(diǎn)擊繪制按鈕,可觀察信號(hào)在不同時(shí)間段內(nèi)的變化特性。與實(shí)驗(yàn)室的波形發(fā)生器相比,該波形發(fā)生器具有完善的界面,易于擴(kuò)展其他功能,且具有參數(shù)可調(diào)、操作簡便、快捷等優(yōu)點(diǎn)。
圖11 波形發(fā)生器
2.5.2 常見信號(hào)波形發(fā)生器
數(shù)據(jù)記錄模塊主要記錄用戶的基本信息和用戶學(xué)習(xí)時(shí)長,并保存在Excel 表中,用戶在每次退出本平臺(tái)時(shí),都會(huì)彈出提示框,提示每日的學(xué)習(xí)時(shí)長情況,如圖12 所示。這一模塊為平臺(tái)提供安全保障,提高學(xué)生的學(xué)習(xí)效率。
圖12 提示框提示信息
采用Python 設(shè)計(jì)并開發(fā)“信號(hào)與系統(tǒng)”綜合學(xué)習(xí)平臺(tái),以教學(xué)內(nèi)容為模塊進(jìn)行設(shè)計(jì)及與考研相結(jié)合形成的教學(xué)體系,效果良好,為教學(xué)帶來極大便利。課程效果問卷調(diào)查結(jié)果顯示,老師和學(xué)生對(duì)本平臺(tái)的評(píng)價(jià)較高。理論強(qiáng)化學(xué)習(xí)的同時(shí),可將理論運(yùn)用到實(shí)踐中,提高學(xué)生的學(xué)習(xí)積極性。目前,在教學(xué)改革不斷完善和考研題型不斷更新的情況下,平臺(tái)題庫不能及時(shí)補(bǔ)充更新,有待后續(xù)工作中進(jìn)一步完善、細(xì)化平臺(tái)的功能。