Signale mit unterschiedlichen Startzeiten ausrichten
Viele Messungen beinhalten Daten, die asynchron von mehreren Sensoren erfasst werden. Wenn Sie die Signale integrieren möchten, müssen Sie sie synchronisieren. Die Signal Processing Toolbox™ verfügt über Funktionen, mit denen Sie genau das tun können.
Betrachten wir beispielsweise ein Auto, das eine Brücke überquert. Die von ihm erzeugten Vibrationen werden von drei identischen Sensoren an verschiedenen Stellen gemessen. Die Signale haben unterschiedliche Ankunftszeiten.
Laden Sie die Signale in den MATLAB®-Workspace und stellen Sie sie grafisch dar.
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')

Das Signal s1 hinkt s2 hinterher und eilt wiederum s3 voraus. Die Verzögerungen können mit finddelay exakt berechnet werden. Sie sehen, dass s2 s1 um 350 Samples voraus ist, s3 s1 um 150 Samples hinterherhinkt und s2 s3 um 500 Samples voraus ist.
t21 = finddelay(s2,s1) t31 = finddelay(s3,s1) t32 = finddelay(s2,s3)
t21 = 350 t31 = -150 t32 = 500
Richten Sie die Signale aus, indem Sie das frühere Signal unverändert lassen und die Verzögerungen aus den anderen Vektoren herausschneiden. Um der von MATLAB® verwendeten Eins-basierten Indizierung Rechnung zu tragen, addieren Sie 1 zu den Verzögerungsdifferenzen. Bei dieser Methode werden die Signale unter Verwendung der frühesten Ankunftszeit, nämlich der von s2, als Referenz ausgerichtet.
axes(ax(1)) plot(s1(t21+1:end)) axes(ax(2)) plot(s2) axes(ax(3)) plot(s3(t32+1:end))

Verwenden Sie alignsignals, um die Signale auszurichten. Die Funktion arbeitet, indem sie frühere Signale verzögert. Verwenden Sie daher als Referenz die späteste Ankunftszeit, also die von 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)

Die Signale sind nun synchronisiert und bereit für die weitere Verarbeitung.
Siehe auch
alignsignals | finddelay | xcorr