In [110]: x = np.zeros(51)
In [111]: x[25] = 1
In [112]: y = savgol_filter(x, 25, 7)
In [113]: plot(x, label='x')
Out[113]: [<matplotlib.lines.Line2D at 0x1276b1ba8>]
In [114]: plot(y, '.-', markersize=5, label='y')
Out[114]: [<matplotlib.lines.Line2D at 0x1276cc358>]
In [115]: grid()
In [116]: legend()
Out[116]: <matplotlib.legend.Legend at 0x1276db9e8>
函数^{} 被设计为具有零滞后。这是通过在}不是{}时通过填充来实现的。在
mode
是"interp"
(默认值)时使用多项式插值显式地处理边,或者在{下面是一个单位脉冲
x
被过滤的例子。注意,滤波信号y
与脉冲对齐,没有延迟。在你在问数字滤波器的延迟/延迟:对于实时滤波器,唯一可能的答案是延迟完全由滤波器的窗口大小决定。在
非实时过滤器(例如,向过滤器提供全套样本的情况下,如scipy-Savitsky-Golay过滤器)可以假装/模拟当前样本的“时间”过滤,但只能向前看整个窗口。在
有些人可能会抗议说,这就是scipy Savitzky-Goay过滤器的工作原理,这是完全正确的,但是如果你问的是过滤器的延迟,这只意味着实时真实世界过滤器将应用于实时样本的延迟,唯一可能的答案是:这只是不可否认的由窗口大小决定的。在
相关问题 更多 >
编程相关推荐