小波分解和小波包分解
這篇文章介紹了小波分解和小波包分解。
小波分解(wavelet transform)
小波
傅里葉變換的基本方程是sin和cos,小波變換的基本方程是小波函數(basic wavelet),不同的小波在波形上有較大的差異,相似的小波構成一個小波族(family)。小波具有這樣的局部特性:只有在有限的區間內取值不為0。這個特性可以很好地用于表示帶有尖銳, 不連續的信號。
小波變換
α=WTfα=WTf 其中 αα 表示變換得到的小波系數,W是正交矩陣。 ff 是輸入信號。
正交矩陣構造
特定的小波函數(basic wavelet)由一組特定的小波濾波系數(wavelet filter coefficients)構成。當選定了小波函數,其對應的那組小波濾波器系數就知道。用小波濾波器系數構造不同維度的低通濾波器和高通濾波器(下面的例子中W就是由這些系數構造出來的)。低通濾波器可以看作為一個平滑濾波器(smoothing filter)。這兩個濾波器,低通和高通濾波器,又分別被稱為尺度(scaling)和小波濾波器(wavelet filter)。一旦定義好了這兩個濾波器,通過遞歸分解算法(也稱為金字塔算法(pyramid algorithm),樹算法(tree algorithm)將得到水平多分辨率表示的信號。
樹算法
原始信號通過低通濾波器得到低頻系數 (approximate coefficients), 通過高通濾波器得到高頻系數(detail coefficients)。把第一層的低頻系數作為信號輸入,又得到一組approximate coefficients和detail coefficients。再把得到的approximate coefficients作為信號輸入,得到第二層的approximate coefficients和detail coefficients。以此類推,直到滿足設定的分級等級。最大的分解等級為log2Nlog2N.
用數學表達就是:
原始信號可看做0級低頻系數
a0=(f0,f1,...,fn)a0=(f0,f1,...,fn);
那么
am=G?am?1am=G?am?1,
dm=Ham?1dm=Ham?1,
G,
H 分別表示低通濾波器和高通濾波器,用矩陣表示。
信號的重構
am?1=G?am+H?dmam?1=G?am+H?dm G?G?, H?H?為G,H 的共軛矩陣。
例子:使用Haar小波做離散小波變換
Haar小波是最簡單的小波函數。歸一化的小波濾波器系數只有兩個c0=12??√=0.7071c0=12=0.7071, c1=?0.7071c1=?0.7071. 低通濾波器由0.7071,0.7071組成,高通濾波器由0.7071,-0.7071組成,用矩陣G和H表示,矩陣的維度由信號的長度決定。
分解的結果
小波包分解(wavelet packet transform)
簡單理解就是每一層分解得到的系數都要再分解,不像小波分解那樣只有低頻系數會再分解。同樣以Haar小波為例子。
分解結果
參考文獻 Walczak, B., and D. L. Massart. “Noise suppression and signal compression using the wavelet packet transform.” Chemometrics and Intelligent Laboratory Systems 36.2 (1997): 81-94.
總結
以上是生活随笔為你收集整理的小波分解和小波包分解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: arduino红外两路寻迹c语言程序,A
- 下一篇: PS之PS 删除时出现无法完成请求,因为