陳 杰,張樹艷
(塔里木大學 信息工程學院,新疆 阿拉爾 843300)
Matlab是一門強大的計算軟件,不僅具有強大的計算功能和豐富的圖形圖像顯示功能,還給用戶提供了交互式環境[1],被稱為三大數學軟件之一。它將數值分析、矩陣計算、科學數據可視化以及非線性動態系統的建模和仿真等諸多強大功能集成在一個易于使用的視窗環境中,為科學研究、工程設計以及必須進行有效數值計算的眾多科學領域提供了一種全面的解決方案,并在很大程度上擺脫了傳統非交互式程序設計語言(如C、Fortran)的編輯模式。另外它專門針對通信工程專業學科給出了專門的模塊和函數,所以,這個軟件深受通信類專業教師和學生的喜愛。在通信工程專業中,專業核心課程“通信原理”和“信號系統”的課程設計以及部分實驗均采用Matlab軟件進行仿真和分析,專業必修課程“數字信號處理”“通信電子線路”“移動通信”和“數字圖像處理技術”等也采用Matlab進行輔助教學和實驗講解。畢業設計中,將近一半的同學使用Matlab進行編程設計,此門語言可謂是通信工程專業的一個法寶,所以“Matlab程序設計”課程在通信工程專業中很受重視。但是由于教學安排和課程壓縮,這門課的課時并不多,一般開設在第三學期,共40個學時左右。因此這門課授課內容和授課安排至關重要,既要考慮到學生的學習深度,也要考慮到學生接觸面的廣度,更要考慮到學生的接受能力。
本文基于以上幾點,對整個課程做幾點改進,以此增強學生的掌握程度和知識量,讓學生在有限的課堂上掌握更多的知識。
對軟件做整體介紹,兩個理論學時,簡明扼要地講解各個窗口的作用、常用的菜單以及工具,不過多地占用時間。
矩陣知識,包括矩陣的定義、算術運算和關系運算。重點講述點運算,這種運算是在以往知識中沒有接觸過的,容易與普通算數運算混淆。矩陣的拆分和引用是一個難點,要詳細講述。通信工程專業的學生在大一的兩個學期會安排線性代數課程,這一部分內容可以結合線性代數知識進行講解,這樣既激起學生對“Matlab程序設計”的興趣,又可以讓學生對數學知識有一個新的理解。安排4個學時。
矩陣分析主要包括常用矩陣的一些特殊矩陣,這些矩陣每個都有它的特別之處。本專業學生在第三學期一般會開設“信號與系統”課程,比如“ones”和“zeros”這兩個常用矩陣可以結合“信號與系統”中單位脈沖函數和單位階躍函數[2]進行講解,如圖1—3所示,降低了此部分內容的枯燥程度,也能讓學生對專業知識之間的關系有個很好的認識。讓學生了解每個矩陣的特點對記憶這些矩陣有很大的幫助。魔方矩陣可以結合它的歷史進行講述,希爾伯特矩陣、三角陣及矩陣的特征分析均可結合線性代數上的實例進行講述,幫助學生理解。此處安排2個學時。

圖1 單位階躍函數

圖2 單位脈沖函數

圖3 信號調制和載波信號
單位階躍函數和單位脈沖函數代碼:
x=-5:5;
y=[zeros(1,5) 1 zeros(1,5)];
stem(x,y)
xlabel(‘時間');
ylabel(‘幅度');
title(‘單位脈沖函數')
x=-5:5;
y=[zeros(1,5) ones(1,6)];
stem(x,y)
xlabel(‘時間');
ylabel(‘幅度');
title(‘單位階躍函數')
程序設計語言結構是整個教程中的重點,學生只有掌握了各種語言結構才能著手寫程序。以往的教學中大部分是按照教程結構進行授課,即先講授各種程序設計結構,然后講述函數文件和命令文件。這在一定程度上混淆了學生的理解,接受起來不那么容易。本文先采用一個簡單的學生能接受的編程例子講授命令文件和函數文件的區別,等學生理解這個概念之后再講函數語句,首先從順序結構入手,然后循環語句,再次條件語句,每講完一個語句均出練習題讓學生自行練習,這樣起到加深理解和記憶的作用。本章安排6個學時。
用Matlab語言繪制各種圖形。這一部分學起來很簡單,但是函數語句特別多,而且同一種函數有若干種用法,這就要結合教程中的函數語句舉例給學生練習。在教學過程中,學生的練習和聽課一樣重要,很多程序語言,看似簡單,也很容易聽懂,但是學生一寫就出錯。所以一定采取各種方式讓學生練習編程。在編程的過程中教給學生怎樣尋找錯誤和改正錯誤,這才是學生從這門課程中最應該學會的東西。這一部分的教學中要先歸類,二維和三維的圖形繪制分開講述。二維繪圖指令較多,可以采用子圖的形式同時繪制出來,讓學生在比較的情況下進行記憶和分析,這有利于掌握每種指令的特點。此處可以引入“通信原理”課程的各種調制方法給學生講解[3],如圖4所示,這對他們理解函數指令和通信專業術語都有幫助。三維繪圖中,分為三維曲面圖和三維曲線圖,采用子圖的方式繪制出mesh,surf和plot3三種三維曲面圖,把各自特點進行比較,便于學生分析和記憶。本章安排4個學時。
圖形用戶界面知識點對學生來講用處特別廣,傳統的教學方式就是從頭至尾把每個指令語句給學生講解一遍,再演示一下它的功能,但是由于課時有限,采用傳統的教學方式只會讓學生知難而退,不能起到預期的效果。因此可以用它來開發一個“信號與系統”課程的實驗平臺[4]的小程序給學生講授,如圖4所示。在小程序中給學生講解每一句的作用,這樣不僅加深學生的記憶,對學生學習積極性也有很好的調動。之后給學生布置一個課后作業,比如給學生演示一個計算器的設計或者一個鋼琴鍵盤的設計,都能激發學生的好奇心,調動學生主動學習的興趣。本章安排2個學時。

圖4 信號與系統實驗平臺
數據處理和數據分析計劃兩個學時,主要講授數據插值和數據擬合部分,其他的數據處理函數可以讓學生簡單看一遍,用到時知道去哪里查找用法即可。數據插值部分可以分為一維插值和二維插值。一維插值根據每日天氣溫度隨時間的變化數據給學生當例題講授,學生對很多理論知識的理解借助于日常生活會更好地接受。二位插值使用溫室大棚的溫度、濕度隨時間變化的數據作為案例進行講述。數據擬合部分也使用溫度隨時間的變化數據進行講述,能用一個方程式表示一天溫度的變化情況,而且這個表達式是學生自己用程序語言編寫,相信每一個學生都會留下很深的印象。本章安排2個學時。
Simulink知識計劃2個學時。Simulink模塊較多,對于通信工程專業的學生,重點講授Simulink基本知識和通信模塊,如圖5所示,以搭建一個mimo通信系統為例進行課堂講述,由于課時有限,通信模塊原理性的東西不再贅述,主要講述模塊的使用和產生的信號種類以及參數的設置方法。剩余的時間讓學生多練習多分析,熟能生巧。

圖5 通信模塊
實驗課的安排如表1所示。

表1 實驗分配
根據“Matlab程序設計”課時被壓縮的現象進行教學計劃調整,通過把專業課知識引入課程的方法提高學生學習的興趣,在有限的課時里能讓學生掌握的知識量最大化。事實證明,這種安排是一種有效的教學方法。