3.5.22 · D3 · Physics › Guidance, Navigation & Control (GNC) › Kalman gain — minimizes trace of covariance
Intuition Yeh page kis liye hai
Parent note ne formula banaya tha. Yeh page use har direction mein exercise karata hai — bada sensor noise, tiny sensor noise, zero prior uncertainty, ek perfect sensor, correlated vector states, ek real navigation word problem, aur ek exam twist. Agar koi scenario Kalman Filter — Update Step mein ho sakta hai, toh uske liye neeche ek cell hai aur ek worked example hai jo usi cell mein land karta hai.
Shuru karne se pehle, ek reminder har symbol ka taaki koi confused na ho:
Definition Saat quantities ek jagah
P − — prior covariance : hamare prediction mein kitni uncertainty hai (bada = kam sure). Scalar case mein ek single number; jab state ek vector ho toh ek matrix.
H — measurement map : "state" ko "sensor kya padhega" mein badalta hai. Agar sensor state seedha padhta hai, toh H = 1 .
R — sensor-noise covariance : measurement kitna blurry hai (bada = zyada blurry).
v — sensor noise : woh random error jo sensor har reading mein add karta hai, isliye z = H x + v . Iska mean zero hota hai (E [ v ] = 0 , koi systematic bias nahi) aur covariance E [ v v ⊤ ] = R ; yeh state error se uncorrelated hai. Bada R = v ka wider spread.
S = H P − H ⊤ + R — innovation covariance : surprise ka total spread, prior-uncertainty-mapped-into-sensor-space plus sensor noise.
K = P − H ⊤ S − 1 — Kalman gain , woh dial jo "prediction trust karo" se "measurement trust karo" tak jaata hai.
P + = ( I − K H ) P − — posterior covariance optimum par (fuse karne ke baad hum kitne sure hain). I identity hai ("multiply-by-1" matrix).
Intuition Dono update formulas, ek baar, taaki har example sirf inhe cite kare
Fused estimate: x ^ + = x ^ − + K ( z − H x ^ − ) . Matlab: prediction se shuru karo, phir gain times surprise se nudge karo. K exactly woh fraction hai jitna surprise hum maante hain.
Posterior covariance: P + = ( I − K H ) P − . Matlab: correction prior uncertainty ka K H fraction remove karta hai; jo fraction ( I − K H ) bacha, woh haari nayi, chhoti uncertainty hai. (Sirf optimal gain par valid hai — kisi bhi gain ke liye Joseph form use karo, jo Ex 10 mein introduce aur use kiya gaya hai.)
Neeche har cell ek tarah ki situation hai jo Kalman gain ko handle karni hoti hai. Har row mein kam se kam ek worked example hai.
Cell
Situation
Distinguishing feature
Example
A
Balanced scalar
P − aur R comparable
Ex 1
B
Sensor much better
R ≪ P −
Ex 2
C
Sensor much worse
R ≫ P −
Ex 3
D
Degenerate prior
P − = 0 (already certain)
Ex 4
E
Non-unit map
H = 1 (units/scaling)
Ex 5
F
Perfect sensor
R = 0 (boundary limit)
Ex 6
G
Vector state, diagonal
2 × 2 diagonal P − , ek sensor
Ex 7
H
Vector state, correlated
off-diagonal P − , ek sensor
Ex 8
I
Real navigation word problem
altitude fusion
Ex 9
J
Exam twist: gain vs. trace curve
U-shape numerically prove karo
Ex 10
Intuition Neeche wala dial figure kaise padhein
Figure s01 gain K ke liye 0 (prediction trust karo) se 1 (measurement trust karo) tak ek number line hai. Yeh har scalar cell A–D ke computed K par ek labelled arrow lagata hai. Amber/cyan dots ko slide hote dekho: cell A mid-line par baithta hai, cell B 1 ki taraf jump karta hai, cell C 0 ke paas chipak jaata hai, aur cell D exactly 0 par pin ho jaata hai. Yeh picture hi kahaani hai ki kaise ek hi formula chaar opposite situations ko answer karta hai.
Kalman gain ek slider ki tarah: har scenario cell apna computed K 0 → 1 line par drop karta hai.
Worked example Ex 1 — comparable uncertainties
Ek temperature ki prediction: x ^ − = 20 , P − = 3 ke saath. Sensor z = 26 padhta hai, noise R = 3 , aur H = 1 . K , fused estimate x ^ + , aur P + dhundho.
Forecast: dono sources equally trustworthy hain (P − = R ). Guess: answer exactly halfway landa chahiye — K = 0.5 , estimate = 23 .
Innovation covariance. S = H P − H ⊤ + R = 1 ⋅ 3 ⋅ 1 + 3 = 6 .
Yeh step kyun? S surprise ka total spread hai; har gain isi se divide hota hai.
Gain. K = P − H ⊤ S − 1 = 3/6 = 0.5 .
Yeh step kyun? K prior-confidence over total spread hai.
Innovation (surprise). z − H x ^ − = 26 − 20 = 6 .
Yeh step kyun? Sensor prediction se kitna disagree karta hai.
Fused estimate. x ^ + = 20 + 0.5 ⋅ 6 = 23 .
Yeh step kyun? Hum x ^ + = x ^ − + K ( surprise ) apply karte hain: 6 surprise ka 0.5 fraction lo aur prediction mein add karo — har source ko half trust karte hue.
Posterior covariance. P + = ( 1 − K ) P − = ( 1 − 0.5 ) ⋅ 3 = 1.5 .
Yeh step kyun? P + = ( I − K H ) P − kehta hai correction ne prior uncertainty se K H = 0.5 fraction strip kar diya; bacha hua aadha haari nayi spread hai.
Verify: P + = 1.5 dono P − = 3 aur R = 3 se neeche hai — fusion ne hume dono sources se zyada certain bana diya. Aur estimate exactly midway baithti hai, forecast se match karti hai. ✅
Worked example Ex 2 — measurement trust karo
P − = 10 (shaky prediction), R = 0.1 (crisp sensor), H = 1 , x ^ − = 5 , z = 8 .
Forecast: sensor bahut zyada sharp hai, isliye K nearly 1 hona chahiye aur estimate z = 8 ke paas honi chahiye.
S = 10 + 0.1 = 10.1 . Kyun: total spread shaky prior se dominate hota hai.
K = 10/10.1 ≈ 0.990099 . Kyun: prior sensor ko dwarf karta hai, isliye hum almost fully sensor par lean karte hain.
Innovation = 8 − 5 = 3 . Kyun: sensor prediction se kitna disagree karta hai.
x ^ + = 5 + 0.990099 ⋅ 3 ≈ 7.970297 .
Kyun: update x ^ − + K ( surprise ) surprise ka ~99% fold kar leta hai, isliye estimate almost z = 8 par land karti hai.
P + = ( 1 − 0.990099 ) ⋅ 10 ≈ 0.099010 .
Kyun: ( 1 − K H ) sirf ~1% prior spread chhod deta hai — sharp sensor ne almost saari prediction uncertainty remove kar di.
Verify: K ≈ 0.99 (near 1), estimate ≈ 7.97 (near z = 8 ), aur P + ≈ 0.099 — essentially R , kyunki sensor ab haari certainty dictate karta hai. ✅
Worked example Ex 3 — prediction trust karo
P − = 0.1 (confident prediction), R = 10 (noisy sensor), H = 1 , x ^ − = 5 , z = 8 .
Forecast: Ex 2 ka mirror image. K near 0 , estimate prediction 5 ke paas chipakti hai.
S = 0.1 + 10 = 10.1 .
K = 0.1/10.1 ≈ 0.009901 . Kyun: tiny prior, huge sensor noise ⇒ barely nudge karo.
Innovation = 3 . Kyun: sensor–prediction disagreement.
x ^ + = 5 + 0.009901 ⋅ 3 ≈ 5.029703 .
Kyun: update surprise ka 1% se bhi kam add karta hai, isliye estimate prediction se barely bahar jaati hai.
P + = ( 1 − 0.009901 ) ⋅ 0.1 ≈ 0.099010 .
Kyun: ( 1 − K H ) ~99% prior spread chhod deta hai — ek noisy sensor almost kuch nahi remove karta.
Verify: K ≈ 0.0099 (near 0), estimate ≈ 5.03 (near prediction), aur P + ≈ 0.099 — P − = 0.1 se barely improve hua, kyunki ek bura sensor thodi si nayi information deta hai. ✅
Worked example Ex 4 — already certain
P − = 0 : haari prediction mein zero uncertainty hai (ek boundary case — mathematically hum pehle se "jaante" hain state kya hai). R = 2 , H = 1 , z = 9 .
Forecast: agar hum already perfectly sure hain, toh koi sensor hume move nahi karna chahiye. Expect K = 0 , P + = 0 .
S = 1 ⋅ 0 ⋅ 1 + 2 = 2 . Kyun: S finite rehta hai kyunki sensor noise abhi bhi wahan hai.
K = 0 ⋅ 1/2 = 0 . Kyun: zero prior confidence ⇒ zero numerator.
x ^ + = x ^ − + 0 ⋅ ( z − x ^ − ) = x ^ − — unchanged.
Kyun: update surprise ko K = 0 se multiply karta hai, isliye kuch add nahi hota — ek certain state kabhi nudge nahi hoti.
P + = ( 1 − 0 ) ⋅ 0 = 0 .
Kyun: ( 1 − K H ) P − = 1 ⋅ 0 = 0 — exactly jaana hua state exactly jaana hua rehta hai.
Verify: K = 0 , P + = 0 . Ek perfectly known state kabhi ek sensor se improve ya corrupt nahi ho sakti — filter correctly measurement ko ignore karta hai. Yeh Ex 6 ke perfect-sensor case ka exact mirror hai. ✅
Worked example Ex 5 — sensor state ko scale karta hai
Haari state ek distance metres mein hai, lekin sensor ek scaled unit mein report karta hai taaki z = 2 x + v . Yahan H = 2 (the scaling) hai, aur v sensor noise hai — ek zero-mean random error jiska variance R hai jo har reading mein add hota hai. Lo P − = 5 , R = 4 , x ^ − = 3 , z = 8 .
Forecast: kyunki H = 2 magnify karta hai, sensor ka thoda sa bahut kaam aata hai. Expect K < 1 aur estimate z se implied value ki taraf upar jayegi.
S = H P − H ⊤ + R = 2 ⋅ 5 ⋅ 2 + 4 = 24 . Kyun: prior ko H se map karna use H 2 = 4 se scale karta hai; R add karna noise v ko account karta hai.
K = P − H ⊤ S − 1 = 5 ⋅ 2/24 = 10/24 ≈ 0.416667 . Kyun: H factor numerator mein bhi aata hai, sensor-space ko state-space mein wapas convert karta hai.
Predicted measurement H x ^ − = 2 ⋅ 3 = 6 ; innovation = 8 − 6 = 2 .
Kyun: hume z ko x ^ − se directly nahi, balki sensor kya padhega usse compare karna chahiye.
x ^ + = 3 + 0.416667 ⋅ 2 ≈ 3.833333 .
Kyun: update x ^ − + K ( surprise ) poori tarah state-space mein kaam karta hai — K mein already H − 1 -jaisi conversion hai, isliye hum state-space nudge ko state-space prediction mein add karte hain.
P + = ( 1 − K H ) P − = ( 1 − 0.416667 ⋅ 2 ) ⋅ 5 = ( 1 − 0.833333 ) ⋅ 5 ≈ 0.833333 .
Kyun: yahan removed fraction K H = 0.833 hai, K nahi; map H amplify karta hai ki gain ka har unit kitni uncertainty strip karta hai.
Verify: note karo K H = 0.8 3 < 1 , isliye ( 1 − K H ) positive rehta hai aur P + > 0 — koi illegal negative variance nahi. P + ≈ 0.833 < P − = 5 : certainty improve hui. ✅
z ko x ^ − se directly compare karna jab H = 1
Kyun sahi lagta hai: dono "woh value hain jo humein chahiye." Fix: sensor measurement space mein rehta hai; pehle estimate ko H se aage map karo — innovation z − H x ^ − hai, z − x ^ − nahi.
Worked example Ex 6 — sensor exact hai
Ex 4 ka opposite boundary limit: ab sensor flawless hai, R = 0 , jabki prediction uncertain hai. P − = 4 , H = 1 , x ^ − = 10 , z = 13 .
Forecast: ek flawless sensor par poori tarah believe karna chahiye. Expect K = 1 , estimate = z = 13 , aur P + = 0 (ab hum state exactly jaante hain).
S = 1 ⋅ 4 ⋅ 1 + 0 = 4 . Kyun: R = 0 ke saath sirf mapped prior ka spread bacha hai.
K = P − H ⊤ S − 1 = 4/4 = 1 . Kyun: ek noiseless sensor poora trust earn karta hai — dial apne maximum par pahunch jaata hai.
Innovation = z − H x ^ − = 13 − 10 = 3 .
x ^ + = 10 + 1 ⋅ 3 = 13 .
Kyun: update poora surprise add karta hai, isliye estimate exactly measurement par land karti hai — prediction fully overwrite ho jaati hai.
P + = ( 1 − K H ) P − = ( 1 − 1 ) ⋅ 4 = 0 .
Kyun: ( 1 − K H ) = 0 saari prior uncertainty remove kar deta hai — ek exact reading haari spread ko zero par collapse kar deti hai.
Verify: K = 1 , x ^ + = z = 13 , P + = 0 — exactly promised limit R → 0 , aur Ex 4 ke perfect-prior case ka perfect mirror image. ✅
Worked example Ex 7 — position–velocity, uncorrelated
State hai [ position velocity ] ke saath
P − = [ 4 0 0 1 ] , H = [ 1 0 ] , R = 2.
Sensor sirf position dekhta hai. Gain vector K aur P + dhundho.
Forecast: sensor position ko seedha touch karta hai, isliye position variance bahut shrink hona chahiye aur velocity variance bilkul nahi (yahan dono uncorrelated hain).
H P − H ⊤ = [ 1 0 ] [ 4 0 0 1 ] [ 1 0 ] = 4 .
Kyun: position variance pick out karo jo sensor actually dekhta hai.
S = 4 + 2 = 6 (ek scalar — ek sensor).
P − H ⊤ = [ 4 0 0 1 ] [ 1 0 ] = [ 4 0 ] .
K = P − H ⊤ S − 1 = [ 4 0 ] /6 = [ 2/3 0 ] .
Kyun: zero second entry kehta hai "yeh measurement velocity ko directly correct nahi kar sakti."
P + = ( I − K H ) P − . Yahan K H = [ 2/3 0 ] [ 1 0 ] = [ 2/3 0 0 0 ] , isliye I − K H = [ 1/3 0 0 1 ] .
Kyun: ( I − K H ) gain-weighted uncertainty remove karta hai; velocity row untouched rehti hai kyunki K ka velocity entry 0 hai.
P + = [ 1/3 0 0 1 ] [ 4 0 0 1 ] = [ 4/3 0 0 1 ] .
Kyun: posterior uncertainty; diagonal ( I − K H ) P − position shrink karta hai, velocity ko chhod deta hai.
Verify: position variance 4 → 4/3 ≈ 1.333 drop hua; velocity variance 1 par raha — exactly forecast, kyunki states uncorrelated thein. ✅
Worked example Ex 8 — off-diagonal terms ek sensor ko dono states fix karne dete hain
Same position sensor H = [ 1 0 ] , R = 2 , lekin ab position aur velocity correlated hain:
P − = [ 4 2 2 3 ] .
Off-diagonal 2 ka matlab hai position aur velocity errors saath milke move karte hain. K aur P + dhundho, aur dekho ki velocity variance improve hoti hai chahe sensor kabhi velocity touch na kare.
Forecast: kyunki states linked hain, ek position measurement velocity ko bhi sharpen karni chahiye — velocity variance 3 se neeche girni chahiye, Ex 7 ke unlike.
H P − H ⊤ = [ 1 0 ] P − [ 1 0 ] = 4 . Kyun: phir bhi top-left entry hai — position variance jo sensor padhta hai.
S = 4 + 2 = 6 . Kyun: mapped prior variance plus sensor noise, ek scalar kyunki ek sensor hai.
P − H ⊤ = [ 4 2 2 3 ] [ 1 0 ] = [ 4 2 ] .
Kyun: second entry ab 2 hai, 0 nahi — correlation velocity ko position reading par respond karta hai.
K = P − H ⊤ S − 1 = [ 4 2 ] /6 = [ 2/3 1/3 ] .
Kyun: ek nonzero velocity gain — filter actually velocity ko shared uncertainty ke through correct karega. Yahan S − 1 = 1/6 hai kyunki S ek 1 × 1 scalar hai.
K H = [ 2/3 1/3 ] [ 1 0 ] = [ 2/3 1/3 0 0 ] , isliye I − K H = [ 1/3 − 1/3 0 1 ] .
Kyun: ( I − K H ) woh operator hai jo gain-weighted uncertainty strip karta hai; − 1/3 entry wahan hai jahan position correction velocity mein bleed karti hai.
P + = ( I − K H ) P − = [ 1/3 − 1/3 0 1 ] [ 4 2 2 3 ] = [ 4/3 2/3 2/3 7/3 ] .
Kyun: posterior covariance; correlation ne position se velocity mein information channel ki, isliye dono diagonal entries shrink hui hain.
Verify: velocity variance 3 → 7/3 ≈ 2.333 drop hua — strictly below woh 3 joh woh rakhta agar uncorrelated hota (Ex 7). Off-diagonal term ne real kaam kiya: ek sensor ne dono states ko sharpen kiya. Position variance bhi 4 → 4/3 drop hua. ✅
Intuition Ex 7 vs Ex 8 ka lesson
Diagonal prior ke saath ek position sensor sirf position ki help karta hai. Correlation ke saath, shared uncertainty ek hidden wire ki tarah kaam karti hai: ek end measure karna doosre ko tighten karta hai. Isliye real GNC filters (Sensor Fusion in Navigation ) full covariance matrices rakhte hain, sirf diagonals nahi.
Worked example Ex 9 — barometer altitude ko GNC estimate mein fuse karna
Ek drone ka navigation filter altitude x ^ − = 100 m predict karta hai variance P − = 9 m 2 ke saath (toh ± 3 m one-sigma). Ek barometer z = 106 m padhta hai noise variance R = 16 m 2 ke saath (± 4 m). H = 1 . Hum kaun sa altitude report karein, aur hum kitne sure hain?
Forecast: prediction (± 3 m) sensor (± 4 m) se thodi tighter hai, isliye K < 0.5 ; answer 100 ke paas rehna chahiye, 106 se zyada nahi.
S = 9 + 16 = 25 m 2 . Kyun: dono uncertainties same space mein add karo.
K = 9/25 = 0.36 (dimensionless). Kyun: prediction total spread ka 9/25 contribute karti hai.
Innovation = 106 − 100 = 6 m . Kyun: barometer–prediction disagreement.
x ^ + = 100 + 0.36 ⋅ 6 = 102.16 m .
Kyun: update predicted altitude ko 6 m surprise ka 36% nudge karta hai — barometer ki taraf partial move.
P + = ( 1 − 0.36 ) ⋅ 9 = 5.76 m 2 , yaani ± 2.4 m.
Kyun: ( 1 − K H ) prior variance ka 64% rakhta hai; ek decent sensor fuse karne se baaki strip ho gaya.
Verify: units: K dimensionless, estimate metres mein, P + m 2 mein. Reported 102.16 m, 100 ke zyada paas hai 106 ke mukable (forecast ✓), aur ± 2.4 m dono ± 3 aur ± 4 ko beat karta hai — fusion ne estimate tighten ki. ✅
Intuition Neeche wala U-valley figure kaise padhein
Figure s02 posterior trace tr ( P + ) ko gain K ke against ek curve ki tarah plot karta hai, Joseph form use karke taaki yeh har K ke liye valid ho — sirf optimum ke liye nahi. Curve ek parabola (ek valley) hai. Amber dot uski lowest point mark karta hai; woh K hi Kalman gain hai. K = 0.6 aur K = 1.0 par sample points dono walls par upar baithte hain, proving ki middle best hai. Yeh picture "gain trace minimize karta hai" ko kuch aise banata hai jo tum literally neeche girate hue dekh sako.
Definition Joseph form (general posterior covariance)
Formula P + = ( I − K H ) P − sirf optimal gain par valid hai. Arbitrary gain K ke liye sahi posterior covariance Joseph form hai
P + = ( I − K H ) P − ( I − K H ) ⊤ + K R K ⊤ .
Uska pehla term hai jo prediction mein survive karta hai; doosra, K R K ⊤ , woh sensor noise hai jo gain andar aane deta hai. Scalar case mein H = 1 ke saath yeh P + = ( 1 − K ) 2 P − + K 2 R padhta hai — K mein ek quadratic (parabola), isliye trace mein exactly ek single valley hota hai.
Worked example Ex 10 — kya Kalman gain sach mein minimum hai?
P − = 4 , H = 1 , R = 1 (parent se scalar case, optimal K ⋆ = 0.8 ) ke saath, Joseph form use karke K = 0.6 , K = 0.8 , aur K = 1.0 par tr ( P + ) evaluate karo. Dikhao ki beech wala sabse chhota hai.
Forecast: trace K mein ek parabola hai; bottom K = 0.8 par hai, isliye beech wali value sabse chhoti honi chahiye.
Joseph form (kisi bhi K ke liye valid): P + = ( 1 − K ) 2 P − + K 2 R = 4 ( 1 − K ) 2 + K 2 .
Yeh step kyun? optimum ke neeche hum P + = ( 1 − K ) P − use nahi kar sakte; woh shortcut sirf K ⋆ par valid hai. Joseph form har jagah safe hai.
K = 0.6 : 4 ( 0.4 ) 2 + ( 0.6 ) 2 = 4 ⋅ 0.16 + 0.36 = 0.64 + 0.36 = 1.00 .
Kyun: valley ki left wall par evaluate karo.
K = 0.8 : 4 ( 0.2 ) 2 + ( 0.8 ) 2 = 4 ⋅ 0.04 + 0.64 = 0.16 + 0.64 = 0.80 .
Kyun: predicted optimum K ⋆ = 0.8 par evaluate karo.
K = 1.0 : 4 ( 0 ) 2 + ( 1 ) 2 = 0 + 1 = 1.00 .
Kyun: right wall par evaluate karo (sensor par full trust).
Verify: values 1.00 , 0.80 , 1.00 — ek clean valley K = 0.8 par bottom karti hai, aur 0.80 parent ke optimal P + se match karta hai. K ⋆ par Joseph result simplified ( 1 − K ) P − = 0.2 ⋅ 4 = 0.8 ke barabar hai. ✅
P + ka trace K mein U-shaped valley hai; uska floor optimal Kalman gain hai.
Dash teen cells ko ek sentence mein line up karo: balanced → sensor-wins → prediction-wins → already-sure → rescale → perfect-sensor → vectorize → correlate → fly it → check the valley. Har baar same formula K = P − H ⊤ S − 1 .
Recall Quick self-test
Ex 1 mein, K exactly 0.5 kyun aaya? ::: Kyunki P − = R , isliye prior aur sensor spreads equal hain; dial midpoint par baitha hai.
Ex 4 mein, sensor ko ignore kyun kiya gaya? ::: P − = 0 numerator P − H ⊤ = 0 banata hai, isliye K = 0 aur measurement already-certain estimate ko move nahi kar sakti.
Ex 5 mein, innovation kya hai, aur v kya hai? ::: Innovation = z − H x ^ − = 8 − 2 ⋅ 3 = 2 , mapped prediction use karke; v zero-mean sensor noise hai jiska variance R hai jo har reading mein add hota hai.
Ex 6 mein, P + = 0 kyun hai? ::: Ek perfect sensor (R = 0 ) K = 1 deta hai isliye ( 1 − K H ) = 0 saari prior uncertainty remove kar deta hai — ab hum state exactly jaante hain.
Ex 8 mein, velocity variance kyun improve hoti hai chahe sensor kabhi velocity na dekhe? ::: Off-diagonal (correlation) term K ka velocity entry nonzero banata hai, isliye ek position reading shared uncertainty ke through velocity correct karta hai.
Ex 10 mein, K = 0.6 par P + = ( 1 − K ) P − kyun use nahi kar sakte? ::: Woh simplification sirf optimal gain par valid hai; arbitrary K ke liye Joseph form ( 1 − K ) 2 P − + K 2 R use karo.
Intuition Flowchart kya kehta hai
Neeche wali chain is page ki reading order hai: har box ek scenario cell hai, aur arrows ka matlab hai "next harder case." Yeh deliberate escalation dikhata hai — ek balanced scalar se shuru karo, dial ko har extreme tak push karo, dono degenerate boundaries hit karo, phir vectors mein climb karo (pehle uncorrelated, phir correlated), ek real flight mein apply karo, aur finally optimum prove karo. Arrows ko left se right follow karna is page ke har example se walk karta hai jis order mein woh understanding build karta hai.