4 पॉइंट द्वारा GN⁺ 2026-04-10 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Kalman Filter शोर-भरे वातावरण में सिस्टम की स्थिति का अनुमान लगाने और भविष्यवाणी करने वाला एक optimal state estimation algorithm है
  • विमान-ट्रैकिंग radar के उदाहरण से बताया गया है कि दूरी और वेग के measurements का उपयोग करके prediction और update चरणों को बार-बार दोहराते हुए सटीकता कैसे बढ़ती है
  • हर चरण में state vector, covariance matrix, Kalman Gain की गणना करके measurement और prediction values को weighted रूप से जोड़ा जाता है
  • measurement uncertainty और model uncertainty, दोनों को साथ में ध्यान में रखकर, समय के साथ estimation error (uncertainty) घटता है यह संख्यात्मक रूप में दिखाया गया है
  • सहज संख्यात्मक उदाहरणों और step-by-step गणना के माध्यम से फ़िल्टर को सीधे design और implement कर सकने लायक समझ दी जाती है

Kalman Filter परिचय

  • Kalman Filter** measurement noise या बाहरी कारकों जैसी अनिश्चितताओं वाले वातावरण में सिस्टम की स्थिति का अनुमान और भविष्यवाणी करने वाला** एक state estimation algorithm है

    • object tracking, navigation, robotics, control जैसे कई क्षेत्रों में एक मुख्य tool के रूप में इस्तेमाल होता है
    • उदाहरण के लिए, mouse trajectory के noise को घटाकर smooth movement पाना, financial data में trend detection, weather forecasting आदि में इसका उपयोग होता है
    • यह इंगित किया गया है कि बहुत-सी educational materials गणितीय derivation पर अधिक केंद्रित होती हैं और व्यावहारिक उदाहरण कम देती हैं; यह सामग्री संख्यात्मक उदाहरण-केंद्रित सहज व्याख्या प्रदान करती है
    • गलत design होने पर filter tracking में असफल हो सकता है, ऐसे मामलों को भी शामिल किया गया है और उन्हें सुधारने के तरीके बताए गए हैं
    • लक्ष्य यह है कि पाठक स्वयं Kalman Filter को design और implement कर सकें, ऐसी समझ विकसित करें

सीखने का मार्ग

  • single-page overview: मुख्य concepts और प्रमुख equations का संक्षिप्त परिचय, जिसके लिए statistics और linear algebra की बुनियादी जानकारी ही पर्याप्त है
  • free web tutorial: step-by-step संख्यात्मक उदाहरणों वाला online tutorial, जिसके लिए पूर्व ज्ञान आवश्यक नहीं है
  • Kalman Filter from the Ground Up (पुस्तक): 14 पूर्ण संख्यात्मक उदाहरण, non-linear filters (Extended/Unscented) और sensor fusion, साथ में Python·MATLAB code

prediction की आवश्यकता

  • विमान-ट्रैकिंग radar उदाहरण के जरिए state estimation और prediction की आवश्यकता समझाई गई है
    • सिस्टम की state विमान की position (distance (r)) है, और radar pulse reflection time को मापकर दूरी की गणना करता है
    • velocity (v) को Doppler effect से मापा जा सकता है
  • निश्चित समय अंतराल (\Delta t) के बाद position prediction dynamic model के जरिए किया जाता है
    • उदाहरण: (r_{t_1} = r_{t_0} + v \cdot \Delta t)
    • (\Delta t = 5s), (r_{t_0}=10,000m), (v=200m/s) → (r_{t_1}=11,000m)
  • वास्तविक वातावरण में measurement noise और model uncertainty (Process Noise) मौजूद होते हैं
    • कई radar एक साथ मापें तब भी परिणाम थोड़ा-थोड़ा अलग हो सकता है
    • हवा जैसे बाहरी कारकों के कारण velocity constant होने की धारणा टूट सकती है
  • Kalman Filter वर्तमान state estimation और future state prediction दोनों एक साथ करता है, और हर estimate की uncertainty (variance) भी देता है
    • यह state estimation uncertainty को न्यूनतम करने वाला optimal algorithm है

