本篇为《信号处理》系列博客的第三篇,该系列博客主要记录信号处理相关知识的学习过程和自己的理解,方便以后查阅。

文章原地址:《小波变换(wavelet transform)的通俗解释(一)》

小波变换(wavelet transform)的通俗解释

  • 小波变换
  • 一、基
  • 二、内积
  • 三、傅立叶的缺点
  • 三、短时傅立叶变换(Short-time Fourier Transform,STFT)
  • 四、小波变换
  • 五、小波的深入
  • 六、小波的应用

小波变换

小波,一个神奇的波,可长可短可胖可瘦(伸缩平移),当去学习小波的时候,第一个首先要做的就是回顾傅立叶变换(又回来了,唉),因为他们都是频率变换的方法,而傅立叶变换是最入门的,也是最先了解的,通过傅立叶变换,了解缺点,改进,慢慢的就成了小波变换。

主要的关键的方向是傅立叶变换、短时傅立叶变换,小波变换等,第二代小波的什么的就不说了,太多了没太多意义。

当然,其中会看到很多的名词,例如,内积,基,归一化正交,投影,Hilbert空间,多分辨率,父小波,母小波,这些不同的名词也是学习小波路上的标志牌,所以在刚学习小波变换的时候,看着三个方向和标志牌,可以顺利的走下去,当然路上的美景要自己去欣赏(这里的美景就是定义和推导了)。

一、基

傅立叶变换和小波变换,都会听到分解和重构,其中这个就是根本,因为他们的变化都是将信号看成由若干个东西组成的,而且这些东西能够处理还原成比原来更好的信号。

那怎么分解呢?那就需要一个分解的量,也就是常说的

基的了解可以类比向量,向量空间的一个向量可以分解在x,y方向,同时在各个方向定义单位向量e1、e2e1、e2e1、e2,这样任意一个向量都可以表示为a=xe1+ye2a=x_{e1}+y_{e2}a=xe1​+ye2​,这个是二维空间的基:

对于傅立叶变换的基是不同频率的正弦曲线,所以傅立叶变换是把信号波分解成不同频率的正弦波的叠加和,而对于小波变换就是把一个信号分解成一系列的小波

这里时候,也许就会问,小波变换的小波是什么啊?

定义中就是告诉我们小波,因为这个小波实在是太多,一个是种类多,还有就是同一种小波还可以尺度变换,但是小波在整个时间范围的幅度平均值是0,具有有限的持续时间和突变的频率和振幅,可以是不规则,也可以是不对称,很明显正弦波就不是小波,什么的是呢,看下面两个图就是:


当有了基,以后有什么用呢?

下面看一个傅立叶变换的实例:
对于一个信号的表达式为x=sin(2∗pi∗t)+0.5∗sin(2∗pi∗5∗t)x=sin(2*pi*t)+0.5*sin(2*pi*5*t)x=sin(2∗pi∗t)+0.5∗sin(2∗pi∗5∗t);

这里可以看到是他的基就是sinsinsin函数,频率是1和5,下面看看图形的表示,是不是感受了到了频域变换给人的一目了然。

基具有非冗余性,即基可以不是正交的;
基具有相关性,但若去掉其中任何一个,则不成为基,这一点也叫完备性;
基的表示有唯一性,即给定一族基对一个函数的表达是唯一的;

一般情况下基非正交,也称为为无冗框架(exact frame(Resize basis)),这个时候要表示信号可以将基正交化成唯一的正交基(对偶为其自身);
也可以求其对偶框架(dual frame),其对应了小波变换中的双正交情形!

信号可以依框架分解,然后用对偶框架重构。

若在基集里添加一些新的向量,并随意调整空间位置,则有可能成为框架

把函数与基或框架作内积,也可以说成是一种函数空间到系数空间的变换。

若某种变换后的能量(内积的平方和度量)仍然有一个大于0的上下界,才可以成为框架,由于框架的冗余性,所以系数的表达也不具有唯一性。

