def sobel(x, window_len=7):
"""Sobel differential filter for calculating KDP.
This solution has been taken from StackOverflow :cite:`Sobel-linfit`
Returns
-------
output : differential signal (unscaled for gate spacing)
"""
s = np.r_[x[window_len - 1:0:-1], x, x[-1:-window_len:-1]]
w = 2.0 * np.arange(window_len) / (window_len - 1.0) - 1.0
w = w / (abs(w).sum())
y = np.convolve(w, s, mode='valid')
return (-1.0 * y[int(window_len / 2):len(x) + int(window_len / 2)] /
(window_len / 3.0))
评论列表
文章目录