zoukankan      html  css  js  c++  java
  • 小波变换网文精粹:小波:看森林,也看树木(二)

    英文原名:Wavelets: Seeing the forest and the trees

    转自:http://yswhu.bokee.com/viewdiary.10391865.html

    二、改变现实(Transforming Reality)

        小波分析允许研究者们去隔离和操作隐藏在众多数据之中的模式的特殊类型,我们的眼睛能以同样的方法在森林中挑出树木,或者我们的耳朵能在交响曲中分辨出笛声。理解小波是怎样做这个的一种方法是开始在两种不同声音之间,比如叉子的音调和人声,找出不同点,之后敲打叉子,你会听到一种持续很长时间的纯音调。在数学理论中,这样的音调称为频率局部化,它由单个无更高频率音调的音符组成。相比之下,一个人说的话仅仅持续一秒钟,因此称为时间域局部化,它在频率域里没有局部化是因为说的话不是一个单音调,而是有许多不同频率的音调结合在一起的音调。

            在19世纪,数学家认为现实中的叉子音调是完美的,这个理论就是著名的傅立叶分析。Jean Baptiste Joseph Fourier, 一位法国数学家,在1807年声称任何反复波形(或者周期函数),像叉子发出的声波,能被一个无限的各种频率的正弦波和余弦波之合来表示。

            傅立叶理论的一个熟悉阐述是在音乐中发生的。当时一位音乐家演奏一个音符,他创造了一个不规则形状的声波,同样形状的波,只要音乐家持续演奏这个音符会不断重复。因此,通过傅立叶,这个音符被分解成正弦波与余弦波之和。最低频率的波称为这个音符的基频,最高频率的波称为泛音(overtones),比如,A音符在小提琴或长笛上演奏,就有一个周期为440HZ的基频和一个周期为880HZ、1320HZ等等的泛音,即使用小提琴和用长笛演奏同一音符,它们听起来也会不同,因为它们的泛音有不同的强度或幅度。正如在20世纪60年代音乐合成家阐述的一样,小提琴或长笛的一个信服的模仿能通过重新合并合适幅度的纯正弦波来完成。当然,这是在1807年傅立叶所预测到的。

            之后数学家们把傅立叶思想扩展到非周期函数(或波形),它们会随着时间不断改变,并不是重复同样的形状。最现实的波形是这样的类型:一辆摩托车先加速,然后减速,不断往复这样发出的声音。在图像中也是一样,在重复和不重复之间的区别是重要的,一个重复的模式可能被视为纹理或背景,而不重复的会被看作对象而被挑选出来。周期性的或重复的波由一系列离散的泛音组成,它们能被用于表示一幅图像中的重复的模式。非周期特征涉及到更多的复杂的频率谱,称为傅立叶变换,正如太阳光能被分离成不同颜色的光谱。The Fourier transform portrays the structure of a periodic wave in a much more revealing and concentrated from than a traditional graph of a wave would. 举例来说,摩托车发出的声音在傅立叶变换中,在一个特定的频率下会显示出一个峰值。

            傅立叶变换一直在被关注。在19世纪,傅立叶在物理学和工程学上解决了许多问题。它的主导地位使得科学家们和工程师们把它作为分析任何现象的完美方法。这个普遍看法迫使了一个对这个方法的封闭检查。结果在20世纪,数学家、物理学家和工程师发现了傅立叶的缺陷,即傅立叶变换在重造瞬间信号和有突然变化的信号时存在困难,比如说出的话或轻敲鼓的声音。音乐合成家仍然不能匹配音乐厅里小提琴家的演奏,因为小提琴家的演奏含有暂态的特征,比如弓与弦的接触,这些用正弦波很难表示。

            这个问题里面的原理能有著名的Heisenberg Indeterminacy Principle来阐述。在1927年,物理学家Werner Heisenberg认为从理论上讲一个物体的位置和速度不能同时被精确地测量。用信号处理来说,意思是在一个信号要同时知道某精确频率和该频率发生的精确时刻是不可能的。为了知道它的频率,信号必须按时延拓,反之亦然。在音乐形式里,意思是任何有短暂持续时间的信号必须有一个复杂的频谱,它由各种各样的正弦波组成。反过来说,任何由一些正弦波简单合成的信号必须在时间域里有复杂的呈现。因此,我们不能期望用叉子的管弦乐来重造鼓发出的声音。

    PS:这是一篇很好的小波方面的科普文章,译文也很好,译者联系不上,如有版权问题,请联系博主。

  • 相关阅读:
    空值判断(is not null)
    http协议相关面试题
    Linux基本面试题。(感觉也就这几个了)
    1、了解django运行流程
    python笔试常见题
    selenium中一些可能用到的js操作
    元素判断
    二次封装
    关于在阿里云上面安装mysql遇到的一些问题。
    linux常用的一些基本命令
  • 原文地址:https://www.cnblogs.com/sggggr/p/11941549.html
Copyright © 2011-2022 走看看