《精通Matlab数字图像处理与识别》一6.2 傅立叶变换基础知识

简介:

本节书摘来自异步社区《精通Matlab数字图像处理与识别》一书中的第6章,第6.2节,作者 张铮 , 倪红霞 , 苑春苗 , 杨立红,更多章节内容可以访问云栖社区“异步社区”公众号查看

6.2 傅立叶变换基础知识

精通Matlab数字图像处理与识别
要理解傅立叶变换,掌握频率域滤波的思想,必要的数学知识是不能跳过的。为便于理解,我们将尽可能定性地去描述。其实傅立叶变换所必需的数学知识对于一个理工科大学二年级以上的学生来说是很有限的,高等数学中傅立叶级数的知识加上线性代数中基和向量空间的概念就足够了。下面就从一维情况下的傅立叶级数开始进行介绍。

6.2.1 傅立叶级数

法国数学家傅立叶发现任何周期函数只要满足一定条件(狄利赫里条件)都可以用正弦函数和余弦函数构成的无穷级数,即以不同频率的正弦和余弦函数的加权和来表示,后世称为傅立叶级数。

对于有限定义域的非周期函数,可以对其进行周期拓延,从而使其在整个扩展定义域上为周期函数,从而也可以展开为傅立叶级数。

1.傅立叶级数的三角形式
周期为T的函数f (t)的三角形式傅立叶级数展开为

image

a k和b k称为傅立叶系数。稍后在学习傅立叶级数的复数形式时还将介绍傅立叶系数的另一种形式。事实上,傅立叶系数正是我们在6.2.2小节傅立叶变换中所关心的对象。

于是,周期函数f(t)就与下面的傅立叶序列产生了一一对应,即

image

图6.1所示形象地显示出了这种频率分解,左侧的周期函数f(x)可以由右侧函数的加权和来表示,即由不同频率的正弦和余弦函数以不同的系数组合在一起。

image

原函数f(x)(左),其傅立叶展开为一系列不同频率的正弦、余弦函数的加权和(右)

从数学上已经证明了,傅立叶级数的前N项和是原函数f(t)在给定能量下的最佳逼近。

image

图6.2为我们展示了对于一个方波信号函数采用不同的N值的逼近情况。随着N的增大,逼近效果越来越好。但同时也注意到,在f (x)的不可导点上,如果只取式(6-1)右边的无穷级数中的有限项之和作为hat f(x),那么hat f(x)在这些点上会有起伏,对于图6.2(a)的方波信号尤为明显,这就是著名的吉布斯现象。

2.傅立叶级数的复指数形式
除上面介绍的三角形式外,傅立叶级数还有其他两种常用的表现形式,即余弦形式和复指数形式。借助欧拉公式,上述3种形式可以很方便地进行等价转化,本质上它们都是一样的。

image

复指数傅立叶级数即我们经常说的傅立叶级数的复数形式,因其具有简洁的形式(只需一个统一的表达式计算傅立叶系数),在进行信号和系统分析时通常更易于使用;而余弦傅立叶级数可使周期信号的幅度谱和相位谱意义更加直观,函数的余弦傅立叶级数展开可以解释为f(x)可以由不同频率和相位的余弦波以不同系数组合在一起来表示,而在三角形式中相位是隐藏在系数a n和b n中的。下面主要介绍复指数傅立叶级数,在后面的傅立叶变换中要用到的正是这种形式。关于余弦傅立叶级数的有关知识,感兴趣的读者请参考附录Ⅲ。

傅立叶级数的复指数形式为

image

由式(6-4)和(6-5)可见,复指数傅立叶级数形式比较简洁,级数和系数都可以采用一个统一的公式计算。有关如何由式(6-1)推导出傅立叶级数复指数形式(6-4)的过程,由于这里我们感兴趣的并非傅立叶级数本身,就不在正文中给出了,详细的内容可参考附录Ⅱ,只要您相信不同的展开形式之间本质上是等价的,并对复指数形式的傅立叶级数展开建立了一个基本的形式上的认识就足以继续阅读和理解后面的内容了。

