matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Dt. Schulen im Ausland: Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenInterpolation und ApproximationInterpolation von Messwerten
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Geschichte • Erdkunde • Sozialwissenschaften • Politik/Wirtschaft
Forum "Interpolation und Approximation" - Interpolation von Messwerten
Interpolation von Messwerten < Interpol.+Approx. < Numerik < Hochschule < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Interpolation und Approximation"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Interpolation von Messwerten: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 19:14 Fr 21.03.2008
Autor: mrjack

Hi!

Ich habe folgendes Problem: Es werden 2-dim. Bahnverläufe (abhängig von einer Zeit t) gemessen. Für jeden Zeitpunkt t wird sowohl Ort als auch Geschwindigkeit gemessen. Zur weiteren Weiterverarbeitung ist es allerdings notwendig für alle Zeiten interpolierte Werte zu bekommen.
Hier einmal zwei prototypische Kurven, welche auch miteinander verknüpft sein können zB; es könnten auch mal längere Geraden vorkommen...:
[Dateianhang nicht öffentlich]
[Dateianhang nicht öffentlich]
Es gibt auch Messungen, wo sehr wenige Messpunkte aufgenommen werden, die dann z.B. so aussehen:
[Dateianhang nicht öffentlich]
Mein bisheriger Plan ist folgender:
-Kategorisieren der Abschnitte der Kurve
-je nach Art, passende Methode auswählen
-für kurviges: Hermite-Polynomfit mit höherem Grad
-für gerades: kubische Splines
Was meint ihr dazu? Ist das sinnvoll? Dann habe ich außerdem noch ein paar technische Probleme:
Ich finde irgendwie keine konkreten Algorithmen für diese Methoden - insbesondere nicht für die Verwendung zum Interpolieren von 2D-Kurven. Könnt ihr mir da Hinweise geben?  Auch wegen Libraries für C++, hab mir schon die GSL angeschaut, aber die schlecht dokumentiert... Schon einmal vielen Dank im Voraus!

Viele Grüße, MrJack

Ich habe diese Frage auch in folgenden Foren auf anderen Internetseiten gestellt:
http://matheplanet.com/matheplanet/nuke/html/viewtopic.php?topic=99663&start=0&lps=726178#v726178

Dateianhänge:
Anhang Nr. 1 (Typ: gif) [nicht öffentlich]
Anhang Nr. 2 (Typ: gif) [nicht öffentlich]
Anhang Nr. 3 (Typ: gif) [nicht öffentlich]
        
Bezug
Interpolation von Messwerten: Antwort
Status: (Antwort) fertig Status 
Datum: 19:48 Fr 21.03.2008
Autor: ullim

Hi,

ich würde auf jeden Fall Ausgleichskurven durch die Messwerte legen und keine Polynome, die durch jeden Punkt wirklich gehen. Diese Polynome erzeugen ja keine glatten Kurven, sondern stark variirende. Dadurch bekommt man nicht den richtigen Überblick über den Verlauf und es werden dadurch künstlich spektrale Anteile erzeugt, die nicht gewollt sind.

Bei den Beispielen die Du beigelegt hast, könnte man z.B. eine expotentielle Funktion an fitten.

[mm] f(x)=a*e^{bt}+c [/mm] und die Paramter a,b,c nach der Methode der kleinsten Quadrate berechnen.

mfg ullim

Bezug
                
Bezug
Interpolation von Messwerten: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 19:57 Fr 21.03.2008
Autor: mrjack

Hi!

Naja, es ist für die spätere Auswertung relativ wichtig, dass die Werte (und die entsprechende Ableitung) an den exakt bekannten Stellen genau sind - und auch in der näheren Umgebung dieser. Der Grund ist der, dass es verschiedene Messungen der gleichen "Situation" gibt, und beide Messungen zwecks Zeitsynchronisation vergleichen werden sollen. Außerdem ist für die weitere Verarbeitung noch eine Trajektorie (idealerweise mit Informationen über Konfidenz, Std.abweichung, ...) wichtig, die mit Referenztrajektorien verglichen werden soll. Naja, aber vielleicht schätze ich das ganze auch noch falsch ein...
Kannst du mir denn evtl. eine Numerik-Library empfehlen? Z.B. für die Methode der kleinsten Quadrate...
Wie schauts denn eigentlich mit kubischen Hermite-Splines aus? Die dürften doch eigentlich nicht so stark schwanken....

Viele Grüße, mrjack


