R的FDA Fourier()函数-它如何工作?

时间:2019-01-27 11:07:11

标签: r time-series fft curve-fitting

我一直在寻找一种对时间序列进行傅立叶分析的简单方法。 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

我想知道,上面的值是如何计算的? 软件包文档中没有对此进行解释;有人知道吗?

1 个答案:

答案 0 :(得分:0)

对函数的描述:请注意,此函数上一次修改是在2007年(https://github.com/cran/fda/blob/master/R/fourier.R),因此,较新的文档可能更准确,或者更好地研究函数本身可能会提供更多信息。

  

计算傅立叶级数的NDERIV导数     期间为NBASIS的功能,这些功能正在评估中     在向量X中的值

     

通过NBASIS函数值矩阵返回N

     

注意:基函数的数量始终为奇数。如果论点     NBASIS是偶数,它增加了一个。