Lineare / nichtlineare Anpassung an eine Sinuskurve

Ich habe mir das angeschautdiese unddiese.

Aber ich habe ein etwas anderes Problem. ichkennt dass meine Daten eine Sinuskurve mit unbekannter Periode und unbekannter Amplitude mit additivem nicht-gaußschem verteiltem Rauschen sind.

Ich versuche es mit dem zu montierenGSL Nichtlinearer Algorithmus in C, aber die Anpassung ist absolut schrecklich. Ich frage mich, ob ich (fälschlicherweise) einen nichtlinearen Anpassungsalgorithmus verwende, bei dem ich einen linearen verwenden sollte.

Wie kann ich feststellen, ob für einen bestimmten Datensatz ein linearer oder ein nicht linearer Algorithmus erforderlich ist?

BEARBEITEN: Meine Kurve istJa wirklich Rauschen. Wenn Sie also eine FFT nehmen, um die Frequenz zu bestimmen, kann dies zu falsch positiven Ergebnissen und schlechten Anpassungen führen. Ich bin auf der Suche nach einer etwas robusteren Passform.

Wie Sie sehen können, weist die obige Darstellung ungefähr 170 Punkte auf, und die nachfolgende Darstellung weist ungefähr 790 Punkte auf.

Das Rauschen ist deutlich nicht-gaußsch und im Vergleich zur Amplitude der Daten groß. Ich habe FFTs mit Gauß-verteiltem Rauschen ausprobiert und meine Passform war wunderbar. Hier scheitert es ganz schlimm.

HINZUGEFÜGT: Link zuzuerst Zeitreihendaten. Jede Spalte in der Datei ist eine andere Zeitreihe.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage