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

xcorr?

 

Yven
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 06.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.02.2013, 17:17     Titel: xcorr?
  Antworten mit Zitat      
Hallo alle zusammen,

ich habe einmal mehr ein Problem, bei dem ich nicht so recht weiter komme. Ich will die xcorr Funktion nutzen und habe zwei Signale, die gegeneinander verschoben werden sollen. Leider läuft irgendwas mit der Kreuzk. schief (siehe Bild), da die Signale eigendlich anderweitig zu einander verschoben werden müssten. Ich verzichte an dieser Stelle erst einmal auf den Code und hoffe, das mein Problem vielleicht ganz banaler Natur ist.

Vielleicht hat jemand einen Rat für mich, warum die Kurve, aus meiner Sicht falsch verschoben ist und was ich dagegen tunen kann.

Viele Grüße,

Yven

xcorr.PNG
 Beschreibung:

Download
 Dateiname:  xcorr.PNG
 Dateigröße:  16.42 KB
 Heruntergeladen:  740 mal
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 03.02.2013, 00:52     Titel: Re: xcorr?
  Antworten mit Zitat      
Hallo Yven,

Ohne den Code zu sehen, können wir nicht herausbekommen, wie Du die zweite Kurve überhaupt erzeugt hast. Wie könnten wir dann einen Ratschlag geben, was Du dagegen tun kannst?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Yven
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 06.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.02.2013, 11:34     Titel:
  Antworten mit Zitat      
Hi,

ich habe den mal Code zusammengesucht:

Code:
matrix1 = [Time, z20];
matrix2 = [Time, z25];


[Y, lags] = xcorr(matrix2(:,2),matrix1(:,2), 'none')

[I, ind] = max(Y)


ind = ind - length(matrix2(:,2))


figure(1)

subplot(3,1,1)
plot(matrix1(:,2), '*')
hold all
plot(matrix2(:,2), '*')
hold off
title('Original Daten')


subplot(3,1,2)
plot(Y,'r')
title('Kreuzkorrelation')

subplot(3,1,3)
plot(matrix1(:,2), '*')
hold all
plot(ind:(ind+length(matrix2(:,2))-1),matrix2(:,2), '*')
hold off
title('Verschobene Daten')




Viele Grüße,

Yven
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 04.02.2013, 13:45     Titel:
  Antworten mit Zitat      
Hallo Yven,

Bitte erkläre nun den Zusammenhang zwischen dem Code und der Frage nochmal genau. Welche Variablen aus dem Code entsprechen welchem Teil der Frage?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Yven
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 06.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.03.2013, 13:47     Titel:
  Antworten mit Zitat      
Hallo heute hatte ich endlich wieder Zeit mich mit der Kreuzkorrelation zu beschäftigen. Ich bin bei meinem Problem leider immer noch nicht weiter, darum poste ich hier mal die beiden Vektoren, die ich korrelieren will.

Als Anmerkung vielleicht noch, die Signale sind nicht gleich sondern nur ähnlich. Ziel ist es natürlich den Abstand der Verschiebung auf der Abzisse zu ermitteln.

Vielleicht könnt ihr mir ja weiterhelfen, wie ich es hinbekomme!

Vielen Dank,

Yven

Code:


matrix1
matrix2


[Y, lags] = xcorr(matrix2,matrix1, 'coeff')

[I, ind] = max(Y)


ind = ind - length(matrix2)


 


Matrix2.txt
 Beschreibung:

Download
 Dateiname:  Matrix2.txt
 Dateigröße:  728 Bytes
 Heruntergeladen:  487 mal
Matrix1.txt
 Beschreibung:

Download
 Dateiname:  Matrix1.txt
 Dateigröße:  728 Bytes
 Heruntergeladen:  445 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Dirtsa
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 23.01.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.02.2014, 10:48     Titel:
  Antworten mit Zitat      
Hallo Yven,
ich bin nicht sicher, ob ich den Problem richtig verstanden habe.
Wenn du
Code:

[Y, lags] = xcorr(matrix2,matrix1, 'coeff')

[I, ind] = max(Y)

abfragst, erhälst du das Maximum der Kreuzkorrelation. An diesem Punkt sind die Signale also so deckungsgleich wie möglich.
In deiner Variablen ind steht der zugehörige Index, in diesem Fall ind = 91.
Wenn du
Code:
abfragst, kannst du die Verschiebung ablesen, in diesem Fall lags(91) = 0.

Beantwortet das deine Frage?
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.