04-20-2015 03:55 AM
Hi
I have the amplitude of a signal to measure.
I cant measure the amplitude of the whole waveform as the error margin is high.
so I divide the waveform in 100 parts(get Waveform Subset ) & then measure with labview measurement vi's very part.
The " get Waveform Subset" is not reentrant so It takes quite some time so that it processes all 100 times in a loop
How to speed up is there a workaroud for this!
I see the measurement vi is least time consuming its th get subset that makes problem
a image of the vi is attached!
04-20-2015 04:03 AM
04-20-2015 06:12 AM
not simple as that
the waveform is divided so that every quotient can be measured
so the time of the waveform( x values) along with Y values are imp
the function waveformSubset does that good except that for this req. its slow
04-20-2015 06:19 AM - edited 04-20-2015 06:20 AM
Hi aparab,
so the time of the waveform( x values) along with Y values are imp
What means "imp"? GoogleTranslate doesn't know a (relevant) word like that!
Maybe I should mention this thread…
the function waveformSubset does that good except that for this req. its slow
That's why I suggested ArraySubset. What's wrong with? Can't you use some basic math to get the same parts of your waveform like GetWaveformSubset does?
04-20-2015 12:24 PM
What is the size of the waveforms (number of data points)? 100 points? 10000 points 1E9 points?
What is the size of the subset?
What is slow? Milliseconds or weeks? Please supply some numbers. How fast would you like it to be?
Often the best way to get help with something like this is to post your VI with some typical data saved as default. Tell us what results you get and what you want the results to be.
Lynn
04-20-2015 12:35 PM
thanks Gerd & Lynn I will put some data (numerics)
03-23-2016 01:46 AM - edited 03-23-2016 01:48 AM
Possibly sorry for necro but this was the result searching the board.
Turns out that GerdW's suggestion is massively faster than GetWaveformSubset.
For my application, which sounds similar to the OP's, I want to measure the period of the waveform.
LabVIEW has a convenient (and fast) 'Pulse Measurements' VI, but this only accepts a waveform input.
Even splitting the waveform to array, passing to a 'For' loop containing 'Array Subset', and then reconstructing the waveform using dt*index + t0 (from outside loop), then passing this to the 'Pulse Measurements' VI was massively faster. (Splitting a 1M element waveform into 4000 element blocks, then bundling to an auto-indexed array of points goes from average 519 to average 5.9 on profiling tool)
Thanks, and I recommend this approach if you need a waveform subset (even if it takes a few more VI calls and some curious roundabout logic).
An example is attached