You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

频域下采样能否获得与时域带步长卷积相同结果?

频域实现卷积+下采样的问题解析

嗨,我来帮你理清这个问题~首先明确结论:你当前先将频域卷积结果转回时域再做下采样的做法是完全正确的,能得到和时域卷积后下采样一致的结果。

为什么不能直接用时间尺度性质在频域提前处理?

时间尺度性质(比如时域信号x(at)的FFT对应1/|a| X(f/a))描述的是单一信号的时域缩放对应的频域变换,但咱们这里的操作是「卷积后下采样」,这两个操作的顺序不能随意交换,更不能直接对原始图像或核的FFT应用尺度变换来模拟:

  • 下采样本质是时域抽取,会引入频率混叠(除非信号带宽小于折叠频率),而卷积的频域是乘积,这两个操作的组合对应的频域变换不是简单的尺度变换。
  • 如果你提前对fft_img或fft_kernel用时间尺度性质,相当于先对原始信号做缩放再卷积,这和「卷积后下采样」的数学意义完全不同,自然会得到错误的卷积结果。

想在频域直接实现「卷积+下采样」怎么办?

如果是为了提升效率(避免转回完整的时域卷积结果),可以参考多相滤波的频域实现思路:

  • 以步长2为例,卷积后的时域结果time_conv2d的偶数索引和奇数索引样本,对应频域上对fft_conv2d拆分出的两个多相分量。
  • 你可以将fft_conv2d按频域拆分,对每个分量做适当处理后再分别逆FFT,就能直接得到下采样后的结果。
  • 不过这种方法实现起来比直接转回时域再下采样复杂很多,只有当图像和核尺寸极大,转回完整时域的开销过高时,才有必要考虑。

再看你的代码示例

你的代码逻辑完全贴合卷积的频域等价性:

  1. 先补零扩展到fft_dims做FFT,保证循环卷积等价于线性卷积;
  2. 频域元素相乘得到卷积的频域结果;
  3. 逆FFT转回时域得到完整的线性卷积结果;
  4. 最后做下采样抽取。
    这个流程得到的结果和直接在时域做线性卷积后下采样的结果完全一致(仅存在可忽略的浮点计算误差)。

内容的提问来源于stack exchange,提问作者Diego Ruiz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:04:04