Можно использовать блок Find Delay, чтобы найти задержку между двумя сигналами и определить, когда длина окна корреляции недостаточно велика.
Блок Bernoulli Binary Generator сконфигурирован для вывода одной выборки в секунду. Выход ветвей к верхнему и нижнему пути. Верхний путь обеспечивает опорный сигнал к блоку Find Delay. Нижний путь обеспечивает путь задержки к блоку Find Delay. Блок Delay (Simulink), сконфигурированный для обработки основанных на дискретизации входов и для задержки сигнала на 10 выборки, находится в нижнем пути. Блок Find Delay сравнивает два входных сигналов и выводит вычисленную задержку и флаг изменения задержки. Временные возможности отображения отображают delay
и chg
выходы блока Find Delay.
model = 'cm_find_delay_mdl';
open_system(model);
Запустите модель с параметром Correlation window length блока Find Delay, равным 15 выборкам.
The chg
выходы порта 0
когда значение вычисленной задержки остается постоянным дольше, чем длина окна корреляции. Игнорируйте выходы блока Find Delay для первого периода окна корреляции, потому что нет данных предыдущего периода корреляции для сравнения. После первого периода окна корреляции вычисленный выход задержки показывает изменение задержки с течением времени и chg
выходы порта 1
, что указывает на изменение задержки в предыдущем окне корреляции для всех окон, за исключением одного из них. Этот результат указывает, что длина окна корреляции слишком короткая для блока Find Delay, чтобы точно вычислить задержку между этими двумя сигналами.
set_param([model,'/Find Delay'],'corrLength','15') sim(model)
Запустите модель с параметром Correlation window length блока Find Delay, установленным на 40 выборок.
Для этого запуска выхода вычисленная задержка оседает на 10 образцах на 50-секундной отметке и chg
порт переключается на 1
только для одного из периодов длины окна корреляции. После второго периода окна корреляции (на отметке 100 секунд) вычисленная delay
выход стабилизируется и chg
выводные переключатели в 0
для оставшейся части запуска.
set_param([model,'/Find Delay'],'corrLength','40') sim(model)
close_system(model,0);