stanford-oval/wikipedia huggingface dataset:
فیلتر کالمان
مثال کاربرد عملی

کامیونی دارای اصطکاک در مسیری مستقیم را در نظر بگیرید. کامیون در مکان صفر ثابت است و سپس در مسیری تحت تأثیر نیروهای تصادفی به حرکت در می‌آید. موقعیت کامیون را در هر Δt ثانیه اندازه‌گیری می‌کنیم. اما این اندازه‌گیری مبهم است چرا ما تنها مدلی از مکان و سرعت کامیون را در نظر می‌گیریم. در اینجا فیلتر کالمن را برای این مدل بیان می‌کنیم.
چون  \mathbf {F} ,\mathbf {H} ,\mathbf {R} ,\mathbf {Q}  ثابت هستند، شاخص‌های زمانی آن‌ها حذف می‌شوند.
موقعیت و سرعت کامیون در فضای خطی موقعیت آن توصیف می‌شود:
\mathbf {x} _{k}={\begin{bmatrix}x\\{\dot {x}}\end{bmatrix}}
{\dot {x}} سرعت، یعنی مشتق مکان نسبت به زمان است.
فرض کنیم در بازه زمانی میان (k − ۱) و k شتاب ak که دارای توزیع طبیعی با میانگین صفر و واریانسσa است به آن اعمال شود. طبق قوانین حرکت نیوتن داریم:
\mathbf {x} _{k}=\mathbf {F} \mathbf {x} _{k-1}+\mathbf {G} a_{k}
\mathbf {G}  نتیجه شتابak را به سیستم اعمال می‌کند و همچنین داریم
\mathbf {F} ={\begin{bmatrix}1&\Delta t\\0&1\end{bmatrix}}
و
\mathbf {G} ={\begin{bmatrix}{\frac {\Delta t^{2}}{2}}\\[6pt]\Delta t\end{bmatrix}}
به این ترتیب
\mathbf {x} _{k}=\mathbf {F} \mathbf {x} _{k-1}+\mathbf {w} _{k}
به‌طوری‌که  \mathbf {w} _{k}\sim N(0,\mathbf {Q} ) و
\mathbf {Q} =\mathbf {G} \mathbf {G} ^{\text{T}}\sigma _{a}^{2}={\begin{bmatrix}{\frac {\Delta t^{4}}{4}}&{\frac {\Delta t^{3}}{2}}\\[6pt]{\frac {\Delta t^{3}}{2}}&\Delta t^{2}\end{bmatrix}}\sigma _{a}^{2}
توزیع  N(0,\mathbf {Q} ) کاملاً پیوسته نیست و بنابراین هیچ تابع توزیع احتمالی ندارد. روش دیگر بیان این توزیع به صورت زیر است:
\mathbf {w} _{k}\sim \mathbf {G} \cdot N(0,\sigma _{a})
در هر بازه زمانی، موقعیت کامیون که با نویزی آمیخته‌است در دست است. فرض کنیم این نویز vk دارای توزیع طبیعی با میانگین صفر و واریانس σz باشد،
\mathbf {z} _{k}=\mathbf {Hx} _{k}+\mathbf {v} _{k}
به‌طوری‌که
\mathbf {H} ={\begin{bmatrix}1&0\end{bmatrix}}
و
\mathbf {R} ={\textrm {E}}[\mathbf {v} _{k}\mathbf {v} _{k}^{\text{T}}]={\begin{bmatrix}\sigma _{z}^{2}\end{bmatrix}}
می‌دانیم موقعیت اولیه کامیون مشخص است و به صورت زیر در نظر گرفته می‌شود
{\hat {\mathbf {x} }}_{0\mid 0}={\begin{bmatrix}0\\0\end{bmatrix}}
برای اینکه در فیلتر آگاهیمان نسبت به این موضوع را مشخص کنیم، یک ماتریس کوواریانس صفر تعریف می‌کنیم:
\mathbf {P} _{0\mid 0}={\begin{bmatrix}0&0\\0&0\end{bmatrix}}
اگر حالت ابتدایی و سرعت به درستی و دقت در دست نباشند، ماتریس کوواریانس باید با توجه به واریانس‌های داده شده و به صورت قطری تعریف شود:
\mathbf {P} _{0\mid 0}={\begin{bmatrix}\sigma _{x}^{2}&0\\0&\sigma _{\dot {x}}^{2}\end{bmatrix}}
به این ترتیب فیلتر قادر به محاسبه اطلاعات مدل بر اساس مقادیر اولیه می‌شود.
مشتقات > مشتق‌گیری از ماتریس تخمینی کوواریانس پسین

