Задержка в фильтрации Савицкого-Голая - PullRequest
0 голосов
/ 08 апреля 2019

Я применяю фильтр Савицкого-Голея к сигналу, используя функцию scipy.

Мне нужно рассчитать задержку отфильтрованного сигнала и определить, сколько он стоит за исходным сигналом.

Может ли кто-нибудь пролить свет на этот вопрос? Как я могу рассчитать это со Сципи? Как правильно интерпретировать результат?

Буду очень признателен!

Ответы [ 2 ]

0 голосов
/ 10 апреля 2019

Вы спрашиваете о задержке / задержке цифрового фильтра: единственный возможный ответ для фильтра в реальном времени состоит в том, что задержка полностью определяется размером окна фильтра.

Фильтры не в реальном времени (например, когда для фильтра предоставляется полный набор выборок, как, например, для фильтра scipy Savitsky-Golay), могут симулировать / имитировать фильтрацию во «время» текущей выборки, но только заглядывая в полное окно.

Некоторые могут возразить, что это, очевидно, как, например, Фильтр scipy Savitzky-Goay работает, и это совершенно правильно, но, тем не менее, если вы спрашиваете о задержке фильтра, которая может означать только задержку, которую фильтр реального времени будет применять к выборкам в реальном времени, единственное Возможный ответ: это только и несомненно / неопровержимо определяется размером окна.

0 голосов
/ 08 апреля 2019

Функция savgol_filter имеет нулевую задержку. Это реализуется путем явной обработки краев с использованием полиномиальной интерполяции, когда mode равен "interp" (по умолчанию), или путем заполнения, когда 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...