Showing results for 
Search instead for 
Did you mean: 

Can labview perform background subtraction from 2 data shots?

i.e. take a calibration shot of a blank, then subtract that data waveform from that of the following target shot? In as close to real time display as possible? We're tying to use this to more acurately place our data taking instruments. Take the calibration shot, then position the data instrument while viewing it's response minus the calibration shot's response. Any help is greatly appreciated.
0 Kudos
Message 1 of 8
I am not sure of your question. What do you mean by "shot"? LabVIEW can certainly perform tasks in parallel. How fast it does it generally depends on the speed of your computer. You may want to delay the update of the screen if your are attempting to display complicated data. This way the calculations can run at full speed. I have attached an example program to explain.
0 Kudos
Message 2 of 8
as I've got the problem you have to cinds of measuremnts - calibration one and some signal. What you want is to subtract every time the calibration from signal.

What's the problem? Just do the substration before you process the data. So you have to follow the next steps:
1. Measure calibration data.
2. Every time you measure the signal substrate the calibration data from your signal.
3. Process the difference.

Good luck.

Oleg Chutko.
0 Kudos
Message 3 of 8
Thanks for the replies. You'll have to excuse my ignorance as I am a novice when it comes to labview.

Perhaps a little more clarity on my program would help. Closest analogy is metal detection. We have a target within say, soil. We want to take a freq. sweep characteristic sample of the soil without the target and subtract that waveform from the target waveform while we are acquiring.

Seems to me that I can use the same data acq. app we have, record the soil waveform and incrementally subtract that from the target waveform. I just can't seem to understand how to get the to trigger and increment down the calibration data file in time with the target acquisition, to subtract it off, and renew again as we continuously run the progra
m. I run into initialization errors among others.

I've attached my efforts so far, eliminating the actual acquisition program. I would greatly appreciate any insight you can provide into my amateur 😉 approach.

Thanks again,
0 Kudos
Message 4 of 8
Error found. Thanks again.
0 Kudos
Message 5 of 8
What exactly is the format of the data you're working with? At first reading it sounds like perhaps images, but it could be waveforms too. We might be able to be more specific if we had a few more details.

If the data is in the form of an array of floating-point values, all you have to do is subtract as the LV subtraction routines are polmorphic and so can subtract almost anything.


Certified Professional Instructor
Certified LabVIEW Architect
LabVIEW Champion

"... after all, He's not a tame lion..."

For help with grief and grieving.
0 Kudos
Message 6 of 8

I have a question on a very similar topic.  I have a camera that spits out a 1D array every second.  I can plot this easily, and it changes every second as expected.  I use an optical chopper to block the laser every other shot so that one shot has signal while the next is just background (and this repeats over and over again). Can I store two pictures at a time in a double array so I can subtract one from the other?

0 Kudos
Message 7 of 8

I attached a simple VI that generates a sequence of spectra where each spectrum with a signal is followed by a background spectrum.  This VI also shows my feeble attempt at subtracting the two.  I deally, in the end I will add the subtracted spectra together.



0 Kudos
Message 8 of 8