Kalman Filter उदाहरण

  • 1-dimensional radar विमान की दूरी (r) और velocity (v) को मापता है

    • state vector (\boldsymbol{x} = [r, v]^T)
    • vectors और matrices का उपयोग करके सिस्टम को व्यक्त किया जाता है
  • Iteration 0 — initialization और prediction

  • initialization

    • पहली measurement value से filter को initialize किया जाता है (\boldsymbol{z}_0 = [10{,}000, 200]^T)
    • measurement uncertainty (standard deviation): दूरी 4m, velocity 0.5m/s (\boldsymbol{R}_0 = \begin{bmatrix}16 & 0 \ 0 & 0.25\end{bmatrix})
    • initial state estimate (\hat{\boldsymbol{x}}_{0,0} = \boldsymbol{z}_0)
    • initial covariance (\boldsymbol{P}_{0,0} = \boldsymbol{R}_0)
  • prediction चरण

    • time interval (\Delta t = 5s)
    • state transition matrix (\boldsymbol{F} = \begin{bmatrix}1 & 5 \ 0 & 1\end{bmatrix})
    • predicted state (\hat{\boldsymbol{x}}{1,0} = \boldsymbol{F}\hat{\boldsymbol{x}}{0,0} = [11{,}000, 200]^T)
    • covariance prediction (process noise को छोड़कर): (\boldsymbol{P}{1,0} = \boldsymbol{F}\boldsymbol{P}{0,0}\boldsymbol{F}^T = \begin{bmatrix}22.25 & 1.25 \ 1.25 & 0.25\end{bmatrix})
    • process noise जोड़ा गया ((\sigma_a = 0.2m/s^2)): (\boldsymbol{Q} = \begin{bmatrix}6.25 & 2.5 \ 2.5 & 1\end{bmatrix})
    • final predicted covariance: (\boldsymbol{P}_{1,0} = \begin{bmatrix}28.5 & 3.75 \ 3.75 & 1.25\end{bmatrix})
  • Iteration 0 सारांश

    • पहली measurement से state और covariance initialize किए जाते हैं
    • state transition model का उपयोग करके अगली state और uncertainty की prediction की जाती है
    • prediction equations
      • state prediction: (\hat{\boldsymbol{x}}{n+1,n} = \boldsymbol{F}\hat{\boldsymbol{x}}{n,n} + \boldsymbol{G}\boldsymbol{u}_n)
      • covariance prediction: (\boldsymbol{P}{n+1,n} = \boldsymbol{F}\boldsymbol{P}{n,n}\boldsymbol{F}^T + \boldsymbol{Q})
  • Iteration 1 — update और prediction

  • filter update

    • दूसरी measurement: (\boldsymbol{z}_1 = [11{,}020, 202]^T)
    • measurement uncertainty में वृद्धि (standard deviation: दूरी 6m, velocity 1.5m/s) (\boldsymbol{R}_1 = \begin{bmatrix}36 & 0 \ 0 & 2.25\end{bmatrix})
    • predicted covariance (\boldsymbol{P}_{1,0}) से तुलना करने पर prediction uncertainty कम है
    • Kalman Filter measurement और prediction को weighted average के रूप में जोड़ता है
      • weight (K_1): Kalman Gain
      • state update equation: (\hat{\boldsymbol{x}}{1,1} = \hat{\boldsymbol{x}}{1,0} + \boldsymbol{K}_1(\boldsymbol{z}1 - \boldsymbol{H}\hat{\boldsymbol{x}}{1,0}))
      • observation matrix (\boldsymbol{H} = \boldsymbol{I})
    • Kalman Gain की गणना: (\boldsymbol{K}1 = \boldsymbol{P}{1,0}\boldsymbol{H}^T(\boldsymbol{H}\boldsymbol{P}_{1,0}\boldsymbol{H}^T + \boldsymbol{R}_1)^{-1}) परिणाम: (\boldsymbol{K}_1 = \begin{bmatrix}0.4048 & 0.6377 \ 0.0399 & 0.3144\end{bmatrix})
    • innovation: (\boldsymbol{z}1 - \hat{\boldsymbol{x}}{1,0} = [20, 2]^T)
    • correction value: (\boldsymbol{K}_1[20, 2]^T = [9.37, 1.43]^T)
    • updated state: (\hat{\boldsymbol{x}}_{1,1} = [11{,}009.37, 201.43]^T)
  • covariance update

    • simplified form का उपयोग: (\boldsymbol{P}_{1,1} = (\boldsymbol{I} - \boldsymbol{K}1)\boldsymbol{P}{1,0})
    • परिणाम: (\boldsymbol{P}_{1,1} = \begin{bmatrix}14.57 & 1.43 \ 1.43 & 0.71\end{bmatrix})
    • update के बाद uncertainty, prediction और measurement uncertainty दोनों से कम है → measurement और prediction को मिलाने पर uncertainty हमेशा घटती है
  • prediction चरण

    • अगले समय (t_2) की prediction
      • state prediction: (\hat{\boldsymbol{x}}{2,1} = \boldsymbol{F}\hat{\boldsymbol{x}}{1,1} = [12{,}016.5, 201.43]^T)
      • covariance prediction: (\boldsymbol{P}{2,1} = \boldsymbol{F}\boldsymbol{P}{1,1}\boldsymbol{F}^T + \boldsymbol{Q} = \begin{bmatrix}52.86 & 7.47 \ 7.47 & 1.71\end{bmatrix})
    • समय बीतने पर यदि measurement न मिले तो uncertainty फिर बढ़ती है
  • Iteration 1 सारांश

    • update चरण: prediction और measurement को Kalman Gain से जोड़ा जाता है
    • prediction चरण: updated state को अगले समय बिंदु तक आगे बढ़ाया जाता है
    • मुख्य equations
      • state update: (\hat{\boldsymbol{x}}{n,n} = \hat{\boldsymbol{x}}{n,n-1} + \boldsymbol{K}_n(\boldsymbol{z}n - \boldsymbol{H}\hat{\boldsymbol{x}}{n,n-1}))
      • covariance update (Joseph form): (\boldsymbol{P}_{n,n} = (\boldsymbol{I} - \boldsymbol{K}n\boldsymbol{H})\boldsymbol{P}{n,n-1}(\boldsymbol{I} - \boldsymbol{K}_n\boldsymbol{H})^T + \boldsymbol{K}_n\boldsymbol{R}_n\boldsymbol{K}_n^T)
      • Kalman Gain: (\boldsymbol{K}n = \boldsymbol{P}{n,n-1}\boldsymbol{H}^T(\boldsymbol{H}\boldsymbol{P}_{n,n-1}\boldsymbol{H}^T + \boldsymbol{R}_n)^{-1})

