LabVIEWForum.de
Splineinterpolation mit LV - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Splineinterpolation mit LV (/Thread-Splineinterpolation-mit-LV)



Splineinterpolation mit LV - chris_deus - 23.10.2006 09:53

Hi,
hat jemand Erfahrungen mit Splineinterpolationen in LV 7.1? Oder vielleicht sogar ein VI was das schon kann? ^^ blush.gif

Ich möchte damit einen "Spline" durch 10-13 Messwertpaare legen, die nicht in äquidistanten Schritten aufgenommen wurden.



Bin sehr dankbar für Tipps, Tricks und evtl. sogar VIs.



MfG,
Chris


Splineinterpolation mit LV - Lucki - 23.10.2006 10:16

' schrieb:Hi,
hat jemand Erfahrungen mit Splineinterpolationen in LV 7.1? Oder vielleicht sogar ein VI was das schon kann? ^^ blush.gif

Ich möchte damit einen "Spline" durch 10-13 Messwertpaare legen, die nicht in äquidistanten Schritten aufgenommen wurden.
Bin sehr dankbar für Tipps, Tricks und evtl. sogar VIs.
MfG,
Chris
Ja, schon, aber es ist so: Bei der Spline-Aproximation gibt es einen "großen Sprung nach vorn" in der Version 8. Statt mehrere VI zu diesem Thema gibt es nur noch eines, und das macht genau das, was man braucht und ist ohne jede Vorkenntnisse ganz einfach zu handhaben.
Vorher war die Spline-Approximation vergleichsweise grausam zu programmieren, und ich habe bei mir die 7.1 nicht installiert.
Auch wenn ich Dir nicht helfen kann, so würde ich Dir trotzdem raten, ein VI mit den Beispieldaten zu schicken - Z.B als Bedienelement, Diagramm oder Konstante mit den vorinitialisierte Daten. Das motiviert. Außerden angeben, wie viele Datenpunkte hinten herauskommen sollen.


Splineinterpolation mit LV - chris_deus - 23.10.2006 11:53

Hallo Lucki,
leider hat mein Prof keine Lizenz für LV 8.0 und ich muss das jetzt mit 7.1 hinbekommen.
Angehängt habe ich eine Grafik mit den zu interpolierenden Punkten. Es sind immer 10-13 Messpunkte.

Auf dem Spline sollen hinterher ca 7000 Punkte liegen, die ich dann mit einem Schrittmotor anfahren möchte.

Nur zur Info: Die Messpunkte sind das charakteristische Spektrum einer Eichlampe für einen Monochromator.
Die y-Achse ist Wellenlänge, x-Achse sind die Schritte des Schrittmotors.
Da ich bei bestimmten Positionen des Schrittmotors Peaks gemessen habe, möchte ich einen Spline durch diese Punkte legen, um später dann quasi auf dem Spline entlang zu bestimmten Wellenlängen fahren zu können.

Mahtemetisch habe ich halbwegs verstanden wie eine Spline-interpolation/aproximation funktioniert.
Wie ich das programmieren soll ist mir aber ein Rätsel bzw. wird vermutlich sehr aufwändig.


MfG,
Chris


Splineinterpolation mit LV - Lucki - 23.10.2006 13:52

' schrieb:Mahtemetisch habe ich halbwegs verstanden wie eine Spline-interpolation/aproximation funktioniert.
Wie ich das programmieren soll ist mir aber ein Rätsel bzw. wird vermutlich sehr aufwändig.
Es ist nicht aufwendig, und mathematisch verstehen mußt Du überhaupt nichts.
Du muß natürlich wissen, daß die Splineaproximation nur zur Interpolation, nicht aber zur Glättung dient, die neue Kurve geht durch die alten Kurvenpunkte hindurch; Spline ist nicht geeignet, die Kurve in dem Sinne zu glätten, daß Ausreißer nicht mehr auf der Kurve liegen. Dafür wäre z.B die Polynomapproximation besser geeignet.
Noch besser wäre es dann allerdings, wenn Du eine Formel hast, nach der die Kurve theoretisch verläuft. Dann ginge es nur noch darum, die Parameter dieser Formel so zu bestimmem, daß die Kurve optimal nahe an den Meßpunkten ist. Auch dafü gibt es VIs.
Das erwähnte Spline-Vi ist ganz einfach, es hat 3 Eingänge und 1 Ausgang:
1. u. 2. Eingang; X-Vektor und Y-Vektor der Punkte
3. Eingang: X-Vektor der Punkte, die Du gern haben möchtest, also z.B. 7000 äquidistante Punkte
Ausgang: Die Y-Werte zu den gewünschten Punkten.
Bie V7.1 müßtest Du Dir aus den 2, 3 oder 4 Spline-VIs erst mal ein VI zusammenbasteln, welches die oben genannte Funktion hat. Hilfen lesen, losmachen, und Dich nicht um den mathematischen Hintegrund kümmern. In einer Stunde kannst Du fertig sein.
Aber, wie gesagt, überleg Dir genau, ob Spline wirklich das ist, was Du brauchst. Ich denke nämlich, Daß die Kurve in Wirklichkeit nicht so wellig sein kann, wie Deine Messpunkte suggerieren, und diese Welligkeit wirst Du mit Spline nicht los. Lösung wäre z.B Polynomapp. 3-Grades.


Splineinterpolation mit LV - chris_deus - 23.10.2006 14:26

Ein Polynomfit 2. Grades passt eigentlich ganz gut.
Es wäre nur schade, wenn ein hochgenaues Gerät hinterher einen Fehler von 2-3nm in der "Wellenlängentreffsicherheit" hat, nur weil die Ausgleichskurve so ungenau ist.

Deshalb soll die gesuchte Kurve exakt durch die Messpunkte gehen - also keine Ausgleichskurve oder sowas.

Die Welligkeit ist erwünscht. Deshalb kam ich ja auf den Spline ^^

Wenn ich eine Art Anleitung oder Hilfe zu dem Thema finden würde, wäre mir auch schon geholfen (Dann muss ich ja wirklich nichts verstehen ^^). Hast du eine Ahnung wo ich so etwas finden kann?


MfG,
Chris


Splineinterpolation mit LV - Lucki - 23.10.2006 16:41

Du gibst ja eh kein Ruhe, hier ist ein Spielprogramm, damit müßtest Du es schaffen.
Den umrandeten Teil um besten in ein Sub-Vi packen, da hast Du dann genau das, was es in LV8 fertig gibt. Und was dort im Inneren vor sich geht, das mußt Dich nicht wirklich interessieren.
Besser wäre es, wenn Du Deine Daten geschickt hättest, Deine Graphik eignet sich natürlich nicht zur weiteren Verwendung.
Ich warte dann auf die Erfolgsmeldung...


Splineinterpolation mit LV - chris_deus - 23.10.2006 18:02

Entschuldige bitte. Das war nicht gerade professionell von mir.

Jedenfalls bin ich sehr dankbar für das VI. Ich war fast genauso weit gekommen (was den blauen Kasten betrifft), hatte aber die for-Schleife nicht bedacht.

Das nächste Mal nehme ich mir dann die Werte aus der Uni mit und stelle präzisere Fragen.


MfG,
Christoph

Ach ja, hatte ich ganz vergessen: Wer es damit nicht schafft, schaffts wohl nie ^^ <- Erfolgsmeldung


Und danke nochmal!