r - 为什么这个 R 代码没有产生相同的结果? (卷积与 FFT)

标签 r fft convolution

为什么这不会产生相同的结果?

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

关于r - 为什么这个 R 代码没有产生相同的结果? (卷积与 FFT),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60198758/

相关文章:

r - 按多个条件过滤

r - 错误 : vector memory exhausted (limit reached?) R 3.5.0 macOS

java - 音乐转录

Tensorflow:可训练变量掩蔽

r - 如何从R中的年份和儒略日(yday)获取日历日期

r - R : Find the catch 中的积分/积分

python - 傅立叶变换 2D 工件 - 我做错了什么?

python - 使用 numpy 进行快速傅里叶变换时将输入数组加倍

neural-network - 为什么尽管其复杂性低于卷积层,但在全连接层上花费的时间最多?

python - 在傅立叶域中用内核卷积图像