【发布时间】:2017-08-26 16:48:46
【问题描述】:
我正在寻找一些有效的峰值 counter 算法,但找不到适合我需要的算法:
- 类 C 语言(将使用 PHP 但我可以从 JS/C/Cpp 翻译)
- 数据不可向前遍历
- 具有静态阈值 - 检测超过 270 瓦的峰值并且这些峰值很短,因此还有时间限制。
我已经在这里检查过: Peak signal detection in realtime timeseries data 但这对我来说似乎不是一个可行的解决方案。
数据格式如下:
$a = [
'timestamp' = 1500391300.342
'power' => 383.87
];
在这张图表上有 14 个峰值。所以我需要算法来循环count它们。 令人惊讶的是,每个峰可以有超过 10 个点。峰值是不断填充自身的连续数组。可以访问至少 100 个以前的点,但无法访问未来的数据。
我还准备了包含 15 个峰和一些示例数据的 Calc (ODC) 文档。 Here it is
到目前为止,我有一个简单的算法来计算上升斜率,但它不能正常工作(因为可能没有超过 270W 的斜率,它可能被分为 5 个点或跳跃可能太长而不能算作峰值):
if ($previousLog['power'] - $deviceLog['power'] > 270) {
$numberShots++;
}
提前致谢,任何提示都会有所帮助。
【问题讨论】:
-
不清楚:您是在要求图书馆推荐(题外话)、对已发布代码的 3 行的评论还是有人为您编写代码(也是题外话)?
-
无论是库推荐还是现成的算法(已经存在),我并不是要求有人为我编写代码,但纯数学语言的算法不容易翻译成类 C 语言