这是《小波变换和motion信号处理》系列的第二篇,深入小波。第一篇我进行了基础知识的铺垫,第三篇主要讲解应用。

在上一篇中讲到,每个小波变换都会有一个mother wavelet,我们称之为母小波,同时还有一个father wavelet,就是scaling function。而该小波的basis函数其实就是对这个母小波和父小波缩放和平移形成的。缩放倍数都是2的级数,平移的大小和当前其缩放的程度有关。

还讲到,小波系统有很多种,不同的母小波,衍生的小波基就完全不同。小波展开的近似形式是这样:

其中的就是小波级数,这些级数的组合就形成了小波变换中的基basis。和傅立叶级数有一点不同的是,小波级数通常是orthonormal basis,也就是说,它们不仅两两正交,还归一化了。

我们还讲了一般小波变换的三个特点,就是小波级数是二维的,能定位时域和频域,计算很快。但我们并没有深入讲解,比如,如何理解这个二维?它是如何同时定位频域和时域的?

在这一篇文章里,我们就来讨论一下这些特性背后的原理。

首先,我们一直都在讲小波展开的近似形式。那什么是完整形式呢?之前讲到,小波basis的形成,是基于基本的小波函数,也就是母小波来做缩放和平移的。但是,母小波并非唯一的原始基。在构建小波基函数集合的时候,通常还要用到一个函数叫尺度函数,scaling function,人们通常都称其为父小波。它和母小波一样,也是归一化了,而且它还需要满足一个性质,就是它和对自己本身周期平移的函数两两正交:

另外,为了方便处理,父小波和母小波也需要是正交的。可以说,完整的小波展开就是由母小波和父小波共同定义的。

其中是母小波,是父小波。需要提醒一点的是,这个正交纯粹是为了小波分析的方便而引入的特性,并不是说小波变换的基就一定必须是正交的。但大部分小波变换的基确实是正交的,所以本文就直接默认正交为小波变换的主要性质之一了。引入这个父小波呢,主要是为了方便做多解析度分析(multiresolution analysis, MRA)。说到这里,你的问题可能会井喷了:好好的为什么出来一个父小波呢?这个scaling function是拿来干嘛的?它背后的物理意义是什么?wavelet function背后的物理意义又是什么?这个多解析度分析又是什么呢?不急,下面,我们围绕一个例子来巩固一下前面的知识,同时再引出新的特性。

假设我们有这样一个信号:

该信号长度为8,是离散的一维信号。我们要考虑的,就是如何用小波将其展开。为了方便讲解,我们考虑最简单的一种小波,哈尔小波。下面是它的一种母小波:

那如何构建基于这个母小波的基呢?刚才提到了,要缩放,要平移。我们先试试缩放,那就是ψ(2n):

但这样的话,它与自己的内积就不是1了,不符合小波基orthonormal的要求,所以我们要在前面加一个系数根号二,这样我们就得到了另一个哈尔小波的basis function:

同理,我们可以一直这样推广下去做scale,得到4n,8n,…….下的basis function。当然在这个例子里,我们信号长度就是8,所以做到4n就够了。但推广来说,就是这种scaling对母小波的作用为,这是归一化后的表示形式。

平移的话也很简单,我们可以对母小波进行平移,也可以对scale之后的basis function进行平移。比如对上一幅图中的basis function进行平移,就成了

看得出来,平移后的basis function和母小波以及仅仅scale过的小波,都是正交的,附合小波basis的特点。如果我们用ψ(n)来表示这个mother wavelet,那么这些orthonormal basis函数可以写成:

这里的k是可以看成时域的参数,因为它控制着小波基时域的转移,而j是频域的参数,因为它决定了小波基的频率特性。看到这里,你应该会感觉很熟悉,因为这里的平移和变换本质和刚才对scaling function的平移变换是一模一样的。

这样,我们就有了针对此信号space的哈尔小波basis组合:

图1

可以看出,我们用到了三层频率尺度的小波函数,每往下一层,小波的数量都是上面一层的两倍。在图中,每一个小波基函数的表达形式都写在了波形的下面。

