1. 程式人生 > >小波分解和重構

小波分解和重構

小波變換能夠很好地表徵一大類以低頻資訊為主要成分的訊號,

小波包變換可以對高頻部分提供更精細的分解

詳見(http://www.cnblogs.com/welen/articles/5667217.html)

小波分解函式和重構函式的應用和區別

(https://www.baidu.com/link?url=NsLWcGxYPabqB0JEFzkjHzeLmcvGkjDRccPoaD7K0gwo9mrHRDCUgTbV15zT8NKTm9PAuTJ2Hwb3n10PutFRpbOdQRac7XC48fI2uYmA2eC&wd=&eqid=bae463400004bb3f000000035c0cc2a9)

小波分析基本函式可分為分解和重構兩類.

一維小波分解函式和係數提取函式:

對常用的dwt、wavedec、appcoef函式的常用格式進行舉例說明。

格式:  [ca, cd]=dwt(X,’wname’)        %單尺度一維離散小波分解

        [C, L]=wavedec(X,N,’wname’)   %多尺度一維小波分解(多分辨分析函式)

        ca=appcoef(C,L,’wname’,N)      %提取一維小波變換低頻係數

說明:

(1)小波分解函式和係數提取函式的結果都是分解係數;

(2)如何理解小波係數:小波係數是訊號在做小波分解時所選擇的小波函式空間的投影。

     我們知道,一個訊號可以分解為傅立葉級數,即一組三角函式之和,而傅立葉變換對應於傅立葉級數的係數;同樣,一個訊號可以表示為一組小波基函式之和,小波變換系數就對應於這組小波基函式的係數。

(3)多尺度分解是按照多分辨分析理論,分解尺度越大,分解係數的長度越小(是上一個尺度的二分之一)。我們會發現分解得到的小波低頻係數的變化規律和原始訊號相似,但要注意低頻係數的數值和長度與原始訊號以及後面重構得到的各層訊號是不一樣的。

一維小波重構函式:

對常用的idwt、waverec、wrcoef函式進行舉例說明。

格式: 

  •         X=idwt(ca,cd,’wmane’)           %單尺度一維小波逆變換
  •         X=waverec(C,L,’wname’)         %多尺度一維小波重構
  •         X=wrcoef(‘type’,C,L,’wname’,N)   %對一維小波係數進行單支重構

 說明:

(1) 小波重構函式的結果都是訊號;

(2) 不管是用哪個重構函式對係數進行重構後,結果的長度和原始訊號的長度是相同的;

          如果重構的是低頻部分,那麼觀察得到的結果X,其數值大小和原始訊號是差不多的。

 

(其他參考:

https://www.baidu.com/link?url=Op4W9vNERXYnf25eqkDqywDdzN_J_6jJrZPi1DgK_uFkD3Jzbcfv41bu6dPSnCgg0lMKnES9qsIppG7Q95_RVOyotqEU2cTnkj1FkH5-c1a&wd=&eqid=bae463400004bb3f000000035c0cc2a9

https://blog.csdn.net/chenyusiyuan/article/details/2514119)

 

小波去噪:

一般來說,噪聲訊號多包含在具有較高頻率細節中,在對訊號進行了小波分解之後,再利用門限閾值等形式對所分解的小波係數進行權重處理,然後對小訊號再進行重構即可達到訊號去噪的目的。具體步驟為: 

a.一維訊號的小波分解,選擇一個小波並確定分解的層次,然後進行分解計算。

b.小波分解高頻係數的閾值量化,對各個分解尺度下的高頻係數選擇一個閾值進行軟閾值量化處理。 

C.一維小波重構,根據小波分解的最底層低頻係數和各層高頻係數進行一維小波的重構

 

一維小波變換的 Matlab 實現(https://blog.csdn.net/qq_29543611/article/details/80232662)

(1) dwt 函式

功能:一維離散小波變換

格式:[cA,cD]=dwt(X,'wname')      

 [cA,cD]=dwt(X,Lo_D,Hi_D)

說明:[cA,cD]=dwt(X,'wname') 使用指定的小波基函式 'wname' 對訊號 X 進行分解,cA、cD 分別為近似分量和細節分量;[cA,cD]=dwt(X,Lo_D,Hi_D) 使用指定的濾波器組 Lo_D、Hi_D 對訊號進行分解。

(2) idwt 函式

功能:一維離散小波反變換

格式:X=idwt(cA,cD,'wname')        

 X=idwt(cA,cD,Lo_R,Hi_R)        

 X=idwt(cA,cD,'wname',L)        

 X=idwt(cA,cD,Lo_R,Hi_R,L)

說明:X=idwt(cA,cD,'wname') 由近似分量 cA 和細節分量 cD 經小波反變換重構原始訊號 X 。      

   'wname' 為所選的小波函式      

   X=idwt(cA,cD,Lo_R,Hi_R) 用指定的重構濾波器 Lo_R 和 Hi_R 經小波反變換重構原始訊號 X 。

    X=idwt(cA,cD,'wname',L) 和 X=idwt(cA,cD,Lo_R,Hi_R,L) 指定返回訊號 X 中心附近的 L 個點。

 

其他資料:

http://blog.sina.com.cn/s/blog_b526d0f10102xxh6.html

https://blog.csdn.net/charlene_bo/article/details/71156390

https://blog.csdn.net/ckzhb/article/details/78288847

小波包分解和小波分解:(https://blog.csdn.net/ckzhb/article/details/78288847)

能量譜:(https://blog.csdn.net/ckzhb/article/details/78288847 )

基於小波包分解提取多尺度空間能量特徵的原理是把不同分解尺度上的訊號能量求解出來,將這些能量值按尺度順序排列成特徵向量供識別使用。

20180510補充更新:具體計算公式如下所示,本文中未使用重構後的係數進行能量值計算,直接使用小波包分解後的係數,參考文獻《基於小波包能量特徵的滾動軸承故障監測方法 》。

給出兩部分程式碼,寫成兩個函式。一個是小波包分解與重構,另一個是能量譜函式。

下載地址:https://download.csdn.net/download/ckzhb/10030651

程式碼名稱:wavelet_packetdecomposition_reconstruct

https://blog.csdn.net/qq_23869697/article/details/79436808