離散小波變換(Discrete Wavelet Transform)

離散小波變換(Discrete Wavelet Transform)

(來自維基百科)

離散小波變換(Discrete Wavelet Transform)在數值分析和時頻分析中很有用。第一個離散小波變換由匈牙利數學家發明,離散小波變換顧名思義就是離散的輸入以及離散的輸出,但是這裏並沒有一個簡單而明確的公式來表示輸入及輸出的關係,只能以階層式架構來表示。

定義

  • 首先我們定義一些需要用到的信號及濾波器。
  • x[n]:離散的輸入信號,長度爲N。
  • g[n]:low pass filter低通濾波器,可以將輸入信號的高頻部份濾掉而輸出低頻部份。
  • h[n]:high pass filter高通濾波器,與低通濾波器相反,濾掉低頻部份而輸出高頻部份。
  • \downarrow Q:downsampling filter降採樣濾波器,如果以x[n]作爲輸入,則輸出y[n]=x[Qn]。此處舉例Q=2。
舉例說明:DiscreteWaveletTrans1.jpg
清楚規定以上符號之後,便可以利用階層架構來介紹如何將一個離散信號作離散小波變換:
DWT2ndLayer.jpg
架構中的第1層(1st stage)
x_{1,L}[n]=\sum_{k=0}^{K-1} x[2n-k]g[k]
x_{1,H}[n]=\sum_{k=0}^{K-1} x[2n-k]h[k]
架構中的第2層(2nd stage)
x_{2,L}[n]=\sum_{k=0}^{K-1} x_{1,L}[2n-k]g[k]
x_{2,H}[n]=\sum_{k=0}^{K-1} x_{1,L}[2n-k]h[k]
可繼續延伸

Wavelets - Filter Bank.png

\vdots
\vdots

架構中的第α層(α ? th stage)

x_{\alpha ,L}[n]=\sum_{k=0}^{K-1} x_{\alpha -1,L}[2n-k]g[k]
x_{\alpha ,H}[n]=\sum_{k=0}^{K-1} x_{\alpha -1,L}[2n-k]h[k]
注意:若輸入信號x[n]的長度是N,則第α層中的xα,L[n]xα,H[n]的長度爲\frac{N}{2^\alpha }  

 2-D Discrete Wavelet Transform

2D DWT.jpg
此時的輸入信號變成x[m,n],而轉換過程變得更復雜,說明如下:
首先對n方向作高通、低通以及降頻的處理
v_{1,L}[m,n]=\sum_{k=0}^{K-1} x[m,2n-k]g[k]
v_{1,H}[m,n]=\sum_{k=0}^{K-1} x[m,2n-k]h[k]
接着對v1,L[m,n]v1,H[m,n]延著m方向作高低通及降頻動作
x_{1,LL}[m,n]=\sum_{k=0}^{K-1} v_{1,L}[2m-k,n]g[k]
x_{1,HL}[m,n]=\sum_{k=0}^{K-1} v_{1,L}[2m-k,n]h[k]
x_{1,LH}[m,n]=\sum_{k=0}^{K-1} v_{1,H}[2m-k,n]g[k]
x_{1,HH}[m,n]=\sum_{k=0}^{K-1} v_{1,H}[2m-k,n]h[k]
經過(1)(2)兩個步驟纔算完成2-D DWT的一個stage。


實際範例

以下根據上述2-D DWT的步驟,對一張影像作二維離散小波變換(2D Discrete Wavelet Transform)

原始影像2D DWT Original.png
2D DWT的結果300px?
300px? 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章