我正在寻找一些有效的高峰计数器算法,但无法找到符合我需求的算法:
我已经在这里查了一下: Peak signal detection in realtime timeseries data 但对我来说,这似乎不是一个可行的解决方案。
数据格式如下:
$a = [
'timestamp' = 1500391300.342
'power' => 383.87
];
在此图表上有14个峰值。所以我需要算法来循环计数。 令人惊讶的是,每个峰值可以超过10个点。峰值是连续的阵列,可以自我填充。可以访问至少100个先前的点,但无法访问未来的数据。
我还准备了包含15个峰和一些示例数据的Calc(ODC)文档。 Here it is
到目前为止,我有一个简单的算法来计算上升的斜率,但这不能正常工作(因为可能没有超过270W的斜率,它可能被分为5个点或跳跃可能太长而不能算作峰值):
if ($previousLog['power'] - $deviceLog['power'] > 270) {
$numberShots++;
}
提前致谢,任何提示都可以提供帮助。
答案 0 :(得分:0)
简单hysteresis应该有效: