我有一个数据集(一个数组),我需要找到它的周期性。我应该如何继续......请帮助。提前致谢。有些人说我可以使用FFT,但我不知道它将如何给我周期性。您的帮助表示赞赏。再次感谢。如何找到数据中的周期?
回答
您可以使用FFT,因为它会将数据集从值空间转换为频率空间。
这意味着你最终会得到一组合成的频率,它们会产生你想分析的初始输入。然后你就可以很容易地识别哪些是由特定的频率产生的主要contribuitions等会你了解有多少周期性存在的,哪些是最有影响力的人..
看看这里:http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/dft/
周期没有明确定义的术语。例如,这样的数据:
1,10个,11,10,1,11,如图1所示,10个,11,10,1,11,如图1所示,10个,11,10,如图1所示,11
你可以视为不精确但强周期为2的一个,并且精确周期为6.
对于确切的周期性,您可以简单地尝试将给定数据作为重复数据的子串重复两次。
对于实际的非精确周期性,可以使用噪声信号时域和频域方法。
时域一是自相关。它就像上面的子字符串搜索:搜索数据具有最大自相似性的移位值。
对于简单的信号计数阈值转换可能就足够了。频率范围方法包括使用FFT/FHT的方法:在频率范围内搜索最大值,它给出1/T的周期性。
另一种方法是使用Cepstrum。
对于这项任务,最好使用自相关。
FFT是错误的工具用于查找周期性。
例如,考虑通过将两个简单的正弦波(一个周期为2秒(0.5 Hz),另一个周期为3秒(0.333 Hz))相加来生成波形的情况。该波形将具有6秒的周期(即,2 * 3),但是傅里叶频谱将仅在0.5Hz和0.333Hz处显示两个峰值。
我发现一篇论文将基于FFT的周期图与自相关相结合,以提供关于信号周期性的更准确信息。我认为,这种方法可能是值得探讨:
这个新的文件一直没有很大的关注,谱聚类
Amariei,C.,富田,M. ,& Murray,DB(2014)。 Quantifying periodicity in omics data。细胞和发育生物学的前沿。
实施在一个R包可在oscillat.iab.keio.ac.jp。我与作者没有关系,但将代码放在GitHub here以便于访问(主脚本here)。
使用DFT并将行分组为主要频谱功率,很好用于我的经验。显然对于基因组学来说,它的设计很强大(在代码中注明它是computationally heavy),因此可能取决于应用程序。
- 1. 如何使用FFT查找周期函数的周期?
- 2. 根据天数查找周期。
- 3. 如何根据本周的下周日查找数据
- 4. 查找图表中的周期数(Python)
- 5. 如何在Rails中找到当前的双周期
- 6. 如何在Netezza中找到给定日期的一周开始?
- 7. 在Perl中,我如何找到上周四的日期?
- 8. 如何根据日期计算“周数”?
- 9. 数据周期 - 如何正常化?
- 10. 如何从周一获得的数据到今天的日期
- 11. 如何查找日期值的一周?
- 12. 在Excel中找到日期之前的周一或周日
- 13. 如何在定向加权图中找到最短周期?
- 14. 如何找出每周开始日期
- 15. 如何找到一年前同一周的日期?
- 16. 如何查找SQL Server 2008中的月数,周数,天数的日期差异?
- 17. 如何从数据库中选择几周的日期?
- 18. 查找给定周数的日期
- 19. 数据库关系周期
- 20. 如何在周期中添加新的数据与新的数据?
- 21. 如何计算/查找给定日期的周数?
- 22. 在PHP中找到最后一个周六到周五的完整日期
- 23. 如何在Firebase JobDispatcher中设置周期性任务的周期?
- 24. 每秒周期数到每微秒周期数
- 25. 如何找到不使用“禁止”边的哈密尔顿周期数?
- 26. 给定年,月,日和月的周数,我如何找到日期?
- 27. 在Python中插入周期性数据
- 28. 我如何才能找到周末betwee 2个日期
- 29. matplotlib:时间序列图中的周期数据下的标记周期标签
- 30. shell中的数字周期
你将如何实现自相关任务?你能给一个素描吗? – 2014-05-16 21:41:57
@MusséRedi:这个想法很简单:只要采用自相关并找到峰值(不是0)。那么唯一的问题是,如何做自相关并找出结果的高峰。你如何做到这一点将取决于你使用的是什么工具;尽管你可以从头开始,但大多数人会使用一些数据分析软件包。也就是说,我在这里的草图不会有帮助,所以我建议,选择一种你喜欢的方法,尝试一下,如果有什么不管用,请用一些细节问一个问题。 – tom10 2014-05-16 22:12:21
我尝试了第一个答案的方法http://stackoverflow.com/questions/643699/how-can-i-use-numpy-correlate-to-do-autocorrelation来自动关联我的数据。这给出了数字的降序。峰值并没有给出任何关于周期性的信息。当测试正弦函数时,我得到一个下降的振荡。我应该如何找到周期? – 2014-05-16 22:57:57