快速傅立叶变换中的R(Fast Fourier Transform in R)

2019-08-04 14:09发布

我有一个小时的访问期间的12个月的动物数量的数据集。 我想使用的快速傅立叶变换检查循环模式和周期。 在过去,我已经使用STATISTICA此这一点; 不过,我想用R获得频谱密度与周期的曲线图。 有没有一种简单的方法R中做到这一点? 我想如果可能的话在活动确定12和24小时的峰值。

Answer 1:

您可以考虑以下功能。

  • periodogramTSA包立即绘制周期图。
  • periodogramGeneCycle返回频率和估计的功率谱密度的列表。 这是一个包装函数stats::spectrum与设置一些特殊的选项。
  • spectrumstats允许选择用于估计频谱密度的方法:要么周期图或使用自回归过程。
  • cpgramstats绘制的累积周期图与置信区间一起。

见,例如, ?cpgram?spectrum的所有细节,并记住它,例如, TSA::periodogramGeneCycle::periodogram时的函数的名称一致。

也有大量的实例和在线教程关于如何使用这些功能。 见这里为使用fft和这里的一个更广泛的教程。

而且,正如你可能已经知道,在给定的时间序列必须去趋势。 因此,使用,例如, diff(x)而不是x 。 最后,时间序列的长度必须被12整除,以能够识别12小时和24小时的频率,它可以通过,例如,可以实现x[-(1:(length(x) %% 12))] ,其中x是一个非趋势的时间序列。



Answer 2:

使用spectrum做一个谱密度分析; 也fft为基础快速傅立叶变换。



文章来源: Fast Fourier Transform in R