Tag zusammen, ich arbeite regelmäßig mit der Verarbeitung von Audio- und Bilddaten oder anderen diskreten Messwerten. Der Zugriff auf diese Daten ist meist recht ungelenk, wenn der verwendete Algorithmus nicht gut mit ganzahligen Indizes zusammenarbeitet. Anbei findet ihr eine Wrapper-Klasse (Java), die einen kontinuierlichen Zugriff auf diskrete äquidistante Messwerte (Samples) ermöglicht. Zusätzlich kann man auf extrapolierte Werte außerhalb der gegebenen Messwerte zugreifen. Aus welchen Teilen sich die dabei verwendete Ersatzfunktion zusammensetzt hängt von der Anzahl der gegebenen Messwerte ab: - Bei einem einzelnen Messwert wird dieser immer als Konstante zurückgeliefert. - Bei zwei gegebenen Messwerten werden die ausgelesenen Werte linear inter- und extrapoliert. - Bei mehr Messwerten wird für jedes Intervall eine kubische Ersatzfunktion bestimmt (cubic spline). Die beiden Randintervalle werden durch eine quadratische Funktion interpoliert. Diese Funktionen dienen auch der Extrapolation. Neben den reinen Funktionswerten ermöglicht die Wrapper-Klasse den Zugriff auf die Ableitungen der Ersatzfunktionen und kann damit auch Steigungen stetig interpolieren. Im Anhang findet sich auch eine Testklasse, die die grundsätzliche Verwendung beschreibt. Die damit erzeugt Ausgabe habe ich als Screenshot angehängt: - Blau: inter- und extrapolierte Originalfunktion f(x) - Rot: erste Ableitung f'(x) (Steigung) - Gelb: zweite Ableitung f''(x) (Krümmung) - Grün: dritte Ableitung f'''(x) (Die tatsächlichen Messwerte sind als kleine Spitzen dargestellt) Ggf. füge ich noch eine Integralfunktion und eine resampling-Funktion hinzu. Viel Spaß damit, Kai
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.