From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Signal manipulation, cannot find express VI replacements

Solved!
Go to solution

Hello,

 

For proprietary reasons, I can't post the VI I'm talking about here but I will attempt to describe it. I have a VI from an old LabVIEW program, this program used express VIs to manipulate signals (waveform data). One of the express VIs was "arithmetic" which would add two waveforms together mathematically. I don't see this anywhere in the express pallet of LabVIEW 2016.

 

Also, the same "amplitude and level" and "distortion" VIs exist in the current express pallet but "distortion" doesn't have an output for fundamental frequency (the original 'distortion' express VI outputted this value as a scalar DBL).

 

The use of the express VIs here just seems unnecessary, I'm also thinking about just scrapping this legacy VI and rewriting it using the standard DAQmx library.

 

Thanks

0 Kudos
Message 1 of 5
(2,182 Views)

@TestEngineer11 wrote:

The use of the express VIs here just seems unnecessary, I'm also thinking about just scrapping this legacy VI and rewriting it using the standard DAQmx library.


Yes!!!

 

Bob Schor

0 Kudos
Message 2 of 5
(2,159 Views)

Thanks. Let's say I have an analog input from 8 channels. If I set up my DAQmx task to read N samples N channels, how do I parse that data that comes out? The DAQmx read function only outputs 1D waveform array, shouldn't it be 2D? (one row of data for each channel?)

 

Or do I need to parse based on number of samples? i.e.

 

0N - 1N = channel 1 data

1N - 2N = channel 2 data

....

 

This is all kind of confusing because some of the VIs I need to use like (express vi: "filter") outputs dynamic data.

0 Kudos
Message 3 of 5
(2,141 Views)

Oh wait, I think I've figured it out. Each element of the waveform array contains ALL the sample data for a given channel.

 

So array[0] contains all the sample data for channel 1...right?

0 Kudos
Message 4 of 5
(2,138 Views)
Solution
Accepted by topic author TestEngineer11

You get to Have Your Cake and Eat It, Too.  [Or at least I have this choice ...].  When you configure the DAQmx Read for N Channels, N Samples, you can choose 1D Array of Waveforms (where each Waveform holds all the sampled data for a channel) or 2D Array of Dbls (where the first index is over Channels, the second over Samples) (unless I got that backwards).

 

Bob Schor

0 Kudos
Message 5 of 5
(2,133 Views)