با توجه به مقدار ثابت کوواریانس خطا Pk | k در بالا
\mathbf {P} _{k\mid k}=\mathrm {cov} (\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k})
با جایگذاری  {\hat {\mathbf {x} }}_{k\mid k} از روابط اثبات شده خواهیم داشت
\mathbf {P} _{k\mid k}={\textrm {cov}}(\mathbf {x} _{k}-({\hat {\mathbf {x} }}_{k\mid k-1}+\mathbf {K} _{k}{\tilde {\mathbf {y} }}_{k}))
حال مقدار  {\tilde {\mathbf {y} }}_{k} را جایگزین می‌کنیم
\mathbf {P} _{k\mid k}={\textrm {cov}}(\mathbf {x} _{k}-({\hat {\mathbf {x} }}_{k\mid k-1}+\mathbf {K} _{k}(\mathbf {z} _{k}-\mathbf {H} _{k}{\hat {\mathbf {x} }}_{k\mid k-1})))
همچنین  \mathbf {z} _{k} را نیز در رابطه جایگذاری می‌کنیم
\mathbf {P} _{k\mid k}={\textrm {cov}}(\mathbf {x} _{k}-({\hat {\mathbf {x} }}_{k\mid k-1}+\mathbf {K} _{k}(\mathbf {H} _{k}\mathbf {x} _{k}+\mathbf {v} _{k}-\mathbf {H} _{k}{\hat {\mathbf {x} }}_{k\mid k-1})))
با توجه به بردار خطا
\mathbf {P} _{k|k}={\textrm {cov}}((I-\mathbf {K} _{k}\mathbf {H} _{k})(\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k-1})-\mathbf {K} _{k}\mathbf {v} _{k})
چون خطای اندازه‌گیری شدهvk نسبت به سایر متغیرها ناهمبسته است، می‌توان گفت
\mathbf {P} _{k|k}={\textrm {cov}}((I-\mathbf {K} _{k}\mathbf {H} _{k})(\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k-1}))+{\textrm {cov}}(\mathbf {K} _{k}\mathbf {v} _{k})
با توجه به ویژگی‌های ماتریس کوواریانس
\mathbf {P} _{k\mid k}=(I-\mathbf {K} _{k}\mathbf {H} _{k}){\textrm {cov}}(\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k-1})(I-\mathbf {K} _{k}\mathbf {H} _{k})^{\text{T}}+\mathbf {K} _{k}{\textrm {cov}}(\mathbf {v} _{k})\mathbf {K} _{k}^{\text{T}}
با توجه به ثابت بودن Pk | k−1 و تعریف Rk نتیجه می‌شود
\mathbf {P} _{k\mid k}=(I-\mathbf {K} _{k}\mathbf {H} _{k})\mathbf {P} _{k\mid k-1}(I-\mathbf {K} _{k}\mathbf {H} _{k})^{\text{T}}+\mathbf {K} _{k}\mathbf {R} _{k}\mathbf {K} _{k}^{\text{T}}
این فرمول برای هر مقدار Kk معتبر است. فرمول بالا بیان می‌کند اگر Kk نتیجه بهینه کالمن باشد، رابطه به شکل زیر ساده خواهد شد.
مشتقات > مشتق نتیجه کالمن

فیلتر کالمن یک تخمین‌گر کمینه مربع میانگین خطا (MMSE) است. خطا در تخمین حالت پسین برابر است با
\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k}
هدف ما کمینه کردن میانگین مربع این بردار خطا یعنی  {\textrm {E}}[\|\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k|k}\|^{2}] است. این معادل کمینه کردن اثر تخمین پسین ماتریس کوواریانس  \mathbf {P} _{k|k} است. با بسط رابطه بالا نتیجه می‌شود:
{\begin{aligned}\mathbf {P} _{k\mid k}&=\mathbf {P} _{k\mid k-1}-\mathbf {K} _{k}\mathbf {H} _{k}\mathbf {P} _{k\mid k-1}-\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\text{T}}\mathbf {K} _{k}^{\text{T}}+\mathbf {K} _{k}(\mathbf {H} _{k}\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\text{T}}+\mathbf {R} _{k})\mathbf {K} _{k}^{\text{T}}\\[6pt]&=\mathbf {P} _{k\mid k-1}-\mathbf {K} _{k}\mathbf {H} _{k}\mathbf {P} _{k\mid k-1}-\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\text{T}}\mathbf {K} _{k}^{\text{T}}+\mathbf {K} _{k}\mathbf {S} _{k}\mathbf {K} _{k}^{\text{T}}\end{aligned}}
اثر ماتریس زمانی کمینه می‌شود که حساب ماتریس صفر شود. با استفاده از خواص ماتریس گرادیان و تقارن ماتریس‌ها داریم:
{\frac {\partial \;\mathrm {tr} (\mathbf {P} _{k\mid k})}{\partial \;\mathbf {K} _{k}}}=-2(\mathbf {H} _{k}\mathbf {P} _{k\mid k-1})^{\text{T}}+2\mathbf {K} _{k}\mathbf {S} _{k}=0
اگر این معادله را برای Kk حل کنیم، نتیجه کالمن به‌دست می‌آید
\mathbf {K} _{k}\mathbf {S} _{k}=(\mathbf {H} _{k}\mathbf {P} _{k\mid k-1})^{\text{T}}=\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\text{T}}
\mathbf {K} _{k}=\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\text{T}}\mathbf {S} _{k}^{-1}
این عبارت همان نتیجه بهینه کالمن است.
مشتقات > ساده کردن فرمول کوواریانس خطای پسین

