<div dir="ltr"><div dir="ltr">You could use a simple IIR filter that weights the most recent input by say 1/100th:<br><br>filt_value = (filtered_value * 99 + raw_value) / 100;<br><br>If filt_value is floating point and the calculation is done in an approximately constant loop interval this works well.<br><br>This can also be done with integers noting the result of "(filtered_value * 99) + raw_value" should not exceed the size of the integer.<br></div><div dir="ltr"><br></div><div dir="ltr">The quantization is not so nice in the above method though because it gets multiplied by the * 99. A better way might be to keep track of a running sum with one variable, and use a second variable for the filtered result:<br></div><div dir="ltr"><br></div><div dir="ltr">filt_sum = filt_sum - filt_sum / 100 + raw_value;<br>filt_value = filt_sum / 100;</div><div dir="ltr"><br></div><div>The second line only needs to be evaluated when you actually need to use the result.</div><div><br></div><div>Cheers</div><div><br></div><div>Mikael<br></div><div dir="ltr"><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Oct 18, 2018 at 9:06 AM Marshland Engineering <<a href="mailto:marshland@marshland.co.nz">marshland@marshland.co.nz</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I need to do some software filtering. I'm reading a camshaft with a 0.001<br>
linear scale and there is quite a bit of noise in the data. Looking on the web<br>
has left me non the wiser. Rectangular or Triangle filters are an option but<br>
these will loose some data integrity. The profile is a very gentle curve with<br>
the data around the ctr line.  <br>
<br>
I hoping for something simple !!!!<br>
<br>
Thanks Wallace. <br>
<br>
<br>
_______________________________________________<br>
Chchrobotics mailing list <a href="mailto:Chchrobotics@lists.ourshack.com" target="_blank">Chchrobotics@lists.ourshack.com</a><br>
<a href="https://lists.ourshack.com/mailman/listinfo/chchrobotics" rel="noreferrer" target="_blank">https://lists.ourshack.com/mailman/listinfo/chchrobotics</a><br>
Mail Archives: <a href="http://lists.ourshack.com/pipermail/chchrobotics/" rel="noreferrer" target="_blank">http://lists.ourshack.com/pipermail/chchrobotics/</a><br>
Meetings usually 3rd Monday each month. See <a href="http://kiwibots.org" rel="noreferrer" target="_blank">http://kiwibots.org</a> for venue, directions and dates.<br>
When replying, please edit your Subject line to reflect new subjects.</blockquote></div>