LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Signal Processing

Hello guys, I just started using the NI evaluation kit, sbRIO9636, labview 2014 to acquire data from a piezoelectric transducer(PZT). PZT is a compound that produce electricity when a force is induced. However, in the process, there is noise that reach an amplitude of 0.38. How can i do to calibrate the signal to become zero or approximately zero when it was connected to the pzt transducer so that i can calculate the volatge produced and get the graph of it when a force is induced.

I have attached my data graph when connected to pzt transducer and I set my loop timer of fpga to 500usec. The following are the VI and FPGA of my project, please take a look and see if anything I need to change or correct, thank you very much in advance.

0 Kudos
Message 1 of 10
(3,485 Views)

Well, in IR spectroscopy we usually take a reading with no illumination (known as "background") and then a reading with illumination, then get the difference. The resulting waveform is basically noise-free.

 

If the noise is reliably the same amount from measurement to measurement, you might benefit from the same sort of technique. In your case, could you just subtract .38 from your measurement?

0 Kudos
Message 2 of 10
(3,453 Views)

Sorry, I'm not currently able to look at your code (and don't like looking at "pictures" of code).  Here are some comments:

  • What is the timing of the process you are measuring?  Are you looking at transients, very short stimuli (like impacts) or relatively slow-changing forces (times measured in seconds or tens of milliseconds)?  This should govern your sampling rate (you want to sample on-the-order-of 10 times the highest frequency of interest in your signal).  I'm guessing that the FPGA period is 1/(sampling Freq), which makes the Frequency 2kHz.
  • What is the character of the "noise"?  I'm assuming that it has a DC value of 0, and an RMS on the order of 0.38 (units, Volts?).  The usual way to handle Noise is to filter (or average, which is a form of Low Pass Filtering).  If the Noise includes a steady (and stable) DC Bias, you can subtract that Bias from your measurement signal, but you'd still have the RMS noise (which you can filter out).

Bob Schor

0 Kudos
Message 3 of 10
(3,449 Views)

When i just run it without any input, the graph will show a reading, which I not sure is the background noise or not. Now I suspect maybe is the current flow within the evaluation board itself, is it possible? And if it is, how can I solve it?? Thanks in advance

0 Kudos
Message 4 of 10
(3,380 Views)

If it's electronic noise then that sounds like a hardware problem. I'm not familiar with your setup but you might consider re-evaluating it. Noise can come from just about anywhere and I suspect only somebody familiar with the technology will be able to track it down. If it cannot be helped then you have no choice but to account for the error with some type of calibration/offset in the software.

0 Kudos
Message 5 of 10
(3,375 Views)

@newuserneedhelp wrote:

When i just run it without any input, the graph will show a reading, which I not sure is the background noise or not. Now I suspect maybe is the current flow within the evaluation board itself, is it possible? And if it is, how can I solve it?? Thanks in advance


What is the frequency of the signal? Is it pickup from something? Is you sbRIO board exposed, or in a metal case?

 

mcduff

0 Kudos
Message 6 of 10
(3,371 Views)

I've tried to reevaluate it for a few times, but it remains the same. The hardware (sbRIO 9636), it able to generate waveform signal itself whenever it runs (if you connect the analog input with the signal generating output), so i suspect the signal i get (without connecting any AIO) is the current within the hardware itself.

0 Kudos
Message 7 of 10
(3,354 Views)

I'm not sure about the frequency, but my sbRIO board is exposed.

0 Kudos
Message 8 of 10
(3,353 Views)

Your PZT will produce a charge when a force is applied. That charge will convert another electic unit, depending on the impedance that charge sees. Q=C*U for example, with C being the capacity of the PZT and(!) it's cable and input capacity of the DAQ. (Simplified)  

While you can measure a voltage, being depended of all the capacities (or complex impedances) including cable triboelectric and microphonic effects, a quite common method is to use a charge amplifier and reduce the cable microphony and capacity effects.

 

Due to preload, bias currents etc. you see an offset.

One common way to remove the offset is a highpass filter,

or take the mean of a multiple of the periode and subtract it.

 

Your signal seems to contain a low freq sine (+thd) and high freq spikes.  What do you want to measure?

 

Greetings from Germany
Henrik

LV since v3.1

“ground” is a convenient fantasy

'˙˙˙˙uıɐƃɐ lɐıp puɐ °06 ǝuoɥd ɹnoʎ uɹnʇ ǝsɐǝld 'ʎɹɐuıƃɐɯı sı pǝlɐıp ǝʌɐɥ noʎ ɹǝqɯnu ǝɥʇ'


0 Kudos
Message 9 of 10
(3,330 Views)

Hi Henrik, I've tried to use the lowpass and highpass filter, but the results remain the same, and the input reading is around 0.3 if i compile to analog input read in my fpga; and is -10 if i compile only one in my fpga. The attachment is my fpga and VI.

Download All
0 Kudos
Message 10 of 10
(3,307 Views)