با استفاده از نتیجه بهینه کالمن که در بالا به‌دست آمد می‌توان فرمول کوواریانس خطای پسین را ساده‌تر کرد. اگر طرفیت رابطه نتیجه بهینه کالمن را در SkKkT ضرب کنیم، داریم:
\mathbf {K} _{k}\mathbf {S} _{k}\mathbf {K} _{k}^{\mathrm {T} }=\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\mathrm {T} }\mathbf {K} _{k}^{\mathrm {T} }
با استفاده از فرمول بسط داده شده کوواریانس خطای پسین
\mathbf {P} _{k\mid k}=\mathbf {P} _{k\mid k-1}-\mathbf {K} _{k}\mathbf {H} _{k}\mathbf {P} _{k\mid k-1}-\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\mathrm {T} }\mathbf {K} _{k}^{\mathrm {T} }+\mathbf {K} _{k}\mathbf {S} _{k}\mathbf {K} _{k}^{\mathrm {T} }
با ساده‌سازی دو جملهٔ آخر نتیجه می‌شود
\mathbf {P} _{k\mid k}=\mathbf {P} _{k\mid k-1}-\mathbf {K} _{k}\mathbf {H} _{k}\mathbf {P} _{k\mid k-1}=(I-\mathbf {K} _{k}\mathbf {H} _{k})\mathbf {P} _{k\mid k-1}
این فرمول در محاسبه بسیار راحت‌تر است اما تنها برای نتیجه بهینه کاربرد دارد و زمانی که نتیجه کالمن بهینه نباشد باید از همان فرمول قبلی استفاده کرد.
تحلیل درستی

معادلات فیلتر کردن کالمن تخمینی بازگشتی برای حالت  {\hat {\mathbf {x} }}_{k\mid k} و کوواریانس خطای  \mathbf {P} _{k\mid k} ارائه می‌کند. دقت تخمین به پارامترهای سیستم و نویز ورودی تخمین‌گر بستگی دارد. در غیاب مقادیر ماتریس‌های کوواریانس  \mathbf {Q} _{k} و  \mathbf {R} _{k} عبارت
\mathbf {P} _{k\mid k}=(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k})\mathbf {P} _{k\mid k-1}(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k})^{\mathrm {T} }+\mathbf {K} _{k}\mathbf {R} _{k}\mathbf {K} _{k}^{\mathrm {T} }
مقدار درست کوواریانس خطا را ارائه نمی‌کند. به عبارت دیگر،  \mathbf {P} _{k\mid k}\neq E[(\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k})(\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k})^{\mathrm {T} }]. در بسیاری از کاربردهای بی‌درنگ، ماتریس‌های کوواریانس مورد استفاده در طراحی فیلتر کالمن با مقادیر واقعی ماتریس‌های کوواریانس تفاوت دارند. این تحلیل بیان می‌دارد که تخمین کوواریانس خطا زمانی که ماتریس‌های ورودی سیستم  \mathbf {F} _{k} و  \mathbf {H} _{k} باشند، نادرست است.
این بحث به حالتی که عدم قطعیت در مورد خطا داریم محدود می‌شود. حال مقادیر واقعی کوواریانس نویز را  \mathbf {Q} _{k}^{a} و  \mathbf {R} _{k}^{a} تعریف می‌کنیم به‌طوری‌که مقادیر آن‌ها به ترتیب در روابط جایگزین  \mathbf {Q} _{k} و  \mathbf {R} _{k} شوند. مقدار واقعی کوواریانس خطا را  \mathbf {P} _{k\mid k}^{a} و  \mathbf {P} _{k\mid k} با فیلتر کالمن محاسبه می‌شوند. اگر  \mathbf {Q} _{k}\equiv \mathbf {Q} _{k}^{a} و  \mathbf {R} _{k}\equiv \mathbf {R} _{k}^{a}،  \mathbf {P} _{k\mid k}=\mathbf {P} _{k\mid k}^{a} خواهد بود. با محاسبه مقدار واقعی کوواریانس خطا  \mathbf {P} _{k\mid k}^{a}=E[(\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k})(\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k})^{\mathrm {T} }] و جایگذاری  {\widehat {\mathbf {x} }}_{k\mid k} و در نظر داشتن اینکه  E[\mathbf {w} _{k}\mathbf {w} _{k}^{\mathrm {T} }]=\mathbf {Q} _{k}^{a} and  E[\mathbf {v} _{k}\mathbf {v} _{k}^{\mathrm {T} }]=\mathbf {R} _{k}^{a} معادلات بازگشتی برای  \mathbf {P} _{k\mid k}^{a} به‌دست می‌آید:
\mathbf {P} _{k\mid k-1}^{a}=\mathbf {F} _{k}\mathbf {P} _{k-1\mid k-1}^{a}\mathbf {F} _{k}^{\mathrm {T} }+\mathbf {Q} _{k}^{a}
و
\mathbf {P} _{k\mid k}^{a}=(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k})\mathbf {P} _{k\mid k-1}^{a}(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k})^{\mathrm {T} }+\mathbf {K} _{k}\mathbf {R} _{k}^{a}\mathbf {K} _{k}^{\mathrm {T} }
محاسبه  \mathbf {P} _{k\mid k} با فرض  E[\mathbf {w} _{k}\mathbf {w} _{k}^{\mathrm {T} }]=\mathbf {Q} _{k} و  E[\mathbf {v} _{k}\mathbf {v} _{k}^{\mathrm {T} }]=\mathbf {R} _{k} انجام می‌شود. روابط بازگشتی برای  \mathbf {P} _{k\mid k}^{a} و  \mathbf {P} _{k\mid k} جز زمانی که  \mathbf {Q} _{k}^{a} و  \mathbf {R} _{k}^{a} را به ترتیب به جای  \mathbf {Q} _{k} و  \mathbf {R} _{k} در نظر بگیریم، یکتا هستند.
ریشه مربع

