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

Kreuzkorrelaton zwier Signale

 

Delwood
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 24.03.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.03.2014, 19:51     Titel: Kreuzkorrelaton zwier Signale
  Antworten mit Zitat      
Hallo Forum,

ich breche mir gerade bei der Kreuzkorrelation die Arme.
Ich habe zwei Signale (siehe Bild 1). Nun soll ich die Kreuzkorrelation bilden.
Ich habe es mit dem xcorr-Befehl vwersucht. Schon ziemlich seltsam der Befehl.
Wie ergibt sich der Wert auf der y-Achse?
Warum habe ich eine Verschiebung um 0.5 der x-Achse?
Und warum erhalte ich ab 1 --> 0 keine Gerade?
Wenn ich mir die Signale vorstelle und diese übereinander schiebe, würde ich sagen, dass ich (auf Bild 1 bezogen) ab x=2 eine ansteigende Gerade bekomme , was ja auch mit Bild 2 übereinstimmt (wenn ich die Kurve um 0.5 nach rechts verschiebe). Bei Punkt 1 würde ich mein Max. haben. Hier haut das ganze schon nicht mehr hin, da der Anstieg in Bild 2 gerade mal über 0.5 Einheiten geht. Außerdem erhale ich zwischen 1 und 0 eine Art e-Funktion, was garnicht angehen kann. Ich würde sagen, dass die Gerade mit der Hälfte der Steigung der rechten Seite abfallen sollte.
Ich stelle hier mal mein Code rein:
Da ich Neuling bin, würde mich mal interessieren, wie ich die Kreuzkorrelation manuell programmieren kann.

Code:

T0=1;
abtast=0.01;
z=0;
x= [];
x= zeros;
for t = (0: abtast: 4*T0)
    z= uint16(t*100+1);
    if (0<=t && t<=T0)
        x(z)= t/T0;
    elseif (T0<t && t<= 2*T0)
            x(z)=1;
    else
        x(z)=0;
    end
    if (3*T0<= t && t<= 4*T0)
        y(z)=1;
    else
        y(z)=0;
    end
   
end
zeitachse= (0: abtast: 4*T0);
hold on
plot (zeitachse, x);
plot (zeitachse, y, 'r');
hold off
figure (2);
q=xcorr (x,y);        
korzeit = (0: abtast/2: 4*T0);
plot (korzeit,q);
 


2014-03-24_183400.jpg
 Beschreibung:
Bild 2

Download
 Dateiname:  2014-03-24_183400.jpg
 Dateigröße:  20.95 KB
 Heruntergeladen:  256 mal
2014-03-24_183344.jpg
 Beschreibung:
Bild 1

Download
 Dateiname:  2014-03-24_183344.jpg
 Dateigröße:  24.12 KB
 Heruntergeladen:  245 mal
Private Nachricht senden Benutzer-Profile anzeigen


JKnopf
Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 16.03.14
Wohnort: Magdeburg
Version: ---
     Beitrag Verfasst am: 24.03.2014, 21:49     Titel:
  Antworten mit Zitat      
Grüß dich Delwood,

also prinzipiell gibt dir die Korrelations Funktion an der Stelle ein Maximum um das das erste Signal im 2 Signal verschoben ist. vereinfacht gesagt ist das Maximum als die Verschiebungsdifferenz zu sehen. Vorsichtig muss man bei der Interpretation sein. Das Maximum bezieht sich immer auf die Stellen im Vektor. Über welche Größe du sie Aufträgst ist der Korrelation egal. Wenn du also statt die Größen über die Zeit zu plotten einfach über die eigene Länge plottest, wirst du sehen, dass das Maximum der Funktion genau an der Stelle ist, um die die Position des Signals x in Signal y verschoben ist. Prinzipiell müsstest du also dafür sorgen, dass die Schritte deiner Zeitachse denen der Elemente der Vektoren entsprechen. also 1 Element entspricht 1s oder 0.1s usw. dann kannst du deine Verschiebung auch in der Zeit bestimmen.

Gruß Jim

pic2.jpg
 Beschreibung:

Download
 Dateiname:  pic2.jpg
 Dateigröße:  14.29 KB
 Heruntergeladen:  251 mal
pic1.jpg
 Beschreibung:

Download
 Dateiname:  pic1.jpg
 Dateigröße:  15.51 KB
 Heruntergeladen:  248 mal

_________________

"good manners are just a way of showing other people we have respect for them" (Blast from the Past)

If you can't say somethin' nice ... don't say nothin' at all. (Thumper, Bambi)
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.