【问题标题】:Can anyone explain the difference between fftw_plan_dft_2d and fftw_plan_dft_1d?谁能解释 fftw_plan_dft_2d 和 fftw_plan_dft_1d 之间的区别?
【发布时间】:2017-10-23 18:46:33
【问题描述】:

两者有什么区别? 我有一个图像矩阵,我已将其展平为 fftw_complex 连续数组? 我应该选择 fftw_plan_dft_2d 还是 fftw_plan_dft_1d 哪个?

我都试过了,但两者的行为完全不同?

我尝试阅读文档,但对它们的差异和用法了解不多。

【问题讨论】:

    标签: signal-processing fft fftw


    【解决方案1】:

    我相信您的问题实际上是关于傅立叶变换的。具体来说,一维 FFT 和二维 FFT 有什么区别。

    简短的回答是 2D FFT 与以下内容相同:

    1. 对矩阵中的每一行独立应用一维 FFT。
    2. 获取第 1 步的结果,并将一维 FFT 独立应用于矩阵中的每一列。

    两个 fftw 计划都采用展平的复数矩阵,但是,fftw_plan_dft_2d 使用 n0 和 n1 大小参数能够正确地将您的复数数组解释为 2D 矩阵。

    【讨论】:

      【解决方案2】:

      大小为 n 的信号 X 的一维 dft Y 写入:

      2D dft is defined as

      给定一维变换沿数组每个维度的可分积。

      因此,2D dft 包括在第一个维度上取 dft,然后在另一个方向上取 dft。它写道:

      请注意,首先将 dft 放在另一个维度上不会改变结果:

      确实,总和可以是factored,另见the doc of opencv

      它与整个展平阵列上的一维 dft 不同,后者不具有此属性。基于卷积到内核(高斯或其他)的 2D 线性图像滤波器依靠 2D dft 将卷积转换为傅里叶空间中的逐点乘法。如果图像是二维的,则变换后的图像也是二维的。请参阅此course 以获取说明。

      【讨论】:

        猜你喜欢
        • 2019-05-13
        • 2011-01-09
        • 2014-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-28
        • 2010-12-23
        • 2013-09-30
        相关资源
        最近更新 更多