二代小波基础

来源:互联网 发布:故宫淘宝和故宫文创 编辑:程序博客网 时间:2024/05/17 04:07
本文为转载

现在我就举例,对一个8点序列,怎样实现第二代小波变换。

1. 奇偶分开。
非常简单,就是[2,4,6,8]组成一列向量,[1,3,5
,7]组成一列向量。

2. 预测。
用[2,4,6,8]来预测[1,3,5,7]。比如说1,3估计2; 3,5估计4; 5,7估计6; 7,1估计8。
(边缘处理,我采用循环方法)。估计公式可以用别人的,也可以自己做。举一个线性的例子
:2=1*a+3*b,4=3*a+5*b,...,其他的都一样。这样我们就可找到最优的a,b,使得(2-(1*a+3*
b)).^2+(4-(3*a+5*b)).^2+...最小化。就是最小均方准则。若正好为零,说明偶可以完全预
测奇,也就是我们只要存储偶数列向量,和a,b就可以了,压缩也就是实现了。对于信号很长
序列,就等于压缩了一半。当然,我们可以采用更复杂的立方差值预测,多项式预测,或其它
的准则,来使其最小,这样我们的压缩也就得到了最优。

3. 提升。
我们总希望,均方为零,但可望不可及。于是,提升就需要了。我们经过预测后,要存储的是
偶数序列[2,4,6,8],新的奇数序列[n1,n3,n5,n7]=[2-(1*a+3*b),4-(3*a+5*b),...]和线性变
换系数(a,b)。这里新的奇数序列就是高频分量。但偶数序列是不能完全代表信号的性质的,
有所差距。所以我们要对偶数序列进行修正。即所谓的提升。我们这次用个简单的提升吧。[n
2,n4,n6,n8]=[2,4,6,8]+k*[n1,n3,n5,n7]。[n2,n4,n6,n8],就是要分解的低频分量。那k怎么
求呢?因为要保持n2,n4,n6,n8和原始信号[1,2,3,4,5,6,7,8]一样的性质。一般就是均值和高
阶矩。这里就一个未知数k,所以用均值相等,就行了。1/8*(1+2+3+..8)=1/4*(n2+n4+n6+n8)
。k很容易就求出来了。我们最终存储的就是[n1,n3,n5,n7]和[n2,n4,n6,n8]以及a,b,k。

现在,所谓的第二代就完了。再说几句。
1.反变换,就是3->2->1。

2.二维。先行提升,再列提升。(我置顶的贴子里有harr二维提升的源代码)。

3.整数阶。就是加一个取整。

4.多层或小波包提升,就是在对序列[n1,n3,n5,n7]或[n2,n4,n6,n8],再做1->2->3。

5.灵活。不一定是a,b,也可能就一个a,或a,b,c;不一定是一个k,也可能是k1,k2。但越多计算
量太大。最好是用大师们做好的CDF,5/3,7/9等。

6.最重要的,任何一代小波,总可以通过一次或多次提升实现。它和一代小波没有本质区别。


7.优势。文献都有,我随便谈谈。时域实现,最优压缩,无边缘效应,灵活多变,无损压缩,
编程方便,速度快。