若上下界相等,则为紧框架,且界表示冗余度。
若上下界相等为且为1,称为pasval identity frame,此时不一定为正交基(想象把一组正交基中某一个拆成两个同方向的基之和,则pasval identity仍然成立),此时若加上基的长度均为1的条件,则框架退化为正交基

可能你会问我们用基来表示信号就行了啊,为什么还要框架呢?其实很多信号表示方法不能构成基,却能构成框架,如短时傅立叶变换中如要求窗函数满足基条件,则可推出该函数有很差的时频局部化性质(事实上退化为了傅立叶变换)。

二、内积

在Hilbert空间里看到这个东西,用来刻画两个向量的夹角,当内积为0时,两个向量正交。

下面这个公式是基本,经过变形后会用在推导中:

函数的内积为什么要这么定义?

这是线性空间内积概念的推广,你把一个函数看成一个无穷维向量即可。

如果两个向量的内积为0 ,就说他们是正交的。

如果一个向量序列相互对偶正交,并且长度都为1,那么就说他们是正交归一化的。

三、傅立叶的缺点

先列举出来缺点,然后再说明:

(1) Fourier分析不能刻画时间域上信号的局部特性

(2) Fourier分析对突变和非平稳信号的效果不好,没有时频分析

傅立叶变换傅立叶变换将函数投影到三角波上,将函数分解成了不同频率的三角波
这不能不说是一个伟大的发现,但是在大量的应用中,傅立叶变换的局限性却日趋明显
事实上在光滑平稳信号的表示中,傅立叶基已经达到了近似最优表示,但是日常生活中的信号却并不是一直光滑的,而且奇异是平凡的
傅立叶在奇异点的表现就着实让人不爽,从对方波的傅立叶逼近就可以看出来,用了大量不同频率的三角波去逼近其系数衰减程度相当缓慢,而且会产生Gibbs效应

其内在的原因是其基为全局性基,没有局部化能力,以至局部一个小小的摆动也会影响全局的系数。

实际应用中很需要时频局部化,傅立叶显然缺乏此能力了。
即使如此,由于其鲜明的物理意义和快速计算,在很多场合仍然应用广泛。

傅立叶变换在从连续到离散的情形是值得借鉴与学习的,大家都知道,时间周期对应频域离散,时间离散对应频域周期,时间离散周期对应频域离散周期

DFT其实是将离散信号做周期延拓然后做傅立叶变换再截取一个周期,反变换同样如此,所以DFT用的是块基的概念
这样如果信号两端的信号连接后不再光滑(即使两边都光滑),同样会在边界上产生大幅值系数(边界效应),延伸到图像中就是块效应。
当对信号做对称周期延拓后再做傅立叶变换得到的正弦系数全部为0,也就是任何对称函数可以写成余弦的线性组合,同样按照离散的思路构造得到的是离散块余弦基,即DCT变换
虽然DCT可以通过对称后周期延拓再变换减少了边界效应(两边信号接上了,但不一定平滑),但任不能消除块效应,尤其是图像变换中人为将图像分成8*8处理后块效应更加明显。
但是DCT很好的能量聚集效应让人惊奇,加之快速计算方法使它替代DFT成为图像的压缩的标准了很长时间(JPEG)。

上面一堆文字也许看的有点蒙,还是用图来说明:

  1. 第一个就是傅立叶变换是整个时域,所以没有局部特征,这个也是他的基函数决定的看图,同时如果在时域张有了突变,那么在频域就需要大量的三角波去拟合,这也是傅立叶变换性质决定的。



3. 第二个就是面对非平稳信号,傅立叶变换可以看到由哪些频域组成,但是不知道各成分对应的时刻是什么,也就是没有时频分析,看不出来信号频域随着时间变换的情况,反过来说就是,一个的频图对应好几个时域图,不知道是哪个,这个在实际应用中就不好了,看图:


做FFT后,我们发现这三个时域上有巨大差异的信号,频谱(幅值谱)却非常一致。尤其是下边两个非平稳信号,我们从频谱上无法区分它们,因为它们包含的四个频率的信号的成分确实是一样的,只是出现的先后顺序不同。

