第一节
一个很简单的例子 还谈不上正式入门 但他具备了部分的思想。
[x0,x1,x2,x3]=[90,70,100,70]
为达到压缩 我们可取 (x0+x1)/2 (x0-x1)/2 来代表 x0,x1
这样 [90,70] 可表示为 [80,10] 80即平均数 10是小范围波动数(可想象出一种波的形状)
[90,70] --〉[80,10] , [100,70] --〉 [85,15]
可以想象80 和85 都是局部的平均值 反映大的总体的状态,是变化相对缓慢的值,可以认为他们是低频部分的值;
而10、15是小范围波动的值 局部变换较快 可以认为他们是高频部分的值。
- FIRST: 把[90,70,100,70] 写成 [80,85,10,15] 即把低频部分写在一起(记频率L) 高频部分写在一起(H)
- (90+70)/2,(100+70)/2,(90-70)/2,(100-70)/2
- L=[80,85],H=[10,15]
- SECOND: 而[80,85] 又可经同样的变换--> [82.5, -2.5] 这样 82.5表示更低频的信息(记频率LL) -1.5则表示了频率L上的波动
- 最后90,70,100,70] --〉[82.5, -2.5, 10, 15] (LL,LH,H,H) 这样信息就可被压缩了(数字范围小了)
这就是二级变换 同样的你可以进行更高级的变换。 呵呵,很简单吧?
现在再来扩展一下
[90,70]---> [80,10] 写成矩阵
[90,70] * [1/2, 1/2]
[1/2 ,-1/2]
Haar转换矩阵[1,1]
H= [1,-1] /2
如果是[90,70,100,70] 第一步就可写成矩阵M1
[1/2, 0, 1/2, 0]
[1/2, 0, -1/2, 0]
[0, 1/2, 0, 1/2]
[0 , 1/2, 0, -1/2]
M1=[
0.5000 0 0.5000 0
0.5000 0 -0.5000 0
0 0.5000 0 0.5000
0 0.5000 0 -0.5000
]
第二步 只对低频 L操作 高频不变 故可写成M2
1/2, 1/2, 0, 0
1/2, -1/2, 0, 0
0, 0, 1, 0
0, 0, 0, 1
M2=[
0.5000 0.5000 0 0
0.5000 -0.5000 0 0
0 0 1.0000 0
0 0 0 1.0000
]
令M=M1