【转载】A'Trous与Mallat的区别

原帖地址:http://blog.sina.com.cn/s/blog_4d7c97a00101a0cd.html

目前用于多分辨率分析的主要算法有Mallat算法和A’Trous算法。两种算法的区别主要如下:

1)在小波函数的选取上,Mallat算法要求小波函数必须是双正交小波,而A’Trous算法所选用的小波不一定必须是双正交的,它只是满足二进小波的条件就行,甚至还可以放宽条件;

2)Mallat算法在对序列进行分解和重建的过程中需对各级系数进行二进抽取和插值,因此其应用于计算的初始时间序列数据个数应当满足2n个,如果不满足,就必须对原始的时间序列做相应的裁剪,这对实际的操作有一定的影响,而A’Trous算法由于不需要对各级系数进行抽取和插值,从而不受这个条件的制约;

3)与原始的时间序列相比,Mallat算法重构后的时间序列由于前面的抽取、插值处理很容易出现相位失真,发生一定的偏移,而A’Trous算法具备平移时不变性的特征,它只是对滤波器组进行内插补零,其每级分解系数和原时间序列的长度保持一致,是真正意义上的无抽取离散小波变换,故而也被称作多孔算法。

实践证明,A’Trous算法相对于Mallat算法,在一些应用领域,对于时间序列的操作性具有一定的优势。

利用小波函数进行离散小波变换,在实际的编程过程中,在如何正确描述小波函数和它的一些特征性质方面存在一定的困难,因此我们通常采用能反映小波函数特性的一系列滤波器组来代替它,对应的小波变换则采用数字滤波算法实现。

posted @ 2015-04-08 09:52  Abraham_Xu  阅读(1095)  评论(0编辑  收藏  举报