R中的快速傅里叶变换

use*_*688 27 r fft time-series period spectral-density

我有一个数据集,其中包含12个月内动物的每小时访问次数.我想使用快速傅立叶变换来检查周期性模式和周期性.在过去,我使用Statistica就是为了这个; 但是,我想用R来得到光谱密度与周期的关系图.在R中有一个简单的方法吗?如果可能的话,我想确定12和24小时的活动高峰.

Jul*_*ora 37

您可以考虑以下功能.

  • periodogramTSA包中立即绘制一个周期图.
  • periodogramGeneCycle返回频率列表和估计的功率谱密度.它是一个包装函数,用于stats::spectrum设置一些特殊选项.
  • spectrumfrom stats允许您选择用于估算谱密度的方法:周期图或使用自回归过程.
  • cpgramstats图中得出累积周期图以及置信区间.

见,例如,?cpgram或者?spectrum对所有的细节,并记住它,比如,TSA::periodogramGeneCycle::periodogram当的函数的名称一致.

关于如何使用这些功能,还有大量关于在线的示例和教程.见这里的的使用fft这里的一个更广泛的教程.

此外,正如您可能已经知道的那样,必须取消给定的时间序列.因此,使用例如diff(x)代替x.最后,你的时间序列的长度必须可以被12整除,以便能够识别12和24小时的频率,它可以通过例如x[-(1:(length(x) %% 12))]x趋时间序列来实现.


Hon*_*Ooi 8

用于spectrum进行谱密度分析; 也fft用于基础快速傅里叶变换.

  • 不,`spectrum`是一个独立的谱密度分析仪; 它通过一些预处理和后处理以及绘图来调用`fft`. (4认同)