等等,你可能已经发现了,有问题。这里为什么多了个没有函数表达式的波形呢?这货明显不是wavelet function阿。没错,它是之前提到的scaling function,也就是父小波。然后你可能就会问,为啥这个凭空插了一个scaling function出来呢?明明目标信号已经可以用纯的小波基组合表示了。是,确实是,就算不包括scaling function,这些小波函数本身也组成了正交归一基,但如果仅限于此的话,小波变换也就没那么神奇的功效了。引入这个scaling function,才能引入我们提到的多解析度分析的理论,而小波变换的强大,就体现在这个多解析度上。那在这里,我们怎么用这个多解析度呢?这个哈尔小波basis组合是怎么通过多解析度推导出来的呢?

话说在数学定义中,有一种空间叫Lebesgue空间,对于信号处理非常重要,可以用L^p(R)表示,指的是由p次可积函数所组成的函数空间。我们在小波变换中要研究的信号都是属于L^2(R)空间的,这个空间是R上的所有处处平方可积的可测函数的集合,这样就等于对信号提出了一个限制,就是信号能量必须是有限的,否则它就不可积了。小波变换的定义都是基于但不限于L^2(R)中的信号的。这玩意的特性要具体解释起来太数学了,牵涉到太多泛函知识,我就不在这里详述了。而且老实说我也没能力完全讲清楚,毕竟不是学这个的,有兴趣可以参考wiki。总之你记住,小波变换研究中所使用的信号基本都是平方可积的信号,但其应用不限于这种信号,就行了。

对L^2(R)空间做MRA是在干嘛呢?就是说,在L^2(R)空间中,我们可以找出一个嵌套的空间序列,并有下列性质:

(i) 

(ii) 

(iii) 

(iv) 

(v) 有这样一个方程,  是的orthonormal basis。

我来简单解释一下这些性质。这个V_j都是L^2(R)空间中的子空间,然后他们是由小到大的,交集是{0},因为这是最小的子空间,并集就是L空间。是不是有点难以理解?没关系,看看下面这个图就清楚了:

这个图是圈圈套圈圈,最里面的圈是V0,之后分别是V1,V2,V3,V4 。那他们有趣的性质就是,假如有一个函数f(t)他属于一个某空间,那你将其在时域上平移,它还是属于这个空间。但如果你对它频域的放大或缩小,它就会相应移到下一个或者上一个空间了。

同时我们还知道,你要形容每一个空间的话,都需要有对应的orthonormal basis,这是必然的,那对于V0来讲,它的orthonormal basis就是

这一系列函数是什么呢?是的时域变换,而且我们刚才也说了,时域上平移,是不会跳出这个空间的。这样,我们就可以说,由这一系列basis所定义的L^2(R)子空间V0被这些basis所span,表示成:

k从负无穷到正无穷。上面的bar表示这是一个闭包空间,也就是说

这样,我们就定义了基本的V0这个子空间。刚才说了,这个子空间的基都是对的整数时域变换,这里我们称为scaling function,所以换个说法,就是说这里整个子空间V0,由scaling function和其时域变换的兄弟们span。

当然,如果这个scaling function只是用来代表一个子空间的,那它的地位也就不会这么重要了。刚才我们提到,这个嵌套空间序列有一个性质,。这就是这个函数,如果你对它频域的放大或缩小,它就会相应移到下一个或者上一个空间了。这个性质就有意思了,它代表什么呢?对于任何一个包含V0的更上一层的空间来讲,他们的基都可以通过对scaling function做频域的scale后再做时域上的整数变换得到!推广开来就是说,当

我们有

这也就意味着,对于任何属于V_j空间的函数f(t),都可以表示为:

到这里,我们就明白这些个子空间和那个凭空冒出来的scaling function的作用了。scaling的构建这些不同的子空间的基础,当j越大的时候,每一次你对频率变换后的scaling function所做的时域上的整数平移幅度会越小,这样在这个j子空间里面得到的f(t)表示粒度会很细,细节展现很多。反之亦然。通俗点说,就是对scaling function的变换平移给你不同的子空间,而不同的子空间给你不同的分辨率,这样你就可以用不同的分辨率去看目标信号。

下面就是时候看看什么是MRA equation了,这是更加有趣,也是更加核心的地方。通过刚才的讲解,V0属于V1,那scaling function是在V0中的,自然也在V1中了。我们把他写成V1的基的线性组合,那就是

