matlab: fit (sum of sine)

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/matlab-fit-sum-of-sine_251702/page_1 - zur Vollversion wechseln!


wergor schrieb am 16.07.2018 um 13:31

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:
capture3_231847.png
gut:
capture4_231848.png
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.


kleinerChemiker schrieb am 16.07.2018 um 15:16

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 schrieb am 16.07.2018 um 15:28

:eek:
:bash:
:rolleyes:
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 schrieb am 16.07.2018 um 15:40

Gerne! An subtrahieren hab ich auch gedacht, kenne aber Matlab nicht. Hab mit so was zum Glück nichts zu tun ;)




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025