![a4fc92de42ae2c03d04f15f03d63a1e9.png](https://img-blog.csdnimg.cn/img_convert/a4fc92de42ae2c03d04f15f03d63a1e9.png)
声明:该篇文章转自csdn,原始博主已经找不到了,在这里给出转载博主地址,如有侵权,请私信我删除。
https://blog.csdn.net/liusandian/article/details/52472847blog.csdn.net最近一直想看一看小波变换和Fourier变换的过程,从原理上通透,发现这篇好文。
要讲小波变换,我们必须了解傅立叶变换。要了解傅立叶变换,我们先要弄清楚什么是”变换“。很多处理,不管是压缩也好,滤波也好,图形处理也好,本质都是变换。变换的是什么东西呢?是基,也就是basis。如果你暂时有些遗忘了basis的定义,那么简单说,在线性代数里,basis是指空间里一系列线性独立的向量,而这个空间里的任何其他向量,都可以由这些个向量的线性组合来表示。那basis在变换里面啥用呢?比如说吧,傅立叶展开的本质,就是把一个空间中的信号用该空间的某个basis的线性组合表示出来,要这样表示的原因,是因为傅立叶变换的本质,是。小波变换自然也不例外的和basis有关了。再比如你用Photoshop去处理图像,里面的图像拉伸,反转,等等一系列操作,都是和basis的改变有关。
既然这些变换都是在搞基,那我们自然就容易想到,这个basis的选取非常重要,因为basis的特点决定了具体的计算过程。一个空间中可能有很多种形式的basis,什么样的basis比较好,很大程度上取决于这个basis服务于什么应用。比如如果我们希望选取有利于压缩的话,那么就希望这个basis能用其中很少的向量来最大程度地表示信号,这样即使把别的向量给砍了,信号也不会损失很多。而如果是图形处理中常见的线性变换,最省计算量的完美basis就是eigenvector basis了,因为此时变换矩阵T对它们的作用等同于对角矩阵( Tv_n = av_n,a是eigenvalue )。总的来说,抛开具体的应用不谈,所有的basis,我们都希望它们有一个共同的特点,那就是,容易计算,用最简单的方式呈现最多的信号特性。
好,现在我们对变换有了基本的认识,知道他们其实就是在搞基。当然,搞基也是分形式的,不同的变换,搞基的妙处各有不同。接下来先看看,傅立叶变换是在干嘛。
傅立叶级数最早是Joseph Fourier 这个人提出的,他发现,这个basis不仅仅存在与vector space,还存在于function space。这个function space本质上还是一个linear vector space,可以是有限的,可以是无限的,只不过在这个空间里,vector就是function了,而对应的标量就是实数或者复数。在vector space里,你有vector v可以写成vector basis的线性组合,那在function space里,function f(x)也可以写成对应function basis的线性组合,也有norm。你的vector basis可以是正交的,我的function basis也可以是正交的(比如sin(t)和sin(2t))。唯一不同的是,我的function basis是无穷尽的,因为我的function space的维度是无穷的。好,具体来说,那就是现在我们有一个函数,f(x)。我们希望将它写成一些cos函数和一些sin函数的形式,像这样