基于LabVIEW和Matlab混合編程的小波去噪方法
0 引言
信號降噪是信號處理領域的經(jīng)典問題之一。傳統(tǒng)的降噪方法主要包括線性濾波方法和非線性濾波方法,濾波器在工作時對信號進行篩選,只讓特定頻段的信號通過。當信號中的有用成分和噪聲成分各占不同頻帶,可以將噪聲成分有效除去。但如果信號和噪聲的頻譜重疊,則經(jīng)典濾波器將不起作用。這些濾波器按濾波的頻段可分為高通、低通及帶通濾波器,根據(jù)設計濾波器的思想可以把濾波器分為巴特沃斯濾波器、貝塞爾濾波器、橢圓濾波器及切比雪夫濾波器等。
此外,傳統(tǒng)的濾波器降噪方法的不足在于使信號變換后熵增加,無法刻畫信號的非平穩(wěn)性并且無法得到信號的相關性。為了克服上述缺點,采用小波變換來解決信號降噪的方法應用越來越廣泛。但是,由于小波變換數(shù)學理論較深,對于初學者而言,使用傳統(tǒng)的C語言等編程方法,編程難度很大。本文采用LabVIEW 和Matlab 混合編程的方法,將LabVIEW 完美的圖形編程技術和Matlab強大的數(shù)學解算功能結合起來,實現(xiàn)了小波降噪的數(shù)學建模和信號圖像顯示。
1 小波變換原理
小波變換的理論主要包括連續(xù)小波變換、離散小波變換和多分辨分析。
1.1 連續(xù)小波變換
按如下方式平移和伸縮而生成的函數(shù)族 {ψ a,b } 叫分析小波或連續(xù)小波(Continue Wavelet Transform,CWT),ψ 稱為基本小波。
任意函數(shù)在某一尺度a 、平移點b 上的小波變換系數(shù),實質上表征的是在b 位置處,時間段2aΔψ 上包含在中心頻率為ω* a ,帶寬為2Δψ - /a 頻窗內的頻率分量大小,隨著尺度a 的變化,對應窗口中心頻率為ω* a 及窗口寬度2Δψ - /a 也發(fā)生變化。
1.2 離散小波變換
在實際應用中,一般分析的信號都是經(jīng)過離散采樣后得到的離散時間序列,需要把連續(xù)小波及其變換離散化,以進行數(shù)字信號處理。具體作法是通過對其伸縮尺度因子a 和平移因子b 的采樣而離散化。
式中:m,n 分別稱為頻率范圍指數(shù)和時間步長變化指數(shù)。
在連續(xù)小波變換Wψ f (a,b) 中,由于a,b 是連續(xù)變化的,它是高冗余的,只要母小波ψ(t) 滿足容許條件,則可由Wψ f (a,b) 完全恢復原信號f (t) .對于離散小波變換,由于對a,b 進行了離散采樣,為了使Wψ f (m,n) 包含足夠的信息以恢復原信號f (t) ,就需要對變換使用的母小波作出更嚴格的限制。
在Hilbert空間H中的一族函數(shù){- }jj ∈ J稱為是一個框架,如果存在A,B ∈(0,∞) 時,對于所有f ∈ H,有:
2 小波降噪原理
小波變換具有低熵性、多分辨率特性、去相關性、選基靈活性的特點,因此小波降噪得到更廣泛的應用。其中閾值去噪方法是一種實現(xiàn)簡單、結果較好的小波降噪方法。
閾值去噪方法就是對小波分解后的各層系數(shù)中模大于和小于某閾值的系數(shù)分別處理,然后對處理完的小波系數(shù)進行反變換,重構經(jīng)去噪的信號。在現(xiàn)實情況下,有用的信號通常是低頻信號,而噪聲信號通常是高頻信號,在去噪的過程中,通常對小波分解的高頻系數(shù)進行閾值化后重構信號。閾值的獲取是小波去噪的關鍵,本文中的小波去噪模塊借助于Matlab小波分析工具箱中的小波分析函數(shù)獲取閾值。
Matlab 中實現(xiàn)信號閾值獲取的函數(shù)有ddencmp、thselect、wbmpen 和wdcbm,本文采用了wbmpen.小波去噪的部分Matlab代碼如下:
3 LabVIEW 和Matlab 混合編程方法
3.1 LabVIEW簡介
LabVIEW(Laboratory Virtual Instrument Engineer-ing)是NI(National Instruments)公司的產品,是一種圖形化的編程語言,它廣泛地被工業(yè)界、學術界和研究實驗室所接受,視為一個標準的數(shù)據(jù)采集和儀器控制軟件。這是一個功能強大且靈活的軟件,利用它可以方便地建立自己的虛擬儀器,其圖形化的界面使得編程及使用過程都生動有趣。利用LabVIEW,可產生獨立運行的可執(zhí)行文件。
圖形化的程序語言,又稱為“G”語言。使用這種語言編程時,基本上不寫程序代碼,取而代之的是流程圖。它盡可能利用了技術人員、科學家、工程師所熟悉的術語、圖標和概念,因此,LabVIEW 是一個面向最終用戶的工具,提供了實現(xiàn)儀器編程和數(shù)據(jù)采集系統(tǒng)的便捷途徑。使用它進行原理研究、設計、測試并實現(xiàn)儀器系統(tǒng)時,可以大大提高工作效率。
3.2 LabVIEW調用外部代碼的方法
LabVIEW 的Functions 模塊內Advanced 中CIN 節(jié)點,用戶可將需要調用的外部代碼編譯成LabVIEW 所能識別的格式與此節(jié)點相連,當此節(jié)點執(zhí)行時,Lab-VIEW 將自動調用與此節(jié)點相連的外部代碼,并向CIN傳遞特定的數(shù)據(jù)結構。
使用CIN技術,用戶可向CIN傳遞任意復合的數(shù)據(jù)結構。由于LabVIEW 中數(shù)據(jù)的存儲格式遵循了C語言中數(shù)據(jù)的存儲格式,所以通常情況下,使用CIN 可獲得較高的程序效率。
3.3 利用LabVIEW的圖形界面編程方法
為了更直觀地顯示信號波形,采用LabVIEW 開發(fā)了圖形顯示界面,用以顯示原始信號波形和消噪后信號波形。圖1是圖形顯示界面的LabVIEW編程代碼。圖2是采用LabVIEW和Matlab混合編程的代碼。
4 應用實例
本文采用小波去噪方法對兩種不同的振動沖擊信號進行了分析處理,如圖3和圖4所示。
從圖形顯示結果可以看出,經(jīng)小波降噪后,濾除了噪聲干擾信號,各激勵響應信號更加明顯,這對于后期的信號分析處理奠定了良好基礎。
5 結語
小波去噪方法相比于傳統(tǒng)的濾波器方法,在處理非平穩(wěn)信號時具有獨特的優(yōu)勢,有助于提高信號分析處理精度。而采用LabVIEW 和Matlab 混合編程的方法,則降低了編程難度,可以大大提高工作效率,是一種實現(xiàn)儀器編程的便捷途徑。