郭建濤
(信陽師范學(xué)院物理電子工程學(xué)院,河南信陽 464000)
“數(shù)字信號處理”是電氣信息類專業(yè)的基礎(chǔ)課程。我們將Matlab引入課堂教學(xué)中,將抽象的數(shù)學(xué)和技術(shù)理論以易于理解的可視化形式加以演示,結(jié)合課后習(xí)題和實驗教學(xué)的模式,使學(xué)生真正理解數(shù)字信號處理的基本概念,掌握數(shù)字信號處理的基本方法,提高分析問題和解決問題的能力[1-3]。
Matlab應(yīng)用軟件以矩陣運算為基礎(chǔ),通過簡單的函數(shù)調(diào)用,可以實現(xiàn)復(fù)雜的數(shù)字信號處理功能,易學(xué)易用。特別是其具有的數(shù)字信號處理工具箱,涵蓋了經(jīng)典信號處理理論的大部分內(nèi)容,很多常用的算法都有對應(yīng)的函數(shù),如掃頻的頻率余弦發(fā)生器函數(shù)chirp、線性調(diào)頻z變換函數(shù)czt、快速傅里葉變換函數(shù)fft、基于窗函數(shù)的FIR濾波器設(shè)計函數(shù)firl、多采樣率信號處理的信號抽取函數(shù)downsample等,可以方便地進行數(shù)字信號處理的相關(guān)運算,完成從概念設(shè)計到芯片實現(xiàn)的整個流程。
Matlab在課堂教學(xué)中的應(yīng)用主要體現(xiàn)在三個方面,一是教師在講解公式推導(dǎo)的同時,可以利用Matlab的實例演示相應(yīng)知識點的對應(yīng)結(jié)果,能夠更加生動直觀地揭示出公式所包含的物理含義;二是讓學(xué)生利用Matlab軟件完成以書面形式難以完成的作業(yè);三是能夠開設(shè)綜合性和設(shè)計性的實驗,充分發(fā)揮學(xué)生動手實踐的主動性和創(chuàng)造性。
本文以采用DFT做連續(xù)信號的頻譜分析為教學(xué)實例,對Matlab在“數(shù)字信號處理”課程中的應(yīng)用加以探討[4]。DFT作為時域和頻域離散化序列的一種變換,在數(shù)字信號處理領(lǐng)域里得到了廣泛應(yīng)用。
應(yīng)用DFT對連續(xù)信號進行頻譜分析時,熟練掌握計算方法,理解計算過程中出現(xiàn)的各種現(xiàn)象和解決辦法顯得尤為重要。筆者采用Matlab仿真將頻譜分析現(xiàn)象利用圖形加以演示,并講解產(chǎn)生現(xiàn)象的原因和解決問題的辦法,從而達到事半功倍的教學(xué)效果。
1)混疊現(xiàn)象
考慮連續(xù)時間信號 xa(t)=e-0.1t(t≥0),用DFT進行頻譜分析。這里取數(shù)據(jù)長度L=10s。在不同采樣周期 T情況下,對采樣信號由DF T計算頻譜。圖1中給出了在T=2s,1s,0.5s時信號的幅度譜,橫坐標(biāo)表示角頻率,單位是弧度。此時,相應(yīng)的奈奎斯特邊界角頻率分別為 ±π/2,±π,±10π。從圖1可以看出,隨著采樣頻率的增加,信號頻譜更加集中在低頻附近,產(chǎn)生混疊的可能性越小。進一步可用奈奎斯特頻率處的幅度值來評價混疊的嚴(yán)重程度:隨著采樣頻率的增加,邊界頻率的幅度不斷減小,由 1.0997※0.5250※0.0318,與相應(yīng)最大值相比,相對誤差由10%※5%※0.5%??梢?當(dāng)T=0.1s時,由時域采樣引起的頻率混疊可以忽略不計。
圖1 不同采樣率N下的頻譜混疊
2)截斷效應(yīng)
選定采用周期 T以后,下面分析改變L的效果。隨著采樣點數(shù)(L=100,200,400)即數(shù)據(jù)長度的增加,信號頻譜的擴展程度依次減小,說明截斷效應(yīng)相當(dāng)明顯,盡管都沒有混疊現(xiàn)象。如果進一步增加數(shù)據(jù)長度,例如L=800,可以進一步了解到,兩者之間的誤差已經(jīng)很難分辨,說明,在L取400時已經(jīng)足以避免截斷效應(yīng)的影響。
3)柵欄效應(yīng)
圖1(a)在T=2s時所顯示的角頻率應(yīng)該達到1.57,但是由于采樣點數(shù)N僅僅為5,頻率抽樣間隔是1.25,所以不能顯示邊界頻率?,F(xiàn)將圖1(a)重畫于圖2(a)。但在序列尾部補零至100點(程序中的N改為100,相當(dāng)于頻率抽樣間隔變?yōu)?.0314)后,獲取的頻譜如圖2(b)所示。由此不僅可以顯示到邊界頻率附近,而且頻譜細(xì)節(jié),即圖中波動部分也完全顯示出來。因此,補零可以改善頻譜的視在分辨率,減小柵欄效應(yīng)。
圖2 補零前后的信號頻譜
4)分辨率
盡管補零可以改善信號的視在分辨率,使得被“柵欄”擋住的頻譜峰點或谷點暴漏出來,但是補零并不能提高DFT的頻率分辨率?,F(xiàn)考慮信號為
選擇合適的采樣周期:取T=0.15s。通過改變信號長度,等價地改變信號采樣點數(shù) N,考察影響頻率分辨率的因素。分別取N=256,2048,圖3給出了采樣點為256的信號在頻率在(0,3)范圍內(nèi)的頻譜。圖3(b)給出了采樣點為2048的信號頻譜。比較圖3(a)和圖3(b),可以看出,前者不能分辨出兩個諧振峰,而后者能夠分出兩個諧振峰的位置及其幅度,說明增加數(shù)據(jù)有效長度,可以提高DFT的頻率分辨率。但是,在數(shù)據(jù)長度為256的情況下,采用2048點的DFT變換,盡管頻譜視在分辨率有所提高(表現(xiàn)為波動現(xiàn)象),但是實際分辨率沒有改善,見圖3(c)。
圖3 有效數(shù)據(jù)長度和補零情況下的信號分辨率
在課堂理論教學(xué)中引入Matlab仿真,可以使學(xué)生易于理解數(shù)字信號處理的基本理論。該教學(xué)過程可以進一步延伸至理論課外,即課后習(xí)題的處理以及實驗課教學(xué)的過程中,Matlab能夠起到類似的作用,只是運用的主體轉(zhuǎn)移為學(xué)生。例如,利用信號分析和濾波器設(shè)計的理論知識,開發(fā)基于Matlab軟件平臺的數(shù)字信號處理軟件,進行譜分析和濾波器設(shè)計等實驗,從而在實踐中加深對基本概念的理解,更好地掌握數(shù)字信號處理理論。
我們通過具體的實例仿真,以圖形化的方式將抽象的物理現(xiàn)象具體化可視化,使學(xué)生對物理現(xiàn)象產(chǎn)生的原因、具體現(xiàn)象及其解決辦法有了更深入的理解。同時,Matlab簡單易學(xué),有助于學(xué)生在有限的時間內(nèi),將公式及其物理意義有機結(jié)合,迅速掌握相關(guān)理論知識。在此基礎(chǔ)上,課后布置的仿真練習(xí)和實驗教學(xué)中使用Matlab,能夠使學(xué)生加深對教學(xué)內(nèi)容的進一步理解,鍛煉學(xué)生的動手能力,從而掌握數(shù)字信號處理知識的靈活運用。
[1] 徐紅梅,宋正勛,胡貞.Matlab在電子信息類專業(yè)基礎(chǔ)課中的應(yīng)用[J].長春:長春光學(xué)精密機械學(xué)院學(xué)報,2001,9(1):24-26
[2] 方益明.提高“數(shù)字信號處理”課程教學(xué)效果的研究[J].南京:電氣電子教學(xué)學(xué)報,2009,31(3):15-16
[3] 伯曉晨等編.Matlab工具箱應(yīng)用指南—信息工程篇.北京:電子工業(yè)出版社(第一版),2000
[4] 吳鎮(zhèn)揚.數(shù)字信號處理[M].北京:高等教育出版社,2004