6.2.2 傅立叶变换

1.一维连续傅立叶变换
对于定义域为整个时间轴(-∞

image

式(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)的傅立叶变换的离散形式为

image

由于一维情况下很多性质更为直观,我们更青睐于分析一维离散傅立叶变换,而由此得出的这些结论都可顺利推广至二维。一些有用的性质如下。

仔细观察式(6-8)和式(6-9),注意到在频域下变换F(u)也是离散的,且其定义域仍为0~M-1,这是因为F(u)的周期性,即
image

考虑式(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} }

image

4.二维离散傅立叶变换
在数字图像处理中,我们关心的自然是二维离散函数的傅立叶变换,下面直接给出二维离散傅立叶变换(Discrete Fourier Transform, DFT)公式。

image

显然,这是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)。

image

image

6.2.3 幅度谱、相位谱和功率谱

下面,我们再来定义傅立叶变换的幅度谱、相位谱以及功率谱。

image

幅度谱又叫频率谱,是图像增强中关心的主要对象,频域下每一点(u,v)的幅度|F(u, v)|可用来表示该频率的正弦(余弦)平面波在叠加中所占的比例,如图6.4所示。幅度谱直接反映频率信息,是频域滤波中的一个主要依据。

图6.4所示幅度谱中的A、B、C、D四点的幅值分别为四周的4个正弦平面波在的加权求和中的权值(混合比例)。注意这4个正弦平面波的方向和频率。

image

相位谱表面上看并不那么直观,但它隐含着实部与虚部之间的某种比例关系,因此与图像结构息息相关。

由于对于和空域等大的频域空间下的每一点(u, v),均可计算一个对应的|F(u, v)|和φ(u, v),因此可以像显示一幅图像那样显示幅度谱和相位谱。图6.5(b)、(c)分别给出了图6.5(a)中图像的幅度谱和相位谱,获得它们的方法请参考6.3节中傅立叶变换实现的相关内容,关于幅度谱和相位谱的一个非常有趣的例子请参考例6.2。

image

▲图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个基向量的线性组合(加权和)表示为

image

在上面的叙述中涉及了向量的正交,这是向量代数中一个非常重要的概念。为了说明正交的概念,让我们首先回顾一下向量点积(数量积),两个向量的点积定义为

image

此时,如果vec u bullet vec v = 0 ,则称这两个向量vec u 和vec v 互相正交。由式(6-22)可知,两非零向量正交则cos theta = 0 ,说明其夹角为90(垂直)。

接下来,定义一个向量在另一个向量方向上的投影或分量为

image

式中: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 )的形式。

image

将三维向量空间中基与投影的概念推广至N维向量空间。任何一个该空间中的N×1向量均可由N个基向量vec e_1 ,vec e_2 ,...,vec e_N 的线性组合来表示,记作

image

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} ,我们用下面的等式来表示函数的正交性。

image

至此,读者应该已经理解了傅立叶变换的实质——基的转换。对于给定函数f(x),关键是选择合适的基,使得f(x)在这组基下表现出我们需要的特性。当某一组基不满足要求时,就需要通过变换将函数转换到另一组基下表示,方可得到我们需要的函数表示。常用的变换有傅立叶变换(以正弦和余弦函数为基函数)、小波变换(以各种小波函数为基函数)、离散余弦变换以及Walsh变换等。实际上,我们在第12章中将指出,特征降维中常用的主成份分析法(K-L变换)本质上也是一种基的转换。

