在R中以高采样频率(~MHz)分析大时间轨迹的最佳实践

时间:2015-12-30 09:45:08

标签: python r signal-processing physics analysis

我对CRAN上的大量科学软件包(特别是小波)很感兴趣,并希望学习如何分析采用几个MHz采样的典型非平稳时间轨迹的时间轨迹,通常为2.5e6数据点。

我通常使用Python,但是恕我直言的高级科学软件包并不常见(与例如提供几种不同小波库的CRAN相比)(或者至少是非常新的并且通常质量有问题)。即使我决定只使用特定的R包进行Python的某些数据分析(可能通过rpy2),我仍然需要弄清楚哪种数据类合适。

适当的数据类

我认为我可以将ts数据类用于统一采样数据,但我不确定ts如何处理如此高的频率,因为它似乎是针对每隔几个采样的数据而设计的几个月左右。我还注意到,使用

是很常见的
time_trace <- cbind(t_samples, value_samples)

我也可以将列保持在data.frame但我怀疑性能不是最佳。

对于如此大且密集采样的时间轨迹,是否有推荐的方法?

处理不同的时间尺度

R非常受统计学家的欢迎,我怀疑时间序列被看到并且可能与物理学的某些分支不同,其中通常归结为过滤和分析不同的频率分量(通常称为数字信号处理)。我注意到有一些R包,但它们看起来不是很先进。

如果我只想在R中分析它们,我是否必须改变我对时间轨迹的思考方式?例如。将它们视为要针对统计模型进行测试的数据,其中几种模式对应于不同的时间尺度。我也不确定如何处理非平稳信号。

注意:

这不是关于R是否适合DSP的问题,我已经创建了一个关于here的问题。

1 个答案:

答案 0 :(得分:0)

根据标题,主要问题是关于R中的事情,虽然正文和评论表明第二个条目“R或Python更好地用于数字信号处理”存在辩论的可能性(我将添加MATLAB虽然),我只会尝试回答前者。

您可以以表格格式(数据框 - 您感兴趣的度量/值的一列和时间的一列)继续考虑数据,或者将数据放在两个向量中。只要你有足够的RAM,事情就会那么简单。合理的8Gb机器和一点点小心应该让你处理超过2.6E6数据点的100倍。

R包signalfftw当然包含了很好的插图(在文档和示例中),以便了解如何进行操作。