快速傅立叶变换中的R

问题描述 投票:26回答:2

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

r time-series fft period spectral-density
2个回答
37
投票

您可以考虑以下功能。

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

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

也有大量的实例和在线教程关于如何使用这些功能。见hereffthere的使用率更加广泛的教程。

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


8
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.