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

Treppensignal interpolieren

 

baddy010
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 16.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.08.2016, 14:27     Titel: Treppensignal interpolieren
  Antworten mit Zitat      
Hallo,

ich habe einen Winkel in Form eines Treppensignal und würde gerne so interpolieren, dass daraus eine Gerade wird. Habe dabei an die interp1-Funktion gedacht. Hier der Code dazu:

%Daten in lokalen Variablen speichern
t = Channel_1_Data;
N = Channel_2_Data;
P = Channel_3_Data;

z = length(t);

winkelplus=zeros(z,1);

%Zeitpunkte der Winkelerhöhungen ermitteln
for i=2:1:z
if P(i-1) > 20
winkelplus(i)=0;
elseif P(i) > 20
winkelplus(i)=11.25;
end
end

%Berechnung des Winkels in Treppenform
winkel=zeros(z,1);
for i=2:1:z
winkel(i)=winkel(i-1)+winkelplus(i);
end

%Versuch der Interpolation zur Gerade
winkelint=interp1(t,winkel,1:1:z,'linear');

Problem dabei ist, dass die x-Achse beim interpolierten Winkelwert nicht mehr von 0 - 60 geht, sondern nur noch bis ca. 0.014. Der Winkelwert ist jedoch geglättet und vom Betrag am Ende gleich.

Warum ändert sich also die x-Achse, wenn ich die interp1-Funktion doch mit der Zeitachse t befülle.

Vielen Dank für eure Hilfe!

LG
baddy010
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 31.08.2016, 14:44     Titel:
  Antworten mit Zitat      
Hallo,

Stehen in t denn Werte im Intervall [1 z]? Falls nicht, ist das dritte Argumente bei interp1 nicht sinnvoll gewählt.

Zudem interpoliert interp1 nur zwischen den Punkten. Wenn die Punkte davor keine Gerade geformt haben, werden sie es auch danach nicht tun. Falls du eine Gerade an die Punkte fitten möchtest, hilft polyfit .

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
baddy010
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 16.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.08.2016, 15:40     Titel:
  Antworten mit Zitat      
Hallo Harald,

habe das dritte Argument angepasst, aber es verändert sich nichts. Heißt, dass mir die interp1-Funtkion in diesem Fall gar nichts bringt?!

Wie benutze ich die polyfit-Funktion denn richtig?

winkelint2=polyfit(t,winkel,1);

Dabei wird mir nur ein zweispaltiger Vektor zurück gegeben, ich würde die Gerade aber gerne über die komplette Länge des Vektors t (289683 Elemente) ziehen.

Ich hoffe du verstehst, was ich meine.

LG
baddy010
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 31.08.2016, 15:47     Titel:
  Antworten mit Zitat      
Hallo,

bitte zu nicht näher bekannten Befehlen immer auch die Dokumentation lesen.
polyfit gibt die Koeffizienten des Polynoms zurück (in dem Fall Steigung und y-Abschnitt). Zur Darstellung muss man diese Koeffizienten dann an polyval übergeben - so, wie es auch in allen Beispielen in der Doku von polyfit ersichtlich ist.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
baddy010
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 16.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.08.2016, 15:48     Titel:
  Antworten mit Zitat      
Hallo Harald,

sorry für die dumme Frage.. habe es gerade auch gesehen. Danke! Das ist das, was ich haben wollte.

LG
baddy010
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.