SavitzkyGolay滤波延迟

2024-05-16 16:16:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用scipy函数对信号应用Savitzky-Golay滤波器。在

我需要计算滤波信号的滞后,以及它比原始信号滞后多少。在

有人能解释一下这件事吗?我怎么能用scipy计算呢?我应该如何正确地解释结果?在

我将非常感激!在


Tags: 函数信号scipy滤波savitzkygolay
2条回答

函数^{}被设计为具有零滞后。这是通过在mode"interp"(默认值)时使用多项式插值显式地处理边,或者在{}不是{}时通过填充来实现的。在

下面是一个单位脉冲x被过滤的例子。注意,滤波信号y与脉冲对齐,没有延迟。在

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>

plot

你在问数字滤波器的延迟/延迟:对于实时滤波器,唯一可能的答案是延迟完全由滤波器的窗口大小决定。在

非实时过滤器(例如,向过滤器提供全套样本的情况下,如scipy-Savitsky-Golay过滤器)可以假装/模拟当前样本的“时间”过滤,但只能向前看整个窗口。在

有些人可能会抗议说,这就是scipy Savitzky-Goay过滤器的工作原理,这是完全正确的,但是如果你问的是过滤器的延迟,这只意味着实时真实世界过滤器将应用于实时样本的延迟,唯一可能的答案是:这只是不可否认的由窗口大小决定的。在

相关问题 更多 >