其中的h(n)是scaling function的系数,也叫做scaling filter或者scaling vector,可以是实数,也可以是虚数。根号2是为了维持norm为1的。看,在这个公式里,我们就把属于V0的函数用V1的基表示出来了。同理,我们可以循环如此,把属于V0的在V2, V3, …, Vn中表示出来。这些方程就是MRA equation,也叫refinement equation,它是scaling function理论的基础,也是小波分析的基础之一。

好,稍微总结一下。到现在,已经讲了关于scaling function的基本理论知识,知道了信号空间可以分为不同精细度的子空间,这些子空间的basis集合就是scaling function或者频率变换之后的scaling function,如下图所示:

上图就是四个子空间的basis集合的展览。通过前面的讨论,我们还知道,一开始的scaling function可以通过更精细的子空间的scaling function(它们都是对应子空间的basis)来构建。比如

对于更加finer的scale:

图2
依此类推。实际上,对于任何scale和translate过的scaling function,都可以用更加精细的scale层面上的scaling function构建出来。

然后,我们有各种scale下的scaling function了,该看看它们分别所对应的嵌套的空间序列了。先看看V0,自然就是以基本的scaling function为基础去span出来的:

这个不新鲜,刚才就讲过了。这个子空间代表什么样的信号?常量信号。道理很简单,这个scaling function在整个信号长度上,没有任何变化。继续往下看:

这个相比V0更加finer的子空间,代表着这样一种信号,它从1-4是常量,从5-8是另一个常量。同理我们有:

V2代表的信号,是分别在1,2; 3,4; 5,6; 7,8上有相同值的信号。那么V3呢?则表示任何信号,因为对于V3来讲,任何一个时间刻度上的值都可以不一样。而且现在,我们也可以通过上面的一些scaling functions的波形验证了之前提到的多解析度分析中的一个核心性质,那就是:

我们之前讲了一堆多解析度的理论,但直到现在,通过这些图形化的分析,我们可能才会真正理解它。那好,既然我们有一个现成的信号,那就来看看,对这个信号作多解析度分析是啥样子的:

你看,在不同的子空间,对于同一个信号就有不同的诠释。诠释最好的当然是V3,完全不损失细节。这就是多解析度的意义。我们可以有嵌套的,由scaling function演变的basis function集合,每一个集合都提供对原始信号的某种近似,解析度越高,近似越精确。

说到这里,可能你对scaling function以及多解析度分析已经比较理解了。但是,我们还没有涉及到它们在小波变换中的具体应用,也就是还没有回答刚才那个问题:凭空插了一个scaling function到小波basis组合中干嘛。也就是说,我们希望理解scaling function是怎么和小波函数结合的呢,多解析度能给小波变换带来什么样的好处呢。这其实就是是小波变换中的核心知识。理解了这个,后面的小波变换就是纯数学计算了。

好,我们已经知道,对于子空间V0,basis是scaling function:

对应的小波函数是:

然后子空间V1的basis集合是这俩哥们:

看出什么规律了么?多看几次这三个图,你会惊讶地发现,在V0中的scaling function和wavelet function的组合,其实就是V1中的basis!继续这样推导,V1本来的的basis是:

然后V1中对应的wavelet function是

他们的组合,本质上也就是V2的basis(参考图2)。你继续推导下去,会得到同样的结论:在scale j的wavelet function,可以被用来将Vj的basis扩展到V(j+1)中去!这是一个非常非常关键的性质,因为这代表着,对任何一个子空间Vj,我们现在有两种方法去得到它的orthonormal basis:

1. 一种就是它本来的basis ,对任意k。

2. 第二种就是它上一个子空间的basis,对任意k,以及上一级子空间的wavelet function ,对任意k。

第二种选择能给我们带来额外的好处,那就是我们可以循环不断地用上一级子空间的scaling function以及wavelet function的组合来作为当前子空间的基。换句话说,如果针对V3这个子空间,它实际上就有四种不同的,但是等价的orthonormal basis:

1. 本级(V3)的scaling function basis set

2. 上一级(V2)的scaling function + wavelet function;

