gpt4 book ai didi

r - R中的滑动FFT

转载 作者:行者123 更新时间:2023-12-04 08:27:52 24 4
gpt4 key购买 nike

R 中是否有用于计算样本的滑动 FFT 的函数或包?我的意思是,鉴于 fft(x[n:m]) 的输出,计算fft(x[1+(n:m)])有效率的。

理想情况下,我会找到两个在线版本(一开始我无法访问完整的时间序列,或者它太大而无法放入内存中,而且我不会尝试将整个运行的 FFT 保存在内存)和批处理版本(我给它整个样本 x 并告诉它运行窗口宽度 w ,从而产生维度 c(w,length(x)/w) 的复杂矩阵)。

此处提供了此类算法的示例(但我从未尝试过用任何语言实现它):

http://cnx.org/content/m12029/latest/

如果 R 中不存在这样的东西,那么我想这看起来并不难实现。

最佳答案

当我在这里发布一些东西时通常会发生,我一直在努力并想出了一个解决方案:

fft.up <- function(x1, xn, prev) {
b <- length(prev)
vec <- exp(2i*pi*seq.int(0,b-1)/b)
(prev - x1 + xn) * vec
}

# Test it out
x <- runif(6)
all.equal(fft.up(x[1], x[6], fft(x[1:5])), fft(x[2:6]))
# [1] TRUE

仍然有兴趣知道某些图书馆是否提供此功能,因为它也可能提供其他方便的东西。 =) 但是现在我的问题已经解决了。

关于r - R中的滑动FFT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10935481/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com