一般线性变换以及傅里叶变换,欧氏变换,仿射变换,余弦变换,小波变换,拉普拉斯变换,Z变换,希尔伯特变换等等这些所谓的变换太多了,这些到底搞得是什么?怎么像云像雾又像风呢?怎么才能彻底理解它们?它们究竟解决什么问题?这个问题目前到底解决的怎么样了?下面引用两个教师的感慨:第一个老师说:我退休后一个最大的愿望就是搞清楚线性代数到底讲的是啥?特征值,特征向量到底怎么回事,看书好像理解了,放下书好像又什么也没有理解,糊里糊涂,以后退休了一定要好好学习一下线性代数,一定搞清楚到底是什么,了却自己的心愿;另外一个老师说:我是一个好好学习的学生,学习的是工程方面的专业,希望自己能够成为一个有成就的科技工作者,可是一学习到傅里叶变换,什么时域和频域变换,就糊涂了,迷失了自己,从此不能自拔,最后放弃做科研工作了。

很容易理解第一位教师的感慨,做了教师,一天到晚忙着教学,而教学的内容也不太涉及线性代数的知识,就是涉及到,也可以依葫芦画瓢将教材的内容讲清楚,但是感觉总是缺少点什么,知其然不知道所以然,本打算仔细学习线性代数,但是没有时间和精力,就是很下心学一段时间,仍然不得要领。对于第二位老师的感慨,确实很多人被这时域和频域搞得头昏,以为自己没有科研天赋,从此告别科研工作,选择其它道路了。

到底怎么回事,这些所谓的变换概念到底是什么?搞得人们似乎懂了,可是一转身又感觉什么也不懂呢!其实这是普通大学培养体系里面急功近利造成的。工科大学培养的出发点是工匠而不是工程师,结果是理论体系不充分,知识结构不完备,那就很难理解线性变换了。事实上,任何理工科大学本科生必须认真学习完傅里叶分析,复分析,实分析和泛函分析,否则根本没有能力彻底理解线性变换的思想,而在上研究生阶段时,一般学过这四门课程,可是课堂上讲的都是该门课程教材前3章的内容,主要内容没涉及到,使得学生误以为自己学完了这些课程的全部内容,其实这还不如不学,不学还能想起来认真学一下,而课堂上正规教学却只学一点,学生以为都学完了,就没有再深入学习的计划和想法,这才是最害人的。我们下面一点点讲述,试图彻底讲清楚,同时给出一些变换的局限性和未来的发展思路,这仅仅是个人的理解,其中理解可能是错误的,欢迎看到的读者指正,同时也希望读者批判的看这些理解,以怀疑的态度对待它。

使用数学工具描述客观世界,这是人类认识,理解和运用客观事物的前提,当然描述这个客观世界的数学工具越是简单越好,但简单不是粗略,而是要求精确的同时简单。那么简单就意味着参数少,同时尽量使用初等函数。如果我们能够使用参数少而且简单的初等函数描述这个客观世界,那将是多么令人激动的事情,事实上,万有引力定律公式,牛顿第二定律真的非常简单而又准确地描述了客观世界的运动,因此才有“天不生牛顿,万古如长夜“之说,而且这个说法是世人公认的,绝无异议,无论多么守旧的人都无法否认。现在我们看如何描述一个椭圆:要描述一个椭圆,至少需要二个参数,现在大家都知道椭圆中心在坐标原点,长轴在

轴的公式就是
,这里面只要
两个参数就可以描述椭圆。这里很容易注意到,如果没有笛卡尔建立坐标系,我们根本无法使用数学公式描述椭圆,也谈不上操纵它了。比如使用机床刀具切割一个椭圆盘,根据这个公式使用计算机编程就可以控制刀具位置,实现椭圆盘的切割了。现在我们看椭圆的中心点不在原点,而且椭圆长轴和坐标轴不重合的情况,即一般斜椭圆公式:
,这时描述的椭圆至少需要5个参数,公式也变得较为复杂了,和标准方程相比较还有一个非常严重的问题就是从这5个参数中看不出来任何椭圆的特征,但是从标准方程立刻就能判断椭圆的大体形状,因为根据
的数值,即可得出长轴和短轴的大小,也就是参数反映了具体的几何意义,而椭圆一般方程中的参数不能直接反映椭圆本身的特征。为什么出现这种情况呢?原因是这些参数将椭圆本身特征和椭圆的位置关系混在一起了,而当我们仅仅希望了解椭圆的本身特征时,当然要将这些位置关系去掉,这就是我们熟悉的坐标变换,也就是通过旋转和平移变换,即欧氏变换,将坐标轴旋转到和椭圆的长轴或者短轴重合,椭圆中心点和坐标原点重合即可。这样做就简化了椭圆方程,通过参数直接发现了椭圆的特征和规律,我们很容易理解这种变换是十分有现实意义的。比如我们在工程设计的时候,通过运算得到了一个椭圆形状的工件,我们只要将它转换成标准方程,告诉加工方两个参数,也就是长短轴即可,否则至少要告诉5个参数,既浪费通讯成本,也容易出错,这仅仅是一个小的例子,现实生活中数据量特别庞大,如果能通过这种类似变换,实现少数参数即可描述复杂目标,那样意义就重大了。退一步讲,在不影响实际应用的前提下,如果使用这种类似变换生成少数参数能近似描述复杂的目标,意义同样重大啊!所有的变换都是基于这种思想考虑创立的。