یکی از مشکلات فیلتر کالمن ثبات عددی است. اگر کوواریانس نویزQk کوچک باشد، مقدار ویژه آن منفی می‌شود. به این ترتیب ماتریس کوواریانس حالات P نامعین می‌شود درحالی‌که باید مثبت معین باشد.
یک ویژگی ماتریس‌های مثبت معین این است که ریشه مربعی ماتریس مثلثی P = S·ST دارند. این ریشه می‌تواند به کمک روش تفکیک چولسکی (به انگلیسی: Cholesky decomposition) محاسبه شود. اگر کوواریانس به این فرم نوشته شود، هیچ‌گاه قطری یا متقارن نخواهد بود. یک فرم معادل این ماتریس که با استفاده از تفکیک U-D به‌دست می‌آید، P = U·D·UT
است کهU یک ماتریس مثلثی واحد و D یک ماتریس قطری است. در میان این دو فرم، فرم U-D رایج‌تر است و نیاز به محاسبات کمتری دارد.
الگوریتم‌های کارای پیش‌بینی و آپدیت کالمن در فرم ریشه مربعی، توسط بیرمن و تورتون ارائه شدند.
'تفکیک'L·D·LT ماتریس کوواریانس Sk مبنای دیگر فیلترهای عددی و ریشه مربعی است. الگوریتم با تفکیک LU آغاز می‌شود و نتایج آن در ساختارL·D·LT وارد می‌شود تا به روش Golub و Van Loan (الگوریتم ۴٫۱٫۲) در ماتریس قطری غیر واحد انجام شود.
ارتباط با تخمین بازگشتی بیز

فیلتر کالمن یکی از ساده‌ترین شبکه‌های پویای بیزی است. فیلتر کالمن حالات فعلی سیستم را در طول زمان به صورت بازگشتی، با استفاده از اندازه‌گیری‌های ورودی در مدل فرایندی ریاضی تخمین می‌زند. به‌طور مشابه تخمین بازگشتی بیز، توابع توزیع احتمال ناشناخته را به صورت بازگشتی، با استفاده از اندازه‌گیری‌های ورودی در مدل فرایندی ریاضی در طول زمان تخمین می‌زند.
در تخمین بازگشتی بیز، حالت فعلی یک فرایند مارکوف مشاهده نشده در نظر گرفته می‌شود و اندازه‌گیری‌های مشاهده شده مدل پنهان مارکف (HMM) هستند.
با فرض مارکوف، حالت فعلی سیستم مستقل از تمام حالات پیش از حالت قبلی آن است.
p({\textbf {x}}_{k}\mid {\textbf {x}}_{0},\dots ,{\textbf {x}}_{k-1})=p({\textbf {x}}_{k}\mid {\textbf {x}}_{k-1})
به‌طور مشابه اندازه‌گیری در بازه زمانی kام تنها به حالت قبلی وابسته است و مستقل از تمام حالات پیش از حالت قبلی آن است.
p({\textbf {z}}_{k}\mid {\textbf {x}}_{0},\dots ,{\textbf {x}}_{k})=p({\textbf {z}}_{k}\mid {\textbf {x}}_{k})
با این مفروضات، توزیع احتمال تمام حالات مدل پنهان مارکوف به صورت زیر بیان می‌شود:
p({\textbf {x}}_{0},\dots ,{\textbf {x}}_{k},{\textbf {z}}_{1},\dots ,{\textbf {z}}_{k})=p({\textbf {x}}_{0})\prod _{i=1}^{k}p({\textbf {z}}_{i}\mid {\textbf {x}}_{i})p({\textbf {x}}_{i}\mid {\textbf {x}}_{i-1})
هدف فیلتر کالمن تخمین حالت فعلی سیستم است. این تخمین با استفاده از حاشیه‌سازی تابع توزیع مشترک بر اساس حالت قبلی سیستم قابل محاسبه است. کافی است حاشیه‌سازی نسبت به تمام حالات قبل انجام شده و بر احتمال مجموعه اندازه‌گیری‌ها تقسیم شود.
به این ترتیب گام‌های پیش‌بینی و آپدیت فیلتر کالمن به صورت احتمالاتی به‌دست می‌آیند. توزیع احتمال حالت پیش‌بینی شده حاصل انتگرال حاصلضرب توابع توزیع احتمال انتقال از حالت (k-1)ام به حالت kام است و حالت قبلی روی تمام  x_{k-1}‌های ممکن است.
p({\textbf {x}}_{k}\mid {\textbf {Z}}_{k-1})=\int p({\textbf {x}}_{k}\mid {\textbf {x}}_{k-1})p({\textbf {x}}_{k-1}\mid {\textbf {Z}}_{k-1})\,d{\textbf {x}}_{k-1}
اندازه‌گیری‌ها تا بازه زمانی kام عبارتند از:
{\textbf {Z}}_{t}=\left\{{\textbf {z}}_{1},\dots ,{\textbf {z}}_{t}\right\}
توزیع احتمال آپدیت از حاصلضرب پیش‌بینی و درست‌نمایی (به انگلیسی: likelihood) به‌دست می‌آید.
p({\textbf {x}}_{k}\mid {\textbf {Z}}_{k})={\frac {p({\textbf {z}}_{k}\mid {\textbf {x}}_{k})p({\textbf {x}}_{k}\mid {\textbf {Z}}_{k-1})}{p({\textbf {z}}_{k}\mid {\textbf {Z}}_{k-1})}}
به‌طوری‌که
p({\textbf {z}}_{k}\mid {\textbf {Z}}_{k-1})=\int p({\textbf {z}}_{k}\mid {\textbf {x}}_{k})p({\textbf {x}}_{k}\mid {\textbf {Z}}_{k-1})\,d{\textbf {x}}_{k}
ضریب نرمال‌سازی است.
توابع توزیع احتمال باقی‌مانده عبارتند از:
p({\textbf {x}}_{k}\mid {\textbf {x}}_{k-1})={\mathcal {N}}({\textbf {F}}_{k}{\textbf {x}}_{k-1},{\textbf {Q}}_{k})
p({\textbf {z}}_{k}\mid {\textbf {x}}_{k})={\mathcal {N}}({\textbf {H}}_{k}{\textbf {x}}_{k},{\textbf {R}}_{k})
p({\textbf {x}}_{k-1}\mid {\textbf {Z}}_{k-1})={\mathcal {N}}({\hat {\textbf {x}}}_{k-1},{\textbf {P}}_{k-1})
توجه کنید که تابع چگالی احتمال حالت قبل، یک تخمین است. فیلتر کالمن فیلتری بهینه است و به این ترتیب توزیع احتمال  \mathbf {x} _{k} به شرط اندازه‌گیری  \mathbf {Z} _{k} یک تخمین بهینه توسط فیلتر کالمن است.
بخت حاشیه‌ای

