资源简介
阿尔法贝塔滤波器,是卡曼滤波器的简化,比卡曼滤波器速度快。
代码片段和文件信息
%aplha.m
%memo:term project
%////// initialization
clear all;
close all;
clc;
tic
%////// define some paramater
runs=200; %the filiter will run 200 times
steps=50; % 50 steps a time
T=1;
G=[T*T/2 0;
T 0;
0 T*T/2;
0 T;];
F=[1 T 0 0;
0 1 0 0;
0 0 1 T;
0 0 0 1]; %Xk+1=F*Xk+G*Wk
H=[1 0 0 0;
0 0 1 0;];%Zk=H*Xk+Vk
Q=diag([0.04 0.09]); %variance of process noise
R=diag([900 900]); %varicance of measurement noise
aver_x_zero=[ 5 20 6 18]‘;
p_x_zero=diag([400 64 625 49]);
x_err_alp=zeros(4stepsruns);
faiw_x=0.2;
faiw_y=0.3;
faiv_x=30;
faiv_y=30;
lm_x=faiw_x*T^2/faiv_x
lm_y=faiw_y*T^2/faiv_y
alp_x=-1/8*(lm_x^2+8*lm_x-(lm_x+4)*sqrt(lm_x^2+8*lm_x));
beta_x=1/4*(lm_x^2+4*lm_x-lm_x*sqrt(lm_x^2+8*lm_x));
alp_y=-1/8*(lm_y^2+8*lm_y-(lm_y+4)*sqrt(lm_y^2+8*lm_y));
beta_y=1/4*(lm_y^2+4*lm_y-lm_y*sqrt(lm_y^2+8*lm_y));
K_alp=[alp_x 0;
beta_x/T 0;
0 alp_y;
0 beta_y/T];
randn(‘state‘sum(100*clock)); %设置生成器在每次使用时的状态都不同(因为clock每次都不同)
%//////////////////////////////////
%/////////////////alp filiter
for index=1:runs % 滤波器已经运行几次
index
%滤波器初始化
x=sqrtm(p_x_zero)*randn(41)+aver_x_zero ; %产生x0
x_update_alp=aver_x_zero ;
p_update_alp=p_x_zero;
%//////////////////////////////
for k=1:steps
%/产生真值
x=F*x+G*sqrtm(Q)*rand(21);
%量测
z=H*x+sqrtm(R)*rand(21);
%prediction
x_pre_alp=F*x_update_alp; %输入为0
% p_pre_alp=F*p_update_alp*F‘+G*Q*G‘;
z_pre=H*x_pre_alp;
%update
% S_alp=H*p_pre_alp*H‘+R‘;
% K_alp=p_pre_alp*H‘*inv(S_alp);
x_update_alp=x_pre_alp+K_alp*(z-z_pre);
% p_update_alp=p_pre_alp-K_alp*S_alp*K_alp‘;
x_err_alp(:kindex)=x-x_update_alp;
end
end
for index=1:runs
index
pos_err_square_alp(index:)=sum(x_err_alp([1 3]:index).^2);
vel_err_square_alp(index:)=sum(x_err_alp([2 4]:index).^2);
end
%计算RMSE
RMS_alp=[(sqrt(mean(pos_err_square_alp)));
(sqrt(mean(vel_err_square_alp)));];
%开始画图
figure(1);
time=1:50;
%plot(timeRMS_alp(1:)‘-k‘)
hndl=plot(timeRMS_alp(1:)‘o‘);
set(hndl‘LineWidth‘1);
figure(2);
time=1:50;
%plot(timeRMS_alp(1:)‘-k‘)
hndl=plot(timeRMS_alp(2:)‘o‘);
set(hndl‘LineWidth‘1);
%ylim([0 50]);
toc
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2571 2013-03-13 19:36 阿尔法贝塔滤波器\alpha.m
文件 14336 2013-03-13 09:48 阿尔法贝塔滤波器\题目.doc
目录 0 2013-03-13 19:37 阿尔法贝塔滤波器\
相关资源
- 暗通道先验+引导滤波MATLAB代码
-
扩展卡尔曼滤波SOC算法Simuli
nk模型 - 基于MATLAB_GUI_的滤波器设计软件
- 快速非局部均值滤波算法
- matlab设计的五种fir数字滤波器
- 交互多模型的滤波器
- 粒子滤波的基本原理和其在非线性系
- 数学形态滤波
- 图像恢复:快速非局部均值滤波
- Trigger Algorithm 算法
- 实时提升小波,滤波
- 冲击滤波模型
- 语音分析程序
- Gaussian Particle Filter 高斯粒子滤波算法
- 低通滤波器
- 容积卡尔曼滤波
- 红外弱小目标的检测与跟踪
- GPS精密单点定位
- 扩散滤波实现图像增强
- 完美产生数字地面电视(DTMB)的信源
- 有源滤波器在双馈式风力发电机中使
- 单相lcl滤波逆变器并网电网电流及电
- 基于低通滤波原理对风电削峰填谷
- 几个SAR图像预处理方法
- 多相滤波(polyphase filter)的基本原理
- 最新最完整的Matlab粒子滤波工具箱(
- 最小二乘算法(LMS)处理滤波并预测
- 数字图像滤波程序
- 用α-β滤波器结合卡尔曼滤波器对相位
- 激光雷达点云滤波的topscan算法实现
评论
共有 条评论