WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Dringend Hilfe gebraucht mit xCorr !

 

Sarrah
Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 01.10.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.02.2015, 17:26     Titel: Dringend Hilfe gebraucht mit xCorr !
  Antworten mit Zitat      
Hallo Leute Smile

ich poste jetzt zum dritten mal fast die selbe doofe und leider unbeantwortet Frage :
Es geht um die "Synchronisation" zweier Signalen d.h die Verschiebung von einem Signal damit es am besten mit dem zweiten korreliert.

Anbei sind beide Signale zu sehen. Optisch gesehen hätte ich gesagt, dass wenn man das magenta Signal um ca. 2 s nach rechts verschiebt dann besteht da eine gute Korrelation.

(Fs=50 für das rote Signal und Fs=1000 für das magenta)

Wenn ich das aber mit xcorr mache bzw. :

Code:


Vdouble = double(V);
V5double = double(V5);

[r lags] = xcorr (Vdouble, V5double);
[~,I]    = max(abs(r));
delay    = -lags(I)/1000;
 



dann bekomme ich delay = 18.876s

was mache ich hier falsch ?
Auf eine Antwort würde ich mich wirklich freuen!!
Danke im Voraus,
Sarrah

1.png
 Beschreibung:

Download
 Dateiname:  1.png
 Dateigröße:  39.51 KB
 Heruntergeladen:  364 mal
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 05.02.2015, 17:33     Titel:
  Antworten mit Zitat      
Was soll denn die X-Achse sein? Kann es sein, dass es einfach nur Vektorelemente sind und keine Zeit?

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 05.02.2015, 17:34     Titel:
  Antworten mit Zitat      
hallo
wenn du die frage schon gestellt hast und es keine antwort gab dann wusste entweder keiner die antwort oder niemand hat die frage verstanden bei http://www.gomatlab.de/viewtopic,p,144551.html#144551 gab es zb rückfragen die du nicht beantwortet hast.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 05.02.2015, 17:36     Titel:
  Antworten mit Zitat      
Sorry, ich hab das vorhin zu schnell abgeschickt. Ich denke ohne Daten und vollen Code kann man nur raten.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 05.02.2015, 17:39     Titel:
  Antworten mit Zitat      
Wenn du delay nochmal durch 10 teilst, bist du bei deinen knapp 2s. (einfach mal ins Blaue geraten)

Ohne die Daten und vor allem die X-Achse wird dir nur schwer jemand helfen können.
_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
Sarrah
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 01.10.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.02.2015, 17:48     Titel:
  Antworten mit Zitat      
Hallo,
danke für die Antworten.
die X-Achse ist die Zeít Achse und Y-Achse ist für Volumen.
(t,Vnormiert) ist das rote und (t5,V5normiert) ist das Magenta.
Private Nachricht senden Benutzer-Profile anzeigen
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 05.02.2015, 17:55     Titel:
  Antworten mit Zitat      
In welchen Zeitintervallen werden denn die Daten aufgezeichnet?

Ich denke, alle haben verstanden was du machst und erreichen möchtest, allerdings ohne konkrete Daten lässt sich nur schwer helfen.
_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
Sarrah
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 01.10.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.02.2015, 18:03     Titel:
  Antworten mit Zitat      
[0..40sec]

Ich meine vielleicht habe habe ich die Outputs von xCorr falsch interpretiert?
ist eigentlich die zeitliche Verschiebung dann -lags(I)/Fs ??

V und V5 sind Luftvolumen, die man mit 2 Geräre gemessen hat und mit unterschiedlichen Abtastrate (50Hz und 1000 Hz)
Man sollte dann zeigen dass sie korrelieren bzw. ein Sgnal so zu verschieben, dass sie korellieren.

Ich normiere also beide Signale (Weil die Amplitude an sich ehe egal ist, die Änderung ist aber relevant) und dann versuche ich sie zu korelieren mit xCorr und dann der Teil, der am besten koreliert abzuschneiden und zu plotten.

Ich hoffe das ist jetzt klarer geworden?

Sorry ich bin unter Zeitdruck geraten und komme wirklich nicht mehr weiter!



Code:

function Synchronisation2(V,t,V5,t5)





Vdouble = double(V);
V5double = double(V5);

[r lags] = xcorr (Vdouble, V5double);
[~,I]    = max(abs(r));
delay    = -lags(I)/1000;
index    = find(t5==delay,1);



[a b]    = min(abs(t-delay));




V_normiert=Normierung(Vdouble);
V5_normiert=Normierung(V5double);
offset2  = abs(V_normiert(b)-V5_normiert(index));

%t5_corr  = t5(index:end,:);
V5_corr  = V5(index:end,:);
V5_corr   = V5_corr-min(V5_corr);



t5_corr=t5-min(t5)+I/1000;


% Cutting out the EIT Signal
Anfang = find(abs(t-t5_corr(1))==min(abs(t-t5_corr(1))));
Ende   = find(abs(t-t5_corr(end))==min(abs(t-t5_corr(end))));
t_trans=t.';
t_corr=t_trans(Anfang:Ende,:);
V_corr=Vdouble(Anfang:Ende,:);
V_corr_normiert=Normierung(V_corr);

offset1=abs(V_corr_normiert(1)-V5_normiert(1));

%Plot
figure;plot(t_corr,V_corr_normiert,'r');hold on;plot(t5_corr,V5_normiert-offset1,'m');

end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 06.02.2015, 15:35     Titel:
  Antworten mit Zitat      
Solange man nicht v und v5 zur Verfügung hat, wird es schwer mit dem nachvollziehen des Problems.

Hast du es mal mit einem einfachen Beispiel versucht?

Code:


dt=0.001
t=0:dt:50;

d=2; %delay
offset1=0; % offset try -10
offset2=0; % offset try +10

A=zeros(1,length(t));
B=A;

A(round(length(t)/2):end-10000)=1;
B((round(length(t)/2+d/dt)):(end-10000+d/dt))=1;

A=A+0.1*sin(t/2)+0.01*rand(1,length(t))+offset1;
B=B+0.1*sin((t+d/dt)/2)+0.01*rand(1,length(t))+offset2;

figure(1)

subplot(2,1,2)
plot(t,A,t,B)

[r lags] = xcorr (A, B);
[~,I]    = max(abs(r));
delay    = lags(I)*dt

subplot(2,1,1)
plot(lags*dt,abs(r))
hold on
stem(lags(I)*dt,abs(r(I)),'r')
 


Interessant wirds, wenn man in meinem sehr einfach Beispeil an offset1 und offset2 spielt.

Wie oben bereits gesagt, ohne die verwendeten Daten lässt sich nur raten, dass du vll vor der Korrelation normieren/umskalieren solltest.
_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 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.