Advertisement

2维傅里叶逆变换 matlab_数字图像处理(一)—— 傅里叶变换

阅读量:
0cadef31306ca9c9412bf90667c24c1c.png

1. 基本指数信号

为两个基本指数信号,其中

分别为连续时间域和离散时间域的角频率。

1.1 连续时间域

  1. 连续时间域中,如果满足

,则

是周期信号,其周期为

,;

  1. 角频率

越大,信号的振荡频率越快;

时,

是正交的,且角频率不区分正负。

第1点与第2点很明显;如果能证明现

的内积为0,便可证明第3点。 设

为两信号周期的最小公倍数,

,则

。两信号的内积为

1.2 离散时间域

  1. 离散时间域中,如果满足

为整数,则当且仅当

,即

是有理数时,

为周期信号。

  1. 如果以

为自变量,

是周期信号,即

  1. 随着

变化,根据第2点性质

,信号不是完全不同的(此处不同于连续时间域),即每隔

会出现相同的信号。

2. 傅里叶变换的实质

为了更加直观地展示傅里叶变换在信号空间中的表现形式, 首先选取一个三维信号在其对应的三维欧几里得空间中进行表示, 如图1所示.

d7ba47400ba02393ab6693da7e29b6f6.png

图1 三维欧几里得空间

在三维欧几里得空间内存在3条相互正交的直线即形成一组基底下面将介绍如何通过此基底在相应的坐标系下能够表示任意三维信号

的过程。首先,将

分别与三个基进行内积操作,即

,得到在三个基上的分量;其次,将三个分量在三个基上进行线性叠加,即

,便得到了向量

在此三维欧几里得空间中的表示。

那么信号

如何在信号空间中表示呢?设信号

是连续非周期信号,其信号空间中的基频是

。在信号空间中,当

时,

该矩阵具有正交性,在信号空间中存在无限多个基底向量;类似地,在欧几里得空间中进行的操作也适用于这里;首先对信号进行处理

与信号空间中的基进行内积操作,即

;其次,将信号

在各个基上的分量

与对应的基进行线性叠加(线性加权和),即

,从而获得了该信号在其所处的空间域中的数学表达;而这一特定的过程则被定义为傅里叶变换;同时,在傅里叶空间中进行的加权求和操作则被称为傅里叶反变换(inverse Fourier transform)。

3. Dirichlet 条件

一个连续时间域内的非周期 信号

如果有傅里叶变换,必须满足Dirichlet条件,即

  1. 信号

是绝对可积的,即

  1. 在任意一个有限的区间内都会必存在有限多个极大值点和极小值点;
  2. 在任意一个有限的区间内都会必存在有限多个不连续的点。

第1点意味着信号的能量必须是有限的;第2点和第3点表示信号要足够光滑。

4. 连续周期信号的傅里叶变换(连续时间傅里叶级数)

设信号

周期 信号,满足

,其中

为基本(最小)周期,则其基信号为

,且

。其Fourier变换为

;逆变换为

。称为信号

为傅里叶级数展开,

为傅里叶级数的系数。

周期信号如果有傅里叶变换,需要满足的Dirichlet条件为

  1. 信号

在任意周期内是绝对可积的,即

  1. 在任何时间段内都必然存在有限的最大点与最小点;
  2. 任何时间段内必定存在有限数量的断开点。

5. 离散周期信号的傅里叶变换(离散时间傅里叶级数)

为离散周期信号,且满足

,即

,这相当于把一个圆分成了N份(可参考虚部表示旋转),所以其基频信号为

信号

的Fourier变换可表示为

,傅立叶逆变换为

请注意,在离散周期信号中仅存在有限种不同频率的成分,在连续周期信号中则拥有无限多个不同频率的成分。

6. 离散非周期信号的傅里叶变换

为离散非周期信号,其基信号为

,则Fourier变换为

,因

的傅里叶逆变换为

7. 小结

7.1 连续信号

**

**


周期信号,基信号

;非周期信号,基信号

7.2 离散信号

**

**


周期信号,基信号

;非周期信号,基信号

7.3 例子

设信号

由于计算机仅能处理离散数据, 因此该实例采用1024Hz的采样率对持续1秒的数据进行采样, 并从而生成离散序列.

。在python中为

复制代码
 # 设信号周期为1s,采样频率为1024

    
 t = np.linspace(0, 1, 1024, endpoint=False)
    
 # 生成带噪声的信号
    
 y = []
    
 for i in range(len(t)):
    
     y.append(
    
     math.cos(2 * np.pi * 100 * t[i]) + math.sin(2 * np.pi * 260 * t[i]) + 4 * (np.random.rand()-0.5)
    
     )

并对其逆行Fourier变换

复制代码
 # Fourier变换

    
 y_ = fft(y)
    
 # 因对称性只显示一半即可
    
 x_frequency_domain = np.arange(len(y_)/2)
    
 y_magnitude = abs(y_)/len(t)
    
 y_magnitude = y_magnitude[0: 512]

具体位置展示在图2和图3中。完整的代码可以在我的GitHub仓库中找到(基于Python编写),建议大家亲自实践一下。

eceeeb6e8d5b983f641aef32496fd0fa.png

图2 时域波形

828667f156039045cba396571daa2517.png

图3 频域波形

全部评论 (0)

还没有任何评论哟~