使用C#检测噪声数据集中的峰值

时间:2016-12-30 15:03:31

标签: c# signal-processing

我想在我创建的数据集合中找到一组特定的最大点。 在视觉上它看起来像这样: 蓝点是我的数据,绿线是图,黄色我标记了我想要找到的最大点。 enter image description here

到目前为止,我试图通过局部平均值和滚动窗口来“平滑”该函数,但是这会修改最大值并且不能完全平滑它以使每个有噪声的峰值看作单个最大值。

我可以在代码中对这个数组进行一些转换,以便更容易地提取这些值吗?

我在用C#写作。 我能找到的最接近的帖子是R,我不知道什么都不知道。

1 个答案:

答案 0 :(得分:1)

对于没有统计数据包的真正天真但有效的方法:如果要查找连续函数的所有局部最大值,它们对应于“方向”的变化'功能(升序或降序)。每当它从asc - > desc开始,你就有一个局部最大值。

像这样:https://dotnetfiddle.net/4YPz2A

这会给你更多的黄色'匹配比你想要的;但你可以进入正确的'通过平滑数据集来量(例如,首先平均每3个连续数据点)。