无论是学习信号处理,仍是做图画、音视频处理方面的研讨,你永远避不开的一个内容,便是傅里叶变换和小波。可是这两个东西其实并不简单弄懂,或许说其实是十分笼统和不流畅的!
彻底搞懂傅里叶变换和小波,你至少需求知道哪些准备常识?主页君从今日开端就将经过一些列文章告知你他们之间的来龙去脉!本节是悉数系列文章的第一节——总纲,日后咱们也将依照这个思路一点一点叙述一切的常识。需求阐明的是,本文首要面向核算机专业或许电子信息专业的读者,为此咱们将尽量采纳一些十分十分根底的常识来协助你了解。所以,标题里边讲的“彻底搞懂”并非是从物理学或许纯数学的视点去讲的,由于傅里叶变换开端是法国科学家傅里叶在研讨物理学(首要是热力学)时发明出来的一套理论,假如要从这个视点去说“彻底搞懂”,必定得需求许多物理常识、复变实变剖析,之类的像天书相同的东西。这样牵扯下去,其实许多关于学核算机或许学电子信息的人来说,其实彻底没有必要。咱们要做的,便是使用你现已把握的常识来构建整个系统!
金庸在他的武侠小说《天龙八部》里刻画了一个吐蕃国师的人物形象——“鸠摩智”。鸠摩智练武急于求成,为了在短期内多炼成几门功夫,往往根底不打牢,就强行修炼上乘武学。用道家的小无相功催动少林的七十二绝技,看似威力无比,其实后患无穷。其实日常学习也是这样,假如上来就记住几个公式,然后开门见山地去啃傅里叶变换或许小波,其实也能做出点东西来,可是由于根底都是空的,所以内化的进程简直是开裂的,残缺的。无论是傅里叶变换仍是小波,它们的最基本理论悉数都是数学。仅仅大部分学生很难建立起它们之间的联络。咱们今日就从数学开端说起。
图中虚线框里的内容,都应该是在高等数学里必学的内容,这部分有啥不明白的,去问童校长应该最合适不过了。首要,你应该知道费马定理(这个很简单,说白了其实便是函数有极值的条件),经过费马定理,你能够证明罗尔定理,然后经过罗尔定理,你又能够证明拉格朗日中值定理,经过拉格朗日中值定理,你又能够继而证明柯西中值定理。证明柯西中值定理的含义在于,它能够被用来证明泰勒公式。泰勒公式当然是一个叫做泰勒的人提出来的,可是真实证明泰勒公式的人是柯西,由于柯西知道柯西中值定理,而要证明泰勒公式就需求用到柯西中值定理。泰勒公式在咱们这儿有两个用处,首要它能够用来证明欧拉公式,欧拉公式在傅里叶变换里边也是有必要要用到的。其次,经过泰勒公式能够得到幂级数的打开。这是一个先导,由于无论是小波打开,仍是傅里叶打开,假如你了解泰勒展式或许幂级数打开式,那么对应的就很简单解说,人们规划傅里叶展式和小波展式的初衷和意图了。高数里的级数首要学两种,除了幂级数以外,别的一个便是傅里叶级数。到这儿你所需求的高数常识就现已足够了。
图中黄色框图里的内容都是你在数字信号处理课程里应该学的。咱们在学傅里叶变换之前,必定要在高数里先学一个傅里叶级数,可是傅里叶级数和傅里叶变换有啥联系呢?说白了,他们的实质是相同相同的,虽然它们各自公式的表达式如同不同还很大。经过傅里叶级数公式,其实你做一些化简和变量替换(关于这部分内容,假如读者有爱好,主页君后续能够给出详细证明进程),傅里叶级数就变成傅里叶变换了,当然是接连的。然后你依据数字信号处理里边学的采样定理,就能处处傅里叶变换了,这便是DFT!可是DFT有个问题,假如按公式核算,功率太低,实用价值不高,后来人们就发明晰一个快速算法,FFT!这一路下来,假如每一步,你都十分清楚,那你就现已算是对傅里叶变换了解的很到位了。
然后说说小波,小波彻底能够跟傅里叶变换对比着来了解,并且事实上,在小波呈现之前,人们先发明出了一种叫短时傅里叶变换的东西,这能够被认为是二者之间的桥梁。当然,这部分内容,你不知道也没联系,你乃至能够以泰勒公式和幂级数为起点来了解小波。小波级数打开对应的是傅里叶打开,接连小波对应接连傅里叶变换,DWT对应DFT。这些都十分简单了解。相同,人们(其实首要是Mallat)也开发了一种小波的快速算法,FWT。FWT就像FFT在傅里叶变换中的位置。要了解FWT,你需求知道两个根底常识,一个叫做MRA,即多分辨率剖析,学习MRA关于了解小波也十分有含义。由于MRA是构建小波的一种办法。别的一个你有必要要知道的东西叫做“子带编码”或许子带分化。
要想了解子带分化,你就有必要知道QMF,即正交镜像滤波器,而QMF是多采样率信号处理里边的重要内容。所以你有必要有多采样率信号处理常识的根底,而多采样率信号处理的根底又是数字信号处理!别的,子带编码还有一个理论根底,或许说,子带编码为啥被证明有用,这就有必要要知道率失真理论的有关定论。率失真理论又是信息论的重要组成部分。所以,最终这条线路上,你的学习头绪应该是从信息论动身的(其实首要是互信息和率失真方面的内容),然后才是信号处理,然后是多抽样率处理,然后是子带编码和QMF,这些你都懂了之后,FWT就太Easy了!当然,你直接就学FWT的算法,而不去管它到底是怎样来的,也是能够的,仅仅就像我之前说的,你的根底基本上都是空的,你学了也仅仅学个招式,内功心法简直不会,所以再往上走可能会遇到许多困难。
任何一门学科或许常识开展到现在少说都是几十年了,让咱们在短短个把月之内就学完,其实很不简单。所以看起来自己要知道的东西实在太多了,而学习的时刻又是这样的有限。可是也没办法,楼宇要盖的越高,地基就势必要打得越深。
别的:弥补一点,后续在详细代码实现时,咱们选用的言语C++,在Visual C++下完结。