傅里叶变换简介

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了傅里叶变换简介相关的知识,希望对你有一定的参考价值。

参考技术A 傅里叶级数得名于法国数学家约瑟夫·傅里叶,他提出任何函数都可以展开为三角级数。

考虑一个在区间 上可积的函数 ,其傅里叶级数为

其中

由欧拉公式 得

代入(1)可得



则可以得到傅里叶级数的复数形式

其中

傅里叶变换可以看作傅里叶级数的连续形式。

首先考虑定义在 上的函数的傅里叶级数展开:

其中







当 时, , , (14) 中的求和变为积分

相应地,(12) 变为

(16) 称为傅里叶变换,记作 ;(15) 称为傅里叶变换的逆变换,记作 。在信号分析中, 称为信号的时域表示, 称为信号的频域表示。

需要明确的是,不管是用时域还是用频域来表示一个信号,它们代表的都是同一个信号。可以从线性空间的角度理解这一点。同一个信号在不同的表象(或者说基向量)下具有不同的坐标。同一个向量在不同表象下的坐标可以通过一个线性变换联系起来。如果是有限维的空间,这个线性变换可以表示为一个矩阵。而傅里叶变换则是无限维空间不同表象之间的一种变换。举例来说,在量子力学中,一个波函数的坐标表象到动量表象间的变换就是一个傅里叶变换。

也可以将角频率 替换为自然频率 ,有 ,则

一般情况下,我们处理的信号都是离散的。取 在时间上的离散采样

是采样的时间间隔。傅里叶变换只能作用在连续函数上,为此我们引入

其中

为 Dirac 函数。 称为 Dirac 梳子,亦称 Shah 分布,是一个采样函数,常用在数字信号处理和离散时间信号分析中。

对 作傅里叶变换

这里利用了 Dirac 函数的性质 。(22) 即为离散时间傅里叶变换。

下面简单介绍一下采样定理。若原信号 不包含高于 的频率,即 ,则只要采样频率 ,时域采样就能完全重建原信号。

将 在 上展开为傅里叶级数

其中

注意到 时 ,而 ,故 时 ,因此 (24) 可改写为

代入 (23),得

这里 。(26) 说明原信号的傅里叶变换可以由采样信号确定,进而可以利用傅里叶逆变换重建原信号。

此外,不难发现

是一个周期为 的周期函数。离散傅里叶变换 可以看作原信号连续傅里叶变换 的周期延拓,时域的离散化造成了频域的周期化。

离散时间傅里叶变换在频域上仍然是连续的。如果把频域也离散化,就得到了离散傅里叶变换。

也可以写成矩阵形式

其中 。

离散傅里叶变换的逆变换为

直接根据定义计算离散傅里叶变换的复杂度是 。快速傅里叶变换是快速计算离散傅里叶变换及其逆变换的一类数值算法。FFT 通过把 DFT 矩阵分解为稀疏矩阵之积,能够将复杂度降低到 。

在 Python 中可以利用 scipy.fftpack 进行快速傅里叶变换。

OpenCV C++(十)----傅里叶变换

参考技术A

二维离散的傅里叶变换可以分解为一维离散的傅里叶变换:

图像傅里叶(逆)变换的步骤:

从傅里叶变换的步骤可以看出, 傅里叶变换理论上需要O((MN) 2) 次运算, 这 是非常耗时的, 并极大地降低了傅里叶变换在图像处理中的应用。 幸运的是, 当M=2 m和N=2 n时, 或者对于任意的M 和N, 傅里叶变换通过O(MN log (MN) ) 次运算就 可以完成, 这通常称为傅里叶变换的快速算法, 简称“快速傅里叶变换”。

在OpenCV中实现的傅里叶变换的快速算法是针对行数和列数均满足可以分解为2p ×3q ×5r的情况的, 所以在计算二维矩阵的快速傅里叶变换时需要先对原矩阵进行扩充, 在矩阵的右侧和下侧补0, 以满足该规则, 对于补多少行多少列的0, 可以使用函数:

幅度谱(Amplitude Spectrum) , 又称傅里叶谱, 通过以下公式计算:

相位谱(Phase SpectruM)

显然, 复数矩阵F 可以由幅度谱和相位谱表示:

其中.*代表矩阵的点乘, 即对应位置相乘.

注:因为幅度谱的最大值在(0, 0) 处, 即左上角, 通常为了便于观察, 需要将其移动 到幅度谱的中心, 那么需要在进行傅里叶变换前, 将图像矩阵乘以(-1) r+c。

OpenCV提供的计算相位谱的函数:

视觉显著性检测可以看作抽取信息中最具差异的部分或者最感兴趣或首先关注的部分, 赋予对图像分析的选择性能力, 对提高图像的处理效率是极为重要的。

算法步骤:

利用傅里叶变换计算卷积, 主要步骤概括为, 首先计算两个傅里叶变换的点乘, 然后进行傅里叶逆变换, 并只取逆变换的实部。

卷积定理是针对full卷积的, 而same卷积是full 卷积的一部分。 利用快速傅里叶变换, 根据卷积定理, 计算same卷积,步骤如下。

注:只有当卷积核较大时, 利用傅里叶变换的快速算法计算卷积才会表现出明显的优势。

以上是关于傅里叶变换简介的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV C++(十)----傅里叶变换

数字信号处理傅里叶变换性质 ( 序列傅里叶变换共轭对称性质 | 序列实偶 傅里叶变换 实偶 | 序列实奇 傅里叶变换 虚奇 | 证明 “ 序列实奇 傅里叶变换 虚奇 “ )

傅里叶变换与卷积的区别

数字信号处理序列傅里叶变换 ( 序列傅里叶变换与反变换 | 序列绝对可和 与 存在傅里叶变换之间的关系 | 序列傅里叶变换性质 )

数字信号处理序列傅里叶变换 ( 序列傅里叶变换与反变换 | 序列绝对可和 与 存在傅里叶变换之间的关系 | 序列傅里叶变换性质 )

数字信号处理序列傅里叶变换 ( 基本序列的傅里叶变换 | 求 1 的傅里叶变换 )