现在我们转换一个角度,现实生活中,我们描述任何一个物体,一定要有一个描述他的参考系统。假如我们要描述一个名字叫张三,土生土长的广东人,描述他的参考系统是30个长得完全互相不相像的土生土长的东北人,于是我们要从这30个东北人中挑选一个鼻梁较短的

,他的鼻梁和张三最相似;挑选
,他的个头和张三最相似,挑选
,他的皮肤和张三最相似,如此下去,挑选
等等,我们将这30人放在一起,相似的特征赋给一个数值,不相似的统统给0,这样我们虽然没有见到张三这个人,但是通过从这些东北人挑选的局部特征中,能够基本认识张三。现在我们不从东北人中挑选,而是从张三的家族中挑选,这下我们立刻会发现,工作量小多了,他兄弟的鼻子和眼睛都和他相似,他舅舅的额头,下巴等和他相似,这样,我们只要找三个或者四个人就可以将张三大体描述出来。由此看来,我们在不同的集合里面,寻找不同的对象描述同一个物体,这个对象系统很重要。现在我们夸张一点,从全体猫咪中选择和张三局部特征相似的猫咪来描述张三,估计这下惨了,找100个猫咪也很难描述清楚张三,就是近似描述也不容易做到,毕竟找一个直立行走,嘴巴和鼻梁分开,一头黑发,脖子以下光溜溜的猫咪不容易啊!

上面的例子有几个关键的东西:第一个是描述张三的参考系统,也就是全体东北人,第二个就是选择长得完全不想象的30个东北人,张三只需要和这30个人比较就可以了,第三个就是张三和某个东北人的局部身体特征的相似性计算问题。这三个问题搞明白了,也就搞清楚所有的线性变换的基本思想了。

第一个问题是参考系统,也就是所有参照物的集合,也就是所有元素的集合,对照这个例子就是所有东北人的集合,我们希望张三如果也是东北人最好了,也就是我们研究的目标是参照系统里面的一个分子,否则正如我们上面的例子,如果选用全体猫咪的集合来描述张三,那么就很困难了,甚至无法描述。因此我们研究一个目标时候,选择的参考系统也就是集合一定含有这个目标,这就是Banach空间,也就是完备的赋范线性空间。这个空间意味着任何一个元素列收敛于该空间。

第二问题就是典型的元素问题,也就是有代表性的元素确定问题。上面我们选择30个完全不相似的东北人来代表所有的东北人。为什么要这样呢?现在又涉及到一个简化问题,全体东北人太多了,我们不可能将张三和每一个东北人的鼻子进行相似性评判,我们只要和代表性的具有不同特征东北人进行比较即可,也就是简化集合里面的元素,这个也是可以理解的。一个集合里面可能有无数个元素,我们如果要尽量简单的表达这个集合,显然就希望选择代表性的元素,而集合中的其它任何元素都能够被这些具有代表性的元素表达出来,而这些元素组成的集合又是能表达所有元素的最小集合,于是很显然的得出了线性无关组的概念,也就是找到集合中的最大线性无关组,那么其它所有的元素都能够被这个线性无关组表达。具体到一个函数组成的空间,我们希望能够找到一组基函数,空间里所有函数能够被这组函数表达出来。我们没有具体讲线性空间,线性无关,线性相关等概念,这些概念不是我们要讲述的,任何一本线性代数教材都可以查找到。

第三个问题就是元素的相似性计算问题。也就是我们采用什么手段来评判张三的鼻子和某一个东北人的鼻子相似程度,我们总不能靠感觉说像还是不像,要给出数学公式,这就是空间的内积定义,也就是定义内积的Banach空间,即希尔伯特空间了。从希尔伯特空间的角度上说,任何两个元素进行内积运算,就是比较这两个元素的相似程度。至于内积到底是什么,泛函分析给出一般定义,用户只要寻找一个具体的运算方式满足这个一般的定义就可以了。

我们谈到了上面的三个问题,涉及到完备的线性空间,即Banach空间,元素的线性表达,定义了内积的希尔伯特空间,这就是泛函分析的基本内容。本来这种简单而精确的表达思想就是针对Lebesgue空间的可测函数的表达问题,结果一抽象,抽象到张三的描述问题,完全脱离了函数问题,变成了针对希尔伯特空间的抽象元素的表达,不论什么集合,只要元素中定义了范数,定义了内积,具有完备性,就是希尔伯特空间,是希尔伯特空间就可以对任何一个元素进行描述了。上面讲了几个概念,读者查查就可以了解到底是什么,不要说这里讲难了,数学是哲学,总要给出一些定义和概念,否则说不清楚,关键是读者别将这些概念神秘化就可以了。

那么我们回到出发点,首先看看傅里叶变换搞得是什么东西,就从前面我们谈到的三个问题入手进行讨论。为了简化,我们假如所有的在区间

