网上公开的均值滤波方法不能较好地对两端进行滤波(有边际效应,或者序列长度缩短),于是自己写了一个可以对两端也进行滤波的函数
def meanfilt(x, N):
x_pad = np.r_[np.zeros(N-1), x]
denominator = np.r_[np.arange(1, N+1), np.ones(len(x)-N)*N]
win_sum = np.convolve(x_pad, np.ones((N,)), mode='valid')
x_filt = win_sum / denominator
return x_filt