可见,傅里叶变换处理非平稳信号有天生缺陷。它只能获取一段信号总体上包含哪些频率的成分,但是对各成分出现的时刻并无所知。因此时域相差很大的两个信号,可能频谱图一样。

然而平稳信号大多是人为制造出来的,自然界的大量信号几乎都是非平稳的,所以在比如生物医学信号分析等领域的论文中,基本看不到单纯傅里叶变换这样naive的方法。

下图所示的是一个正常人的事件相关电位。对于这样的非平稳信号,只知道包含哪些频率成分是不够的,我们还想知道各个成分出现的时间。知道信号频率随时间变化的情况,各个时刻的瞬时频率及其幅值——这也就是时频分析

三、短时傅立叶变换(Short-time Fourier Transform,STFT)

有了缺点就要改进了,这里就出来了短时傅立叶变换,也叫加窗傅立叶变换,顾名思义,就是因为傅立叶变换的时域太长了,所以要弄短一点,这样就有了局部性。

定义:把整个时域过程分解成无数个等长的小过程,每个小过程近似平稳,再傅里叶变换,就知道在哪个时间点上出现了什么频率了。”这就是短时傅里叶变换。下面就是示意图:


时域上分成一段一段做FFT,不就知道频率成分随着时间的变化情况了吗!

可能理解这一点最好的方式是举例子。首先,因为我们的变换是对时间和频率的函数(不像傅立叶变换,仅仅是对频率的函数),它是二维的(如果加上幅度则是三维)。以下图所示的非平稳信号为例:


在这个信号中,在不同时刻有四个频率分量。0-250ms内信号的频率为300Hz,其余每个250ms的间隔的信号频率分别为200Hz,100Hz和50Hz。很明显,这是一个非平稳信号,让我们看一看它的短时傅立叶变换:用这样的方法,可以得到一个信号的时频图了:


图上既能看到10Hz, 25 Hz, 50 Hz, 100 Hz四个频域成分,还能看到出现的时间。两排峰是对称的,所以大家只用看一排就行了。

看着貌似解决了问题,好像有了局部性,但是这个名字叫做加窗傅立叶变换,那么这个窗要多大了呢?

窗太窄,窗内的信号太短,会导致频率分析不够精准,频率分辨率差。
窗太宽,时域上又不够精细,时间分辨率低。



下图对同一个信号(4个频率成分)采用不同宽度的窗做STFT,结果如右图。用窄窗,时频图在时间轴上分辨率很高,几个峰基本成矩形,而用宽窗则变成了绵延的矮山。但是频率轴上,窄窗明显不如下边两个宽窗精确。




所以窄窗口时间分辨率高、频率分辨率低,宽窗口时间分辨率低、频率分辨率高。

对于时变的非稳态信号,高频适合小窗口,低频适合大窗口。然而STFT的窗口是固定的,在一次STFT中宽度不会变化,所以STFT还是无法满足非稳态信号变化的频率的需求。

四、小波变换

真是千呼万唤才出来了,终于看见小波了啊。

这里先引入小波,回顾一下,然后再看看小波的优点,其实就是上面傅立叶缺点的解决。

对于加窗傅立叶变换让人头疼的就是窗口的大小问题,如果我们让窗口的大小可以改变,不就完美了吗?

答案是肯定的,小波就是基于这个思路,但是不同的是。STFT是给信号加窗,分段做FFT;而小波变换并没有采用窗的思想,更没有做傅里叶变换。

小波直接把傅里叶变换的基给换了——将无限长的三角函数基换成了有限长的会衰减的小波基。这样不仅能够获取频率,还可以定位到时间了~

这里就又回到了最开始的了。

