Verfasst am: 02.02.2015, 16:01
Titel: Ermittlung der Laufzeitdifferenz zwischen 2 Signale
Hallo Leute,
im Rahmen eines Projektes soll die zeitlich Differenz zwischen 2 Signalen gemessen werden. Es liegt eine Platte vor, die mit einem Impulshammer in der Mitte angeregt wird, und einem Beschleunigungssensor, der auf die Auswirkung reagiert. (siehe Anhang Hammer-Sensor1.jpg)
Per Definition soll eine Messung mit der Kreuzkorrelation möglich sein. Eine Methode geht über hcorr = dsp.Crosscorrelator. Den Beispielcode habe ich folgendermaßen angepasst:
Code:
hcorr = dsp.Crosscorrelator;
t=Zeit_s;
x1=Hammer_N;
x2=Sensor1;
y=step(hcorr,x1',x2'); %computes cross-correlation of x1 and x2
figure,plot(t,x1,'b',t, x2, 'g');
legend('Input signal 1','Input signal 2') figure, plot(y); title('Correlated output')
[~,Zeile] = min(abs(y-max(y))); % in welcher Zeile liegt das Maximum?
dt=t(Zeile); % Zeitdifferenz durch Wertzuweisung der Zeile vom Zeitvektor
Das Ergebnis y ist im Anhang hcorr.jpg zu sehen. Mit dieser Berechnung komme ich auf eine Zeitdifferenz von 3.2197e-04 Sekunden, was zu viel ist. Ich weiß leider nicht, ob diese Variante nicht so gut für diesen Anwendungsfall geeignet ist oder ob ich einen Fehler gemacht habe.
Eine andere Berechnungsmöglichkeit soll mit dem Befehl xcorr möglich sein. Mein Code dazu:
wodurch sich eine ähnliche Zeitdifferenz von 3.6071e-04 Sekunden ergibt. Wenn ich jedoch den Wert von lagDiff als Zeilenwert im Zeitvektor suche, dann ergibt sich eine Zeitdifferenz von 1.3929e-04 Sekunden, der wesentlich besser aussieht. Zum Vergleich eine nähere Ansicht der 2 Signale in Hammer_Sensor1_b.
Sind meine Berechnungen und Interpretationen der Ergebnisse richtig? Ich habe mir noc viele andere Beispiele angeschaut und durchprobiert, jedoch erzielten diese beiden Varianten die besten Ergebnisse. Ich bin für jeden Hinweis dankbar.
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.