变换
一维FFT的基本概念
FFT基于复数运算。对于任意一维信号(在这里是图像的一行或一列),假设有 (N) 个数据点,一维FFT的目标是将这些点从时间域(或空间域)转换到频域。一维FFT的结果也是一个长度为 (N) 的序列,表示不同频率成分的复数幅度。
一维离散傅里叶变换(DFT)的定义为:
X [ k ] = ∑ n = 0 N − 1 x [ n ] ⋅ e − i 2 π k n N X[k] = \sum_{n=0}^{N-1} x[n] \cdot e^{-i 2\pi \frac{kn}{N}} X[k]=n=0∑N−1x[n]⋅e−i2πNkn
其中,
- (X[k]) 是频域中的第 (k) 个成分,
- (x[n]) 是时域中的第 (n) 个样本,
- (N) 是样本总数,
- (i) 是虚数单位。
对图像行的FFT
对于352x288的图像,首先对每行(共288行)进行FFT:
-
对于每一行,我们有352个数据点。应用上述DFT公式,为每个频率 (k) (从0到351),计算该频率的复数幅度:
X [ k ] = ∑ n = 0 351 x [ n ] ⋅ e − i 2 π k n 352 X[k] = \sum_{n=0}^{351} x[n] \cdot e^{-i 2\pi \frac{kn}{352}} X[k]=n=0∑351x[n]⋅e−i2π352kn -
这个计算为每一行生成一个新的352个元素的行,这些元素现在表示原始数据在频域中的复数表示。
对图像列的FFT
完成所有行的变换后,每列(现在是转换后的352个频域数据)也要进行FFT:
-
对于每一列,同样应用DFT公式,但这次是对每个列的288个数据点进行变换。这为每个频率 (k) (从0到287)计算复数幅度:
Y [ k ] = ∑ m = 0 287 X [ m ] ⋅ e − i 2 π k m 288 Y[k] = \sum_{m=0}^{287} X[m] \cdot e^{-i 2\pi \frac{km}{288}} Y[k]=m=0∑287X[m]⋅e−i2π288km -
这个计算为每一列生成一个新的288个元素的列,这些元素代表了该列的频域数据。
结果的解释
经过上述两次FFT(先行后列),我们得到一个新的352x288的复数矩阵,其中的每个元素 (Y[j][k]) 都代表了原图像在特定频率上的复数幅度。这个矩阵展示了图像的频域特性,其幅值和相位分别反映了频率成分的强度和相位信息。
应用
这个频域矩阵可以用来进行图像的频域分析和处理,比如滤波、压缩等。通过修改这个矩阵中的特定元素,然后应用逆FFT,我们可以实现对原始图像的各种修改和改进。
逆变换
逆离散傅里叶变换(IDFT)
逆离散傅里叶变换(IDFT)是离散傅里叶变换(DFT)的逆操作,用于将数据从频域转换回空间域。对于一个经过DFT得到的频域矩阵,其IDFT公式定义如下:
x [ n ] = 1 N ∑ k = 0 N − 1 X [ k ] ⋅ e i 2 π k n N x[n] = \frac{1}{N} \sum_{k=0}^{N-1} X[k] \cdot e^{i 2\pi \frac{kn}{N}} x[n]=N1k=0∑N−1X[k]⋅ei2πNkn
其中:
- (x[n]) 是空间域中的第 (n) 个样本(或像素值),
- (X[k]) 是频域中的第 (k) 个成分,
- (N) 是样本总数(在图像中即为像素数),
- (i) 是虚数单位。
逆FFT操作的步骤
对于一个352x288的图像,其频域矩阵同样为352x288。逆FFT操作首先对频域矩阵的每一列执行一维逆FFT,然后对每一行执行一维逆FFT。以下是详细步骤:
-
对每一列执行一维逆FFT:
- 对于矩阵中的每一列(共352列),应用上述IDFT公式。对于列 (m),第 (n) 个元素的计算为:
x [ m ] [ n ] = 1 288 ∑ k = 0 287 X [ m ] [ k ] ⋅ e i 2 π k n 288 x[m][n] = \frac{1}{288} \sum_{k=0}^{287} X[m][k] \cdot e^{i 2\pi \frac{kn}{288}} x[m][n]=2881k=0∑287X[m][k]⋅ei2π288kn
- 对于矩阵中的每一列(共352列),应用上述IDFT公式。对于列 (m),第 (n) 个元素的计算为:
-
对每一行执行一维逆FFT:
- 对于经过列变换后得到的每一行(共288行),再次应用IDFT公式。对于行 (n),第 (m) 个元素的计算为:
x [ n ] [ m ] = 1 352 ∑ j = 0 351 x [ n ] [ j ] ⋅ e i 2 π j m 352 x[n][m] = \frac{1}{352} \sum_{j=0}^{351} x[n][j] \cdot e^{i 2\pi \frac{jm}{352}} x[n][m]=3521j=0∑351x[n][j]⋅ei2π352jm
- 对于经过列变换后得到的每一行(共288行),再次应用IDFT公式。对于行 (n),第 (m) 个元素的计算为:
结果与应用
通过以上步骤,我们得到了一个新的352x288的空间域图像矩阵,该矩阵反映了所有在频域进行的修改。这允许我们实现图像的修复、重建或其他形式的处理,从而得到改善或具有特定特征的图像。