韓建峰 宋麗麗
內(nèi)蒙古工業(yè)大學(xué)信息工程學(xué)院 內(nèi)蒙古呼和浩特 010080
隨著信息技術(shù)的飛速發(fā)展,數(shù)字信號(hào)處理的應(yīng)用日益廣泛,對(duì)該課程教學(xué)的要求也不斷提高。我校數(shù)字信號(hào)處理是為電子信息工程和通信工程專業(yè)本科生開設(shè)的學(xué)科基礎(chǔ)課。對(duì)這兩個(gè)專業(yè)而言,數(shù)字信號(hào)處理是承前啟后的重要課程。課程組不斷吸取國內(nèi)外高校的先進(jìn)經(jīng)驗(yàn),結(jié)合我校實(shí)際情況,在課程體系與教學(xué)內(nèi)容改革、完善教學(xué)資源、雙語教學(xué)等方面進(jìn)行了探索和實(shí)踐。近年來,將Matlab應(yīng)用軟件融合到課程中,對(duì)課堂教學(xué)、平時(shí)作業(yè)及實(shí)驗(yàn)等環(huán)節(jié)帶來極大的靈活性和便利性,取得了較明顯效果。
為本科生開設(shè)的數(shù)字信號(hào)處理課程,傳統(tǒng)上偏重于經(jīng)典算法理論及其推導(dǎo),較少涉及實(shí)現(xiàn)方法。課程教學(xué)內(nèi)容主要是數(shù)字系統(tǒng)對(duì)數(shù)字信號(hào)進(jìn)行分析、處理的基本原理和基本方法,包含了大量時(shí)域、變換域的經(jīng)典數(shù)學(xué)分析方法和對(duì)系統(tǒng)求解的數(shù)學(xué)運(yùn)算,理論性很強(qiáng)。按照傳統(tǒng)的課程內(nèi)容設(shè)計(jì),學(xué)生易于“紙上談兵”,即只會(huì)用紙筆解題,而不會(huì)應(yīng)用所學(xué)理論解決實(shí)際問題,與信息產(chǎn)業(yè)的發(fā)展需求和工程實(shí)際相距甚遠(yuǎn)。目前對(duì)此有兩條改革的途徑[1],一是使用Matlab等軟件,為數(shù)字信號(hào)處理算法實(shí)現(xiàn)提供仿真環(huán)境;二是引入工程界廣泛采用的DSP(數(shù)字信號(hào)處理器)器件,指導(dǎo)學(xué)生在硬件平臺(tái)上實(shí)現(xiàn)數(shù)字信號(hào)處理算法。
根據(jù)不同的教學(xué)內(nèi)容,選擇適當(dāng)?shù)慕虒W(xué)方法。對(duì)于一般概念和原理,以講授法為主,采用形象化的方法[2],強(qiáng)調(diào)數(shù)學(xué)公式代表的物理意義,淡化數(shù)學(xué)計(jì)算,輔助以實(shí)例或演示,注重其在Matlab仿真中的應(yīng)用,以作圖、音頻輸出等形式具體展示處理效果;對(duì)較為抽象、不易理解的問題采用討論法,如混疊現(xiàn)象等,提出問題引發(fā)學(xué)生思考、參與討論,并加以總結(jié);利用探究式教學(xué)法,提出綜合性問題及設(shè)計(jì)型Matlab實(shí)驗(yàn),促使學(xué)生發(fā)揮主觀能動(dòng)性,不斷自我總結(jié)各部分教學(xué)內(nèi)容的聯(lián)系,逐步建立起系統(tǒng)的知識(shí)結(jié)構(gòu),培養(yǎng)學(xué)生綜合運(yùn)用知識(shí)的能力和創(chuàng)新精神。
Matlab是當(dāng)今國際上科技領(lǐng)域內(nèi)最具影響力、最有活力的軟件之一。它起源于矩陣運(yùn)算,并已經(jīng)發(fā)展成一種高度集成的計(jì)算機(jī)語言。它提供了強(qiáng)大的科學(xué)運(yùn)算、靈活的程序設(shè)計(jì)流程、高質(zhì)量的圖形可視化與界面設(shè)計(jì)、便捷地與其他程序和語言接口等功能,被廣泛應(yīng)用于數(shù)值和符號(hào)計(jì)算、工程與科學(xué)繪圖、控制系統(tǒng)的設(shè)計(jì)與仿真、數(shù)字圖形處理、數(shù)字信號(hào)處理、通信系統(tǒng)設(shè)計(jì)與仿真等領(lǐng)域[3]。其易學(xué)易懂,編程效率高,更為重要的是Matlab對(duì)許多專門的領(lǐng)域開發(fā)了工具箱,在信號(hào)處理工具箱中,很多常用算法有對(duì)應(yīng)的函數(shù),如FFT函數(shù)實(shí)現(xiàn)用于頻譜分析的快速傅立葉變換,F(xiàn)IR函數(shù)則可實(shí)現(xiàn)FIR數(shù)字濾波器的設(shè)計(jì)等[4]。
數(shù)字信號(hào)處理課程的內(nèi)容較多,概念比較抽象,學(xué)生對(duì)有些內(nèi)容不易理解。課程組將Matlab軟件仿真引入數(shù)字信號(hào)處理課程,把經(jīng)典的分析、處理方法用計(jì)算機(jī)實(shí)現(xiàn),理論聯(lián)系實(shí)際,使學(xué)生掌握初步的實(shí)際信號(hào)分析與處理方法,具備基本的基于計(jì)算機(jī)的數(shù)字信號(hào)處理應(yīng)用能力。
在每章學(xué)習(xí)完后布置軟件編程作業(yè),利用Matlab強(qiáng)大的信號(hào)處理功能,在計(jì)算機(jī)上做習(xí)題,這樣可以簡潔、快速、直觀、準(zhǔn)確地理解數(shù)字信號(hào)處理的基本理論,以及用來探索和解決習(xí)題中不好理解的內(nèi)容,提高學(xué)習(xí)效果[5]。
數(shù)字信號(hào)處理是一門理論性和實(shí)踐性都很強(qiáng)的課程,課程目標(biāo)強(qiáng)調(diào)培養(yǎng)學(xué)生的應(yīng)用能力。課程組開發(fā)了多個(gè)Matlab實(shí)驗(yàn),內(nèi)容由淺入深,涵蓋了課程內(nèi)容中涉及的基本原理和常用算法,包括實(shí)用性較強(qiáng)的驗(yàn)證型實(shí)驗(yàn)和綜合性強(qiáng)、有趣味性的設(shè)計(jì)型實(shí)驗(yàn),采用學(xué)生課下自主完成、課堂集中講解的方法,以作業(yè)形式布置給學(xué)生。在課程考核中也包含了應(yīng)用Matlab的實(shí)驗(yàn)內(nèi)容,約占總成績的20%。另外,課程組還設(shè)計(jì)了一些難度較高的選做實(shí)驗(yàn),供有興趣且學(xué)有余力的學(xué)生在課下以小組的形式學(xué)習(xí)、鉆研和交流,任課教師定期予以輔導(dǎo)。
在講解信號(hào)抽樣、序列的概念時(shí),采樣率對(duì)信號(hào)序列及信號(hào)重構(gòu)的影響,通過Matlab演示更直觀,更易于理解。
如編寫一段Matlab代碼做產(chǎn)生滿足以下要求的正弦序列信號(hào)頻率為1 kHz,幅度為2,初始相位為0.25 π。持續(xù)時(shí)間為10 ms;采樣率為分別1 kHz,10 kHz和20 kHz繪制序列的STEM圖。
學(xué)生雖然學(xué)習(xí)了采樣和重構(gòu)的概念,理論上知道采樣率越大采樣間隔越小,滿足采樣定理信號(hào)可重構(gòu),但對(duì)哪些采樣序列可以重構(gòu),哪些序列不可以重構(gòu)卻沒有更直觀的認(rèn)知。
在Matlab中編程,采樣率分別是1 kHz,10 kHz和20 kHz的采樣序列,所得圖形如圖1所示;很清楚地看到,采樣率是1 kHz時(shí)每個(gè)周期只有一個(gè)采樣點(diǎn),不可能重構(gòu)原信號(hào)。
圖1 不同采樣率下的采樣序列
通過這種圖形比較的方式,學(xué)生對(duì)采樣和重構(gòu)以及采樣定理等概念都有很深刻的理解與掌握。
在我們講授完N點(diǎn)平均濾波器的時(shí)候,編寫Matlab程序,很直觀地看到了濾波的效果。
圖2所示為11點(diǎn)平均濾波的效果圖,很清楚地看到左圖中x經(jīng)11點(diǎn)濾波后成為右圖中y的效果。y信號(hào)與s信號(hào)比較,即濾波后的信號(hào)與純信號(hào)相比除有一定的時(shí)移外基本一致。
圖2 濾波前后比較
學(xué)生只需修改程序中的M值,就可以很容易地得到不同系數(shù)濾波器的濾波效果。對(duì)于這樣的練習(xí),學(xué)生很感興趣,會(huì)主動(dòng)嘗試,比做一般作業(yè)時(shí)的被動(dòng)完成效果要好。
其理論推導(dǎo)繁瑣且不易理解,在Matlab中更簡單直觀。
在學(xué)習(xí)了離散信號(hào)和系統(tǒng)的頻域分析后,利用Matlab軟件,通過簡單的程序代碼,很容易得到系統(tǒng)的幅頻和相頻特性(如圖3所示)。
圖3 幅頻特性和相頻特性
在講授數(shù)字濾波器的設(shè)計(jì)時(shí),選擇不同的窗函數(shù)、窗口長度和截止頻率設(shè)計(jì)出不同的FIR濾波器,并顯示濾波器的幅頻和相頻特性等。學(xué)生通過這種練習(xí),能較深刻理解序列傅里葉變換的頻域特性。
對(duì)一段語音信號(hào),設(shè)計(jì)FIR數(shù)字高通濾波器進(jìn)行濾波,對(duì)比濾波前后的信號(hào)變化,并對(duì)發(fā)生的變化進(jìn)行分析。為了減少抽樣信號(hào)的失真,選取抽樣頻率fs=44100 Hz,歸一化截止頻率為1/10,用窗口長度為400的漢寧窗設(shè)計(jì)高通濾波器并進(jìn)行濾波。
從圖4中可以看到,在大于截止頻率的頻段上,幾乎看不到下降,在通帶內(nèi)相頻特性為直線,表明該濾波器為線性相位。圖5給出了濾波器的輸入信號(hào)和輸出信號(hào),通過圖形可以發(fā)現(xiàn),輸入信號(hào)經(jīng)過高通濾波后,濾掉了一部分低頻信號(hào),輸出信號(hào)證明了這一點(diǎn)。由于輸入信號(hào)的一部分低頻分量被高通濾波器衰減,所以分別播放濾波前后的兩段語音,會(huì)感覺到處理后的語音變得比以前尖銳了。
圖4 濾波器的幅頻和相頻響應(yīng)
圖5 濾波前后信號(hào)數(shù)據(jù)的比較
這種綜合型實(shí)驗(yàn)將枯燥的數(shù)學(xué)公式、單調(diào)的推導(dǎo)過程和難以理解的算法通過演示形式展現(xiàn)出來,使學(xué)生對(duì)學(xué)習(xí)內(nèi)容有一個(gè)直觀認(rèn)識(shí),激發(fā)了學(xué)生的學(xué)習(xí)興趣,學(xué)生通過自己錄制、采集語音信號(hào)完成實(shí)驗(yàn),增加了對(duì)抽象概念的理解,提高了學(xué)生的學(xué)習(xí)積極性和主動(dòng)性。
將Matlab應(yīng)用到數(shù)字信號(hào)處理課程的教學(xué)中,利用Matlab進(jìn)行計(jì)算機(jī)仿真,起到了豐富教學(xué)手段、提高教學(xué)效果的作用,可以讓學(xué)生直觀地理解和領(lǐng)會(huì)教材中抽象的內(nèi)容,數(shù)字信號(hào)處理課由以前的枯燥、難懂變得有趣、易解了。這種實(shí)踐教學(xué)設(shè)計(jì)提高了學(xué)生的學(xué)習(xí)興趣,有利于學(xué)生實(shí)踐能力和專業(yè)素質(zhì)的培養(yǎng)。
[1]教育部高等學(xué)校電子信息科學(xué)與工程類專業(yè)教學(xué)指導(dǎo)分委員會(huì).高等學(xué)校電子信息科學(xué)與工程類本科指導(dǎo)性專業(yè)規(guī)范(試行)[M].北京:高等教育出版社,2010.
[2]谷亞林,徐天成,宋耀良.數(shù)字信號(hào)處理中IIR數(shù)字濾波器設(shè)計(jì)的教法研究[J].理工高教研究,2003,22(4):124-126.
[3]王艷芬,王剛,張曉光.數(shù)字信號(hào)處理精品課程建設(shè)探索[J].電氣電子教學(xué)學(xué)報(bào),2011,33(2):22-24.
[4]高遠(yuǎn).基于Matlab的《數(shù)字信號(hào)處理》課程的教學(xué)改革實(shí)踐[J].高教論壇,2007(4):141-143.
[5]李強(qiáng),明艷,吳坤君.基于Matlab的《數(shù)字信號(hào)處理》輔助教學(xué)方法[J].重慶郵電大學(xué)學(xué)報(bào):自然科學(xué)版,2007(B06):89-91.