前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小波变换一之Haar变换

小波变换一之Haar变换

作者头像
卡尔曼和玻尔兹曼谁曼
发布2019-01-22 09:36:12
9760
发布2019-01-22 09:36:12
举报
文章被收录于专栏:给永远比拿愉快

注:

Haar变换

案例一简单一维信号变换

下面是一个一维信号(一组数):f={2,2,2,4,4,4}f = \{2, 2, 2, 4, 4, 4\}f={2,2,2,4,4,4}

我对这个信号进行如下处理:

am=2f2m−1+f2m2=f2m−1+f2m2a_m = \sqrt{2}\frac{f_{2m-1}+f_{2m}}{2} = \frac{f_{2m-1}+f_{2m}}{\sqrt{2}}am​=2​2f2m−1​+f2m​​=2​f2m−1​+f2m​​(相邻两个数相加,求平均,然后乘以2\sqrt{2}2​)

dm=2f2m−1−f2m2=f2m−1−f2m2d_m = \sqrt{2}\frac{f_{2m-1}-f_{2m}}{2} = \frac{f_{2m-1}-f_{2m}}{\sqrt{2}}dm​=2​2f2m−1​−f2m​​=2​f2m−1​−f2m​​(相邻两个数相减,求平均,然后乘以2\sqrt{2}2​)

注:至于为什么要乘以2\sqrt{2}2​呢?我们这里先不解释,放到后面再说。

然后按照先aaa后ddd的顺序排列a1,a2,...,aN/2,d1,d2,...,dN/2{a_1,a_2,...,a_{N/2}, d_1, d_2, ..., d_{N/2}}a1​,a2​,...,aN/2​,d1​,d2​,...,dN/2​(NNN是离散信号中的值的个数)

则,a={22,32,42}a = \{2\sqrt{2}, 3\sqrt{2}, 4\sqrt{2}\}a={22​,32​,42​},d={0,−2,0}d=\{0, -\sqrt{2}, 0\}d={0,−2​,0}

我们可以得到结果:tf={22,32,42,0,−2,0}tf = \{2\sqrt{2}, 3\sqrt{2}, 4\sqrt{2}, 0, -\sqrt{2}, 0\}tf={22​,32​,42​,0,−2​,0}

这就是传说中的Haar变换了……

aaa表示的是信号的趋势(trend),近似(approximation),是低频信息;而ddd表示的是信号的细节(detail),是高频信息。

那么我们怎么变回去呢?我们对变换以后的信号进行如下处理:

f2m−1=2am+dm2=am+dm2f_{2m-1} = \sqrt{2}\frac{a_m +d_m}{2} = \frac{a_m +d_m}{\sqrt{2}}f2m−1​=2​2am​+dm​​=2​am​+dm​​(第mmm个aaa和ddd相加,求平均,然后乘以2\sqrt{2}2​)

f2m=2am−dm2=am−dm2f_{2m} = \sqrt{2}\frac{a_m -d_m}{2} = \frac{a_m -d_m}{\sqrt{2}}f2m​=2​2am​−dm​​=2​am​−dm​​ (第mmm个aaa和ddd相减,求平均,然后乘以2\sqrt{2}2​)

我们可以得到结果if={2,2,2,4,4,4}if = \{2, 2, 2, 4, 4, 4\}if={2,2,2,4,4,4}

这样就是Haar变换的逆变换。

通过观察,我们可以发现:

  • ddd中的数字绝大部分都很小(这是做信息压缩很重要的依据)
  • 变换前后信号的能量保持不变,即∑fi2=∑am2+∑di2\sum{f_i^2} = \sum{a_m^2} + \sum{d_i^2}∑fi2​=∑am2​+∑di2​(有兴趣的同学可以算一下对于fff和tftftf的能量都是60,刚好相等)

案例二多分辨率一维信号变换

我们可以按照上面的思路将信号对得到的低频信号(aaa)一直一直划分下去,直到log2N\mathrm{log}_2Nlog2​N(离散信号的值的数目不是偶数的,可以在后面补0)

给定如下的一个信号:f(t)=20x2(1−x)4cos⁡(12πx)f(t) = 20x^2(1-x)^4\cos(12\pi x)f(t)=20x2(1−x)4cos(12πx)

我们通过在[0, 1]之间取样1024个点可以得到信号的振幅,绘制出信号图像如下:

我们可以通过案例一种描述的方法进行Haar变换,我们这里对f(t)f(t)f(t)信号进行两次Haar变换,如下图所示:

这是多分辨率分析(Multi-Resolution Analysis,MRA)以及图像压缩(JPEG2000编码)等的基础理念,这里现有一个大概理解,后面我们会继续谈到。

变换的结果如下(感兴趣的朋友可以使用Mathematica或者MATLAB是一样,这两个数学软件都提供了对Haar变换的直接支持):

好了,这一节先到这里,我们以后有时间慢慢聊!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年01月17日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Haar变换
    • 案例一简单一维信号变换
      • 案例二多分辨率一维信号变换
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档