小波包分解

小波包分解（wavelet packet decomposition）也可称为小波包（wavelet packet）或子带树（subband tree）及最佳子带树结构（optimal subband tree structuring）。其概念是用分析树来表示小波包，即利用多次迭代的小波转换分析输入讯号的细节部分。

## 与快速小波转换比较

快速小波转换（fast wavelet transform）是将输入讯号分解成对数刻度，如图一所示，最左边的图是经过快速小波转换，高频的部分频带较宽，低频较窄。若要更广泛的控制时频图(例如把高频的频带分得更细)，必须将快速小波转换一般化，即称为小波包分解。经过一般化后，复杂度从原本O(M)增加到O(MlogM)。

<image>

### 一维三阶快速小波转换

图二是一维三阶的快速小波转换，最上方为流程图，$\mathit{V_J}$为输入讯号，$\mathit{J} - P$表示第$\mathit{P}$阶，以此类推，$\mathit{h_{\psi}}$为缩放函数(scaling function)的系数，$\mathit{h_{\varphi}}$为小波函数(wavelet function)的系数；右下图则是各个子空间(subspace)在频谱上的分布，由此可知$\mathit{V}$表示低频讯号，$\mathit{W}$表示高频讯号，而左下图是用二进制的树枝图来表示，因为占的空间比流程图来的少，用来分析有效的分解较为方便，此例而言$\mathit{V_J}$可分解成

$$\mathit{V_J} = \mathit{V_{J-1}} \oplus \mathit{W_{J-1}}$$

$$\mathit{V_J} = \mathit{V_{J-2}} \oplus \mathit{W_{J-2}} \oplus \mathit{W_{J-1}}$$

$$\mathit{V_J} = \mathit{V_{J-3}} \oplus \mathit{W_{J-3}} \oplus \mathit{W_{J-2}} \oplus \mathit{W_{J-1}}$$

$\mathit{j0}$ = $\mathit{J-P}$，$\mathit{P}$ = {1, 2, 3}，一般而言$\mathit{P}$-阶快速小波转换分析树有$\mathit{P}$种不同的分解方式。

<image>

### 一维三阶小波包分解

如前面所述，小波包分解利用多次迭代的小波转换分析输入讯号，因此经过三次的小波转换后如图三所示，其中$\mathit{W}$后面的$\mathit{A}$代表近似(approximation)过滤，可视为前一阶讯号的低频部分；$\mathit{D}$代表细节(detail)过滤，可视为前一阶讯号的高频部分。以子空间$\mathit{W_{J-1,DA}}$为例，$\mathit{W_{J-1,DA}}$是由第$\mathit{J-1}$阶的快速小波转换系数先经过一个细节滤波器(得到$\mathit{W_{J-1,D}}$)后，再经过一个近似滤波器(得到$\mathit{W_{J-1,DA}}$)。

<image>

图四和图五分别为一维三阶小波包分解的流程图及频率特征。

<image>

<image>

一维三阶的小波包分解有26种不同的分解方式，可展开如图五

$$\mathit{V_J} = \mathit{V_{J-3}} \oplus \mathit{W_{J-3}} \oplus \mathit{W_{J-2,A}} \oplus \mathit{W_{J-2,D}} \oplus \mathit{W_{J-1,AA}} \oplus \mathit{W_{J-1,AD}} \oplus \mathit{W_{J-1,DA}} \oplus \mathit{W_{J-1,DD}}$$

或是特征频率如图六

$$\mathit{V_J} = \mathit{V_{J-1}} \oplus \mathit{W_{J-1,A}} \oplus \mathit{W_{J-1,DA}} \oplus \mathit{W_{J-1,DD}}$$

<image>

一般而言，对于$\mathit{P}$-阶、一维的小波包

$\mathit{D(P+1)}$ = $\mathit{[D(P)]^2} + 1$ 种的分解方式，其中

$$\mathit{D(1)} = 1$$

有这么多种的分解方式下，小波包转换进一步提供分解特征频率的的精细度，但分解越精细，复杂度也随之而增。

## 二维多阶小波包分解

在二维时，一次小波转换会得到四个区域，三个子空间(图七)，分别为$\mathit{V_{J-1}}$低频讯号；$\mathit{W_{J-1}^H}$，水平特征；$\mathit{W_{J-1}^V}$，垂直特征；$\mathit{W_{J-1}^D}$，角落特征。

<image>

图八为三阶的分析树

<image>

与一维类似，$\mathit{W_{J-1,VD}^H}$为例，是第$\mathit{J-1}$阶快速小波转换的水平细节系数($\mathit{W_{J-1}^H}$)经过"细节/近似"滤波器后($\mathit{W_{J-1,V}^H}$)，再经过"细节/细节"滤波器($\mathit{W_{J-1,VD}^H}$)。

一个$\mathit{P}$-阶的二维小波包分解有

$\mathit{D(P+1)}$ = $\mathit{[D(P)]^4} + 1$种，其中

$$\mathit{D(1)} = 1$$

因此图八有83522种分解的方式。

## 分解准则

由上述的例子可知道小波包分解的可能方式有很多种选择，在应用上不够实际，需要一套有效的算法找最佳的分解方式，在压缩上更有效率。以下用一张指纹影像(图九)来说明，利用熵准则判断二进制树(binary tree)。

<image>

<image>

