【发布时间】:2023-03-04 17:23:01
【问题描述】:
我有一条熵曲线(1d numpy 数组),但这条曲线有很多噪音。 我想通过平滑删除噪音。
这是我的曲线图:
我已尝试使用 Kaiser-Bessel 滤波器制作卷积产品来解决此问题:
gaussian_curve = window_kaiser(windowLength, beta=20) # kaiser filter
gaussian_curve = gaussian_curve / sum(gaussian_curve)
for i in range(0, windows_number):
start = (i * step) + 1
end = (i * step) + windowLength
convolution[i] = (np.convolve(entropy[start:end + 1], gaussian_curve, mode='valid'))
entropy[i] = convolution[i][0]
但此代码返回此错误:
File "/usr/lib/python2.7/dist-packages/numpy/core/numeric.py", line 822, in convolve
raise ValueError('v cannot be empty')
ValueError: v cannot be empty
具有“有效”模式的 numpy.convolve 运算符返回重叠中的中心元素,但在这种情况下,返回一个空元素。
有没有一种简单的方法来应用平滑?
谢谢!
【问题讨论】:
标签: python numpy signal-processing gaussian smoothing