求助:如何用双高斯函数拟合双峰值数据以获得理想拟合曲线
双高斯拟合问题
- 蓝色曲线:原始数据
- 绿色曲线:仅针对第二个峰值的高斯拟合曲线
- 黄色曲线:双高斯组合拟合曲线
背景说明:
yraw:原始数据列表xpixel:X轴数据,取值范围为500-1250
以下是实现的高斯拟合代码:
def Gauss(x, amp, mu, sigma): return amp*np.exp(-((x-mu)/(np.sqrt(2)*sigma))**2) def bimode(x, amp1, mu1, sigma1, amp2, mu2, sigma2): return Gauss(x, amp1, mu1, sigma1) + Gauss(x, amp2, mu2, sigma2) ypg1 = np.asarray(yraw) # 将原始数据列表转为numpy数组 parameters, covarience = curve_fit(bimode, xpixel, ypg1, p0 = (78, 805, 15, 8, 950, 15)) # 对双高斯函数进行曲线拟合,传入初始参数猜测(振幅、均值、标准差) # 返回的parameters依次为:amp1, mu1, sigma1, amp2, mu2, sigma2 print(parameters) ygauss = bimode(xpixel, parameters[0], parameters[1], parameters[2], parameters[3], parameters[4], parameters[5])
期望通过双高斯函数得到能够包裹两个峰值的理想拟合曲线,当前拟合结果如下:
内容的提问来源于stack exchange,提问作者rowan
相关产品推荐
相关产品推荐

