我正在尋找一些有效的峯值計數器算法,但無法找到一個適合我的需求:峯值計數器算法
- 類C語言(這將是PHP,但我可以翻譯來自JS/C/Cpp)
- 數據不能正向穿越
- 具有靜態閾值 - 檢測超過270瓦的峯值並且這些峯值較短,所以也存在時間限制。
我已經選中這裏: 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++;
}
在此先感謝,任何提示可能會有所幫助。
不清楚:您是否要求提供圖書館推薦(偏離主題),對發佈代碼的3行或某人的評論爲你寫代碼(也是題外話)? –
無論是圖書館推薦還是現成算法(已存在),我都不要求某人爲我編寫代碼,但純數學語言的算法不易於翻譯爲類似C的語言 – Kaminari