微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将Voigt轮廓拟合到发射线

如何解决将Voigt轮廓拟合到发射线

我正在尝试使用scipy.optimize.curve_fit使Voigt轮廓适合发射谱线。

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

谁能告诉我如何定义初始猜测以及如何对发射谱线进行反卷积。我对中间一个感兴趣。

the data fitted with 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,wid])
perr_voigt = np.sqrt(np.diag(pcov_voigt))

解决方法

通常,这是固定Voigt配置文件最大宽度的好主意,尤其是当它们之间有重叠时。为此,请使用参数“ bounds”。 奖励:为帮助进行拟合过程,您可以尝试标准化数据并减少背景here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。