连续函数的全体集合构成一个线性空间
,这个区间上有一个函数
,这个函数挺复杂的,我们希望看到它的本身特征,不被其它类似于上面讨论的一般斜椭圆中的位置等因素的影响。也就是从这个线性空间中寻找一组函数,用这组函数来表达
,我们现在使用这样一组函数:
,
,
,
,
,
,
,
,
。这组函数是线性空间
上的最大线性无关组,也就是它们都是互不相关的,因此该空间的所有的元素都被它们线性表出,我们称这些函数为基函数。现在有两个问题需要研究一下,第一个小问题就是为什么选择它们作为基函数,这个可以胡搅蛮缠的说所有线性无关函数组都想作为基函数,试一试用这些函数描述
,这其实是说的过去的,我们做研究,发现一组线性无关的函数组,就想试一试用它表达
看看有什么规律,难道不行吗?这当然是可以的,如果说总得给出一个理由吧,基函数太多了,选这一组有什么考虑呢?其实是有考虑的!我们看看这组函数只有一个参数,那就是频率,也就是
,这表明一个显著的问题,那就是这些基函数完全由它的频率决定,现在我们用它们描述
就想看看这个函数有哪些频率的函数组成。这个不能再说了,再说就没意思了,第二个小问题是,我们怎么知道这组函数是线性无关的,此处想投机取巧的说一句,高频信号是不可能被低频信号线性表达出来的,如同一个博士生是不可能被一些具有各种各样能力的小学生合在一起取代的,当然这是可以严格证明的,我们不去讨论;另外就是这些函数是线性空间
的极大线性无关组,也就是基函数组,这是怎么得出来的?这次要搬出一副故作高深的面孔训你一下了,难道不知道Weierstrass逼近定理吗?这两个小问题我们不去深究的原因是担心冲淡我们现在要讨论的主题。现在我们不能再拖下去了,需要立刻讨论上面谈到的第三个大问题,就是如何定义内积来度量
和这组基函数的相似性问题,也就是
相似程度,和
的相似程度,和
的相似程度,
, 和
的相似程度,和
的相似程度,
等等。怎样定义这个相似度的运算呢?没办法,我们还得求助于传统欧氏空间中两个向量的相似性计算。我们知道欧氏空间两个向量,假设是二维向量
,那么的内积定义是
,其中
是向量
的夹角。这个内积的定义是什么意思呢?这样看,如果坐标系的
轴和向量
的方向重合,那么
,这是很明显的,因为此时
, 那么
,而
, 因此
,这个很容易看出来就是向量
轴的投影再乘以
的大小,如果
轴和
不重合,那么很容易发现这个内积就是向量
在向量
上的投影再乘以
的大小。我们再进一步举例,如果
为0,则内积就是这两个向量大小的乘积,
角度越大,内积越小,当为90度的时候,
为0,当
大于90度的时候,则为负值,因为
为负值。现在我们看明白了,这个内积就是衡量两个向量的相似度。我们再进一步演算,没办法,本文也不想搞数学公式推导,但是不推导就不搞清楚它的内涵,下面要进行简单的运算,看看这种方法定义的内积又可以写成什么形式。现在假设向量
和向量
轴的夹角分别为
,显然有
,于是有

从上面的公式,我们看出两个向量的相似度就是它们对应坐标的乘积,也就是内积是它们对应坐标的乘积。那么现在我们如何根据这种思想计算

以及
的相似度呢?

我们将区间

进行剖分,分为
等份,则有
,那么函数
的函数值可以近似为
,而
可以近似的看成
,这是两个
维向量啊!根据上面欧氏空间内积的定义,那么就有
相似性可以表达为
,由于是等分,可以在该求和号外乘以
,于是有
定义如下
,故有
,这儿的内积定义之所以乘以
是确保坐标系是标准正交坐标系,但是我们可以看出,乘以一个常数并不改变相似性。从上面的分析,我们立刻明白所谓傅里叶变换其实就是计算
和各个三角函数的相似性,而这些三角函数之间的内积为0,就是它们之间不相似。我们推广欧氏空间的概念,内积为0就是
垂直,
的内积就是
的投影,于是我们立刻就联想到
基函数系列可以看作坐标轴,而
和它们的内积就是在各个坐标轴上的坐标,这样一来就建立起了所有基函数都可以看作坐标轴,而内积就是坐标,这个坐标反映了函数
在各个坐标上投影的方向和大小。

这样一来我们得出两个基本结论,第一个结论就是只要在空间

中选择一组正交基函数,就相当于建立了一个新的坐标系,
与它们做内积运算,其值就是对应于这些基函数的坐标,也就是给定一组坐标,就得到一组内积值即坐标值,那么我们就给它取一个新的名词就是某某变换,比如给定一组小波基,那么就是小波变换,给定一组Chebyshev多项式函数作为基函数,那就是余弦变换等等,这就类似于欧氏空间中二维坐标变换以及三维坐标变换一样的概念,也是它们的推广,这种推广理解起来应该是自然的。第二个结论就是坐标的理解,那就是一个函数在基函数上的投影,也就是该函数和基函数的相似度,而基函数也就是坐标轴,因此它们之间的内积为0,也就是它们之间完全不相关,更直观的说就是它们互相垂直,这点很重要,类似于三维坐标系或者二维坐标系,它们是直角坐标系。那么对于一个函数,在一个基函数上的投影,就是该函数在基函数上的分量,这就意味着这些投影都是独立的,是最简单的表示。

我们再回归到傅里叶变换,选定三角基函数,傅里叶变换后获得的

