我需要使用以3934.8A为中心的特定参数的高斯函数对下一条曲线进行卷积。

我看到的问题是我的曲线是一个离散数组,而高斯曲线将是一个定义明确的连续函数。我该如何进行这项工作?

最佳答案

为此,您需要创建一个高斯分布,该高斯分布与曲线在相同的空间比例下离散,然后进行卷积。

具体来说,假设您的原始曲线的N点沿x轴均匀分布(其中N通常在50到10,000左右之间)。然后,沿x轴的点间距将为(physical range)/(digital range) = (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")

在这里,这是一个以零为中心的高斯,不包括您所引用的偏移量(对我而言,这只会增加混淆,因为卷积的本质是翻译操作,因此从已翻译的内容开始会造成混淆)。

我强烈建议像上面一样,将所有内容都保留在实际的物理单元中。这样就很清楚了,例如,高斯的宽度是多少,等等。

关于Python-高斯卷积,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24148902/

10-12 22:04