摘 要:Matlab是一套功能十分強(qiáng)大的工程計(jì)算及數(shù)據(jù)分析軟件,具有友好的可視化編程界面及接近數(shù)學(xué)表達(dá)式的自然化語言。在信號與系統(tǒng)課程的教學(xué)中引入該軟件,可以幫助學(xué)生完成數(shù)值計(jì)算、信號與系統(tǒng)分析的可視化建模及仿真調(diào)試,通過實(shí)例介紹和分析該軟件在信號與系統(tǒng)課程教學(xué)中的具體應(yīng)用,引導(dǎo)學(xué)生使用智能化教學(xué)軟件,為接下來的專業(yè)課程的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。
關(guān)鍵詞:Matlab;信號與系統(tǒng);輔助教學(xué);可視化建模
中圖分類號:TP391 文獻(xiàn)標(biāo)識碼: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 引 言
《信號與系統(tǒng)》是電子信息與通信類專業(yè)本科生的一門重要的專業(yè)基礎(chǔ)課程,有著很強(qiáng)的數(shù)學(xué)背景[1]。然而缺乏足夠的數(shù)學(xué)基礎(chǔ)和分析技能成為學(xué)生有效學(xué)習(xí)的主要障礙;同時傳統(tǒng)的教學(xué)方式在課程的教學(xué)中引入了過多的數(shù)學(xué)推導(dǎo)與分析,使學(xué)生在教學(xué)過程中扮演著被動的接收者,這令他們產(chǎn)生畏懼和厭學(xué)的情緒。在教學(xué)過程中,如何向?qū)W生介紹抽象的概念,如何促進(jìn)學(xué)生積極主動地學(xué)習(xí);如何讓學(xué)生了解所學(xué)到的理論知識在實(shí)際工程計(jì)算的應(yīng)用等。這些在教學(xué)中遇到的挑戰(zhàn)促使教師尋找一種有效的教學(xué)手段,為學(xué)生創(chuàng)造一種輕松、活躍的學(xué)習(xí)環(huán)境,提高教學(xué)效率和質(zhì)量。
2 Matlab的特點(diǎn)
矩陣實(shí)驗(yàn)室(Matrix Laboratory,Matlab)是1984年由美國Mathworks公司推出的數(shù)值計(jì)算及圖形工具軟件。他最初是作為“矩陣?yán)碚摗焙汀皵?shù)據(jù)分析”等課程的計(jì)算工具,經(jīng)過十幾年的發(fā)展和完善,目前已成為世界各國在科學(xué)分析和計(jì)算領(lǐng)域的主流軟件,并被IEEE評述為國際公認(rèn)的最優(yōu)秀的科技應(yīng)用軟件[2]。他的主要特點(diǎn)是:
(1) Matlab可以用來解線性方程組、進(jìn)行矩陣變換與運(yùn)算、數(shù)據(jù)插值運(yùn)算等,能使用戶從繁雜的數(shù)學(xué)運(yùn)算分析中解脫出來;
(2) Matlab中有許多高級的繪圖函數(shù),包括二維、三維、專用圖形函數(shù)、圖形句柄、用戶圖形界面工具等,利用這些函數(shù)可以輕松地完成各種圖形的繪制和編輯工作,實(shí)現(xiàn)計(jì)算結(jié)果和編程的可視化;
(3) 友好的用戶界面和接近數(shù)學(xué)表達(dá)式的自然化語言,使學(xué)習(xí)者易于學(xué)習(xí)和掌握;
(4) 功能豐富的應(yīng)用工具箱(如信號處理工具箱、通信工具箱、控制系統(tǒng)工具箱等)為用戶提供了大量方便實(shí)用的處理工具[3]。
Matlab的上述特點(diǎn),使他深受工程技術(shù)人員及科技專家的歡迎,并很快成為應(yīng)用學(xué)科計(jì)算機(jī)輔助分析、設(shè)計(jì)、仿真、教學(xué)等領(lǐng)域不可缺少的基礎(chǔ)軟件。目前,國內(nèi)很多理工院校已經(jīng)或者正在把該軟件作為學(xué)生必須掌握的一種軟件。針對信號與系統(tǒng)課程內(nèi)容的特點(diǎn),利用Matlab的信號處理工具箱和圖形處理及數(shù)據(jù)可視化,教師可以將結(jié)論直接用圖形來演示,從而讓學(xué)生對抽象的概念和定理以及結(jié)論有直觀的認(rèn)識,并加深對一些重要概念的理解。
3 Matlab在信號與系統(tǒng)課程中的應(yīng)用
Matlab強(qiáng)大的圖形處理功能及符號運(yùn)算功能,為實(shí)現(xiàn)信號的可視化及系統(tǒng)分析提供了強(qiáng)有力的工具。Matlab強(qiáng)大的工具箱函數(shù)可以分析連續(xù)信號、連續(xù)系統(tǒng);同樣也可以分析離散信號、離散系統(tǒng),并可以對信號進(jìn)行各種分析域計(jì)算,如相加、相乘、移位、反折、傅里葉變換、拉氏變換、Z變換等多種計(jì)算。如果教師能結(jié)合以圖形來輔助教學(xué),那就能達(dá)到事半功倍的效果,從而提高教學(xué)質(zhì)量[4]。
3.1 描述連續(xù)系統(tǒng)沖擊和階躍響應(yīng)
描述某連續(xù)系統(tǒng)的微分方程為:
y3(t)+y2(t)+2y′(t)+5y(t)=4f′(t)+f(t)
可以應(yīng)用Matlab工具箱中impulse( )函數(shù)及step( ),運(yùn)行如下命令:a=[1 1 2 5];b=[4 1];impulse(b,a),title(‘連續(xù)系統(tǒng)的沖擊響應(yīng)’);step(b,a),title(‘連續(xù)系統(tǒng)的階躍響應(yīng)’);上述命令繪制的沖擊響應(yīng)及階躍響應(yīng)波形圖如圖1,2所示。
圖1 連續(xù)系統(tǒng)
圖2 連續(xù)系統(tǒng)的沖擊響應(yīng)
3.2 描述離散系統(tǒng)的單位響應(yīng)
描述某離散系統(tǒng)的差分方程為:
y(k)+3y(k-1)+2y(k-2)=f(k)
運(yùn)行如下Matlab命令:a=[1 3 2];b=[1];impz(b,a),title(‘離散系統(tǒng)的單位沖擊響應(yīng)’);則繪出該離散系統(tǒng)的單位響應(yīng)的時域波形如圖3所示。
在理論課程的教學(xué)過程中,只是給出數(shù)學(xué)表達(dá)式,信號的波形按常規(guī)的方法在課堂很難一一畫出,造成學(xué)生對信號分析方面的知識感覺太抽象、理解不深。如果在教學(xué)中給出具體圖形,就可以用他準(zhǔn)確描述所要分析的信號的時域波形,使學(xué)生能夠加深理解。
3.3 描述信號的的拉普拉斯變換
單位階躍信號ε(t)的拉普拉斯變換和傅里葉變換如下:
F(s)=1s,F(xiàn)(jω)=πδ(ω)+1jω
可以利用Matlab的三維繪圖功能來繪出該信號的拉普拉斯變換的曲面圖,實(shí)現(xiàn)這一過程的程序如下:
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;
現(xiàn)在用Matlab繪制該信該信號的傅里葉變換曲線(振幅頻譜),對應(yīng)的Matlab命令如下:syms t w ;ut=sym(′Heaviside(t)′);fw=fourier(ut);fwp=abs(fw);ezplot(fwp);title(‘傅里葉變換(振幅頻譜曲線)’);xlabel(‘頻率w’)。
圖3 離散系統(tǒng)的單位沖擊響應(yīng)
上述程序繪制的拉普拉斯變換曲面圖及傅里葉變換曲面圖如圖4,5所示,通過對兩圖的觀察和比較,可直觀地觀察到拉普拉斯變換和傅里葉變換的對應(yīng)關(guān)系。同時通過軟件的繪圖功能,可以描繪出響應(yīng)變換的三維圖象,提高教師的授課效率。
圖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),其對應(yīng)的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′;。
從以上例子可以看出,對于那些需要通過常規(guī)形象方法進(jìn)行分析的較難的問題,如果利用Matlab可以方便快捷地得到答案,能使學(xué)生和教師從繁瑣的運(yùn)算和畫圖中解放出來
圖6 有限長序列的圓周卷積
3.5 描述FFT在信號分析中的應(yīng)用
使用頻譜分析方法從受噪聲污染的信號x(t)中鑒別出有用的信號,對應(yīng)的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工具把時域信號變換到頻域進(jìn)行分析,可以明顯看出信號中100 Hz和200 Hz的2個頻率分量[5]。
圖7 時域信號和頻域信號的比較
4 結(jié) 語
大量的數(shù)學(xué)運(yùn)算一直是影響信號與系統(tǒng)課程教學(xué)效果的一個重要元素,應(yīng)注重利用計(jì)算機(jī)技術(shù)進(jìn)行科學(xué)計(jì)算。淡化計(jì)算公式的熟練使用和解題技巧,在計(jì)算能力方面和技巧方面,側(cè)重計(jì)算方法。Matlab具有強(qiáng)大的計(jì)算功能,可以用來解線性代數(shù)問題、微積分問題、常微分方程、非線性方程以及進(jìn)行統(tǒng)計(jì)分析等,復(fù)雜的數(shù)學(xué)運(yùn)算變得只需簡單得幾個語句就完成,不僅可以輕松求出系統(tǒng)響應(yīng)的數(shù)值解,而且可以繪制系統(tǒng)響應(yīng)的時域波形,大大提高學(xué)習(xí)效率[6]。從而使學(xué)生脫離繁雜的數(shù)學(xué)運(yùn)算,重點(diǎn)進(jìn)行系統(tǒng)分析,同時也提高利用計(jì)算機(jī)編程解決實(shí)際問題的能力。
現(xiàn)今社會信息技術(shù)迅速發(fā)展,新理論和新技術(shù)不斷涌現(xiàn),信號與系統(tǒng)課程必須與時代俱進(jìn),不斷更新教學(xué)方法與手段,深化教學(xué)改革。通過在信號系統(tǒng)的實(shí)際教學(xué)中應(yīng)用Matlab,引導(dǎo)學(xué)生使用智能化的教學(xué)軟件,直觀地理解和領(lǐng)會課本中的抽象內(nèi)容,提高學(xué)生的學(xué)習(xí)興趣,增進(jìn)對問題本質(zhì)的認(rèn)識,加強(qiáng)思維方法的創(chuàng)新,達(dá)到提高教學(xué)質(zhì)量改善教學(xué)效果的目的,同時使學(xué)生在掌握課程本身的同時。也掌握一門重要的開發(fā)語言,為后繼專業(yè)課程的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。
參考文獻(xiàn)
[1]燕慶明.信號與系統(tǒng)教程[M].北京:高等教育出版社,2004.
[2]樓順天,于衛(wèi).Matlab程序設(shè)計(jì)語言[M].西安:西安電子科技大學(xué)出版社,1997.
[3]樓順天.基于Matlab的系統(tǒng)分析與設(shè)計(jì)[CD2]信號處理[M].西安:西安電子科技大學(xué)出版社,2001.
[4]龔錦紅.Matlab在《信號與系統(tǒng)分析》課程教學(xué)中的應(yīng)用\\[M\\].華東交通大學(xué)學(xué)報(bào),2005(5):168-171.
[5]薛年喜.Matlab在數(shù)字信號處理中的應(yīng)用\\[M\\].北京:清華大學(xué)出版社,2003.
[6]黃文梅,熊桂林.信號分析與處理:Matlab語言及應(yīng)用 [M].長沙:國防科技大學(xué)出版社,2000.
[7]楊亞輝.用Matlab深入學(xué)習(xí)和理解矩陣知識\\[J\\].現(xiàn)代電子技術(shù),2007,30(6):175-177.
[8]付銀娟.基于Matlab的LFM信號的正交變換和脈沖壓縮\\[J\\].現(xiàn)代電子技術(shù),2007,30(15):61-63.
[9]趙秀玲,張利,武玉強(qiáng).Matlab輔助DSP實(shí)現(xiàn)FIR數(shù)字濾波器\\[J\\].現(xiàn)代電子技術(shù),2007,30(9):38-40.
[10]司淑平,邵左文,王國波.Matlab計(jì)算模塊嵌入LabVIEW實(shí)現(xiàn)混沌噪聲的產(chǎn)生\\[J\\]. 現(xiàn)代電子技術(shù),2006,29(6):51-53.
[11]趙秀玲,張利,武玉強(qiáng).Matlab輔助DSP實(shí)現(xiàn)FIR數(shù)字濾波器\\[J\\].現(xiàn)代電子技術(shù),2007,30(9):38-40.
[12]付銀娟.基于Matlab的LFM信號的正交變換和脈沖壓縮\\[J\\].現(xiàn)代電子技術(shù),2007,30(15):61-63.
作者簡介 王潔麗 女,1980年出生,碩士,講師.
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。