将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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...