摘要:針對(duì)數(shù)字信號(hào)處理課程理論性強(qiáng)、概念抽象、不易理解的特點(diǎn),設(shè)計(jì)了一種數(shù)字信號(hào)處理教學(xué)輔助軟件,對(duì)本科階段數(shù)字信號(hào)處理課程的重要內(nèi)容用MATLAB進(jìn)行了模擬仿真,形象展示信號(hào)處理和變換過(guò)程。使用該軟件進(jìn)行教學(xué),可提高教學(xué)效果。
關(guān)鍵詞:數(shù)字信號(hào)處理;教學(xué)輔助軟件;MATLAB
DOIDOI:10.11907/rjdk.171247
中圖分類號(hào):TP319
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2017)006-0077-04
0 引言
數(shù)字信號(hào)處理技術(shù)在無(wú)線電通信、數(shù)字電視和媒體、生物醫(yī)學(xué)、數(shù)字音頻和儀器等領(lǐng)域應(yīng)用非常廣泛。數(shù)字信號(hào)處理知識(shí)在電子信息工程及相近信息類專業(yè)人才知識(shí)構(gòu)成中占有相當(dāng)重要的分量。數(shù)字信號(hào)處理是電子信息工程專業(yè)重要的專業(yè)課程,該課程理論性強(qiáng),概念抽象,不易理解,教學(xué)內(nèi)容量大,前后知識(shí)聯(lián)系緊密,普遍存在教師不易教、學(xué)生學(xué)習(xí)難的問(wèn)題。
MATLAB是一款功能強(qiáng)大、效率高、交互性好的數(shù)值計(jì)算和可視化高級(jí)語(yǔ)言,它將數(shù)值分析、矩陣運(yùn)算、信號(hào)處理和圖形顯示有機(jī)融合為一體,形成一個(gè)用戶界面友好、操作方便的環(huán)境[1]。MATLAB軟件在信號(hào)處理方面的應(yīng)用主要是數(shù)值計(jì)算和仿真分析,包括函數(shù)波形繪制、函數(shù)運(yùn)算、信號(hào)時(shí)域分析、信號(hào)頻譜分析等,可幫助學(xué)生更深入理解數(shù)字信號(hào)處理理論知識(shí)。本文將MATLAB強(qiáng)大的數(shù)值分析和數(shù)據(jù)可視化功能運(yùn)用于數(shù)字信號(hào)處理基本原理和方法展示,開發(fā)了一套數(shù)字信號(hào)處理課程教學(xué)輔助軟件,進(jìn)行多媒體教學(xué)。
1 系統(tǒng)總體設(shè)計(jì)
系統(tǒng)包括序列、信號(hào)變換和濾波器3大板塊20余項(xiàng)功能,如圖1所示。
序列板塊包括單位脈沖序列、階躍序列、矩形序列、實(shí)指數(shù)序列、復(fù)指數(shù)序列和正弦序列的產(chǎn)生和展示,序列運(yùn)算、時(shí)域采樣過(guò)程和采樣恢復(fù)過(guò)程演示。
序列變換指序列的幾種重要變換,如DTFT、Z變換、DFT和Chirp-Z的變換過(guò)程及相關(guān)特性展示。
數(shù)字濾波器設(shè)計(jì)是數(shù)字信號(hào)處理課程的重點(diǎn)內(nèi)容,序列變換研究的最終目的就是要設(shè)計(jì)濾波器。本科階段主要學(xué)習(xí)選頻濾波器,包括高通濾波器、低通濾波器、帶通濾波器和帶阻濾波器。從單位脈沖特點(diǎn)來(lái)看,分為無(wú)限長(zhǎng)脈沖響應(yīng)濾波器(IIR,Infinite Impulse Response)和有限長(zhǎng)脈沖響應(yīng)濾波器(FIR,F(xiàn)inite Impulse Response)兩種。在對(duì)濾波器沒(méi)有線性相位要求時(shí),通常設(shè)計(jì)為IIR濾波器。IIR數(shù)字濾波器通常運(yùn)用脈沖響應(yīng)不變法或雙線性變換法進(jìn)行數(shù)字域和模擬域的頻率和系統(tǒng)函數(shù)變換,然后借助模擬濾波器的設(shè)計(jì)方法輔助設(shè)計(jì)。當(dāng)要求線性相位時(shí),通常采用FIR濾波器。每種濾波器有多種不同的設(shè)計(jì)方法,按模擬濾波器、IIR濾波器和FIR濾波器3個(gè)子板塊進(jìn)行展示。
系統(tǒng)采用演示版和實(shí)驗(yàn)版雙版本設(shè)計(jì),如圖2所示。演示版對(duì)3大功能板塊中的各項(xiàng)內(nèi)容進(jìn)行演示,適合在課程教學(xué)過(guò)程中使用。實(shí)驗(yàn)版不僅包括各項(xiàng)內(nèi)容的展示,還可完成一些基本的課程實(shí)驗(yàn)。
2 系統(tǒng)實(shí)現(xiàn)
MATLAB提供的圖形用戶接口(Graphical User Interface Development,GUI)具有強(qiáng)大的圖形界面開發(fā)功能。本系統(tǒng)借助MATLAB的GUI環(huán)境,設(shè)計(jì)符合用戶使用習(xí)慣的外觀,便于交互式使用。本文選取序列及其運(yùn)算、時(shí)域采樣、頻域采樣和序列變換等幾個(gè)具有代表性的功能模塊來(lái)展示系統(tǒng)的實(shí)現(xiàn)方法和效果。
2.1 序列及其運(yùn)算
序列及其運(yùn)算是數(shù)字信號(hào)處理最基礎(chǔ)的內(nèi)容,基本序列模塊圖形展示采樣序列δ(n)、矩形序列R(n)、實(shí)指數(shù)序列anu(n)、單位階躍序列u(n)、正弦序列sin(wn)和復(fù)指數(shù)序列Ae-jwn等幾種常見序列。為便于操作和比較,安排在同一界面展示幾種不同序列,通過(guò)點(diǎn)擊不同按鈕進(jìn)行切換;為了提高界面友好性,系統(tǒng)提供了圖形控制展臺(tái)供用戶調(diào)整圖形外觀。序列運(yùn)算模塊實(shí)現(xiàn)了加法、乘法、翻轉(zhuǎn)和卷積等序列運(yùn)算。圖3是常見序列展示程序界面,圖4展示了序列基本運(yùn)算。本部分實(shí)現(xiàn)代碼簡(jiǎn)單,下面是展示序列的卷積運(yùn)算部分核心代碼:
2.2 時(shí)域采樣模塊實(shí)現(xiàn)
通信系統(tǒng)分為模擬通信系統(tǒng)和數(shù)字通信系統(tǒng)。如果在發(fā)送端的信息源中包括一個(gè)模/數(shù)轉(zhuǎn)換裝置,在接收端包含一個(gè)數(shù)/模轉(zhuǎn)換裝置,就可以在數(shù)字系統(tǒng)中傳輸模擬信號(hào)。模/數(shù)轉(zhuǎn)換的主要任務(wù)是對(duì)模擬信號(hào)作離散化處理,將時(shí)間上連續(xù)的信號(hào)處理成時(shí)間上離散的信號(hào),這一過(guò)程稱為時(shí)域抽樣,如圖4所示。
時(shí)域抽樣過(guò)程展示:
(1)形象展示奈奎斯特抽樣定理的基本原理。根據(jù)奈奎斯特抽樣定理,理想采樣信號(hào)的頻譜是原模擬信號(hào)頻譜的周期延拓,延拓周期與采樣頻率成正比。理論上,當(dāng)采樣頻率fs ≥ 2fH時(shí)(fH 是模擬信號(hào)的最高頻率),可以由采樣信號(hào)無(wú)失真地恢復(fù)出原模擬信號(hào)。 分fs<2fH、fs=2fH和fs > 2fH三種情況展示抽樣定理基本原理,如圖4(a)所示。
(2)展示對(duì)任意模擬信息進(jìn)行時(shí)域抽樣和抽樣恢復(fù)的實(shí)際情況,如圖4(b)所示。為使信號(hào)具有一般性,通過(guò)兩個(gè)正弦信號(hào)來(lái)合成抽樣信號(hào),以圖形的方式展示模擬信號(hào)的幅度、抽樣后生成的時(shí)域離散信號(hào)以及恢復(fù)得到的模擬信號(hào)。抽樣頻率可以任意調(diào)整,以展示不同情況下的抽樣和恢復(fù)情況。
2.3 序列變換實(shí)現(xiàn)
信號(hào)的分析方法包括時(shí)域分析方法和頻域分析方法兩種。在時(shí)域離散信號(hào)和系統(tǒng)中,信號(hào)序列用差分方程描述。在頻域,則用序列的傅里葉變換(DTFT)、離散傅里葉變換(DFT)、離散傅里葉級(jí)數(shù)(DFS)和Z變換表示。這里以DTFT和DFT為例展示其實(shí)現(xiàn)方法,圖5(a)展示了DTF,圖5(b)展示了DFT。
模擬系統(tǒng)可用單位沖激相應(yīng)h(t)來(lái)表征,數(shù)字系統(tǒng)則用單位脈沖相應(yīng)h(n)來(lái)表征。模擬系統(tǒng)的系統(tǒng)函數(shù)為單位沖激相應(yīng)h(t)的拉普拉斯變換H(s),而數(shù)字系統(tǒng)的系統(tǒng)函數(shù)則是其單位脈沖相應(yīng)h(n)的Z變換H(z),理論上h(n)可通過(guò)對(duì)h(t)進(jìn)行抽樣得到。因此,研究模擬系統(tǒng)與數(shù)字系統(tǒng)的關(guān)系可以轉(zhuǎn)化為研究拉普拉斯變換與Z變化的關(guān)系,也就是研究S平面和Z平面之間的映射關(guān)系。
復(fù)變量S平面到復(fù)變量Z平面的映射關(guān)系包括點(diǎn)映射、線映射和面映射3種。其中,點(diǎn)映射包括3種情況:①S平面虛軸上的點(diǎn)映射到Z平面為單位圓上的點(diǎn);②S左半平面的點(diǎn)映射到Z平面為單位圓內(nèi)部的一個(gè)點(diǎn);③S右半平面的點(diǎn)映射到Z平面單位圓外部的一個(gè)點(diǎn)。線映射包括兩種情況:①S平面平行與縱軸的任意一條直線映射到Z平面為一個(gè)以原點(diǎn)為圓心的圓;②S平面平行與橫軸的一條直線映射到Z平面為一條以原點(diǎn)為起點(diǎn)的輻射線。面映射指S平面上寬度為2π/T的水平帶映射到整個(gè)Z平面。圖6展示了Z平面和S平面的映射關(guān)系。為方便處理,用極坐標(biāo)表示Z平面,用直角坐標(biāo)表示S平面。
2.4 頻域采樣展示
時(shí)域采樣會(huì)造成頻域的周期延拓,但只要采樣頻率足夠高(fs≥2fH),就可以避免頻譜各延拓分量的相互混疊,理論上能夠由采樣信號(hào)無(wú)失真地恢復(fù)到原模擬信號(hào)。與時(shí)域采樣類似,頻率采樣會(huì)造成時(shí)域序列的周期延拓,但只要頻域采樣的點(diǎn)數(shù)足夠多(M≥N),也能夠保證各延拓分量不相互混疊,從而由采樣信號(hào)無(wú)失真地恢復(fù)原序列。頻域采樣定理如圖7所示。
3 結(jié)語(yǔ)
針對(duì)數(shù)字信號(hào)處理課程理論性強(qiáng)、不易理解的特點(diǎn),本文用MATLAB設(shè)計(jì)并開發(fā)了數(shù)字信號(hào)處理教學(xué)輔助軟件。對(duì)該軟件的總體功能結(jié)構(gòu)進(jìn)行了介紹,展示了軟件的主要功能模塊。在課堂教學(xué)中將軟件與多媒體幻燈片有機(jī)結(jié)合,可改善教學(xué)效果,提高教學(xué)效率。
參考文獻(xiàn):
[1]薛年喜.MATLAB在數(shù)字信號(hào)處理中的應(yīng)用[M].北京:清華大學(xué)出版社,2003.
[2]樓順天,李博苗.基于M記曲的系統(tǒng)分析與設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,1998.
[3]丁玉美,高西全.數(shù)字信號(hào)處理教程[M].西安:西安電子科技大學(xué)出版社,2005.
[4]劉順蘭,吳杰.數(shù)字信號(hào)處理[M].西安:西安電子科技大學(xué)出版社,2003.
[5]潘偉.MATLAB在數(shù)字信號(hào)處理輔助教學(xué)中應(yīng)用[J].綿陽(yáng)師范學(xué)院學(xué)報(bào),2010(2):99-103.
(責(zé)任編輯:杜能鋼)