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

Korrelation von 2 Signalen

 

Tom Schmidt

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.01.2013, 18:40     Titel: Korrelation von 2 Signalen
  Antworten mit Zitat      
Hallo, ich habe ein Problem, bei dem ich nicht weiter weiss. Ich habe 2 Signale, ein Referenzsignal und ein Messsignal, wobei das Messsignal gegenüber dem Referenzsignal einwenig verschoben ist. Nun will ich das Messignal jeweils immer um eine Stelle (genauer um 1 Pixel) verschieben und den Korrelationskoeffizient dazu berechnen aber mit meinem Code funktioniert dies nicht, kann mir da Bitte jemand weiterhelfen?
Die Matrix messignal ist 250*2 gross wobei in der ersten Spalte die Pixelwerte stehen und in der zweiten Spalte die Grauwerte
Code:

for i=1:length(Messignal)
    for k=1:length(Messignal)
        M=zeros(250,250);
 %
verschiebung_Pixel=i;
M(i:length(Messignal),k)=Messignal(1:(length(Messignal)-i+1),1);
M(i:length(Messignal),k+1)=Messignal(1:(length(Messignal)-i+1),2);
R2(i,1)=corr(referenzsignal(i:length(Messignal),2),M(i:length(Messignal),2));
end
end[/code]


Tom Schmit

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.01.2013, 19:00     Titel:
  Antworten mit Zitat      
Zorry falscher Code. Hier ist der richtige. Also die Matrix M sollte stufenmässig sein also das jede Spalte einmal herunterrutscht
Code:

for i=1:length(Messignal)
    for k=1:length(Messignal)
verschiebung_Pixel=i+1;
M(verschiebung_Pixel:length(Messignal),k)=Messignal(1:(length(Messignal)-verschiebung_Pixel+1),1);
M(verschiebung_Pixel:length(Messignal),k+1)=Messignal(1:(length(Messignal)-verschiebung_Pixel+1),2);
%R2(i,1)=corr(referenzsignal(verschiebung_Pixel:length(Messignal),2),M(verschiebung_Pixel:length(Messignal),2));
end
end
 
Tom S.

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.01.2013, 11:38     Titel:
  Antworten mit Zitat      
Hey kann mir vielleicht jemand helfen, bzw einen Tipp geben was ich falsch gemacht habe. Ich beschäftige mich mich jetzt schon sehr lange damit und bekomme es nie richtig hin.


Vielen Dank
MFG Tom
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 25.01.2013, 12:34     Titel: Re: Korrelation von 2 Signalen
  Antworten mit Zitat      
Hallo Tom,

Bist Du alle drei Male der gleiche Tom? Bei wechselnden Namen ist das schwer nachzuvollziehen.
Ein Problem beim Geben der Antwort ist die Beschreibung "mit meinem Code funktioniert das nicht". Es ist immer besser die auftretenden Probleme detailliert zu beschrieben, anstatt nur zu erwähnen, dass es welche gibt. Man kann nämlich viel leichter eine Lösung finden, wenn man nicht zuerst das Problem erraten muss.

Der Code würde deutlich übersichtlicher werden, wenn Du statt "length(Messignal)" eine Variable wie z.B. "n" benutzt. Vielleicht springt das auch der Fehler schneller ins Auge.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Tom Schmidt

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.01.2013, 13:21     Titel:
  Antworten mit Zitat      
Hey Jan, ja tut mir leid also ich habe den Code nun etwas verkürzt er sieht nun folgendermassen aus. Das Problem ist nur das in jeder Spalte die Werte eine Stelle herunterrutschen sollen. Also in der zweiten Spalte sollte die Matrix M folgendermassen aussehen: 0 0 1 2 3 4 bei mir sieht die Matrix so aus: M=
[0 0 0 ....
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5]
...
Code:

for i=1:length(Messignal)
    for k=1:length(Messignal)
verschiebung_Pixel(i,1)=i+1;
M(verschiebung_Pixel(1:i,1):length(Messignal),k)=Messignal(1:(length(Messignal)-verschiebung_Pixel(1:i,1)+1),1);
end
end
 
Tom Schmidt

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.01.2013, 15:53     Titel:
  Antworten mit Zitat      
Vieleicht habe ich mich nicht richtig ausgedrückt. Also die Matrix M soll am ende so aussehen:
0 0 0 0 0 0
1 0 0 0 0 0
2 1 0 0 0 0
3 2 1 0 0 0
4 3 2 1 0 0
5 4 3 2 1 0 ...
...

Und anstelle der einfachen zahlen (hier im Beispiel 0 bis 5) sollen die Werte aus Messignal aus der ersten Spalte stehen.

Ich hoffe jetzt ist es verständlich?
Würde mich sehr über eine Antwort freuen

MFG Tom
 
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.