LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Noise Filtering

I have a large number of data files containing values for acoustic and vibration data from machinery. I am trying to look for distinguishing features in particular groups of files (covering certain dates) but there is a lot of random noise contained within the signals so this is proving difficult. I am plotting time domain and f domain of the individual files and the f domain does show up some peaks. However if I try to average the FFT (which I believe is a valid signal processing technique for a set of similar signals), the peaks just get lost in the noise. Therefore, I'm looking for a way to remove the noise across all the frequencies I'm measuring (0-25kHz). I'm a beginner at this, so if it sounds like I'm on completely the wrong track, feel free to
set me straight!
0 Kudos
Message 1 of 3
(2,908 Views)
Your signal is basically composed of two types of signals that are:
1 - The deterministic ones, like tones or DC
2 - The non-deterministic ones, like true noise

When you take a single snap-shot and perform an FFT, it can sometimes be difficult to determine whether a "peak" is caused by a deterministic tone or happens to be a noise component, especially if your expected tones are of the same order of level as your expected noise components. A single FFT measurement of a pure white noise signal typically results in a variation in level (as function of frequency) of more than 10 dB, so you may see peaks that may be confusing.

That is where averaging becomes handy. So if you are averaging correctly (RMS averaging), and your "peak" disappears, it most likely
means that ... it wasn't a tone.

If you want to detect tones that are "almost" embedded in the noise, you have different options, including:

1 - Use RMS averaging and see if that uncovers your tones

2 - If not, try to perform your FFT on a longer time record. You will achieve 3 dB improvement in selectivity every time you double your record length.

3 - (This may not be applicable in your case). If you have a way of triggering on a "copy" of the signal you are looking for (like if you want to detect 50-60 Hz power hum, you could trig on the Main power), you can then use Vector averaging. This will more or less average your tone signal correctly while removing un-correlated noise the more you average.
Message 2 of 3
(2,908 Views)
Do you have the signal processing toolset?? There is a denoise and detrend vi that does some really neat processing on the data. Do you have labview 7?? There is a math function express vi in it that does a differential processing on the signal. This turns slope changes into large spikes. Perhaps running the differential process on the result of the denoise vi would work. I have a version of the differential processing that I converted into a 6.1 version. I could send this file when I get to work in the morning.
Message 3 of 3
(2,908 Views)