资源简介
最近邻域标准滤波器(NNSF)和概率数据互联滤波器(PDAF)的航迹绘制和对比
代码片段和文件信息
clc;clear
format long;close all;
for l=1:6
T=2;x(:1)=[10 1 10 -15]‘; %初始状态
F=[1 T 0 0;0 1 0 0;0 0 1 T;0 0 0 1];H=[1 0 0 0;0 0 1 0];R=[400 0;0 400];
for k=1:99
x(:k+1)=F*x(:k);
Z(:k)=H*x(:k+1)+randn*[20 20]‘;
end
X(:1)=[Z(11) (Z(11)-x(11))/T Z(21) (Z(21)-x(31))/T]‘; %系统初始状态
%初始协方差矩阵
P(:1:4)=[R(11) R(11)/T R(12) R(12)/T;R(11)/T 2*R(11)/(T^2) R(12)/T 2*R(12)/(T^2);
R(12) R(12)/T R(22) R(22)/T;R(12)/T 2*R(12)/(T^2) R(22)/T 2*R(22)/(T^2)];
X_temp=X(:1);
ZZ(:1)=H*X(:1);
P0=P(:1:4);
tao=[0.5*T*T 0;T 0;0 0.5*T*T;0 T]; %过程噪声分布矩阵
Q=[16 0;0 9]; %过程噪声
for k=1:9
X(:k+1)=F*X_temp; %一步状态预测
ZZ(:k+1)=H*X(:k+1);
P(:(4*k+1):(4*k+4))=F*P0*F‘+tao*Q*tao‘; %一步预测协方差
S(:((2*k-1):(2*k)))=H*P(:(4*k+1):(4*k+4))*H‘+R; %新息
s=S(:((2*k-1):(2*k)));
K=P(:(4*k+1):(4*k+4))*H‘*s^(-1); %增益
X_temp=X(:k+1)+K*[Z(:k)-H*X(:k+1)]; %状态更新
P0=(eye(4)-K*H)*P(:(4*k+1):(4*k+4))*(eye(4)+K*H)‘-K*R*K‘; %协方差更新
end
gama=16;lamda=0.00002;
PD=1;PG=0.9997; %检测概率与门概率
for k=10:99
X(:k+1)=F*X_temp; %一步状态预测
ZZ(:k+1)=H*X(:k+1);
P(:(4*k+1):(4*k+4))=F*P0*F‘+tao*Q*tao‘; %一步预测协方差
S(:((2*k-1):(2*k)))=H*P(:(4*k+1):(4*k+4))*H‘+R; %新息
s=S(:((2*k-1):(2*k)));
K=P(:(4*k+1):(4*k+4))*H‘*s^(-1); %增益
Av=pi*gama*sqrt(det(s)); %二维正方形波门面积
nc=round(10*Av*lamda+1); %虚假量测总数
j=0;
q=sqrt(10*Av)/2;
z_temp=Z(:k);
for i=1:nc
a=Z(1k)-q;b=Z(1k)+q;
c=Z(2k)-q;d=Z(2k)+q;
xx(i)=a+(b-a)*rand;
y(i)=c+(d-c)*rand;
zz_temp=[xx(i) y(i)]‘; %虚假量测
z_temp=[z_temp zz_temp]; %虚假量测和真实量测在内的所有量测
end
for i=1:nc+1
v_temp(:i)=z_temp(:i)-ZZ(:k+1);
%判断落入波门内的量测
if (v_temp(:i)‘*s^(-1)*v_temp(:i))<=gama
j=j+1;
z(:j)=z_temp(:i);
v(:j)=z(:j)-ZZ(:k+1);
end
end
sum=0;b0=lamda*sqrt(det(2*pi*s))*(1-PD*PG)/PD;
for i=1:j
e(i)=exp(-0.5*v(:i)‘*s^(-1)*v(:i));
sum=sum+e(i);
end
beta0=b0/(b0+sum); sum1=[0;0];sum2=[0 0;0 0];
for i=1:j
beta(i)=e(i)/(b0+sum);
sum1=sum1+beta(i)*v(:i); %组合新息
sum2=sum2+beta(i)*v(:i)*v(:i)‘;
end
X_temp=X(:k+1)+K*sum1; %状态更新
P0=beta0*P(:(4*k+1):(4*k+4))+(1-beta0)*(eye(4)-K*H)*P(:(4*k+1):(4*k+4))+K*(sum2-sum1*sum1‘)*K‘; %协方差更新
end
figure(l);plot(X(1:)X(3:)‘--r‘);grid on; hold on;
plot(x(1:)x(3:)‘.k‘);hold on;
plot(Z(1:)Z(2:)‘xb‘);xlabel(‘X‘);ylabel(‘Y‘);hold on;
clear;
T=2;x(:1)=[10 1 10 -15]‘; %初始状态
F=[1 T 0 0;0 1 0 0;0 0 1 T;0 0 0 1];H=[1 0 0 0;0 0 1 0];
R=[400 0;0 400];
for k=1:99
x(:k+1)=F*x(:k);
Z(:k)=H*x(:
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5707 2014-05-06 07:54 NNSF.m
----------- --------- ---------- ----- ----
5707 1
相关资源
- Pattern Recognition and Machine Learning(高清
- MATLAB 编程 第二版 Stephen J. Chapman 著
- 均值滤波和FFT频谱分析Matlab代码
- 《MATLAB扩展编程》代码
- HDB3码、AMI码的MATLAB实现
- 3点GPS定位MATLAB仿真
- MATLAB数字信号处理85个实用案例精讲入
- matlab从入门到精通pdf94795
- 欧拉放大论文及matlab代码
- 跳一跳辅助_matlab版本
- 全面详解LTE MATLAB建模、仿真与实现
- MIMO-OFDM无线通信技术及MATLAB实现_孙锴
- MATLAB Programming for Engineers 4th - Chapman
- matlab 各种谱分析对比
- 分数阶chen混沌matlab程序
- 基于粒子群算法的非合作博弈的matl
- MATLAB车流仿真 包括跟驰、延误
- matlab空间桁架计算程序
- 基于MATLAB的图像特征点匹配和筛选
- DMA-TVP-FAVAR
- GPS信号的码捕获matlab代码.7z
- 一维光子晶体MATLAB仿真代码吸收率折
- newmark法源程序
- 传统关联成像、计算鬼成像matlab
- pri传统分选算法
- 摆动滚子推杆盘形凸轮设计
- 医学图像重建作业matlab源码
- Matlab实现混沌系统的控制
- 检测疲劳驾驶
- Matlab锁相环仿真-Phase Locked Loop.rar
评论
共有 条评论