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

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

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

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

射頻問(wèn)問(wèn) ? 來(lái)源:射頻問(wèn)問(wèn) ? 2023-02-16 09:47 ? 次閱讀

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

44a3dd00-ad20-11ed-bfe3-dac502259ad0.png

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

假設(shè)我們能夠得到被測(cè)物體的位置和速度的測(cè)量值44be82cc-ad20-11ed-bfe3-dac502259ad0.png,在已知上一時(shí)刻的最優(yōu)估計(jì)值44da2d24-ad20-11ed-bfe3-dac502259ad0.png以及它的協(xié)方差矩陣44f0586a-ad20-11ed-bfe3-dac502259ad0.png的條件下(初始值可以隨意取,但協(xié)方差矩陣應(yīng)為非0矩陣),則有450a72ae-ad20-11ed-bfe3-dac502259ad0.png,45218c82-ad20-11ed-bfe3-dac502259ad0.png,即:

45344340-ad20-11ed-bfe3-dac502259ad0.png? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(1)

而此時(shí),

4547ae62-ad20-11ed-bfe3-dac502259ad0.png? ? ? ? ? ? ? ? ? ?(2)

如果我們加入額外的控制量,比如加速度45587dbe-ad20-11ed-bfe3-dac502259ad0.png,此時(shí)456f21b8-ad20-11ed-bfe3-dac502259ad0.png,45877a24-ad20-11ed-bfe3-dac502259ad0.png,則此時(shí):

45999448-ad20-11ed-bfe3-dac502259ad0.png? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??(3)

同時(shí),我們認(rèn)為我們對(duì)系統(tǒng)的估計(jì)值并非完全準(zhǔn)確,比如運(yùn)動(dòng)物體會(huì)突然打滑之類的,即存在一個(gè)協(xié)方差為45aabd5e-ad20-11ed-bfe3-dac502259ad0.png的噪聲干擾。因此,我們需要對(duì)45c057f4-ad20-11ed-bfe3-dac502259ad0.png加上系統(tǒng)噪聲45daf60e-ad20-11ed-bfe3-dac502259ad0.png來(lái)保證描述的完備性。綜上,預(yù)測(cè)步驟的表達(dá)如下所示:

45f3c21a-ad20-11ed-bfe3-dac502259ad0.png? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??(4)

460b17da-ad20-11ed-bfe3-dac502259ad0.png? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???(5)

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

461b68a6-ad20-11ed-bfe3-dac502259ad0.png? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??(6)

462f7e40-ad20-11ed-bfe3-dac502259ad0.png? ? ? ? ? ? ? ? ? ? (7)

我們假設(shè)觀測(cè)值為463f25ca-ad20-11ed-bfe3-dac502259ad0.png。同時(shí)由于觀測(cè)數(shù)據(jù)同樣會(huì)存在噪聲干擾問(wèn)題,比如傳感器噪聲等,我們將這種噪聲的分布用協(xié)方差465bb316-ad20-11ed-bfe3-dac502259ad0.png表示。此時(shí),觀測(cè)值4677e158-ad20-11ed-bfe3-dac502259ad0.png與估計(jì)值4691246a-ad20-11ed-bfe3-dac502259ad0.png處于相同的狀態(tài)空間,但具有不同的概率分布,如圖2所示:

46acde26-ad20-11ed-bfe3-dac502259ad0.jpg

圖2 估計(jì)值與觀測(cè)值概率分布示意圖

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

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

46c82866-ad20-11ed-bfe3-dac502259ad0.png? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??(8)

46db5b48-ad20-11ed-bfe3-dac502259ad0.png? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??(9)

46f545e4-ad20-11ed-bfe3-dac502259ad0.png? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??(10)

式中:470f2716-ad20-11ed-bfe3-dac502259ad0.png描述高斯分布的協(xié)方差,47280970-ad20-11ed-bfe3-dac502259ad0.png表示高斯分布的均值,矩陣473e298a-ad20-11ed-bfe3-dac502259ad0.png稱為卡爾曼增益矩陣。

那么,將估計(jì)值47551b9a-ad20-11ed-bfe3-dac502259ad0.png以及觀測(cè)值4771af8a-ad20-11ed-bfe3-dac502259ad0.png代入式(8)至式(10),可以得到:

47820592-ad20-11ed-bfe3-dac502259ad0.png? ? ? ? ? ? ? ?(11)

47960466-ad20-11ed-bfe3-dac502259ad0.png? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??(12)

47b32802-ad20-11ed-bfe3-dac502259ad0.png? ? ? ? ? ? ? ?(13)

式中,473e298a-ad20-11ed-bfe3-dac502259ad0.png稱為卡爾曼增益。

將式(11)至式(13)中約去47dbe3d2-ad20-11ed-bfe3-dac502259ad0.png,并化簡(jiǎn)可得:

47f2d93e-ad20-11ed-bfe3-dac502259ad0.png? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???(14)

480bb8c8-ad20-11ed-bfe3-dac502259ad0.png? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???(15)

482382e6-ad20-11ed-bfe3-dac502259ad0.png? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??(16)

484967fe-ad20-11ed-bfe3-dac502259ad0.png即為我們所得到的最優(yōu)估計(jì)值,同時(shí)485aa46a-ad20-11ed-bfe3-dac502259ad0.png為其對(duì)應(yīng)的協(xié)方差矩陣。在實(shí)際應(yīng)用中,只需要使用式(4)、式(5)以及式(14)至式(16)這5個(gè)方程即可實(shí)現(xiàn)完整的卡爾曼濾波過(guò)程。

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

