




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第卡爾曼濾波數(shù)據(jù)處理技巧通俗理解及python實(shí)現(xiàn)目錄學(xué)習(xí)前言什么是卡爾曼濾波卡爾曼濾波是怎么濾波的卡爾曼濾波實(shí)例卡爾曼濾波的python代碼實(shí)現(xiàn)
學(xué)習(xí)前言
好久沒用過arduino了,接下去要用arduino和超聲波做個(gè)小實(shí)驗(yàn),對于讀取的模擬量肯定要進(jìn)行濾波呀,不然這模擬量咋咋呼呼的怎么用
什么是卡爾曼濾波
先看看百度百科解釋哈:卡爾曼濾波(Kalmanfiltering)是一種利用線性系統(tǒng)狀態(tài)方程,通過系統(tǒng)輸入輸出觀測數(shù)據(jù),對系統(tǒng)狀態(tài)進(jìn)行最優(yōu)估計(jì)的算法。由于觀測數(shù)據(jù)中包括系統(tǒng)中的噪聲和干擾的影響,所以最優(yōu)估計(jì)也可看作是濾波過程。
重要的事說三遍:
還不如不看!
還不如不看??!
還不如不看!??!
其實(shí)大家并不需要把卡爾曼濾波當(dāng)作一種很復(fù)雜的東西,用通俗的話來講,卡爾曼濾波算法只是一種濾波算法,它的功能就是濾波,濾波的作用就是減少噪聲與干擾對數(shù)據(jù)測量的影響。
卡爾曼濾波是怎么濾波的
接下來我會用一句話概括卡爾曼濾波的操作過程:
卡爾曼濾波是一種通過歷史數(shù)據(jù)、歷史積累誤差、當(dāng)前測量數(shù)據(jù)與當(dāng)前誤差聯(lián)合計(jì)算出的當(dāng)前被測量的最優(yōu)預(yù)測值。
首先大家要先理解什么是當(dāng)前被測量的最優(yōu)預(yù)測值:
里面有兩個(gè)重要的概念,分別是最優(yōu)和預(yù)測值:
這意味著:
1、卡爾曼濾波的結(jié)果不是確確實(shí)實(shí)被測量出來的,而是利用公式計(jì)算出來的預(yù)測結(jié)果(并不是說預(yù)測結(jié)果就不好,測量還存在誤差呢?。?/p>
2、最優(yōu)是因?yàn)榭柭鼮V波考慮的非常多,它結(jié)合了四個(gè)參數(shù)對當(dāng)前的被測量進(jìn)行預(yù)測,所以效果比較好。
接下里大家要理解歷史數(shù)據(jù)、歷史積累誤差、當(dāng)前測量數(shù)據(jù)與當(dāng)前誤差的概念。
我會通過實(shí)例給大家講講這四個(gè)東西的概念。
卡爾曼濾波實(shí)例
假設(shè)我們現(xiàn)在在用超聲波測距離!現(xiàn)在是t時(shí)間,我們需要用t-1時(shí)間的距離來估計(jì)t時(shí)間的距離。
設(shè)在t-1時(shí)刻,超聲波的被測量的最優(yōu)預(yù)測值為50cm,而到t-1時(shí)刻的積累誤差3cm,你自己對預(yù)測的不確定誤差為4cm,那么在t-1時(shí)刻,其總誤差為(32+42)1/2=5cm。
在t時(shí)刻,超聲波測得的實(shí)際值53cm,測量誤差為2cm,那我們要怎么去相信上一時(shí)刻的預(yù)測值和這一時(shí)刻的實(shí)際值呢?因?yàn)槎叨疾皇菧?zhǔn)的,我們可以利用誤差來計(jì)算。
因此,我們結(jié)合歷史數(shù)據(jù)、歷史積累誤差、當(dāng)前測量數(shù)據(jù)與當(dāng)前誤差來計(jì)算:
所以當(dāng)前的最優(yōu)預(yù)測值為52.59。
卡爾曼濾波的python代碼實(shí)現(xiàn)
importnumpyasnp
importmatplotlib.pyplotasplt
#Q為這一輪的心里的預(yù)估誤差
Q=0.00001
#R為下一輪的測量誤差
R=0.1
#Accumulated_Error為上一輪的估計(jì)誤差,具體呈現(xiàn)為所有誤差的累計(jì)
Accumulated_Error=1
#初始舊值
kalman_adc_old=0
SCOPE=50
defkalman(ADC_Value):
globalkalman_adc_old
globalAccumulated_Error
#新的值相比舊的值差太大時(shí)進(jìn)行跟蹤
if(abs(ADC_Value-kalman_adc_old)/SCOPE0.25):
Old_Input=ADC_Value*0.382+kalman_adc_old*0.618
else:
Old_Input=kalman_adc_old
#上一輪的總誤差=累計(jì)誤差^2+預(yù)估誤差^2
Old_Error_All=(Accumulated_Error**2+Q**2)**(1/2)
#R為這一輪的預(yù)估誤差
#H為利用均方差計(jì)算出來的雙方的相信度
H=Old_Error_All**2/(Old_Error_All**2+R**2)
#舊值+1.00001/(1.00001+0.1)*(新值-舊值)
kalman_adc=Old_Input+H*(ADC_Value-Old_Input)
#計(jì)算新的累計(jì)誤差
Accumulated_Error=((1-H)*Old_Error_All**2)**(1/2)
#新值變?yōu)榕f值
kalman_adc_old=kalman_adc
returnkalman_adc
array=np.array([50]*200)
s=np.random.normal(0,5,200)
test_array=array+s
plt.plot(test_array)
adc=[]
foriinrange(200):
adc.append(kalman(test_array[i]))
plt.plot(adc)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 服裝流程管理與協(xié)調(diào)試題及答案
- 紡織品檢測案例實(shí)操分享試題及答案
- 廣告設(shè)計(jì)師個(gè)性發(fā)展試題及答案
- 廣告設(shè)計(jì)師創(chuàng)意激發(fā)技巧試題及答案
- 2024廣告設(shè)計(jì)師行業(yè)標(biāo)準(zhǔn)試題及答案
- 助理廣告師知識重要性分析試題及答案
- 三年語文試題及答案
- 上海租房面試題及答案
- 《電力系統(tǒng)自動化》課件
- 2024年紡織行業(yè)創(chuàng)新與可持續(xù)發(fā)展探討試題及答案
- 土地房屋測繪項(xiàng)目投標(biāo)方案技術(shù)標(biāo)
- T-CAQI 387-2024 測量不確定度在分析化學(xué)領(lǐng)域質(zhì)量控制中的應(yīng)用指南
- 基于語篇分析的七選五題型解題策略課件-高三英語二輪復(fù)習(xí)
- 國家衛(wèi)健委中醫(yī)師承關(guān)系合同(2025年版)
- 中國贛州低空經(jīng)濟(jì)產(chǎn)業(yè)園
- 2025年春季形勢與政策-從教育大國邁向教育強(qiáng)國
- 江蘇省鹽城市2023-2024學(xué)年高一下學(xué)期6月期末考試 生物 含解析
- 啤酒廠精釀生產(chǎn)線安全操作規(guī)程
- 2024年秋季學(xué)期新外研版(三起)英語三年級上冊課件 Unit6 Part1
- 外研版(2025新版)七年級下冊英語Unit 1 學(xué)情調(diào)研測試卷(含答案)
- 前程無憂測評題庫及答案
評論
0/150
提交評論