我需要用特定参数的高斯函数在3934.8A处进行卷积下一个曲线。
我看到的问题是我的曲线是离散数组,而高斯函数是定义良好的连续函数。如何让这个工作?
我看到的问题是我的曲线是离散数组,而高斯函数是定义良好的连续函数。如何让这个工作?
为了实现这一点,您需要创建一个与您的曲线在相同空间尺度上离散化的高斯分布,然后进行卷积。
具体而言,假设您的原始曲线在x轴上有N个等距点(其中N通常在50到10,000左右),则沿x轴的点间距将为(物理范围)/(数字范围) = (3940-3930)/N
,代码看起来像这样:
dx = float(3940-3930)/N
gx = np.arange(-3*sigma, 3*sigma, dx)
gaussian = np.exp(-(x/sigma)**2/2)
result = np.convolve(original_curve, gaussian, mode="full")
这是一个以零为中心的高斯函数,并不包含你提到的偏移量(对我来说,加上偏移只会增加混淆,因为卷积本身就是一种平移操作,所以用已经平移过的东西作为起点会让人感到困惑)。
我强烈建议保持所有的单位都是真实的物理单位,就像我之前做的那样。这样就清楚了,例如高斯函数的宽度是多少等等。