7.3.2.1 基本原理
设有尺度函数φ(t)和小波函数φ(t),尺度函数φ(t)满足双尺度方程:
式中:h(n)为离散低通滤波器系数。
定义C0(t)是信号f(t)与尺度函数φ(t)内积得到0尺度下的近似序列:
在实际应用中,常取C0(t)=f(t)作为初值进行计算。那么j 尺度下近似系列(低通系列)Cj(t)就是j-1 尺度下近似序列Cj-1(t)与φ(t)的内积结果:
由式(7.34)和式(7.36)可得到:
由于小波函数φ(t)与尺度函数φ(t)的关系为:
则j 尺度下的细节序列(高频序列)Wj(t)为j 与j-1 尺度间近似序列(低频序列)的差异信息,即
称{W1(t),W2(t),…,WJ(t),CJ(t)}为J 尺度下的小波变换序列。J 为最大分解尺度数,J 的确定目前没有确定的方法,一般认为至多有lgN (N 为序列长度)个尺度。这就是A Trous分解算法。
ATrous重构算法非常简单,就是各层高频序列与分解最后一层低频序列对应之和。即
由于ATrous算法简单、快捷、计算量小,在工程应用中很广泛。ATrous小波分解常用的低通滤波器{h(n)}如下:
在实际应用中选用哪个滤波器,需要根据具体情况而定。
7.3.2.2 程序设计
(1)程序框图。根据A Trous 小波分解快速算法原理设计分解程序如图7.18 所示(重构算法简单,程序框图略)。
(2)程序代码。A Trous算法程序简单,其代码为分解算法子程序WaveletAnlysis_Trous和重构算法子程序WaveletRecover_Trous。分解及重构Visual Basic 程序代码如下:
图7.18 ATrous分解算法程序框图
1)分解算法子程序:子程序输入为原始序列A(1,N)、序列长度N、分解层数L、低通滤波器系数H(m)及其长度m;输出为低频序列A(L+1,N)和高频序列B(L+1,N),分别对应第1、2,…,L 层小波系数。
2)重构算法子程序:
重构算法极其简单,将分解所得各层高频序列与最后一层低频序列对应相加即得重构序列。子程序输入小波分解高频序列W(L,N)、低频序列(最后一层)C(N)及分解层数L、序列长度N;输出重构序列CG(N)。(www.xing528.com)
7.3.2.3 应用实例
实例1 以长江上游控制站寸滩站年径流量序列为例进行ATrous小波分解。序列长度53 年(1953~2005 年),尺度数L=3,采用的滤波器为h(5)=(1/16,1/4,3/8,1/4,1/16)。图7.19 给出了ATrous小波分解与重构结果。
图7.19 寸滩站年径流ATrous分解与重构结果
(a)原始序列;(b)重构序列;(c)第一层分解高频序列;(d)第一层分解低频序列;(e)第二层分解高频序列;(f)第二层分解低频序列;(g)第三层分解高频序列;(h)第三层分解低频序列
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。