Python – 高斯卷积

我需要使用以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")

这里是一个以零为中心的高斯,并不包括你所指的偏移(对我来说只会增加混淆,因为卷积本质上是一个翻译操作,所以从已翻译的东西开始是令人困惑的).

我强烈建议将所有内容保存在真实的物理单元中,就像我上面所做的那样然后很清楚,例如,高斯的宽度是什么,等等.

点赞