我一直在寻找一种对时间序列进行傅立叶分析的简单方法。 R的FDA软件包中的功能fourier()
似乎是我想要的,但我无法弄清其内部功能。
这是一个简单的示例:
maxTime <- 10
omega <- (2*pi)/1
time <- seq(0, maxTime, maxTime/200)
signal <- 5*cos(omega*time)
#
library(fda)
fit <- fourier(signal, 2)
#
summary(fit)
const sin1 cos1
Min. :0.3162 Min. :-0.4303 Min. :-0.4472
1st Qu.:0.3162 1st Qu.:-0.2525 1st Qu.:-0.4419
Median :0.3162 Median : 0.0000 Median :-0.3691
Mean :0.3162 Mean : 0.0000 Mean :-0.1376
3rd Qu.:0.3162 3rd Qu.: 0.2525 3rd Qu.: 0.2525
Max. :0.3162 Max. : 0.4303 Max. : 0.4472
我想知道,上面的值是如何计算的? 软件包文档中没有对此进行解释;有人知道吗?
答案 0 :(得分:0)
对函数的描述:请注意,此函数上一次修改是在2007年(https://github.com/cran/fda/blob/master/R/fourier.R),因此,较新的文档可能更准确,或者更好地研究函数本身可能会提供更多信息。
计算傅立叶级数的NDERIV导数 期间为NBASIS的功能,这些功能正在评估中 在向量X中的值
通过NBASIS函数值矩阵返回N
注意:基函数的数量始终为奇数。如果论点 NBASIS是偶数,它增加了一个。