将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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...