将voigt轮廓安装到排放管路上



我正在尝试使用scipy.optimize.curve_filt.将Voigt剖面拟合到发射线光谱

  1. 我不知道如何定义初始猜测
  2. 数据包含合并在一起的多条发射线。我还想对数据进行去卷积

有人能告诉我如何定义最初的猜测以及如何去卷积排放线吗。我对中间的那个感兴趣。

符合voigt 的数据

这是我的单Voigt轮廓拟合代码

#initial guesses
amp1 = max(y)
amp2 = max(y)
cen1 = 6565
cen2 = 6565
sigma = 10
wid = max(x) - min(x)
def voigt(x, amp1, cen1, sigma, amp2, cen2, wid):
return (amp1*(1/(sigma*(np.sqrt(2*np.pi))))*(np.exp(-((x-cen1)**2)/((2*sigma)**2)))) +
((amp2*wid**2/((x-cen2)**2+wid**2)) )

popt_voigt,pcov_voigt=scipy.optimize.curve_fit(voigt, x, y, p0 = [amp1,cen1,sigma,amp2,cen2,wid])
perr_voigt = np.sqrt(np.diag(pcov_voigt))

通常,这是固定Voigt轮廓的最大宽度的好主意,特别是当它们之间有重叠时。为此,使用参数";边界";例如额外的好处:为了帮助scipy在拟合过程中,您可以尝试在这里规范化您的数据并减少背景。

最新更新