فیلتر کالمَن (به انگلیسی: Kalman filter) که به عنوان تخمین خطی مرتبه دوم نیز از آن یاد میشود، الگوریتمی است که حالت یک سیستم پویا را با استفاده از مجموعهای از اندازهگیریهای شامل خطا در طول زمان برآورد میکند. این فیلتر معمولاً تخمین دقیقتری را نسبت به تخمین بر مبنای یک اندازهگیری واحد را بر مبنای استنباط بیزی و تخمین توزیع احتمال مشترکی از یک متغیر تصادفی در یک مقطع زمانی ارائه میکند. این فیلتر از نام رودولف ئی کالمن، یکی از پایهگذاران این تئوری گرفته شدهاست.
فیلتر کالمن کاربردهای بسیاری در علم و فناوری مانند مسیریابی و پایش وسایل نقلیه، به خصوص هواپیما و فضاپیماها، دارد. فیلتر کالمن مفاهیم گستردهای را در زمینه سریهای زمانی، پردازش سیگنال و اقتصادسنجی مطرح میکند. این فیلتر از مفاهیم پایه در زمینه برنامهریزی و پایش رباتها و همچنین مدلسازی سیستم عصبی محسوب میشود. بر اساس تأخیر زمانی میان ارسال فرمانها و دریافت پاسخ آنها، استفاده از فیلتر کالمن در تخمین حالات مختلف سیستم را ممکن میسازد.[۱]
این الگوریتم در دو گام اجرا میشود. در گام پیشبینی، فیلتر کالمن تخمینی از وضعیت فعلی متغیرها را در شرایط عدم قطعیت ارائه میکند. زمانی که نتیجه اندازهگیری بعدی بهدست آید، تخمین قبلی با میانگین وزندار آپدیت میشود. به این ترتیب که وزن اطلاعاتی که دارای قطعیت بیشتری هستند، بیشتر خواهد بود. الگوریتم بازگشتی میباشد و با استفاده از ورودیهای جدید و حالات محاسبه شدهٔ قبلی بهصورت بیدرنگ اجرا میشود.
درمورد ورودیهای فیلتر کالمن نمیتوان بیان کرد که تمام خطاها گوسی هستند. اما در عمل فیلتر برآوردهای احتمالاتی را با فرض توزیع طبیعی داشتن انجام میدهد.[۲]
تهیه اطلاعات پیوسته و گسسته به روز و دقیق در مورد مکان و سرعت یک شی معین فقط به کمک توالی مشاهدات در مورد موقعیت آن شی، که هر کدام شامل مقداری خطاست امکانپذیر است. این فیلتر در طیف گستردهای از کاربریهای مهندسی از رادار گرفته تا بینایی رایانهای کاربرد دارد. روش فیلتر کالمن یکی از عناوین مهم در تئوری کنترل و مهندسی سیستمهای کنترلی میباشد.
به عنوان مثال، برای کاربری آن در رادار، آنجا که علاقهمند به ردیابی هدف هستید، اطلاعات در مورد موقعیت، سرعت و شتاب هدف با حجم عظیمی از انحراف به لطف پارازیت در هر لحظه اندازهگیری میشود. فیلتر کالمن از پویایی هدف بهره میگیرد به این صورت که سیر تکاملی آن را کنترل میکند، تا تأثیرات پارازیت را از بین ببرد و یک برآورد خوب از موقعیت هدف در زمان حال (تصفیه کردن) و در آینده (پیشبینی) یا در گذشته (الحاق یا هموار سازی) ارائه میدهد. یک نسخه ساده شده فیلتر کالمن، فیلتر آلفا بتا (به انگلیسی: alpha beta filter)، که همچنان عموماً استفاده میشود از ثابتهای static weighting به جای ماتریسهای کواریانس استفاده میکند.
اگر چه توروالد نیکولای تیله (به دانمارکی: Thorvald Nicolai Thiele) و پیتر سوئرلینگ (به انگلیسی: Peter Swerling) قبلاً الگوریتم مشابهی ارائه داده بودند، این فیلتر به افتخار رودلف ئی کالمن، فیلتر کالمن نامگذاری شد و استنلی اف اشمیت (به انگلیسی: Stanley F. Schmidt) عموماً به خاطر توسعه اولین پیادهسازی فیلتر کالمن شهرت یافت. این رخداد هنگام ملاقات با کالمن در بنیاد پژوهشیناسا روی داد و وی شاهد کارایی ایده کالمن در برآورد مسیر پرتاب پروژه آپولو بود، که منجر به الحاق آن به رایانه ناوبری آپولو شد. این فیلتر بر روی کاغذ در ۱۹۵۸ توسط سوئرلینگ، در ۱۹۶۰ توسط کالمن و در ۱۹۶۱ توسط کالمن و بوسی ایجاد و بسط داده شد.
این فیلتر بعضی مواقع فیلتر استراتونوویچ-کالمان-بوسی نامیده میشود، چرا که یک نمونه خاص از فیلتر بسیار معمولی و غیر خطی ای است که قبلاً توسط روسلان استراتنویچ ایجاد شده، در حقیقت معادله این نمونه خاص، فیلتر خطی در اسنادی که از استراتنویچ قبل از تابستان ۱۹۶۰، یعنی زمانی که کالمن، استراتنویچ را در کنفرانسی در مسکو ملاقات کرد به چاپ رسید بود.
در تئوری کنترل، فیلتر کالمن بیشتر به برآورد مرتبه دوم (LQE) اشاره دارد. امروزه تنوع گستردهای از فیلتر کالمن به وجود آمده، از فرمول اصلی کالمن در حال حاضر فیلترهای: کالمن ساده، توسعه یافته اشمیت، اطلاعاتی و فیلترهای گوناگون جذر بیرمن، تورنتون و بسیاری دیگر به وجود آمدهاند. گویا مرسومترین نوع فیلتر کالمن فاز حلقهٔ بسته (phase-locked loop) میباشد که امروزه در رادیوها، رایانهها و تقریباً تمامی انواع ابزارهای تصویری و ارتباطی کاربرد دارد.
فیلترهای کالمن بر اساس سیستمهای خطی پویا (به انگلیسی: linear dynamical systems) گسسته در بازه زمانی هستند. آنها بر اساس زنجیره مارکوف (Markov chain) به کمک عملگرهای خطی ساخته شدهاند و توسط نوفه گاوسی تحریک میشوند. حالت سیستم توسط برداری از اعداد حقیقی بیان میشود. در هر افزایش زمانی که در بازههای گسسته صورت میگیرد، یک عملگر خطی روی حالت فعلی اعمال میشود تا حالت بعدی را با کمی پارازیت ایجاد کند و اختیاراً در صورت شناخت روی کنترلکنندههای سیستم برخی اطلاعات مرتبط را استخراج میکند. سپس عملگر خطی دیگر به همراه مقدار دیگری پارازیت خروجی قابل مشاهدهای از این حالت نامشخص تولید میکند. فیلتر کالمن قادر است مشابه مدل نامشخص مارکوف برخورد کند. با این تفاوت کلیدی که متغیرهای حالت نامشخص در یک فضای پیوسته مقدار میگیرند (نقطهٔ مقابل فضای حالت گسسته در مدل مارکوف). بهعلاوه، مدل نامشخص مارکوف میتواند یک توزیع دلخواه برای مقادیر بعدی متغیرهای حالت ارائه کند، که در تناقض با مدل پارازیت گاوسیای است که در فیلتر کالمن استفاده میشود. در اینجا یک دوگانگی بزرگ بین معادلات فیلتر کالمن و آن مدل مارکوف وجود دارد. مقالهای در رابطه با این مدل و دیگر مدلها در رویس و قهرمانی (به انگلیسی: Roweis and Ghahramani)[۳] و فصل ۱۳ همیلتون[۴] ارائه شدهاست.
برای تخمین حالت درونی یک فرایند که توسط مجموعهای مشاهدات دارای پارازیت ارائه شدهاست باید آن را منطبق بر چارچوب فیلتر کالمن کنیم. به این منظور ماتریسهای زیر را ارائه میکنیم:
Fk: مدل انتقال حالات،
Hk: مدل مشاهده شده،
Qk: کوواریانس پارازیت فرایند،
Rk: کوواریانس پارازیت مشاهده شده،
Bk: مدل ورودی-کنترل
فیلتر کالمن بیان میکند که میتوان حالت k را با استفاده از حالت (k - 1) با استفاده از رابطه زیر محاسبه کرد:
بهطوریکه:
Fk: حالت انتقالی اعمال شده به xk−۱،
Bk: مدل ورودی-کنترل اعمال شده به بردار کنترلی uk,
wk: فرایند نویزی با توزیع نرمال، میانگین صفر و واریانس Qk
در زمان k،مشاهده zk با توجه به حالت xk به صورت زیر بهدست میآید:
بهطوریکه Hk مدل مشاهده شده که به فضای مشاهده شده نگاشت میشود و همچنین vk نویز مشاهده شده با توزیع گاوسی، میانگین صفر و کوواریانس Rk است.
لازم است ذکر شود که حالت اولیه و بردار نویزی در هر محله از هم مستقل هستند.
بسیاری از سیستمهای پویای واقعی از این مدل تبعیت نمیکنند. برخی سیستمهای پویا حتی در زمانی که منبع ورودی ناشناختهای را بررسی میکنیم، میتوانند موجب کاهش تأثیر این فیلتر شوند؛ زیرا اثر این سیستمها بر سیگنال ورودی تأثیرگذار است و به این ترتیب میتواند موجب ناپایداری تخمین فیلتر شود. به علاوه نویزهای سفید مستقل باعث منشعب شدن فیلتر نمیشوند. مسئله تفکیک نویز سفید و سیستمهای پویا در شاخهٔ نظریه کنترل و در چارچوب کنترل مقاوم بررسی میشود.[۵][۶]
فیلتر کالمن یک تخمینگر بازگشتی است، یعنی تنها تخمین حالت قبل و مشاهده فعلی برای محاسبه تخمین حالت فعلی لازم است. برعکس بسیاری از تخمینگرها نیازی به نگهداری اطلاعات تخمینها و مشاهدات تمام حالات قبل نیست. در اینجا بیانگر تخمینی از در زمان n به شرط از مشاهدات پیش از این زمان است.
حالت فعلی فیلتر توسط دو متغیر تشریح میشود:
تخمین حالت پسینی در زمان k به شرط مشاهدات پیش از k.
ماتریس کوواریانس خطای پسین.
فیلتر کالمن توسط یک معادله بیان میشود اما معمولاً آن را به دو بخش پیشبینی و آپدیت تفکیک میکنند. در گام پیشبینی با استفاده از تخمینهای حالات در بازههای زمانی پیشین، تخمینی برای حالت فعلی بهدست میآید. این تخمین پیشبینی شده همان دانش پیشینی است زیرا تنها به تخمینهای قبلی وابسته است و هیچ مشاهدهای در حالت فعلی سیستم را در برنمیگیرد. در گام آپدیت تخمین پیشین با مشاهدات فعلی ترکیب میشود تا تخمینی از حالت فعلی سیستم ارائه کند.
معمولاً این دو گام متناوباً تکرار میشوند، به این معنی که پیشبینی تا مشاهده بعدی انجام میشود و سپس با استفاده از مشاهدات فعلی آپدیت انجام میشود. اگر در بازه زمانی مشاهدهای انجام نشود، پیشبینیها تا مشاهده بعدی انجام میشوند و آپدیت بر مبنای چند مرحله پیشبینی انجام میشود. بهطور مشابه اگر در بازه زمانی چندین مشاهده مستقل انجام شود، بر مبنای هریک از آنها چند آپدیت با ماتریسهای Hk متفاوت بهدست میآید.[۷][۸]
فرمول کوواریانس به روز شده تنها در حالت بهینه بودن فیلتر کالمن کاربرد دارد و در باقی حالات فرمولهای پیچیدهتری موردنیاز است که در بخش مشتقات موجود است.
پیادهسازی عملی فیلتر کالمن با توجه به سختی بهدست آوردن تخمین ماتریس کوواریانس Qk و Rk بهینه دشوار است. مطالعات بسیاری جهت بهدست آوردن تخمینهای کوواریانس با توجه به دادههای موجود انجام شدهاست. یکی از بهترین روشها، تکنیک حداقل مربعات اتوکوواریانس(ALS) است که از اتوکوواریانس دادهها با ایجاد تأخیر زمانی برای تخمین استفاده میکند.[۹][۱۰] از گنو آکتیو و متلب جهت محاسبه ماتریسهای کوواریانس نویز با استفاده از تکنیک حداقل مربعات اتوکوواریانس استفاده میشود. این کار به صورت آنلاین توسط پروانه عمومی همگانی گنو امکانپذیر است.[۱۱]
فیلتر کالمن یک فیلتر خطی بهینه است زیرا الف) مدلسازی آن با دقت بالایی بر سیستم اصلی منطبق است. ب) نویز ورودی، نویز سفید ناهمبسته است. ج) مقدار کوواریانس نویز قابل محاسبه است. روشهای بسیاری از جمله روش حداقل مربعات اتوکوواریانس که در بالا به آن اشاره شد برای تخمین کوواریانس نویز ارائه شدهاند. پس از تخمین کوواریانس لازم است کارایی سیستم ارتقا یابد. این بدین معنی است که تخمین حالات سیستم دقیقتر شوند. اگر فیلتر کالمن بهینه باشد، نویز ورودی نویز سفید است که محاسبه کارایی سیستم را ممکن میسازد. روشهای زیادی جهت محاسبه کارایی موجود است.[۱۲] اگر توزیع نویز گاوسی نباشد، روشهایی جهت تخمین کارایی با استفاده از نامساویهای احتمالاتی در[۱۳] و[۱۴] ارائه شدهاست.
کامیونی دارای اصطکاک در مسیری مستقیم را در نظر بگیرید. کامیون در مکان صفر ثابت است و سپس در مسیری تحت تأثیر نیروهای تصادفی به حرکت در میآید. موقعیت کامیون را در هر Δt ثانیه اندازهگیری میکنیم. اما این اندازهگیری مبهم است چرا ما تنها مدلی از مکان و سرعت کامیون را در نظر میگیریم. در اینجا فیلتر کالمن را برای این مدل بیان میکنیم.
چون ثابت هستند، شاخصهای زمانی آنها حذف میشوند.
موقعیت و سرعت کامیون در فضای خطی موقعیت آن توصیف میشود:
سرعت، یعنی مشتق مکان نسبت به زمان است.
فرض کنیم در بازه زمانی میان (k − ۱) و k شتاب ak که دارای توزیع طبیعی با میانگین صفر و واریانسσa است به آن اعمال شود. طبق قوانین حرکت نیوتن داریم:
نتیجه شتابak را به سیستم اعمال میکند و همچنین داریم
و
به این ترتیب
بهطوریکه و
توزیع کاملاً پیوسته نیست و بنابراین هیچ تابع توزیع احتمالی ندارد. روش دیگر بیان این توزیع به صورت زیر است:
در هر بازه زمانی، موقعیت کامیون که با نویزی آمیختهاست در دست است. فرض کنیم این نویز vk دارای توزیع طبیعی با میانگین صفر و واریانس σz باشد،
بهطوریکه
و
میدانیم موقعیت اولیه کامیون مشخص است و به صورت زیر در نظر گرفته میشود
برای اینکه در فیلتر آگاهیمان نسبت به این موضوع را مشخص کنیم، یک ماتریس کوواریانس صفر تعریف میکنیم:
اگر حالت ابتدایی و سرعت به درستی و دقت در دست نباشند، ماتریس کوواریانس باید با توجه به واریانسهای داده شده و به صورت قطری تعریف شود:
به این ترتیب فیلتر قادر به محاسبه اطلاعات مدل بر اساس مقادیر اولیه میشود.
با استفاده از نتیجه بهینه کالمن که در بالا بهدست آمد میتوان فرمول کوواریانس خطای پسین را سادهتر کرد. اگر طرفیت رابطه نتیجه بهینه کالمن را در SkKkT ضرب کنیم، داریم:
با استفاده از فرمول بسط داده شده کوواریانس خطای پسین
با سادهسازی دو جملهٔ آخر نتیجه میشود
این فرمول در محاسبه بسیار راحتتر است اما تنها برای نتیجه بهینه کاربرد دارد و زمانی که نتیجه کالمن بهینه نباشد باید از همان فرمول قبلی استفاده کرد.
معادلات فیلتر کردن کالمن تخمینی بازگشتی برای حالت و کوواریانس خطای ارائه میکند. دقت تخمین به پارامترهای سیستم و نویز ورودی تخمینگر بستگی دارد.[۱۵] در غیاب مقادیر ماتریسهای کوواریانس و عبارت
مقدار درست کوواریانس خطا را ارائه نمیکند. به عبارت دیگر، . در بسیاری از کاربردهای بیدرنگ، ماتریسهای کوواریانس مورد استفاده در طراحی فیلتر کالمن با مقادیر واقعی ماتریسهای کوواریانس تفاوت دارند. این تحلیل بیان میدارد که تخمین کوواریانس خطا زمانی که ماتریسهای ورودی سیستم و باشند، نادرست است.
این بحث به حالتی که عدم قطعیت در مورد خطا داریم محدود میشود. حال مقادیر واقعی کوواریانس نویز را و تعریف میکنیم بهطوریکه مقادیر آنها به ترتیب در روابط جایگزین و شوند. مقدار واقعی کوواریانس خطا را و با فیلتر کالمن محاسبه میشوند. اگر و ، خواهد بود. با محاسبه مقدار واقعی کوواریانس خطا و جایگذاری و در نظر داشتن اینکه and معادلات بازگشتی برای بهدست میآید:
و
محاسبه با فرض و انجام میشود. روابط بازگشتی برای و جز زمانی که و را به ترتیب به جای و در نظر بگیریم، یکتا هستند.
یکی از مشکلات فیلتر کالمن ثبات عددی است. اگر کوواریانس نویز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) هستند.
با فرض مارکوف، حالت فعلی سیستم مستقل از تمام حالات پیش از حالت قبلی آن است.
بهطور مشابه اندازهگیری در بازه زمانی kام تنها به حالت قبلی وابسته است و مستقل از تمام حالات پیش از حالت قبلی آن است.
با این مفروضات، توزیع احتمال تمام حالات مدل پنهان مارکوف به صورت زیر بیان میشود:
هدف فیلتر کالمن تخمین حالت فعلی سیستم است. این تخمین با استفاده از حاشیهسازی تابع توزیع مشترک بر اساس حالت قبلی سیستم قابل محاسبه است. کافی است حاشیهسازی نسبت به تمام حالات قبل انجام شده و بر احتمال مجموعه اندازهگیریها تقسیم شود.
به این ترتیب گامهای پیشبینی و آپدیت فیلتر کالمن به صورت احتمالاتی بهدست میآیند. توزیع احتمال حالت پیشبینی شده حاصل انتگرال حاصلضرب توابع توزیع احتمال انتقال از حالت (k-1)ام به حالت kام است و حالت قبلی روی تمام های ممکن است.
اندازهگیریها تا بازه زمانی kام عبارتند از:
توزیع احتمال آپدیت از حاصلضرب پیشبینی و درستنمایی (به انگلیسی: likelihood) بهدست میآید.
بهطوریکه
ضریب نرمالسازی است.
توابع توزیع احتمال باقیمانده عبارتند از:
توجه کنید که تابع چگالی احتمال حالت قبل، یک تخمین است. فیلتر کالمن فیلتری بهینه است و به این ترتیب توزیع احتمال به شرط اندازهگیری یک تخمین بهینه توسط فیلتر کالمن است.
همانند تخمین بازگشتی بیز که پیشتر بیان شد، فیلتر کالمن را میتوان به عنوان یک مدل مولد دید؛ یعنی فرایندی برای تولید دنبالهای از مشاهدات تصادفی (... ,z = (z0, z1, z2. این فرایند به صورت زیر تعریف میشود:
حالت پنهان را از توزیع گاوسی پیشین نمونهگیری کنید.
حالت پنهان را از مدل مشاهده شده نمونهگیری کنید.
برای
حالت پنهان را از مدل انتقالی محاسبه کنید.
مشاهده را از مدل مشاهده شده محاسبه کنید.
این فرایند ساختاری مشابه مدل پنهان مارکوف دارد که حالات گسسته در آن به متغیرهای تصادفی پیوسته با توزیع گاوسی تبدیل شدهاست.
محاسبه بخت حاشیهای به عنوان نتیجهای از فیلتر کردن بازگشتی بسیار آسان است. به کمک قانون زنجیرهای احتمال، بخت از حاصلضرب احتمال هر مشاهده به شرط مشاهدات قبلی بهدست میآید،
به علاوه چون فیلتر کالمن معرف یک فرایند مارکوف است، تمام دانش بهدست آمده از مشاهدات قبلی به تخمین محدود میشود. به این ترتیب بخت حاشیهای به صورت زیر محاسبه میشود:
رابطه بالا حاصلضرب چند توزیع احتمال گاوسی است که هر یک نمایانگر یک مشاهده zk تحت فیلتر است؛ که از آپدیتهای بازگشتی محاسبه میشود. برای راحتی محاسبه بهتر است ازlog بخت حاشیهای یعنی استفاده شود. با فرض محاسبه به صورت بازگشتی انجام میشود.
مزیت اصلی فیلتر اطلاعاتی این است که N مشاهده میتوانند در هر بازه زمانی با جمع زدن ماتریسها و بردارهای اطلاعاتی فیلتر شوند.
جهت پیشبینی فیلتر اطلاعات ماتریس و بردار اطلاعات به عبارات همارزشان در فضای حالات سیستم تبدیل میشوند. البته پیشبینی فضای اطلاعاتی هم قابل انجام است.[۲۲]
این مقادیر به شرطی قابل محاسبهاند که F و Q در زمان ثابت باشند. همچنین F و Q باید معکوسپذیر باشند.
تصفیهکننده بهینه تخمینی بهینه از برای تأخیر ثابت با استفاده از مشاهدات تا ارائه میکند.[۲۳] این تخمین به کمک روابط قبلی و برای یک حالت تکمیل شده به صورت زیر بهدست میآید:
بهطوریکه:
و با یک فیلتر استاندارد کالمن تخمین زده شدهاست.
و متغیرهای جدیدی هستند که در فیلتر کالمن وجود نداشتند.
نتایج کالمن از رابطه زیر بهدست میآیند:
بهطوریکه و کوواریانس خطاهای پیشبینی شده و نتایج فیلتر استاندارد کالمن هستند. ()
اگر تخمین کوواریانس خطا را به صورت زیر تعریف کنیم:
تصفیهکننده یا هموارگر با بازه-ثابت بهینه تخمینی بهینه از () با استفاده از مشاهداتی در بازه تا ارائه میکند. به این مبحث «تصفیهکننده کالمن» هم گفته میشود. الگوریتمهای مختلفی با این منظور موجودند.
الگوریتمی دو مرحلهای و کارا برای تصفیه کردن بازه است.[۲۴] گام رو به جلو مشابه فیلتر عادی کالمن است. تخمینهای فیلتر شده پیشین و پسین، و ، در گام رو به عقب کاربرد دارند.
در گام رو به عقب تخمین تصفیهشده و را محاسبه میکنیم. بدین طریق که از آخرین بازه زمانی شروع کرده و به صورت عقبگرد معادلات بازگشتی زیر را مییابیم:
بهطوریکه
تخمین حالت پسین زمان و تخمین حالت پیشین زمان است. درمورد کوواریانس نیز همین نوشتار به کار میرود.
این روش جایگزینی برای الگوریتم RTS است که توسط بیرمن ارائه شدهاست.[۱۷] این روش همچنین در گام رو به عقب دادههای بهدست آمده در گام رو به جلوی فیلتر کالمن استفاده میکند. معادلات رو به عقب شامل محاسبات بازگشتی که پس از هر مشاهده جهت تصفیه حالت و کوواریانس به کار برده میشود.
معادلات بازگشتی عبارتند از:
بهطوریکه کوواریانس باقیماندهاست و . همچنین حالت و کوواریانس تصفیهشده با کمک معادلات زیر قابل محاسبه است.
یا
از مزیتهای MBF عدم نیاز به یافتن معکوس ماتریس کوواریانس است.
این روش میتواند بهترین خطای ممکن را با استفاده از پارامترها و آمارههای نویزی شناختهشده بهدست آورد.[۲۵] این تصفیهکننده مدل کلیتری از فیلتر غیرعلّی وینر (به انگلیسی: non-causal Wiener filter) است.
محاسبات در دو گام انجام میشود. محاسبات گام رو به جلو در یک مرحله پیشبینی صورت میگیرد:
این عبارات معکوس وینر-هوف (به انگلیسی: Wiener-Hopf) است. نتیجه گام رو به عقب میتواند با استفاده بازگشت در زمان و از گام رو به جلو از محاسبه شود. در این حالت خروجی سیستم برابر است با:
با جایگذاری در رابطه بالا
این معادله برا ی فیلتر کالمن کمینه واریانس همواره یکسان است. حل معادلات بالا واریانس تخمین خطای خروجی را کمینه میکند. توجه کنید که در روش راوخ–تونگ–استریبل فرض میشود که همه توزیعها گاوسی هستند اما در اینجا چنین نیست.
نسخهٔ پیوسته در زمان این تصفیهکننده در[۲۶][۲۷] ارائه شدهاند.
توابع وزندار جهت وزن دادن به میانگین توزیع توان خطا در یک بازه تغییر مشخص استفاده میشوند. فرض کنید - یک تخمین خطای خروجی توسط فیلتر کالمن و یک تابع تخصیص وزن علی باشد. روش بهینهای که واریانس ( - ) را کمینه میکند استفاده از است.
نحوه طراحی فعلاً بیپاسخ است. یک راه آن شناسایی سیستمی که تخمین خطا را تولید میکند و قرارداد کردن به عنوان معکوس آن سیستم است.[۲۸] این روش میتواند جهت محاسبه خطای مربع میانگین استفاده شود تا هزینه فیلتر کاهش یابد. همچنین روش مشابهی جهت یافتن تصفیهکننده نیز وجود دارد.
مبنای فیلتر کالمن، تبدیلات خطی است. اما سیستمهای پیچیدهتر میتوانند غیرخطی باشند. مسئله غیرخطی بودن میتواند در مشاهدات، مدلسازی یا هر دو بروز پیدا کند.
در فیلتر بسطیافته کالمن (EKF) انتقال حالات و مشاهدات نیاز به توابع حالت خطی یا غیرخطی دارند. اینها توابعی مشتقپذیر هستند.
تابع f میتواند جهت محاسبه حالت پیشبینی شده از تخمین قبلی به کار رود. همچنین تابع h جهت یافتن مشاهدهای از حالت قبلی به کار میرود. توابع f و h نمیتوانند مستقیماً به کوواریانس اعمال شوند، بلکه باید ماتریسی از مشتقات جزئی (ماتریس ژاکوبی) آنها محاسبه شود.
در هر بازه زمانی ماتریس ژاکوبی با استفاده از حالات پیشبینی شده قبلی محاسبه میشود. این ماتریسها در معادلات فیلتر کالمن کاربرد دارد. در واقع این فرایند عمل خطی کردن توابع غیرخطی را حول تخمین فعلی شامل میشود.
وقتی انتقال حالات و مشاهدات، یعنی توابع پیشبینی و آپدیت و ، کاملاً غیرخطی باشند، فیلتر کالمن بسطیافته کارایی پایینی خواهد داشت.[۲۹] به این دلیل که کوواریانس در عمل خطیسازی مدل غیرخطی افزایش مییابد. فیلتر کالمن بیاثر از روش نمونهگیری قطعی که به تبدیل بیاثر (به انگلیسی: Unscented Transform) معروف است، استفاده میکند تا مجموعه نمونه مینیمالی از نقاط حول میانگین را جمعآوری کند. سپس این نقاط در تابع غیرخطی وارد شده تا میانگین و کوواریانس جدید حاصل شود. نتیجه برای سیستمهای قطعی با قطعیت بیشتری مقدار میانگین و کوواریانس را ارائه میکند.[۳۰] این روش به عنوان روش مونتکارلو یا بسط تیلور برای آمارههای پسین شناخته شدهاست. در واقع این روش ما را از محاسبه مستقیم ماتریس ژاکوبی که برای بعضی توابع بسیار پیچیدهاست، بینیاز میکند.
مشابه EKF، در روش UKF فاز پیشبینی در مقایسه با یک آپدیت خطی مستقل از آپدیت UKF انجام میشود. تخمین حالت و کوواریانس با کمک میانگین و کوواریانس فرایند بهدست میآیند.