本节书摘来自异步社区《精通Matlab数字图像处理与识别》一书中的第6章,第6.2节,作者 张铮 , 倪红霞 , 苑春苗 , 杨立红,更多章节内容可以访问云栖社区“异步社区”公众号查看
6.2 傅立叶变换基础知识
精通Matlab数字图像处理与识别
要理解傅立叶变换,掌握频率域滤波的思想,必要的数学知识是不能跳过的。为便于理解,我们将尽可能定性地去描述。其实傅立叶变换所必需的数学知识对于一个理工科大学二年级以上的学生来说是很有限的,高等数学中傅立叶级数的知识加上线性代数中基和向量空间的概念就足够了。下面就从一维情况下的傅立叶级数开始进行介绍。
6.2.1 傅立叶级数
法国数学家傅立叶发现任何周期函数只要满足一定条件(狄利赫里条件)都可以用正弦函数和余弦函数构成的无穷级数,即以不同频率的正弦和余弦函数的加权和来表示,后世称为傅立叶级数。
对于有限定义域的非周期函数,可以对其进行周期拓延,从而使其在整个扩展定义域上为周期函数,从而也可以展开为傅立叶级数。
1.傅立叶级数的三角形式
周期为T的函数f (t)的三角形式傅立叶级数展开为
a k和b k称为傅立叶系数。稍后在学习傅立叶级数的复数形式时还将介绍傅立叶系数的另一种形式。事实上,傅立叶系数正是我们在6.2.2小节傅立叶变换中所关心的对象。
于是,周期函数f(t)就与下面的傅立叶序列产生了一一对应,即
图6.1所示形象地显示出了这种频率分解,左侧的周期函数f(x)可以由右侧函数的加权和来表示,即由不同频率的正弦和余弦函数以不同的系数组合在一起。
原函数f(x)(左),其傅立叶展开为一系列不同频率的正弦、余弦函数的加权和(右)
从数学上已经证明了,傅立叶级数的前N项和是原函数f(t)在给定能量下的最佳逼近。
图6.2为我们展示了对于一个方波信号函数采用不同的N值的逼近情况。随着N的增大,逼近效果越来越好。但同时也注意到,在f (x)的不可导点上,如果只取式(6-1)右边的无穷级数中的有限项之和作为hat f(x),那么hat f(x)在这些点上会有起伏,对于图6.2(a)的方波信号尤为明显,这就是著名的吉布斯现象。
2.傅立叶级数的复指数形式
除上面介绍的三角形式外,傅立叶级数还有其他两种常用的表现形式,即余弦形式和复指数形式。借助欧拉公式,上述3种形式可以很方便地进行等价转化,本质上它们都是一样的。
复指数傅立叶级数即我们经常说的傅立叶级数的复数形式,因其具有简洁的形式(只需一个统一的表达式计算傅立叶系数),在进行信号和系统分析时通常更易于使用;而余弦傅立叶级数可使周期信号的幅度谱和相位谱意义更加直观,函数的余弦傅立叶级数展开可以解释为f(x)可以由不同频率和相位的余弦波以不同系数组合在一起来表示,而在三角形式中相位是隐藏在系数a n和b n中的。下面主要介绍复指数傅立叶级数,在后面的傅立叶变换中要用到的正是这种形式。关于余弦傅立叶级数的有关知识,感兴趣的读者请参考附录Ⅲ。
傅立叶级数的复指数形式为
由式(6-4)和(6-5)可见,复指数傅立叶级数形式比较简洁,级数和系数都可以采用一个统一的公式计算。有关如何由式(6-1)推导出傅立叶级数复指数形式(6-4)的过程,由于这里我们感兴趣的并非傅立叶级数本身,就不在正文中给出了,详细的内容可参考附录Ⅱ,只要您相信不同的展开形式之间本质上是等价的,并对复指数形式的傅立叶级数展开建立了一个基本的形式上的认识就足以继续阅读和理解后面的内容了。
6.2.2 傅立叶变换
1.一维连续傅立叶变换
对于定义域为整个时间轴(-∞
式(6-6)和式(6-7)即为我们通常所说的傅立叶变换对,6.1节中提到的函数可以从它的反变换进行重建正是基于上面的傅立叶变换对。
由于傅立叶变换与傅立叶级数涉及两类不同的函数,在很多数字图像处理的书中通常对它们分别进行处理,并没有阐明它们之间存在的密切联系,这给很多初学者带来了困扰,实际上我们不妨认为周期函数的周期可以趋向无穷大,这样可以将傅立叶变换看成是傅立叶级数的推广。
仔细地观察式(6-6)和式(6-7),对比复指数形式的傅立叶级数展开公式式(6-4),注意到在这里傅立叶变换的结果F(u)实际上相当于傅立叶级数展开中的傅立叶系数,而反变换公式式(6-7)则体现出不同频率复指数函数的加权和的形式,相当于复指数形式的傅立叶级数展开公式,只不过这里的频率u变为了连续的,所以加权和采用了积分的形式。这是因为随着作为式(6-5)的积分上下限的T向整个实数定义域扩展,即T→∞,频率u则趋近于du(因为u=1/T),导致原来离散变化的u的连续化。
2.一维离散傅立叶变换
一维函数f(x)(其中x=0, 1, 2 ,… , M-1)的傅立叶变换的离散形式为
由于一维情况下很多性质更为直观,我们更青睐于分析一维离散傅立叶变换,而由此得出的这些结论都可顺利推广至二维。一些有用的性质如下。
仔细观察式(6-8)和式(6-9),注意到在频域下变换F(u)也是离散的,且其定义域仍为0~M-1,这是因为F(u)的周期性,即
考虑式(6-9)中的系数1/M,在这里该系数被放在反变换之前,实际上它也可以位于式(6-8)的正变换公式中。更一般的情况是只要能够保证正变换与反变换之前的系数乘积为1/M即可。例如,两个公式的系数可以均为 1/sqrt M 。
为了求得每一个F(u)(u=0, 1, 2,…, M-1),都需要全部M个点的f(x)参与加权求和计算。对于M个u,则总共需要大约M2次计算。对于比较大M(在二维情况下对应着比较大的图像),计算代价还是相当可观的,我们会在下一节快速傅立叶变换中来研究如何提高计算效率的问题。
3.二维连续傅立叶变换
有了之前的基础,下面我们将傅立叶变换及其反变换推广至二维。对于二维连续函数,傅立叶变换为
F(u,v) = int_{ - infty }^infty {int_{ - infty }^infty {f(x,y)text{e}^{ - text{j}2pi (ux + vy)} dxdy} }
4.二维离散傅立叶变换
在数字图像处理中,我们关心的自然是二维离散函数的傅立叶变换,下面直接给出二维离散傅立叶变换(Discrete Fourier Transform, DFT)公式。
显然,这是f(x, y)各个像素的灰度之和。而如果将系数1/MN放在正变换之前,则F(0, 0)对应于原图像f(x, y)的平均灰度。F(0, 0)有时被称作频谱的直流分量(DC)。
我们之前曾指出了一维函数可以表示为正弦(余弦)函数的加权和形式;类似的,二维函数f(x, y)可以分解为不同频率的二维正弦(余弦)平面波的按比例叠加。图6.3(a)中给出了一幅简单的图像,可将它视为以其灰度值作为幅值的二维函数,如图6.3(b)所示,根据式(6-13),它可以分解为如图6.3(c)所示的不同频率和方向的正弦(余弦)平面波的按比例叠加(只给出了一部分)。比如图6.3(c)中第一行中间的平面波为sin(Y),而第二行右面的平面波则为sin(X+2Y),而第三行最后的一个为sin(2X+2Y)。
6.2.3 幅度谱、相位谱和功率谱
下面,我们再来定义傅立叶变换的幅度谱、相位谱以及功率谱。
幅度谱又叫频率谱,是图像增强中关心的主要对象,频域下每一点(u,v)的幅度|F(u, v)|可用来表示该频率的正弦(余弦)平面波在叠加中所占的比例,如图6.4所示。幅度谱直接反映频率信息,是频域滤波中的一个主要依据。
图6.4所示幅度谱中的A、B、C、D四点的幅值分别为四周的4个正弦平面波在的加权求和中的权值(混合比例)。注意这4个正弦平面波的方向和频率。
相位谱表面上看并不那么直观,但它隐含着实部与虚部之间的某种比例关系,因此与图像结构息息相关。
由于对于和空域等大的频域空间下的每一点(u, v),均可计算一个对应的|F(u, v)|和φ(u, v),因此可以像显示一幅图像那样显示幅度谱和相位谱。图6.5(b)、(c)分别给出了图6.5(a)中图像的幅度谱和相位谱,获得它们的方法请参考6.3节中傅立叶变换实现的相关内容,关于幅度谱和相位谱的一个非常有趣的例子请参考例6.2。
▲图6.5 circuit.tif幅度谱和相位谱。幅度谱和相位谱都将(0,0)点移到了中心
6.2.4 傅立叶变换的实质—基的转换
无论是傅立叶变换、离散余弦变换还是小波变换,其本质都是基的变换。下面首先让我们一起回顾一下线性代数中基和向量空间的相关知识。
1.基和向量空间
在三维欧氏向量空间中,某向量vec v 可以由3个复数{v_1 ,v_2 ,v_3 }来定义,常常记作vec v =(v_1 ,v_2 ,v_3 ),这3个复数与3个正交单位向量{vec e_1 ,vec e_2 ,vec e_3 }相联系。实际上,有序集{ v_1 ,v_2 ,v_3 }表示向量 vec v 的3个标量分量,也就是系数;而3个正交单位向量{vec e_1 ,vec e_2 ,vec e_3 }即为该三维欧氏空间的基向量。我们称该空间为这3个基向量所张成的空间,任何该空间中的向量vec v 均可由这3个基向量的线性组合(加权和)表示为
在上面的叙述中涉及了向量的正交,这是向量代数中一个非常重要的概念。为了说明正交的概念,让我们首先回顾一下向量点积(数量积),两个向量的点积定义为
此时,如果vec u bullet vec v = 0 ,则称这两个向量vec u 和vec v 互相正交。由式(6-22)可知,两非零向量正交则cos theta = 0 ,说明其夹角为90(垂直)。
接下来,定义一个向量在另一个向量方向上的投影或分量为
式中:vec e_v 为向量vec v 单位化后的单位向量,模为1,方向与vec v 相同。式(6-23)说明如果需要得到某向量在给定方向上的分量,只需计算该向量与给定方向单位向量的点积。
图6.6能够帮助我们理解上述内容,图6.6(a)中为一个三维空间中的向量vec v 以及3个单位正交基向量vec e_1 ,vec e_2 ,vec e_3 ;图6.6(b)中给出了向量vec v 在vec e_2 方向的投影v_2 ;在图6.6(c)中,根据矢量加法的平行四边形法则,向量vec v 被分解为3个正交基向量vec e_1 ,vec e_2 ,vec e_3 线性组合,显然可以表示为vec v =(v_1 ,v_2 ,v_3 )的形式。
将三维向量空间中基与投影的概念推广至N维向量空间。任何一个该空间中的N×1向量均可由N个基向量vec e_1 ,vec e_2 ,...,vec e_N 的线性组合来表示,记作
2.基函数和函数空间
尽管上面的向量分解与重构的问题比较基础,但它与傅立叶变换与反变换之间的关系却十分紧密。事实上,它们在形式上有着惊人的相似,唯一不同的是这里的向量空间变成了函数空间,向量vec v 变成了函数f(x),而基向量vec e 1,vec e 2,…,vec e n也相应地变成了基函数。对比式(6-24)~(6-25)和式(6-8)~(6-9)的形式不难看出,式(6-25)的分解过程即相当于傅立叶变换,而式(6-26)的重构过程则恰恰相当于傅立叶反变换。也就是说,相应函数空间中的任意函数均可以由该函数空间中的一组基函数的加权和来表示。观察式(6-8)容易发现,这里的基函数的形式为text{e}^{ - i2pi ux} ,我们用下面的等式来表示函数的正交性。
至此,读者应该已经理解了傅立叶变换的实质——基的转换。对于给定函数f(x),关键是选择合适的基,使得f(x)在这组基下表现出我们需要的特性。当某一组基不满足要求时,就需要通过变换将函数转换到另一组基下表示,方可得到我们需要的函数表示。常用的变换有傅立叶变换(以正弦和余弦函数为基函数)、小波变换(以各种小波函数为基函数)、离散余弦变换以及Walsh变换等。实际上,我们在第12章中将指出,特征降维中常用的主成份分析法(K-L变换)本质上也是一种基的转换。