A perhaps interesting (and sometimes even useful) property of the 1D Kalman filter is that it becomes an EMA when it's in the "steady state" (the gain to which it converges asymptotically, in practice often quite fast).
Specifically:
alpha = (Q + 2*R - sqrt(Q^2 + 4*Q*R))/(2*R)
This also concretizes that the Kalman filter is not adaptive in the sense of adapting to the data. The filtering behavior is fully specified by the parameterization.
The sometimes useful part is that with this formulation you can get the alpha parameter for an EMA in terms of the sensor and process noises.
myky22 30 minutes ago [-]
For one second I thought the post was about analogic music filters (hardware synthesis) ToT
deepsun 7 hours ago [-]
Too basic, I'm not sure anyone needs that to solve the task as basic would need to read an article, it's obvious.
> Tune by eyeballing lag vs. noise.
In any serious installations (more than a homelab) you want some numeric metrics, not eyeballing. E.g. management or next engineer may reasonably ask "why alpha is 0.8? what's the rationale, why not 0.85", you want some formula to show it's what we want.
OT but I've always appreciated your posts, Jason -- you should think about expanding them into a book, or at least an e-book. It would end up on my shelf next to Lyons.
That being said, it'd be good to update this post to clarify the difference between angular frequency and plain old cycles-per-second frequency, as one of the commenters calls out.
Vaslo 7 hours ago [-]
Too basic for who? You?
glouwbug 5 hours ago [-]
Wait till he learns about PID controllers
buildingrobots 2 hours ago [-]
You can choose their version of alpha by picking a cutoff frequency f and setting alpha = exp(-2*pi*f*dt) where dt is your sample rate. f will be the ≈-3dB point of your filter where frequencies above it are reduced by 0.707 or more.
adenjoe 4 hours ago [-]
Good
reindeer2 2 hours ago [-]
[dead]
adenjoe 4 hours ago [-]
[dead]
Rendered at 08:19:26 GMT+0000 (Coordinated Universal Time) with Vercel.
Specifically:
This also concretizes that the Kalman filter is not adaptive in the sense of adapting to the data. The filtering behavior is fully specified by the parameterization.The sometimes useful part is that with this formulation you can get the alpha parameter for an EMA in terms of the sensor and process noises.
> Tune by eyeballing lag vs. noise.
In any serious installations (more than a homelab) you want some numeric metrics, not eyeballing. E.g. management or next engineer may reasonably ask "why alpha is 0.8? what's the rationale, why not 0.85", you want some formula to show it's what we want.
That being said, it'd be good to update this post to clarify the difference between angular frequency and plain old cycles-per-second frequency, as one of the commenters calls out.