根据文献中针对连续数据流提出的移动离散小波变换算法 ,本文将此算法运用到实时暂态扰动信号的检测中 。设输入信号被分为每组 2J 个采样数据 ,其中 J 为最大分解层数 , 为了避免边界效应的影响 , 在每层计算时保留 M -2 个数据在内存中并作为下一次输入时的数据( M是小波滤波器的长度 , 在此以 M =4 的 Daubechies 小波为例) 。通过这种重叠保留法可得到一组新的近似和细节系数如图 1 所示 。
图 1( a)和( b)分别表示应用移动离散小波变换算法对输入数据进行 1 层和 3层分解时的情况 , 其中 x n( n =-4 ,-3 , … ,7 …)为输入数据 , 在此被分为每 23 =8 个一组( 最大分解层数 J =3) 。 c0 ~ c3 为小波低通滤波器系数 , -c3 、c2 、 -c1 、c0 为小波高通滤波器系数( 图 1( b)中没有画出) 。
ai( k) , di( k) 为第 i层的近似与细节系数( i为分解层数 , i =1 , 2 , 3 , k 为序号 , k =-2 , - 1 , …, 3 …) , ① ~ ⑦表示移动小波算法的计算顺序 。 在每次分解时均保留 2个( M -2 =2)输入数据和近似系数 ai( k)用来消除边界效应的影响 , 正因为这种重叠保留法的应用 , 使数据看起来就好像在移动一样 , 因此叫做移动离散小波变换 。从图 1( b) 中可以看出由 R-DWT 算法得到的输出数据序 列 依 次 为 d 1( 0) 、d1( 1) 、d2( 0) 、d 1( 2) 、d1( 3) 、d2( 1) 、d3( 0) 、 a3( 0) , 而由 Mallat 算法得到的输出序列依次为d1( 0) 、d1( 1) 、d 1( 2) 、d1( 3) 、d2( 0) 、d2 ( 1) 、d3( 0) 、 a3( 0) 。相比之下 , R- DWT 算法可以更快地计算出下一层的系数 , 有利于减少内存的使用 。