LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Finding sources of noise in 1D data

I have 1D data that is being captured at 1S/s the signal is very noisy but you can see a pattern in the data.  Is it possible to pull out the frequencies and magnitudes of the data?  I have tried using the FFT vi's but I'm not familiar with them at all.  See attached v2019

 

I want to be able to use the frequencies from the signal to track down what could be causing the noise in the system.  Anyway, any help would be greatly appreciated.

Download All
0 Kudos
Message 1 of 11
(1,541 Views)

Hi LV7,

 


@coolhandLV7 wrote:

I have 1D data that is being captured at 1S/s the signal is very noisy but you can see a pattern in the data.  Is it possible to pull out the frequencies and magnitudes of the data?  I have tried using the FFT vi's but I'm not familiar with them at all.


There are example VIs in the example finder…

 

Btw. when you sample at 1S/s then you can get frequencies of max. 0.5Hz, pretty unusual to detect noise.

You should thnik about using a higher sample rate (like 1000Hz) and then average each block of 1000 samples (worth of 1s) down to a single sample to reduce noise…

Best regards,
GerdW


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

1S/s is very slow and unless you do appropripate analog filtering, any periodic high frequency noise pattern (e.g. 50 or 60Hz) will show up as alias frequency. So what is the source of the signal and how is it filtered?

0 Kudos
Message 3 of 11
(1,521 Views)

The source of the signal is a velocimeter, non-contact velocity measurement, on a very slow moving target.  There is no filtering its raw data.  I realize the sampling rate is low however a period can be seen in the data.  I'm wondering if there are other frequencies that are causing "noise" in the measurement.  Anyway I can increase the sampling rate and collect more data, I'm more interested in learning how to use the FFT functions in Labview though.  

0 Kudos
Message 4 of 11
(1,486 Views)

If there is no filtering, any periodic noise will show up as alias frequency. Be aware of that! How accurate is your sampling rate (software or hardware timed?)

 

Graph 2:

  • Express VI expects waveform, defining dx at least, but since it is 1 in your case, you are probably OK.
  • ...

 

Graph 1:

  • You are doing the FFT already, but your DC component dominates the graph 2.
  • If you would subtract the mean of the data before FFT, you would not get that large peak at zero frequency (seems the express VI takes care of this behind the scenes). Or you could just ignore the zero frequency component and scale Y to the rest of the transform.
  • You are graphing the RE part, meaning your amplitudes are distorted and could even be zero if completely out of phase. Take the absolute value before graphing or graph RE and IM. Your FFT has twice the size needed, with the nyquist frequency in the middle and negative frequencies on the right. You can trim to half.
  • You need to relabel the x axis and set df according to dt in the data.
  • ...

 

 

Also: "delete from array" is not the correct function to get a column from a 2D array. Use "Index array" instead.

0 Kudos
Message 5 of 11
(1,474 Views)

Thanks Altenbach, I've attached the updated code.  Seems like i'm getting some useful info from these graphs now.  I don't understand the X and Y axis though what are the units?  I reviewed the FFT and Power Spectrum Units.vi in the examples but i'm unclear on what is actually being displayed on the graphs.  

 

Waveform Graph 2 has me most confused, the Max amplitude and frequency occurs at 0.0159058 amplitude @ 0.00835452Hz, I'm confused because my data rate is at 1Hz seems as though i wouldn't have that kind of resolution with such a low sample rate.

 

edit:  Software timed sample rate from the device.

0 Kudos
Message 6 of 11
(1,438 Views)

There are plenty of details already described, e.g. here. No need to repeat it.

0 Kudos
Message 7 of 11
(1,417 Views)

@coolhandLV7 wrote:

 

Waveform Graph 2 has me most confused, the Max amplitude and frequency occurs at 0.0159058 amplitude @ 0.00835452Hz, I'm confused because my data rate is at 1Hz seems as though i wouldn't have that kind of resolution with such a low sample rate.


The resolution of a FFT depends on how long, or the period, of acquisition. In your data file you take 2752 seconds of data, which corresponds to 1/2752 = 0.00036 Hz resolution. The maximum frequency you can detect is 0.5 Hz, or 1/2 the sampling rate.

 


@coolhandLV7 wrote:

 

edit:  Software timed sample rate from the device.


If you samples are evenly spaced, you should either interpolate data for evenly spaced samples or use a FFT that can handle non evenly spaced samples.

 

mcduff

0 Kudos
Message 8 of 11
(1,407 Views)

Software timing at 1Hz (programmed correctly) probably has less than 1% jitter so you can assume equal spacing for the purpose of the FFT. Can you measure the actual timing to verify?

0 Kudos
Message 9 of 11
(1,403 Views)

I'm not completely sure of the data spacing, i'm left to assume it's evenly spaced, since i'm using the canned DAQ that is provided in the system software.  I do not have a high speed external DAQ connected to get actual sample spacing.

 

I'm going to turn up the sampling frequency on the gauge.  I was hoping to see anomalies in this data related to the slow moving system, for example the system has an actuator that is changing position at a measured period and amplitude.  It is very slow, ~240s per cycle, i'm trying to find how that motion effects what the gauge is measuring.  I'm not sure what the FFT is doing as i dont see much of a peak at (0.004Hz) in the data.  Then again i'm not sure the FFT is reporting amplitude (Y) and Frequency (X) on the chart.

0 Kudos
Message 10 of 11
(1,390 Views)