李娟 吳謹 楊莘
摘要數字信號處理是一門理論性很強的課程,針對教學過程中學生對知識點理解困難、學習枯燥無味等問題,將Matlab軟件引入課堂教學中,以FIR濾波器的窗函數設計法為教學實例,將相關知識點用圖形化演示直觀地表示出來。在實驗教學中,以Matlab軟件為平臺,分別按照窗函數設計法的原理編程設計濾波器,采用Matlab信號處理工具箱提供的fir1函數設計濾波器,以及調用濾波器設計和分析工具箱提供的圖形用戶界面設計濾波器。教學效果表明,將Matlab引入到教學過程中,不僅可以使學生直觀地領會和深入地理解數字信號處理的理論知識和分析方法,還可以提高學生的實際動手能力以及分析解決問題的能力,有效提高了教學質量。
關鍵詞數字信號處理FIR濾波器Matlab
0 引言
數字信號處理是電子信息類專業的基礎課程。我們將Matlab引入課堂教學中,將抽象的理論以易于理解的可視化形式加以演示,并結合實驗教學的模式,幫助學生理解與掌握課程中的基本概念、基本原理和基本分析方法,發揮學生動手實踐的主動性和創造性。
Matlab軟件以矩陣運算為基礎,其功能強大、簡單易學、編程效率高。特別是其具有的數字信號處理工具箱,涵蓋了經典信號處理理論的大部分內容,很多常用的算法都有對應的函數,可以方便地進行信號分析、處理和設計。
Matlab在教學中的應用主要體現在二個方面,①一是教師在講解基本概念的同時,可以利用Matlab演示相應知識點的對應結果,能夠更加生動直觀地揭示其所包含的物理含義;二是讓學生利用Matlab軟件進行實驗,深化學生對基本原理的理解,提高學生應用軟件工具的能力。
本文以FIR濾波器的窗函數設計法為教學實例,對Matlab在“數字信號處理”課程中的應用加以探討。
1 Matlab在課堂教學中的應用
FIR濾波器的窗函數設計法是從單位沖激響應著手,使要設計的FIR濾波器的單位沖激響應(())逼近理想濾波器的單位沖激響應(()),通常表示為:
() = ()()
即用一個有限長的窗函數序列()截取(),因而窗函數序列的形狀及長度的選擇就很關鍵。常用的窗函數有矩形窗、三角形窗、漢寧窗、哈明窗、布萊克曼窗等。這些窗函數各有優缺點,所以要根據實際情況合理選擇窗函數類型。②筆者利用Matlab演示窗函數類型與窗寬對所設計的濾波器的影響。
1.1 窗函數類型
分別用矩形窗和哈明窗設計一個FIR低通濾波器,假設窗寬和截止頻率相同( = 11, = 0.2%i),比較這兩種窗函數設計的濾波器的幅頻曲線,如圖1所示,很容易觀察到選擇的窗函數對所設計的濾波器的影響。采用矩形窗時,過渡帶較窄,阻帶最小衰減較小;采用哈明窗時,過渡帶較寬,阻帶最小衰減較大。
1.2 窗寬
分別用不同窗寬( = 11, = 15)的哈明窗設計一個FIR低通濾波器,假設截止頻率相同( = 0.2%i),比較兩種不同窗寬設計的濾波器的幅頻曲線,如圖2所示,很容易觀察到窗寬對所設計的濾波器的影響。增加窗寬,使得濾波器的過渡帶變陡,但是阻帶最小衰減不變。
通過以上Matlab演示,可以更直觀地認識到窗函數類型與窗寬對所設計的濾波器的影響,并可歸納出一般性結論:
(1)濾波器的過渡帶寬度與所選窗函數有關;而對于一定的窗函數,增加窗函數的長度(或窗寬)可以使過渡帶變陡。
(2)通帶和阻帶內的波動幅度與所選窗函數有關;而對于一定的窗函數,增加窗寬不能改善波動幅度。
(3)阻帶最小衰減與過渡帶寬這兩個性能指標是相互制約的,總不能兼得。
因此,設計FIR濾波器時,選擇合適的窗函數尤為關鍵。其選取原則是在阻帶衰減指標滿足要求的情況下,選擇使過渡帶窄的窗函數。表1給出了幾種常用窗函數的基本參數。
2 Matlab在實驗教學中的應用
在實驗教學中,我們采用了三種手段來設計一個FIR濾波器。④第一種手段按照窗函數設計法的理論分析步驟,用Matlab語言編程實現。第二種手段直接調用Matlab信號處理工具箱提供的 fir1函數設計濾波器。第三種手段調用濾波器設計和分析工具箱提供的圖形用戶界面設計濾波器。
[設計實例] 設計一個線性相位FIR低通濾波器,要求通帶截止頻率為 = 0.2%i,阻帶截止頻率為 = 0.4%i,阻帶最小衰減為 = 50。
2.1 理論分析步驟法
窗函數法的理論分析步驟如下:(1)給定理想低通濾波器的頻率響應,并求出理想低通濾波器的截止頻率;(2)求理想的單位沖激響應;(3)查表1,根據窗函數的選取原則,確定合適的窗函數;(4)根據過渡帶寬確定窗寬,并確定保證濾波器線性相位的相關參數;(5)求所設計的FIR濾波器的單位沖激響應;(6)求所設計的FIR濾波器的頻率響應,檢驗是否滿足設計要求。
對本文的設計實例,按照上述理論分析步驟,用Matlab語言編程實現,得到的濾波器幅頻曲線如圖3所示,可見滿足設計要求。
2.2fir1函數調用法
上述設計計算復雜,學生容易陷于繁瑣的編程。選定窗函數的形狀和長度后,FIR濾波器設計可簡化為調用fir1函數。
fir1函數的調用格式如下:
b = fir1(N,Wc,''''ftype'''',Window)
其中,N為濾波器的階數;Wc是截止頻率,其取值在0~1之間,它是以%i為基準頻率的標稱值,設計低通和高通濾波器時,Wc是標量,設計帶通和帶阻濾波器時,Wc是1?的向量;設計低通和帶通濾波器時,無需 ''''ftype'''',當ftype = high時,設計高通濾波器,當ftype = stop時,設計帶阻濾波器;Window表示設計濾波器所采用的窗函數類型,Window的長度為N+1,若Window缺省,則fir1默認使用哈明窗;b對應設計好的濾波器的系數h(n),即單位沖激響應,h(n)的長度為N+1。
對本文的設計實例,調用fir1函數,得到的濾波器幅頻曲線如圖4所示,可見滿足設計要求。
2.3 Fdatool圖形用戶界面法
濾波器設計和分析工具箱Fdatool(Filter Design and Analysis Tool)是快速設計和分析濾波器的圖形用戶界面。Fdatool可以設計幾乎所有的常規濾波器,包括IIR濾波器和FIR濾波器的各種設計方法。它操作簡單,方便靈活。
Fdatool界面總共分兩大部分,一部分是design filter,在界面的下半部,用來設置濾波器的設計參數,另一部分則是特性區,在界面的上半部分,用來顯示濾波器的各種特性。
對本文的設計實例,采用Fdatool圖形用戶界面法,得到的濾波器幅頻曲線如圖5的窗口上方所示:
比較上述三種設計手段,第一種手段并沒有發揮Matlab強大的信號處理能力,但可以加深學生對窗函數法設計思路的理解。第二種手段需要充分掌握濾波器設計參數,并能夠正確的調用函數。第三種手段在設計過程中,可以對比濾波器頻率特性和設計要求,隨時調整參數和濾波器類型,有利于濾波器設計的最優化,并且使得濾波器的設計變得更加直觀簡便,極大地減輕了工作量。
3 結束語
本文以FIR濾波器的窗函數設計法為教學實例,利用Matlab軟件將相關知識點用圖形化演示直觀地表示出來,使學生易于理解相關理論知識。此外,實驗教學中Matlab的應用可以加深學生對基本概念的進一步理解,并且鍛煉了學生的動手能力和靈活運用數字信號處理知識的能力。
1、湖北省高等學校省級教學研究項目(厚基礎強能力的創新人才培養模式研究與實踐)
2、湖北省高等學校省級教學研究項目(新時期地方綜合性大學電氣信息類專業建設研究與探索)
3、武漢科技大學校級重點教研項目(《圖像處理》課程的實驗教學改革探究)