|
|
Geschwindigkeitsmessung mittels Kreuzkorrelation |
|
Chloe |
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 15.10.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.10.2014, 09:12
Titel: Geschwindigkeitsmessung mittels Kreuzkorrelation
|
|
|
|
|
Hallo,
ich bin grad mit meinem Projekt, 'Geschwindigkeitsmessung mittels Kreuzkorrelation' beschäftigt, in dem man für 2 Signale, (die von zwei Sensoren mit Abstand 0.064 m bei der Bewegung eines Fahrzeuges erzeugt werden) die Kreuzkorrelation und somit die Geschwindigkeit bestimmt.
Meine Idee ist als Anfang nun Frame by Frame die Korrelation, max-wert, time-lag und somit die Geschwindigkeit auszurechnen, also Vektor mit länge num_frames: jedes Frame-ein Geschw.wert. SO etwa :
signal1 = load('...'); %hier die 2 Messwerte
signal2 = load('...');
a=0.064;
fs = 2000; &frequenz pro sec
N = length(signal1); %length(signal1)=length(signal2) = 90001
insg_sec = N/fs ; %Signal in sec (4,5005 sec)
frame_duration=0.1; %länge eines fensters in sec
frame_len=frame_duration*fs;
num_frames=floor(N/frame/len);
for k1=1:num:_frames
k2=1:num_frames
frame1=signal1((k1-1)*frame_len+1:frame_len*k1);
frame2=signal2((k2-1)*frame_len+1:frame_len*k2);
[C21, lag1]=xcorr(frame1, frame2, 'coeff'); % kreukorrelation für jedes Fenster
[~,Index] = max(C21); %finde max-value
time_lag=abs(lag1(Index))./fs;
new_frame(k)=a./time_lag; %Gesw.wert
end
....
Mathematisch gesehen wird diese Methode auch nicht optimal sein, da es dazu kommen könnte, dass die eigetliche Korrelation erst in dem Nachbarn-Frame stattfindet usw.. Ich habe mir noch überlegt, ich mache dann nur ein Fenster mit Länge 0.2 sec und Schrittweite z.B 0.15..
Hier bin ich leider stehengeblieben. Ich bin nicht so ein Matlab-Profi, deswegen wende ich mich an euch und bitte um Hilfe.
Hat jemand vlt Idee, wie könnte man das Program effizienter schreiben, damit das Ganze ein Sinn macht und bei der Bewegung des Fahrzeuges immer die Geschwindigkeit angezeigt wird?
Ich werde auch die tatsächlich gemessenen Signale hochladen (Signal1, Signal2), mir den man leider nicht so gut arbeiten kann, vlt hat jemand eine Idee was so schief geht. Wenn ich andere einfache Messwerte nehme: z.b test2_1 und test2_2 funktionisert es wieder...
ich bin schon ein wenig verwirrt
Danke im Voraus !
Beschreibung: |
|
Download |
Dateiname: |
Signal1.txt |
Dateigröße: |
171.63 KB |
Heruntergeladen: |
771 mal |
Beschreibung: |
|
Download |
Dateiname: |
Signal2.txt |
Dateigröße: |
171.61 KB |
Heruntergeladen: |
748 mal |
Beschreibung: |
|
Download |
Dateiname: |
test2_2.txt |
Dateigröße: |
3.42 KB |
Heruntergeladen: |
714 mal |
Beschreibung: |
|
Download |
Dateiname: |
test2_1.txt |
Dateigröße: |
3.42 KB |
Heruntergeladen: |
722 mal |
|
|
|
|
|
apopesc |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.03.2019, 11:10
Titel:
|
|
Hallo,
gibt es dazu eine weitere Lösung?
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
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.
|
|