正如你们在下图中看到的,我在频谱上做了一个高斯拟合,其中一些在y轴的负值部分:

这就是我做拟合的方法:
def Gauss(velo_peak, a, mu0, sigma):
res = a * np.exp(-(velo_peak - mu0)**2 / (2 * sigma**2))
return res
mu0 = sum(velo_peak * spec_peak) / sum(spec_peak)
sigma = np.sqrt(sum(spec_peak * (velo_peak - mu0)**2) / sum(spec_peak))
peak = max(spec_peak)
p0 = [peak, mu0, sigma]
popt,pcov = curve_fit(Gauss, velo_peak, spec_peak, p0, maxfev=100000)我的主要目标是找出频谱峰值的值,但这显然是对峰值的高估。是否有一些条件可以应用于高斯拟合函数?
发布于 2021-06-02 19:50:15
因为您可以定义任何您想要的函数,所以尝试向您的Gauss函数添加一个偏移量:
def Gauss(velo_peak, a, mu0, sigma, offs):
res = a * np.exp(-(velo_peak - mu0)**2 / (2 * sigma**2)) + offs
return reshttps://stackoverflow.com/questions/67804080
复制相似问题