资源简介
编的很完善的kalman滤波、平滑以及预测MATLAB程序。希望对大家有用,尤其是在校大学生。
代码片段和文件信息
%初始化
R=15; %测量噪声协方差
Q=25; %过程噪声协方差
A=randn(110) %产生10个随机数
v=sqrt(15)*randn(110) %产生测量噪声随机数
save(‘pinghua.mat‘‘A‘‘v‘)
load(‘pinghua.mat‘)
% 产生服从均匀分布的随即序列
% % A=-sqrt(75)+(2*sqrt(75))*rand(110)
% % v=-sqrt(45)+(2*sqrt(45))*rand(110)
% % save(‘junyunfenbu.mat‘‘A‘‘v‘)
% load(‘junyunfenbu‘)
%kalman滤波过程,X为kalman滤波结果,p_为一步预测协方差,p为滤波协方差
for k=1:10
%初始时刻的协方差
p(1)=100;
x(k+1)=A(k);
v(k+1)=v(k);
p_(k+1)=p(k)+Q;
%kalman滤波增益,因fai为单位阵,故一步预测值和初始值相等,即x(k+1|k)=x(k)
K(k+1)=p_(k+1)*inv(p_(k+1)+R);
y(k+1)=x(k+1)+v(k+1);
X(k+1)=x(k)+K(k+1)*(y(k+1)-x(k));
p(k+1)=(1-K(k+1))*p_(k+1);
end
%固定期间平滑过程,X1为固定期间平滑结果,p1为固定期间平滑协方差
N=length(p);
for k=N-1:-1:1
X1(N)=X(N);
p1(N)=p(N);
F(k)=p(k)*inv(p_(k+1));
p1(k)=p(k)-F(k)*(p_(k+1)-p1(k+1))*(F(k))‘;
X1(k)=X(k)+F(k)*(X1(k+1)-x(k));
end
%固定点平滑过程,Xp为固定点平滑结果,Pp为固定点平滑协方差
for k=1:N-1
Xp(1)=X(1);
Pp(1)=100;
B(1)=1;
B(k+1)=B(k)*F(k);
- 上一篇:SVPWM matlab
- 下一篇:matlab和c程序混编提示找不到mex.h
相关资源
- 引导图像滤波器 Matlab实现
- kalman工具箱 用matlab编写 包附全部函数
- 基于matlab的窗函数法FIR数字滤波器设
- 有源电力滤波器的Matlab仿真_高勇
- 均值滤波和FFT频谱分析Matlab代码
- KF+EKF matlab程序实现
- 基于FPGA分布式算法FIR滤波器verilog代码
- IIR数字滤波器设计实验报告
- 卡尔曼滤波MATLAB代码
- 最小二乘滤波算法正弦波
- 高压直流输电系统的滤波器设计及仿
- 高压直流输电系统的滤波器设计及S
- 基于MATLAB的心电信号分析及滤波
- 加入噪声的中值滤波代码
- 小波滤波,可用于心电信号、脉搏波
- 基于卡尔曼滤波的三种经典室内定位
- 数字滤波器的MATLAB与FPGA实现——杜勇
- 傅里叶变化频谱图及频域滤波
- 图像处理---matlab
- hsv空间双边滤波去雾MATLAB代码
- 基于卡尔曼滤波的PID控制
- 基于 MATLAB 的滤波器设计 (fdatool使用
- 基于FPGA的自适应滤波器的实现
- EKF-UKF-PF 扩展卡尔曼-无迹卡尔曼-粒子
- 有关同态滤波的相关资料及matlab代码
-
Simuli
nk的低通数字滤波器的仿真分析 -
基于Simuli
nk的匹配滤波器设计 - MATLAB 粒子滤波目标跟踪代码
- 网络化控制系统的H∞滤波器设计本科
- 基于Matlab和FPGA的FIR数字滤波器设计及
评论
共有 条评论