3 . 上上一级(V1)的scaling function + 上上一级(V1)的wavelet function + 上一级(V2)的wavelet function;

4. 上上上一级(V0)的scaling function + 上上上一级(V0)的wavelet function + 上上一级(V1)的wavelet function + 上一级(V2)的wavelet function

好,看看最后一种选取方式,有没有感到眼熟?对了,它就是我们之前提到的“针对此信号space的哈尔小波basis组合”,参见图1。现在我们知道了,这个scaling function不是凭空插进去的,而是通过不断的嵌套迭代出来的:)

那为什么我们最后选定的是这种选取方式呢?实际上,刚才介绍的这个性质已经告诉我们,对于任何的scale j0,我们都可以给我们的signal space找到一组orthonormal basis,这个basis是通过组合scale j0上的scaling function以及所有在scale j,j>=j0上的wavelets得到的。这样,基于这个orthonormal basis,所有信号空间中的信号都可以写成组成这个basis的functions的线性组合:

对应的系数的计算和平常一样:

这,就是最终的,也是最核心的,小波变换形式。不管是信号压缩,滤波,还是别的方式处理,只要是用小波变换,都逃不出这个基础流程:

1. 选取合适的wavelet function和scaling function,从已有的信号中,反算出系数c和d。

2. 对系数做对应处理

3. 从处理后的系数中重新构建信号。

这里的系数处理是区别你的应用的重点。比如图像或者视频压缩,就希望选取能将能量聚集到很小一部分系数中的小波,然后抛弃那些能量很小的小波系数,只保留少数的这些大头系数,再反变换回去。这样的话,图像信号的能量并没有怎么丢失,图像体积却大大减小了。

还有一个没有解释的问题是,为什么要强调尺度函数和小波函数组成一个orthonormal basis呢?计算方便是一方面,还有一个原因是,如果他们满足这个性质,就满足瑞利能量定理,也就是说,信号的能量,可以完全用每个频域里面的展开部分的能量,也就是他们的展开系数表示:

到这里,我们对小波变换的形式就讲完了。虽然是用的最简单的哈尔小波为例子,但举一反三即可。我们着重介绍了多解析度分析以及它给小波变换带来的杀手锏:时域频域同时定位。结束之前,再多说几句小波变换的意义。我们拿刚才例子中V3子空间的第二种可选择的orthonormal basis作为例子:

左边这四个basis组成元素,也就是scaling functions,的系数,表征的是信号的local平均(想想它们和信号的内积形式),而右边的这四个basis组成元素,也就是wavelet functions,的系数则表征了在local平均中丢失的信号细节。得益于此,多解析度分析能够对信号在越来越宽的区域上取平均,等同于做低通滤波,而且,它还能保留因为平均而损失的信号细节,等同于做高通滤波!这样,我们终于可以解释了wavelet function和scaling function背后的物理意义了:wavelet function等同于对信号做高通滤波保留变化细节,而scaling function等同于对信号做低通滤波保留平滑的shape!

对小波变换的基础知识,我们就讲到这里。需要注意的是,这只是小波变换最基本最基本的知识,但也是最核心的知识。掌握了这些,代表你对小波变换的物理意义有了一定的了解。但对于小波变换本身的讲解,一本书都不一定能将讲透,还有很多的基础知识我都没有讲,比如如何构建自己的scaling function,选取合适的系数集h[k],并由此构建自己的wavelet functions。所以,如果有深入下去研究的同学,好好买一本书来看吧。而只是希望用小波变换来服务自己的应用的同学,个人觉得这些知识已经足够让你用来起步了。

转载于:https://www.cnblogs.com/retrieval/archive/2013/04/10/3013098.html

