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