魯 瑩,明念坤
(西南林業大學大數據與智能工程學院,昆明 650224)
《信號與系統》在電子信息類相關專業中處于非常重要的地位,且是信號處理類的學科基礎課,此類課程是以信號特性和處理等工程問題為背景,經數學抽象及理論概括而形成的理論性和系統性很強的課程。其不僅概念抽象,數學公式推導也較為繁雜,結果較難理解。教好和學好此類課程對學生建立專業基礎、進一步讀研深造至關重要。傳統教學模式已無法滿足學生的需求,當前改革任務是探索多模式教學方法[1-2]。近幾年來,考研人數逐年增多,導致“考研熱”持續升溫,使考研競爭日益白熱化[3-4]。基于課程的教學改革,結合當前日益趨多的學生選擇該方向作為考研,開發“信號與系統”綜合學習平臺軟件,充分與當前形勢相結合。
目前,關于“信號與系統”教學輔助平臺絕大多數采用MathsWorks 公司開發的Matlab 軟件進行仿真。魯瑩等[5]用Matlab開發的教學輔助平臺,方便學生形象直觀地理解、掌握課程中的基本知識[6-8]。考慮到Matlab 作為商業軟件,價格不菲,若用于學術、研究或其他用途,需獲得版權授權許可,且存在被禁用風險[9]。在大數據時代下,Python 作為開源軟件,是一種解釋性的、面向對象的、互動式的、帶有動態語義的高級程序設計語言[10],廣泛應用于科學運算和工程領域[11]。在豐富的第三方庫支持下,Python 在信號處理、科學計算等多方面優勢日益明顯。因此,采用Python 語言設計并開發“信號與系統”綜合學習平臺更完整、更容易實現,操作更簡便,形象直觀,易于擴展。
平臺架構由登錄窗體、主窗體和36 個子窗體組成,如圖1所示。主窗體的結構結合吳大正等[12]信號與線性系統分析的章節進行設計,由8個固定的模塊組成,每個模塊都涵蓋了講義、重要擴展知識、例題、習題、習題解析及參數可調的動態窗口仿真。平臺采用Python 以PyQt5庫為核心設計平臺GUI 界面[13],結合了在數值計算中起關鍵作用的NumPy 庫、執行代數運算處理的SciPy 庫、用于符號運算的SymPy 庫和將結果繪制成圖表的Matplotlib庫[14-15]。

圖1 平臺架構框圖
流程框圖如圖2 所示。用戶登錄成功后方可進入平臺,在平臺主窗體中可選擇相應模塊進行學習。

圖2 流程框圖
登錄窗口如圖3 所示,其分為登錄和注冊兩部分。用戶需輸入正確的用戶名和密碼方可進入主窗體,其中用戶名和密碼存儲在Excel 文件中。

圖3 登錄窗口
主窗口如圖4所示。可通過按鈕進行8個模塊的功能訪問,同時,為了讓用戶有更為親切和舒適的體驗感,使用我校一景觀點圖片作為其背景圖片。在主窗體的右下方可顯示當前時間、登錄用戶、指導教師和開發者。

圖4 主窗口
限于篇幅,本文僅節選重要擴展知識模塊中的“連續時間的平移、反轉和尺度變換”“奇偶分解”以及“卷積積分”進行介紹。
2.4.1 連續時間信號的平移、反轉和尺度變換運算
連續時間信號的平移、反轉和尺度變換運算是第一章入門知識點,尤其涉及三者運算順序時,學生學習過程中會碰到其運算方法種類多、過程復雜,導致錯誤率高。平臺中計算信號的平移、反轉和尺度變換運算,只需下拉組合框選擇信號f1(t)和運算類型,再點擊繪制按鈕,即可得出波形圖。同時,用戶還可查看信號的表達式和仿真源代碼,其窗口如圖5所示。連續時間信號的平移,即f(t) ?f(t-b),其算法原理是,若b>0,f(t)右移b,若b<0,f(t)左移|b|。如圖6所示,f(t)左移一個單位所得f(t+ 1)的函數圖像。信號的反轉,即f(t) ?f(-t)。如圖7 所示,f(t)以縱軸鏡像對稱得到f(-t)的函數圖像。信號的尺度變換,即f(t) ?f(|a|t),其算法原理是,若|a| >1,f(t)以原點為基準點,在時間軸上壓縮;若|a| <1,f(t)以原點為基準點,在時間軸上展寬。如圖8 所示,f(t)以原點為基準點,壓縮兩倍得到f(2t)的函數圖像。

