14.05.2008, 13:46
Beitrag #1
|
KonZ
LVF-Grünschnabel
Beiträge: 23
Registriert seit: Apr 2008
8.5
-
de
10589
Deutschland
|
Wie Array interpolieren?
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
|
|
|
14.05.2008, 14:48
Beitrag #2
|
Xaran
LVF-Gelegenheitsschreiber
Beiträge: 200
Registriert seit: Jun 2006
LabView 2009
2006
en
80***
Deutschland
|
Wie Array interpolieren?
Moin!
Achtung - Antwort hier aus dem Gedächtnis, hoffentlich passt es
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.
|
|
|
14.05.2008, 15:01
Beitrag #3
|
KonZ
LVF-Grünschnabel
Beiträge: 23
Registriert seit: Apr 2008
8.5
-
de
10589
Deutschland
|
Wie Array interpolieren?
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
|
|
|
14.05.2008, 15:23
Beitrag #4
|
Xaran
LVF-Gelegenheitsschreiber
Beiträge: 200
Registriert seit: Jun 2006
LabView 2009
2006
en
80***
Deutschland
|
Wie Array interpolieren?
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)
|
|
|
14.05.2008, 15:31
Beitrag #5
|
KonZ
LVF-Grünschnabel
Beiträge: 23
Registriert seit: Apr 2008
8.5
-
de
10589
Deutschland
|
Wie Array interpolieren?
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?
|
|
|
14.05.2008, 15:58
Beitrag #6
|
|
|
14.05.2008, 16:44
Beitrag #7
|
KonZ
LVF-Grünschnabel
Beiträge: 23
Registriert seit: Apr 2008
8.5
-
de
10589
Deutschland
|
Wie Array interpolieren?
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
|
|
|
14.05.2008, 20:40
Beitrag #8
|
KonZ
LVF-Grünschnabel
Beiträge: 23
Registriert seit: Apr 2008
8.5
-
de
10589
Deutschland
|
Wie Array interpolieren?
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?
|
|
|
15.05.2008, 17:05
Beitrag #9
|
KonZ
LVF-Grünschnabel
Beiträge: 23
Registriert seit: Apr 2008
8.5
-
de
10589
Deutschland
|
Wie Array interpolieren?
Hat keiner ne Idee, was da falsch sein könnte?
|
|
|
15.05.2008, 17:17
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Wie Array interpolieren?
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
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
| |