Wie kann ich es anstellen, einen Sinus aus Messwerten zu erkennen?
Natürlich kann ich die Kurve zuvor glätten, sodass das Rauschen reduziert wird.
Der Sinus kann leider aber unterschiedliche Periodendauern haben und auch verschiedene Amplituden.
Meine Idee ist nun, alle Werte erstmal wegzuschreiben (linked list / array, egal erstmal), dann zu schauen, ob ich einen Nulldurchgang (oder nahe 0) habe, danach einen Hoch- oder Tiefpunkt erreiche, gefolgt von einem Nulldurchgang und danach wieder einen Tief- oder Hochpunkt gefolgt von einem Nulldurchgang.
(Ich will nur eine Periode erkennen) Dann meinen Sinus so strecken, dass er reinpasst und die Amplitude so hoch machen, wie die Maximal/Minimalwerte waren und dann die Fläche dazwischen berechnen...
Hört sich aber ungemein komplex an und die Fläche dazwischen wird wahrscheinlich nie wirklich 0 werden. Gibt es eine gute Methode, um einen speziellen Kurvenverlauf halbwegs zuverlässig zu finden? Weil es könnte ja auch sein, dass die Kurve so aussieht
Bild hier  
Dann müsste ich vielleicht noch auf Wendepunkte untersuchen?!
Ohje...
Bitte sagt mir, dass es eine bessere total unkomplizierte Methode gibt, auf die ich bisher nur noch nicht gestoßen bin
Und gibt es eine Seite, auf der anhand von Pseudocode (oder C) erklärt wird, wie man Kurvensachen wie Nullstellen, Wendepunkte, Hoch- und Tiefpunkte usw findet?
EDIT:
Wobei, wenn ich Glück hätte, würde das hier ja garnicht zählen, weil es mehrere Hoch- bzw. Tiefpunkte hat? (Oh mann, Mathe 1 is schon zu lange her... )
EDIT2:
Also wenn man das hier mal als Beispiel nehmen würde:
Bild hier  
Dann würde, wenn man wirklich die Hoch- und Tiefpunktnummer durchziehen könnte, ein möglicher Kandidat eines Sinus' rauskommen, den man dann mit einem Eigenbausinus vergleichen würde, wobei dann eine geringe Abweichung rauskommen würde.
Leider will ich auch so Sachen erkennen wie:
Bild hier  
was ja schon erheblichere Abweichungen zum normalen Sinus hat... Vielleicht müsste man dann nur noch mit der Toleranz spielen..... hmmmm... *Kopfrauch*
EDIT3:
Also ein Hochpunkt wäre es wohl, wenn ich in den Daten auf eine Nullsteigung treffe und die Steigung zuvor positiv war, ein Tiefpunkt, wenn ich davor eine negative Steigung hatte (bzw es könnte auch einfach ein Wechsel zw. pos/neg sein ohne 0 dazwischen (sonst vielleicht auch Sattelpunkt))
Ok, eine Nullstelle sollte nicht wirklich schwer zu finden sein... Davor war der Wert > 0, danach <0 oder andersrum....
Bei näherem Nachdenken hört es sich gar nicht mehr soooo schwer an...
Nur könnten bei dem vielen Rauschen auch leider irgendwo zwischendrin Steigungswechsel auftreten, die ich garnicht haben will...