WHY this matters for a KF: the Kalman Filter estimates x^ from measurements y. If the system is unobservable, some directions in state-space have no measurement pipeline — the KF's error covariance P in those directions never shrinks (it stays large or grows). You get a "confident-looking" filter that is silently blind.
We want to know: can y(t) pin down x(0)? Set u=0 (inputs are known, so subtract their effect; only the unforced response tests observability).
Step 1 — write the output. Solution of x˙=Ax is x(t)=eAtx(0), so
y(t)=CeAtx(0).Why this step?eAt propagates the initial state; C projects it onto the sensors.
Step 2 — squeeze out information via derivatives at t=0. Differentiate y repeatedly and evaluate at t=0:
y(0)=Cx(0),y˙(0)=CAx(0),y¨(0)=CA2x(0),…Why this step? Each derivative of the known signal y gives us one more linear equation about the unknownx(0).
Step 3 — stop at n−1 (Cayley–Hamilton). By the Cayley–Hamilton theorem, An is a linear combination of I,A,…,An−1. So CAn gives no new information — higher derivatives are redundant.
Why this step? It guarantees a finite test: only n blocks are needed.
Step 4 — stack the equations. The system of n blocks is
OCCACA2⋮CAn−1x(0)=y(0)y˙(0)⋮y(n−1)(0).
The unobservable subspace is ker(O): any x(0) in it produces y(t)≡0 and is invisible.
When can a Kalman Filter estimate a given state direction?
Only when that direction is observable, i.e. it lies outside ker(O) / contributes to the output.
Write the observability matrix for an n-state system with matrices A,C.
O=[C;CA;CA2;…;CAn−1].
State the observability rank test.
System observable ⟺rank(O)=n (full column rank).
Why do we stop at An−1 in O?
Cayley–Hamilton: An is a linear combo of lower powers, so higher derivatives add no new information.
What physically is the unobservable subspace?
ker(O) — initial states producing y(t)≡0; invisible to any estimator.
Observability vs controllability — the duality statement.
(A,C) observable ⟺(A⊤,C⊤) controllable.
What happens to KF covariance in an unobservable, unstable direction?
It never shrinks (measurement update is blind) and grows via process noise Q — estimate diverges.
Weaker condition than observability that still gives a stable KF?
Detectability — all unobservable modes are asymptotically stable.
Is position–velocity with only a position sensor observable?
Yes, because velocity drives position (A12=0), so it leaks into the output.
Tool to measure degree of observability, not just yes/no?
The observability Gramian Wo=∫0TeA⊤tC⊤CeAtdt; small eigenvalues = weakly observable.
Recall Feynman: explain to a 12-year-old
Imagine a locked room with a few gears turning inside, and you can only peek through one small window. Some gears you can see directly. Others you can't see — but if a hidden gear pushes on a visible one, its movement shows up in the gear you can see, so you can figure it out anyway! "Observable" means: through your little window, every hidden gear eventually gives itself away. If a gear spins off in its own sealed box connected to nothing you can see, it's a mystery forever — and no amount of clever guessing (that's the Kalman Filter) can reveal it. The trick O is just: watch not only where the visible gear is, but how fast it moves, and how its speed changes — each of those is a new clue.
Dekho, Kalman Filter ek smart estimator hai, lekin woh bhi tabhi kaam karega jab measurement mein us state ka "information" hoga. Yahi baat observability batati hai: kya tumhare sensor output y ko dekh kar poora andar ka state x nikaala ja sakta hai ya nahi? Agar do bilkul alag internal states exactly same output stream dete hain, toh koi bhi filter unhe distinguish nahi kar sakta — woh direction "unobservable" hai.
Test simple hai: observability matrix banao — C, phir CA, phir CA2... CAn−1 tak stack kar do. Kyun sirf n−1 tak? Kyunki Cayley–Hamilton theorem kehta hai ki An purani powers ka combination hai, toh aage kuch naya nahi milega. Agar is matrix ka rank = n (state ka size) hai, toh system observable hai — matlab KF sab kuch estimate kar sakta hai. Intuition: tum output ki value, uski speed (derivative), uski acceleration... har derivative ek naya clue deti hai unknown x(0) ke baare mein.
GNC mein iska classic example: angle measure karke gyro bias estimate karna. Angle slowly drift karta hai bias ki wajah se, aur us drift ko dekh kar KF bias nikaal leta hai — isiliye star-tracker se gyro calibrate hota hai. Yeh observable hai.
Ek important galti se bacho: zyada sensors lagane se observability guarantee nahi hoti! Agar naya sensor wahi cheez measure kar raha hai jo pehle se visible thi, toh rank nahi badhega. Aur agar direction unobservable ho aur unstable bhi ho, toh KF ka covariance P us direction mein kabhi kam nahi hoga — estimate fatt jayega. Isliye rank test hamesha check karo, aur weakly-observable directions ke liye Gramian ki eigenvalues dekho.