Cutting off filtering above a certain speed is the neat part. Each time the period gets cut in half, you cut the severity of the running average in half. Higher speed signals are cleaner, so you aren't really compromising anything. So, waveforms with half-periods greater than 16384/10000 seconds get a running average of
CurrentAverage = (1023*currentAverage + newNoisyCurrent)/1024.
Waveforms with half-periods greater than 8192/10000 seconds get a running average of
CurrentAverage = (511*currentAverage + newSlightlyLessNoisyCurrent)/512.
...
cut in half
cut in half
...
Waveforms with half-periods greater than 16/10000 seconds (get a running average of
CurrentAverage = (1*currentAverage + newcurrent)/2.
Anything with a half-period less than 16/10000 sec gets no filtering. But that works out to friggen 18750 RPM (electrical RPM)! The required shifting and scaling of the filtered signal in order to obtain the secret original is the exact same for all. Cut period in half, and cut filtering in half cancels itself out. The only tradeoff is less filtering on signals that are cleaner anyway!
Last edited by MPaulHolmes; 09-22-2015 at 09:46 AM..
|