王善偉+周桃云
【摘要】根據(jù)《數(shù)字信號(hào)處理》課程特點(diǎn)和教學(xué)現(xiàn)狀,提出了將Matlab仿真引入到課程教學(xué)的改革思路,并通過(guò)舉例說(shuō)明基于Matlab的教學(xué)實(shí)踐過(guò)程。實(shí)踐證明,實(shí)施該項(xiàng)教學(xué)改革后,教學(xué)效果有了較大的提高,學(xué)生的考試成績(jī)也有了較大的提升。
【關(guān)鍵詞】數(shù)字信號(hào)處理 Matlab仿真 教學(xué)改革
【中圖分類號(hào)】G71 【文獻(xiàn)標(biāo)識(shí)碼】A 【文章編號(hào)】2095-3089(2016)36-0012-01
《數(shù)字信號(hào)處理》是一門建立在數(shù)學(xué)基礎(chǔ)上的學(xué)科,該課程的特點(diǎn)是理論性強(qiáng)、起點(diǎn)高、難度大。同時(shí),該課程又是一門實(shí)用性強(qiáng)、涉及知識(shí)面廣的課程[1]。由于該課程的概念比較抽象,許多理論是基于繁瑣的數(shù)學(xué)理論和推導(dǎo),容易使學(xué)生感到乏味,純粹把這門課當(dāng)成是數(shù)學(xué)課來(lái)學(xué)習(xí)[2],教學(xué)效果不好。
一、數(shù)字信號(hào)處理教學(xué)改革思路
針對(duì)《數(shù)字信號(hào)處理》課程特點(diǎn),將Matlab仿真應(yīng)用于該課程的理論教學(xué)[3],結(jié)合仿真結(jié)果給學(xué)生講解概念、算法,從而加深學(xué)生對(duì)知識(shí)的理解。該教學(xué)改革實(shí)施從以下幾個(gè)方面著手:①教材選取,筆者選用的是叢玉良主編的《數(shù)字信號(hào)處理原理及其Matlab實(shí)現(xiàn)》,教材中很多例題都給出了Matlab代碼,可供學(xué)生參考;②課堂講解,每講完一個(gè)重要理論后都用Matlab將該理論進(jìn)行仿真,將結(jié)果以數(shù)據(jù)或圖形的方式呈現(xiàn)在學(xué)生面前,幫助學(xué)生理解理論知識(shí),激發(fā)學(xué)習(xí)興趣;③實(shí)驗(yàn)教學(xué),要求學(xué)生編制和調(diào)試Matlab程序,獨(dú)立完成一些難易適中的綜合性或設(shè)計(jì)性實(shí)驗(yàn)題,促進(jìn)對(duì)理論知識(shí)的理解。
二、基于Matlab的教學(xué)實(shí)踐
鑒于課程特點(diǎn)及教學(xué)現(xiàn)狀,引入Matlab作為教學(xué)輔助工具,在講解數(shù)字信號(hào)處理理論推導(dǎo)的基礎(chǔ)上,穿插講解用Matlab制作的示例和仿真,收到了很好的效果。下面以兩個(gè)經(jīng)典例子加以說(shuō)明。
1.DFT與FFT運(yùn)算量比較
根據(jù)理論分析,直接計(jì)算N點(diǎn)DFT,需要N2次復(fù)數(shù)乘法、 N(N-1)次復(fù)數(shù)加法,而時(shí)間抽選奇偶分解的FFT算法,需要 次復(fù)數(shù)乘法,次復(fù)數(shù)加法[4]。因此,N值越大,F(xiàn)FT算法越優(yōu)越,比較DFT和FFT的運(yùn)算時(shí)間代碼如下。
N=4096; M=80;
x=[1:M, zeros(1,N-M)];
t=cputime; y1=fft(x,N); Time_fft=cputime-t;
t1=cputime; y2=dft(x,N); Time_dft=cputime-t1;
程序運(yùn)行結(jié)果Time_fft =0.0468,Time_dft =22.5889。可知,計(jì)算4096點(diǎn)DFT,利用FFT算法只需0.0468s,直接計(jì)算需要22.5889s,即FFT算法比DFT快了482倍,從這個(gè)比較結(jié)果學(xué)生可以體會(huì)到FFT算法的重大意義。
2.分析FFT取不同長(zhǎng)度時(shí)序列頻譜的變化
設(shè)x(n)是長(zhǎng)度為6的矩形序列,分別取其8、32、64點(diǎn)FFT,觀察x(n)的頻譜變化。
x=ones(1,6);
N=8;y1=fft(x,N);
n=0:N-1;subplot(3,1,1);stem(n,abs(y1),'.k');axis([0,9,0,6]);
N=32;y2=fft(x,N);
n=0:N-1;subplot(3,1,2);stem(n,abs(y2),'.k');axis([0,40,0,6]);
N=64;y3=fft(x,N);
n=0:N-1;subplot(3,1,3);stem(n,abs(y3),'.k');axis([0,80,0,6]);
運(yùn)行程序,得到x(n)的頻譜如圖1所示:
圖中第一幅圖為N=8時(shí)的頻譜,由于N值較小,只能看到8個(gè)離散的點(diǎn),不能反映x(n)頻譜變化規(guī)律;第二幅圖為N=32時(shí)的頻譜,頻譜分辨率較N=8時(shí)有明顯提高,可以粗略看出頻譜變化規(guī)律;第三幅圖為N=64時(shí)的頻譜,隨著N的增大,待分析信號(hào)的有效信息也增多,頻率分辨率進(jìn)一步提高,N值越大就越接近序列真正的頻譜,因此,驗(yàn)證了“增加信號(hào)有效信息長(zhǎng)度可以提高頻譜分辨率”這一理論。
三、結(jié)束語(yǔ)
Matlab語(yǔ)言具有簡(jiǎn)單易學(xué)、上手快等優(yōu)點(diǎn), 可以方便地將其引入《數(shù)字信號(hào)處理》課程教學(xué), 對(duì)算法及處理結(jié)果作現(xiàn)場(chǎng)仿真,豐富了教學(xué)內(nèi)容,且對(duì)于促進(jìn)學(xué)生的感性認(rèn)識(shí)、鞏固數(shù)字信號(hào)處理的理論等方面起到了積極作用。實(shí)踐證明:該項(xiàng)教學(xué)改革實(shí)施以后,課堂教學(xué)效果有了較大的提高,學(xué)生普遍反映學(xué)習(xí)不再枯燥,很多學(xué)生課后都會(huì)花時(shí)間去琢磨Matlab仿真結(jié)果、消化已學(xué)知識(shí),學(xué)生考試成績(jī)也有了較大提高。
參考文獻(xiàn):
[1]余穎,肖靜,劉樹博.數(shù)字信號(hào)處理課程教學(xué)改革的探索和實(shí)踐[J].東華理工大學(xué)學(xué) 報(bào)(社會(huì)科學(xué)版),2011,30(3):294-296.
[2]吳瑛,張莉,陳迎春.“數(shù)字信號(hào)處理”教學(xué)改革的幾點(diǎn)體會(huì)[J].電氣電子教學(xué)學(xué)報(bào),2010,32(6):14-16.
[3]蔡成林,吳海燕,楊玲.《數(shù)字信號(hào)處理》教學(xué)改革的研究與探索[J].湖南人文科技學(xué)院學(xué)報(bào),2011,(2):137-139.
[4]叢玉良,王宏志.數(shù)字信號(hào)處理及其Matlab實(shí)現(xiàn)[M].電子工業(yè)出版社,2012.