本文主要介紹小波分解與重構(gòu)法、非線性小波變換閾值法、平移不變量小波法以及小波變換模極大值法這4種常用的小波去噪方法。將它們分別用于仿真算例的去噪處理,并對這幾種方法的應(yīng)用場合、去噪性能、計算速度和影響因素等方面進(jìn)行比較。
選擇了Matlab軟件中的仿真信號Blocks作為原始信號,信號長度(即采樣點(diǎn)數(shù))N=2048,如圖1a所示。由于該信號中含有若干不連續(xù)點(diǎn)和奇異點(diǎn),因此用以下幾種方法對圖1b中疊加了高斯白噪聲的Blocks信號(信噪比為7)進(jìn)行去噪處理,能夠很清楚地比較出這幾種方法的去噪性能。
圖1 ?原始信號和含噪信號的時域波形
一、小波去噪方法
1、小波分解與重構(gòu)法去噪
小波分解與重構(gòu)的快速算法,即Mallet算法。據(jù)這一算法,若fk為信號f(t)的離散采樣數(shù)據(jù),fk=c0,k,則信號f(t)的正交小波變換分解公式為:
其中,cj,k為尺度系數(shù);dj,k為小波系數(shù);h、g為一對正交鏡像濾波器組(QMF);j為分解層數(shù);N為離散采樣點(diǎn)數(shù)。
小波重構(gòu)過程是分解過程的逆運(yùn)算,相應(yīng)的重構(gòu)公式為:
小波的多分辨分析特性能將信號在不同尺度下進(jìn)行多分辨率的分解,并將交織在一起的各種不同頻率組成的混合信號分解成不同頻段的子信號,因而對信號具有按頻帶處理的能力。應(yīng)用小波分解與重構(gòu)的方法去噪具體步驟是:根據(jù)需要,將含有噪聲信號在某一尺度下分解到不同的頻帶內(nèi),然后再將噪聲所處的頻帶置零(或直接提取有用信號所在的頻帶),進(jìn)行小波重構(gòu),從而達(dá)到去噪的目的。
圖2是用小波分解與重構(gòu)法進(jìn)行去噪的結(jié)果。采用的小波是近似對稱的Symmlet8小波,小波分解層數(shù)是4,其中圖2a是將圖1b中的含噪信號進(jìn)行4層小波分解的結(jié)果。從中可以看出,信號的能量主要集中于低頻的少數(shù)小波系數(shù)上,而噪聲的能量則分散于整個小波變換域。圖2b是提取圖2a中的前256個小波系數(shù)進(jìn)行重構(gòu),也就是提取尺度4上的低頻系數(shù)和高頻系數(shù)進(jìn)行重構(gòu)的結(jié)果。
圖2 ?小波分解與重構(gòu)法去噪
2、非線性小波變換閾值法去噪
非線性小波變換閾值法也稱為“小波收縮”(waveletshrinkage),其去噪方法如下:
假設(shè)一個疊加了高斯白噪聲的有限長信號可以表示為
其中,zi是一個標(biāo)準(zhǔn)的高斯白噪聲,即z~N(0,1),R是噪聲級。若要從被噪聲污染的信號yi中恢復(fù)出原始信號xi,則Donoho的去噪方法分為以下3個步驟:
(1)計算含噪聲信號的正交小波變換。選擇合適的小波和小波分解層數(shù)j,將含噪信號運(yùn)用(1)式進(jìn)行小波分解至j層,得到相應(yīng)的小波分解系數(shù)。
(2)對分解得到的小波系數(shù)進(jìn)行閾值處理,其閾值的處理方法有2種:
(3)進(jìn)行小波逆變換。將經(jīng)閾值處理過的小波系數(shù)用(2)式重構(gòu),得到恢復(fù)的原始信號估計值xd。
小波變換具有一種“集中”的能力,它能將信號的能量集中到少數(shù)小波系數(shù)上;而白噪聲在任何正交
基上的變換仍然是白噪聲,并且有著相同的幅度。相對來說,信號的小波系數(shù)值必然大于那些能量分散且幅值較小的噪聲的小波系數(shù)值。選擇一個合適的閾值,對小波系數(shù)進(jìn)行閾值處理,就可以達(dá)到去除噪聲而保留有用信號的目的。該方法能得到原始信號的近似最優(yōu)估計,并且具有非常廣泛的適應(yīng)性。
圖3和圖4分別是采用Donoho的非線性小波變換閾值法以及平移不變量小波法去噪得到的結(jié)果。這2種方法均選用Haar小波,小波分解層數(shù)是5。二者均采用軟閾值,閾值大小t=2log(N),其中N為信號長度。
圖3 ?軟閾值法去噪
圖4 ?平移不變量小波法去噪
3、平移不變量小波去噪
平移不變量小波去噪法是在閾值法基礎(chǔ)上的改進(jìn)。雖然用閾值法能取得很好的去噪效果,但在有些情況下,如在信號的不連續(xù)鄰域,閾值法去噪會表現(xiàn)出視覺上的非自然信號,如偽吉布斯現(xiàn)象,即不連續(xù)點(diǎn)附近的信號會在一個特定的目標(biāo)水平上下跳變。利用平移不變量法去噪,則可有效地抑制這種現(xiàn)象。其方法是:對含噪聲信號進(jìn)行n次循環(huán)平移,對平移后的信號進(jìn)行的閾值法去噪處理,然后再對去噪的結(jié)果進(jìn)行平均,這就是所謂的“平移-去噪-平均”的平移不變量小波去噪法。
對于一個信號xt(0≤t≤n),Hn={h∶0≤h《n},用Sh表示對信號xt進(jìn)行h的時域平移,h是正整數(shù),T表示對信號用Donoho的閾值法進(jìn)行去噪處理,Ave表示“平均”,S-h=(Sh)-1,則n次循環(huán)平移的平移不變量小波去噪方法可以表示為:
該方法在去除偽吉布斯現(xiàn)象,表現(xiàn)出更好的視覺效果的同時,還能夠得到比閾值法去噪更小的均方根誤差(RMSE),并且提高了信噪比(SRN)。
4、小波變換模極大值法去噪
信號的奇異點(diǎn)就是指信號中的突變點(diǎn),Lip指數(shù)是表征信號局部奇異點(diǎn)特征的一種量度,它的定義如下:設(shè)有正整數(shù)n,n≤A≤n+1,如果存在正整數(shù)A》0及n次多項(xiàng)式pn(x),使得:
由(8)式可知,對于一般信號,由于A≥0,小波變換的模極大值將隨著j的增大而增大;而對于白噪聲,由于A《0,其模極大值隨著j的增大而減小。因此,觀察不同尺度間小波變換模極大值變化的規(guī)律,去除幅度隨尺度的增加而減小的點(diǎn)(對應(yīng)噪聲的極值點(diǎn)),保留幅度隨尺度增加而增大的點(diǎn)(對應(yīng)于有用信號的極值點(diǎn)),然后再由保留的模極大值點(diǎn)用交替投影法進(jìn)行重建,即可以達(dá)到去噪的目的。
圖5是用小波變換模極大值法去噪的結(jié)果。所采用的是雙正交樣條小波,小波分解層數(shù)是2。
圖5 ?小波變換模極大值法去噪
表1中列出了用這4種方法去噪,信號的信噪比(SNR)和均方根誤差(RMSE)的比較。從信噪比和均方根誤差的角度看,模極大值法的去噪性能最好,小波分解與重構(gòu)法最差,閾值法和平移不變量法居中。
表1 ?幾種方法去噪后SNR和RMSE的比較
二、小波去噪方法的比較
1、小波分解與重構(gòu)法去噪
本質(zhì)上相當(dāng)于一個具有多個通道的帶通濾波器,主要適用于有用信號和噪聲的頻帶相互分離時的確定性噪聲的情況。在這種情況下,該方法能基本去除噪聲,去噪效果很好。但對于有用信號和噪聲的頻帶相互重疊的情況(如信號混有白噪聲),效果就不甚理想。這種方法的優(yōu)點(diǎn)是算法簡單明了,計算速度快。若N為信號的長度,則它的計算速度是O(N)。其缺點(diǎn)是適用范圍不是很廣泛。它對于特定情況下已知道噪聲的頻率范圍且信號和噪聲的頻帶相互分離時非常有效。對實(shí)際應(yīng)用中廣泛存在的白噪聲,其去噪效果則較差。
2、非線性小波變換閾值法去噪
主要適用于信號中混有白噪聲的情況。用閾值法去噪的優(yōu)點(diǎn)是噪聲幾乎完全得到抑制,且反映原始信號的特征尖峰點(diǎn)得到很好的保留。用軟閾值的方法去噪能夠使估計信號實(shí)現(xiàn)最大均方誤差最小化,即去噪后的估計信號是原始信號的近似最優(yōu)估計;且估計信號至少和原始信號同樣光滑而不會產(chǎn)生附加振蕩。該方法還具有廣泛的適應(yīng)性,因而是眾多小波去噪方法中應(yīng)用最為廣泛的一種。閾值法的計算速度很快,為O(N),其中N為信號長度。其缺點(diǎn)是在有些情況下,如在信號的不連續(xù)點(diǎn)處,去噪后會出現(xiàn)偽吉布斯現(xiàn)象。且用該方法去噪時,閾值的選擇對去噪效果有著很重要的影響。閾值的選擇方法有多種,實(shí)際應(yīng)用時應(yīng)根據(jù)具體的情況來選擇合適的閾值。
3、平移不變量小波法去噪
主要適用于信號中混有白噪聲且含有若干不連續(xù)點(diǎn)的情況,是在閾值法基礎(chǔ)上的改進(jìn)。其優(yōu)點(diǎn)可以有效地去除閾值法去噪中,在信號的不連續(xù)點(diǎn)處所產(chǎn)生的偽吉布斯現(xiàn)象,表現(xiàn)出比閾值法更好的視覺效果。從L2范數(shù)誤差的觀點(diǎn)看,經(jīng)該方法去噪能夠得到比閾值法更小的均方根誤差,信噪比也得到一定地提高;缺點(diǎn)是計算速度沒有閾值法快。當(dāng)信號長度是N時,計算速度是O(NlogN)。
4、模極大值法去噪
主要適用于信號中混有白噪聲,且信號中含有較多奇異點(diǎn)的情況。該方法在去噪的同時,有效地保留信號的奇異點(diǎn)信息,去噪后的信號沒有多余振蕩,是原始信號的一個非常好的估計,具有較好的圖面質(zhì)量。用模極大值進(jìn)行重構(gòu)時采用的是交替投影法,為保證重構(gòu)信號的精度,提高信噪比,通常要進(jìn)行幾十次的迭代,每迭代一次的速度是O(NlogN)。因此,計算速度非常慢,通常要比前幾種方法慢數(shù)十倍。
評論