همانند تخمین بازگشتی بیز که پیش‌تر بیان شد، فیلتر کالمن را می‌توان به عنوان یک مدل مولد دید؛ یعنی فرایندی برای تولید دنباله‌ای از مشاهدات تصادفی (... ,z = (z0, z1, z2. این فرایند به صورت زیر تعریف می‌شود:
حالت پنهان  \mathbf {x} _{0} را از توزیع گاوسی پیشین p(\mathbf {x} _{0})={\mathcal {N}}({\hat {\mathbf {x} }}_{0\mid 0},\mathbf {P} _{0\mid 0}) نمونه‌گیری کنید.
حالت پنهان  \mathbf {x} _{0} \mathbf {z} _{0} را از مدل مشاهده شده  p(\mathbf {z} _{0}\mid \mathbf {x} _{0})={\mathcal {N}}(\mathbf {H} _{0}\mathbf {x} _{0},\mathbf {R} _{0}) نمونه‌گیری کنید.
برای k=1,2,3,\ldots
حالت پنهان  \mathbf {x} _{k} را از مدل انتقالی p(\mathbf {x} _{k}\mid \mathbf {x} _{k-1})={\mathcal {N}}(\mathbf {F} _{k}\mathbf {x} _{k-1}+\mathbf {B} _{k}\mathbf {u} _{k},\mathbf {Q} _{k}) محاسبه کنید.
مشاهده  \mathbf {z} _{k} را از مدل مشاهده شده p(\mathbf {z} _{k}\mid \mathbf {x} _{k})={\mathcal {N}}(\mathbf {H} _{k}\mathbf {x} _{k},\mathbf {R} _{k}) محاسبه کنید.
این فرایند ساختاری مشابه مدل پنهان مارکوف دارد که حالات گسسته در آن به متغیرهای تصادفی پیوسته با توزیع گاوسی تبدیل شده‌است.
محاسبه بخت حاشیه‌ای به عنوان نتیجه‌ای از فیلتر کردن بازگشتی بسیار آسان است. به کمک قانون زنجیره‌ای احتمال، بخت از حاصلضرب احتمال هر مشاهده به شرط مشاهدات قبلی به‌دست می‌آید،
p(\mathbf {z} )=\prod _{k=0}^{T}p(\mathbf {z} _{k}\mid \mathbf {z} _{k-1},\ldots ,\mathbf {z} _{0})
به علاوه چون فیلتر کالمن معرف یک فرایند مارکوف است، تمام دانش به‌دست آمده از مشاهدات قبلی به تخمین  {\hat {\mathbf {x} }}_{k\mid k-1},\mathbf {P} _{k\mid k-1} محدود می‌شود. به این ترتیب بخت حاشیه‌ای به صورت زیر محاسبه می‌شود:
{\begin{aligned}p(\mathbf {z} )&=\prod _{k=0}^{T}\int p(\mathbf {z} _{k}\mid \mathbf {x} _{k})p(\mathbf {x} _{k}\mid \mathbf {z} _{k-1},\ldots ,\mathbf {z} _{0})d\mathbf {x} _{k}\\&=\prod _{k=0}^{T}\int {\mathcal {N}}(\mathbf {z} _{k};\mathbf {H} _{k}\mathbf {x} _{k},\mathbf {R} _{k}){\mathcal {N}}(\mathbf {x} _{k};{\hat {\mathbf {x} }}_{k\mid k-1},\mathbf {P} _{k\mid k-1})d\mathbf {x} _{k}\\&=\prod _{k=0}^{T}{\mathcal {N}}(\mathbf {z} _{k};\mathbf {H} _{k}{\hat {\mathbf {x} }}_{k\mid k-1},\mathbf {R} _{k}+\mathbf {H} _{k}\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{T})\\&=\prod _{k=0}^{T}{\mathcal {N}}(\mathbf {z} _{k};\mathbf {H} _{k}{\hat {\mathbf {x} }}_{k\mid k-1},\mathbf {S} _{k})\end{aligned}}
رابطه بالا حاصلضرب چند توزیع احتمال گاوسی است که هر یک نمایانگر یک مشاهده zk تحت فیلتر  \mathbf {H} _{k}{\hat {\mathbf {x} }}_{k\mid k-1},\mathbf {S} _{k} است؛ که از آپدیت‌های بازگشتی محاسبه می‌شود. برای راحتی محاسبه بهتر است ازlog بخت حاشیه‌ای یعنی \ell =\log p(\mathbf {z} ) استفاده شود. با فرض  \ell ^{(-1)}=0 محاسبه به صورت بازگشتی انجام می‌شود.
\ell ^{(k)}=\ell ^{(k-1)}-{\frac {1}{2}}\left({\tilde {\mathbf {y} }}_{k}^{T}\mathbf {S} _{k}^{-1}{\tilde {\mathbf {y} }}_{k}+\log \left|\mathbf {S} _{k}\right|+d_{y}\log 2\pi \right)
به‌طوری‌که  d_{y} بعد بردار اندازه‌گیری‌ها می‌باشد.
فیلتر اطلاعاتی

در فیلتر اطلاعاتی یا فیلتر کوواریانس معکوس، تخمین کوواریانس و تخمین حالت به ترتیب با ماتریس اطلاعات و تابع اطلاعات جایگزین می‌شوند.
مزیت اصلی فیلتر اطلاعاتی این است که N مشاهده می‌توانند در هر بازه زمانی با جمع زدن ماتریس‌ها و بردارهای اطلاعاتی فیلتر شوند.
جهت پیش‌بینی فیلتر اطلاعات ماتریس و بردار اطلاعات به عبارات هم‌ارزشان در فضای حالات سیستم تبدیل می‌شوند. البته پیش‌بینی فضای اطلاعاتی هم قابل انجام است.
این مقادیر به شرطی قابل محاسبه‌اند که F و Q در زمان ثابت باشند. همچنین F و Q باید معکوس‌پذیر باشند.
تصفیه‌کننده تأخیر زمانی

تصفیه‌کننده بهینه تخمینی بهینه از  {\hat {\textbf {x}}}_{k-N\mid k} برای تأخیر ثابت  N با استفاده از مشاهدات {\textbf {z}}_{1} تا  {\textbf {z}}_{k} ارائه می‌کند. این تخمین به کمک روابط قبلی و برای یک حالت تکمیل شده به صورت زیر به‌دست می‌آید:
{\begin{bmatrix}{\hat {\textbf {x}}}_{t\mid t}\\{\hat {\textbf {x}}}_{t-1\mid t}\\\vdots \\{\hat {\textbf {x}}}_{t-N+1\mid t}\\\end{bmatrix}}={\begin{bmatrix}{\textbf {I}}\\0\\\vdots \\0\\\end{bmatrix}}{\hat {\textbf {x}}}_{t\mid t-1}+{\begin{bmatrix}0&\ldots &0\\{\textbf {I}}&0&\vdots \\\vdots &\ddots &\vdots \\0&\ldots &I\\\end{bmatrix}}{\begin{bmatrix}{\hat {\textbf {x}}}_{t-1\mid t-1}\\{\hat {\textbf {x}}}_{t-2\mid t-1}\\\vdots \\{\hat {\textbf {x}}}_{t-N+1\mid t-1}\\\end{bmatrix}}+{\begin{bmatrix}{\textbf {K}}^{(0)}\\{\textbf {K}}^{(1)}\\\vdots \\{\textbf {K}}^{(N-1)}\\\end{bmatrix}}{\textbf {y}}_{t\mid t-1}
به‌طوری‌که:
{\hat {\textbf {x}}}_{t\mid t-1} و  {\textbf {y}}_{t\mid t-1}={\textbf {z}}_{t}-{\textbf {H}}{\hat {\textbf {x}}}_{t\mid t-1} با یک فیلتر استاندارد کالمن تخمین زده شده‌است.
{\hat {\textbf {x}}}_{t-i\mid t} و  i=1,\ldots ,N-1 متغیرهای جدیدی هستند که در فیلتر کالمن وجود نداشتند.
نتایج کالمن از رابطه زیر به‌دست می‌آیند:
{\textbf {K}}^{(i)}={\textbf {P}}^{(i)}{\textbf {H}}^{T}\left[{\textbf {H}}{\textbf {P}}{\textbf {H}}^{\mathrm {T} }+{\textbf {R}}\right]^{-1}
{\textbf {P}}^{(i)}={\textbf {P}}\left[\left[{\textbf {F}}-{\textbf {K}}{\textbf {H}}\right]^{T}\right]^{i}
به‌طوری‌که  {\textbf {P}} و  {\textbf {K}} کوواریانس خطاهای پیش‌بینی شده و نتایج فیلتر استاندارد کالمن هستند. ( {\textbf {P}}_{t\mid t-1})
اگر تخمین کوواریانس خطا را به صورت زیر تعریف کنیم:
{\textbf {P}}_{i}:=E\left[\left({\textbf {x}}_{t-i}-{\hat {\textbf {x}}}_{t-i\mid t}\right)^{*}\left({\textbf {x}}_{t-i}-{\hat {\textbf {x}}}_{t-i\mid t}\right)\mid z_{1}\ldots z_{t}\right]
تخمین بهتری از  {\textbf {x}}_{t-i} از رابطه زیر حاصل می‌شود.
{\textbf {P}}-{\textbf {P}}_{i}=\sum _{j=0}^{i}\left[{\textbf {P}}^{(j)}{\textbf {H}}^{T}\left[{\textbf {H}}{\textbf {P}}{\textbf {H}}^{\mathrm {T} }+{\textbf {R}}\right]^{-1}{\textbf {H}}\left({\textbf {P}}^{(i)}\right)^{\mathrm {T} }\right]
تصفیه‌کننده بازه-ثابت

تصفیه‌کننده یا هموارگر با بازه-ثابت بهینه تخمینی بهینه از  {\hat {\textbf {x}}}_{k\mid n} ( k<n) با استفاده از مشاهداتی در بازه {\textbf {z}}_{1} تا  {\textbf {z}}_{n} ارائه می‌کند. به این مبحث «تصفیه‌کننده کالمن» هم گفته می‌شود. الگوریتم‌های مختلفی با این منظور موجودند.
تصفیه‌کننده بازه-ثابت > راوخ–تونگ–استریبل

الگوریتمی دو مرحله‌ای و کارا برای تصفیه کردن بازه است. گام رو به جلو مشابه فیلتر عادی کالمن است. تخمین‌های فیلتر شده پیشین و پسین {\hat {\textbf {x}}}_{k\mid k-1}،  {\hat {\textbf {x}}}_{k\mid k} و  {\textbf {P}}_{k\mid k-1}،  {\textbf {P}}_{k\mid k} در گام رو به عقب کاربرد دارند.
در گام رو به عقب تخمین تصفیه‌شده  {\hat {\textbf {x}}}_{k\mid n} و  {\textbf {P}}_{k\mid n} را محاسبه می‌کنیم. بدین طریق که از آخرین بازه زمانی شروع کرده و به صورت عقب‌گرد معادلات بازگشتی زیر را می‌یابیم:
تصفیه‌کننده بازه-ثابت > تصفیه‌کننده برایسون-فریزر

این روش جایگزینی برای الگوریتم RTS است که توسط بیرمن ارائه شده‌است. این روش همچنین در گام رو به عقب داده‌های به‌دست آمده در گام رو به جلوی فیلتر کالمن استفاده می‌کند. معادلات رو به عقب شامل محاسبات بازگشتی که پس از هر مشاهده جهت تصفیه حالت و کوواریانس به کار برده می‌شود.
معادلات بازگشتی عبارتند از:
به‌طوری‌که  {\textbf {S}}_{k} کوواریانس باقیمانده‌است و  {\hat {\textbf {C}}}_{k}={\textbf {I}}-{\textbf {K}}_{k}{\textbf {H}}_{k}. همچنین حالت و کوواریانس تصفیه‌شده با کمک معادلات زیر قابل محاسبه است.
از مزیت‌های MBF عدم نیاز به یافتن معکوس ماتریس کوواریانس است.
تصفیه‌کننده بازه-ثابت > تصفیه‌کننده کمینه واریانس

این روش می‌تواند بهترین خطای ممکن را با استفاده از پارامترها و آماره‌های نویزی شناخته‌شده به‌دست آورد. این تصفیه‌کننده مدل کلی‌تری از فیلتر غیرعلّی وینر (به انگلیسی: non-causal Wiener filter) است.
محاسبات در دو گام انجام می‌شود. محاسبات گام رو به جلو در یک مرحله پیش‌بینی صورت می‌گیرد:
این عبارات معکوس وینر-هوف (به انگلیسی: Wiener-Hopf) است. نتیجه گام رو به عقب  \beta _{k} می‌تواند با استفاده بازگشت در زمان و از گام رو به جلو از  \alpha _{k} محاسبه شود. در این حالت خروجی سیستم برابر است با:
{\hat {\textbf {y}}}_{k\mid N}={\textbf {z}}_{k}-{\textbf {R}}_{k}\beta _{k}
با جایگذاری در رابطه بالا
{\hat {\textbf {y}}}_{k\mid k}={\textbf {z}}_{k}-{\textbf {R}}_{k}{\textbf {S}}_{k}^{-1/2}\alpha _{k}
این معادله برا ی فیلتر کالمن کمینه واریانس همواره یکسان است. حل معادلات بالا واریانس تخمین خطای خروجی را کمینه می‌کند. توجه کنید که در روش راوخ–تونگ–استریبل فرض می‌شود که همه توزیع‌ها گاوسی هستند اما در اینجا چنین نیست.
نسخهٔ پیوسته در زمان این تصفیه‌کننده در ارائه شده‌اند.
فیلترهای وزن‌دار کالمن

توابع وزن‌دار جهت وزن دادن به میانگین توزیع توان خطا در یک بازه تغییر مشخص استفاده می‌شوند. فرض کنید  {\textbf {y}} -  {\hat {\textbf {y}}} یک تخمین خطای خروجی توسط فیلتر کالمن و  {\textbf {W}} یک تابع تخصیص وزن علی باشد. روش بهینه‌ای که واریانس ( {\textbf {y}} -  {\hat {\textbf {y}}})  {\textbf {W}} را کمینه می‌کند استفاده از  {\textbf {W}}^{-1}{\hat {\textbf {y}}} است.
نحوه طراحی  {\textbf {W}} فعلاً بی‌پاسخ است. یک راه آن شناسایی سیستمی که تخمین خطا را تولید می‌کند و قرارداد کردن  {\textbf {W}} به عنوان معکوس آن سیستم است. این روش می‌تواند جهت محاسبه خطای مربع میانگین استفاده شود تا هزینه فیلتر کاهش یابد. همچنین روش مشابهی جهت یافتن تصفیه‌کننده نیز وجود دارد.
فیلترهای غیرخطی

مبنای فیلتر کالمن، تبدیلات خطی است. اما سیستم‌های پیچیده‌تر می‌توانند غیرخطی باشند. مسئله غیرخطی بودن می‌تواند در مشاهدات، مدلسازی یا هر دو بروز پیدا کند.
فیلترهای غیرخطی > فیلتر کالمن بسط‌یافته - ئی‌کِی‌اف

در فیلتر بسط‌یافته کالمن (EKF) انتقال حالات و مشاهدات نیاز به توابع حالت خطی یا غیرخطی دارند. این‌ها توابعی مشتق‌پذیر هستند.
تابع f می‌تواند جهت محاسبه حالت پیش‌بینی شده از تخمین قبلی به کار رود. همچنین تابع h جهت یافتن مشاهده‌ای از حالت قبلی به کار می‌رود. توابع f و h نمی‌توانند مستقیماً به کوواریانس اعمال شوند، بلکه باید ماتریسی از مشتقات جزئی (ماتریس ژاکوبی) آن‌ها محاسبه شود.
در هر بازه زمانی ماتریس ژاکوبی با استفاده از حالات پیش‌بینی شده قبلی محاسبه می‌شود. این ماتریس‌ها در معادلات فیلتر کالمن کاربرد دارد. در واقع این فرایند عمل خطی کردن توابع غیرخطی را حول تخمین فعلی شامل می‌شود.
فیلترهای غیرخطی > فیلتر کالمن از نوع یوکِی‌اف - بی‌اثر

وقتی انتقال حالات و مشاهدات، یعنی توابع پیش‌بینی و آپدیت  f و  h، کاملاً غیرخطی باشند، فیلتر کالمن بسط‌یافته کارایی پایینی خواهد داشت. به این دلیل که کوواریانس در عمل خطی‌سازی مدل غیرخطی افزایش می‌یابد. فیلتر کالمن بی‌اثر از روش نمونه‌گیری قطعی که به تبدیل بی‌اثر (به انگلیسی: Unscented Transform) معروف است، استفاده می‌کند تا مجموعه نمونه مینیمالی از نقاط حول میانگین را جمع‌آوری کند. سپس این نقاط در تابع غیرخطی وارد شده تا میانگین و کوواریانس جدید حاصل شود. نتیجه برای سیستم‌های قطعی با قطعیت بیشتری مقدار میانگین و کوواریانس را ارائه می‌کند. این روش به عنوان روش مونت‌کارلو یا بسط تیلور برای آماره‌های پسین شناخته شده‌است. در واقع این روش ما را از محاسبه مستقیم ماتریس ژاکوبی که برای بعضی توابع بسیار پیچیده‌است، بی‌نیاز می‌کند.