edit: Was ich noch glatt vergessen hab und mir grad einfiel (erschien mir so offensichtlich während des Schreibens): Ein a+c*exp(b*t)-Fit mag zwar gut auf die Kurve passen, aber man weiß halt nicht im Voraus, was für eine Kurve sich ergibt. Das ganze sind Fahrbahnverläufe von Autos. Es sei den, man findet ein ad-hoc-Verfahren, zum Entscheiden. Denn: Es ist auch denkbar, dass der Algorithmus regelmäßig abläuft und immer wieder (alle 100ms oder einmal pro Sekunde) neue Daten einfließen - wobei das noch fraglich ist, ob das wirklich so sein muss...

Bezug
                        
Bezug
Interpolation von Messwerten: Antwort
Status: (Antwort) fertig Status 
Datum: 09:55 Sa 22.03.2008
Autor: ullim

Hi,

wenn der Algorithmus regelmäßig ablaufen soll, als zeitlich getaktet, dann währe es natürlich besser einen rekursiven Ansatz zu wählen. Z.B. bietet sich da ein Kalmanfilter an. Hier muss Du ein Modell über deine Zustandsgrössen aufstellen und danach Messungen am Modell machen, die mit den vorhergesagten Werten verglichen werden und so zu neuen Vorhersagen führen.

Diesen Algorithmus kann man auch zeitlich rückwärts laufen lassen so dass man nicht nur extra- sondern auch interpolieren kann. Wesentlich ist bei dem Ansatz, dass man das System als ein stochastisches System betrachtet und sich Klarheit über das Fehlerverhalten von Modellvorhersage und Messfehler verschafft, da die Kovarianzen dieser Fehler wesentlich das Modellverhalten beeinflussen.

Als Library kann man sicherlich Matlab verwenden. Dort sind meiner Kenntniss nach schon Kalmanfilter vollständig implementiert. Diskrete und kontinuierliche.

Falls Du aber bei einer Batchverarbeitung bleiben möchtest, sind in Matlab natürlich auch alle gängigen Verfahren implementiert um einen Least Square Fit oder eine Polynominterpolation zu realisieren.

Bei der letzten Methode muss Du dir allerdings klar darüber sein, das Interpolationspolynome nur an den Stützstellen und vielleicht in der näheren Umgebung der Stützstelle eine gute Interpolation möglich machen. Es besteht durchaus die Möglichkeit, hängt von der Anzahl der gewählten Stellen ab durch die das Interpolationspolynom gehen soll, das zwischen zwei Stützstellen das Polynom stark schwankt. In dem Fall hast Du dort dann keine gute Interpolation.

Die Kalmanfilter Methode ist insofern auch besser, weil Du dich dort mit dem tasächlichen physikalischem Verhalten deiner Zustandsgrössen beschäftigen muss. das Interpolationspolynom stellt sicherlich kein adäquates Modell dar.

Kalmanfilter Literatur gibt es sehr viel. Falls Du den Weg gehen solltes, kann ich Dir auch ein paar Literatur Tips geben.

mfg ullim

Bezug
                                
Bezug
Interpolation von Messwerten: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 16:22 Sa 22.03.2008
Autor: mrjack

Hi!

Das mit dem Kalmanfilter ist echt ne gute Idee, also über ein paar Literaturhinweise wär ich auf jeden Fall dankbar! Hab grad schon ein paar Sachen, die ich über Google auf die Schnelle finden konnte überflogen...
Hmm...aber dann nochmal ganz konkret: Also ich habe verschiedene Modelle, z.B. Exponentialkurven, Geraden und der Kalmanfilter gibt dann immer eine Abschätzung, wie gut das jeweilige Modell passt? Oder gebe ich besser alle Messdaten von den verschiedenen Messgeräten an den Kalmanfilter und der sagt mir vorher, wie die "perfekte" Messung aussieht?
Naja, Matlab ist zu Testzwecken wahrscheinlich ganz gut. Aber letztendlich muss das ganze auf einer möglicherweise exotischen Plattform laufen, im Idealfall unter C++. Aber hab grad schonmal geguckt, es gibt mindestens 2 Libraries, die Kalmanfilter implementieren.

Viele Grüße, mrjack

Bezug
                                        
Bezug
Interpolation von Messwerten: Antwort
Status: (Antwort) fertig Status 
Datum: 08:49 So 23.03.2008
Autor: ullim

Hi,

ich geb mal ein kurzes Beispiel für einen Kalmanfilter.

Der Kalmanfilter hat erstmal grundsätzlich zwei Phasen.

1. Vorhersage des Zustandes und des Schätzfehlers mittels der Modellannahmen
2. Verarbeiten des Messwertes und anpassen der Schätzung für den Zustand und den Schätzfehler

Der Filter verarbeitet die Messwerte alle genau in der Reihenfolge.

