matlab: fit (sum of sine)
wergor 16.07.2018 - 13:31 2457 3
wergor
connoisseur de mimi
|
ich habe ein system, das ich mit einem sinussignal anrege und das mir eine sinusförmige antwort zurückliefert. an das antwortsignal fitte ich eine sinusfunktion um amplitude und phase herauszufinden. in >90% der fälle funktioniert das mit fit() sehr gut (mit standardeinstellungen) in den restlichen fällen liefert die funktion blödsinn zurück (der einfachheit halber hier in cftool): schlecht: gut: hat jemand eine idee wie ich die zu besseren ergebnissen komme? weder signal tiefpassfiltern, noch sample size reduzieren, noch längere antwortsignale verarbeiten bringt erfolg. ich habe auch schon versucht die startbedingungen anzupassen (weil die frequenz ja bekannt wäre), da habe ich aber eher das gefühl matlab macht mir dann kurven mit genau den (bzw. minimal veränderten) parametern. das 'schwierige' signal ist angehängt.
y_231851.zip (downloaded 91x)
|
kleinerChemiker
Here to stay
|
Kann es eventuell daran liegen, dass die schwierige Funktion deutlicher von 0 nach oben abweicht? Kann man für die Funktion f(x) = a1*sin(b1*x+c1)+d1 auch nehmen?
|
wergor
connoisseur de mimi
|
ich sehe den wald mal wieder vor lauter bäumen nicht... ich weis nicht ob ich eine funktion mit konstantem offset definieren kann, aber ich kann den offset ja auch einfach vom signal subtrahieren... danke!
|
kleinerChemiker
Here to stay
|
Gerne! An subtrahieren hab ich auch gedacht, kenne aber Matlab nicht. Hab mit so was zum Glück nichts zu tun
|