gpt4 book ai didi

c# - 单维峰拟合

转载 作者:太空狗 更新时间:2023-10-29 21:07:16 28 4
gpt4 key购买 nike

我有一个浮点值的一维数组(c# doubles FYI),我需要找到这些值的“峰值”……就像画图一样。

我不能只取最高值,因为峰值实际上是一个波动很小的平台。这片高原正处于一堆噪音之中。我正在寻找一个解决方案,让我成为这个高原的中心。

示例数组可能如下所示:

1,2,1,1,2,1,3,2,4,4,4,5,6,8,8,8,8,7,8,7,9,7,5,4,4,3,3,2,2,1,1,1,1,1,2,1,1,1,1

峰值位于粗体部分的某处。

有什么想法吗?

最佳答案

您可以申请 low-pass filter到你的输入数组,以消除小的波动,然后在过滤后的数据中找到峰值。最简单的例子大概就是“棚车”filter,输出值是一定距离内的输入值之和从当前数组位置。在伪代码中,它看起来像这样:

for i = 0, samplecount-1
if (i < boxcar_radius) or (i >= (samplecount - boxcar_radius)) then
filtered_data[i] = 0 // boxcar runs off edge of input array, don't use
else
filtered_data[i] = 0
for j = i-boxcar_radius, i+boxcar_radius
filtered_data[i] = filtered_data[i] + input_data[j]
endfor
endif
endfor

如果您知道“高原”的宽度,您可以选择 boxcar 半径(大约是预期高原宽度的一半)来检测适当比例的特征。

关于c# - 单维峰拟合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2907602/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com