Andrew Que Sites list Photos
Projects Contact
   A quick little project.  Xiphos has an old drill guide, but it was all rusty.  I figured a little sand paper would clean it up, but I'm far too lazy to actually spend the time sanding it by hand.  I found the guides fit into the chuck of my drill.  Using a couple of quick-release clamps I held my drill down and powered on.  Then I just wrapped sandpaper around the rusty guide and in a few seconds it was shinny again.  The picture shows the setup and one clean guide.  A rusty guide is still in the fixture behind it.

October 01, 2012

Happy October!

   Fall colors have a very early start this year.  It is the first day of October and a good number of trees have already turned.  The night are cool and it is now one of the best times of year.  After our summer, this fall is most welcome.

A very simple and very easy to implement software filter is a first-order low-pass filter. This is similar to an electrical RC filter. The algorithm is very easy:

On = C In + (1 – C) On-1

Where I in an array if input data, O is the output, and C is the filter coefficient with a value between 0 and 1.

It is simple to see what this algorithm does. The new output is based on the latest input, and the previous output value. The amount of change the new value has is determined by the filter coefficient. The larger the filter coefficient (i.e. the closer to a value of 1) the more effect the newest input has and the higher the frequencies allowed to pass. The lower the coefficient, the larger the previous output value and the more high frequencies are attenuated.

Here is a little demo do show how the filter works:


The demo consists of two sine waves and some Gaussian noise. The red line represents the true sine wave. The blue represents the sine wave with the Gaussian noise added in. The green line is the filtered signal.

Try adjusting the amount of noise and the filter coefficient. This will demonstrate how the filter copes with various amounts of noise. The closer the green line is to the red line, the better job the filter has done.

There are a couple of items that are fairly apparent from this demo. The lower the filter coefficient the less noise gets through, but the more the filtered signal is attenuated and phase-shifted. That is, the peak values of the green line are not as high as the red line (attenuation), and the green line mimics the shape of the red line to the more and more to the right (phase-shift).

The attenuation and phase-shift will be based on the filter coefficient as well as the frequency of the incoming signal. The lower the frequency, the less attenuation and phase-shift. This is easy to see by setting the amplitude of the second sine wave to 0, and adjusting the frequency of the first sine wave with a constant filter coefficient. The attenuation is precisely what a low-pass filter is designed to do—allow only the lower frequencies to pass while blocking, or at least limited the higher frequencies.

This kind of filter has limited uses in software. It is a fairly weak filter and implementing a rolling-average often achieves better results. I had written back in 2006 about how I replaced this filter with a custom low-pass filter using an FFT. I haven't use this filter in any applications since, but it was interesting looking back on it.