[摘? ? ? ? ? ?要]? 針對MATLAB語言課程的操作性強、不宜純理論教學等特點,引入以項目為驅動的MATLAB課程教學及實踐方法。從MATLAB課程體系中,重新梳理知識點,引入無源時差定位項目,對其進行模塊化分解,并按模塊難度及學生層次進行合理分配,最后總結任務完成情況并反饋完善課程實踐過程。該教學法對仿真語言、開發環境類等課程較為適用。
[關? ? 鍵? ?詞]? MATLAB;項目驅動;教學改革;課程實踐
[中圖分類號]? G642? ? ? ? ? ? ? ?[文獻標志碼]? A? ? ? ? ? ? ? ? ? ? ? [文章編號]? 2096-0603(2019)04-0074-02
MATLAB以其強大的數值計算、仿真建模、信號分析及可視化繪圖等功能[1],被大多工科院校的設定為仿真類主流課程,也是大多工科專業進行畢業設計的主要工具之一,因此該課程在工科類院校占據重要位置。
該課程的教學大多集中在MATLAB的使用及操作上,如基本的語法、矩陣、數值計算、繪圖等內容,仿真學習中基本停留在純仿真設計及建模,鮮有以實際項目背景為依托深入學習MATLAB的教學方法。
針對此情況,以項目學習為驅動,探索在MATLAB教學中引入新型教學方法。通過選擇適宜的科研項目,結合教學內容進行模塊化分解,將子項目分配給學生進行學習及實踐。最后對完成的課題內容進行總結,反饋到項目實施過程中,對項目實施計劃進行完善,達到一定程度的良性循環[2]。
一、以項目為驅動的MATLAB教學方法
所謂以項目為驅動的教學方法,就是在課程教學中引入適當的項目課題,以學生為主體,以教師為引導,融合課程知識體系,按模塊化的思路進行項目任務分配,并將二者的結合貫穿于教學活動過程中,以達到激發學生的學習積極性及能動性,使所學內容有實施落腳點、鞏固課題知識及提升相關科研能力的目的[3]。
(一)需解決的主要問題
將實際科研項目引入課堂教學的過程中,需解決以下主要問題。
1.整理課程知識體系
作為布置項目模塊實踐的基礎,同時也是掌握課程內容的重要環節。
2.選擇適宜的科研項目
選擇難易適中,既涵蓋課程知識體系內容,又同授課專業相融合的科研項目。
3.自上而下的項目分解
項目分解的質量將直接影響教學效果,采用自上而下的項目分解法有利于得到適應于不同教學內容的項目模塊。
4.對項目進行合理分配
分解后的項目模塊涵蓋不同的知識點、算法模型及技術要點,因材施教,結合學生的知識水平進行合理分配,以使學生的創造性得到最大限度的發揮。
5.持續改進
教師作為項目的選取及分配者,應不斷總結反思一切教學活動,持續改進教學方案,達到較好的教、學效果。
(二)教學方法實施流程
以項目為驅動的教學方法,突出學生為項目的主要完成對象,教師為項目分解和分配的引導者。實施過程中,積極引導學生分析、探索、推理及解決問題,教師給予適當的答疑及指導[4]。
二、MATLAB課程結構及知識點梳理
從MATLAB課程的基本內容出發,要求教師能全面了解、熟知課程的整體分布,章節的內在聯系,重點、難點等分配,進而梳理出使學生容易接受、階梯式的知識體系。
以《MATLAB程序設計與應用(第二版)》為例,課本前7章為基本內容,其中矩陣、數值計算、程序設計及繪圖等內容是整個課程的基礎知識點,也是貫穿整個MATLAB學習的核心內容之一[5]。該課程按知識點內容及層次關系,大致分為5部分:基礎數據表示及計算、數值統計及分析、函數設計及調用、信號處理方法、濾波設計及應用等。
三、項目選擇及模塊化分解
項目的選擇和分解是該教學方法的核心,且項目分解的質量將直接影響教學實踐效果。無源時差定位(TDOA)技術涉及信號采集、分析處理、算法設計、定位、目標呈現等多個環節[6],將其部分模塊引入MATLAB課程加以實踐,具有較好的應用背景,又不乏鍛煉學生對MATLAB的深入使用及理解,比較適合作為本方法實施的項目來源。
結合MATLAB課程的梳理結果,采用自上而下、橫向匹配的方式對項目進行合理的模塊化分解。所謂自上而下,是指從項目整體出發,逐層分離,直到將項目分解為可用MATLAB實施的環節為止;橫向匹配則指結合MATLAB課程的知識點內容,對分解出的項目模塊有所指向,以支撐相關理論知識點的鞏固學習[7]。在子項目完成的過程中,鼓勵學生采用多種實現方式及解法,讓學生有充分的項目實踐機會。
四、教學實踐及反思
(一)教學實踐
在本校通信工程專業的MATLAB語言課程上進行該教學方法的實踐,下面對每個子模塊及MATLAB知識點對應關系做簡要闡述。
1.信號預處理
信號預處理涉及的主要操作有IQ信號提取、信號幅度及頻譜計算、矩陣操作、濾波設計及繪圖等內容。其MATLAB核心代碼主要考查學生對基本IQ數據提取、信號參數計算及顯示等內容。
fid=fopen(′a.dat′,′rb′);? %打開文件
w=fread(fid,4096,′int16′);
I1=w(1:2:end);? ? ? ? %提取I數據
…
p1=phase(I1+Q1*i);? ? %相位計算
a1=abs(I1+Q1*i);? ? ? %幅度計算
2.時延估計
該部分要求學生了解GCC基本原理,利用信號的FFT、IFFT達到GCC目的,清楚對應的時延點數與時延結果的精確關系。此外,部分小組還需具備曲線擬合的知識及實現[8]。其核心代碼主要考查對IQ數據的FFT變換、矩陣操作等內容。
s1=I1+Q1*1i;%監測站1的IQ數據組合
…
s1_fft=(fft(s1));
…
G12=s1_fft.*s2_fft;
Gcc12=fftshift(abs(ifft(G12)));
[mn,mid]=max(Gcc12);
% 曲線擬合過程
p7=polyfit(t,y,4);
t1=1:0.01:7;
fy7=polyval(p7,t1);
[fitmn,fitmid]=max(fy7);
3.定位
TDOA定位主要利用兩組距離差d21、d31及雙曲線原理對目標源進行定位。由于2組雙曲線直接求解比較困難,一般將其進行簡化處理,得到雙曲線求解的變通公式,再計算得到目標源坐標。其核心代碼主要考查對公式的變換表達、基本語句的使用、矩陣(數組)、控制語句等操作內容。
a=double((d31^2-x31^2-y31^2)*x21-(d21^2-x21^2-y21^2)*x31);
…
if (d21*d31<0)
theta1=asin(c/((a^2+b^2)^.5))-atan2(a,b);
r1=(x21^2+y21^2-d21^2)/(2*(x21*cos(theta1)+y21*sin(theta1)+d21));
else
…
end
再根據計算的極坐標信息換算成目標源的直角坐標信息,具體實現過程略。
4.結果統計
經過多組數據計算得到幾十包定位結果,由于接收信號的電磁環境、天氣、監測設備誤差、算法可靠度等綜合因素,經常造成個別定位結果的發散分布,這些個別數據點被認為是常規奇異點,需進行剔除處理。該部分內容具體實現方法較多,由學生自行實現,不再贅述。
(二)課程實踐后的反思
通過將項目分解引入MATLAB課堂,對學生使用MATLAB進行基本的數據處理,利用其解決實際問題具有明顯的意義,但仍存在一些實際問題,如項目分解欠優,還可進一步優化分解模塊,使其與課程知識點匹配度更高,最大限度地發揮學生參與的積極性,在下一期課程實踐中,對項目實施過程可進行進一步的修改完善。
五、結語
將具體的科研項目引入MATLAB課程教學中,經過對項目的合理分解、任務分配,讓學生充分發揮自主能動性,在子項目的研究實施過程中,有利于提升學生對MATLAB的使用及認知程度,加強對MATLAB的建模仿真、數值計算、信號分析及可視化等功能特點深入理解,具有明顯的現實意義。該教學方法可在其他課程如C語言、C++、CAD繪圖等課程中推廣實施,有利于提高學生課堂外的知識積累及科研見識,促進教、學雙向發展。
參考文獻:
[1]張靜.基于項目驅動的MATLAB教學方法研究[J].科技教育,2014(36):147-149.
[2]朱向慶,胡均萬,曾輝,等.CDIO工程教育模式的微型項目驅動教學法研究[J].實驗技術與管理,2012,29(11):159-162.
[3]張佩云.項目驅動的軟件工程課程案例分段情況教學研究[J].計算機教育,2013(3):77-79.
[4]吳愛萍.基于任務驅動的Matlab與控制系統仿真教學方法改革[J].中國現代教育裝備,2012(11):57-59.
[5]劉衛國.MATLAB程序設計與應用[M].2版.北京:高等教育出版社,2006.
[6]楊建輝,王逸軒,劉玉紅.基于亞采樣點級別的TDOA時延估計[J].無線電工程,2017,47(1):23-26.
[7]張天怡.基于項目驅動的Java課程教學改革分析[J].現代鹽化工,2017(1):85-86.
[8]楊建輝,劉玉紅,王逸軒.基于廣義互相關和多項式擬合的TDOA時延估計方法[J].蘭州交通大學學報,2016,35(4):40-43.
編輯 尚思達