उदाहरण सारांश

  • Kalman Filter के तीन चरण: initialization → prediction → update
  • इसके बाद prediction-update loop को बार-बार चलाया जाता है
  • हर नई measurement जुड़ने पर uncertainty घटती है और सिस्टम की state estimation धीरे-धीरे अधिक सटीक होती जाती है
  • अतिरिक्त learning materials
    • मुफ्त online tutorial: step-by-step संख्यात्मक उदाहरण उपलब्ध
    • पुस्तक Kalman Filter from the Ground Up: linear·non-linear filters, implementation guidelines, Python/MATLAB code शामिल

1 टिप्पणियां

 
GN⁺ 2026-04-10
Hacker News की राय
  • मैं लेखक हूँ। मैंने हाल ही में अपने Kalman Filter ट्यूटोरियल का होमपेज अपडेट किया है। मैंने एक सरल radar tracking example जोड़ा है, ताकि stats और linear algebra की बुनियादी समझ रखने वाले लोग भी इसे समझ सकें
    मैंने formula derivation को न्यूनतम रखते हुए measurement noise, prediction model, और filter combination की प्रक्रिया को सहज रूप से दिखाने की कोशिश की है। मैं गणित के स्तर और समझाने की स्पष्टता पर feedback सुनना चाहता हूँ

    • मैंने इसे थोड़ी देर देखा, और लगा कि process noise matrix Q अचानक से आ गया। किताब में शायद इसका विवरण होगा, लेकिन यह उन मानों तक क्यों पहुँचता है, इसका छोटा-सा आधार दिया जाए तो अच्छा होगा
    • कुल मिलाकर यह स्पष्ट था। लेकिन शुरुआत में system model और Kalman filter के बीच का अंतर थोड़ा धुंधला लगा। state matrix बनाने वाले हिस्से तक मुझे लगा कि यह model explanation है, लेकिन वह सीधे filter equations में चला गया, इसलिए थोड़ा भ्रम हुआ
    • accessibility menu मुझे सच में बहुत पसंद आया। पेज की readability को adjust करना बहुत आसान था
    • लगभग 6 महीने पहले मैंने Kalman filter खुद implement करने की कोशिश की थी, लेकिन application domain के अनुसार इसकी संरचना काफी बदल जाती है, इसलिए मैं बीच में रुक गया। उम्मीद है यह सामग्री इसे पूरा करने में बहुत मदद करेगी
    • ट्यूटोरियल की शुरुआत में “optimal algorithm” वाला वाक्यांश थोड़ा अमूर्त लगा। गणित में जाने से पहले उसका मतलब संक्षेप में समझा दिया जाए तो अच्छा होगा
  • मेरे हिसाब से intuitive guide कुछ ऐसी है

    1. weighted least squares को समझें, और सीखें कि नए measurement values और uncertainty का उपयोग करके मौजूदा estimate को कैसे update किया जाता है
    2. अगर मान लें कि वास्तविक mean नहीं बदलता, तो यह तरीका अच्छी तरह काम करता है
    3. लेकिन अगर mean बदलता है, तो Kalman filter उस बदलाव का अनुमान लगाने के लिए एक model का उपयोग करता है
    4. prediction के बाद हम फिर से (1) जैसी समस्या पर लौट आते हैं
      आखिरकार मूल बात least squares ही है, और कुछ खास मान्यताओं के तहत यह साबित किया जा सकता है कि यही optimal है
  • “How a Kalman Filter Works in Pictures” लेख सच में बहुत अच्छा था

    • मुझे भी उस लेख की visual explanation style पसंद है। लेकिन मेरे ट्यूटोरियल का लक्ष्य step-by-step radar example के केंद्र में intuition और pitfalls दोनों को साथ लेकर चलना था
    • लेकिन ऐसे “सरल explanation” भी कई बार व्यवहार में बहुत जटिल लगते हैं। Kalman filter मूल रूप से estimator का एक प्रकार है।
      उदाहरण के लिए, low-pass filter भी एक तरह का estimator है, लेकिन Kalman filter इसमें process model और covariance calculation जोड़कर इसे dynamically adjusted रूप देता है।
      यह position और velocity जैसे correlated variables के बीच संबंध को दर्शाता है, ताकि एक measurement दूसरे variables के estimate को भी प्रभावित कर सके।
      लेकिन चूँकि यह linear algebra पर आधारित है, इसलिए Gaussian noise मानना पड़ता है, और nonlinear समस्याओं के लिए EKF या UKF जैसे variants की ज़रूरत होती है
  • Kalman filter को समझने के लिए आपको ये चार बातें जाननी चाहिए

    1. system model
    2. internal state
    3. optimal estimation की परिभाषा
    4. covariance की अवधारणा
      filter, measurements के आधार पर system की internal state और covariance का optimal estimate निकालने का एक mathematical solution है।
      मुझे लगता है Alex Becker की किताब इस विषय की शानदार शुरुआती किताब है। इसमें उदाहरण भरपूर हैं और यह intuition अच्छी तरह बनाती है
    • feedback के लिए धन्यवाद। मैं और advanced topics को कवर करने वाली दूसरी किताब पर विचार कर रहा हूँ। लेकिन मैं यह साफ़ करना चाहता हूँ कि EKF या UKF approximation हैं, इसलिए वे पूरी तरह optimal solution नहीं हैं
  • Kalman filter सीखते समय, जब अलग-अलग noise characteristics वाले दो या अधिक inputs हों तब इसे कहीं ज़्यादा सहज रूप से समझा जा सकता है। लेकिन ज़्यादातर tutorials सिर्फ single input को कवर करते हैं

    • मेरी किताब में sensor fusion की अवधारणा का परिचय देने वाला एक अध्याय है। अगर आप और गहराई में सीखना चाहते हैं, तो मैं Bar-Shalom या Blackman की किताबें सुझाऊँगा
    • असल में Kalman filter का सार state estimation है। sensor fusion उसकी सिर्फ एक application है; दोनों को एक ही मान लेने से गलतफहमी हो सकती है
  • Kalman filter का वास्तविक दुनिया में भी काफ़ी उपयोग होता है। उदाहरण के लिए, Sendspin इसका इस्तेमाल speaker synchronization के लिए करता है
    आप live demo और implementation docs देख सकते हैं

  • मुझे जिज्ञासा है कि क्या Kalman filter की अवधारणा को लोगों की गवाही पर भी लागू किया जा सकता है

    • दिलचस्प विचार है। इंसानी observation को noise वाले sensor की तरह देखा जा सकता है। लेकिन standard Kalman filter unbiased Gaussian noise मानता है, इसलिए इंसानों के मामले में यह मान्यता लागू होगी या नहीं, इस पर संदेह है
  • thekalmanfilter.com पर भी एक सरल explanation देखी जा सकती है

  • यह लेख महँगी किताब के विज्ञापन जैसा लगा। जबकि पहले से बहुत-सी free सामग्री मौजूद है, जैसे Kalman and Bayesian Filters in Python। जानना चाहता हूँ कि इस किताब की अलग खासियत क्या है

    • अच्छा सवाल है। Kalman filter की मूल सामग्री मुफ्त में उपलब्ध है। किताब में tuning, design considerations, और additional examples को और विस्तार से कवर किया गया है
    • Roger Labbe की किताब और Jupyter notebooks सच में शानदार हैं। वे सिर्फ Kalman filter ही नहीं, बल्कि estimation problems के लिए सामान्य approach समझने में भी बहुत मदद करते हैं
    • मैंने और भी बहुत-सी सामग्री देखी है, लेकिन यह किताब details की explanation में बेहद मजबूत है, इसलिए इसकी सिफारिश की जा सकती है। free tutorial भी यहाँ देखा जा सकता है
    • लिंक की गई सामग्री एक क्लासिक masterpiece है
    • अच्छी सामग्री बहुत ज़्यादा नहीं है। मैंने जो देखी है, उनमें सच में अच्छी तरह बनाई गई सामग्री गिनी-चुनी है। यह ऐसी सामग्री है जिसमें Kalman filter को नए नज़रिये से समझाने की कोशिश महसूस होती है