在数值分析和泛函分析领域中,离散小波变换(Discrete Wavelet Transform,DWT)是小波被离散采样的小波变换。与其他小波变换一样,它与傅里叶变换相比的一个关键优势是时间分辨率:它既能捕获频率信息,又能捕获位置(时间上的位置)信息。
第一個離散小波變換由匈牙利數學家哈尔發明,離散小波轉換顧名思義就是離散的輸入以及離散的輸出,但是這裡並沒有一個簡單而明確的公式來表示輸入及輸出的關係,只能以階層式架構來表示。
- 首先我們定義一些需要用到的信號及濾波器。
- x[n]:離散的輸入信號,長度為N。
:低通濾波器(low pass filter),可以將輸入信號的高頻部份濾掉而輸出低頻部份。
:高通濾波器(high pass filter),與低通濾波器相反,濾掉低頻部份而輸出高頻部份。
Q:降采样濾波器(downsampling filter),如果以x[n]作為输入,則輸出y[n]=x[Qn]。此處舉例Q=2。
- 舉例說明:

- 清楚規定以上符號之後,便可以利用階層架構來介紹如何將一個離散信號作離散小波轉換:

- 架構中的第1層(1st stage)
![{\displaystyle x_{1,L}[n]=\sum _{k=0}^{K-1}x[2n-k]g[k]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e89171201a089a787ca8eecf3cfcc0a997ca2687)
![{\displaystyle x_{1,H}[n]=\sum _{k=0}^{K-1}x[2n-k]h[k]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1f25f3aaaa0a147dc3d27be4ffa8ec69966f512b)
- 架構中的第2層(2nd stage)
![{\displaystyle x_{2,L}[n]=\sum _{k=0}^{K-1}x_{1,L}[2n-k]g[k]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/778ad7dd66c5fb41a730549fa7a229eb16187cbf)
![{\displaystyle x_{2,H}[n]=\sum _{k=0}^{K-1}x_{1,L}[2n-k]h[k]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a655d7ed52b22f9cdddc4212e23b84da4fd260f1)
- 可繼續延伸



架構中的第
層(
stage)
![{\displaystyle x_{\alpha ,L}[n]=\sum _{k=0}^{K-1}x_{\alpha -1,L}[2n-k]g[k]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/8b3237f86646ab171917e1d6fbab78eb53ad7496)
![{\displaystyle x_{\alpha ,H}[n]=\sum _{k=0}^{K-1}x_{\alpha -1,L}[2n-k]h[k]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/36145d18b7c0b1f46f34d3321d019964fb06b9c6)
注意:若輸入信號 的長度是N,則第 層中的 及 的長度為 |
|

- 此時的輸入信號變成
,而轉換過程變得更複雜,說明如下:
- 首先對n方向作高通、低通以及降頻的處理
![{\displaystyle v_{1,L}[m,n]=\sum _{k=0}^{K-1}x[m,2n-k]g[k]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3bb581d19be3dc84b6f66476669af51bb565f115)
- 接著對
與
延著m方向作高低通及降頻動作
![{\displaystyle x_{1,LL}[m,n]=\sum _{k=0}^{K-1}v_{1,L}[2m-k,n]g[k]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5699b1611ae488b196dfeb4b12a5ffbe17a7b756)
![{\displaystyle x_{1,HL}[m,n]=\sum _{k=0}^{K-1}v_{1,L}[2m-k,n]h[k]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d1bc0b122f88e2ec5cd699913f5291c491ac9a9f)
![{\displaystyle x_{1,LH}[m,n]=\sum _{k=0}^{K-1}v_{1,H}[2m-k,n]g[k]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6657c6da1e42df215ace930f89aae0da4fa6b5f6)
- 經過(1)(2)兩個步驟才算完成2-D DWT的一個stage。
以下根據上述2-D DWT的步驟,對一張影像作二維離散小波轉換(2D Discrete Wavelet Transform)
- 原始影像

- 2D DWT的結果



在討論複雜度之前,先做一些定義,當x[n]*y[n]時,x[n]之長度為N,y[n]之長度為L:
其中,
為(N+L-1)點離散傅立葉反轉換(inverse discrete Fourier transform)
為(N+L-1)點離散傅立葉轉換(discrete Fourier transform)
(1)一維離散小波轉換之複雜度(沒有分段卷积(sectioned convolution)):
(2)當 N >>> L 時,使用 “分段卷积(sectioned convolution)”的技巧:
將x[n]切成很多段,每段長度為
,總共會有
段,其中
。
則
複雜度為:
在這裡要注意的是,當N>>L時,一維離散小波轉換之複雜度是呈線性的(隨N),
。
(3)多層(Multiple stages )的情況下:
1.若
不再分解時:
2.若
也細分時:
(4)二維離散小波轉換之複雜度(沒有分段卷积(sectioned convolution)):
上式中,第一部分需要M個一維離散小波轉換並且每個一維離散小波轉換的輸入有N個點;第二部分需要N+L-1個一維離散小波轉換並且每個一維離散小波轉換的輸入有M個點。
(5)二維離散小波轉換之複雜度,使用 “分段卷积(sectioned convolution)”的技巧:
假設原始尺寸為
,則每一小部分的尺寸為
所以若是使用分段摺積,則二維離散小波轉換之複雜度是呈線性的(隨MN),
。
(6)多層(Multiple stages )與二維的情況下:
首先x[m,n]的尺寸為
,
1.若
不細分,只細分
時,總複雜度為:
2.若
也細分時,總複雜度為:
使用離散小波轉換,將訊號個別通過一個低通濾波器和一個高通濾波器,得到訊號的高低頻成分,而在重建(Reconstruction)原始訊號的過程,也就是離散小波的逆轉換(Inverse Discrete Wavelet Transform. IDWT),直觀而言,我們僅是需要將離散小波轉換做重建濾波即可得到原始輸入信號,以下將推導重建濾波器,也就是IDWT高低通濾波器的構成要件,以及如何來重建原始信號。
使用Z轉換:
- DWT低通濾波器
的Z轉換為
,DWT高通濾波器
的Z轉換為
- 信號
通過濾波器
後,Z轉換為 
,信號
通過濾波器
後,Z轉換為 

- 升頻(interpolation)2倍後,再通過IDWT的低通重建濾波器
,
若要完整重建,則
條件1:
條件2:
因此,在設計高低通重建濾波器時,需要考慮上述條件,寫成矩陣形式如下:
其中
1.DWT通濾波器
,
必須要是有限長度。
2.滿足
是高通濾波器(high pass filter),
是低通濾波器(low pass filter)。
3.滿足完整重建要條件,
,其中
4.若
,
為有限長度,則
,且
為奇數。
*為什麼k是奇數?
假設k为偶数,
z=-1
z=1
代回
顯然出現矛盾。
所以k必須為奇数。
1.正交镜象滤波器(Quadrature Mirror Filter,QMF)



,且
為奇數。
2.单位正交小波(Orthonormal Wavelet)



,且
為奇數。
多數小波屬於单位正交小波。
壓縮、去除雜訊:使用低通濾波器,將小波轉換的高頻濾掉,即保留
而將其他部分捨棄。
- 邊緣偵測:使用高通濾波器,將小波的低頻濾掉,即保留
或
而捨棄其他部分。
- R语言小波分析wavelet (页面存档备份,存于互联网档案馆)
- 作為 JPEG2000 的內部架構
- 模式辨認:由於可以利用低頻的部分得到原圖的縮略版,加上模式通常為整體的特性,藉由在縮略圖上進行工作,小波轉換可以有效減少尋找模式與比對模式的運算時間
- 濾波器設計:小波轉換保留部分時間資訊,可以據此資訊加上訊號的強度資訊,保留特定時點的資訊而同時去除雜訊