LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Extract Multiple Tone Information

Im trying to measure a low level 400 hz sinewave..low level being almost zero.  I've been using Extract Multiple Tone Information.  My test set swings from 7 vp thru zero depending on the position of a device which I'm required to measure.  That vi is fine for higher level amplitudes but when I get close to zero, it reads random values.  I know its almost zero yet my reading maybe 1.34 Vp for example.  I've set the "threshold" to .0001 and still get erroneous results.    I need to use Extract Multiple Tone Information.vi for other parameters during the test that it provides like phase and frequency.  Any suggestion how I can get phase, freq and amp w both a Vp 0f 7 volts and the same for a reading of almost zero?

 

thxs

0 Kudos
Message 1 of 8
(2,141 Views)

Hi Clint,

 

do you mind to attach a VI containing your current approach together with a typical dataset?

 


@Clint1000 wrote:

how I can get phase, freq and amp w both a Vp 0f 7 volts and the same for a reading of almost zero?


It also would help a lot when your questions would contain readable text: what is " freq and amp w both a Vp 0f 7 volts"?

Heard of this before?

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 2 of 8
(2,113 Views)

I may have found a problem in my hardware.  Troubleshooting that now.  

What my question should have been..maybe..I have a sinewave that is 400 hz.  The amplitude can swing from zero volts to 7 volts peak.  I'm using the Extract Multiple Tone Information vi to obtain phase, amplitude and frequency at different points during the test.  At some point the threshold drops below 10 millivolts peak and the Extract Multiple Tone Information vi doesn't read the signal anymore.  I set the "threshold" input on the vi to 10 millivolts which doesn't appear to do any good.  My question was how low can that vi read data?  I need all 3 of those values,  phase, amplitude and frequency for my test.  Above the 10 millivolts that vi works like a charm..below..not so good.  Any alternative?  

Cannot post my current code..sorry.

Sorry for the poor english.

0 Kudos
Message 3 of 8
(2,065 Views)

It is kind of hard to separate a very low level sine wave out of the noise floor of a signal.  So if you are trying to measure a real world signal, you may not be able to do it.

 

If this is just an issue withe the software side of that function, then what would happen if you multiplied the waveform by let's say 100, extract the information, then correct the result on the other side by dividing by 100.  (You might have to experiment with that because depending on the FFT implementation, it might be a power rather than an amplitude result and thus would give you different Y values.

0 Kudos
Message 4 of 8
(2,060 Views)

Please post some realistic data, not the code.

 

You have a couple of options:

  1. You know the time duration and sampling rate of your signal. Take the FFT of the signal and look at the bin that contains the 400 Hz component. Calculate the magnitude and phase from that. Note for a noisy signal, the result is going to be noisy.
  2. Average the signal or increase your duration time. Both have the effect of reducing noise.

mcduff

0 Kudos
Message 5 of 8
(2,044 Views)

thanks..I was going to try that but thought you loose phase info taking a FFT.

0 Kudos
Message 6 of 8
(2,037 Views)

You wouldn't lose phase if you are just multiplying all the time domain data points by the same value.

 

PS:  Loose is the opposite of tight.  Lose is the opposite of find.  It is a pet peeve of mine how many people get those mixed up.

 

0 Kudos
Message 7 of 8
(2,032 Views)

@Clint1000 wrote:

thanks..I was going to try that but thought you loose phase info taking a FFT.


Get the the real and imaginary parts, then use the complex math to determine the magnitude and phase.

 

Snap25.png

mcduff

0 Kudos
Message 8 of 8
(2,031 Views)