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

HILFEE komme nicht weiter, Korrelationsfunktion und Zeitvekt

 

azazello
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 24.11.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.11.2009, 16:05     Titel: HILFEE komme nicht weiter, Korrelationsfunktion und Zeitvekt
  Antworten mit Zitat      
Hallo, folgendes Problem
ich habe zwei Vektoren, das eine ist Korrelationsfunktion, das ander ist die entsprechende Zeitvektor dazu. Nun will ich die Korrelationsfunktion mit Hilfe der FFT-Zero-Padding interpolieren, damit es nicht so viel Zeit in Anspruch nimmt will ich nur einen bestimmten Bereich um das Maxima der Korrelationsfunktion interpolieren. In dem Zeitvektor müssen dem entsprechend weitere Punkte hinzugefügt werden und dort ist das Problem die interpolierte Korrelationsfunktion verschiebt sich obwohl die Verschiebung Tau=0 ist

Korrelationsfunktion mit dem Zeitvektor. Dies funktioniert.
Code:

    %-------- Korrelation           --
    correlation=xcorr(sig1_demoduliert, sig2_demoduliert);
    I=ceil(length(correlation)/2);
    T1=(0:Ts:(length(correlation)-1)*Ts)-(I-1)*Ts;
 


correlation - Vektor mit den Werten für die Korrelationsfunktion
T1 - entsprechender Zeitvektor dazu
Ts - ist das Intervall zwischen zwei Punkten des Zeitvektors



Interpolation der gesamten Korrelationsfunktion. Das funktioniert auch noch
Code:

l=length(correlation);
correlationfft=ifft(fft(correlation),Nr*l);
T2=((0:length(correlationfft)-1)*Ts/Nr)-(I-1)*Ts;
 

l - länge der Korrelationsfunktion
correlationfft - interpolierte Korrelationsfunktion
Nr - Zahl um wieviel Punkte die neue Korrelationsfunktion größer sein soll als die alte. Beispiel: wenn correlation 1000 Punkte besitzt und Nr = 2 ist dann hat die neue Korrelationsfunktion 2000 Punkte


Interpolation eines Abschnitts. Das was nicht funktioniert Sad
Code:

[fmax,fmaxI]=max(correlation);  
l=length(correlation(fmaxI-5:fmaxI+6));
correlationfft=ifft(fft(correlation(fmaxI-5:fmaxI+5)),Nr*l);
[ma M]=max(correlationfft);
J=ceil(length(correlationfft)/2);
T2=((0:length(correlationfft))*Ts/Nr)-(J-1)*Ts/Nr;
 



ich komme einfach nicht drauf was da für Problem ist, wenn mir jemand helfen kann werde ich sehr dankbar sein.

Gruss
Roman
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.