RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

經(jīng)典卡爾曼濾波算法步驟

FPGA之家 ? 來源:FPGA之家 ? 作者:FPGA之家 ? 2021-01-07 10:08 ? 次閱讀

卡爾曼濾波實質(zhì)上就是基于觀測值以及估計值二者的數(shù)據(jù)對真實值進(jìn)行估計的過程。預(yù)測步驟如圖1所示:

圖1 卡爾曼濾波原理流程圖

假設(shè)我們能夠得到被測物體的位置和速度的測量值04e04082-507a-11eb-8b86-12bb97331649.png,在已知上一時刻的最優(yōu)估計值051226a6-507a-11eb-8b86-12bb97331649.png以及它的協(xié)方差矩陣0535ab80-507a-11eb-8b86-12bb97331649.png的條件下(初始值可以隨意取,但協(xié)方差矩陣應(yīng)為非0矩陣),則有05510588-507a-11eb-8b86-12bb97331649.png,057d8324-507a-11eb-8b86-12bb97331649.png,即:

059a407c-507a-11eb-8b86-12bb97331649.png

而此時,

05e0f79c-507a-11eb-8b86-12bb97331649.png

如果我們加入額外的控制量,比如加速度060bca6c-507a-11eb-8b86-12bb97331649.png,此時063a5c56-507a-11eb-8b86-12bb97331649.png,06581d68-507a-11eb-8b86-12bb97331649.png,則此時:

067349e4-507a-11eb-8b86-12bb97331649.png

同時,我們認(rèn)為我們對系統(tǒng)的估計值并非完全準(zhǔn)確,比如運(yùn)動物體會突然打滑之類的,即存在一個協(xié)方差為068fa4cc-507a-11eb-8b86-12bb97331649.png的噪聲干擾。因此,我們需要對06b3c1a4-507a-11eb-8b86-12bb97331649.png加上系統(tǒng)噪聲06e66e4c-507a-11eb-8b86-12bb97331649.png來保證描述的完備性。綜上,預(yù)測步驟的表達(dá)如下所示:

07053ee4-507a-11eb-8b86-12bb97331649.png

073d2ade-507a-11eb-8b86-12bb97331649.png

由于誤差累積的作用,單純對系統(tǒng)進(jìn)行估計會導(dǎo)致估計值越來越離譜,因此我們以傳感器的觀測數(shù)據(jù)對我們的估計進(jìn)行修正。我們可以用與預(yù)測步驟類似的方法將估計值空間映射至觀測值空間,如下式所示:

0769792c-507a-11eb-8b86-12bb97331649.png

07865100-507a-11eb-8b86-12bb97331649.png

我們假設(shè)觀測值為079fb15e-507a-11eb-8b86-12bb97331649.png。同時由于觀測數(shù)據(jù)同樣會存在噪聲干擾問題,比如傳感器噪聲等,我們將這種噪聲的分布用協(xié)方差07be8c0a-507a-11eb-8b86-12bb97331649.png表示。此時,觀測值07f1e406-507a-11eb-8b86-12bb97331649.png與估計值081663c6-507a-11eb-8b86-12bb97331649.png處于相同的狀態(tài)空間,但具有不同的概率分布,如圖2所示:

083c33a8-507a-11eb-8b86-12bb97331649.jpg

圖2 估計值與觀測值概率分布示意圖

我們可以認(rèn)為,這兩個概率分布的重疊部分,會更加趨近系統(tǒng)的真實數(shù)據(jù),即有更高的置信度,比如我們估計汽車速度是5~10km/h,傳感器反饋的速度是8~12km/h,那我們有理由認(rèn)為汽車的實際速度更趨近于8~10km/h這個區(qū)間。

這里將觀測值與估計值兩個分布的高斯分布相乘,其結(jié)果的高斯分布描述如下:

0886fcbc-507a-11eb-8b86-12bb97331649.png

08b0cdbc-507a-11eb-8b86-12bb97331649.png? ? ??

08e1e000-507a-11eb-8b86-12bb97331649.png

式中:08fdc04a-507a-11eb-8b86-12bb97331649.png描述高斯分布的協(xié)方差,092d918a-507a-11eb-8b86-12bb97331649.png表示高斯分布的均值,矩陣0954485c-507a-11eb-8b86-12bb97331649.png稱為卡爾曼增益矩陣。

那么,將估計值097719f4-507a-11eb-8b86-12bb97331649.png以及觀測值09a08a82-507a-11eb-8b86-12bb97331649.png代入式(8)至式(10),可以得到:

09b2d0d4-507a-11eb-8b86-12bb97331649.png

09dc3e88-507a-11eb-8b86-12bb97331649.png

09f6da7c-507a-11eb-8b86-12bb97331649.png

式中,0954485c-507a-11eb-8b86-12bb97331649.png稱為卡爾曼增益。

將式(11)至式(13)中約去0a5650f6-507a-11eb-8b86-12bb97331649.png,并化簡可得:

0a761f44-507a-11eb-8b86-12bb97331649.png

