開始時間が異なる信号の整列
R2026b実測では、複数のセンサーによって非同期に収集されたデータを含む場合が往々にしてあります。信号を積分するには、信号を同期しなければなりません。Signal Processing Toolbox™ には、そのための関数があります。
たとえば、橋を渡る自動車を考えます。自動車の振動は、異なる点に置かれた 3 つの同じセンサーで測定されます。信号の到来時間はさまざまです。
信号を MATLAB® ワークスペースに読み込み、プロットします。
load relatedsig tiledlayout("vertical") ax1 = nexttile; plot(s1) ylabel("s_1") ax2 = nexttile; plot(s2) ylabel("s_2") ax3 = nexttile; plot(s3) ylabel("s_3") xlabel("Samples") linkaxes([ax1 ax2 ax3],"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
進んだ信号はそのままにし、他のベクトルから遅延を取り除いて信号を整列させます。MATLAB® で使用される 1 ベースのインデックスを考慮して、ラグ差には 1 を追加します。この方法は、s2 による最も早い到着時間を基準として使用し、信号を整列させます。
axes(ax1) plot(s1(t21+1:end)) axes(ax2) plot(s2) axes(ax3) plot(s3(t32+1:end))

alignsignals を使用して信号を整列させます。この関数は、先行する信号を遅らせることで機能するため、s3 による最も遅い到着時間を基準として使用します。
[x1,x3] = alignsignals(s1,s3); x2 = alignsignals(s2,s3); axes(ax1) plot(x1) axes(ax2) plot(x2) axes(ax3) plot(x3)

これで信号が同期され、次の処理に進む準備ができました。
参考
alignsignals | finddelay | xcorr