摘 要:Matlab是一套功能十分強大的工程計算及數據分析軟件,具有友好的可視化編程界面及接近數學表達式的自然化語言。在信號與系統課程的教學中引入該軟件,可以幫助學生完成數值計算、信號與系統分析的可視化建模及仿真調試,通過實例介紹和分析該軟件在信號與系統課程教學中的具體應用,引導學生使用智能化教學軟件,為接下來的專業課程的學習打下堅實的基礎。
關鍵詞:Matlab;信號與系統;輔助教學;可視化建模
中圖分類號:TP391 文獻標識碼:B
文章編號:1004-373X(2008)06-123-03
Application of Matlab in Signal and System Course Teaching
WANG Jieili,JIA Sumei,XUE Fang
(Handan College,Handan,056005,China)
Abstract:Matlab is a kind of engineering computation and data analysis software,which has visual programming interface and natural language of approximate mathematics expression.The software is applied in the course of signal and system,can help students to finish numerical value computation,visual modeling of signal and system analysis and simulation debugging.The practical application in system cource teaching of the software is analyzed.It makes the students use intelligent software in order to study specialized cource.
Keywords:Matlab;signal and system;teaching;visual modeling
1 引 言
《信號與系統》是電子信息與通信類專業本科生的一門重要的專業基礎課程,有著很強的數學背景[1]。然而缺乏足夠的數學基礎和分析技能成為學生有效學習的主要障礙;同時傳統的教學方式在課程的教學中引入了過多的數學推導與分析,使學生在教學過程中扮演著被動的接收者,這令他們產生畏懼和厭學的情緒。在教學過程中,如何向學生介紹抽象的概念,如何促進學生積極主動地學習;如何讓學生了解所學到的理論知識在實際工程計算的應用等。這些在教學中遇到的挑戰促使教師尋找一種有效的教學手段,為學生創造一種輕松、活躍的學習環境,提高教學效率和質量。
2 Matlab的特點
矩陣實驗室(Matrix Laboratory,Matlab)是1984年由美國Mathworks公司推出的數值計算及圖形工具軟件。他最初是作為“矩陣理論”和“數據分析”等課程的計算工具,經過十幾年的發展和完善,目前已成為世界各國在科學分析和計算領域的主流軟件,并被IEEE評述為國際公認的最優秀的科技應用軟件[2]。他的主要特點是:
(1) Matlab可以用來解線性方程組、進行矩陣變換與運算、數據插值運算等,能使用戶從繁雜的數學運算分析中解脫出來;
(2) Matlab中有許多高級的繪圖函數,包括二維、三維、專用圖形函數、圖形句柄、用戶圖形界面工具等,利用這些函數可以輕松地完成各種圖形的繪制和編輯工作,實現計算結果和編程的可視化;
(3) 友好的用戶界面和接近數學表達式的自然化語言,使學習者易于學習和掌握;
(4) 功能豐富的應用工具箱(如信號處理工具箱、通信工具箱、控制系統工具箱等)為用戶提供了大量方便實用的處理工具[3]。
Matlab的上述特點,使他深受工程技術人員及科技專家的歡迎,并很快成為應用學科計算機輔助分析、設計、仿真、教學等領域不可缺少的基礎軟件。目前,國內很多理工院校已經或者正在把該軟件作為學生必須掌握的一種軟件。針對信號與系統課程內容的特點,利用Matlab的信號處理工具箱和圖形處理及數據可視化,教師可以將結論直接用圖形來演示,從而讓學生對抽象的概念和定理以及結論有直觀的認識,并加深對一些重要概念的理解。
3 Matlab在信號與系統課程中的應用
Matlab強大的圖形處理功能及符號運算功能,為實現信號的可視化及系統分析提供了強有力的工具。Matlab強大的工具箱函數可以分析連續信號、連續系統;同樣也可以分析離散信號、離散系統,并可以對信號進行各種分析域計算,如相加、相乘、移位、反折、傅里葉變換、拉氏變換、Z變換等多種計算。如果教師能結合以圖形來輔助教學,那就能達到事半功倍的效果,從而提高教學質量[4]。
3.1 描述連續系統沖擊和階躍響應
描述某連續系統的微分方程為:
y3(t)+y2(t)+2y′(t)+5y(t)=4f′(t)+f(t)
可以應用Matlab工具箱中impulse( )函數及step( ),運行如下命令:a=[1 1 2 5];b=[4 1];impulse(b,a),title(‘連續系統的沖擊響應’);step(b,a),title(‘連續系統的階躍響應’);上述命令繪制的沖擊響應及階躍響應波形圖如圖1,2所示。
圖1 連續系統
圖2 連續系統的沖擊響應
3.2 描述離散系統的單位響應
描述某離散系統的差分方程為:
y(k)+3y(k-1)+2y(k-2)=f(k)
運行如下Matlab命令:a=[1 3 2];b=[1];impz(b,a),title(‘離散系統的單位沖擊響應’);則繪出該離散系統的單位響應的時域波形如圖3所示。
在理論課程的教學過程中,只是給出數學表達式,信號的波形按常規的方法在課堂很難一一畫出,造成學生對信號分析方面的知識感覺太抽象、理解不深。如果在教學中給出具體圖形,就可以用他準確描述所要分析的信號的時域波形,使學生能夠加深理解。
3.3 描述信號的的拉普拉斯變換
單位階躍信號ε(t)的拉普拉斯變換和傅里葉變換如下:
F(s)=1s,F(jω)=πδ(ω)+1jω
可以利用Matlab的三維繪圖功能來繪出該信號的拉普拉斯變換的曲面圖,實現這一過程的程序如下:
x1=-0.2:0.03:0.2;y1=0.2:0.03:0.2;
[x,y]=meshgrid(x1,y1);s=x+i*y;fs=abs(1./s);mesh(x,y,fs);
surf(x,y,fs);title(′單位階躍信號ε(t)拉氏變換曲線圖′);colormap(hsv);axis([-0.2,0.2,-0.2,0.2,0,60]);rotate3d;
現在用Matlab繪制該信該信號的傅里葉變換曲線(振幅頻譜),對應的Matlab命令如下:syms t w ;ut=sym(′Heaviside(t)′);fw=fourier(ut);fwp=abs(fw);ezplot(fwp);title(‘傅里葉變換(振幅頻譜曲線)’);xlabel(‘頻率w’)。
圖3 離散系統的單位沖擊響應
上述程序繪制的拉普拉斯變換曲面圖及傅里葉變換曲面圖如圖4,5所示,通過對兩圖的觀察和比較,可直觀地觀察到拉普拉斯變換和傅里葉變換的對應關系。同時通過軟件的繪圖功能,可以描繪出響應變換的三維圖象,提高教師的授課效率。
圖4 拉普拉斯變換曲面圖
圖5 傅里葉變換
3.4 描述有限長序列的圓周卷積
通過Matlab可以形象地描述2個有限長序列的圓周卷積,幫助對圓周卷積的理解[5]。有限長序列x1(n)=(0.8)n(0≤n≤10)與x2(n)=(0.6)n(0≤n≤18)的圓周卷積(N=20),其對應的Matlab命令如下(見圖6):
N=20;N1=10;N2=18;n=0:1:N-1;n1=0:1:N1-1;n2=0:1:N2-1;x1=(0.8).^n1;x2=(0.6).^n2;y=circonvt(x1,x2,N);subplot(3,1,1);stem(n1,x1);subplot(3,1,2);stem(n2,x2);subplot(3,1,3);stem(n,y)
其中,序列的圓周移位cirshift.m命令如下:
function y=cirshift(x,m,N);if length(x)>N error(′N must be >=the length of x′);end;x=[x,zeros(1,N-length(x))];n=0:1:N-1;n=mod(n-m,N);y=x(n+1);
序列的圓周卷積circonvt.m命令如下:
function y=circonvt(x1,x2,N);if length(x1)>N error(′N must be >=the length of x1′);end;if length(x2)>N error(′N must be >=the length of x2′);end;x1=[x1,zeros(1,N-length(x1))];x2=[x2,zeros(1,N-length(x2))];m=0:1:N-1;H=zeros(N,N);for n=1:1:N H(n,:)=cirshift(x2,n-1,N);end;y=x1*H′;。
從以上例子可以看出,對于那些需要通過常規形象方法進行分析的較難的問題,如果利用Matlab可以方便快捷地得到答案,能使學生和教師從繁瑣的運算和畫圖中解放出來
圖6 有限長序列的圓周卷積
3.5 描述FFT在信號分析中的應用
使用頻譜分析方法從受噪聲污染的信號x(t)中鑒別出有用的信號,對應的Matlab命令如下(見圖7):
t=0:0.001:1;x=sin(2*pi*100*t)+sin(2*pi*200*t)+rand(size(t));Y=fft(x,512);f=1000*(0:256)/512;subplot(2,1,1),plot(x(1:50));subplot(2,1,2),plot(f,Y(1:257));
從圖7可以看出,從受噪聲污染信號的時域形式中,很難看出正弦波的成分。但是通過對x(t)做傅里葉變換,使用Matlab工具把時域信號變換到頻域進行分析,可以明顯看出信號中100 Hz和200 Hz的2個頻率分量[5]。
圖7 時域信號和頻域信號的比較
4 結 語
大量的數學運算一直是影響信號與系統課程教學效果的一個重要元素,應注重利用計算機技術進行科學計算。淡化計算公式的熟練使用和解題技巧,在計算能力方面和技巧方面,側重計算方法。Matlab具有強大的計算功能,可以用來解線性代數問題、微積分問題、常微分方程、非線性方程以及進行統計分析等,復雜的數學運算變得只需簡單得幾個語句就完成,不僅可以輕松求出系統響應的數值解,而且可以繪制系統響應的時域波形,大大提高學習效率[6]。從而使學生脫離繁雜的數學運算,重點進行系統分析,同時也提高利用計算機編程解決實際問題的能力。
現今社會信息技術迅速發展,新理論和新技術不斷涌現,信號與系統課程必須與時代俱進,不斷更新教學方法與手段,深化教學改革。通過在信號系統的實際教學中應用Matlab,引導學生使用智能化的教學軟件,直觀地理解和領會課本中的抽象內容,提高學生的學習興趣,增進對問題本質的認識,加強思維方法的創新,達到提高教學質量改善教學效果的目的,同時使學生在掌握課程本身的同時。也掌握一門重要的開發語言,為后繼專業課程的學習打下堅實的基礎。
參考文獻
[1]燕慶明.信號與系統教程[M].北京:高等教育出版社,2004.
[2]樓順天,于衛.Matlab程序設計語言[M].西安:西安電子科技大學出版社,1997.
[3]樓順天.基于Matlab的系統分析與設計[CD2]信號處理[M].西安:西安電子科技大學出版社,2001.
[4]龔錦紅.Matlab在《信號與系統分析》課程教學中的應用\\[M\\].華東交通大學學報,2005(5):168-171.
[5]薛年喜.Matlab在數字信號處理中的應用\\[M\\].北京:清華大學出版社,2003.
[6]黃文梅,熊桂林.信號分析與處理:Matlab語言及應用 [M].長沙:國防科技大學出版社,2000.
[7]楊亞輝.用Matlab深入學習和理解矩陣知識\\[J\\].現代電子技術,2007,30(6):175-177.
[8]付銀娟.基于Matlab的LFM信號的正交變換和脈沖壓縮\\[J\\].現代電子技術,2007,30(15):61-63.
[9]趙秀玲,張利,武玉強.Matlab輔助DSP實現FIR數字濾波器\\[J\\].現代電子技術,2007,30(9):38-40.
[10]司淑平,邵左文,王國波.Matlab計算模塊嵌入LabVIEW實現混沌噪聲的產生\\[J\\]. 現代電子技術,2006,29(6):51-53.
[11]趙秀玲,張利,武玉強.Matlab輔助DSP實現FIR數字濾波器\\[J\\].現代電子技術,2007,30(9):38-40.
[12]付銀娟.基于Matlab的LFM信號的正交變換和脈沖壓縮\\[J\\].現代電子技術,2007,30(15):61-63.
作者簡介 王潔麗 女,1980年出生,碩士,講師.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。