Hauptinhalt

Diese Seite wurde mithilfe maschineller Übersetzung übersetzt. Klicken Sie hier, um das englische Original zu sehen.

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

| |

Themen