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