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

Schwierigkeiten bei Interpolation

 

-Spun-
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 07.08.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.09.2013, 05:00     Titel: Schwierigkeiten bei Interpolation
  Antworten mit Zitat      
Hallo ihr!

ich möchte eine Interpolation durchführen umd zwei Vektoren auf die gleiche Länge zu bringen.

Dabei habe ich einmal einen Vektor mit theoretisch errechneten Werten und einen Vektor mit Werten aus einer Simulation.

Das Problem ist hier bei das die theoretische errechnete Kurve viel mehr Werte, aufgrund der hohen Abtastungsrate, hat als der simulierte Vektor.

Drum dachte ich mir, ich könnte das mit "interp1" eins angleichen.

Doch es kommt nicht das raus, was ich mir erhoffte.

Hier erstmal ein paar Infos über meine Vektor:

Zitat:
tzcross3<1x32606>
mit tzcross3(1:24000) = 1
und tzcross3(24001:32606) = 0.249 bis 8.854 (Schrittweite: 0.001)

d<1x32605>
mit d(1:24000) = 0
und d(24001:32605) = die funktionswerte...

t1<1x424992>
mit 0:1/48000:8.854



Das erste Problem das ich hatte, war, das ich anfangs eine pausenzeit habe, in der die Werte eine Sekunde lang gleich sind und somit nicht die interp1-Funktion einfach mittels:

Code:
dInt = interp1(tzcross3(1:l),d,t1);


einsetzen konnte, da immer folgender Fehler kam:
Zitat:
??? Error using ==> interp1 at 262
The values of X should be distinct.

Was ja auch Sinn macht, da er ja keine Werte zwischen zwei gleichen Werte interpolieren kann, wenn ich das richtig verstanden habe..

also überlegte ich mir folgendes:

Code:

figure; %Simuliertes Signal
plot(tzcross3(1:l),d)
grid on;
title('Simulated Signal')
legend('Simulated')


tspline =0:t1(end)/length(d):t1(end)-t1(end)/length(d);
dInt = interp1(tspline,d,t1);



figure
plot(t1,dTheo,'r', t1,dInt,'b');
xlabel('t/{\its}')
ylabel('s/{\itm}')
grid on;
legend('Theoretical','Simulated')
title('Theoretical and simulated Interpoliert')
 


Wenn ich den ersten Plott ausfuehre habe ich die Kurve, die ich erwarte (siehe Simulated Signal).



Wenn ich dann aber die Interpolation ausfuehre und die beiden Kurven vergleiche habe ich folgeden Kurve, wobei "Simulated" , wie man sieht nicht passt, denn sie sollte der "theoretical" sehr aehnlen...

Waere echt super, wenn ihr mir hier weiter helfen koenntet.

Vielen Dank im Voraus!

simu.png
 Beschreibung:

Download
 Dateiname:  simu.png
 Dateigröße:  7.68 KB
 Heruntergeladen:  358 mal
theoUsim.png
 Beschreibung:

Download
 Dateiname:  theoUsim.png
 Dateigröße:  8.33 KB
 Heruntergeladen:  362 mal
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 09.09.2013, 08:55     Titel:
  Antworten mit Zitat      
bei deinem code fehlen viele sachen. was ist dtheo. wie sehen die funktionswerte aus wie die messwerte etc . mann muss sehr viel raten um dein beispiel zum laufen zu bekommen. außerdem verstehe ich nicht warum tzcross3 am anfang 1 ist wenn du da nur ne pause hast. warum nicht nan oder 0. jedenflalls must du einfach die nicht relevanten daten ohne messung am anfang rausschneiden da die argumente für interp1 monoton steigend seihen müssen.
quasi:
Code:
vq=interp1(tzcross3(24001:32606),d(24001:32606),t1)

am anfang kommt dabei nan rauß bis zur zeit 0249 da dort ja auch keine werte vorliegen aus denen man interpolieren könnte.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
-Spun-
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 07.08.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.09.2013, 10:39     Titel:
  Antworten mit Zitat      
Ah super! Vielen vielen Dank!

Nun funktionierts Very Happy
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.