2. 算法實(shí)現(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)典卡爾曼濾波對(duì)虛擬信號(hào)及真實(shí)信號(hào)進(jìn)行濾波,結(jié)果如下圖所示:

4897daba-ad20-11ed-bfe3-dac502259ad0.jpg

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

48c146d4-ad20-11ed-bfe3-dac502259ad0.jpg

圖4 經(jīng)典卡爾曼濾波對(duì)真實(shí)信號(hào)濾波結(jié)果

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

建議應(yīng)用場(chǎng)合:輸入信號(hào)相對(duì)平穩(wěn)或已知被測(cè)系統(tǒng)運(yùn)動(dòng)學(xué)模型,同時(shí)要求運(yùn)算量極小的場(chǎng)合。

審核編輯:湯梓紅

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

    關(guān)注

    10

    文章

    652

    瀏覽量

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

    關(guān)注

    23

    文章

    4551

    瀏覽量

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

    關(guān)注

    3

    文章

    162

    瀏覽量

    24583
  • 濾波算法
    +關(guān)注

    關(guān)注

    2

    文章

    86

    瀏覽量

    13696
  • 輸入信號(hào)
    +關(guān)注

    關(guān)注

    0

    文章

    399

    瀏覽量

    12496

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

文章出處:【微信號(hào):射頻問(wèn)問(wèn),微信公眾號(hào):射頻問(wèn)問(wèn)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    卡爾濾波

    卡爾濾波的估計(jì)值能很好的逼近真實(shí)值,我的疑惑是,這和濾波有什么關(guān)系,請(qǐng)高手介紹下卡爾
    發(fā)表于 07-04 22:57

    圖書(shū)分享:卡爾濾波算法的幾何解釋

    網(wǎng)上搜到一篇關(guān)于卡爾濾波算法的論文,對(duì)低維卡爾濾波
    發(fā)表于 06-11 15:28

    卡爾濾波算法

    已知測(cè)量值和原始值,但測(cè)量噪聲和觀測(cè)噪聲未知,如何進(jìn)行卡爾濾波。之前看了好像可以用自適應(yīng)卡爾,但不是很懂,求例子,最好有注釋的
    發(fā)表于 03-23 19:12

    LabVIEW一維卡爾濾波算法

    最近正在學(xué)習(xí)卡爾濾波算法,用LabVIEW仿照C語(yǔ)言寫(xiě)了個(gè)一維的卡爾
    發(fā)表于 10-21 21:15

    卡爾濾波簡(jiǎn)介

    希望這篇筆記可以幫助到你。卡爾濾波(Kalman filtering)是一種利用線性系統(tǒng)狀態(tài)方程,通過(guò)系統(tǒng)輸入輸出觀測(cè)數(shù)據(jù),對(duì)系統(tǒng)狀態(tài)進(jìn)行最優(yōu)估計(jì)的算法。
    發(fā)表于 02-28 14:24

    卡爾濾波算法對(duì)比其他的濾波算法有什么優(yōu)點(diǎn)?

    卡爾濾波算法對(duì)比其他的濾波算法有什么優(yōu)點(diǎn)
    發(fā)表于 10-11 06:42

    卡爾濾波算法的改進(jìn)方案

    卡爾濾波 算法具有收斂平穩(wěn)、速度快、精度高的優(yōu)點(diǎn),在信號(hào)處理中受到廣泛應(yīng)用。但由于卡爾
    發(fā)表于 06-14 16:36 ?0次下載
    <b class='flag-5'>卡爾</b><b class='flag-5'>曼</b><b class='flag-5'>濾波</b><b class='flag-5'>算法</b>的改進(jìn)方案

    卡爾濾波學(xué)習(xí)及應(yīng)用

    卡爾濾波的學(xué)習(xí)與應(yīng)用。
    發(fā)表于 04-13 15:15 ?7次下載

    卡爾濾波算法

    卡爾濾波算法
    發(fā)表于 12-17 17:22 ?52次下載

    一種基于增量式卡爾濾波器的PMSM轉(zhuǎn)速濾波算法_肖曦

    一種基于增量式卡爾濾波器的PMSM轉(zhuǎn)速濾波算法_肖曦
    發(fā)表于 01-08 11:28 ?5次下載

    擴(kuò)展卡爾濾波的原理

    在很多實(shí)際工程問(wèn)題當(dāng)中,非線性系統(tǒng)占大多數(shù),而卡爾提出來(lái)的卡爾濾波器是一種針對(duì)線性系統(tǒng)的估計(jì)算法
    的頭像 發(fā)表于 08-12 10:06 ?5345次閱讀
    擴(kuò)展<b class='flag-5'>卡爾</b><b class='flag-5'>曼</b><b class='flag-5'>濾波</b>的原理

    淺析卡爾濾波

    在 飛行器姿態(tài)計(jì)算 中,卡爾濾波是最常用的姿態(tài)計(jì)算方法之一。今天就以目前的理解講以下卡爾濾波
    的頭像 發(fā)表于 06-14 10:44 ?1839次閱讀

    MPU6050使用互補(bǔ)濾波卡爾濾波算法進(jìn)行姿態(tài)解算

    MPU6050使用互補(bǔ)濾波卡爾濾波算法進(jìn)行姿態(tài)解算
    發(fā)表于 08-07 15:46 ?10次下載

    什么是卡爾濾波?卡爾濾波的作用是什么

    一、什么是卡爾濾波? 你可以在任何含有不確定信息的動(dòng)態(tài)系統(tǒng)中使用卡爾濾波,對(duì)系統(tǒng)下一步的走向
    的頭像 發(fā)表于 08-08 09:39 ?6568次閱讀
    什么是<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>的作用是什么

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

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