Das Modell für die Vorhersage ist eine Matrix die beschreibt, wie man den Zustand zum Zeitpunkt k auf den Zeitpunkt k+1 vorhersagt. Hier muss man sich erstmal entscheiden ob man ein diskretes oder ein kontinuierliches Kalmanfilter verwenden will. Kontinuierliche Filter werden durch Differentialgleichungen und diskrete durch Differenzengleichungen beschrieben. Ich nehme hier mal ein diskretes und das Modell sei wie folgt:

[mm] x_{k+1}=A*x_k [/mm] und als Beispiel sei hier [mm] x=\vektor{p \\ v} [/mm] mit

p = Position
v = Geschwindigkeit

Nehmen wir mal an, die Geschwindigkeit ist konstant, dann gilt für A

[mm] A=\pmat{ 1 & T \\ 0 & 1 } [/mm] wobei T die Zeit für einen Zeitschritt darstellt.

Nun muss noch die Messung [mm] y_k [/mm] modelliert werden. Wird nur die Position gemessen, dann gilt:

[mm] y_k=C*x_k [/mm] mit [mm] C=\pmat{ 1 & 0 } [/mm] wobei C die Messmatrix ist.


Man muss auch noch Annahmen treffen über die Modellgenauigkeit und den Messfehler.

Q = Kovarianz der Modellungenauigkeit

R = Kovarianz des Messfehlers


Nun kann der Kalmanfilter nach den folgenden Vorschriften gerechnet werden.


Vorhersage
---------------

Zustandsvorhersage: [mm] x_{k+1/k}=A*x_{k/k} [/mm] und

Schätzfehlervorhersage: [mm] P_{k+1/k}=A*P_{k/k}*A^t+Q [/mm]



Messwertverarbeitung
-----------------------------

Messwert beim Zustand verarbeiten: [mm] x_{k+1/k+1}=x_{k+1/k}+K_{k+1}*(y_{k+1}-C*x_{k+1/k}) [/mm]

Schätzfehlermatrix updaten: [mm] P_{k+1/k+1}=P_{k+1/k}-K_{k+1}*C*P_{k+1/k} [/mm]

Verstärkungsfaktor berechnen: [mm] K_{k+1}=P_{k+1/k}*C^t*(C*P_{k+1/k}*C^t+R)^{-1} [/mm]

Übrigens

k+1/k bedeutet, man hat auf den Zeitpunkt k+1 extrapoliert aber Messwerte nur bis zum Zeitpunkt k verarbeitet
k+1/k+1 bedeutet man hat den Messwert bis zum Zeitpunkt k+1 auch schon verarbeitet

D.h. der Kalmanfilter schätzt entsprechend seiner Modellannahmen den Zustand auf Grund der gemachten Messungen pro Arbeitsschritt. Ist das Modell dem tatsächlichen Verhalten nicht optimal angepasst, sind die Schätzungen auch nicht so gut. Das sieht man dem Term Q in der Schätzfehlervorhersage.

Man kann aber einen zusätzlichen Filter mit einem anderen Modell einsetzten und diesen ebenfalls Schätzungen durchführen lassen. Danach hat man mehrere Möglichkeiten:

1. Man kann den besten Schätzter (kleinste Fehlerkovarianz) auswählen und mit dem den Zustand schätzen oder
2. Man nimmt die Ergebnisse beider Schätzer und verarbeitet sie zu einer gemeinsamen, gewichtet entsprechend der einzelnen Fehler.

Man kann das ganze dann auch noch auf nichtlineare Modelle erweitern und kommt so zum Extended Kalmanfilter.

Das Thema um den Kalmanfilter ist übrigens riesig. Deshalb hier ein paar Literatur Hinweise.

1. A. H. Jazwinski, Stochastic Processes and Filtering Theory (1970)
Gibt einen sehr guten Überblick über stochastische Prozesse. Finde ich sehr gut.

2. R. A. Singer, Estimating Optimal TRacking Filter Performance for Manned Maneuvering Targets, IEEE Transaction on Aerospace und Electronic Systems, Vol. AES-6, Nr. 4, S 473 - 483, Juli 1970
Ist so das grundlegende Papier das ich kenne, das sich mit bescleunigten Bewegungen auseinander setzt.

Dann kann man sicher noch Literatur über [mm] \alpha-\beta-Filter [/mm] empfehlen, das sind die stationären Lösungen von 2- bzw. 3-dimensionalen Kalmanfilter.

mfg ullim

Bezug
                                                
Bezug
Interpolation von Messwerten: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 17:06 So 23.03.2008
Autor: mrjack

Alles klar... Also nochmal vielen Dank für deine Hilfe, hat mir sehr weitergeholfen!

Viele Grüße, mrjack

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Interpolation und Approximation"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.matheraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]