相关文章
|
5月前
|
机器学习/深度学习 数据采集 监控
基于CNN卷积神经网络的步态识别matlab仿真,数据库采用CASIA库
**核心程序**: 完整版代码附中文注释,确保清晰理解。 **理论概述**: 利用CNN从视频中学习步态时空特征。 **系统框架**: 1. 数据预处理 2. CNN特征提取 3. 构建CNN模型 4. 训练与优化 5. 识别测试 **CNN原理**: 卷积、池化、激活功能强大特征学习。 **CASIA数据库**: 高质量数据集促进模型鲁棒性。 **结论**: CNN驱动的步态识别展现高精度,潜力巨大,适用于监控和安全领域。
|
5月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于CNN卷积神经网络的MQAM调制识别matlab仿真
**理论**: 利用CNN自动识别MQAM调制信号,通过学习星座图特征区分16QAM, 64QAM等。CNN从原始数据提取高级特征,优于传统方法。 - **CNN结构**: 自动特征学习机制,适配多种MQAM类型。 - **优化**: 损失函数指导网络参数调整,提升识别准确度。 - **流程**: 大量样本训练+独立测试评估,确保模型泛化能力。 - **展望**: CNN强化无线通信信号处理,未来应用前景广阔。
|
5月前
|
机器学习/深度学习 算法 BI
基于深度学习网络的USB摄像头实时视频采集与手势检测识别matlab仿真
**摘要:** 本文介绍了使用MATLAB2022a实现的基于GoogLeNet的USB摄像头手势识别系统。系统通过摄像头捕获视频,利用深度学习的卷积神经网络进行手势检测与识别。GoogLeNet网络的Inception模块优化了计算效率,避免过拟合。手势检测涉及RPN生成候选框,送入网络进行分类。系统架构包括视频采集、手势检测与识别、以及决策反馈。通过GPU加速和模型优化保证实时性能,应用于智能家居等场景。
|
6月前
|
机器学习/深度学习 数据可视化 算法
探索MATLAB世界:掌握基础知识与实用技能(1. MATLAB环境与基本操作 2. 数据类型与变量 3. 条件与循环,1. 数据分析与统计 2. 图像处理与计算机视觉 3. 信号处理与控制系统)
探索MATLAB世界:掌握基础知识与实用技能(1. MATLAB环境与基本操作 2. 数据类型与变量 3. 条件与循环,1. 数据分析与统计 2. 图像处理与计算机视觉 3. 信号处理与控制系统)
57 0
|
6月前
|
机器学习/深度学习 算法 数据可视化
基于googlenet深度学习网络的睁眼闭眼识别算法matlab仿真
**算法预览图展示睁眼闭眼识别效果;使用Matlab2022a,基于GoogLeNet的CNN模型,对图像进行分类预测并可视化。核心代码包括图像分类及随机样本显示。理论概述中,GoogLeNet以高效Inception模块实现眼部状态的深度学习识别,确保准确性与计算效率。附带三张相关图像。**
|
7月前
|
机器学习/深度学习 算法 数据可视化
基于深度学习网络的鞋子种类识别matlab仿真
使用GoogLeNet深度学习模型在matlab2022a中进行鞋子种类识别,利用Inception模块捕捉多尺度特征,提升分类精度。程序加载预训练模型`gnet.mat`,计算验证集的准确性并随机显示32个样本的预测结果及置信度。
|
7月前
|
机器学习/深度学习 算法 计算机视觉
基于yolov2深度学习网络的螺丝螺母识别算法matlab仿真
以下是内容的摘要: 该文介绍了使用YOLOv2深度学习模型进行螺丝螺母识别的算法,展示了在matlab2022a环境下运行的6张检测效果图。YOLOv2基于Darknet-19预训练网络,结合多任务损失函数和非极大值抑制技术,有效检测目标。为了适应任务,进行了数据集准备、模型微调、锚框选取等步骤。核心程序加载预训练模型,遍历图像并展示检测结果,通过调整阈值绘制检测框。
|
7月前
|
存储 人工智能 机器人
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
202 0
基于混沌集成决策树的电能质量复合扰动识别(matlab代码)
基于混沌集成决策树的电能质量复合扰动识别(matlab代码)
|
7月前
|
存储
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】

热门文章

最新文章