按时间顺序定位均匀间隔的尖钉

时间:2014-07-22 16:35:16

标签: algorithm language-agnostic data-analysis

我试图检测某些时间数据中是否存在(几乎)均匀间隔的尖峰。我只需要检测它们以便标记它们的存在。

我接收块中的数据(每块数百/几千),包含非负值的噪声图:

Normal data

然而,有时存在干扰,并且在均匀间隔的点处出现一些峰值:

Bad data

这个图显示了一个极端情况,当有很多峰值并覆盖大部分数据范围时。有时这些峰值较小,有时它们只覆盖范围的一小部分。

为了使事情更难,由于混叠,峰值几乎但不是完全均匀地间隔开(例如,在图片中,峰值出现在11,21,31,43,53,63,75 ......)。

我已经尝试了频率分析,但没有得到任何显着的结果(我假设每个块有这么少的数据点,并且峰值的混叠都对我不利)。 FFT中没有可辨别的模式。在两个图中都有一些峰值,但由于我们事先并未知道峰的频率,我们面临着同样的问题:在图中找到任意峰值,这次只在FFT图中找到。我在FFT中得到了几个不那么强的峰值,有时是与峰值无关的频率。

截至目前,我可以通过以下程序隔离峰值:

  1. 计算每个点周围的高斯平均值。
  2. 从值中减去高斯平均值。如果结果是否定的,则将其设为零。
  3. 仅保留本地最大值。
  4. 这给了我以下结果:

    Normal with peaks Bad with peaks

    但现在我被卡住了。关于如何从这里开始,我没有任何想法。

0 个答案:

没有答案