这个基函数会伸缩、会平移(其实是两个正交基的分解)。
缩得窄,对应高频;伸得宽,对应低频。
然后这个基函数不断和信号做相乘。
某一个尺度(宽窄)下乘出来的结果,就可以理解成信号所包含的当前尺度对应频率成分有多少。于是,基函数会在某些尺度下,与信号相乘得到一个很大的值,因为此时二者有一种重合关系。那么我们就知道信号包含该频率的成分的多少。
如前边所说,小波做的改变就在于,将无限长的三角函数基换成了有限长的会衰减的小波基。效果如下图:

现在来看一下小波公式

从公式可以看出,不同于傅里叶变换,变量只有频率ω,小波变换有两个变量:尺度a(scale)平移量 τ(translation)。尺度a控制小波函数的伸缩,平移量 τ控制小波函数的平移。尺度就对应于频率(反比),平移量 τ就对应于时间。如下图

当伸缩、平移到这么一种重合情况时,也会相乘得到一个大的值。这时候和傅里叶变换不同的是,这不仅可以知道信号有这样频率的成分,而且知道它在时域上存在的具体位置

而当我们在每个尺度下都平移着和信号乘过一遍后,我们就知道信号在每个位置都包含哪些频率成分。

看到了吗?有了小波,我们从此再也不害怕非稳定信号啦!从此可以做时频分析啦!

  1. 解决了局部性

  2. 解决时频分析
    做傅里叶变换只能得到一个频谱,做小波变换却可以得到一个时频谱
    时域信号:

    傅立叶变换结果:

    小波变换结果:

五、小波的深入

上面那么多,也就是走进小波的大门,具体的我们还要学习子空间、多分辨率,母小波的变换,如何去构造想要的小波函数,然后还有离散小波变换,正交小波变换,二维小波变换,小波包的应用(这里没有介绍可以自己看资料)。好像还有很多要学习的。

这里先深入一下,父小波和母小波,多分辨率分析,了解一下伸缩和平移。

任何小波变换的基函数,其实就是对母小波和父小波缩放和平移的集合。首先要看的就是多分辨率分析。

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

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

其中的ψj,k(t)ψ_{j,k}(t)ψj,k​(t)就是小波级数,这些级数的组合就形成了小波变换中的基basis。和傅立叶级数有一点不同的是,小波级数通常是orthonormal basis(标准正交基),也就是说,它们不仅两两正交,还归一化了。

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

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

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

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

其中ψ(t)ψ(t)ψ(t)是母小波,φ(t)φ(t)φ(t)是父小波。需要提醒一点的是,这个正交纯粹是为了小波分析的方便而引入的特性,并不是说小波变换的基就一定必须是正交的。但大部分小波变换的基确实是正交的,所以本文就直接默认正交为小波变换的主要性质之一了。

引入这个父小波呢,主要是为了方便做多解析度分析(multiresolution analysis, MRA)

说到这里,你的问题可能会井喷了:好好的为什么出来一个父小波呢?这个scaling function是拿来干嘛的?它背后的物理意义是什么?waveletfunction背后的物理意义又是什么?这个多解析度分析又是什么呢?

不急,下面,我们围绕一个例子来巩固一下前面的知识,同时再引出新的特性。

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

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

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

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

同理,我们可以一直这样推广下去做scale,得到4n,8n,…….下的basis function。

当然在这个例子里,我们信号长度就是8,所以做到4n就够了。

但推广来说,就是这种scaling对母小波的作用为,2j/2ψ(2jn)2^{j/2}ψ(2^jn)2j/2ψ(2jn)这是归一化后的表示形式。

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

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

这里的kkk是可以看成时域的参数,因为它控制着小波基时域的转移,而jjj是频域的参数,因为它决定了小波基的频率特性。

看到这里,你应该会感觉很熟悉,因为这里的平移和变换本质和刚才对scaling function的平移变换是一模一样的。

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


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

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

话说在数学定义中,有一种空间叫Lebesgue空间,对于信号处理非常重要,可以用Lp(R)L^{p(R)}Lp(R)表示,指的是由p次可积函数所组成的函数空间。
我们在小波变换中要研究的信号都是属于L2(R)L^{2(R)}L2(R)空间的,这个空间是R上的所有处处平方可积的可测函数的集合。

