基于利用MATLAB信號(hào)處理工具箱的數(shù)字濾波器設(shè)計(jì)與仿真論理工論文
摘要:
傳統(tǒng)的數(shù)字濾波器的設(shè)計(jì)過(guò)程復(fù)雜,計(jì)算工作量大,濾波特性調(diào)整困難,影響了它的應(yīng)用。本文介紹了一種利用MATLAB信號(hào)處理工具箱(SignalProcessingToolbox)快速有效的設(shè)計(jì)由軟件組成的常規(guī)數(shù)字濾波器的設(shè)計(jì)方法。給出了使用MATLAB語(yǔ)言進(jìn)行程序設(shè)計(jì)和利用信號(hào)處理工具箱的FDATool工具進(jìn)行界面設(shè)計(jì)的詳細(xì)步驟。利用MATLAB設(shè)計(jì)濾波器,可以隨時(shí)對(duì)比設(shè)計(jì)要求和濾波器特性調(diào)整參數(shù),直觀簡(jiǎn)便,極大的減輕了工作量,有利于濾波器設(shè)計(jì)的最優(yōu)化。本文還介紹了如何利用MATLAB環(huán)境下的仿真軟件Simulink對(duì)所設(shè)計(jì)的濾波器進(jìn)行模擬仿真。
關(guān)鍵詞:
數(shù)字濾波器MATLABFIRIIR
引言:
在電力系統(tǒng)微機(jī)保護(hù)和二次控制中,很多信號(hào)的處理與分析都是基于對(duì)正弦基波和某些整次諧波的分析,而系統(tǒng)電壓電流信號(hào)(尤其是故障瞬變過(guò)程)中混有各種復(fù)雜成分,所以濾波器一直是電力系統(tǒng)二次裝置的關(guān)鍵部件【1】。目前微機(jī)保護(hù)和二次信號(hào)處理軟件主要采用數(shù)字濾波器。傳統(tǒng)的數(shù)字濾波器設(shè)計(jì)使用繁瑣的公式計(jì)算,改變參數(shù)后需要重新計(jì)算,在設(shè)計(jì)濾波器尤其是高階濾波器時(shí)工作量很大。利用MATLAB信號(hào)處理工具箱(SignalProcessingToolbox)可以快速有效的實(shí)現(xiàn)數(shù)字濾波器的設(shè)計(jì)與仿真。
1數(shù)字濾波器及傳統(tǒng)設(shè)計(jì)方法
數(shù)字濾波器可以理解為是一個(gè)計(jì)算程序或算法,將代表輸入信號(hào)的數(shù)字時(shí)間序列轉(zhuǎn)化為代表輸出信號(hào)的數(shù)字時(shí)間序列,并在轉(zhuǎn)化過(guò)程中,使信號(hào)按預(yù)定的形式變化。數(shù)字濾波器有多種分類(lèi),根據(jù)數(shù)字濾波器沖激響應(yīng)的時(shí)域特征,可將數(shù)字濾波器分為兩種,即無(wú)限長(zhǎng)沖激響應(yīng)(IIR)濾波器和有限長(zhǎng)沖激響應(yīng)(FIR)濾波器。
IIR數(shù)字濾波器具有無(wú)限寬的沖激響應(yīng),與模擬濾波器相匹配。所以IIR濾波器的設(shè)計(jì)可以采取在模擬濾波器設(shè)計(jì)的基礎(chǔ)上進(jìn)一步變換的方法。FIR數(shù)字濾波器的單位脈沖響應(yīng)是有限長(zhǎng)序列。它的設(shè)計(jì)問(wèn)題實(shí)質(zhì)上是確定能滿足所要求的轉(zhuǎn)移序列或脈沖響應(yīng)的常數(shù)問(wèn)題,設(shè)計(jì)方法主要有窗函數(shù)法、頻率采樣法和等波紋最佳逼近法等。
設(shè)計(jì)完成后對(duì)已設(shè)計(jì)的濾波器的頻率響應(yīng)要進(jìn)行校核,要得到幅頻相頻響應(yīng)特性,運(yùn)算量也是很大的。我們平時(shí)所要設(shè)計(jì)的數(shù)字濾波器,階數(shù)和類(lèi)型并不一定是完全給定的,很多時(shí)候都是要根據(jù)設(shè)計(jì)要求和濾波效果不斷的調(diào)整,以達(dá)到設(shè)計(jì)的最優(yōu)化。在這種情況下,濾波器的設(shè)計(jì)就要進(jìn)行大量復(fù)雜的運(yùn)算,單純的靠公式計(jì)算和編制簡(jiǎn)單的程序很難在短時(shí)間內(nèi)完成設(shè)計(jì)。利用MATLAB強(qiáng)大的計(jì)算功能進(jìn)行計(jì)算機(jī)輔助設(shè)計(jì),可以快速有效的設(shè)計(jì)數(shù)字濾波器,大大的簡(jiǎn)化了計(jì)算量,直觀簡(jiǎn)便。
2數(shù)字濾波器的MATLAB設(shè)計(jì)
2.1FDATool界面設(shè)計(jì)
2.1.1FDATool的介紹
FDATool(FilterDesign&AnalysisTool)是MATLAB信號(hào)處理工具箱里專(zhuān)用的濾波器設(shè)計(jì)分析工具,MATLAB6.0以上的版本還專(zhuān)門(mén)增加了濾波器設(shè)計(jì)工具箱(FilterDesignToolbox)。FDATool可以設(shè)計(jì)幾乎所有的基本的常規(guī)濾波器,包括FIR和IIR的各種設(shè)計(jì)方法。它操作簡(jiǎn)單,方便靈活。
FDATool界面總共分兩大部分,一部分是DesignFilter,在界面的下半部,用來(lái)設(shè)置濾波器的設(shè)計(jì)參數(shù),另一部分則是特性區(qū),在界面的上半部分,用來(lái)顯示濾波器的各種特性。DesignFilter部分主要分為:
FilterType(濾波器類(lèi)型)選項(xiàng),包括Lowpass(低通)、Highpass(高通)、Bandpass(帶通)、Bandstop(帶阻)和特殊的FIR濾波器。
DesignMethod(設(shè)計(jì)方法)選項(xiàng),包括IIR濾波器的Butterworth(巴特沃思)法、ChebyshevTypeI(切比雪夫I型)法、ChebyshevTypeII(切比雪夫II型)法、Elliptic(橢圓濾波器)法和FIR濾波器的Equiripple法、Least-Squares(最小乘方)法、Window(窗函數(shù))法。
FilterOrder(濾波器階數(shù))選項(xiàng),定義濾波器的階數(shù),包括SpecifyOrder(指定階數(shù))和MinimumOrder(最小階數(shù))。在SpecifyOrder中填入所要設(shè)計(jì)的濾波器的階數(shù)(N階濾波器,SpecifyOrder=N-1),如果選擇MinimumOrder則MATLAB根據(jù)所選擇的濾波器類(lèi)型自動(dòng)使用最小階數(shù)。
FrenquencySpecifications選項(xiàng),可以詳細(xì)定義頻帶的各參數(shù),包括采樣頻率Fs和頻帶的截止頻率。它的具體選項(xiàng)由FilterType選項(xiàng)和DesignMethod選項(xiàng)決定,例如Bandpass(帶通)濾波器需要定義Fstop1(下阻帶截止頻率)、Fpass1(通帶下限截止頻率)、Fpass2(通帶上限截止頻率)、Fstop2(上阻帶截止頻率),而Lowpass(低通)濾波器只需要定義Fstop1、Fpass1。采用窗函數(shù)設(shè)計(jì)濾波器時(shí),由于過(guò)渡帶是由窗函數(shù)的類(lèi)型和階數(shù)所決定的,所以只需要定義通帶截止頻率,而不必定義阻帶參數(shù)。
MagnitudeSpecifications選項(xiàng),可以定義幅值衰減的情況。例如設(shè)計(jì)帶通濾波器時(shí),可以定義Wstop1(頻率Fstop1處的幅值衰減)、Wpass(通帶范圍內(nèi)的幅值衰減)、Wstop2(頻率Fstop2處的幅值衰減)。當(dāng)采用窗函數(shù)設(shè)計(jì)時(shí),通帶截止頻率處的幅值衰減固定為6db,所以不必定義。
WindowSpecifications選項(xiàng),當(dāng)選取采用窗函數(shù)設(shè)計(jì)時(shí),該選項(xiàng)可定義,它包含了各種窗函數(shù)。
2.1.2帶通濾波器設(shè)計(jì)實(shí)例
本文將以一個(gè)FIR濾波器的設(shè)計(jì)為例來(lái)說(shuō)明如何使用MATLAB設(shè)計(jì)數(shù)字濾波器:在小電流接地系統(tǒng)中注入83.3Hz的正弦信號(hào),對(duì)其進(jìn)行跟蹤分析,要求設(shè)計(jì)一帶通數(shù)字濾波器,濾除工頻及整次諧波,以便在非常復(fù)雜的信號(hào)中分離出該注入信號(hào)。參數(shù)要求:96階FIR數(shù)字濾波器,采樣頻率1000Hz,采用Hamming窗函數(shù)設(shè)計(jì)。
本例中,首先在FilterType中選擇Bandpass(帶通濾波器);在DesignMethod選項(xiàng)中選擇FIRWindow(FIR濾波器窗函數(shù)法),接著在WindowSpecifications選項(xiàng)中選取Hamming;指定FilterOrder項(xiàng)中的SpecifyOrder=95;由于采用窗函數(shù)法設(shè)計(jì),只要給出通帶下限截止頻率Fc1和通帶上限截止頻率Fc2,選取Fc1=70Hz,F(xiàn)c2=84Hz。設(shè)置完以后點(diǎn)擊DesignFilter即可得到所設(shè)計(jì)的FIR濾波器。通過(guò)菜單選項(xiàng)Analysis可以在特性區(qū)看到所設(shè)計(jì)濾波器的幅頻響應(yīng)、相頻響應(yīng)、零極點(diǎn)配置和濾波器系數(shù)等各種特性。設(shè)計(jì)完成后將結(jié)果保存為1.fda文件。
在設(shè)計(jì)過(guò)程中,可以對(duì)比濾波器幅頻相頻特性和設(shè)計(jì)要求,隨時(shí)調(diào)整參數(shù)和濾波器類(lèi)型,
以便得到最佳效果。其它類(lèi)型的FIR濾波器和IIR濾波器也都可以使用FDATool來(lái)設(shè)計(jì)。
圖1濾波器幅頻和相頻響應(yīng)(特性區(qū))
Fig.1MagnitudeResponseandPhaseResponseofthefilter
2.2程序設(shè)計(jì)法
在MATLAB中,對(duì)各種濾波器的'設(shè)計(jì)都有相應(yīng)的計(jì)算振幅響應(yīng)的函數(shù)【3】,可以用來(lái)做濾波器的程序設(shè)計(jì)。
上例的帶通濾波器可以用程序設(shè)計(jì):
c=95;%定義濾波器階數(shù)96階
w1=2*pi*fc1/fs;
w2=2*pi*fc2/fs;%參數(shù)轉(zhuǎn)換,將模擬濾波器的技術(shù)指標(biāo)轉(zhuǎn)換為數(shù)字濾波器的技術(shù)指標(biāo)
window=hamming(c+1);%使用hamming窗函數(shù)
h=fir1(c,[w1/piw2/pi],window);%使用標(biāo)準(zhǔn)響應(yīng)的加窗設(shè)計(jì)函數(shù)fir1
freqz(h,1,512);%數(shù)字濾波器頻率響應(yīng)
在MATLAB環(huán)境下運(yùn)行該程序即可得到濾波器幅頻相頻響應(yīng)曲線和濾波器系數(shù)h。篇幅所限,這里不再將源程序詳細(xì)列出。
圖2Simulink仿真圖及濾波效果圖
Fig.2Simulatedconnectionsandwaveform
可以看到經(jīng)過(guò)離散采樣、數(shù)字濾波后分離出了83.3Hz的頻率分量(scope1)。之所以選取上面的疊加信號(hào)作為原始信號(hào),是由于在實(shí)際工作中是要對(duì)已經(jīng)經(jīng)過(guò)差分濾波的信號(hào)進(jìn)一步做帶通濾波,信號(hào)的各分量基本同一致,可以反映實(shí)際的情況。本例設(shè)計(jì)的濾波器已在實(shí)際工作中應(yīng)用,取得了不錯(cuò)的效果。
3結(jié)論
利用MATLAB的強(qiáng)大運(yùn)算功能,基于MATLAB信號(hào)處理工具箱(SignalProcessingToolbox)的數(shù)字濾波器設(shè)計(jì)法可以快速有效的設(shè)計(jì)由軟件組成的常規(guī)數(shù)字濾波器,設(shè)計(jì)方便、快捷,極大的減輕了工作量。在設(shè)計(jì)過(guò)程中可以對(duì)比濾波器特性,隨時(shí)更改參數(shù),以達(dá)到濾波器設(shè)計(jì)的最優(yōu)化。利用MATLAB設(shè)計(jì)
數(shù)字濾波器在電力系統(tǒng)二次信號(hào)處理軟件和微機(jī)保護(hù)中,有著廣泛的應(yīng)用前景。
參考文獻(xiàn)
1.陳德樹(shù).計(jì)算機(jī)繼電保護(hù)原理與技術(shù)【M】北京:水利電力出版社,1992.
2.蔣志凱.數(shù)字濾波與卡爾曼濾波【M】北京:中國(guó)科學(xué)技術(shù)出版社,1993
3.樓順天、李博菡.基于MATLAB的系統(tǒng)分析與設(shè)計(jì)-信號(hào)處理【M】西安:西安電子科技大學(xué)出版社,1998.
4.胡廣書(shū).數(shù)字信號(hào)處理:理論、算法與實(shí)現(xiàn)【M】.北京:清華大學(xué)出版社,1997.
5.蒙以正.MATLAB5.X應(yīng)用與技巧【M】北京:科學(xué)出版社,1999.
【基于利用MATLAB信號(hào)處理工具箱的數(shù)字濾波器設(shè)計(jì)與仿真論理工論文】相關(guān)文章:
1.Vc 下如何利用Matlab工具箱進(jìn)行數(shù)字信號(hào)處理
2.基于MT8980實(shí)現(xiàn)的信號(hào)音控制設(shè)計(jì)理工論文
3.淺談MATLAB通信系統(tǒng)動(dòng)態(tài)仿真平臺(tái)設(shè)計(jì)論文