学习matlab(十八)——小波分析
??小波分析克服了短時(shí)傅里葉變換在單分辨率上的缺陷,具有多分辨率分析的特點(diǎn)。下面對(duì)小波分析的基本理論進(jìn)行介紹,包括連續(xù)小波變換、離散小波變換、多分辨分析和小波包分析,最后介紹在小波分析中常用的小波。
 ??小波變換采用隨頻率的時(shí)間-頻率窗口,是進(jìn)行信號(hào)時(shí)頻分析和處理的理想工具。在利用小波分析信號(hào)分析時(shí),在低頻部分采用較低的時(shí)間分辨率,提高頻率分辨率;在高頻部分,采用較低的頻率分辨率來換取精確的時(shí)間定位。小波包分解與小波分解相比,是一種更精細(xì)的分解方法,不僅對(duì)低頻部分進(jìn)行分解,對(duì)高頻部分也進(jìn)行分解。
 ??小波變換速度快,適合信號(hào)的在線分析。小波分析能夠通過變換充分突出問題某些方面的特征,因此,小波變換在許多領(lǐng)域都得到了成功的應(yīng)用。
 小波變換的實(shí)質(zhì)是將信號(hào)在一個(gè)時(shí)域和頻域上均具有局部化性質(zhì)的平移伸縮小波權(quán)函數(shù)進(jìn)行卷積,從而將信號(hào)分解成位于不同時(shí)間和頻率上的各個(gè)成份。滿足允許條件:
 ??離散小波變換( discrete wavelet transform,DWT)是指對(duì)尺度因子a和平移因子b進(jìn)行離散化,而不是時(shí)間的離散化。離散小波變換的一個(gè)重要問題是如何降低計(jì)算量和數(shù)據(jù)量,因?yàn)槿绻麑?duì)尺度因子a和平移因子b離散的間隔小,那么計(jì)算量和數(shù)據(jù)量都是相當(dāng)驚人的。
 ??離散小波變換的一個(gè)突破性成果是Mallat于1989年在多分辨分析的基礎(chǔ)上提出的快速算法:Mallat算法Mallat享法在小波分析中的作用相當(dāng)于快速傅立葉變換( FFT)在傅立葉分析中的作用。Mallat算法由小波濾波器H、G和h、g對(duì)信號(hào)進(jìn)行分解和重構(gòu)。Mallat分解算法為
 
 ??對(duì)信號(hào)f(t)進(jìn)行離散小波的3層分解,近似系數(shù)和細(xì)節(jié)系數(shù)。
 
 ??在MATLAB的命令行窗口輸入:help wavelet,可以查詢MATLAB的小波工具箱中的所有函數(shù),以及小波工具箱,的版本。在MATLAB 2010a中小波工具箱的版本為4.5。用戶在命令行窗口輸入;wavedemo可以查看例子程序。采用函數(shù)wavemngr()可以獲取所有的小波。通過函數(shù)waveinfo()可以獲取小波的信息。
1.分解和重構(gòu)
??在MATLAB中,采用函數(shù)cwt()進(jìn)行一維連續(xù)小波分解,該函數(shù)的常用調(diào)用格式為:coefs=cwt(s,scales, ‘wname’):該函數(shù)對(duì)信號(hào)s進(jìn)行尺度為scales的連續(xù)小波分解,小波為wname,返回值coefs為系數(shù)。coefs=cwt(s, scales, ‘wname’, ‘plot’):該函數(shù)通過參數(shù)plot顯示變換后的圖形。
 ??在MATLAB中,采用函數(shù)dwt()進(jìn)行一維小波的單層分解,該函數(shù)的常用調(diào)用格式為:[cA,cD]=dwt(X, ‘wname’):該函數(shù)采用小波wname進(jìn)行單層分解,cA為近似系數(shù),cD為細(xì)節(jié)系數(shù)。[cA, cD]=dwt(x,‘Wname’, ‘mode’,MODE):該函數(shù)設(shè)定擴(kuò)展模式為MODE.在MATLAB中,采用函數(shù)wavdec()進(jìn)行一維小波的多層分解。
 ??在MATLAB中,利用函數(shù)idwt()進(jìn)行單層小波重構(gòu),該函數(shù)的調(diào)用格式為:X=idwt(cA, cD, ‘wname’),cA為近似系數(shù),cD為細(xì)節(jié)系數(shù),wname為采用的小波。利用函數(shù)waverec()進(jìn)行多層小波的重構(gòu)。在進(jìn)行小波的重構(gòu)時(shí),小波的類型必須和分解時(shí)保持一致。
