Felix Fietkau <[email protected]> writes:

> Rate success probability usually fluctuates a lot under normal conditions.
> With a simple EWMA, noise and fluctuation can be reduced by increasing the
> window length, but that comes at the cost of introducing lag on sudden
> changes.
>
> This change replaces the EWMA implementation with a moving average that's
> designed to significantly reduce lag while keeping a bigger window size
> by being better at filtering out noise.
>
> It is only slightly more expensive than the simple EWMA and still avoids
> divisions in its calculation.
>
> The algorithm is adapted from an implementation intended for a completely
> different field (stock market trading), where the tradeoff of lag vs
> noise filtering is equally important. It is based on the "smoothing filter"
> from http://www.stockspotter.com/files/PredictiveIndicators.pdf.
>
> I have adapted it to fixed-point math with some constants so that it uses
> only addition, bit shifts and multiplication
>
> To better make use of the filtering and bigger window size, the update
> interval time is cut in half.
>
> For testing, the algorithm can be reverted to the older one via
> debugfs

This looks interesting! Do you have any performance numbers from your
own testing to share? :)

-Toke

Reply via email to