Algorithm 在时间序列中定位均匀分布的峰值

Algorithm 在时间序列中定位均匀分布的峰值,algorithm,language-agnostic,data-analysis,Algorithm,Language Agnostic,Data Analysis,我试图检测一些时间数据中几乎均匀分布的峰值。我只需要检测到它们,以便标记它们的存在 我接收的数据以块为单位,每个块的大小为数百/数千,由非负值的嘈杂图形组成: 但是,有时会出现干涉,一些峰值出现在均匀分布的点上: 此图显示了一种极端情况,即存在大量峰值并覆盖大部分数据范围。有时这些峰值较小,有时它们只覆盖范围的一小部分 更困难的是,由于混叠,峰值几乎但并非完全均匀分布。例如,在图片中,峰值出现在11、21、31、43、53、63、75等处 我尝试过频率分析,但没有得到任何显著的结果,我假设每个块

我试图检测一些时间数据中几乎均匀分布的峰值。我只需要检测到它们,以便标记它们的存在

我接收的数据以块为单位,每个块的大小为数百/数千,由非负值的嘈杂图形组成:

但是,有时会出现干涉,一些峰值出现在均匀分布的点上:

此图显示了一种极端情况,即存在大量峰值并覆盖大部分数据范围。有时这些峰值较小,有时它们只覆盖范围的一小部分

更困难的是,由于混叠,峰值几乎但并非完全均匀分布。例如,在图片中,峰值出现在11、21、31、43、53、63、75等处

我尝试过频率分析,但没有得到任何显著的结果,我假设每个块只有这么少的数据点和峰值的混叠都对我不利。FFT中没有可识别的模式。在这两个图中都有一些峰值,但由于我们事先不知道峰值的频率,我们面临着相同的问题:在图中定位任意峰值,只有这一次在FFT图中。在FFT中,我得到了几个不太强的峰值,有时是与峰值频率无关的频率

到目前为止,我可以通过以下步骤分离峰值:

计算每个点周围的高斯平均值。 从值中减去高斯平均值。如果结果为负,则将其设为零。 只保留局部最大值。 这给了我以下结果:


但现在我被卡住了。我一点也不知道如何从这里开始

当你尝试使用频率分析时发生了什么?这是我最初的想法,我很惊讶它没有起作用。@templatetypedef:FFT中没有可识别的模式。在这两个图中都有一些峰值,但由于我们事先不知道峰值的频率,我们面临着相同的问题:在图中定位任意峰值,只是这次在FFT图中。我将尝试计算自相关函数。尖峰列车的ACF将在尖峰间时间增量处有一个非常高的正峰值。寻找这样一个尖峰比在原始信号中找到列车要容易得多。@DiegoSánchez:FFT的高频部分应该只有一个非常强的尖峰,所以这不是同一个问题。我很难相信FFT方法不起作用。无论使用何种方法,都必须应用某种平滑/低通滤波器来消除噪声和锯齿的影响。你这样做了吗?