遠飛



摘 要:利用現有的經典數字濾波器,可通過在Matlab中的幾種方法實現濾波。文章研究了濾波相關函數的用法,指出每個函數處理信號的特點,并給出了幾種方法進行仿真比較,其時域和頻域的結果顯示,使用filtfilt函數可對信號進行很好地濾波。
關鍵詞:數字濾波;Matlab;filter;filtfilt
中圖分類號:TD651;TN713 文獻標識碼:A 文章編號:2095-1302(2015)10-00-03
0 引 言
經典數字濾波器即FIR濾波器和IIR濾波器在很多領域中都發揮著重要的作用,在不要求實時處理時,常常使用Matlab軟件設計濾波器并對信號進行濾波。重力數據和重力梯度數據的濾波就是采集后在PC機上進行處理的。FIR濾波器具有線性相位,且系統總是穩定的,但是濾波器階數比較高;IIR濾波器階數比較低,但是不具有線性相位,且系統有可能不穩定。不過,在Matlab軟件中,可以通過零相位濾波解決IIR濾波器非線性相位的問題。重力數據需要低通濾波,重力梯度數據需要帶通濾波,對于FIR濾波器和IIR濾波器,選擇哪一個進行濾波,濾波器長度對濾波結果的影響,濾波器穩定性的驗證等問題都值得進行研究。
1 FIR濾波器
FIR濾波器具有線性相位,且系統總是穩定的,但是濾波器的階數比較高。而對于有限長度信號的濾波,濾波器的長度對濾波結果的影響是值得關注的問題。
2 FRR和RRF
在數字信號處理中,為了不產生相位失真,通常要求濾波器具有零相位。當濾波器是零相位時,輸出與輸入將不存在移位,即輸入和輸出數據在時間上能一一對應起來,只存在增益上的差別,我們稱此時的濾波器為零相位數字濾波器[1,2]。實現零相位數字濾波可以采用 FRR 或RRF方法。FRR濾波是先將輸入序列按順序濾波(forward filter) ,然后將所得結果翻轉后通過濾波器( reverse filter) ,再將所得結果翻轉后輸出( reverse output) ,即得相位不變的輸出序列。類似的,RRF濾波是先將輸入信號序列翻轉后通過濾波器( reverse filter) ,然后將所得結果翻轉后再次通過濾波器( reverse filter),這樣所得結果(forward output )即為精確零相位失真的輸出序列。
3 低通濾波
用窗函數法設計低通濾波器,通帶截止頻率為3 Hz,阻帶截止頻率為5 Hz,采樣頻率為100 Hz。用該濾波器分別對直流信號x1=ones(1,512)和低頻信號x2=0.2*sin(2*pi*2*t)進行濾波,濾波分別采用以上提到的幾種方法。對x1用幾種方法進行濾波,濾波結果如圖1所示,為了方便比較,幾種方法的濾波結果在幅值上做了改動,從圖中可以看出只有函數filtfilt得到的濾波結果和原信號是一樣的。其他幾種方法在兩端都或多或少有無效數據產生。
圖1 幾種濾波方法對x1濾波結果
幾種方法對直流信號濾波后的頻譜如圖2所示,將其中零頻率上面部分頻譜放大得到圖3所示的放大波形,可以看出filter、FRR和RRF方法得到的頻譜相近,conv和filtfilt方法得到的頻譜與原信號頻譜相近。從圖3中還可以看出filter、FRR和RRF方法得到的信號頻譜在零頻率處有明顯的衰減,大約在430左右,而原信號在零頻率處幅值大約為512。圖2中幅值較低,且接近零頻率處的頻譜放大可得到圖4,從中也可看出,filter、FRR和RRF方法得到的頻譜相近,conv和filtfilt方法得到的頻譜與原信號頻譜相近。將圖2中的頻譜整體適當放大,可以清晰的看出幾種方法相互接近的趨勢,如圖5所示。從時域和頻域對比幾種濾波方法,可以看出最好的濾波方法是使用filtfilt函數。
圖2 x1濾波后頻譜
圖3 零頻率上部分頻譜放大圖
圖4 接近零頻率處頻譜放大圖
圖5 x1濾波后頻譜整體放大圖
對x2用幾種方法進行濾波,濾波結果如圖6所示,為了方便比較,幾種方法的濾波結果在幅值上做了改動,從圖中可以看出,也只有函數filtfilt得到的濾波結果和原信號是一樣的。其他幾種方法在兩端也都或多或少有無效數據產生。
圖6 幾種濾波方法對x2濾波結果
幾種方法對x2濾波后的頻譜如圖7所示,將其中2 Hz頻率處上面部分頻譜放大可得到圖8的結果,可以看出filter、FRR和RRF方法得到的頻譜相近,conv和filtfilt方法得到的頻譜與原信號頻譜相近。從圖8中還可以看出,filter、FRR和RRF方法得到的信號頻譜在2 Hz處有明顯的衰減,大約為42,而原信號在零頻率處幅值大約為51。將圖7中的頻譜整體適當放大,可以清晰的看出幾種方法相互接近的趨勢,如圖9所示。從時域和頻域對比幾種濾波方法,可以看出,最好的濾波方法是使用filtfilt函數。對直流信號和正弦信號進行低通濾波,得到的結論相同,即使用filtfilt函數最好。
圖7 幾種方法對x2濾波后的頻譜圖
圖8 2 Hz頻率上部分頻譜放大圖
圖9 x2濾波后的頻譜放大圖
4 帶通濾波
用窗函數法設計帶通濾波器,該濾波器通帶截止頻率為[10 20]Hz,阻帶截止頻率為[5 25]Hz,采樣頻率為100 Hz。用該濾波器對信號x=0.2*sin(2*pi*15*t)進行濾波,濾波分別采用filter、conv、filtfilt、FRR和RRF方法,濾波結果如圖10所示,可以看出,filtfilt濾波后的信號最接近原信號。濾波后信號的頻譜如圖11所示,將其進行放大,如圖12所示,可以看出與低通濾波的情況相似,filter、FRR和RRF方法得到的頻譜相近,conv和filtfilt方法得到的頻譜與原信號頻譜相近。經過時域和頻域的比較,得出帶通濾波同樣是filtfilt函數最好。
圖10 幾種濾波方法對x濾波結果
5 結 語
非實時數字濾波在很多應用領域中都會用到,例如在電網行波數據處理中的應用[3]、在形貌恢復中的應用[4]、在心電信號處理中的應用[5]等。為了使濾波后信號不發生畸變,而且方便對比輸出信號和輸入信號,零相位濾波受到大家的青睞,大家都講零相位濾波,大多是FRR的原理。有的是按照FRR的步驟來濾波,有的其實是用filtfilt。通過本文的仿真研究,可以看出,FRR并不等同于filtfilt,而且filtfilt的效果比FRR或者RRF都要好。
圖11 濾波后信號頻譜圖
圖12 濾波后信號頻譜放大圖
參考文獻
[1]尚秀輝,郭愛煌,李廣宇.基于零相位數字濾波器的邊界問題的分析[J].電子測量技術, 2010,33(4):25-27.
[2]朱洪濤,李大勇,王志勇,等.軌檢儀抑制軌縫干擾信息的數字濾波法[J].微計算機信息,2006,22(6-1):182-183.
[3]楊書凱,劉慧,韓桂海,等.零相位濾波在電網行波數據處理中的應用[J].信息技術與信息化,2009(5):22-23.
[4]胡濤,劉國棟,浦昭邦.基于零相位濾波的聚焦形貌恢復技術[J].光電工程,2011,38(12):145-150.
[5]朱洪俊.心電信號零相位數字濾波[J].北京生物醫學工程,2003, 22(4):260-262.