最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

卡爾曼濾波數(shù)據(jù)處理技巧通俗理解及python實(shí)現(xiàn)

 更新時間:2022年05月04日 09:21:45   作者:Bubbliiiing  
這篇文章主要為大家介紹了卡爾曼濾波數(shù)據(jù)處理技巧的通俗理解及python實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

學(xué)習(xí)前言

好久沒用過arduino了,接下去要用arduino和超聲波做個小實(shí)驗(yàn),對于讀取的模擬量肯定要進(jìn)行濾波呀,不然這模擬量咋咋呼呼的怎么用

什么是卡爾曼濾波

先看看百度百科解釋哈:卡爾曼濾波(Kalman filtering)是一種利用線性系統(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ù)測值:

里面有兩個重要的概念,分別是 最優(yōu) 和 預(yù)測值 :

這意味著:

1、卡爾曼濾波的結(jié)果不是確確實(shí)實(shí)被測量出來的,而是利用公式計(jì)算出來的預(yù)測結(jié)果(并不是說預(yù)測結(jié)果就不好,測量還存在誤差呢?。?;

2、最優(yōu)是因?yàn)榭柭鼮V波考慮的非常多,它結(jié)合了四個參數(shù)對當(dāng)前的被測量進(jìn)行預(yù)測,所以效果比較好。

接下里大家要理解 歷史數(shù)據(jù)、歷史積累誤差、當(dāng)前測量數(shù)據(jù)與當(dāng)前誤差 的概念。

我會通過實(shí)例給大家講講這四個東西的概念。

卡爾曼濾波實(shí)例

假設(shè)我們現(xiàn)在在用超聲波測距離!現(xiàn)在是t時間,我們需要用t-1時間的距離來估計(jì)t時間的距離。

設(shè)在t-1時刻,超聲波的被測量的最優(yōu)預(yù)測值為50cm,而到t-1時刻的積累誤差3cm,你自己對預(yù)測的不確定誤差為4cm,那么在t-1時刻,其總誤差為(32+42)1/2=5cm。

在t時刻,超聲波測得的實(shí)際值53cm,測量誤差為2cm,那我們要怎么去相信上一時刻的預(yù)測值和這一時刻的實(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)

import numpy as np
import matplotlib.pyplot as plt
# Q為這一輪的心里的預(yù)估誤差
Q = 0.00001
# R為下一輪的測量誤差
R = 0.1
# Accumulated_Error為上一輪的估計(jì)誤差,具體呈現(xiàn)為所有誤差的累計(jì)
Accumulated_Error = 1
# 初始舊值
kalman_adc_old = 0
SCOPE = 50
def kalman(ADC_Value):
    global kalman_adc_old
    global Accumulated_Error
    # 新的值相比舊的值差太大時進(jìn)行跟蹤
    if (abs(ADC_Value-kalman_adc_old)/SCOPE > 0.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
    return kalman_adc
array = np.array([50]*200)
s = np.random.normal(0, 5, 200)
test_array = array + s
plt.plot(test_array)
adc=[]
for i in range(200):
    adc.append(kalman(test_array[i]))
plt.plot(adc)   
plt.plot(array)   
plt.show()

實(shí)驗(yàn)結(jié)果為:

以上就是卡爾曼濾波數(shù)據(jù)處理技巧通俗理解及python實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于python卡爾曼濾波數(shù)據(jù)處理的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python如何判斷網(wǎng)絡(luò)是否通

    python如何判斷網(wǎng)絡(luò)是否通

    這篇文章主要介紹了python如何判斷網(wǎng)絡(luò)是否通?具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Python中8種運(yùn)算符介紹以及示例

    Python中8種運(yùn)算符介紹以及示例

    在Python編程中運(yùn)算符是用于執(zhí)行各種操作的特殊符號或關(guān)鍵字,下面這篇文章主要給大家介紹了關(guān)于Python中8種運(yùn)算符介紹以及示例的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • 基于Python編寫一個寶石消消樂小游戲

    基于Python編寫一個寶石消消樂小游戲

    快過年回家啦用,本文將為大家介紹一個用python編寫的寶石消消樂游戲用來哄小朋友,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以學(xué)習(xí)一下
    2022-01-01
  • django刪除表重建的實(shí)現(xiàn)方法

    django刪除表重建的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇django刪除表重建的實(shí)現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • 利用Python如何將數(shù)據(jù)寫到CSV文件中

    利用Python如何將數(shù)據(jù)寫到CSV文件中

    在數(shù)據(jù)分析中經(jīng)常需要從csv格式的文件中存取數(shù)據(jù)以及將數(shù)據(jù)寫書到csv文件中。下面這篇文章主要給大家介紹了關(guān)于利用Python如何將數(shù)據(jù)寫到CSV文件中的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-06-06
  • 基于Python實(shí)現(xiàn)溫度轉(zhuǎn)換程序

    基于Python實(shí)現(xiàn)溫度轉(zhuǎn)換程序

    這篇文章主要為大家詳細(xì)介紹了如何基于Python實(shí)現(xiàn)簡單的溫度轉(zhuǎn)換程序,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-10-10
  • django-xadmin根據(jù)當(dāng)前登錄用戶動態(tài)設(shè)置表單字段默認(rèn)值方式

    django-xadmin根據(jù)當(dāng)前登錄用戶動態(tài)設(shè)置表單字段默認(rèn)值方式

    這篇文章主要介紹了django-xadmin根據(jù)當(dāng)前登錄用戶動態(tài)設(shè)置表單字段默認(rèn)值方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Pandas Dataframe數(shù)據(jù)幀的迭代之iterrows(),itertuples(),items()詳解

    Pandas Dataframe數(shù)據(jù)幀的迭代之iterrows(),itertuples(),items()詳

    這篇文章主要介紹了Pandas Dataframe數(shù)據(jù)幀的迭代之iterrows(),itertuples(),items()使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • python更換國內(nèi)鏡像源三種實(shí)用方法

    python更換國內(nèi)鏡像源三種實(shí)用方法

    這篇文章主要給大家介紹了關(guān)于python更換國內(nèi)鏡像源三種實(shí)用方法的相關(guān)資料,更換Python鏡像源可以幫助解決使用pip安裝包時速度過慢或無法連接的問題,需要的朋友可以參考下
    2023-09-09
  • Python中有趣在__call__函數(shù)

    Python中有趣在__call__函數(shù)

    這篇文章主要介紹了Python中有趣在__call__函數(shù),本文直接給出一個使用實(shí)例,以此來講解__call__函數(shù)的用法,需要的朋友可以參考下
    2015-06-06

最新評論

太仆寺旗| 安阳市| 内江市| 丹东市| 吉木萨尔县| 兰西县| 乐安县| 凤城市| 新疆| 顺昌县| 江陵县| 康马县| 顺义区| 闽侯县| 大港区| 平昌县| 玉环县| 邛崃市| 华蓥市| 水富县| 乌拉特后旗| 周宁县| 六盘水市| 庄浪县| 赤壁市| 长阳| 新和县| 辉县市| 新巴尔虎左旗| 珲春市| 石柱| 子长县| 万盛区| 会同县| 石嘴山市| 松潘县| 南溪县| 加查县| 开封市| 金昌市| 龙胜|