2.小波分解和重構(gòu)
??二維小波非常適合進(jìn)行圖像的分析和處理。圖像的單層二維小波分解,將圖像分解為4個(gè)原圖1/4大小的圖像,左上的圖像為兩個(gè)維度都采用低通濾波后的結(jié)果;右上的圖像為橫向采用低通濾波,縱向采用高通濾波后的結(jié)果;左下的圖像為橫向采用高通濾波,縱向采用低通濾波后的結(jié)果;右下的圖像兩個(gè)維度都采用高通濾波后的結(jié)果。
 ??在MATLAB中,采用函數(shù)dwt2()進(jìn)行二維小波的單層分解,該函數(shù)的調(diào)用格式為:[cA, cH, cV, cD]=dwt2(X,‘wname’),該函數(shù)采用小波wname,對(duì)信號(hào)X進(jìn)行單層分解。其中cA為近似系數(shù),cH、CV和C加無小 節(jié)系數(shù)、垂直細(xì)節(jié)系數(shù)和對(duì)角細(xì)節(jié)系數(shù).MATLAB中,采用函數(shù)idwt2()進(jìn)行二維小波的單層重構(gòu),該函數(shù)的調(diào)用格式為:X=idwt2(cA,cH, cV, cD,‘wname’).
 ??在MATLAB中米用出雙ae ec sy=wavedec2(X,N,‘wname’),該函數(shù)采用小波wanme對(duì)信號(hào)X進(jìn)行二維小波的N層分解。利用函數(shù)waberec2()進(jìn)行二維小波的多層重構(gòu),該函數(shù)的調(diào)用格式為:X=waverec2(C, s, ‘wname’),利用小波wname進(jìn)行二維小波的多層重構(gòu)。
 ??在MATLAB中,采用函數(shù)wpdec()進(jìn)行一維小波包分解該函數(shù)的調(diào)用格式為:T=wpdec(, N, ‘wname’):該函數(shù)對(duì)信號(hào)X進(jìn)行N層的小波包分解,采用的小波為wname,返回值T為小波包樹;T=wpdec(X,N, ‘wname’, E, P):該函數(shù)采用參數(shù)設(shè)置采用的熵,默認(rèn)為’Shannon’.
 ??在MATLAB中,通過函數(shù)wpcoef()獲取小波樹上某個(gè)節(jié)點(diǎn)的小波包系數(shù)。
 ??在MATLAB中,采用函數(shù)wpsplt()將小波樹上的節(jié)點(diǎn)進(jìn)一步分解。
 ??在MATLAB中,采用函數(shù)wpjoin(()進(jìn)行小波包樹上的節(jié)點(diǎn)進(jìn)行合并。
 ??在MATLAB中,采用函數(shù)besttree()獲取最優(yōu)小波樹。
 ??在MATLAB中,通過函數(shù)wprec()進(jìn)行一維小波包的重構(gòu),該函數(shù)的調(diào)用格式為:X=wprec(T),其中T為小波包樹,返回值X為重構(gòu)的信號(hào)。
 ??在MATLAB中,采用函數(shù)wpdec2()進(jìn)行二維小波包的分解,該函數(shù)的調(diào)用格式為:T=wpdec2(X,N, ‘wname’)該函數(shù)采用wname小波,對(duì)數(shù)據(jù)X進(jìn)行二維N層小波包分解。同一維小波分解類似,采用函數(shù)wpcoef( )獲取二維小波包樹上某個(gè)節(jié)點(diǎn)的系數(shù);采用函數(shù)wpsplt()進(jìn)行二維小波包樹的進(jìn)一步分解;利用函數(shù)wpjoin()進(jìn)行二維小波包樹上節(jié)點(diǎn)的合并;利用函數(shù)besttree()獲取最優(yōu)的二維小波包樹。通過函數(shù)wprec2()進(jìn)行二維小波包的重構(gòu),該函數(shù)的調(diào)用格式為:X=wprec2(T)其中T為二維小波包樹,X為重構(gòu)后的二維數(shù)據(jù)。
 ??在MATLAB中,采用函數(shù)wenergy()計(jì)算進(jìn)行歸一化后的小波能量。該函數(shù)可以用于一維小波和小波包。該函數(shù)的調(diào)用格式為:[Ea, Ed]=wenergy(c, L):該函數(shù)用于計(jì)算一維小波的能量。=wenergy(T):該函數(shù)用于計(jì)算小波包的能量。在MATLAB中,采用函數(shù)wentropy()計(jì)算小波包的嫡。
3.GUI工具箱
??下面介紹小波工具箱的另一種實(shí)現(xiàn)方式,即GUI工具。小波工具箱的GUI工具界面友好,在解決特定問題時(shí)非常的直觀和靈活,提供了大量的例子程序,而且可以非常方便的進(jìn)行數(shù)據(jù)的導(dǎo)入和導(dǎo)出。用戶不用編寫程序,就采用小波分析對(duì)一維信號(hào)或二維圖像進(jìn)行壓縮和去除噪聲等。
edit wavemenu %%命令行運(yùn)行指令
??在小波工具箱的GUI界面中,二維小波分析工具包括:二維小波分解(Wavelet 2-D)和二維小波包分解((WaveletPacket 2-D)。下面介紹其中的二維小波分解。
總結(jié)
以上是生活随笔為你收集整理的学习matlab(十八)——小波分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 读透《华为数据之道》
- 下一篇: M2Det目标检测
