日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

卡尔曼滤波MATLAB代码实现

發布時間:2025/3/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 卡尔曼滤波MATLAB代码实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

沒有大量的公式推導,個人感覺也沒有必要,我們從小推導過很多公式,試著想想我們還能回憶起幾個?個人認為只需要記住公式的用法,作用,知道有這個公式就可以。用的時候我們可以隨時去查。所以樓主參考網上資料結合一個小例子整理出卡爾曼濾波的MATLAB代碼實現??炊@些代碼我們需要對卡爾曼濾波算法有基本的理解。大致的理解就是卡爾曼濾波算法通過兩個量對系統進行最優估計,而這兩個量應該占多大的權重,這就是卡爾曼濾波的核心所在??柭鼮V波通過不斷迭代(這也是為什么卡爾曼濾波這么多人研究的原因,計算機最會干的事情就是迭代)計算出最佳的權重比。從而對系統進行最優估計。

這個例子就是被網上舉例舉爛了的房間溫度預測案列。

假設我們要研究的對象是一個房間的溫度。根據你的經驗判斷,這個房間的溫度是恒定的,也就是下一分鐘的溫度等于現在這一分鐘的溫度(假設我們用一分鐘來做時間單位)。假設你對你的經驗不是100%的相信,可能會有上下偏差幾度。我們把這些偏差看成是高斯白噪聲(White Gaussian Noise),也就是這些偏差跟前后時間是沒有關系的而且符合高斯分配(Gaussian Distribution)。另外,我們在房間里放一個溫度計,但是這個溫度計也不準確的,測量值會比實際值偏差。我們也把這些偏差看成是高斯白噪聲。
好了,現在對于某一分鐘我們有兩個有關于該房間的溫度值:你根據經驗的預測值(系統的預測值)和溫度計的值(測量值)。下面我們要用這兩個值結合他們各自的噪聲來估算出房間的實際溫度值。
假如我們要估算k時刻的是實際溫度值。首先你要根據k-1時刻的溫度值,來預測k時刻的溫度。因為你相信溫度是恒定的,所以你會得到k時刻的溫度預測值是跟k-1時刻一樣的,假設是23度,同時該值的高斯噪聲的偏差是5度(5是這樣得到的:如果k-1時刻估算出的最優溫度值的偏差是3,你對自己預測的不確定度是4度,他們平方相加再開方,就是5)。然后,你從溫度計那里得到了k時刻的溫度值,假設是25度,同時該值的偏差是4度。
由于我們用于估算k時刻的實際溫度有兩個溫度值,分別是23 度和25度。究竟實際溫度是多少呢?相信自己還是相信溫度計呢?究竟相信誰多一點,我們可以用他們的covariance(協方差)來判斷。因為 Kg^2=5^2/(5^2+4^2),所以Kg=0.78,我們可以估算出k時刻的實際溫度值是:23+0.78*(25-23)=24.56度??梢钥闯?#xff0c;因為溫度計的covariance比較小(比較相信溫度計),所以估算出的最優溫度值偏向溫度計的值。
現在我們已經得到k時刻的最優溫度值了,下一步就是要進入 k+1時刻,進行新的最優估算。到現在為止,好像還沒看到什么自回歸的東西出現。對了,在進入k+1時刻之前,我們還要算出k時刻那個最優值(24.56 度)的偏差。算法如下:((1-Kg)*5^2)^0.5=2.35。這里的5就是上面的k時刻你預測的那個23度溫度值的偏差,得出的2.35就是進入 k+1時刻以后k時刻估算出的最優溫度值的偏差(對應于上面的3)。
就是這樣,卡爾曼濾波器就不斷的把 covariance遞歸,從而估算出最優的溫度值。他運行的很快,而且它只保留了上一時刻的covariance。上面的Kg,就是卡爾曼增益(Kalman Gain)。

我們理解了這個例子之后也不需要進行公示推導,我們只需要記住卡爾曼濾波的五個關鍵步驟即可。

X(k|k)= X(k|k-1)+Kg(k) (Z(k)-H X(k|k-1))

下面對應的上邊那個房間溫度預測的MATLAB代碼

x(k) = x(k - 1);%預估計k時刻狀態變量的值
p = p + Q;%對應于預估值的協方差
kg = p / (p + R);%卡爾曼增益
x(k) = x(k) + kg * (y(k) - x(k));
p = (1 - kg) * p;

