【问题标题】:How Fast is Convolution Using FFT使用 FFT 进行卷积的速度有多快
【发布时间】:2018-04-12 11:04:18
【问题描述】:

我读到,为了计算两个信号 x,y(例如 1D)的卷积,naïve 方法采用 O(NM)

然而,FFT 用于计算 FFT^-1(FFT(x)FFT(y)),在 N>M 的情况下采用 O(N log(N))

我想知道为什么这种复杂性被认为比前一种更好,因为 M 不一定大于 log(N)。此外,M 通常是滤波器的长度,它不会随要过滤的信号而缩放,实际上会给我们提供更类似于O(N) 而不是O(N^2) 的复杂度。

【问题讨论】:

标签: time-complexity fft convolution


【解决方案1】:

当滤波器的大小超过特定阈值时,频域中的快速卷积通常比直接卷积更有效。因此,对于相对较小的过滤器,直接卷积更有效,而对于较长的过滤器,基于 FFT 的卷积更有效。这个“临界点”的实际 m 值取决于很多因素,但通常在 10 到 100 之间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 2012-12-10
    • 1970-01-01
    相关资源
    最近更新 更多