为什么这不会产生相同的结果?
x <- runif(10, 0, 1)
y <- runif(10, 0, 1)
convolve(x,y)
f <- fft(fft(x)*fft(y), inverse = TRUE)
f/length(f) ##not the same as convolve(x,y)....
如果这不是功能convolve
在做什么,那么还有什么?
它们不相等,因为convolve
具有默认参数conj = TRUE
,并且fft
返回复杂类型的向量。如果我们更改这些,结果的确是相同的:
all.equal(Re(f) / length(f), convolve(x, y, conj = FALSE))
# TRUE