Выравнивание двух сигналов путем задержки самого раннего сигнала
[ оценивает задержку D между двумя входными сигналами, Xa,Ya] = alignsignals(X,Y)X и Yи возвращает выровненные сигналы, Xa и Ya.
Если Y задерживается в отношении X, то D является положительным и X задерживается на D-образцы.
Если Y продвинут по отношению к X, то D отрицательный и Y задерживается на выборки -D.
Задержки в X или Y может быть введено путем добавления нулей.
[ сохраняет длины выровненных сигналов, Xa,Ya] = alignsignals(X,Y,maxlag,'truncate')Xa и Ya, аналогично входным сигналам, X и Yсоответственно.
Если оцененная задержка, D, положительна, то D нулей предшествуют X и последние D выборки X усечены.
Если оцененная задержка D отрицательна, то нули -D предшествуют Y и последние -D выборки Y усечены.
Примечания
X и Y - векторы строк или столбцов длиной LX и LY соответственно.
Если D ≥ LX, то Xa состоит из нулей LX. Все образцы X потеряны.
Если -D ≥ LY, то Ya состоит из нулей LY. Все образцы Y потеряны.
Во избежание назначения определенного значения maxlag при использовании 'truncate' опция, установка maxlag кому [].
Вы можете найти теорию об оценке задержки в спецификации finddelay (см. Алгоритмы).
alignsignals функция использует оцененную задержку D для задержки самого раннего сигнала, так что два сигнала имеют одинаковую начальную точку.
Как указано для finddelay функция, пара сигналов не обязательно должна быть точной задержанной копией друг друга. Однако сигналы могут быть успешно выровнены только при наличии достаточной корреляции между ними. Для получения дополнительной информации об оценке функций ковариации и корреляции см. [1].
Если сигналы имеют такие функции, как импульсы или переходы, их можно более эффективно выровнять с помощью функций измерения вместо корреляции. Пример см. в разделе Выравнивание двух двууровневых волн.
[1] Orfanidis, Sophocles J. Оптимальная обработка сигналов. Введение. 2-й эд. Энглвуд Клиффс, Нью-Джерси: Прентис-Холл, 1996.
dtw | edr | finddelay | findsignal | xcorr