摘 要:分析了傳統濾波器方法在處理非平穩信號時的缺點,研究了小波去噪的原理和方法,研究了利用LabVIEW和Matlab混合編程的方法,將LabVIEW完美的圖形編程技術和Matlab強大的的數學解算功能結合起來,實現了小波降噪的數學建模和信號圖像顯示。通過對振動沖擊信號的濾波處理,表明了小波降噪方法在處理非平穩信號時的有效性。
關鍵詞: 小波去噪; 濾波器; LabVIEW; Matlab
中圖分類號: TN911.7?34; TP391 文獻標識碼: A 文章編號: 1004?373X(2013)19?0046?03
0 引 言
信號降噪是信號處理領域的經典問題之一。傳統的降噪方法主要包括線性濾波方法和非線性濾波方法,濾波器在工作時對信號進行篩選,只讓特定頻段的信號通過。當信號中的有用成分和噪聲成分各占不同頻帶,可以將噪聲成分有效除去。但如果信號和噪聲的頻譜重疊,則經典濾波器將不起作用。這些濾波器按濾波的頻段可分為高通、低通及帶通濾波器,根據設計濾波器的思想可以把濾波器分為巴特沃斯濾波器、貝塞爾濾波器、橢圓濾波器及切比雪夫濾波器等[1]。
此外,傳統的濾波器降噪方法的不足在于使信號變換后熵增加,無法刻畫信號的非平穩性并且無法得到信號的相關性。為了克服上述缺點,采用小波變換來解決信號降噪的方法應用越來越廣泛[2]。但是,由于小波變換數學理論較深,對于初學者而言,使用傳統的C語言等編程方法,編程難度很大。本文采用LabVIEW和Matlab混合編程的方法,將LabVIEW完美的圖形編程技術和Matlab強大的數學解算功能結合起來,實現了小波降噪的數學建模和信號圖像顯示。
1 小波變換原理
小波變換的理論主要包括連續小波變換、離散小波變換和多分辨分析[3?6]。
1.1 連續小波變換
設[ψ∈L2(R)?L1(R)]且[ψ(0)=0],則按如下方式平移和伸縮而生成的函數族[ψa,b]叫分析小波或連續小波(Continue Wavelet Transform,CWT),[ψ]稱為基本小波。
[ψa,b=a-12ψt-ba, a,b∈R,但a≠0] (1)
對于[f∈L2(IR)],信號[f]的連續小波變換[Wψf(a,b)]定義為:
[Wψf(a,b)=f,ψa,b=a-12-∞∞f(t)ψt-badt] (2)
式中引入因子[a-12]的原因是規范化,使[ψa,b2=ψ2]對于所有[a,b]成立。
任意函數在某一尺度[a]、平移點[b]上的小波變換系數,實質上表征的是在[b]位置處,時間段[2aΔψ]上包含在中心頻率為[ω*a],帶寬為[2Δψ/a]頻窗內的頻率分量大小,隨著尺度[a]的變化,對應窗口中心頻率為[ω*a]及窗口寬度[2Δψ/a]也發生變化。
1.2 離散小波變換
在實際應用中,一般分析的信號都是經過離散采樣后得到的離散時間序列,需要把連續小波及其變換離散化,以進行數字信號處理。具體作法是通過對其伸縮尺度因子[a]和平移因子[b]的采樣而離散化。
[a,b]只取離散值。[a=am0,][b=nb0am0,][m,n][∈][Z]且[a0≠1,][b0≠0。]不失一般性可假設[a0>1],則有:
[ψm,n(t)=a-m/20ψt-nb0am0am0=a-m/20ψa-m0t-nb0] (3)
從而式(2)的連續小波變換變為如式(4)的離散小波變換:
[Wψf(m,n)=a-m/20-∞∞f(t)ψ(a-m0t-nb0)dt] (4)
式中:[m,n]分別稱為頻率范圍指數和時間步長變化指數。
在連續小波變換[Wψf(a,b)]中,由于[a,b]是連續變化的,它是高冗余的,只要母小波[ψ(t)]滿足容許條件,則可由[Wψf(a,b)]完全恢復原信號[f(t)]。對于離散小波變換,由于對[a,b]進行了離散采樣,為了使[Wψf(m,n)]包含足夠的信息以恢復原信號[f(t)],就需要對變換使用的母小波作出更嚴格的限制。
在Hilbert空間H中的一族函數[?jj∈J]稱為是一個框架,如果存在[A,B∈(0,∞)]時,對于所有[f∈H,]有:
[Af2≤j∈Jf,?j2≤Bf2] (5)
并稱[A]與[B]為框架界。如果兩個框架界相等,則稱框架是緊框架。
根據有關的框架理論,當[ψm,n(t)]成為[L2(R)]的框架時,可由離散小波變換[Wψf(m,n)]恢復原信號[f(t)],其重構公式為:
[f(t)=m,nWψf(m,n)ψm,n(t)] (6)
式中[ψm,n(t)]是[ψm,n(t)]的對偶框架。
2 小波降噪原理
小波變換具有低熵性、多分辨率特性、去相關性、選基靈活性的特點,因此小波降噪得到更廣泛的應用。其中閾值去噪方法是一種實現簡單、結果較好的小波降噪方法。
閾值去噪方法就是對小波分解后的各層系數中模大于和小于某閾值的系數分別處理,然后對處理完的小波系數進行反變換,重構經去噪的信號。在現實情況下,有用的信號通常是低頻信號,而噪聲信號通常是高頻信號,在去噪的過程中,通常對小波分解的高頻系數進行閾值化后重構信號。閾值的獲取是小波去噪的關鍵,本文中的小波去噪模塊借助于Matlab小波分析工具箱中的小波分析函數獲取閾值。
Matlab中實現信號閾值獲取的函數有ddencmp、thselect、wbmpen和wdcbm,本文采用了wbmpen。小波去噪的部分Matlab代碼如下:
[c,1]=wavedec(y3,m,′db6′);
%估計尺度1的噪聲標準偏差
sigma=wnoisest(c,1,1);
alpha=2;
%獲取消噪過程中的閾值
thr=wbmpen(c,1,sigma,alpha);
keepapp=1;
%對信號進行消噪
y=wdencmp(′gbl′,c,l, ′db6′,m,thr, ′s′,keepapp);
3 LabVIEW和Matlab混合編程方法
3.1 LabVIEW簡介
LabVIEW(Laboratory Virtual Instrument Engineering)是NI(National Instruments)公司的產品,是一種圖形化的編程語言,它廣泛地被工業界、學術界和研究實驗室所接受,視為一個標準的數據采集和儀器控制軟件。這是一個功能強大且靈活的軟件,利用它可以方便地建立自己的虛擬儀器,其圖形化的界面使得編程及使用過程都生動有趣。利用LabVIEW,可產生獨立運行的可執行文件。
圖形化的程序語言,又稱為“G”語言。使用這種語言編程時,基本上不寫程序代碼,取而代之的是流程圖。它盡可能利用了技術人員、科學家、工程師所熟悉的術語、圖標和概念,因此,LabVIEW是一個面向最終用戶的工具,提供了實現儀器編程和數據采集系統的便捷途徑。使用它進行原理研究、設計、測試并實現儀器系統時,可以大大提高工作效率[7]。
3.2 LabVIEW調用外部代碼的方法
LabVIEW的Functions模塊內Advanced中CIN節點,用戶可將需要調用的外部代碼編譯成LabVIEW所能識別的格式與此節點相連,當此節點執行時,LabVIEW將自動調用與此節點相連的外部代碼,并向CIN傳遞特定的數據結構。
使用CIN技術,用戶可向CIN傳遞任意復合的數據結構。由于LabVIEW中數據的存儲格式遵循了C語言中數據的存儲格式,所以通常情況下,使用CIN可獲得較高的程序效率。
3.3 利用LabVIEW的圖形界面編程方法
為了更直觀地顯示信號波形,采用LabVIEW開發了圖形顯示界面,用以顯示原始信號波形和消噪后信號波形。圖1是圖形顯示界面的LabVIEW編程代碼。圖2是采用LabVIEW和Matlab混合編程的代碼。
4 應用實例
本文采用小波去噪方法對兩種不同的振動沖擊信號進行了分析處理,如圖3和圖4所示。
從圖形顯示結果可以看出,經小波降噪后,濾除了噪聲干擾信號,各激勵響應信號更加明顯,這對于后期的信號分析處理奠定了良好基礎。
5 結 語
小波去噪方法相比于傳統的濾波器方法,在處理非平穩信號時具有獨特的優勢,有助于提高信號分析處理精度。而采用LabVIEW和Matlab混合編程的方法,則降低了編程難度,可以大大提高工作效率,是一種實現儀器編程的便捷途徑。
參考文獻
[1] 胡廣書.數字信號處理[M].北京:清華大學出版社,2003.
[2] DAUBECHIES I.小波十講[M].李建平,楊萬年,譯.北京:國防工業出版社,2004.
[3] ANTONINI M, BARLAUD M, MATHIEU P. Image coding using lattice vector quantization of wavelet coefficients [C]// Proceedings of IEEE International Conference on Acoustics, Speech, and Signal Processing. Toronto, Canada: ICASSP, 1991: 2273?2276.
[4] SHENSA M. The discrete wavelet transform: wedding the a trous and Mallat algorithms [J]. IEEE Transactions on Signal Processing, 1992, 40(10): 2464?2482.
[5] ZHANG X P, TIAN L S, PENG Y N, et al. From the wavelet series to the discrete wavelet transform—The initialization [J]. IEEE Transactions on Signal Processing, 1996, 44(1): 129?133.
[6] 周偉.Matlab小波分析高級技術[M].西安:西安電子科技大學出版社,2005.
[7] 楊樂平,李海濤,趙勇,等.LabVIEW高級程序設計[M].北京:清華大學出版社,2003.