评估 2D DFT 的各个项(Goertzel?)

信息处理 自由度
2022-02-20 07:08:55

我正在寻找一种快速的方法来对许多任意频率的图像进行二维离散傅里叶变换。我知道 Goertzel 算法适用于 1D,但是否可以在 2D 中推广它?或者任何其他有用的算法?我知道但恐怕可能太慢的两个解决方案是直接使用 DFT 方程、零填充和执行 FFT。或者,频率可能不需要是完全任意的,而是可以是由具有高频率分辨率的 FFT 给出的频率阵列的子阵列。

1个回答

2D DFT 是可分离的,因此您可以通过在两个方向上应用 1D DFT 从概念上计算它。对于 Goertzel 算法,您可以首先将其应用于每一行的特定列,然后使用该列并再次应用它以获得单个术语。最有可能的是,您可以一次性重写 Goertzel 算法,但节省的计算量非常小(对于N×N图片,你需要N2+N使用可分离方法进行乘法运算,而 2D 版本将给出N2乘法)。