首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谱中多个峰的高斯拟合

谱中多个峰的高斯拟合
EN

Stack Overflow用户
提问于 2021-03-25 17:37:50
回答 1查看 213关注 0票数 0

我有一个光谱,我试图对其进行高斯拟合,但当我绘制它时,我意识到这不是一个单峰,而是两个或三个非常接近的峰。这是我的代码:

代码语言:javascript
复制
          from scipy.optimize import curve_fit
          #weighted mean
          mean = sum(velo_peak * spec_peak) / sum(spec_peak)
          sigma = np.sqrt(sum(spec_peak * (velo_peak - mean)**2) / sum(spec_peak))
          
          def Gauss(velo_peak, a, x0, sigma):
              return a * np.exp(-(velo_peak - x0)**2 / (2 * sigma**2))
          
          p0=[max(spec_peak), mean, sigma]
          popt,pcov = curve_fit(Gauss, velo_peak, spec_peak, p0)
          print("the velocities at the peak are",velo_peak)
          plt.plot(velo_peak*1e-9,spec_peak,'k')
          plt.plot(velo_peak*1e-9, Gauss(velo_peak, *popt), 'r-', label='fit')

我的问题是:有没有一种方法可以对多个接近的峰进行拟合?

我编辑了这个问题,这样就更清楚了:我想对两个峰进行高斯拟合,从图中可以看出,函数只对一个峰进行了拟合。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2021-03-25 23:09:20

在给定的离散时间戳对高斯分布进行采样,并从原始信号中减去它。然后它会找到“第二个”堆。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66796673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档