<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
</head>
<body bgcolor="#ffffff" text="#000000">
I got some questions this past weekend on boxcar filtering -- so I
want to clarify some things.<br>
<br>
There are TWO variables associated with the boxcar filter: size and
passes.<br>
<br>
For the purposes of this discussion lets imagine we have an array of
10 elements with a boxcar size of five doing two passes.<br>
<br>
<br>
There are multiple ways to implement the boxcar average -- but so we
will all get the same (or similar results) lets standardize on one
method that should give reasonable results without "end tail
effects".<br>
<br>
<br>
Here is my list of elements:<br>
<br>
<table border="1" cellpadding="2" cellspacing="2" height="58"
width="912">
<tbody>
<tr>
<td align="center" valign="top">1<br>
</td>
<td align="center" valign="top">2<br>
</td>
<td align="center" valign="top">3<br>
</td>
<td align="center" valign="top">4<br>
</td>
<td align="center" valign="top">5<br>
</td>
<td align="center" valign="top">6<br>
</td>
<td align="center" valign="top">7<br>
</td>
<td align="center" valign="top">8<br>
</td>
<td align="center" valign="top">9<br>
</td>
<td align="center" valign="top">10<br>
</td>
</tr>
<tr>
<td valign="top">273<br>
</td>
<td valign="top">237<br>
</td>
<td valign="top">302<br>
</td>
<td valign="top">786<br>
</td>
<td valign="top">1027<br>
</td>
<td valign="top">635<br>
</td>
<td valign="top">400<br>
</td>
<td valign="top">370<br>
</td>
<td valign="top">202<br>
</td>
<td valign="top">250<br>
</td>
</tr>
</tbody>
</table>
<br>
<br>
Now -- with a boxcar size of 5 I could start in element 3, average
elements 1-5, and replace element three by that value. the problem
is that if I apply such a filter several times the ends will tend to
"tail up". So, lets do the following.<br>
<br>
The first element to be averaged will be the first element in the
array, but the boxcar will only extend to the right (boxcar size)/2
-- so out to 3. So the first element would be replaced by the
average of elements 1, 2, and 3.<br>
<br>
After first operation the array looks like...<br>
<br>
<table align="center" bgcolor="#cccccc" border="5" cellpadding="5"
cellspacing="5" height="69" width="342">
<tbody>
<tr>
<tr>
<td align="center" valign="top">1<br>
</td>
<td align="center" valign="top">2<br>
</td>
<td align="center" valign="top">3<br>
</td>
<td align="center" valign="top">4<br>
</td>
<td align="center" valign="top">5<br>
</td>
<td align="center" valign="top">6<br>
</td>
<td align="center" valign="top">7<br>
</td>
<td align="center" valign="top">8<br>
</td>
<td align="center" valign="top">9<br>
</td>
<td align="center" valign="top">10<br>
</td>
</tr>
<tr>
<td valign="top">271<br>
</td>
<td valign="top">237<br>
</td>
<td valign="top">302<br>
</td>
<td valign="top">786<br>
</td>
<td valign="top">1027<br>
</td>
<td valign="top">635<br>
</td>
<td valign="top">400<br>
</td>
<td valign="top">370<br>
</td>
<td valign="top">202<br>
</td>
<td valign="top">250<br>
</td>
</tr>
</tr>
</tbody>
</table>
<br>
<br>
In the next operation the center of the box slides one to the left
so cell 2 is replace with the average of cells 1-4.<br>
<br>
<table align="center" bgcolor="#cccccc" border="5" cellpadding="5"
cellspacing="5" height="69" width="342">
<tbody>
<tr>
</tr>
<tr>
<td align="center" valign="top">1<br>
</td>
<td align="center" valign="top">2<br>
</td>
<td align="center" valign="top">3<br>
</td>
<td align="center" valign="top">4<br>
</td>
<td align="center" valign="top">5<br>
</td>
<td align="center" valign="top">6<br>
</td>
<td align="center" valign="top">7<br>
</td>
<td align="center" valign="top">8<br>
</td>
<td align="center" valign="top">9<br>
</td>
<td align="center" valign="top">10<br>
</td>
</tr>
<tr>
<td valign="top">271<br>
</td>
<td valign="top">399<br>
</td>
<td valign="top">302<br>
</td>
<td valign="top">786<br>
</td>
<td valign="top">1027<br>
</td>
<td valign="top">635<br>
</td>
<td valign="top">400<br>
</td>
<td valign="top">370<br>
</td>
<td valign="top">202<br>
</td>
<td valign="top">250<br>
</td>
</tr>
</tbody>
</table>
<br>
In the next step the full "five sized" box is being used so 3 is
replace by the average of 1-5<br>
<br>
<table align="center" bgcolor="#cccccc" border="5" cellpadding="5"
cellspacing="5" height="69" width="342">
<tbody>
<tr>
<tr>
<td align="center" valign="top">1<br>
</td>
<td align="center" valign="top">2<br>
</td>
<td align="center" valign="top">3<br>
</td>
<td align="center" valign="top">4<br>
</td>
<td align="center" valign="top">5<br>
</td>
<td align="center" valign="top">6<br>
</td>
<td align="center" valign="top">7<br>
</td>
<td align="center" valign="top">8<br>
</td>
<td align="center" valign="top">9<br>
</td>
<td align="center" valign="top">10<br>
</td>
</tr>
<tr>
<td valign="top">271<br>
</td>
<td valign="top">399<br>
</td>
<td valign="top">557<br>
</td>
<td valign="top">786<br>
</td>
<td valign="top">1027<br>
</td>
<td valign="top">635<br>
</td>
<td valign="top">400<br>
</td>
<td valign="top">370<br>
</td>
<td valign="top">202<br>
</td>
<td valign="top">250<br>
</td>
</tr>
</tr>
</tbody>
</table>
<br>
The boxsize of 5 would then be used used until one got to element
8. After that element 9 would be calculated as the average of 7-10
and element 10 would be calculated as the average of elements 8-10.<br>
<br>
If I did three passes then I would repeat this process three times.<br>
<br>
Hope that helps alleviate any confusion.<br>
<br>
<br>
<pre class="moz-signature" cols="72">--
Andrew J. Pounds, Ph.D. (<a class="moz-txt-link-abbreviated" href="mailto:pounds@theochem.mercer.edu">pounds@theochem.mercer.edu</a>)
Associate Professor of Chemistry and Computer Science
Mercer University, Macon, GA 31207 (478) 301-5627
</pre>
</body>
</html>