呂治國
(洛陽理工學(xué)院計算機(jī)與信息工程系,河南洛陽471023)
“信號與系統(tǒng)”是高等工科院校通信與電子信息類專業(yè)的一門重要專業(yè)基礎(chǔ)課程,占有較高的學(xué)分,也是信息類專業(yè)碩士研究生入學(xué)的必考課程。其中的概念和分析方法廣泛應(yīng)用于通信技術(shù)、信號與信息處理、電路與系統(tǒng)等眾多領(lǐng)域,為學(xué)生學(xué)習(xí)“通信原理”、“數(shù)字信號處理”、“數(shù)字圖像處理”等眾多后續(xù)相關(guān)課程奠定重要基礎(chǔ)。是一門承前啟后的關(guān)鍵課程,引導(dǎo)學(xué)生從電路分析領(lǐng)域到信號處理和傳輸領(lǐng)域,因此,讓學(xué)生較好地掌握該課程的基本理論知識和基本分析方法,對學(xué)生進(jìn)一步學(xué)習(xí)相關(guān)理論知識,以及畢業(yè)后從事專業(yè)工作能力的培養(yǎng),都具有極為重要的作用。
但是,該課程概念抽象,理論性極強(qiáng),涉及知識面廣,主要以數(shù)學(xué)推導(dǎo)為核心,應(yīng)用的數(shù)學(xué)理論和數(shù)學(xué)公式多,如可積分,可求導(dǎo),級數(shù),留數(shù)定理等等。計算又十分抽象、復(fù)雜、煩瑣,如卷積、積分。如果僅依靠傳統(tǒng)的黑板加粉筆教學(xué)模式和做課后習(xí)題來理解鞏固課程的教學(xué)內(nèi)容,對應(yīng)用性較強(qiáng)內(nèi)容不能實際動手調(diào)試分析,學(xué)生很難真正理解它的本質(zhì)意義和知識點之間的內(nèi)在聯(lián)系,不能學(xué)以致用,教學(xué)效果也將會受到限制[1]。因此,如何把抽象的數(shù)學(xué)概念和推導(dǎo)與實際應(yīng)用聯(lián)系起來,幫助學(xué)生理解與掌握該課程中的基本原理及基本分析方法,培養(yǎng)學(xué)生綜合應(yīng)用所學(xué)知識解決實際問題的能力,是該課程教學(xué)中要解決的重要問題。因此,在信號與系統(tǒng)課程中都設(shè)置了大量的實驗環(huán)節(jié)來鞏固和加深對信號與系統(tǒng)理論教學(xué)中重要概念和理論的理解。
MATLAB是matrix和laboratory前三個字母的縮寫,其含義為矩陣實驗室,是MathWorks公司推出的數(shù)學(xué)類應(yīng)用軟件。經(jīng)過20多年的不斷發(fā)展與完善,MATLAB已發(fā)展成為由MATLAB語言、MATLAB工作環(huán)境、MATLAB圖形處理系統(tǒng)、MATLAB數(shù)學(xué)函數(shù)庫和MATLAB應(yīng)用程序接口五大部分組成的功能強(qiáng)大的系統(tǒng)。MATLAB由主包、三十多個擴(kuò)展功能和應(yīng)用學(xué)科性的工具箱(Toolboxes)組成。它具有頂尖的數(shù)值計算功能,強(qiáng)大的圖形可視化功能及簡單易學(xué)的科學(xué)便箋式工作環(huán)境和編程語言,深受工程技術(shù)人員和科技人員的喜愛,并成為計算機(jī)輔助教學(xué)的基礎(chǔ)軟件。借助于MATLAB軟件可以幫助學(xué)生完成大量的數(shù)值運(yùn)算,并將對信號與系統(tǒng)的分析進(jìn)行可視化建模,有助于對抽象理論原理的理解[2]。本文利用Matlab的GUI界面編程建立了一套信號與系統(tǒng)仿真演示系統(tǒng),幫助學(xué)生理解相關(guān)的概念和理論。該系統(tǒng)界面友好,操作簡單,既可作為教師課堂上的教學(xué)演示,也可作為學(xué)生課后自學(xué)和復(fù)習(xí)的工具。
該演示系統(tǒng)以信號與系統(tǒng)課程內(nèi)容聯(lián)系為框架,把課程內(nèi)容逐一放在自己的小框架內(nèi)。系統(tǒng)構(gòu)架采用模塊化方式,根據(jù)課程內(nèi)容將演示系統(tǒng)分為以下幾個主模塊,即基本信號和基本運(yùn)算,連續(xù)時間系統(tǒng)時域分析,頻域分析,復(fù)頻域分析,離散時間系統(tǒng)時域分析,Z域分析,狀態(tài)變量。每個主模塊又分別由若干子模塊組成,比如基本信號的顯示和運(yùn)算,卷積,信號的拉氏變換、傅里葉變換,Z變換;系統(tǒng)頻率特性等小單元。上下級單元模塊采用多級嵌套形式,主界面中顯示主系統(tǒng)入口,點擊相應(yīng)模塊標(biāo)簽菜單目錄即可進(jìn)入相應(yīng)模塊界面。主界面如圖1所示,以下就以具體的幾個小模塊為例進(jìn)行說明。
圖1 仿真系統(tǒng)主界面
任何一個周期函數(shù)在滿足一定條件下都可以分解為傅里葉級數(shù)。比如周期性的方波展開為傅里葉級數(shù),展開公式為:
分別顯示這個式子中的前一項到前5項,比較波形變化情況,可以幫助學(xué)生非常輕松地理解傅里葉級數(shù)的意義。圖2中左圖是前5項疊加的結(jié)果,圖2中右圖是前2項疊加的結(jié)果,從圖中可以清楚地看到,取的項數(shù)越多,誤差越小,和原波形就越接近。
圖2 信號的分解和合成結(jié)果
學(xué)生剛開始接觸頻域的信號時候,對于一個信號既能在時域顯示又能在頻域顯示感到很不理解。對于幾個在時域中混疊在一起的信號還能在頻域把他們分開更是費(fèi)解。我們把自己說的一句話輸入到電腦中,分別顯示它在時域中的樣子,還顯示它在頻域中的樣子,幫助學(xué)生們直觀地了解了同樣一個信號在不同域中的顯示情況,為后續(xù)的濾波知識打下基礎(chǔ)。圖3中左圖是語音信號的時域顯示,中圖是頻域顯示,縱坐標(biāo)是各個頻率點的信號幅度值,右圖也是頻域顯示,縱坐標(biāo)以分貝為單位顯示。
圖3 信號的時域頻域顯示
對于幾個在時域中混疊在一起的信號還能在頻域把他們分開的原理學(xué)生一直不是很理解。針對這個抽象的原理,可以采用直觀的圖形來幫助學(xué)生理解。首先給出一個單邊指數(shù)信號f1=exp(-0.5*t),信號的圖形如圖4中左上圖所示。然后再給出一個在時域中互相重疊的信號f=f1+f1.*fc1+f1.*fc2+f1.*fc3,fc1,fc2,fc3 是三個載波信號。該重疊信號在時域中的樣子如圖4中右上圖所示。信號f1的頻譜如圖4中的左下圖所示,而重疊信號的頻譜如圖4右下圖所示。從圖中可以看出,原信號的頻譜和在三個載波處的頻譜互不重疊,可以在頻域中分開。又根據(jù)時域信號和頻域信號攜帶信息等價的結(jié)論,就可以完全得到原信號f1的全部信息[3]。這個原理在調(diào)制解調(diào),濾波等方面都有用到。
基于MATLAB設(shè)計本身不能脫離MATLAB運(yùn)行環(huán)境。為了使用方便,將其生成exe可執(zhí)行文件,在 Command Window中輸入mcc–m -a語句將m文件生成exe文件和ctf文件,在未安裝MATLAB的計算機(jī)上安裝MCR組件后就可以直接運(yùn)行該程序了[4]。
本文針對信號與系統(tǒng)課程抽象繁雜,理論性較強(qiáng)難以進(jìn)行交互式教學(xué)的特點,在信號與系統(tǒng)教學(xué)中引入MATLAB軟件,介紹了利用MATLAB的GUI界面編程方法構(gòu)建信號與系統(tǒng)仿真演示系統(tǒng)的方法,并介紹了幾個典型的演示實例。該系統(tǒng)界面美觀,清晰,具有良好的人機(jī)交互界面。學(xué)生通過學(xué)習(xí)編程,編寫修改程序,繪制曲線,觀察波形,分析實驗結(jié)果,大大激發(fā)了學(xué)生的學(xué)習(xí)興趣,使學(xué)生很快掌握了編程方法和解決實際問題的技巧。實踐證明該系統(tǒng)可以使抽象的概念定理和復(fù)雜的數(shù)學(xué)推導(dǎo)簡單直觀化,并在教師學(xué)生共同地、不斷地修改下日趨成熟,最后改善了教學(xué)效果,對相關(guān)學(xué)科課程的教學(xué)也起到了促進(jìn)作用。
[1]熊慶旭.信號與系統(tǒng)中三個層次教學(xué)探索[J].電氣電子教學(xué)學(xué)報,2009,(1):5 -7.
[2]陳垚光,毛濤濤,王正林,等.精通 MATLAB GUI設(shè)計[M].北京:電子工業(yè)出版社,2008.
[3]張威.MATLAB基礎(chǔ)與編程入門[M].西安:西安電子科技大學(xué)出版社,2004.
[4]何強(qiáng),何英.MATLAB擴(kuò)展編程[M].北京:清華大學(xué)出版社,2002.