小波变换和motion信号处理(二)【转载】相关推荐

  1. 小波变换和motion信号处理(三)(转)

    这篇文章算太监了,去作者blog提问去吧:http://www.kunli.info/2012/04/08/fourier-wavelet-motion-signal-3/ 从前两篇发布到现在,过去一 ...

  2. 小波变换 完美通俗解读【转载

    转自: http://www.kunli.info/2011/02/15/fourier-wavelet-motion-signal-1/ 这是<小波变换和motion信号处理>系列的第一 ...

  3. OpenI部署二——转载

    2019独角兽企业重金招聘Python工程师标准>>> 在上一篇文章中讲解了Openi的demo部署方式一,接下来讲解部署方式二,也就是在Myeclipse上进行部署,步骤如下: 1 ...

  4. 售前工程师的成长---一个老员工的经验之谈(二)(转载)

    一.             守时是个好习惯,迟到永远是无道理的 守时是个好的个人习惯,有时能体现一个人待人接物的风格.记不得哪个名人说的"不尊重时间,就是在浪费生命".作为售前技 ...

  5. 慕容垂:百万战骨风云里——激荡的鲜卑史略之二(转载)

    [胡歌胡会,慷慨悲壮,往往激动人的热血.百来年后,另一位鲜卑枭雄高欢, 临终仍在苦战.战局不利,生命也所剩无几,高欢却在军帐中开了最后一次胡 会,让人留下"风吹草低见牛羊"的胡歌名 ...

  6. 数字信号处理二:离散时间信号的运算

    一.离散时间信号的基本运算 离散信号的基本运算包括:(1)自变量的变换:平移.反转:(2)两个信号之间的运算:相加.相乘:(3)信号自身整体的运算:信号在值域上的展缩和上下平移,即x(n) -> ...

  7. Fiddler实战深入研究(二)[转载]

    Fiddler实战深入研究(二) 阅读目录 Fiddler不能捕获chrome的session的设置 理解数据包统计 请求重定向(AutoResponder) Composer选项卡 Filters选 ...

  8. 小波变换在语音信号处理的应用

    小波变换时20世纪80年代中后期逐渐发展起来的一种数学分析方法,他一出现就受到数学界和工程界的广泛重视.1984年法国科学家J.Molet在分析地震波的局部特性时,首先用小波变换对信号进行分析,并提出 ...

  9. struts2+spring3+hibernate3整合(二)转载

    3. 配置spring3.0.2 结合 hibernate3.3 3.1 导入hibernate3.3的包 在这里,由于我用的是myeclipse8.5,所以我是采用IDE自动导入的方法.我懒.途中的 ...

最新文章

  1. 表单实例(判断两次密码是否一致)
  2. jenkins搭建cc++自动化构建
  3. .NET读写Excel工具Spire.Xls使用(1)入门介绍
  4. shell脚本 - 快速到达目录
  5. c语言编辑密码程序,想程序高手求助--用C语言来编辑一个输入密码的程序
  6. 使用Samba服务器构建私有和公共共享目录
  7. EntityModelStudio系列教程2--静态建模之实体模型设计
  8. oracle sql不用distinct去除重复,oracle sql 去重复记录不用distinct如何实现
  9. 测试投入度量元的选择
  10. 域名显示服务器错误,域名解析出现错误是怎么回事?
  11. 如何将iPad用作Mac的第二屏幕
  12. 深入理解朴素贝叶斯(Naive Bayes)
  13. PTA航空公司VIP客户查询c++版——山东科技大学
  14. 折半查找--hnust oj
  15. Unity 之 纹理类型导入设置和压缩格式介绍
  16. Linux常用命令操作详解
  17. 初识cytoscape.js
  18. 十个优秀的iPhone app界面设计
  19. 练习-打印杨辉三角形
  20. 顺利解决org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException!

热门文章

  1. ${ctx} 的那些事
  2. 云服务器太卡,云服务器解决io过高导致的命令卡顿
  3. myeclipse java注释模板_Eclipse/MyEclipse Java注释模板设置详解 ---转载自百度空间
  4. c语言float二进制输出代码_C语言学习笔记——学前知识概述
  5. a4988 脉宽要求_A4982/A4984/A4985和A4988设备主要针对办公室自动化市场
  6. windows dc linux,active-directory – Linux AD集成,使用Windows Server 2012 DC时无法登录
  7. ReactNative简介、开发环境、调试、常用组件、useState状态、FlatList组件、SectionList组件、Platform 模块、定义样式、图片组件、触摸事件、打包apk发布版
  8. 大数据技术之kafka (第 3 章 Kafka 架构深入) Zookeeper 在 Kafka 中的作用
  9. OpenSessionInViewFilter源码分析
  10. 一道滴滴的产品面试题