gpt4 book ai didi

c++ - CUDA cufftPlan2d 计划大小问题

转载 作者:行者123 更新时间:2023-11-28 08:21:53 24 4
gpt4 key购买 nike

我正在研究 Nvidia CUDA sdk 的 convolutionFFT2D 示例背后的代码,但我不明白这一行的要点:

cufftPlan2d(&fftPlan, fftH, fftW/2, CUFFT_C2C);

显然,这为要运行的 FFT 初始化了一个复平面,但我看不到将平面宽度除以 2 的意义。

准确地说:fftH 和 fftW 是 imageX+kernelX+1 和 imageY+kernelY+1 维度的舍入值(仅出于速度原因)。我知道在频域中通常有一个正分量和一个相同频率的对称负分量。但这听起来像是将我的图像数据切掉了一半。

有人可以向我更好地解释一下吗?我从未使用过 FFT(我只知道傅立叶变换背后的理论)

最佳答案

当您执行实数到复数的 FFT 时,由于对称性,一半的频域数据是冗余的。不过,这只是 2D FFT 的一个轴的情况。您可以将 2D FFT 视为两个 1D FFT 操作,第一个对所有行进行操作,对于实值图像,这将为您提供复杂的行值。在第二阶段,您将 1D FFT 应用于每一列,但由于行值现在很复杂,这将是复杂到复杂的 FFT,输出中没有冗余。因此,您只需要在水平轴上设置 width/2 点,但在垂直轴上仍然需要 height pointe。

关于c++ - CUDA cufftPlan2d 计划大小问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5529212/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com