LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Getting data from an XY Graph curve

I have a XY graph with the X data spaced every 0.2 (0.00, 0.20, 0.40, etc.). After I display the graph I use the curser to manually (by eye) find the inflection point in the curve (ex. 1.46). I would like the software to determine the inflection point on its own, but LabView only "sees" the array of points (spaced every 0.20) not in-between. Is there any way for LabView to get data directly from the curve? ( I have the Base package by the way - so no Curve fitting VIs)
0 Kudos
Message 1 of 4
(3,154 Views)
Is this experimental data?

An inflection point is a point on a curve at which the sign of the curvature changes. Determination of the inflection point requires the second derivative of the curve, which might be very noisy for real data.

If you can somehow get an array containing the second derivative of the data, you can get the fractional point where it crosses zero using "interpolate array.vi" from the array palette. (you would still need to check that adjacent points have opposite sign for the rare case where one point is exactly zero, but both neighbors have same sign).
0 Kudos
Message 2 of 4
(3,154 Views)
Sorry, I meant "threshold array.vi" also from the array palette. You migh need to multiply the array with (-1), depending on the sign of the slope in the region of interest.
0 Kudos
Message 3 of 4
(3,154 Views)
You can curve fit in a number of ways. You can find an algorithm in any numerical methods text book and implement it. A simple fit is to assume that the exists a linear line between each of your data points. You can get the slope of the lines then look for the inflexion points there. This would be analagous to the first derivative. You can do it again if you want to work with the second derivative.

Look for numerical recipes in C online for help with the algorithms.
0 Kudos
Message 4 of 4
(3,154 Views)