LabVIEWForum.de
Wie Array interpolieren? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Wie Array interpolieren? (/Thread-Wie-Array-interpolieren)

Seiten: 1 2


Wie Array interpolieren? - KonZ - 14.05.2008 13:46

Hallo Leute,

ich benutze das Beispiel "Draw Graph" um eine Art Höhenprofil zu zeichnen. Dieses Beispiel schreibt zu jedem bestimmten Punkt den jeweiligen X- bzw. Y-Wet in ein 1-dimensionales Array. Soweit so gut, ich kann diese Werte auch auslesen und damit arbeiten, jedoch bräuchte ich auch die Werte dazwischen. Ich muss sozusagen aus den einzelnen Stützstellen den Graphen interpolieren. Wie kriege ich das hin? Es gibt ja das Element "Array interpolieren", jedoch werde ich aus diesem nicht ganz schlau. ich kann dem Element ja einen Index übergeben, an welcher Stelle interpoliert werden soll, oder? Wie funktioniert das ganze?

MfG

Kons


Wie Array interpolieren? - Xaran - 14.05.2008 14:48

Moin!

Achtung - Antwort hier aus dem Gedächtnis, hoffentlich passt esWink

Es müssten da drei Eingänge sein:
Y - Die zu interpolierenden Daten
X - Die dazu passenden Stellen (falles es unregelmäßig sein sollte)
xi - die neuen Stellen (ergeben sich durch die neue Abtastrate)

Also wenn jetzt die Zahlenfolge 10,20,30 auf 10,11,12,13,...,30 interpoliert werden soll, müsste das X entsprechen 0,10,20 und das xi 0,1,2,3,...,30 sein.


Wie Array interpolieren? - KonZ - 14.05.2008 15:01

hmm, ja so is das glaub ich nur kann ich es auf mein beispiel nicht so richtig anwenden...also, ich habe 2 1-dimensionale Arrays, einer enthält die X-Werte, einer die Y-Werte. Ein X/X Paar hat also immer den gleichen Index in seinem jeweiligen Array. Nun habe ich aber nur Y-Werte für ausgewählte X-Stellen. Ich habe also eine X-Skala, die von 0-100ß geht, habe aber nur an Beispielsweißse 20 Stellen mittendrin Stützwerte.
Wie muss ich da jetzt vorgehen um für jeden beliebigen X-Wert(in meinem Fall 0,1,2,3...,1000) den passenden Y-Wert zu ermitteln?

MfG

Kons


Wie Array interpolieren? - Xaran - 14.05.2008 15:23

Y - Deine Y-Werte (lückenhaft)
X - Die dazu passenden X-Werte (also auch lückenhaft)
xi - Die X-Werte, diesmal aber fortlaufend

Also z.B.
Y = (1,2,4,5)
X = (0,1,3,4)
xi = (0,1,2,3,4)

da sollte sowas rauskommen wie
yi = (1,2,3,4,5)


Wie Array interpolieren? - KonZ - 14.05.2008 15:31

Ah ok, also das "Array Interpolieren" Element hat nur 2 Eingänge, einmal für das zu interpolierende Array und dann den Index, also die Stelle, die interpoliert werden soll. Das ganz funktioniert auch, nur is jetzt noch das Problem, wenn ich zum Beispiel einen X-Wert von 74,6 habe und den Y-Wert an dieser Stelle haben will, dass ich dem Interpolierer nicht einfach sagen kann, interpoliere an der Stelle 74,6, sonern ich habe ja nur den Index der Stützstelle und müsste jetzt gucken, zwischen welchen Stützstellen ds genau ist. Also zwischen Nr. 10 und 11 vieleicht. Gibts nich ne Möglichkeit, wie ich einfach die X-Stelle angeben kann und ich kriege die passende Y-Stelle ausgespuckt?


Wie Array interpolieren? - Lucki - 14.05.2008 15:58

' schrieb:. Wie kriege ich das hin? Es gibt ja das Element "Array interpolieren", jedoch werde ich aus diesem nicht ganz schlau.
Prinzipiell könnte man dies Funktion zwar verwenden, wenn Du immer nur einen Zwischenpunkt brauchst und die Interpolation nur linear zu sein braucht. Nur: Es gibt da unter "Mathematik/ Interpolation und Extrapolation" Funktionen, die sind 1000 mal so leistungsfähig wie diese. z.B. diese:
[attachment=12514]


Wie Array interpolieren? - KonZ - 14.05.2008 16:44

naja, ich brauch ja im prinzip ja nur eine lineare interpolation.

also nochmal genauer zu meinem Problem:

Ich zeichne einzelne Punkte eines Graphens. Ich habe jeweils ein 1-dimensionales Array für die X-Werte und eines Für die Y-Werte. Somit bekomme ich die Stützwerte meines Graphens.

Die laufende Nr. n den Arrays ist auch die Nr. des Stützwertes.

Ich habe nun eine X-Achse, die von 0 bis 1000 geht und eine gewisse Anzahl von Stützstellen (So etwa 20). Diese sind bunt auf der X-Achse verteilt und entsprechen nicht der laufenen Nr. der Stützstellen.

Was ich nun bekommen möchte ist eigentlich ein Array, in dem zu jedem X-Wert (0,1,2,3,4...,1000) der interpolierte Y-Wert steht. Das ganze soll linear sein, das heißt die Punkte werden nur verbunden.

MfG

Kons


Wie Array interpolieren? - KonZ - 14.05.2008 20:40

So, ich hab jetzt erste Erfolge erzielt, jedoch sieht das nich so aus, wie ich es will^^

Ich hab mal den Teil vom Blockdiagramm reingestellt, der die Interpolation macht.

Der linke Graph im Frontpanel ist der gezeichnete mit den einzelnen Stützstellen und der rechte der Interpolierte...Ähnlichkeiten sind zu erkennen, aber irgendwo steckt noch nen grundsätzlicher Fehler. Hat da jemand ne Ahnung?

[attachment=12519]

[attachment=12520]


Wie Array interpolieren? - KonZ - 15.05.2008 17:05

Hat keiner ne Idee, was da falsch sein könnte?


Wie Array interpolieren? - jg - 15.05.2008 17:17

Rtmfx

Online-Hilfe zum VI öffnen (Strg->H)! Der obere Ausgang ist Y, der darunter X.

Außerdem verstehe ich immer noch nicht so ganz, was du genau willst.

1. Möglichkeit: Du willst eine lineare Ausgleichsgerade durch all deine Punkte legen?! Dann bist du mit diesem VI auf dem Holzweg.
2. Möglichkeit: Du willst "nur" immer zwischen 2 deiner "Messpunkte" eine Gerade legen. Dann müsstes du eigentlich nur deine Arrays ordnen, den Rest macht der Graph.

MfG, Jens