LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Time Dependant Smoothing or Filtering

I have a waveform which I am plotting on a log(x) scale and would like to accordingly filter this data such that it smooths the larger x values much more than the smaller ones.

 

I am strugling to find anything that will do this, are there any VI's that would do this for me?

 

Thanks 

Chaz

0 Kudos
Message 1 of 3
(2,421 Views)

Hi Chaz,

 

Are you able to send your code over so that we can take a look at what you have implemented so far?

 

It may be best to separate your waveform and perform filtering independently on each section.

Marshall B
Applications Engineer
National Instruments UK & Ireland
0 Kudos
Message 2 of 3
(2,391 Views)

I think you may have to "roll your own".  When you do a log(x) transform (for example, a Bode plot with log(frequency) on the X axis), the number of points-per-unit-X-axis increases as you go to the right.

 

Think about smoothing an "ordinary" (not-log) plot.  One way to do this is to divide the X axis into, say, 100 equal intervals (I'm assuming you have 1000 points) and replace all of the points with the average within each interval (like a histogram).  You can also take this 1% window and slide it along the X axis, averaging as you go, the so-called "moving boxcar average".  Note that if the X axis has width W, each bin would have width W/100.

 

You can do the same thing with your log plot.  The difference is that instead of dividing the X axis into 100 intervals, you divide the log-X axis into 100 intervals.  Now the width of the bins is not W/100, but the 100th root of W.  

 

This should get you started, I hope.

 

BS

Message 3 of 3
(2,368 Views)