圖5 信號的平移、反轉和尺度變換運算窗口

圖6 信號的平移運算

圖7 信號的反轉運算

圖8 信號的尺度變換運算
2.4.2 奇偶分解
為了便于研究復雜信號的傳輸和處理問題,通常將復雜信號進行分解。任何信號可分解為偶分量和奇分量之和,其算法原理為
其中:偶分量fe(t)=fe(-t), 奇分量fo(t)=-fo(-t),其二者的算法原理為
這部分知識點簡單,但學生易混淆奇偶分量的公式,平臺通過查看源代碼和信號分解成奇偶分量的波形,幫助學生掌握這部分知識點。在計算信號的奇偶分解時,只需下拉組合框選擇信號f(t),點擊繪制按鈕,即可得出波形圖。同時,可仿真源代碼,其窗口如圖9所示。

圖9 奇偶分解
2.4.3 卷積積分
卷積積分是一種重要的數學方法[12]。已知定義在區間(-∞,+∞)上的兩個函數f1(t)和f2(t),則定義:
卷積積分是考研重點,學生在學習時會感到枯燥,且難以理解和掌握,因此,學好卷積積分為學習后續章節打下良好基礎。完成卷積運算通常可以通過定義求解、圖解法以及性質進行運算,且這幾年考研題目側重于考查學生作圖能力,但對于初學者存在概念難理解、公式難記易混淆、靜不下心去研究卷積過程中的每一個步驟等問題。本平臺可更好地、更直觀地幫助理解。在平臺中計算卷積積分,只需選擇信號f1(t)和f2(t),點擊下拉組合框中的運算類型,再點擊繪制按鈕,即可得出波形圖,還可查看信號的表達式和仿真源代碼。其窗體如圖10所示。

圖10 卷積積分
2.5.1 常見信號波形發生器
在信號與系統中,碰到的信號種類繁多,其波形復雜。實驗室的波形發生器數量有限且昂貴,無法滿足學生的需求,使得理論學習和實踐嚴重脫節。為從一定程度上緩和這種現象,平臺在“Python 入門”模塊中設置波形發生器功能。如圖11 所示,波形發生器可產生11 種包含正弦波、方波、三角波等參數可調的常見信號波形。同時,當鼠標接觸畫布時,畫布正下方會出現“點擊勾選,可調節橫軸的范圍”的多選按鈕,點擊勾選后,在彈出的輸入框中設置時間軸初始值和末尾值,點擊繪制按鈕,可觀察信號在不同時間段內的變化特性。與實驗室的波形發生器相比,該波形發生器具有完善的界面,易于擴展其他功能,且具有參數可調、操作簡便、快捷等優點。

圖11 波形發生器
2.5.2 常見信號波形發生器
數據記錄模塊主要記錄用戶的基本信息和用戶學習時長,并保存在Excel 表中,用戶在每次退出本平臺時,都會彈出提示框,提示每日的學習時長情況,如圖12 所示。這一模塊為平臺提供安全保障,提高學生的學習效率。

圖12 提示框提示信息
采用Python 設計并開發“信號與系統”綜合學習平臺,以教學內容為模塊進行設計及與考研相結合形成的教學體系,效果良好,為教學帶來極大便利。課程效果問卷調查結果顯示,老師和學生對本平臺的評價較高。理論強化學習的同時,可將理論運用到實踐中,提高學生的學習積極性。目前,在教學改革不斷完善和考研題型不斷更新的情況下,平臺題庫不能及時補充更新,有待后續工作中進一步完善、細化平臺的功能。