这样就等于对信号提出了一个限制,就是信号能量必须是有限的,否则它就不可积了。
小波变换的定义都是基于但不限于L2(R)L^{2(R)}L2(R)中的信号的
总之,小波变换研究中所使用的信号基本都是平方可积的信号,但其应用不限于这种信号,就行了。

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


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


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

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


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


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


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

当然,如果这个scaling function只是用来代表一个子空间的,那它的地位也就不会这么重要了。刚才我们提到,这个嵌套空间序列有一个性质:
f(t)∈Vj⇔f(2t)∈Vj+1f(t)∈V_j⇔f(2t)∈V_{j+1} f(t)∈Vj​⇔f(2t)∈Vj+1​

这就是这个函数,如果你对它频域的放大或缩小,它就会相应移到下一个或者上一个空间了。

这个性质就有意思了,它代表什么呢?对于任何一个包含V0V_0V0​的更上一层的空间来讲,他们的基都可以通过对scaling function做频域的scale后再做时域上的整数变换得到!推广开来就是说,当


我们有

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


到这里,我们就明白这些个子空间和那个凭空冒出来的scaling function的作用了。

scaling的构建这些不同的子空间的基础,当jjj越大的时候,每一次你对频率变换后的scaling function所做的时域上的整数平移幅度会越小,这样在这个jjj子空间里面得到的f(t)f(t)f(t)表示粒度会很细,细节展现很多。反之亦然。

通俗点说,就是对scaling function的变换平移给你不同的子空间,而不同的子空间给你不同的分辨率,这样你就可以用不同的分辨率去看目标信号。

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


其中的h(n)h(n)h(n)是scaling function的系数,也叫做scaling filter或者scaling vector,可以是实数,也可以是虚数。
2\sqrt{2}2​是为了维持norm为1的。
看,在这个公式里,我们就把属于V0V_0V0​的函数用V1V_1V1​的基表示出来了。
同理,我们可以循环如此,把属于V0V_0V0​的φ(t)φ(t)φ(t)在V2,V3,…,VnV_2,V_3, …, V_nV2​,V3​,…,Vn​中表示出来。

这些方程就是MRA equation,也叫refinement equation,它是scaling function理论的基础,也是小波分析的基础之一。

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

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


对于更加finer的scale:


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

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


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

继续往下看:


这个相比V0V_0V0​更加finer的子空间,代表着这样一种信号,它从1-4是常量,从5-8是另一个常量。

同理我们有:

V2V_2V2​代表的信号,是分别在(1,2); (3,4); (5,6); (7,8)上有相同值的信号。
那么V3呢?则表示任何信号,因为对于V3来讲,任何一个时间刻度上的值都可以不一样。

而且现在,我们也可以通过上面的一些scaling functions的波形验证了之前提到的多解析度分析中的一个核心性质,那就是:


我们之前讲了一堆多解析度的理论,但直到现在,通过这些图形化的分析,我们可能才会真正理解它。

那好,既然我们有一个现成的信号,那就来看看,对这个信号作多解析度分析是啥样子的:

你看,在不同的子空间,对于同一个信号就有不同的诠释。诠释最好的当然是V3V_3V3​,完全不损失细节。

这就是多解析度的意义。我们可以有嵌套的,由scaling function演变的basis function集合,每一个集合都提供对原始信号的某种近似解析度越高,近似越精确

说到这里,可能你对scaling function以及多解析度分析已经比较理解了。
但是,我们还没有涉及到它们在小波变换中的具体应用,也就是还没有回答刚才那个问题:凭空插了一个scaling function到小波basis组合中干嘛

也就是说,我们希望理解scaling function是怎么和小波函数结合的呢,多解析度能给小波变换带来什么样的好处呢。这其实就是是小波变换中的核心知识。理解了这个,后面的小波变换就是纯数学计算了。

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


