李小光+鄭鵬
【摘要】本文介紹了MATLAB的特點及信號與系統(tǒng)教學(xué)的難點,探討了“信號與系統(tǒng)”課程教學(xué)中引入MATLAB軟件,將使信號與系統(tǒng)中繪圖和復(fù)雜理論計算等抽象問題通過編程變得簡單而直觀,改善了教學(xué)方法和手段,豐富了教學(xué)內(nèi)容,取得良好的教學(xué)效果,為課程教學(xué)方法和手段的改革探索了新的思路。
【關(guān)鍵詞】MATLAB 信號與系統(tǒng) 教學(xué)
【中圖分類號】TP319 【文獻標(biāo)識碼】A 【文章編號】2095-3089(2016)10-0013-03
信號與系統(tǒng)是信息工程、計算機技術(shù)、自動控制等專業(yè)的一門重要專業(yè)基礎(chǔ)課,通過該課程的學(xué)習(xí),使學(xué)生牢固掌握信號與系統(tǒng)的基本原理和基本分析方法與應(yīng)用。該課程具有內(nèi)容繁多,涉及面廣,理論性、系統(tǒng)性、抽象性強的特點,學(xué)生理解起來困難,教師教學(xué)效果較差,那么如何才能使教師容易“教”和學(xué)生喜歡“學(xué)”,則成為一項非常值得探索的教學(xué)課題。
1.開發(fā)基于MATLAB的互補教學(xué)平臺的必要性
《信號與系統(tǒng)》課程全是數(shù)學(xué)理論分析,學(xué)生學(xué)習(xí)起來較為枯燥,學(xué)習(xí)起來興趣不大。而MATLAB是一個多領(lǐng)域、多學(xué)科、多功能的優(yōu)秀科技應(yīng)用軟件,《MATLAB語言》因其通俗易用和強有力的科學(xué)計算能力等優(yōu)點已成為工程師和科研工作者的首選工具軟件。此課程雖然基本內(nèi)容簡單易學(xué),但是如果不將其用于解決實際問題 ,可以說是一種 “教” 、“學(xué)” 的資源浪費 。因此,在目前《信號與系統(tǒng)》缺少科學(xué)的教學(xué)工具和《MATLAB語言》沒有合適的應(yīng)用對象的情況下,將兩者有機結(jié)合起來進行組合式互補教學(xué),合理安排教學(xué)內(nèi)容與學(xué)時,實現(xiàn)手段和內(nèi)容上的互補,既可以用全新的表述、分析和計算教學(xué)方法實現(xiàn)《信號與系統(tǒng)》課程的講授,生動地演示以往枯燥的數(shù)學(xué)理論知識,還可以讓學(xué)生更深入地了解《MATLAB語言》及編程技巧,鍛煉并提高其運用所學(xué)的理論知識及軟件工具解決實際問題的能力,達到事半功倍的效果。
2.基于MATLAB 的信號與系統(tǒng)互補教學(xué)研究
基于《信號與系統(tǒng)》課程內(nèi)容 ,將其分為連續(xù)時間系統(tǒng)的時域分析、 傅里葉變換及系統(tǒng)的頻域分析、 拉普拉斯變換及系統(tǒng)的復(fù)頻域分析、 離散時間系統(tǒng)的時域分析和Z變換及離散時間系統(tǒng)的Z域分析等幾大模塊,整合教學(xué)內(nèi)容,利用計算機、 PowerPoint、Flash及MATLAB 語言等工具制作 CAI課件,適當(dāng)?shù)償?shù)學(xué)推導(dǎo)證明過程,利用具有代表性的實例實時動態(tài)地演示《信號與系統(tǒng)》的課堂講授內(nèi)容。這樣不僅可以增加學(xué)生的學(xué)習(xí)興趣,還能提高其理解能力,實現(xiàn)最佳教學(xué)效果。
2.1 時域分析的MATLAB實現(xiàn)
信號時域分析中經(jīng)常用到信號的數(shù)學(xué)解析式和信號的波形,若不能精確的畫出信號的波形,學(xué)生理解較為困難,若在教學(xué)中引入MATLAB,則可以利用簡單的編程語句實現(xiàn)信號圖像的可視化,如需要畫出指數(shù)信號波形,則通過編程很容易得到。
2.2 頻域分析的MATLAB實現(xiàn)
系統(tǒng)的頻域分析教學(xué)中,三角脈沖的頻域理論講解較為抽象,特別是系統(tǒng)的幅頻特性和相頻特性圖形較為難畫,若利用MATLAB,則能很好的解決這些問題。能夠起到教師易教、學(xué)生易學(xué)的效果。
利用MATLAB的數(shù)值方法近似計算三角波信號頻譜。設(shè)信號
為了利用quad8函數(shù)計算f(t)頻譜,先定義如下函數(shù):
function y=M(t,w) y=( abs(t)<=1).?鄢(1-abs(t)).?鄢exp(-j?鄢w?鄢t);
對于不同的參數(shù)ω,函數(shù)M將計算出Fourier變換中被積函數(shù)的值。注意,要將上面的MATLAB函數(shù)以文件名M.m進行保存。近似計算該三角波信號頻譜的源程序如下:
ω=linspace(-6?鄢pi,6?鄢pi,512);
N=length(ω);
F=zeros(1,N);
for k=1:N
F(k)= quad8(M,-1,1,[ ] , [ ],ω(k));
end
figure(1);
plot(ω,real(F));
xlabel(\omega);
ylabel(F(j\omega));
title(三角波信號近似頻譜);
figure(2);
plot(ω,real(F)-sinc(ω/2/pi).^2);
xlabel(\omega);
ylabel(error);
title(計算誤差);
運行結(jié)果如圖1、圖2所示。
系統(tǒng)的頻率特性分析,假設(shè)有低通濾波器頻率特性函數(shù)如下,用MATLAB方法得到幅頻特性H(jω)和相頻特性φ(ω)
對于有理分H(jω),MATLAB提供freqs函數(shù)處理方法,程序如下:
w=linspace(0,5,200);
b=[1];
a=[1 2 2 1];
H=freqs(b,a,w);
subplot(2,1,1);
plot(w,abs(H));
set(gca, xtick,[0 1 2 3 4 5]);
set(gca,ytick,[0 0.4 0.707 1]);
xlabel(\omega(rad/s));
ylabel(|H(j\omega)|) ;
grid on;
subplot(2,1,2);
plot(w,angle(H));
set(gca,xtick,[0 1 2 3 4 5]);
xlabel(\omega(rad/s));
ylabel(\phi(rad));
grid on;
輸出圖形如圖3所示。
2.3復(fù)頻域分析的MATLAB實現(xiàn)
求解連續(xù)系統(tǒng)的沖激響應(yīng)h(t)和判斷系統(tǒng)的穩(wěn)定性對于系統(tǒng)分析具有十分重要的意義,以往學(xué)生解題時只是求出h(t)和H(s)的解析表達式,而對于二者的圖形是怎樣的,以及它們的區(qū)別是怎樣的,缺乏直觀的認(rèn)識,而利用MATLAB可以很方便的繪出圖形,進而使學(xué)生有直觀的認(rèn)識,有助于他們的理解。
設(shè)有系統(tǒng)函數(shù)H(s),可以應(yīng)用MATLAB決定它的零、極點圖和沖激響應(yīng),進而分析其穩(wěn)定性,其調(diào)用的是roots函數(shù)。當(dāng)畫零、極點圖時,直接應(yīng)用pzmap函數(shù),調(diào)用形式為pzmap(sys),借助tf又可獲得sys,即sys=tf(b,a),式中,b和a分別為H(s)分子和分母多項式的系數(shù)。
設(shè)有系統(tǒng)函數(shù),試?yán)肕ATLAB畫出該系統(tǒng)的零極點圖;畫出該系統(tǒng)的單位沖激響應(yīng)h(t)和幅頻響應(yīng)H(jω),并判斷系統(tǒng)是否穩(wěn)定。
源程序如下:
den=[1 2 2 1];
sys=tf(num,den);
poles=roots(den)
figure(1);
pzmap(sys);
t=0:0.02:10;
h=impulse(num,den,t);
figure(2);
plot(t,h);
xlabel('t(s)');
ylabel('h(t)');
title('Impulse Respone');
[H,w]=freqs(num,den);
figure(3);
plot(w,abs(H));
xlabel('ang.freq.\omega(rad/s)');
ylabel('|H(j\omega)|');
title('Magnitude Respone')
運行結(jié)果為:poles =
-1.0000
-0.5000 + 0.8660i
-0.5000 - 0.8660i
同時得該系統(tǒng)的單位沖激響應(yīng)h(t)和幅頻響應(yīng)H(jω)分別如圖4、圖5所示。
2.4離散時間Z域分析的MATLAB實現(xiàn)
對于離散系統(tǒng)分析缺乏有效的方法,學(xué)生學(xué)習(xí)只能從簡單的概念以及數(shù)學(xué)表達式理解,缺乏直觀性,引入MATLAB分析直觀易懂。如某離散系統(tǒng)的差分方程為:
y(k)-0.3y(k-1)+0.7y(k-2)=f(k)-2f(k-1)+3f(k-2)分析系統(tǒng)的單位樣值響應(yīng)h(k)及當(dāng)激勵信號時,系統(tǒng)的輸出響應(yīng)y(k),并繪制出波形圖。
MATLAB參考代碼如下:
k=0:40;
arg=(pi/5)?鄢k;
x=2?鄢sin(arg);
num=[1 -2 3];
den=[1 -0.3 0.7];
y=impz(num,den,k);
subplot(2,1,1)
stem(y,.);
xlabel(‘時間序號k);
ylabel(‘信號幅度);
title(‘單位樣值響應(yīng))
y1=filter(num,den,x);
subplot(2,1,2);
stem(k,y1,.);
xlabel(時間序號k);
ylabel(信號幅度);
title(輸出響應(yīng)y(k))
結(jié)果如圖6所示:
3.基于MATLAB教學(xué)平臺,開發(fā)設(shè)計性實驗,增強趣味性
通過工程實例實現(xiàn)《信號與系統(tǒng)》與《MATLAB語言》組合互補式教學(xué),實現(xiàn)課程整合;結(jié)合《信號與系統(tǒng)》課程內(nèi)容和特點,完成應(yīng)用實例題目的設(shè)計并給出參考答案。工程實例用MATLAB語言開發(fā)實現(xiàn) ,具備現(xiàn)場計算、動態(tài)演示的功能。還可以利用學(xué)校便利的計算機網(wǎng)絡(luò)資源將工程實例擴展為軟件實驗平臺,以補充硬件實驗資源的不足。這樣學(xué)生可以將 MATLAB作為學(xué)習(xí)工具,以積極主動的學(xué)習(xí)者角色開展研究型學(xué)習(xí)。教師也可以通過網(wǎng)絡(luò)的平臺發(fā)揮主導(dǎo)作用,與學(xué)生互動。
4.信號與系統(tǒng)課程其他方面的教學(xué)研究
針對信號與系統(tǒng)課程的特點,建立自測題庫和模擬測試題庫,通過試題庫的建立,學(xué)生可以及時對知識點進行梳理,對沒有掌握的重點內(nèi)容加強鞏固;同時題庫還可以幫助學(xué)生對本課程學(xué)習(xí)過程進行有效評估。
網(wǎng)站課程建設(shè),建設(shè)《信號與系統(tǒng)》網(wǎng)站,并及時將課程大綱、授課計劃、樣卷、習(xí)題自測、作業(yè)布置與提交等資料充實到網(wǎng)站。網(wǎng)站上制作答疑互動模塊,開通互動交流平臺,方便學(xué)生在線學(xué)習(xí)與教師釋疑。網(wǎng)站提供動漫課件,針對該課程理論性強、概念抽象的特點,增強趣味性,減少學(xué)生的學(xué)習(xí)難度。
5.結(jié)論
筆者將兩個有關(guān)但又無法合并成一門進行教學(xué)的課程有機地結(jié)合起來,提出“組合互補式”的教學(xué)新模式,取得了比較好的教學(xué)效果。通過兩門課互補學(xué)習(xí),學(xué)生不但較好地掌握了基礎(chǔ)知識,而且對高難度題目也能夠靈活運用所學(xué)知識進行解答。通過具有綜合性、實踐性工程實例的設(shè)計開發(fā),學(xué)生在枯燥的理論學(xué)習(xí)同時,知道了這門課的理論用在哪里,如何運用,對這兩門課程學(xué)習(xí)的興趣有較大提高。希望這種“整合模式”的教學(xué)方法能從理論上豐富高校教學(xué)的基本理論,找出一條適應(yīng)新知識經(jīng)濟時代、培養(yǎng)新型人才的新方法。
參考文獻:
[1]吳大正.信號與系統(tǒng)[M],高等教育出版社。
[2]劉樹棠.信號與系統(tǒng)[M],西安交通大學(xué)出版社。