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

glättung

 

jeko87
Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 21.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.07.2010, 18:55     Titel: glättung
  Antworten mit Zitat      
Hallo,

also mein Problem ist folgendes:

ich lass mir einen Plot ausgeben. In diesem Plot kann ich nun 2 Punkte markieren über die ich eine Interpolation durchführe.

nun will ich das gleiche eigentlich auch noch mit einer Glättung machen...
aber wie geht das in Matlab ? ich hab mal gesucht und bin immer wieder auf 'polyfit' gestossen, nur läuft meine Implementierung noch nicht

hier ist mal mein code
Code:

x=evalin('base','X');          % X-punkte für Glättung
y=evalin('base','Y ');         % Y-punkte für Glättung
anz=evalin('base','anzBilder');
xi=0:size(x):anz;

x1 = 0:1:anz;
% Bereich zwischen Startpunkt und Stoppunkt
range = find(and(x1 >= startX, x1 <= stopX));
start = range(1);
stop = range(end);
yi=polyfit(x,y,xi);
 


also ich hab den gleichen Code auch für meine Interpolation benutzt, das klappt auch wunderbar...

kann mir vielleicht jemand weiterhelfen ?

danke
mfG
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: 19.07.2010, 18:58     Titel:
  Antworten mit Zitat      
Hallo,

der 3. Parameter bei polyfit ist der Grad des Polynoms - das passt hier gar nicht. Meine Empfehlung zur Glättung sind convn und filter.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 21.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.07.2010, 20:46     Titel:
  Antworten mit Zitat      
hab mir jetzt mal beide Methoden angeschaut und so beim ersten Blick erscheint mir die 'filter' Methode etwas einfacher...
hab nur noch etwas Probleme mit den Parametern...
Code:

y = filter(b,a,X)
 


X enthält die Daten die geglättet werden sollen, das wären bei mir ja die Werte zwischen dem Start- und Stoppunkt...
nur was benutze ich für b und a ? Confused


danke
mfG
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 19.07.2010, 21:24     Titel:
  Antworten mit Zitat      
Hallo Jeko,

Die Parameter a und b hängen ganz davon ab, wie Du Glätten möchtest. Häufigverwendet wird z.B. BUTTER, der Dir einen Butterworth-Filter erzeugt.
Ein Moving-Average Filter glättet ebenfalls, z.B. mit zero-padding (Nuller als Rand einsetzen):
Code:
y = filter(ones(N, 1 ) / N, 1, x);


"Glätten" ist jedenfalls ein sehr weiter Begriff und erlaubt es einige Studien-Semester zu füllen.

Gruß, Jan
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: 19.07.2010, 21:31     Titel:
  Antworten mit Zitat      
Hallo,

wenn es um "normales" Glätten geht, ist Jan's Idee gut. Achtung: die ersten N-1 Werte sind oft nicht brauchbar, da eben mit Nullen aufgefüllt wird.

In der Doku von filter findest du die Formel, nach der gearbeitet wird (etwas scrollen). Du brauchst also nur zu überlegen, wie du glätten willst, und das a und b ergeben sich von alleine. Wenn die Terme mit den a's nicht gewünscht sind, a auf 1 setzen.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 21.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.07.2010, 12:40     Titel:
  Antworten mit Zitat      
hallo,
erstmal vielen Dank für eure Antworten Smile
Ok, wusste nicht, dass es so viele verschiedene Möglichkeiten beim Thema 'Glättung' gibt.

Also ich habs mir so vorgestellt, dass ich meine 2 Punkte markiere, und über diesen Bereich dann eine Glättung durchführe...für mich wäre es ein normales Glätten, so dass die Kurve halt 'glatt' wird Wink

veruch mal den Vorschlag von Jan zu implementieren

mfG
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.