,就是
的相似度,也是在
的投影,也称为在
上的坐标,这样一来,我们可以作一个极端的假设,如果
,那么它在基函数
上的坐标是多少呢?我们立刻可以计算出来就是
,这是什么意思啊?这就是
与基函数组中各个基函数的相似度是多少啊?想想当然是该函数与基函数中
最相似,与其它函数相似性为0了,自己当然和自己最相似了。于是我们说函数
含有傅里叶基函数组中的频率为1的分量(因为基函数组中
的频率为1),不含其它分量。于是对于任何
,我们通过傅里叶变换,就可以看到它在各个不同频率的三角函数下的相似性大小,也就是傅里叶变换得到的项的值的大小,也就是内积的值的大小,进而判读这个函数含有高频信号多少,低频信号多少,于是给出了一个新的名词,这就是所谓的时域分析变换到频域分析,也就是时频变换,这个简单的概念由于初学者没有泛函分析的思想,就搞晕了。我们再看
这个函数,当然也可以称为信号,它只含有低频信号
,没有其高频信号,比如
等。于是,对于一个函数,通过傅里叶变换,我们大体能看到该函数的变化情况,得到的高频值越大,说明函数的起伏变化越是剧烈,反之信号越是平滑,这对于我们具体应用帮助很大,比如噪声信号一般是高频信号,我们可以将高频信号舍去,只是使用低频信号重构原始信号,就起到过滤噪声的效果,怎么重构信号呢?下面接着讲。

如果没有希尔伯特空间的概念,就一下子难以理解函数重构了,但是想想欧氏空间是怎么写一个向量的?假如二维坐标系下一个向量为

,其坐标表示为
,坐标向量为
,难么该向量可以写为
,如果这种向量写作的形式概念建立不起来就麻烦了,这个应该是学习向量分析课程建立的思想,但是学习过线性代数的学生都知道,这是线性组合啊,
是线性无关组,
是它们的线性组合,这是很自然的,但是很多人无法将现实看见的欧氏二维或者三维空间推广到一般线性空间,也就是向量空间,因此就无法理解这样的线性表达了,现在我们获得的傅里叶变换就是坐标,那么原函数
也就是坐标和基函数的内积之和,这当然也是线性组合,这与向量空间表达一个向量完全是一回事,我们也称这是傅里叶逆变换,也就是所谓的原函数重构,如果学习过泛函分析的投影算了概念,这是很自然的事情,完全不用理解什么线性表达,向量空间等概念。那么可以看出来对于
,通过有限项就可以精确重构函数
,事实上这个有限项就是一项,我们前面已经计算他们的相似度为
,于是
。那么如果
,那么在傅里叶基函数下的坐标又是什么?也就是函数
与 下面这些傅里叶基函数
的相似度是多少呢?那就做内积运算啊,但是可以想象,一条直线和一条三角函数曲线的相似性,那差别就大了!也就是希望使用有限项坐标,即有限个傅里叶变换项
重构这条直线是不可能的了。这就意味着需要许多曲线不停的逼近一条直线,可以想象效率将很低,只能无限逼近,无法精确重构。

估计很多人都知道傅里叶变换高阶矩表示一个函数曲线的整体形状,低阶矩表示函数中的细节部分,这表明大多数函数和低频率的余弦函数相似,因此人们常常使用这些低阶矩重构函数,因此函数曲线中一些局部细小的起伏就会过滤掉,这也是一种信号平滑手段。我们考查下面函数

这个函数曲线类似一个矩形,在使用傅里叶变换重构该函数时,假如使用前10个矩可以较好的逼近函数的直线部分,但是在

这两个点附近就会发现重构的曲线出现很大的震荡。这个原因很简单,因为这两处是该函数的高频部分,也就是需要高频三角函数参与才能描述,现在人为的去掉了,当然无法较好的逼近了,而低频三角函数曲线形状是波形,用它们描述当然在这两处出现上下的震荡了,这就是所谓的吉本斯现象。如果使用绘图工具观察函数曲线重构过程,就会发现重构的曲线也是围绕直线上下波动的,只是这种波动幅度小,近似直线而已,这很容易想象,将傅里叶基函数赋给一个权然后相加怎么可能会是绝对平滑的一条水平直线呢?如果我们直观感觉的确很奇怪,这些三角基函数加权然后相加,怎么会重构出函数曲线的平滑部分和起伏部分,不是同时做加法运算吗?每增加一个基函数,
在时间轴每一个
对应
同时增加一个数值,因此整个
曲线应该同时起伏,怎么会有的部分越来越平滑逼近原始信号的直线部分,有的越来越起伏,逼近原始信号的波动很大的部分呢?这一点的确特别迷惑人。理论上理解完全没问题,就是现实直觉感到难以理解,可以通过使用matleb,先绘制
图形 ,再绘制
图形,接着再绘制
图形,一直绘制下去,看看是怎样一点点逼近原始函数曲线的。从每次累加的三角函数曲线可以看出,每一次追加一个三角函数项,这个三角函数的频率和系数都在变化,而且系数逐渐变小,频率逐渐增加,系数到底变得多小,这就取决于被描述函数曲线的特点,平滑的部分系数变小,逐步调整逼近这条直线,陡峭的部分,增加的三角函数曲线由于频率变高的调整对陡峭曲线部分进行增强,使得逐渐逼近这部分曲线,我们下面图形很好的说明了这点,下面是对一个周期为10,幅值为3的方波进行傅里叶变换重构函数逼近
图1:原始方波图形
图2:第一个波形
图3:第二个波形
图4:第三个波形
图5:第一个波形和第二个波形相加
图6:第一,二,三个波形相加