看出什么规律了么?多看几次这三个图,你会惊讶地发现,在V0V_0V0​中的scaling function和wavelet function的组合,其实就是V1V_1V1​中的basis!

继续这样推导,V1V_1V1​本来的的basis是:


他们的组合,本质上也就是V2V_2V2​的basis(参考图2)。

你继续推导下去,会得到同样的结论:在scale j的wavelet function,可以被用来将VjV_jVj​的basis扩展到V(j+1)V_{(j+1)}V(j+1)​中去这是一个非常非常关键的性质,因为这代表着,对任何一个子空间VjV_jVj​,我们现在有两种方法去得到它的orthonormal basis

  1. 一种就是它本来的basis φj,kφ_{j,k}φj,k​,对任意k。
  2. 第二种就是它上一个子空间的basis φj−1,kφ_{j-1,k}φj−1,k​,对任意k,以及上一级子空间的wavelet function ψj−1,kψ_{j-1,k}ψj−1,k​,对任意k。

第二种选择能给我们带来额外的好处,那就是我们可以循环不断地用上一级子空间的scaling function以及wavelet function的组合来作为当前子空间的基。

换句话说,如果针对V3V_3V3​这个子空间,它实际上就有四种不同的,但是等价的orthonormal basis:

  1. 本级(V3V_3V3​)的scaling function basis set
  2. 上一级(V2V_2V2​)的scaling function + wavelet function;
  3. 上上一级(V1V_1V1​)的scaling function + 上上一级(V1V_1V1​)的wavelet function + 上一级(V2V_2V2​)的wavelet function;
  4. 上上上一级(V0V_0V0​)的scaling function + 上上上一级(V0V_0V0​)的wavelet function + 上上一级(V1V_1V1​)的wavelet function + 上一级(V2V_2V2​)的wavelet function:

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

那为什么我们最后选定的是这种选取方式呢?
实际上,刚才介绍的这个性质已经告诉我们,对于任何的scalej0scale j_0scalej0​,我们都可以给我们的signal space找到一组orthonormal basis,这个basis是通过组合scalej0scale j_0scalej0​上的scaling function以及所有在scalej,j>=j0scale j,j>=j_0scalej,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!

对小波变换的基础知识,我们就讲到这里。需要注意的是,这只是小波变换最基本最基本的知识,但也是最核心的知识。
看完这里其实就是回到了最开始的介绍:小波变换是把信号分解成一系列的小波(经过原始小波伸缩和平移得到的),这里就告诉了我们伸缩和平移

六、小波的应用

小波是多分辨率理论的分析基础。
而多分辨率理论与多种分辨率下的信号表示和分析有关,其优势很明显–某种分辨率下无法发现的特性在另一个分辨率下将很容易被发现。
从多分辨率的角度来审视小波变换,虽然解释小波变换的方式有很多,但这种方式能简化数学和物理的解释过程。

对于小波的应用很多,对于图像,要知道量化级数决定了图像的分辨率,量化级数越高,图像越是清晰,图像的分辨率就高。

例一,哈尔小波图像分解

例二, 小波去噪平滑


例三, 小波的边缘检测

