摘 要:信號去噪是信號處理領(lǐng)域的經(jīng)典問題之一,小波分析作為一種新的信號處理工具,其優(yōu)良的去噪性能已引起人們越來越多的關(guān)注和重視。對小波閾值去噪的方法進(jìn)行了系統(tǒng)的研究。LabVIEW作為一種強大的虛擬儀器開發(fā)平臺,已得到了廣泛的應(yīng)用。通過LabVIEW中的Matlab Script 節(jié)點直接調(diào)用Matlab應(yīng)用程序,在LabVIEW中實現(xiàn)了小波去噪,并介紹了LabVIEW調(diào)用Matlab時的注意事項。
關(guān)鍵詞:小波;閾值去噪;LabVIEW;Matlab
中圖分類號:TP312文獻(xiàn)標(biāo)識碼:B
文章編號:1004-373X(2008)07-166-02
Wavelet Denoising and Its Implementation in LabVIEW
HAO Zhanghong,LIU Xianyong,YUAN Changying
(Information Engineering College,Southwest University of Science and Technology,Mianyang,621010,China)
Abstract:Signal denoising is one of the typical problems in signal processing field,the wavelet analysis is a kind of recent signal processing tools,its fine denoising performance has aroused people more and more interests.Denoising by thresholding of wavelet analysis is studied.LabVIEW has been widely used as a powerful virtual instrument development platform,denoising by wavelet is realized in LabVIEW through the Matlab Script node,and some things should be noticed when call Matlab in LabVIEW is also presented.
Keywords:wavelet ;thresholding denoising;LabVIEW;Matlab
1 引 言
在對信號進(jìn)行測試的過程中,經(jīng)常會受到各種噪聲信號的干擾和影響,如數(shù)據(jù)的采集和傳輸?shù)榷伎赡芤朐肼暋R虼嗽趯嶋H應(yīng)用中,對測量的數(shù)據(jù)進(jìn)行分析之前,必須進(jìn)行去噪處理。
目前實現(xiàn)去噪的方法有傳統(tǒng)的濾波法和小波去噪法,在實際測試時需根據(jù)噪聲和信號的不同而選擇不同的去噪方法。濾波器去噪方法只適于平穩(wěn)隨機信號和噪聲與信號分離的情況,而且變化后使得信號的熵增高,無法得到信號的相關(guān)性。近十幾年發(fā)展起來的小波分析方法因其具有多分辨率分析的特點,在去噪方面具有明顯的優(yōu)勢,可用于非平穩(wěn)信號去噪,既能有效地去除噪聲,還能較好地保留信號的突變部分[1]。
LabVIEW是由美國NI公司推出的一種圖形化的編程語言和開發(fā)環(huán)境,具有簡單易學(xué)、直觀方便、功能強大等特點[2],得到了工業(yè)界、學(xué)術(shù)界和研究實驗室的廣泛認(rèn)可,業(yè)已成為數(shù)據(jù)采集和儀器控制軟件的標(biāo)準(zhǔn)。
LabVIEW具有強大的數(shù)據(jù)采集和處理功能,可以實現(xiàn)對信號的實時采集和處理,從而使數(shù)據(jù)采集、數(shù)據(jù)分析和數(shù)據(jù)顯示無縫地集成在一個單一的環(huán)境中。
2 小波閾值去噪原理
小波去噪的方法很多,其中,閾值去噪方法由于具有良好的去噪性能而得到非常廣泛的應(yīng)用,而且閾值去噪方法是其他去噪方法的基礎(chǔ)。
2.1 小波閾值去噪原理
閾值去噪原理[3]:對小波分解后的各層系數(shù)中模大于和小于某閾值的系數(shù)分別處理,然后對處理完的小波系數(shù)再進(jìn)行反變換,重構(gòu)出經(jīng)過去噪后的信號,從而達(dá)到去噪的目的。其主要步驟為:
(1) 對信號進(jìn)行小波分解,得到其小波系數(shù);
(2) 對小波系數(shù)進(jìn)行閾值處理,得到新的小波系數(shù);
(3) 由新的小波系數(shù)重構(gòu)得到去噪的信號。
2.2 閾值函數(shù)的選取
Donoho將閾值函數(shù)分為軟閾值和硬閾值,設(shè)w是小波系數(shù)的大小,是施加閾值后的小波系數(shù)大小,λ是閾值。
(1) 硬閾值(Hard Thresholding)
當(dāng)小波系數(shù)的絕對值小于給定的閾值時,令其等于0,而大于閾值時,保持其不變,如圖1(a)所示。
=w,|w|≥λ0,|w|<λ
(2) 軟閾值(Soft Thresholding)
當(dāng)小波系數(shù)的絕對值小于給定閾值時,令其等于0,大于閾值時,令其都減去閾值,如圖1(b)所示。
=[sgn(w)](|w|-λ), |w|≥λ0,|w|<λ
圖1 估計小波系數(shù)的軟、硬閾值方法
2.3 閾值的選擇
在閾值函數(shù)中如何選擇閾值,直接關(guān)系到去噪的優(yōu)劣。閾值選取過小,會在去噪后的信號中保留部分噪聲;選取過大,就會除去有用的成分,造成失真,所以在去噪的過程中對閾值的選取是關(guān)鍵。Donoho等人給出了基于正交小波變換的閾值λ=σ2lnN[4],其中N是信號的長度,σ是噪聲標(biāo)準(zhǔn)方差,可由下式估計[5]:
σ=median(|dj(k)|)0.674 5
式中dj(k)是小波分解后的高頻系數(shù),median是Matlab中求中值的運算命令。這種閾值選取方法在實際應(yīng)用中效果欠理想,產(chǎn)生過扼殺現(xiàn)象,可選用以下幾個準(zhǔn)則:
(1) 固定閾值
選取算法是:
λ=2lg N
其中,N是信號的長度。
(2) Stein無偏似然估計閾值(rigrsure閾值)
這是基于Stein的無偏似然估計求出的SURE閾值,對于每一個門限值,求出與其對應(yīng)的風(fēng)險值,選擇使風(fēng)險最小的門限值為閾值門限。具體算法:
P=[p0,p1,…,pN-1],p0 P的元素為小波系數(shù)的平方按從小到大的順序排列。風(fēng)險算法為: R(k)=[N-2k-(N-k)pk+∑ki=1pi]/N 其中k=0,1,…N-1。根據(jù)所得到的風(fēng)險曲線R(k),記其最小的風(fēng)險點所對應(yīng)的值為kmin,那么所得的閾值定義為: λ=σpkmin (3) 啟發(fā)式閾值(heursure閾值) 他是前兩種閾值的綜合,所選擇的是最優(yōu)預(yù)測變量閾值。當(dāng)信噪比較小時,采用固定閾值;當(dāng)信噪比較大時,用rigrsure準(zhǔn)則。 (4) 極大極小閾值(minimaxi閾值) 他的原理是令估計的最大風(fēng)險最小化,其閾值選取算法是: λ=σ[0.393 6+0.182 9(ln N/ln 2)], N>32 0,N≤32 (5) 基于小波包變換的penalty閾值 小波包分析在對低頻信號進(jìn)行分解的同時,也對高頻信號進(jìn)行分解,具有更加精確的分析能力。小波包分析的去噪原理與小波分析基本一致,關(guān)鍵也是閾值的選取,下面介紹penalty閾值法。 對小波包分解后的系數(shù)按從小到大的順序進(jìn)行排序,C=[c1,c2,…,cn]。設(shè)函數(shù)crit(t) = -∑k≤tc2k + 2σ2t(α + log(n/t)),其中t=1,2,…,n,n是小波系數(shù)的個數(shù),α為經(jīng)驗系數(shù),其值必須大于1,典型值為2。以t為變量求crit(t)的最小值,設(shè)使crit(t)為最小的t值為t0,那么λ=|ct0|。 3 小波去噪在LabVIEW中的實現(xiàn) LabVIEW提供了Matlab Script節(jié)點,通過該節(jié)點可以直接調(diào)用Matlab應(yīng)用程序,該節(jié)點位于Functions→ALL Functions→Analyze→Mathematics→ Formula →Matlab Scirpt。打開節(jié)點既可以直接在框圖內(nèi)輸入Matlab程序代碼,也可以通過單擊右鍵,選擇Import,把已經(jīng)寫好的文件導(dǎo)入。Matlab Script節(jié)點的參數(shù)傳遞可以通過添加輸入輸出完成,其方法是在節(jié)點邊框上單擊右鍵,選擇“Add Input”或“Add Output”。 下面以對采集的語音信號去噪為例說明小波去噪在LabVIEW中的實現(xiàn)。LabVIEW→圖形與聲音→聲音→輸入→聲音采集,設(shè)置的持續(xù)時間是1 s,采樣率為22 050 Hz,采集的語音信號如圖2(a)所示。使用小波基sym5,對采集的語音信號進(jìn)行6層分解處理后的信號如圖2(b)所示。 圖2 實驗結(jié)果 注意事項:在使用LabVIEW調(diào)用Matlab時,有時會出現(xiàn)1047問題,LabVIEW會自動彈出錯誤對話框,顯示LabVIEW與Matlab之間不能進(jìn)行參數(shù)傳遞。這時只需把LabVIEW→resource文件夾下的matscript.dll更新一下即可。新的matscript.dll可以在NI網(wǎng)站下載。 4 結(jié) 語 隨著小波分析理論的發(fā)展,基于小波去噪的方法也會越來越多,其優(yōu)良的去噪性能也越來越多地引起人們的關(guān)注和重視。將LabVIEW和Matlab二者結(jié)合起來使用,有利于增強LabVIEW的信號處理能力。 參 考 文 獻(xiàn) [1]戎舟,徐蕾.小波閾值去噪及其在LabVIEW中的實現(xiàn)[J].自動化與儀表,2005(1):15-17. [2]馮偉東,韓雪冰.LabVIEW與Matlab在聲音信號采集與小波降噪中的應(yīng)用[J].長春工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2006,27(1):40-42. [3]周偉.Matlab小波分析高級技術(shù)[M].西安:西安電子科技大學(xué)出版社,2006. [4]Davied L Donoho.De-Noising by Soft-Thresholding[J].IEEE Transactions on Information Theory,1995,41(3):613-627. [5]羅強.基于小波分析的心電信號去噪研究[D].武漢:華中師范大學(xué),2006. [6]劉靜,張道明,田華,等.自適應(yīng)小波閾值去噪方法[J].現(xiàn)代電子技術(shù),2006,29(8):58-61. 作者簡介 郝張紅 女,1981年出生,碩士研究生。主要研究方向為信號采集與處理。 注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。