主要内容

trackingGSF

目标跟踪的高斯和滤波器

描述

trackingGSF对象表示一种用于目标跟踪的高斯和滤波器。你可以用一组有限高斯和分量来定义状态概率密度函数。使用此过滤器跟踪对象,需要多模型描述,由于不完整的状态可观测通过测量。例如,当检测只包含角度测量时,这个滤波器可以用作距离参数化扩展卡尔曼滤波器。

创建

描述

= trackingGSF返回带有两个恒定速度扩展卡尔曼滤波器的高斯和滤波器(trackingEKF),初始权重相等。

例子

= trackingGSF (trackingFilters中指定滤波器的高斯分量trackingFilters.假设滤波器的初始权值相等。

= trackingGSF (trackingFiltersmodelProbabilities中高斯分量的初始权值modelProbabilities并设置ModelProbabilities财产。

= trackingGSF (___、“MeasurementNoise”measNoise)指定滤波器的测量噪声。的MeasurementNoise属性为每个高斯分量设置。

属性

全部展开

此属性是只读的。

滤波器状态的加权估计,指定为实值元向量。这种状态是根据中滤波器的加权组合来估计的TrackingFilters.使用ModelProbabilities更改权重。

例子:(200; 0.2)

数据类型:|

此属性是只读的。

状态误差协方差,指定为正定实值——- - - - - -矩阵,是筛选器状态的大小。协方差矩阵表示滤波器状态的不确定性。这种状态协方差是基于中滤波器的加权组合估计的TrackingFilters.使用ModelProbabilities更改权重。

例子:(20 0.1;0.1 - 1)

数据类型:|

过滤器列表,指定为跟踪过滤器的单元格数组。在创建对象时指定这些过滤器。默认情况下,过滤器具有相同的概率。指定modelProbabilities如果过滤器有不同的概率。

如果你想要trackingGSF使用单精度浮点变量的过滤器,指定使用单精度的第一个过滤器。例如,

@constvel filter1 = trackingEKF(“StateTransitionFcn”,“状态”,单([1;2;3;4]));@constvel filter2 = trackingEKF(“StateTransitionFcn”,“状态”,[2;1;3,1]);过滤器= trackingGSF ({filter1, filter2})

请注意

每个过滤器的状态必须具有相同的大小和相同的物理含义。

数据类型:细胞

每个过滤器的权重,指定为从0到1的概率向量。默认情况下,过滤器中每个组件的权重是相等的。

数据类型:|

测量噪声协方差,指定为一个正标量或正定实值矩阵。矩阵是一个边长等于测量值的正方形。将一个标量输入扩展为一个方阵对角矩阵。

指定MeasurementNoise在任何电话之前正确的函数。在第一次呼叫之后正确的,您可以选择将测量噪声指定为标量。在这种情况下,测量噪声矩阵是R——- - - - - -R单位矩阵,R为测量的次数。

例子:0.2

数据类型:|

对象的功能

预测 预测跟踪滤波器的状态和状态估计误差协方差
正确的 使用跟踪滤波器校正状态和状态估计误差协方差
correctjpda 使用跟踪滤波器和JPDA校正状态和状态估计误差协方差
距离 跟踪滤波器的电流和预测测量值之间的距离
可能性 跟踪滤波器测量的可能性
克隆 创建重复跟踪过滤器

例子

全部折叠

这个例子展示了如何创建和运行trackingGSF过滤器。指定三个扩展卡尔曼滤波器(ekf)作为高斯和滤波器的分量。调用预测正确的用于跟踪对象并根据测量值修正状态估计的函数。

创建三个ekf,每个ekf都有一个分布的状态[0, 0, 0, 0, 0, 0)运行位置测量。控件的输入trackingGSF过滤器。

过滤器=细胞(3,1);过滤器{1}= trackingEKF (@constvel @cvmeas,兰德(6,1),“MeasurementNoise”、眼睛(3));过滤器{2}= trackingEKF (@constvel @cvmeas,兰德(6,1),“MeasurementNoise”、眼睛(3));过滤器{3}= trackingEKF (@constvel @cvmeas,兰德(6,1),“MeasurementNoise”、眼睛(3));—= trackingGSF(过滤器);

调用预测得到滤波器的预测状态和协方差。使用0.1秒的时间步长。

[x_pred, P_pred] = predict(gsf,0.1);

调用正确的给定的测量值。

量= (0.5;0.2;0.3);[xCorr, pCorr] =正确(确定量);

计算过滤器和不同测量值之间的距离。

d =距离(确定,(0,0,0));

参考文献

Alspach, Daniel和Harold Sorenson。使用高斯和近似的非线性贝叶斯估计自动控制学报。1972年第17卷第4期439-448页。

restitic, B., Arulampalam, S. and McCarthy, J., 2002。仅使用距离测量的目标运动分析:算法、性能和在ISAR数据中的应用。信号处理,32 (2),pp.273-296。

桃子,N.”使用一组距离参数化扩展卡尔曼滤波器的纯方位跟踪。控制理论与应用,第142期。1(1995): 73 - 80。

扩展功能

C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。

介绍了R2018b