观察上面图2,图3和图5,很容易发现在横坐标为5的时候第一个波形和第二个波形恰好在这个位置具有相同的下降趋势,因此这两个波形相加,体现在图5就是在横坐标为5的领域范围内,生成了一个较长的斜线,再加上第四个波形生成图6,会发现在此位置,斜线进一步变得陡峭,而分析横坐标为2,4等领域范围,会发现它是如何逐渐变成直线的,也能理解它如何不停的围绕该直线进行上下波动的。特别注意图3和图4,它们的振幅越来越小,也就是傅里叶变换的数值越来越小,频率越来越高,正是这个特点才使得每次三角函数项累加以后,就小幅度修正,进而逼近该函数曲线。

现在我们换一个角度讨论,傅里叶变换可以看作一个函数在基函数上的投影大小,于是我们将这种投影运算记作

,那么对于空间
,是否存在一个函数
,使得
,其中
,根据该函数空间的性质,立刻就能想到,
满足这个条件,其它任何函数都不可能满足,这很容易验证。这和线性代数中的特征值和特征向量的定义完全相似,也就是说傅里叶变换获得数值其实就是对应基函数的特征值,而对应的基函数就是特征向量。这样一来,我们立刻就明白了,原来线性变换就是我们希望找到一组正交向量,然后能使用正交向量的组合来表示这个线性变换,这样就有利于我们观察这个线性变换的特点。特征向量类似基函数,特征值就类似内积,这样将所有变换统统归于在希尔伯特空间里面寻找一组基元素,然后计算该空间任何元素与这些基元素的相似性,最后使用基元素的线性组合描述这个元素,这样就使得我们能够一目了然的认识这个元素的本质性质。

还是没有说清楚线性变换的特征值和特征向量的关系。现在我们进一步讨论,上面我们讲任何一个元素经过一组基元素变换后就可以重构该元素,这里面就涉及到泛函分析里面的一个投影算子,即一个元素和基元素的内积再乘以该基元素,也就是和基元素的相似性在乘以基该元素可以看作一个算子,就是投影算子,那么任意一个元素,如果是投影空间的一个元素,那么该元素在空间的投影就是本身,故函数空间各种变换实质上就是基函数的线性表达。这就是该元素在各个基所组成空间的投影和。这时的基就是特征向量,投影的值就是特征值。现在我们看一般线性变换的特征值和特征向量,假设线性变换

在二维线性空间中有两个特征向量
,假设特征值分别是
,而该空间一个元素
,那么我们有
,我们观察一下就明白了元素
在两个特征向量作为坐标轴下的坐标为
,经过线性变换后坐标为
,这就明明白白的看出来该线性变换就是将任何元素沿着坐标轴
分别拉伸了
,这意思就是通过参数就看出来变换的特征,没有任何其它非本质的性质参与其中,现在我们假设
不是特征向量,而是一组基,那么

现在变换后的坐标是

,而变换前的坐标是
,这时我们很难看清楚这个变换到底是什么样子,比用特征向量表示变换
后的坐标为
,除了多出两个参数以外,还有求和运算在里面,而且我们从这些参数里面不能直接看出线性变换
的本质特征。到现在为止,我们彻底弄清楚了线性变换的特征值和特征向量就是就为了简化变换后的元素表达,使得表达的参数反映线性变换的本质特征,正因此才取名特征值和特征向量。从另外一个角度看,二维空间可能有无穷多组基,我们找的正是特征向量这组基,使得线性变换的表达最优,而对于函数空间,也有无数多组基,是不是对于一个元素,也存在一组基来最优表达呢?下面我们转入这方面的讨论。另外补充说明,投影算子只是计算一个元素再各个基上的投影然后再线性表达该元素,并没有将该元素变成另外一个元素,而一般的线性变换则变换到另外一个元素了,只不过,我们希望这个变换后元素的表达和该元素之间的关系简明清晰而已,这是它们的各自目的不同。

连续空间的正交基函数有无穷多,比如 Hermit正交多项式,Chebyshev正交多项式,Laguerre正交多项式,Legendre正交多项式,都可以作为连续函数空间中的正交基函数,于是对于任何一个给定函数,都可以计算和各个基函数的内积,进而使用基函数的线性组合表达该函数,于是就有Hermit变换,Chebyshev变换,Laguerre变换,Legendre变换,当然还有其它非多项式基函数,比如小波变换等等。这些变换可能有无数个,反正找一组正交基,就对应一个变换,类似于平面直角坐标系,旋转一个角度,在平面上的一个点就对应在这个坐标系下的一个新坐标,比如 一个点的坐标为

