【问题标题】:How to find the periodicity in data?如何找到数据的周期性?
【发布时间】:2010-11-21 18:39:01
【问题描述】:

我有一个数据集(一个数组),我需要找到其中的周期性。我应该如何进行?有人说我可以使用 FFT,但我不确定它如何给我周期性。感谢您的帮助!

【问题讨论】:

    标签: algorithm c#-3.0 fft


    【解决方案1】:

    对于这个任务,最好使用自相关。

    FFT 是用于查找周期性的错误工具。

    例如,假设您的波形是通过将两个简单的正弦波相加而成的,一个周期为 2 秒 (0.5 Hz),另一个周期为 3 秒 (0.333 Hz)。此波形的周期为 6 秒(即 2*3),但傅立叶频谱仅在 0.5 Hz 和 0.333 Hz 处显示两个峰值。

    【讨论】:

    • 您将如何使用自相关来实现任务?能给个草图吗?
    • @MusséRedi:这个想法很简单:只需取自相关并找到峰值(不在 0 处)。那么唯一的问题是,如何进行自相关并找到结果的峰值。你如何做到这一点将取决于你使用的是什么工具;虽然你可以从头开始,但大多数人会使用一些数据分析包。也就是说,我在这里的草图不会有帮助,因此,我建议您选择一种您喜欢的方法,尝试一下,如果某些方法不起作用,请提出一些具体的问题。
    • 我尝试了stackoverflow.com/questions/643699/…的第一个答案的方法来自动关联我的数据。这给出了一个递减的数字序列。并且峰值没有给出任何关于周期性的信息。在对正弦函数进行测试时,我得到一个下降的振荡。我应该如何找到周期性?
    • @MusséRedi:我应该更清楚一点。我的意思是在 StackOverflow 上创建一个新问题。然后你可以展示你的代码、数字等,以及所有重要的细节,并得到一个完整的答案。 (虽然对于正弦波,周期将是第一个峰值的时间。它可能会因为您的实现细节而衰减,并且不是特别有意义,但是随着它越来越多地改变波形,重叠更少. 但实际上,只需在 SO 上发布一个新问题。)
    • 我发布了我的问题stackoverflow.com/questions/23706524/…你能看看吗?
    【解决方案2】:

    周期性不是很好定义的术语。比如这样的数据:

    1, 10, 1, 10, 1, 11, 1, 10, 1, 10, 1, 11, 1, 10, 1, 10, 1, 11

    您可以将其视为具有不精确但强周期为 2 的一个,以及视为具有 6 的精确周期。

    对于精确的周期性,您可以简单地尝试将给定的数据作为重复两次的数据子串来查找。

    对于真实的、有噪声的信号的非精确周期性,可以使用时域和频域方法。

    时域一是自相关。就像上面的子串搜索:搜索数据具有最大自相似度的移位值。

    对于简单的信号,计数阈值转换可能就足够了。

    频域方法包括一种使用 FFT/FHT 的方法:搜索频率谱中的最大值,给出 1/T 的周期性。

    另一种方法是使用Cepstrum

    【讨论】:

      【解决方案3】:

      这篇新论文并没有引起太多关注,光谱聚类

      Amariei, C.、Tomita, M. 和 Murray, D. B. (2014)。 Quantifying periodicity in omics data细胞和发育生物学的前沿

      oscillat.iab.keio.ac.jp 提供的 R 包中实现。我不隶属于作者,但将代码放在 GitHub here 以便于访问(主脚本 here)。

      使用 DFT 并将行分组为主要的光谱功率,根据我的经验很好用。显然,对于基因组学,它的设计是稳健的(在代码中注明为computationally heavy),因此可能取决于应用程序。

      【讨论】:

        【解决方案4】:

        您可以使用 FFT,因为它会将您的数据集从值空间转换为频率空间。

        这意味着您最终将拥有一组频率,这些频率将产生您想要分析的初始输入。然后你可以很容易地识别出哪些是由特定频率产生的主要贡献,这样你就会了解有多少周期性,哪些是最有影响力的。..

        看这里:http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/dft/

        【讨论】:

          【解决方案5】:

          我发现一篇论文将基于 FFT 的周期图与自相关相结合,以提供有关信号周期性的更准确信息。我认为这种方法值得研究:

          On Periodicity Detection and Structural Periodic Similarity

          【讨论】:

          • 链接好像死了,但我发现了类似的东西,使用SVD查找数据的周期性:pre.aps.org/abstract/PRE/v59/i4/p4013_1
          • 我刚刚检查了链接,它似乎为我打开了 PDF 文件。如果您在 Google Scholar 上搜索链接的标题,可能还有其他链接可以尝试。
          猜你喜欢
          • 1970-01-01
          • 2023-03-04
          • 2021-04-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-03-27
          • 2011-12-12
          相关资源
          最近更新 更多