我要求how to programmatically judge spectrum bands和@detly建议使用半峰宽(半峰全宽)来确定峰的宽度。我四处寻找,发现半高宽可以用来拟合模型(我实际上是个门外汉!),尤其是Guassian模型。具体来说,2.354 * sigma
对于Guassian模型是the width。
我在看一个瓜西亚拟合,因为存在不好的峰。这张照片中有四个形状良好的山峰。然后是“双峰”(虽然两者可能都很重要)和两个展开峰。对于一个幼稚的半个半个身子来说,这将是一个不可能的挑战。
如果Scip/Numpy中的峰值位于x坐标的近似位置,您能否帮助生成它的guassian拟合(用于半高宽计算)?如果Guassian是个糟糕的选择,那就换个方案吧。
拟合高斯函数是一种很好的方法。如果你对初始参数值有okish的猜测,你可以尝试一次全部猜出来。一个很大的问题是噪声,实际上你可能想单独拟合每个峰值(即,只考虑一次给定的峰值所处的范围),或者在你的数据中得到一条基线噪声曲线并减去它。
这里有一些代码,试图适合多高斯。我已经输入了一些相当宽松的参数,我认为是8个最突出的山峰,加上一个额外的非常广泛的高斯试图捕捉背景噪音。在处理之前,我稍微清理了一下你发布的图片,以便从中获取数据(移除鼠标光标和轴边,并反转图片)。
代码:
以下是拟合的输出高斯参数:
相关问题 更多 >
编程相关推荐