,我们将坐标系旋转一下就对应一个新的坐标,也就是每给定一个坐标体系,同一个点就得到一个新坐标系下的坐标。连续空间中的函数在不同基函数下的变换,就类似于这种在不同坐标系下的坐标。现在我们将原坐标系旋转使该点落在新坐标系的
轴上,这时候该点的坐标为
,也就是一个数值
就可以表达该点了,因为一旦这个坐标系建立好以后,在数据传输的时候只要传输5这个数值即可,系统默认就是
坐标为5,
坐标没有传输就默认为0,这就实现了数据的压缩和稀疏表达!这就初步解释了在连续函数空间,为什么搞这么多变换,原因就是对于任何一个函数,如果想稀疏表达,就可能需要选择合适的基函数才能达到这个目的。也就是所有的变换几乎都是为了高效表达原函数,这个高效就是稀疏表达,也就是简单而精确的表达,更进一步讲就是变换以后,可以使用相对最少的参数就可以描述这个函数。比如上面谈到的函数
,选用傅里叶变换表达最方便,只要一个参数
就可以重建该函数,而选用一般的多项式基函数表达就很麻烦,我们都知道该函数的多项式展开式是一个幂级数,当然需要很多参数才能近似表达的,这就是不稀疏了。现在我们看 Chebyshev多项式,它的正交基是
定义内积为:
,我们令
,那么 上面内积公式实质就是由函数
导出的一个L-S测度积分,也就是
。我们就明白了原来权函数表达的是一种L-S测度,此时的积分是一种L-S测度积分,这就表明了
在基函数上的投影不仅仅受基函数影响,而且受L-S测度影响,积分的区间分布不再是均匀的,因此能够表达更多的信息,这就是Chebyshev多项式具有较高表达效率的原因。

现在我们回到希尔伯特空间, 对于任何希尔伯特空间的一个元素,如果要稀疏表达,无怪乎从两个方向研究,一个是寻找一组固定的基元素组,它们能够稀疏的表达任何元素,另外一个研究方向是针对该元素自适应的选择基函数以达到稀疏表达的目的。显然第一个是最理想的,问题是目前提出很多变换,还没有发现一个变换能够达到该要求,于是从第二个方向进行研究,但是这也是极其困难的,原因是希尔伯特空间中的元素特点很难完全认识清楚,如果完全认识清楚,也不需要选择基函数来表达了,这就陷入了一个矛盾状态中,现在我们简单的进入下面关于图像分析的讨论。

图像处理的研究基本上是对图像的像素点矩阵数据进行处理,一个像素点对应一个灰度值,一幅图像就对应一个二维数值矩阵,现在要使用二元函数表达它,目的是能够对它进行稀疏表达,从而为数据压缩,噪声去除,边缘检测,目标分割,物体识别等服务。但是图像内容实在太丰富了,有复杂的纹理,有简洁的线条,有光滑的曲线,有凌乱的噪声。我们回顾上面的例子,就是一个简单的方形函数,使用傅里叶基变换都无法高效描述它,而这仅仅是一维空间的讨论,现在我们基本明白对于一个方形函数使用傅里叶变换难以表达的原因就是使用曲线去逼近一条直线当然困难了,怎么可能效率高呢?可能有的人就会说,为什么不用直线描述呢?这当然可以,问题是现实客观世界的情况是:获得的实际数据信号图形一部分是直线,一部分是曲线,有的是夹杂各种不同斜率的直线和各种复杂的函数曲线,这时候很难找到一个有明确的解析式而且类似多项式的函数充当基函数来表达它们。这其实是矛盾的,想想看,哪个连续函数的图形能够随随便便的从直线光滑的过渡到曲线,而且在直线和曲线上随意转换,并且还是一组函数并满足正交性?于是又有人提出,能不能寻找这样的函数,它是分段函数,在一个区间上是某一个解析函数,在其它区间是0,这样局部描述,直线部分使用直线,曲线部分使用曲线,这样效率就来了,还真有人这么做了,而且很出名,这就是小波变换。我们现在提到小波变换,可以高效描述一维数据,那么对于二维图像数据怎么办?人们马上想到,这个如同傅里叶变换一样,扩展到两维,也就是使用张量积的形式进行推广,这样一推广,人们发现小波分析存在巨大问题,也就是二维图像中的水平直线,垂直直线和45度角的斜线,小波变换可以很好的表达这三种类型的直线,其它类型的直线和曲线无法有效表达,但是一幅图像怎么可能只有这三种直线?实际图像中各种倾斜的直线都有,更可能的是曲线,比如一个老人面目的皱纹,那是弯弯曲曲的从额头一直延续到下巴,总不能要求老人的皱纹要么长的水平,要么长得垂直,以方便科研开发人员搞小波变换处理?这样一来的确困难了,但是虽然困难,那也得想办法啊,只要想出办法,科研人员就可以发论文,评职称,拿项目,还可以成为什么什么高端人才。开发人员就可以弄出各种产品来推向市场,其实开发人员估计经常骂科研人员,写的文章,说算法怎么怎么改进了,其实只是针对某一类特殊图像才适用,根本不通用,还有就是假的,编造的,效果还不如我们使用传统的方法好呢?不管怎么说,有人提出了针对小波分析的改进措施,进而将小波分析推进到后小波分析时代,这就是多尺度几何分析。这些方法具体包括脊波(Ridgelet)变换,曲波(Curvelet)变换,轮廓波(Contourlet)变换,条带波(Bandelet)变换,楔波(Wedgelet)变换,小线(Beamlet)变换等等。本文作者对有的有些变换没有完全搞懂,但是大体了解其思想,了解以后感觉到有些无趣,为什么这么说呢?我们还是结合其它作者的理解谈谈这些分析,然后再说怎样的无聊。

