我读到为了计算两个信号x,y(例如1D)的卷积,天真的方法需要O(NM)
。
然而,在N> M的情况下,FFT用于计算FFT^-1(FFT(x)FFT(y))
,O(N log(N))
。
我想知道为什么这种复杂性被认为比前者更好,因为M不一定比log(N)大。此外,M通常是滤波器的长度,它不会与要滤波的信号一起缩放,实际上会为我们提供更加类似于O(N)
而不是O(N^2)
的复杂性。
答案 0 :(得分:2)
当滤波器的大小超过特定阈值时,频域中的快速卷积通常比直接卷积更有效。因此,对于相对较小的滤波器,直接卷积更有效,而对于更长的滤波器,基于FFT的卷积更有效。 m的实际值为此"临界点"取决于很多因素,但它通常介于10到100之间。