什么是卡爾曼濾波
卡爾曼濾波(Kalmanfiltering)一種利用線性系統(tǒng)狀態(tài)方程,通過系統(tǒng)輸入輸出觀測(cè)數(shù)據(jù),對(duì)系統(tǒng)狀態(tài)進(jìn)行最優(yōu)估計(jì)的算法。由于觀測(cè)數(shù)據(jù)中包括系統(tǒng)中的噪聲和干擾的影響,所以最優(yōu)估計(jì)也可看作是濾波過程。
傳統(tǒng)的濾波方法,只能是在有用信號(hào)與噪聲具有不同頻帶的條件下才能實(shí)現(xiàn).20世紀(jì)40年代,N.維納和A.H.柯爾莫哥羅夫把信號(hào)和噪聲的統(tǒng)計(jì)性質(zhì)引進(jìn)了濾波理論,在假設(shè)信號(hào)和噪聲都是平穩(wěn)過程的條件下,利用最優(yōu)化方法對(duì)信號(hào)真值進(jìn)行估計(jì),達(dá)到濾波目的,從而在概念上與傳統(tǒng)的濾波方法聯(lián)系起來,被稱為維納濾波。這種方法要求信號(hào)和噪聲都必須是以平穩(wěn)過程為條件。60年代初,卡爾曼(R.E.Kalman)和布塞(R.S.Bucy)發(fā)表了一篇重要的論文《線性濾波和預(yù)測(cè)理論的新成果》,提出了一種新的線性濾波和預(yù)測(cè)理由論,被稱之為卡爾曼濾波。特點(diǎn)是在線性狀態(tài)空間表示的基礎(chǔ)上對(duì)有噪聲的輸入和觀測(cè)信號(hào)進(jìn)行處理,求取系統(tǒng)狀態(tài)或真實(shí)信號(hào)。
這種理論是在時(shí)間域上來表述的,基本的概念是:在線性系統(tǒng)的狀態(tài)空間表示基礎(chǔ)上,從輸出和輸入觀測(cè)數(shù)據(jù)求系統(tǒng)狀態(tài)的最優(yōu)估計(jì)。這里所說的系統(tǒng)狀態(tài),是總結(jié)系統(tǒng)所有過去的輸入和擾動(dòng)對(duì)系統(tǒng)的作用的最小參數(shù)的集合,知道了系統(tǒng)的狀態(tài)就能夠與未來的輸入與系統(tǒng)的擾動(dòng)一起確定系統(tǒng)的整個(gè)行為。
卡爾曼濾波不要求信號(hào)和噪聲都是平穩(wěn)過程的假設(shè)條件。對(duì)于每個(gè)時(shí)刻的系統(tǒng)擾動(dòng)和觀測(cè)誤差(即噪聲),只要對(duì)它們的統(tǒng)計(jì)性質(zhì)作某些適當(dāng)?shù)募俣?,通過對(duì)含有噪聲的觀測(cè)信號(hào)進(jìn)行處理,就能在平均的意義上,求得誤差為最小的真實(shí)信號(hào)的估計(jì)值。因此,自從卡爾曼濾波理論問世以來,在通信系統(tǒng)、電力系統(tǒng)、航空航天、環(huán)境污染控制、工業(yè)控制、雷達(dá)信號(hào)處理等許多部門都得到了應(yīng)用,取得了許多成功應(yīng)用的成果。例如在圖像處理方面,應(yīng)用卡爾曼濾波對(duì)由于某些噪聲影響而造成模糊的圖像進(jìn)行復(fù)原。在對(duì)噪聲作了某些統(tǒng)計(jì)性質(zhì)的假定后,就可以用卡爾曼的算法以遞推的方式從模糊圖像中得到均方差最小的真實(shí)圖像,使模糊的圖像得到復(fù)原。
卡爾曼濾波的性質(zhì)
?、倏柭鼮V波是一個(gè)算法,它適用于線性、離散和有限維系統(tǒng)。每一個(gè)有外部變量的自回歸移動(dòng)平均系統(tǒng)(ARMAX)或可用有理傳遞函數(shù)表示的系統(tǒng)都可以轉(zhuǎn)換成用狀態(tài)空間表示的系統(tǒng),從而能用卡爾曼濾波進(jìn)行計(jì)算。
?、谌魏我唤M觀測(cè)數(shù)據(jù)都無助于消除x(t)的確定性。增益K(t)也同樣地與觀測(cè)數(shù)據(jù)無關(guān)。
③當(dāng)觀測(cè)數(shù)據(jù)和狀態(tài)聯(lián)合服從高斯分布時(shí)用卡爾曼遞歸公式計(jì)算得到的是高斯隨機(jī)變量的條件均值和條件方差,從而卡爾曼濾波公式給出了計(jì)算狀態(tài)的條件概率密度的更新過程線性最小方差估計(jì),也就是最小方差估計(jì)。
卡爾曼濾波的應(yīng)用
比如,在雷達(dá)中,人們感興趣的是跟蹤目標(biāo),但目標(biāo)的位置、速度、加速度的測(cè)量值往往在任何時(shí)候都有噪聲??柭鼮V波利用目標(biāo)的動(dòng)態(tài)信息,設(shè)法去掉噪聲的影響,得到一個(gè)關(guān)于目標(biāo)位置的好的估計(jì)。這個(gè)估計(jì)可以是對(duì)當(dāng)前目標(biāo)位置的估計(jì)(濾波),也可以是對(duì)于將來位置的估計(jì)(預(yù)測(cè)),也可以是對(duì)過去位置的估計(jì)(插值或平滑)。
mpu6050卡爾曼濾波分析
最近在學(xué)習(xí)卡爾曼濾波算法,算法首先靜止傳感器,先測(cè)量100次,求平均值,求出偏差A(yù)x_offsetAz_offsetGz_offset.以后每次測(cè)量值都減去這一偏差。然后通過加速度測(cè)得的Ax,Az通過atant(Ax,Az)計(jì)算Accel_x即是Roll,K_Angle是klman以后的Roll,Gyro_y為陀螺儀Y軸加速度,K_Gyro_y為卡爾曼之后的數(shù)值,
klman是融合Accel_x和Gyro_y,得到的結(jié)果。
下圖為串口發(fā)上來的數(shù)據(jù)分析。
下圖為使用一個(gè)軟件得出的Roll為klman以后的角度,Pinch為原始角度??梢钥闯鰇lman對(duì)震動(dòng)表現(xiàn)較好。但是效果并不是很明顯。
評(píng)論