(1)Ridgelet变换:属于非自适应变换。小波变换不是无法稀疏表达任意方向的直线吗,但是它能高效的表达点,那么怎样才能将图像中的直线变换成一个点呢?估计学过图像处理的都知道,Randon变换,或者Hough变换,这两个变换能把图像中任意方向的直线变换成一个点,这样一来就可以用小波变换进行表达了,这就是Ridgelet变换,是不是有点无趣?但是图像中的边缘线条很多是曲线,对整幅图像进行Ridgelet分析一定不理想啊!于是又有人提出了单尺度脊波(MonoscaleRidgelet)变换,具体方法是对图像进行分块,使每个分块中的线条都近似直线,再对每个分块进行Ridgelet变换,这就是多尺度Ridgelet,这个就更无趣了。

(2)Curvelet变换:第一代Curvelet变换是所有可能的尺度上进行分解,然后在每一个尺度使Ridgelet变换,不像Ridgelet变换那样是固定的:具体步骤是先对图像进行子带分解;然后对不同尺度的子带图像采用不同大小的分块;最后对每个分块进行Ridgelet分析。如同微积分的定义一样,在足够小的尺度下,曲线可以被看作为直线,曲线奇异性就可以由直线奇异性来表示,这个方法也许的确能改进图像的表达,但是在理论上很无聊了。

(3) Contourlet变换。Contourlet变换将多尺度分析和方向分析分拆进行,首先由LP(Laplacian pyramid)变换对图像进行多尺度分解以“捕获”点奇异,接着由方向滤波器组(Directional Filter Bank, DFB)将分布在同方向上的奇异点合成为一个系数。Contourlet变换的最终结果是用类似于轮廓段(Contour segment)的基结构来逼近原图像,这也是所以称之为Contourlet变换的原因。这种变换感觉缺乏传统基函数表达的那种美感,感到无趣。

(4)Bandelet变换。Bandelet变换的思想是定义图像中的几何特征为矢量场,矢量场表示了图像空间结构的灰度值变化的局部正则方向。Bandelet基并不是预先确定的,而是以优化最终的应用结果来自适应地选择具体的基的组成。这个是自适应基函数表达方法,但是要自适应寻找基函数,而且又是需要分块,也是感觉不好。

(5)Wedgelet变换。该变换就是在一个图像子块(dyadic square)画条线段,把它分成两个楔块,每一个楔块用唯一的灰度值表示,线的位置就位于两个楔块之间,这种方法做的更狠,什么基函数不基函数的,直接上优化方法,将分块一切两半,如果这个分块真的有直线段,那么直线段两边的灰度值一定不同,因此它们的均值相差就很大,于是做优化处理,也就是随便划一条直线段,两边楔块的灰度值大的直线就是图像边缘,其实这种方法本质上是积分的方法,有点意思,但是没有什么数学理论做支撑,更没有什么意思了。

(6)Beamlet变换。该变换以各种方向、尺度和位置的小线段为基本单元来建立小线库,图像与库中的小线段积分产生小线变换系数,以小线金字塔方式组织变换系数,再通过图的形式从金字塔中提取小线变换系数,从而实现多尺度分析。这是一种能较好进行二维或更高维奇异性分析的工具。根据小线理论及其研究结果来看,它对于处理强噪背景的图像有无可比拟的优势。但是小线变换的前期准备工作,如小线字典、小线金字塔扫描这些部分的工作量太过于庞大,不利于研究。如果能将这部分简化,或者做成固定的模块引用的话,小线分析能够很快的扩展其应用领域。

看来Beamlet变换和Wedgelet变换都是一种积分方法,大家都知道对付噪声,积分方法是根本的考虑,其实积分方法的弊端就是将边缘也当成噪声,如何保留边缘而又能去除噪声,这和图像的稀疏基函数表达要求是一致的,我们看上面提到的方形函数,如果直线段上有噪声,那么直线段含有高频信号,但是在直线段边缘明显的发生了跳跃,这部分信号频率更高,但是它却是这个函数曲线最关键的特征,如果将它作为噪声过滤掉,那么这个方形图形就成了一个有圆角的梯形,这下子事情就闹大了。那么如何保留方形直角特征又能去掉噪声呢?如果直线用直线逼近,边缘曲线用边缘曲线逼近就好了,可是我怎么知道那些是曲线,哪些是直线,那些事拐角?上面所谓的多尺度几何分析方法就是本着两个思路去的,第一个是检测啊,找出这些特征的边缘,第二个就是优化啊,固定一些模板,进行优化比较。第一种方法是既丑又不好用,第二种方法也许好用,但是丑。

那么怎么办呢?。。。。。。想想啊,其实想出一个通用方法,可能是调和分析的一个新的研究方向。真是奇怪,对于线性变换,我们能够找到特征向量作为一组基,然后用这组基很简洁的表达这个线性变换,但是对于一个元素,我们却很难找到一组基来简洁的表达它,奇怪!

最后一点说明,我们没有将傅里叶变换涉及到的连续谱等概念进行讨论,也没有提到谱分析,因为这个可能太花时间,另外一个重要的原因是本文作者感到自己仍然需要深入理解它。