0a8f45f0-507a-11eb-8b86-12bb97331649.png

0aaaf21e-507a-11eb-8b86-12bb97331649.png

0abdb552-507a-11eb-8b86-12bb97331649.png即為我們所得到的最優(yōu)估計值,同時0adca610-507a-11eb-8b86-12bb97331649.png為其對應(yīng)的協(xié)方差矩陣。在實際應(yīng)用中,只需要使用式(4)、式(5)以及式(14)至式(16)這5個方程即可實現(xiàn)完整的卡爾曼濾波過程。

在對單一信號源濾波的場合,由于測量值與估計值具備幾乎完全相同的概率分布,為了更好的實現(xiàn)去噪效果,在假定被測對象變化不顯著的情況下,可以將之前(1~N)個時間節(jié)點的測量值隨機(jī)作為當(dāng)前時間節(jié)點的測量值,以實現(xiàn)更好的去噪效果。原則上,N取值越大濾波效果越好,但也會導(dǎo)致濾波結(jié)果滯后越嚴(yán)重。

2. 算法實現(xiàn)

function output = kalmanFilter(data, Q, R, N) if ~exist('Q', 'var') Q = 0.01; end if ~exist('R', 'var') R = 1; end if ~exist('N', 'var') N = 0; end X = 0; P = 1; A = 1; H = 1; output = zeros(size(data)); for ii = N + 1 : length(data) X_k = A * X; P_k = A * P * A' + Q; Kg = P_k * H' / (H * P_k * H' + R); z_k = data(ii - round(rand() * N)); X = X_k + Kg * (z_k - H * X_k); P = (1 - Kg*H) * P_k; output(ii) = X; end end

3. 算法分析

采用經(jīng)典卡爾曼濾波對虛擬信號及真實信號進(jìn)行濾波,結(jié)果如下圖所示:

0b4eaae4-507a-11eb-8b86-12bb97331649.jpg

圖3 經(jīng)典卡爾曼濾波對虛擬信號濾波結(jié)果

0b7593ca-507a-11eb-8b86-12bb97331649.jpg

圖4 經(jīng)典卡爾曼濾波對真實信號濾波結(jié)果

從濾波結(jié)果中可以看出,經(jīng)典卡爾曼對信號的濾波效果較為優(yōu)秀,實時性相對較好,計算量需求極小,能夠有效去除高斯噪聲以及非高斯噪聲,基本不受脈沖信號影響。在對被測系統(tǒng)的建模較為精確的條件下,其性能還能夠進(jìn)一步提升。其缺點主要在于需人為給定系統(tǒng)模型,當(dāng)系統(tǒng)模型不精確時濾波效果會有所下降,但可以通過增加采樣頻率解決此問題。

建議應(yīng)用場合:輸入信號相對平穩(wěn)或已知被測系統(tǒng)運(yùn)動學(xué)模型,同時要求運(yùn)算量極小的場合。

責(zé)任編輯:xj

原文標(biāo)題:濾波算法:經(jīng)典卡爾曼濾波

文章出處:【微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 濾波
    +關(guān)注

    關(guān)注

    10

    文章

    667

    瀏覽量

    56633
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4607

    瀏覽量

    92828
  • 卡爾曼濾波
    +關(guān)注

    關(guān)注

    3

    文章

    165

    瀏覽量

    24648

原文標(biāo)題:濾波算法:經(jīng)典卡爾曼濾波

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    卡爾濾波在信號處理中的應(yīng)用分析

    卡爾濾波在信號處理中的應(yīng)用十分廣泛,其強(qiáng)大的濾波和預(yù)測能力使其成為信號處理領(lǐng)域的一種重要工具。以下是對卡爾
    的頭像 發(fā)表于 12-16 09:14 ?349次閱讀

    卡爾濾波在圖像處理中的應(yīng)用實例 如何調(diào)優(yōu)卡爾濾波參數(shù)

    卡爾濾波在圖像處理中的應(yīng)用實例 卡爾濾波在圖像處理中主要應(yīng)用于目標(biāo)跟蹤、噪聲消除和圖像恢復(fù)等
    的頭像 發(fā)表于 12-16 09:11 ?245次閱讀

    卡爾濾波在機(jī)器人導(dǎo)航中的應(yīng)用

    卡爾濾波的基本原理 卡爾濾波是一種基于貝葉斯濾波
    的頭像 發(fā)表于 12-16 09:08 ?177次閱讀

    【「從算法到電路—數(shù)字芯片算法的電路實現(xiàn)」閱讀體驗】+閱讀濾波器章節(jié)部分筆記

    器,包括卡爾濾波器(Kalman Filter)、最小均方濾波器(Least Mean Square,LMS Filter)等。它們并不按照頻率來決定信號是否通過,而是將輸入信號按照
    發(fā)表于 12-02 21:43

    卡爾濾波器的特性及仿真

    我們前一篇關(guān)于人物識別跟蹤的文章《視頻連續(xù)目標(biāo)跟蹤實現(xiàn)的兩種方法和示例(更新)》里講到,視頻圖像中物體的識別和跟蹤用到了卡爾濾波器(KF)。這里對這個話題我們稍微對這個卡爾
    的頭像 發(fā)表于 11-04 11:36 ?317次閱讀
    <b class='flag-5'>卡爾</b><b class='flag-5'>曼</b><b class='flag-5'>濾波</b>器的特性及仿真

    常用的ADC濾波算法有哪些

    ADC(模數(shù)轉(zhuǎn)換器)濾波算法在信號處理中起著至關(guān)重要的作用,它們能夠幫助我們提取出有用的信號,同時濾除噪聲和干擾。以下是常用的ADC濾波算法詳解,這些
    的頭像 發(fā)表于 10-08 14:35 ?367次閱讀

    算法角度看 SLAM(第 2 部分)

    ,分別是基于濾波器的 SLAM、基于圖形的 SLAM 和基于深度學(xué)習(xí)的 SLAM。 基于濾波器的 SLAM 將 SLAM 視為狀態(tài)估計問題。在這種 SLAM 中,通常使用擴(kuò)展卡爾
    的頭像 發(fā)表于 10-02 16:39 ?309次閱讀
    從<b class='flag-5'>算法</b>角度看 SLAM(第 2 部分)

    貝葉斯濾波卡爾濾波的區(qū)別

    貝葉斯濾波卡爾濾波是兩種常用的濾波方法,它們在信號處理、導(dǎo)航、機(jī)器人定位等領(lǐng)域有著廣泛的應(yīng)用。 貝葉斯
    的頭像 發(fā)表于 08-01 15:25 ?622次閱讀

    卡爾濾波的優(yōu)缺點有哪些

    卡爾濾波(Kalman Filter)是一種線性動態(tài)系統(tǒng)的狀態(tài)估計算法,廣泛應(yīng)用于信號處理、導(dǎo)航、控制等領(lǐng)域。 卡爾
    的頭像 發(fā)表于 08-01 15:24 ?1485次閱讀

    卡爾濾波是什么 卡爾濾波與目標(biāo)追蹤技術(shù)分析

    卡爾濾波以及其擴(kuò)展算法能夠應(yīng)用于目標(biāo)狀態(tài)估計,如果這個目標(biāo)是行人,那么就是行人狀態(tài)估計(或者說行人追蹤),如果這個目標(biāo)是自身,那么就是車輛自身的追蹤(結(jié)合一些地圖的先驗,GPS等數(shù)據(jù)
    的頭像 發(fā)表于 04-29 09:46 ?1018次閱讀
    <b class='flag-5'>卡爾</b><b class='flag-5'>曼</b><b class='flag-5'>濾波</b>是什么 <b class='flag-5'>卡爾</b><b class='flag-5'>曼</b><b class='flag-5'>濾波</b>與目標(biāo)追蹤技術(shù)分析

    STM32F103RCT6使用HAL庫通過I2C1讀取MPU6050模塊原始數(shù)據(jù),卡爾濾波滯后很嚴(yán)重的原因?

    STM32F103RCT6使用HAL庫通過I2C1讀取MPU6050模塊原始數(shù)據(jù),卡爾濾波進(jìn)行數(shù)據(jù)融合。卡爾
    發(fā)表于 04-22 06:11

    【先楫HPM5361EVK開發(fā)板試用體驗】06-基于MPU9250的姿態(tài)解算

    運(yùn)動的場景,互補(bǔ)濾波可能會受到積累誤差的影響,導(dǎo)致姿態(tài)解算的不穩(wěn)定。 卡爾濾波和互補(bǔ)濾波的優(yōu)缺點對比如下圖所示。 3、姿態(tài)
    發(fā)表于 01-17 14:55

    卡爾濾波算法c語言實現(xiàn)方法

    卡爾濾波(Kalman Filter)是一種用于估計狀態(tài)的算法,最初由R.E. Kalman在1960年提出。它是一種線性高斯濾波器,常用
    的頭像 發(fā)表于 01-17 10:51 ?2925次閱讀

    卡爾濾波家族

    本文對于擴(kuò)展卡爾濾波、無跡卡爾濾波僅僅做了一些簡要介紹,不再想上次的文章那樣做詳細(xì)地推導(dǎo)了。
    的頭像 發(fā)表于 01-14 14:29 ?895次閱讀
    <b class='flag-5'>卡爾</b><b class='flag-5'>曼</b><b class='flag-5'>濾波</b>家族

    ADIS16448在卡爾濾波里的系統(tǒng)噪聲參數(shù)是多少?

    大家好,最近我在使用ADIS16448做IMU和GPS的融合。IMU主要是完成卡爾濾波里預(yù)測的步驟,所以我需要為我的IMU設(shè)置系統(tǒng)噪聲參數(shù)Q。然而在ADIS16448的參數(shù)表里,我似
    發(fā)表于 12-28 08:04
    RM新时代网站-首页