燕麗紅,張樂芳,馬小青
(西安歐亞學院 信息工程學院,陜西 西安 710065)
基于圖形可視化Wintool和FDAtool的FIR濾波器設(shè)計
燕麗紅,張樂芳,馬小青
(西安歐亞學院 信息工程學院,陜西 西安 710065)
在大數(shù)據(jù)背景時代下,數(shù)據(jù)處理工具顯得尤為重要,其中Matlab就是數(shù)據(jù)處理的一種有效的分析工具。Matlab具有強大的函數(shù)功能,可以通過編寫M文件進行濾波器設(shè)計,同時可以通過圖形可視化工具FDAtool和WINtool對系統(tǒng)階次、窗函數(shù)類型、采樣頻率等參數(shù)的設(shè)置來設(shè)計系統(tǒng)。在可視化界面中可以很快捷地得到系統(tǒng)頻譜圖和時域特性圖,便于用戶進行系統(tǒng)穩(wěn)定性分析,還可以將系統(tǒng)參數(shù)導(dǎo)出并保存為其他可處理的格式,從而方便用戶在其他平臺進一步進行系統(tǒng)設(shè)計和開發(fā)。
濾波器設(shè)計;FDAtool;WINtool;窗函數(shù)類型
信號處理中最主要的應(yīng)用就是濾波器設(shè)計,其設(shè)計的好壞關(guān)乎系統(tǒng)的可用性。而濾波器設(shè)計的目的是要進行數(shù)據(jù)序列的頻率改變,可通過設(shè)置采樣頻率進行相應(yīng)頻率成分信號的提取,或設(shè)計具有某一特定的通帶波紋(Passband Ripple)、阻帶衰減(Stopped Attennation)或暫態(tài)寬度(Transition Width)的濾波器。為了能更好地設(shè)計符合指標的濾波器,可采用Matlab中的函數(shù)進行編寫,也可以采用圖形可視化工具進行設(shè)計。本文主要講述使用FDAtool和Wintool可視化工具進行FIR濾波器的設(shè)計,該設(shè)計方法具有直觀、簡單的效果。
假設(shè)離散線性系統(tǒng)的輸入序列與輸出序列分別為x(n),y(n),則可以用以下方程表述輸入輸出之間的關(guān)系[1?2]:
通過對式(1)進行z變換,則有系統(tǒng)函數(shù):
設(shè)計數(shù)字濾波器也就是設(shè)計H(z)表達式中的各項系數(shù)ai,bi。當H(z)表達式中分母上的各項系數(shù)均等于零時,即為有限脈沖響應(yīng)FIR濾波器,則式(2)變?yōu)椋?/p>
通常在設(shè)計濾波器時是通過給定的指標去逼近理想的濾波器,理想(或稱為“brick wall”)的離散低通濾波器[3?4]的截止頻率設(shè)為ω0,在頻率小于ω0時的大小為1,在頻率從ω0到π的大小為0,其脈沖響應(yīng)序列h(n)為:
其脈沖響應(yīng)具有無限性及非因果性,為建立一個有限區(qū)間的脈沖響應(yīng)即可實現(xiàn)的系統(tǒng),可采用不同的窗函數(shù)將其截斷處理。
在FIR濾波器設(shè)計過程中,由于濾波器具有精確的線性相位、系統(tǒng)穩(wěn)定、設(shè)計方法為線性而且系統(tǒng)能夠有效地在硬件中得以實現(xiàn)等優(yōu)勢。在實際工程處理中,一般采用加窗截斷處理的方法來保留脈沖響應(yīng)的中心部分,得到線性相位的濾波器。
在數(shù)字濾波器設(shè)計中窗函數(shù)的主要角色是要減弱因為截斷無限信號引起的影響。Matlab信號處理工具箱提供了16個窗函數(shù)[5],常用的函數(shù)如表1所示。
表1 常用窗函數(shù)及其對應(yīng)的Matlab函數(shù)
2.1 直接處理
創(chuàng)建一個31階次,低通截止頻率ω0為0.2 rad/s的濾波器,其程序為:
b2=0.2*sinc(0.2*(-15:15));
b3=b2.*hamming(31)′;
fvtool(b2,1,b3,1); %繪制頻率響應(yīng)
圖1為窗函數(shù)設(shè)計的低通濾波器示意圖。由圖1可知,直接采用簡單的矩形窗設(shè)計時,由于矩形窗對信號突然截斷的緣故,在通帶及阻帶的邊緣很明顯產(chǎn)生了“Gibbs”效應(yīng)[6],隨著濾波器長度的增加,這種現(xiàn)象也不會消失。但在實驗過程中,同時采用了非矩形窗設(shè)計,即在時域乘上窗函數(shù),利用頻域卷積定理,有時域乘積等于頻域卷積,則對同樣濾波器應(yīng)用長度為31的Ham?ming窗進行處理后,可以看出處理后大大減小了波紋。
圖1 窗函數(shù)設(shè)計的低通濾波器示意圖
2.2 函數(shù)處理
FIR1函數(shù)[7]可實現(xiàn)加窗線性相位FIR數(shù)字濾波器的設(shè)計,其格式有:
B=FIR1(N,Wn)
%設(shè)計一個N階低通FIR數(shù)字濾波器,其中0 B=FIR1(N,Wn,′high′) %設(shè)計一個N階高通FIR數(shù)字濾波器 B=FIR1(N,Wn,′bandpass′) %設(shè)計一個N階帶通FIR數(shù)字濾波器,其中Wn=[W1W2] B=FIR1(N,Wn,′stop′) %設(shè)計一個N階帶阻FIR數(shù)字濾波器,其中Wn=[W1W2] 如果Wn是一個多元矩陣,即Wn=[W1W2,…,Wn],當 B=FIR1(N,Wn,′DC?1′) %使得多帶濾波器的第1帶為通帶 B=FIR1(N,Wn,′DC?0′) %使得多帶濾波器的第1帶為阻帶 B=FIR1(N,Wn,WIN) %設(shè)計指定窗的濾波器 其中向量Window必須是N+1個元素長度,如果沒有設(shè)定窗函數(shù),則FIR1函數(shù)使用長度為N+1的Hamming窗,如: B=FIR1(N,Wn,kaiser(N+1,4)) %設(shè)定凱瑟窗 采用FIR1函數(shù)設(shè)計一具有截斷頻率為0.2的Ham?ming窗低通線性相位31階的濾波器,則: n=31; Wn=0.2; b=fir1(n,wn); freqz(b,1,512);%繪制頻譜圖 圖2為使用FIRl函數(shù)設(shè)計的濾波器。通過圖1,圖2可以看出,使用非矩形窗設(shè)計和直接使用FIR1函數(shù)進行Hamming濾波器設(shè)計的結(jié)果一致。 3.1 FDAtool的FIR濾波器設(shè)計 FDAtool(Filter Design&Analysis tool)是Matlab信 號處理工具箱里專用的濾波器設(shè)計分析工具[8?9],它操作簡單,可用于設(shè)計及分析濾波器。在Matlab命令窗口中輸入fdatool,即可打開FDAtool界面,其下半部為design filter,用來設(shè)置濾波器的設(shè)計參數(shù),包括濾波器的類型、設(shè)計方法、窗函數(shù)規(guī)格、頻率特性、幅度特性及濾波器的階次等內(nèi)容,上半部分為頻譜特性或時域特性的顯示區(qū)。 圖2 使用FIR1函數(shù)設(shè)計的濾波器 打開FDAtool界面,設(shè)置響應(yīng)的參數(shù)后,選擇FDA?tool的菜單“Analysis”→“Magnitude Response”,則可得到對應(yīng)的幅度譜圖,如圖3所示。 圖3 FDAtool的Hamming窗設(shè)計幅度圖 與以上設(shè)置一樣,當選擇菜單“Analysis”→“Phase Response”啟動相頻響應(yīng)分析,如圖4所示。 圖4 FDAtool的Hamming窗設(shè)計相位圖 由圖4可以看到設(shè)計的FIR濾波器在通帶內(nèi)其相位響應(yīng)為線性的,即該濾波器是一個線性相位的濾波器。同時在FDAtool中還可以很直觀地顯示濾波器幅頻特性與相頻特性的比較,即可以通過菜單“Analysis”→“Magnitude and Phase Response”啟動分析,如圖5所示。 圖5 FDAtool的Hamming窗設(shè)計幅度和相位圖 在FDAtool可以很容易得到該濾波器的時域特性圖,只需通過菜單“Analysis”→“Impulse Response”啟動分析,如圖6所示。 圖6 FDAtool的Hamming窗設(shè)計時域特性頻譜圖 3.2 WINtool的FIR濾波器設(shè)計 WINtool是信號處理工具箱提供的圖形界面工具[10],如圖7所示??梢酝ㄟ^設(shè)置常用的窗函數(shù)進行濾波器的設(shè)計,能方便快捷地得到濾波器的時域特性和頻域特性。 圖7 窗函數(shù)的設(shè)計及分析工具(WINtool) 通過以上工具的使用,可以看出在進行濾波器設(shè)計過程中采用圖形分析工具更快速、便捷,同時在實際設(shè)計中方便將濾波器的參數(shù)數(shù)據(jù)進行導(dǎo)出和處理,也可與外部接口C語言鏈接和數(shù)據(jù)處理,可與DSP開發(fā)板鏈接和系統(tǒng)分析。 Matlab不但具有強大的函數(shù)庫,同時還具有可視化圖形工具。其可以通過函數(shù)文件編寫代碼進行濾波器設(shè)計,也可以通過人機交互界面進行信號處理,用戶可以更快捷、簡單地通過給定指標設(shè)計相應(yīng)的系統(tǒng),有效地提高了數(shù)據(jù)處理和系統(tǒng)分析的過程。在圖形可視化界面設(shè)計過程中,還可以將其設(shè)計的濾波器系統(tǒng)保存為.txt文件,從而方便在其他平臺上進行數(shù)據(jù)處理和分析。這將對用戶使用DSP處理器進行系統(tǒng)設(shè)計帶來很大的便利,也將成為用戶在工程應(yīng)用上的一個有效的數(shù)據(jù)分析工具。 [1]嚴慧.“數(shù)字信號處理”教學方法的探討[J].科技創(chuàng)新導(dǎo)報,2011(2):129?130. [2]高西全,丁玉美.數(shù)字信號處理[M].3版.西安:西安電子科技大學出版社,2008. [3]馬月紅,馬彥恒,王雪飛.基于Matlab的FIR數(shù)字濾波器設(shè)計與仿真[J].電子測量技術(shù),2010,11(33):66?69. [4]郭德才.基于Matlab的FIR低通濾波器的設(shè)計與仿真[J].通化師范學院學報,2009,30(8):35?37. [5]鄔曉紅,唐紅軍,趙琳,等.基于Matlab GUI的說話人識別測試平臺設(shè)計[J].現(xiàn)代電子技術(shù),2013,36(8):59?62. [6]李京秀.基于Matlab GUI的電路特性演示平臺設(shè)計[J].現(xiàn)代電子技術(shù),2012,35(22):160?162. [7]陳瑞峰,左曙光,郭偉.基于Matlab GUI的信號分析系統(tǒng)[J].佳木斯大學學報,2009,27(5):645?647. [8]何淮淼,畢睿華,林琦.基于Matlab/FDATool的電力系統(tǒng)數(shù)字濾波器的設(shè)計與實現(xiàn)[J].南京工程學院學報:自然科學版,2011,12(4):28?31. [9]施琴紅,趙明鏡.基于Matlab/FDATOOL工具箱的IIR數(shù)字濾波器的設(shè)計及仿真[J].科技廣場,2010(7):56?58. [10]羅華強.訊號處理:Matlab的應(yīng)用[M].臺北:全華科技圖書股份有限公司,2008. Design of FIR filter based on graph visualization Wintool and FDAtool YAN Lihong,ZHANG Lefang,MA Xiaoqing In the background of big data,the data processing tool becomes particularly important,in which Matlab is an ef?fective analysis tool.Matlab has powerful function performance,and can used to design the filter by compiling M?file.The con?figuration of system order,window function type and sampling frequency is conducted by graph visualization FDAtool and WIN?tool in Matlab toolbox to design the system.The system spectrogram and time?domain characteristic diagram can be quickly ob?tained in visual interface,which is easy for users to analyze system stability.The system parameters can be derived and saved as other processable formats,which is convenient for customers to further design and develop the system in other platforms. filter design;FDAtool;Wintool;window function type TN911?34;G642 A 1004?373X(2015)24?0004?03 10.16652/j.issn.1004?373x.2015.24.002 燕麗紅(1981—),女,陜西西安人,碩士研究生,講師。主要從事電子與通信的教學與研究。 2015?06?25 教育創(chuàng)新基金項目(120107);科技廳項目(2012JK08?15)3 FIR濾波器的圖形可視化設(shè)計
4 結(jié)語
(College of Information Engineering,Xi’an Eurasia University,Xi’an 710065,China)