小波变换(wavelet transform)的通俗解释相关推荐

  1. 【图像处理】图像离散小波变换(Discrete Wavelet Transform)及python代码实现

    Motivation 看到有论文用到了图像的Haar Discrete Wavelet Transform(HDWT),前面也听老师提到过用小波变换做去噪.超分的文章,于是借着这个机会好好学习一下. ...

  2. 【小波变换】离散小波分解Discrete Wavelet Transform

    此篇博客记录自学离散小波分解的相关内容,以后若有更多理解在此篇更新. 一. 为什么需要离散小波分解    除离散变换外,还有连续小波分解,通过改变分析窗口大小,在时域上移动窗口和基信号相乘,最后在全时 ...

  3. 小波变换(wavelet transform,WT)

    小波变换 小波变换介绍 小波变换的优势 小波变换介绍 小波变换字面理解:专用于小的波形信号处理,可能有非常好的效果. 小波变换(wavelet transform,WT)是一种新的变换分析方法,它继承 ...

  4. 双树复小波变换Dual-Tree Complex Wavelet Transform在信号处理中的应用

    本文展示了双树复小波变换 (Dual-Tree Complex Wavelet Transforms,DTCWT) 在信号.图像和轴承故障诊断方面的应用. DTCWT 为两个独立的两通道滤波器组,在实 ...

  5. 傅立叶分析和小波分析之间的关系(通俗解释)

    从傅里叶变换到小波变换,并不是一个完全抽象的东西,可以讲得很形象.小波变换有着明确的物理意义,如果我们从它的提出时所面对的问题看起,可以整理出非常清晰的思路. 下面我就按照傅里叶–>短时傅里叶变 ...

  6. 循环神经网络(RNN)原理通俗解释

    循环神经网络(RNN)原理通俗解释 1.RNN怎么来的? 2.RNN的网络结构及原理 3.RNN的改进1:双向RNN 4.RNN的改进2:深层双向RNN 4.1 Pyramidal RNN 5.RNN ...

  7. 协方差、相关系数---通俗解释

    一.协方差的意义 学过概率统计的孩子都知道,统计里最基本的概念就是样本的均值,方差,或者再加个标准差.首先我们给你一个含有n个样本的集合,依次给出这些概念的公式描述,这些高中学过数学的孩子都应该知道吧 ...

  8. Fleury (弗罗莱) 算法通俗解释

    Fleury (弗罗莱) 算法通俗解释 1.定义 2.举例说明 图2为连通图G,现利用Fleury算法求它的欧拉通路.(注意区分:欧拉通路.欧拉回路) 其中一种欧拉通路如下:4 5 8 7 6 8 9 ...

  9. 依赖注入通俗解释_我如何向团队解释依赖注入

    依赖注入通俗解释 最近,我们公司开始开发一个新的基于Java的Web应用程序,经过一些评估过程,我们决定使用Spring. 但是许多团队成员并不了解Spring和Dependency Injectio ...

最新文章

  1. 输出一个为递增排序数组的旋转数组中的最小元素——8
  2. linux权限提升,Linux权限提升
  3. 遥感、地理空间数据、全国基础数据下载网站大全汇总
  4. WPF MVVC 基础 - 父子窗体
  5. MySQL高级-MySQL查询缓存优化
  6. selenium+python学习总结-mac
  7. 常见压缩/解压缩及打包命令
  8. 从业16年,经历了这7个数据仓库的变化,总结出了这份干货
  9. bzoj 3039: 玉蟾宫(悬线法)
  10. python 量化模型_量化策略 | Python tqsdk — GhostTrader模型!(附代码)
  11. 微信点餐 创建订单报外键错误
  12. 头条搜集的Redis视频教程
  13. 实对称矩阵可对角化证明
  14. 机器学习面试150题:不只是考SVM xgboost 特征工程
  15. HTML背景图片设置
  16. Blender几个简单建模
  17. 小凯的疑惑(Noip 提高组 2017 d1 1)+[USACO4.1]麦香牛块Beef McNuggets
  18. [LOJ#6198]谢特[后缀数组+trie+并查集]
  19. 开启FTP的21端口
  20. 安卓 获取rtsp流 截屏_安卓星雨视频+星火电视盒子版+安卓文件闪传+安卓截屏大师...

热门文章

  1. chat聊天机器人调研资料汇总
  2. 画思维导图的三招十八式
  3. 完美世界游戏客户端程序面试
  4. 大话设计模式之装饰模式(python实现)
  5. 人在国外能买阿里云服务器吗?
  6. mac系统时间自动校准仍然不准确修复方式
  7. MVC5项目发布到IIS
  8. 利用QT实现瀑布图、Lofar谱图、色谱图,热力图(二)
  9. Virgo Tool安装及Virgo服务器配置
  10. 无限宝客户端服务器版本号不匹配,无限宝客户端安装问题