zoukankan      html  css  js  c++  java
  • 小波变换教程(六)

    译文转:https://blog.csdn.net/alihouzi/article/details/45190303

    原文转:http://users.rowan.edu/~polikar/WTpart1.html

           那么,我们怎样把这些时间信息加到频率图中去呢?让我们更进一步的看一下这个问题。

            傅立叶变换有什么缺点?它不适用于非平稳信号。让我们想一下这个问题:我们能不能假定部分非平稳信号是稳定的呢?

            答案是肯定的。

            看上面第三幅图,每250个的时间段内,信号都是平稳的。

            你可能会问下面这个问题?

           如果我们假定信号为平稳的那段时间足够短呢?

            如果它确实很短,那么它就太短了,我们用它什么也干不了,实际上,这也很正常。我们要遵守物理定律来玩这个游戏。

            如果我们假定信号为稳定的这个时间段很短,那么我们可以从窄窗中来观察信号,窗口要窄到我们从窗里看到的信号确实是平稳的。

            研究者们最终确定的这个数学逼近,作为傅立叶变换的一个修改版本,叫做短时傅立叶变换(STFT)

            短时傅立叶变换和傅立叶变换只有一个微小的不同点。在短时傅立叶变换中,信号被分为足够小的片段,这些片段的信号都可以看成平稳信号。基于这个原因,就需要一个窗函数w。窗的宽度必须和信号片段的宽度相等,这样它的平稳性才有效。

            这个窗必须位于信号的最前端,即窗函数必须在时刻存在。让我们假定窗宽度是T,位于t=0秒,在t=0时刻,窗函数与第一个T/2秒重叠(我假定所有的单元都以秒为单位)。然后把窗函数和信号想乘,通过这一步,使用合适的窗口权重,只有前面T/2秒的信号被选出来了,(如果窗口为矩形窗,幅值为1,那么乘积与原始信号相等)。然后这个乘积就可以看成另外一个信号,对它再做傅立叶变换。换句话说,就像对其他任何信号做傅立叶变换一样,对这个乘积也做傅立叶变换。

            变换的结果是前面T/2秒时间内的傅立叶变换。如果这部分的信号是稳定的,那么变换结果就是对前面T/2秒内信号的真实频率响应。

            接下来,把这个窗移到一个新位置(假定信号为t1秒),与信号相乘,然后做变换。重复这个过程,直到到了t1信号的时刻。

            接下来这个定义概括了上面讲的所有内容:

                                                                                     图 2.6

            请仔细看上面的公式,x(t)是信号本身,w(t)是窗函数,*是向量共轭。如同你在公式中看到的,短时傅立叶变换只不过是对乘了一个窗函数的信号做傅立叶变换。

    对于每个t'f,都会计算一个新的STFT系数(更正:STFT括号中的“ t”应该为“ t'”。我会尽快更正。我刚刚发现我输入了错误的字型)。

     下面这幅图有助于你更好的理解这一点:

          

      彩色的类似高斯函数的是窗函数。t=t1’时刻的窗为红色,t=t2’时刻的窗为蓝色,t=t3’ 的窗为绿色。这些都是对不同时刻的不同的傅立叶变换的响应。因此,我们就得到了信号的一个时频表示(TFR)。

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

                                                             图2.8

    在此信号中,在不同时间有四个频率分量。0到250 ms的间隔是300 Hz的简单正弦曲线,其他250 ms的间隔分别是200 Hz,100 Hz和50 Hz的正弦曲线。显然,这是一个非平稳信号。现在,让我们看一下它的STFT:

          

                      图2.9

    正如所期望的,这个二维图像(加上幅度则为三维),x和y轴分别代表时间和频率。忽略图中坐标轴的个数,因为结果被归一化处理了,我们现在对这些不感兴趣。只是查看时频表示图的形状。

    首先,图像以频率坐标轴的中线为轴对称。还记得吗,信号的傅立叶变换也是对称的,虽然没有画出来。因为短时傅立叶变换只不过是傅立叶变换的一个加窗版本,那么就不要惊讶于短时傅立叶变换结果也是对称的。对称部分对应负的频率,这时一个很奇怪的概念,也很难理解,幸运的是,它并不重要。这幅图足够说明短时傅立叶变换和傅立叶变换都是对称的。前面的四个尖峰才是我们要关注的。

    注意到四个尖峰分别是对四个频率分量的响应。还要注意到,不像傅立叶变换,这四个尖峰在时间轴上位于不同的位置。原始信号的四个频率分量也都出现在不同的时间段内。

     现在我们有了信号的一个时频表示。我们不仅知道信号中都有什么频率分量,还知道各自出现的时刻。

      这相当伟大,不是吗?

    不过,也不能全这么说!

    你可能迷惑了,既然短时傅立叶变换给出了信号的时频表示,为什么我们还需要小波变换?上面所举的例子中并没有明显体现出短时傅立叶变换的问题。当然,要举比较典型的例子才能更好的解释概念嘛。

    短时傅立叶变换的问题是它的解又会归结到海森堡测不准原理上。这个原理最初是应用在移动粒子的动量和位置的测量上,也可以被用在信号的时频分析上。简单的说,这个原理揭示了我们不能获取信号绝对精确的时频表示。举例来说,我们不知道在某个瞬间哪个频率分量存在。我们知道的是在一个时间段内某个频带的分量存在,这是一个有关分辨率的问题。

    短时傅立叶变换中出现的问题,在窗函数宽度上也存在。用正确的术语来说,这个窗函数的宽度作为窗口的支撑。如果窗口宽度很窄,那么就是一个密集支撑。在小波世界里会经常用到这个术语,后文将会看到。

    下面说明了整个过程:

      还记得傅立叶变换在时域内不存在分辨率的问题,例如我们确切的知道哪个频率分量存在。相应的在时域内也不存在时间分辨率的问题,因为我们知道每一时刻信号的确切值。相反地,傅立叶变换中的时间分辨率和时域中的频率分辨率都为0,因为没有关于它们的信息。因为在傅立叶变换中时我们用的窗口是它的核心窗—ejwt函数,这个函数存在的区间为从负无穷到正无穷,所以傅立叶变换能够给出完美的频率分辨率。但是在短时傅立叶变换中,我们用的窗口长度有限,它仅仅覆盖了信号的一部分,因此导致了频率分辨率较差。我在这里说频率分辨率差,意思是我们不能确切的知道信号中哪些频率分量存在,我们只知道哪些频段的分量存在。

      傅立叶变换中用到的内核窗函数允许我们获得一个完美的频率分辨率,因为窗函数本身具有无限宽度。短时傅立叶变换用到的窗宽度长度有限,因此不能获得完美的频率分辨率。你可能会问,我们为什么不像傅立叶变换用无限长的窗口一样,而在短时傅立叶变换中却用有限长的窗口进行分析呢?那么,你浪费了所有的时间,你可能还停留在傅立叶变换那里,思路还没有到达短时傅立叶变换这里来。为使长话短说,我们面临下面这样一个困境:

     如果我们有了一个无限长的窗口,然后做傅立叶变换,会得到完美的频率分辨率,但是结果中不包含时间信息。更深一步,为了获得信号的平稳性,我们必须要有一个宽度足够短的窗函数,在这个很短的时间内,信号时平稳的。窗口越短,时间分辨率越高,信号的稳定性越高,但是频率分别率却越来越低。

            窄窗=>高时间分辨率,低频率分辨率

            宽窗=>高频率分辨率,低时间分辨率

     为了更明白的理解这个问题,让我们看一些例子:我现在有四个不同宽度的窗函数,我们将一一用这些窗函数做傅立叶变换,看看到底发生了什么:

            我们用到的窗函数是一个简单的高斯函数,如下式:

                   w(t)=exp(-a*(t^2)/2);

       其中,a代表窗口宽度,t代表时间。接下来这幅图显示了四个用宽度a来决定的不同支撑域的窗函数。请忽略a的值,因为用来计算的时间间隔同时决定了函数。注意四幅图的宽度。上面这个例子中的时间以秒为单位,a=0.001,接下来显示用不同的窗口进行短时傅立叶变换后的图形。

     

    图2.10

       首先看第一个最窄的窗口。我们期望的结果是变换结果应具有好的时间分别率和差的频率分辨率。

                      图 2.11

    上面的图显示了快速傅立叶变换结果。为了以一个更好的角度看图,我们的图以鸟瞰图显示。注意到四个尖峰在时间上被准确的区分开了,还要注意,在频率轴,每个尖峰都横跨了一个频率带,而不是对应一个确切的频率值。现在让我们看看更宽一点的窗函数,看第三幅图(第二幅图在第一个例子中已经展示过了)

                    图2.12

    注意到,不像第一幅图,在时间轴上,四个尖峰没有很好的的区分开来。但是在频域内分辨率却明显提高了。现在让我们看看最宽的窗口宽度,看看到底发生了什么:

                     图2.13

     现在任何人都不应该再赶到惊奇了,因为本来我们就知道时间分辨率会超级差(我的意思是差到不能再差)

    这些例子应该展示了短时傅立叶变换存在的分辨率问题。每个将要用到短时傅立叶变换的人都会面临这个问题。用什么样的窗函数?用窄窗可以得到较高的时间分辨率,但是较低的频率分辨率,用宽窗仍然也会面临稳定性的问题。问题集中到如何选择窗函数上来了。这个窗要能够在整个分析过程中一直可用。答案当然是只与应用相关:如果原始信号中的频率分量已经被区分出来了,那么我们就可以牺牲一部分频率分辨率来追求更高的时间分辨率。但是如果情况不是这样的话,那么选择一个好的窗函数比选择一个值得投资的股票更难。

      现在,你应该理解为什么要提出小波变换了吧?我们后文中将会看到,小波变换在一定程度上解决了这个分辨率的问题。

            第二大部分结束了。教程的第三部分主要讲连续小波变换。如果到目前为止你还没有碰到什么麻烦,上面讲的东西你都能理解,那么你可以开始这个理解小波变换基本理论的终极挑战了。

  • 相关阅读:
    日志模块
    模块介绍3
    模块介绍2
    模块介绍
    迭代器
    Python装饰器续/三元表达式/匿名函数
    Python装饰器详解
    LATEX LIAN XI
    BELLMAN 最短路算法
    B阿狸和桃子的游戏
  • 原文地址:https://www.cnblogs.com/sggggr/p/11867311.html
Copyright © 2011-2022 走看看