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