【问题标题】:Making Gaussians Constrained by the FWHM使高斯受 FWHM 约束
【发布时间】:2012-05-16 17:17:51
【问题描述】:

首先我的数学有限,所以这个问题可能有一个简单的答案。所以,我使用以下等式来制作高斯分布:

height * np.exp( - ((x-mean)/width)**2 )

当我用上面的等式做 gussians 时,峰的宽度在哪里应用?是全宽半高吗?我用以下值制作了以下高斯:

height = 5
mean = 100
width = 10

当我计算 FWHM 时,它是 16.6510941453,因此峰宽不能应用于 FWHM。应用在什么地方?

我试图限制 FWHM,使 FWHM 比平均值小 10 倍。所以在上面的例子中,我希望高斯的 FWHM 为 10,平均为 100,峰值高度为 5。

【问题讨论】:

标签: python matplotlib gaussian


【解决方案1】:

在您的等式中,宽度参数实际上是sigma,这是高斯的标准偏差,而不是 FWHM。以下是在这两个属性之间进行转换的函数

from numpy import sqrt, log

def sigma2Gamma(sigma):
    '''Function to convert standard deviation (sigma) to FWHM (Gamma)'''
    return sigma * sqrt(2 * log(2)) * 2 / sqrt(2)

Gamma = sigma2Gamma(10)
print Gamma
# prints 16.651092223153956, which is what you saw in your graph

def Gamma2sigma(Gamma):
    '''Function to convert FWHM (Gamma) to standard deviation (sigma)'''
    return Gamma * sqrt(2) / ( sqrt(2 * log(2)) * 2 )

sigma = Gamma2sigma(10)
print sigma
# prints 6.0056120439322491, which is the standard deviation that will
# give a FWHM of 10

我建议将您的方程式更改为

height * np.exp( - ((x-mean)/Gamma2sigma(width))**2 )

如果你想输入 FWHM 而不是标准差

【讨论】:

    猜你喜欢
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 2020-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多