我们将图九的影像用完整二维三阶的小波包分解后会得到图十的结果，其分析树如图八所表示，总共有64个子空间。这样完整的分解，压缩效率并不一定是最好的。

利用一个合理的准则来选择在那些节点要继续做小波分解，称为可加性消耗函数(additive cost function)

$$\mathit{E(f)} = \sum_{m,n} |f(m,n)|$$

此函数量测二维讯号$\mathit{f}$的熵，熵值若趋近于零，所携带的资讯量越少；熵值越高，表示非零的值越多，然而当零的值越多，能使压缩效率提高，将可加性消耗函数的值最小化即是分解的最佳方式。

以下两步骤是取得最佳分解方式的算法:

1.计算预估计节点的熵，以$\mathit{E_P}$表示，经过一次二维小波包转换的四个区域的熵分别为

$\mathit{E_A}$,$\mathit{E_H}$,$\mathit{E_V}$,$\mathit{E_D}$。

2.比较四个区域熵的和是否小于原本节点的熵，即$\mathit{E_A}$ + $\mathit{E_H}$ + $\mathit{E_V}$ + $\mathit{E_D}$ < $\mathit{E_P}$。若和大于等于原节点的值就删去其分支，不要往下做小波分解。

上述的算法可减少分析树的分支，减少运算复杂度，并得到最佳化的分解方式。图十一是将图九的影像经过该算法所产生，与图十比较可发现在高频的部分没继续分解，使压缩效率最高。

<image>

## 应用

### 讯号去噪声

对一个讯号，想要去除噪声，可以使用小波包分解。

小波包分解的基本概念和小波转换大致上相同，而不同之处在于小波包分解更加复杂、但是也因此在分析上更为灵活。

小波包分解对上一层的低频部分和高频部分，两者同时一起分解，所以在局部分析方面能够做到更加精确。

另外，对讯号进行小波包分解时，有很多种小波包基可以采用。

一般来说，会根据所要达成的目标，选择一个较佳的小波包基，这个小波包基可以称为最佳基，而熵标准是选择最佳基的标准。

因此，利用小波包分析对讯号去除噪声，一般如下进行：

(1)	选择一个小波基，并且选择一个分解的层次，然后对讯号做小波包分解。

(2)	决定一个熵标准，利用这个标准计算最优树，然后便能确定最优小波包基。

(3)	对于每一个小波包分解系数，都选择一个阈值，然后对系数进行阈值量化。

(4)	最后，根据最低层的小波包分解系数，以及经过量化处理的系数，来进行小波包重构。

以上去除噪声的步骤中，最关键的步骤是阈值的选取和量化，因为这两者对于讯号去除噪声的效果有最直接的影响。

### 讯号压缩

对一个讯号，想要进行压缩，可以使用小波包分解。

小波包分解用于讯号压缩中，概念和在小波转换中的基本一致，不同的地方就是在于小波包可以更加的复杂，局部分析也能更加精确。

同样的，在使用小波包分析做讯号压缩时，必须慎选阈值，以及阈值量化，因为这两者对于讯号压缩的效果影响最为深远。

### 影像压缩

小波包因为可以将空间作精细的分解，所以非常适合用来做影像的压缩。

另外，关于影像压缩的算法，由Kunt等人所提出的影像数据压缩算法，是利用将原始影像做多层分解，并且考虑到人类视觉的特性，然后对这些资讯选择性的编码，便可以可得到高压缩比和低失真度。

### 影像边缘检测

影像的边缘检测，就是找出影像当中的边缘，找出边缘后便能对影像进行进一步处理与辨识。

虽然不同的影像边缘，产生的原因未必相同，但是若从影像组成的角度来看，边缘可以说是影像上灰度的不连续点、或灰度有剧烈变化的地方，也就是说，影像的边缘就是高频的讯号。

所以说，如果要做边缘检测，就是要想办法找出高频的成分所在。

但是，在实际的影像边缘侦测中，因为影像中也有噪声，所以边缘检测同时要如何处理及考虑噪声带来的影响，是一个重要的问题。

而对影像做小波包分解，可以得到一个影像序列，其中由近似部分和细节部分所组成，可以进一步做影像的边缘检测。

近似部分是拿原本的影像滤掉高频成分之后，所得到的一种近似的表示。因为透过滤波可以去除高频分量，所以便能够检测出原始影像中所检测不出的边缘部分。

### 超音波检测缺陷回波讯号处理

超音波检测，是一种无损的检测方法，因此它的应用十分广泛。

但是，在超音波检测中，对于缺陷的定性识别问题，一直是学者研究的重要问题。

最主要是因为缺陷回波本身是一种瞬时脉冲讯号，但是这样的讯号很容易被各种噪声所影响。

若想要做到对缺陷的正确识别，就必须先将缺陷回波从带有噪声的波中分离出来。

目前许多超音波讯号处理方法都是基于傅立叶转换而来的方法，由于傅立叶转换并不适合对非稳态讯号做分析，没办法法将讯号的时域和频域两部分的特征结合起来分析，更无法做到只分析讯号当中的一小部分。

因此，在此问题中，使用小波转换，是一种可行的方法，因为小波转换特别适合拿来对瞬时讯号做分析与处理。

而另外，小波包分解则具有更好的时频分析率，可以说是对小波转换的进阶版，能对讯号进行各样的精细分析和处理，因此是许多学者研究此问题的重要方向。

## 同时参阅

- 小波分析
- 快速小波转换（FWT）