clear
clc;
N=300;
CON = 25;%房間溫度,假定溫度是恒定的
%%%%%%%%%%%%%%%kalman filter%%%%%%%%%%%%%%%%%%%%%%
x = zeros(1,N);
y = 2^0.5 * randn(1,N) + CON;%加過程噪聲的狀態輸出

x(1) = 1;
p = 10;

Q = cov(randn(1,N));%過程噪聲協方差
R = cov(randn(1,N));%觀測噪聲協方差
for k = 2 : N
x(k) = x(k - 1);%預估計k時刻狀態變量的值
p = p + Q;%對應于預估值的協方差
kg = p / (p + R);%kalman gain
x(k) = x(k) + kg * (y(k) - x(k));
p = (1 - kg) * p;
end


%%%%%%%%%%這一部分是對卡曼濾波算法的改進,通過加窗進行平滑處理%%%%%%%%%%%%%%%%%%%%%%%%

Filter_Wid = 10;
smooth_res = zeros(1,N);
for i = Filter_Wid + 1 : N
tempsum = 0;
for j = i - Filter_Wid : i - 1
tempsum = tempsum + y(j);
end
smooth_res(i) = tempsum / Filter_Wid;
end
% figure(1);
% hist(y);
t=1:N;
figure(1);
expValue = zeros(1,N);
for i = 1: N
expValue(i) = CON;
end
plot(t,expValue,'r',t,x,'g',t,y,'b',t,smooth_res,'k');
legend('expected','estimate','measure','smooth result');
axis([0 N 20 30])
xlabel('Sample time');
ylabel('Room Temperature');
title('Smooth filter VS kalman filter');

總結

以上是生活随笔為你收集整理的卡尔曼滤波MATLAB代码实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本黄色片. | 91色爱| 寡妇一级片 | 用力使劲高潮了888av | 日韩欧美一级 | 精精国产 | 精品妇女一区二区三区 | 秋霞网一区二区 | 国产伦精品一区二区三区免费迷 | 亚洲精品二 | 日韩精品久久久久久免费 | 国产女厕一区二区三区在线视 | www.亚洲一区二区三区 | 国产 日韩 欧美 精品 | 国产精品老熟女一区二区 | 在线看黄色av | 波多野久久 | 日韩欧美第一区 | 国产免费一级 | 一本大道伊人av久久综合 | 综合av第一页 | 久久a久久| 精品国产不卡 | 国产精品精东影业 | 高清一区二区三区 | 好吊视频一区二区 | 在线观看深夜视频 | 中日韩精品在线 | 深夜福利一区 | 亚洲精品中文字幕乱码三区91 | 黄色av一区 | www.国产在线 | 国产精品久久久久久久无码 | 性国产精品| 啪啪中文字幕 | 欧美二三区 | 性生活视频在线播放 | 亚洲午夜久久久久久久久 | 国内毛片毛片 | 亚洲AV无码阿娇国产精品 | 青青草成人免费在线视频 | 绿帽视频 | 麻豆精品免费视频 | 久久er99热精品一区二区 | 国产1级片| 中国少妇乱子伦视频播放 | 日本老熟妇乱 | 人人干超碰| 又色又爽又黄无遮挡的免费视频 | 亚洲视频自拍 | 亚洲一区二区精品 | 日韩精品中文字幕一区二区三区 | 国产第一毛片 | 久久国内偷拍 | 蜜臀麻豆 | 相亲对象是问题学生动漫免费观看 | 日本精品一区二区 | 久久精品免费电影 | 天天干天天天天 | 色婷婷777| 99视频只有精品 | www.久久av.com| 亚洲成a人片77777精品 | 国产日韩欧美自拍 | 国产精品久久久久久免费观看 | 成人中文视频 | av av片在线看| 久久叉 | 日本成人午夜 | 自拍超碰 | 在线黄色免费网站 | 成年人免费黄色 | 久久久久一级片 | 久久久久久网址 | 免费毛片观看 | 国产人妖在线播放 | 看欧美一级片 | 久久久久久久久久久国产 | 日本在线三级 | 国产精品-色哟哟 | 黄色不卡 | 国产日韩精品一区二区三区 | 99人人爽| 日韩av一级 | 日韩久久中文字幕 | 欧美1 | 亚色中文| 野外吮她的花蒂高h在线观看 | 9久久9毛片又大又硬又粗 | 久久人妻无码aⅴ毛片a片app | 上原亚衣在线观看 | 大地资源中文在线观看免费版 | 国产综合无码一区二区色蜜蜜 | 夜夜嗨一区 | 国产免费麻豆 | 日韩tv| 国产又黄又大又爽 | 97射射 | 天天干天天舔 |