使用fft2比fft有什么优势

信息处理 fft 自由度
2022-02-16 14:46:40

假设我们有一个x大小为 的矩阵(8,8), 。众所周知,FFT(x) 按列执行 1D-FFT 变换。但是,FFT2(x) 执行 2D-FFT 变换。

在那种情况下,使用 2D-FFT 比 1D-FFT 有什么优势?

3个回答

他们执行两种不同的数学运算

  1. FFT 对输入矩阵的每一列(或第一个非单维)执行一维离散傅里叶变换
  2. FFT2 对整个矩阵执行完整的二维离散傅里叶变换。

您要使用哪一种取决于您的具体应用。一个本质上并不比另一个“更好”,它们只是两种不同的东西。尤其

F2D(X)=F(F(X))

对于在两个维度(即空间像素)上具有相似性质的二维输入,并且您希望在两者中实现相似的东西(例如找到低频分量),您可能需要 fft2()。

如上所述,fft2() 在功能上等同于对行执行 1-d fft,然后对结果列执行另一个 1-d fft。

-k

警告@Hilmar 的回答很简洁,我只是提供一个健谈的版本。

傅里叶运算对任何维度的数据的作用是提供一种替代(双重)描述,即每个“频率分量”的“信息量”(让我们说能量)。频率分量可以通过多种方式定义(跨越每个维度、径向等)

FFT 的作用通常是比直接运算更快地执行上述计算(快速,FFT 的第一个 F),但代价是一些已知的副作用。

FFT 通常描述通用概念或一维的标准快速傅里叶变换。为了让它们在更多维度上保持更快,它们通常以可分离的方式实现:在每个维度(行、列、深度等)中可分离地(独立地)使用 1D FFT。人们通常将它们称为FFT2 或 FFT2D用于 2D 图像(具有水平和垂直频率),或者在更多维度上、 FFT-NN