VegHead Posted November 14, 2006 Report Share Posted November 14, 2006 Download File:post-6833-1163530445.viI've found that the Decimate (continuous, DBL) works great. Very fast on large arrays of data. But by it's nature it only captures a spike in the data if it the peak of the spike happens to be one of the values passed thru. I've tried creating my own version of code to decimate and capture peaks and valleys. It work well but is slow. Is there a way or is there some code out there or shipped that I've over looked that will decimate and pass out the min and max for the given data that is decimated? The code snipet I created uses the a shift register to keep track of the data array. Delete From Array.vi to pull out chunks of the original data. Those array chunks are sent thru the array Max Min.vi. The indicies of Array Max Min.vi go thru the Max&Min.vi to get the correct order. Then I get the 2 points desired from the original chunk in the correct order, build an array of the 2 points and concatinate that array to an array that is being built on a 2nd shift register. It's not really as involved as it sound but difficult to put into words. This process on a large 1 D Array takes about 100mS. Too long. Any suggestions for making this run in a couple mS would be greatly appreciated. Thanks veghead Quote Link to comment
LAVA 1.0 Content Posted November 14, 2006 Report Share Posted November 14, 2006 I don't know exactly what you want but what about something like this... Quote Link to comment
Gary Rubin Posted November 14, 2006 Report Share Posted November 14, 2006 I don't know exactly what you want but what about something like this... Very clever! :thumbup: Quote Link to comment
VegHead Posted November 14, 2006 Author Report Share Posted November 14, 2006 That was very clever. I'm not savy enough to know how to add a picture of my code but with some additions your idea works great. To rebuild a new decimated array after the MinMax function you need to take the Min Index and Max Index from the MinMaxArray.vi. wire those to the Comparison Palet Min&Max.vi to find which came first. The Min or the Max, the Chicken or the egg. Using the Indexarray.vi wire the min index, then the max index. Wire the outputs to the edge of the for loop. After the for lop use the interleve function to put the min/max values back together into an array and graph it. It very closely resembles the original data and includes all abnormal data points. Takes 2 to 4 mS to decimate a 10,000 point array by 5. Fantastic idea. Thanks, Veghead I don't know exactly what you want but what about something like this... Quote Link to comment
LAVA 1.0 Content Posted November 14, 2006 Report Share Posted November 14, 2006 It very closely resembles the original data and includes all abnormal data points. I hope you undestand that this kind of data modification changes the statistical distribution of the data i.e. extremas become more probable than in the original data. Therefore you shouldn't run statistical tests to the data decimated this way unless you modify the tests to take the modification into account (which may be very hard to do properly). Quote Link to comment
VegHead Posted November 14, 2006 Author Report Share Posted November 14, 2006 That is a good point. Thank you. Fortunately I'm doing this for graphing during acquisition for the GUI only. Post process analysis will include all data points. The tech's watch the data on the screen during test and look for Odd spikes that might indicate an issue with the fixture or set up. So I wanted to make sure to capture all of the spikes and make them obvious. I hope you undestand that this kind of data modification changes the statistical distribution of the data i.e. extremas become more probable than in the original data. Therefore you shouldn't run statistical tests to the data decimated this way unless you modify the tests to take the modification into account (which may be very hard to do properly). Quote Link to comment
Michael Aivaliotis Posted November 14, 2006 Report Share Posted November 14, 2006 I'm not savy enough to know how to add a picture of my code but ... See here: How to Insert Images in your Posts What screen capture technique do you use for LAVA postings Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.