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