Многие измерения включают в себя данные, собранные в асинхронном режиме несколькими датчиками. Если вы хотите интегрировать сигналы, вы должны синхронизировать их. В Toolbox™ обработки сигналов есть функции, которые позволяют вам делать именно это.
Например, рассмотрим автомобиль, пересекающий мост. Создаваемые им колебания измеряются тремя одинаковыми датчиками, расположенными в разных точках. Сигналы имеют разное время поступления.
Загрузите сигналы в рабочее пространство MATLAB ® и постройте их график.
load relatedsig ax(1) = subplot(3,1,1); plot(s1) ylabel('s_1') ax(2) = subplot(3,1,2); plot(s2) ylabel('s_2') ax(3) = subplot(3,1,3); plot(s3) ylabel('s_3') xlabel('Samples') linkaxes(ax,'x')

Сигнал s1 задержки s2 и, в свою очередь, выводы s3. Задержки могут быть вычислены точно с использованием finddelay. Вы видите, что s2 ведет s1 на 350 образцов, s3 задержки s1 на 150 образцов, и s2 ведет s3 на 500 образцов.
t21 = finddelay(s2,s1) t31 = finddelay(s3,s1) t32 = finddelay(s2,s3)
t21 = 350 t31 = -150 t32 = 500
Выстраивать сигналы, оставляя предыдущий сигнал нетронутым и отсекая задержки от других векторов. Добавьте 1 к разнице запаздывания, чтобы учесть одномерное индексирование, используемое MATLAB ®. Этот метод выравнивает сигналы, используя в качестве ссылки самое раннее время прихода, то есть s2.
axes(ax(1)) plot(s1(t21+1:end)) axes(ax(2)) plot(s2) axes(ax(3)) plot(s3(t32+1:end))

Использовать alignsignals для выравнивания сигналов. Функция работает, задерживая более ранние сигналы, поэтому используйте в качестве ссылки самое последнее время прихода, что s3.
[x1,x3] = alignsignals(s1,s3); x2 = alignsignals(s2,s3); axes(ax(1)) plot(x1) axes(ax(2)) plot(x2) axes(ax(3)) plot(x3)

Сигналы теперь синхронизированы и готовы для дальнейшей обработки.
alignsignals | finddelay | xcorr