I'm successfully using an ad-hoc nonlinear filter for a particular application. However, despite searching Wikipedia for filter types, it's not known to me what it is.
The purpose of the filter is to return close-to-idempotent values while quickly reacting to change. The values are a real-time continuous stream.
I'm sure that if there's such a filter type/class, the published solutions are better than what I came up with. What is that filter's type/description?
In case there's no precise description of the filter that'd let me search for others, what are proper designs for the same purpose?
Please note, the RC filter performs very poorly for the same purpose. The data is from head tracking, where most of the "noise" is actual minor head movement.
Hopefully this pseudocode-like explanation is enough:
Let $K$ be a scaling constant, assume a small fraction on $[0, 1]$
Let $Y$ be the previous value, initially zero
$f(x) = x^2$
Within a single iteration:
Let $x$ be the received value, assume it's on the $[-180, 180]$ interval
Let $t$ be a time delta from the last iteration in seconds. Assume a very small fraction of a second.
Let $x'$ be $x - Y$
Let $S$ be $signum(x')$
Now, $Y = Y + (t)(S)min(|x'|, f((K)|x'|))$
Treat $Y$ as the value after filtering.