武 麗,姜 斌,張海瑞
鄭州大學西亞斯國際學院,河南鄭州 451150
隨著近代計算機的出現以及超大規模集成電路的高速發展,數字信號處理在電子專業的各個相關領域,都具有非常廣泛的應用[1],是電子類專業學生的一門重要的專業必修課。然而由于數字信號處理的內容抽象、公式較多,學生對相關的公式推導、基本理論及分析方法很難理解與掌握,教學效果并不樂觀。在實際教學中,利用Matlab軟件設計對數字信號中的重點難點進行仿真分析,不僅彌補了實驗室硬件設施的不足,而且鞏固了學生對所學的電路分析、信號與系統等基本理論課程的理解和深化,提高了學生對數字信號處理的學習興趣,對于今后專業課程的學習以及個人實際動手編程能力的提高,都是十分重要的。
眾所周知, Matlab是Mathworks公司于1982年推出的一種商業數學軟件,它將數值分析、矩陣運算、信號處理和圖形顯示有機地融為一體,形成了一個用戶界面極其友好的操作環境[2]。尤其是該軟件所具有的信號處理工具箱(signal processing toolbox),其中包含許多由信號處理庫函數,這些函數可直接調用,使編程變得簡單。這樣我們就可以方便地利用Matlab軟件來完成數字信號處理課程的數值計算和算法的建模、圖形的繪制以及數字信號系統的設計與仿真。
Matlab軟件在信號處理中主要用于數值計算及仿真分析,包括函數運算、函數波形繪制、信號的時域分析以及信號的頻譜分析等內容,這樣就可以幫助學生更深入理解數字信號處理中的理論知識[3]。在數字信號處理教學中,可以在講授多媒體教學課件的基礎上,使用Matlab作為輔助教學工具,穿插講解用Matlab制作的示例和仿真,從而改善教學效果。本文以一個經典示例來詳細說明Matlab在教學中的輔助應用。
利用離散傅里葉變換(DFT, Discrete Fourier Transform)計算線性卷積
由于序列的圓周卷積可根據時域圓周卷積定理利用DFT來求解,而DFT又具有快速傅里葉變換(FFT, Fast Fourier Transfor)算法,所以運算速度極快。而實際分析系統零狀態響應時,需要求線性卷積,由此引出有限長序列的圓周卷積與線性卷積等價條件的分析,當二者等價,便實現利用DFT計算線性卷積。
若x(n)和h(n)為有限長序列,序列的長度分別為M 和N,由線性卷積的知識可知x(n)和h(n)線性卷積的長度為M+N-1,若其圓周卷積的點數L≥M+N-1時,x(n)和h(n)的圓周卷積可以代替其線性卷積,反之,若L<M+N-1,一部分非零序列值重疊,會出現混淆現象[1]。由于Matlab 中沒有圓周卷積運算的庫函數,課前需編寫自定義函數cconv,該函數可實現有限長序列x(n)和h(n)的圓周卷積,L為循環卷積的點數。課上現場演示仿真實驗時,只需每次改變對L的賦值,就可以得到各種情況下圓周卷積的結果,直觀地展現其與線性卷積等價的情況。
自定義函數cconv的程序代碼如下:

現設x(n)=[1234], h(n)=[11111],序列長度分別為4、5,由Matlab庫函數conv可求得其線性卷積的序列長度為8,當圓周卷積的點數L=6時,其小于線性卷積的長度8,故發生混疊現象,而當L=8及以上時,此時滿足線性卷積和圓周卷積的等價條件,根據仿真波形可見,圓周卷積的結果與線性卷積的結果一致。
通過對課堂現場仿真結果的觀察,學生可以直觀地看到圓周卷積點數L的選取對有限長序列圓周卷積與線性卷積等價關系的影響,從而加深對該知識點的理解與記憶。
其次,對一些難度適宜的課后習題要求學生不僅進行書面作答,同時要求學生利用Matlab軟件編寫小型程序得到仿真結果。通過這樣的訓練,學生在驗證作業正確性的同時,也加強了編程能力,從而強化了學生的綜合能力及創新能力。
通過上述示例可以看出, 根據數字信號處理這門課程理論性較強且不易學生掌握的特點,在理論教學以及實踐環節中,充分利用Matlab語言的簡潔且功能強大的優勢,將其作為主要的仿真手段引入教學。實踐證明,由此收到了良好的教學效果,學生學習知識、應用知識的能力得以提高。
[1]丁玉美,高西全.數字信號處理[M].西安:西安電子科技大學出版社,2006.
[2]鞏萍,趙杰.Matlab在數字信號處理中的應用[J].長沙大學學報,2009(9):78-79.
[3]王世一.數字信號處理[M].北京:北京理工大學出版社,2006.