需要帮助将下面的红色图平滑为看起来像蓝色图的东西。
我尝试过移动平均线,问题是它没有消除噪音,而是进一步移动了曲线的位置。我想保持曲线下相同的位置和面积(这里是 100%)。拟合多个小曲线是这里的解决方案吗?或者是在 python 或 excel 中拟合曲线的方法?
您有多种选择。例如,您可以使用 Gaussian 或 Savitzky-Golay 滤波器。
以下代码片段允许您对其进行降噪。根据您的特定用例更改参数:
from scipy.ndimage import gaussian_filter1d
from scipy.signal import savgol_filter
np.random.seed(42)
x = np.linspace(0.0, 100.0, 300)
y = f(x) # your signal
y_gaussian = gaussian_filter1d(y, 3)
y_savgol = savgol_filter(y, 8, 2)
plt.plot(x, y, label="Noisy Signal")
plt.plot(x, y_gaussian, label="Gaussian Filter")
plt.plot(x, y_savgol, label="Savgol Filter")
plt.legend()
plt.show()