一般向量空间的基变换_从希尔伯特空间的角度看线性变换的一般思想和问题相关推荐

  1. 一般向量空间的基变换_线性代数的本质03 矩阵与线性变换

    03 矩阵与线性变换 [熟肉]线性代数的本质 - 03 - 矩阵与线性变换_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com 线性变换的概念以及它和矩阵的关系是非常 ...

  2. 一般向量空间的基变换_向量几何--3-D空间中的基变换与坐标变换【转】 - 回到未来 - C++博客...

    <6>3-D空间中的基变换与坐标变换-Twinsen编写 -本人水平有限,疏忽错误在所难免,还请各位数学高手.编程高手不吝赐教 -我的Email-address:popyy@netease ...

  3. 城市天际线下载_从软件工程师的角度看城市天际线

    城市天际线下载 不同角度的软件工程 (Software Engineering in different perspectives) In the last few months, I have be ...

  4. 欧氏空间距离和内积_线性空间,度量空间,赋范空间,线性赋范空间,内积空间,巴拿赫空间以及希尔伯特空间、拓扑空间...

    1.  距离.向量空间.度量空间.线性度量空间 距离包括各个点之间的距离,向量之间的距离,曲线之间的距离,函数之间的距离等. 距离用于衡量同一空间不同元素之间的差异,下面是关于距离的属性: 1)元素之 ...

  5. 线性空间,度量空间,赋范空间,线性赋范空间,内积空间,巴拿赫空间以及希尔伯特空间、拓扑空间

    1.  距离.向量空间.度量空间.线性度量空间 距离包括各个点之间的距离,向量之间的距离,曲线之间的距离,函数之间的距离等. 距离用于衡量同一空间不同元素之间的差异,下面是关于距离的属性: 1)元素之 ...

  6. 函数空间一览:从线性空间到再生核希尔伯特空间

    文章目录 0. 基础概念 0.1 代数系统 0.2 数域 0.3 完备的空间 1. 线性空间/向量空间 2. 度量空间 3. 赋范向量空间 4. 内积空间 5. 巴拿赫空间 6. 希尔伯特空间 7. ...

  7. 欧氏空间内积定义_向量空间、赋范空间、内积空间、欧式空间、希尔伯特空间...

    从数学的本质来看,最基本的集合有两类:线性空间(有线性结构的集合).度量空间(有度量结构的集合).线性空间与度量空间是两个不同的概念,没有交集. 一. 线性空间 1. 线性空间的定义 定义:设V是一个 ...

  8. 再生希尔伯特空间_向量、函数向量、再生核希尔伯特空间、核技巧

    参考引用:A Story of Basis and Kernel 来源:http://songcy.net/ 向量与内积 在一个 空间中,我们可以通过 个独立向量的线性组合来表示这个空间里的任意向量. ...

  9. 有没有人被向量空间、内积空间、欧式空间、希尔伯特空间、巴拿赫空间概念折磨的?

    第一篇,记录一下.看到CSDN年度描述说这个号有15年代码龄,惭愧,都是业余兴趣看看而已,啥都不会 问个问题,有没有人被向量空间.内积空间.欧式空间.希尔伯特空间.巴拿赫空间这些概念折磨的够呛 ,被吓 ...

最新文章

  1. 大三Java实习总结网易百度小米美团阿里(均拿offer)
  2. java里冒泡排序编程案例_java编程题:用Java实现一个冒泡排序算法
  3. 【读书笔记0102】Beginning linux programming-3rd
  4. Spring 使用AOP
  5. 设置 路由模式 桥接模式
  6. 在演示文稿中控制视频播放效果
  7. fgetc和fputc函数
  8. 《JavaScript高级程序设计 第三版》学习笔记 (十三)高级函数
  9. NetAssist连接报错!
  10. Opencv4.2 DNN模块 终于支持Nividia GPU了!
  11. Android 腾讯bugly的学习使用
  12. c# Queue源码解析
  13. shell脚本之国际象棋棋盘
  14. Floating-Point overflow and underflow
  15. 麦当劳可以免费添加可乐的!
  16. 为什么说社群团购时代来临了?
  17. mysql--大于小于等于
  18. python接入excel_在abaqus中使用python连接excel
  19. 狗跳高案例和学生老师案例(继承,抽象类,接口)
  20. import androidx.core.app.Fragment;报红

热门文章

  1. 如何解决SSL/TLS握手过程中失败的错误?
  2. 兰州大学萃英学院计算机,兰州大学萃英学院.PDF
  3. 曙光高性能服务器,曙光高性能进入世界前十_中科曙光服务器_服务器知识学堂-中关村在线...
  4. android 共享数据,android进程间共享简单数据
  5. 开发者账号申请完多久可以用_苹果开发者从0到发布app到apple store
  6. java窗口如何写不能移动_[求助]请教高手,下面程序为何组件不能自由移动,百思不得其解!...
  7. 阿里云物模型层初始化代码实现
  8. android xml png,android - 使用.png文件中的形状创建xml聊天气泡 - 堆栈内存溢出
  9. ts连接mysql数据库_各种数据库的连接方法
  10. linux怎么离线安装gcc文件夹,CentOS下离线安装gcc环境,图文详细,方法全面