Matlab: обнаружение задержки ввода-вывода

#matlab #signal-processing #delay

#matlab #обработка сигналов #задержка

Вопрос:

У меня непрерывный процесс с 3 входами и 1 выходом. 3 входа последовательны по времени: вход 1 отстает от выхода на 30 минут, вход 2 на 15 и т.д.

Мой набор данных ниже показывает запуск системы после завершения работы:

 I1 I2 I3 Out
0 0 0 0
3 0 0 0
8 4 0 0
13 8 6 0
22 13 9 3.2
  

Видно, как запустился input1 и все остальное последовало.

Мой вопрос: что я должен искать в Matlab, чтобы определить такую задержку ввода-вывода для более сложных наборов данных?

Комментарии:

1. Капитан Очевиден на помощь: вы должны искать (на любом языке, не только MATLAB) изменения во входных значениях.

Ответ №1:

Вам следует внимательно присмотреться к xcorr

xcorr выполняет взаимную корреляцию между двумя векторами (обычно сигналами времени) и проверяет их соответствие в зависимости от временного сдвига между сигналами. Постоянная задержка ввода-вывода должна отображаться как локальное максимальное значение для коэффициента корреляции.

Комментарии:

1. Это может работать только в том случае, если входные данные действительно коррелированы — что может быть, а может и не быть.

2. Какой подход для вас более перспективен?