文档

gmphd

高斯混合滤波器(GM)博士学位

描述

gmphd对象是一个滤波器实现的概率假设密度(博士)使用高斯成分的混合物。过滤器假定目标状态是高斯和代表这些国家使用高斯成分的混合物。您可以使用一个gmphd滤波器跟踪扩展对象或目标点。在跟踪,一个点对象返回一个拘留/传感器扫描,和一个扩展的对象可以返回多个检测传感器扫描。

你可以直接创建一个gmphd过滤器。你也可以初始化一个gmphd过滤器使用trackerPHD通过指定FilterInitializationFcn的属性trackingSensorConfiguration。您可以使用所提供的initcvgmphd,initctgmphd,initcagmphd,initctrectgmphd初始化函数。或者,您可以创建自己的初始化函数。

创建

描述

博士学位= gmphd创建一个gmphd过滤器使用默认属性值。

博士学位= gmphd (stateCovariances)允许您指定状态和相应的状态协方差的高斯分布密度为每个组件。stateCovariances设置StateCovariances过滤器的属性。

例子

博士学位= gmphd (stateCovariances,名称,值)还允许您指定过滤器使用一个或多个属性名称-值对。在报价附上每个属性的名字。

属性

全部展开

每个组件的过滤器,指定为一个P——- - - - - -N矩阵,P国家和维数N是组件的数量。矩阵的每一列对应一个组件的状态。的默认值是一个6-by-2矩阵中,第一列的元素都是0,和第二列的元素都是1。

数据类型:|

状态估计误差协方差滤波器,每个组件的指定为一个P——- - - - - -P——- - - - - -N数组,P国家和维数N是组件的数量。每一页(P——- - - - - -P数组的矩阵)对应于每个组件的协方差矩阵。的默认值StateCovariances是6-by-6-by-2数组,其中每个页面(6-by-6矩阵)是一个单位矩阵。

数据类型:|

状态转换函数,指定为一个函数处理。这个函数计算时间步的状态向量k在时间步的状态向量k1。还可以包括噪声值的函数。

  • 如果HasAdditiveProcessNoise真正的使用这些语法,指定的函数:

    x (k) = transitionfcn (x (k - 1))
    x (k) = transitionfcn (x (k - 1), dT)
    在哪里x (k)是状态估计的时间吗k,dT是时间步。

  • 如果HasAdditiveProcessNoise使用这些语法,指定的函数:

    x (k) = transitionfcn (x (k - 1), w (k - 1))
    x (k) = transitionfcn (x (k - 1), w (k - 1), dT)
    在哪里x (k)是状态估计的时间吗k,w (k)过程噪声时间吗k,dT是时间步。

例子:@constacc

数据类型:function_handle

雅可比矩阵的状态转换函数,指定为一个函数处理。这个函数有相同的输入参数的状态转换函数。

  • 如果HasAdditiveProcessNoise真正的,指定雅可比矩阵函数使用这些语法:

    Jx (k) = statejacobianfcn (x (k))
    Jx (k) = statejacobianfcn (x (k), dT)
    在哪里x (k)国家在时间吗k,dT是时间步,Jx (k)表示状态转换函数的雅可比矩阵的状态。雅可比矩阵是一个P——- - - - - -P矩阵时k,在那里P是国家的维度。

  • 如果HasAdditiveProcessNoise,指定雅可比矩阵函数使用这些语法:

    (Jx (k) (Jw (k)] = statejacobianfcn (x (k), w (k))
    (Jx (k) (Jw (k)] = statejacobianfcn (x (k), w (k), dT)
    在哪里w (k)是一个元向量的过程噪声在时间k。不同添加剂过程噪声的情况下,这个过程噪声向量在非附加噪声的情况下不需要有相同的维度作为状态向量。

    Jw (k)表示P——- - - - - -雅可比矩阵的预测状态的过程噪声的元素,P是国家的维度。

如果未指定,则计算雅克比通过数值差分的每个调用预测函数。这个计算可以增加处理时间和数值不准确。

例子:@constaccjac

数据类型:function_handle

过程噪声协方差:

  • HasAdditiveProcessNoise真正的,指定过程噪声协方差作为一个实值标量或正定P——- - - - - -P矩阵。P状态向量的维数。当指定为一个标量,矩阵的多P——- - - - - -P单位矩阵。

  • HasAdditiveProcessNoise,指定过程噪声协方差作为——- - - - - -矩阵。过程噪声向量的大小。您必须指定ProcessNoise在任何调用之前预测对象的功能。

例子:[1.0 - 0.05;0.05 - 2)

选择模型过程噪声作为添加剂,指定为真正的。当这个属性真正的、过程噪声添加到状态向量。否则,噪音是纳入状态转换函数。

例子:真正的

表明如果组件有程度,指定为真正的。将此属性设置为真正的如果过滤器是为了跟踪扩展对象。一个扩展的对象可以产生一个以上的每个传感器扫描测量。将此属性设置为如果过滤器只是为了跟踪点目标。

例子:真正的

发放的测量扩展对象,指定为:

  • “中心”——源自均值滤波器假设测量目标的状态。当国家不适用这种方法模型目标即使目标的程度可能会生成多个测量。

  • “程度”——不是集中在均值滤波器假设测量目标的状态。对于计算效率,计算预期的测量通常是作为指定的测量报告的函数度量模型的功能。

注意,函数的设置MeasurementFcnMeasurementJacobianFcn是不同的“中心”“程度”选项。看到的描述MeasurementFcnMeasurementJacobianFcn为更多的细节。

依赖关系

要启用这个特性,设置HasExtent财产“真正的”

数据类型:

标签中每个组件的混合物,指定为1×-N行向量的非负整数。N是混合组件的数量。每个组件可以只有一个标签,但是多个组件可以共享相同的标签。

例子:(1 2 3)

数据类型:|

每个组件的重量混合物,指定为1×-N行向量的积极的实际价值。N是混合组件的数量。每个组件的重量在相同的顺序标签财产。

例子:(1.1 0.82 1.1)

数据类型:|

检测,指定为一个D元胞数组的objectDetection对象。您可以创建直接检测,或您可以获得检测传感器的输出对象,如radarSensor,monostaticRadarSensor,irSensor,sonarSensor

数据类型:|

度量模型函数,指定为一个函数处理。这个函数指定了从状态过渡到测量。根据HasExtentMeasurementOrigin需要指定属性,测量模型函数不同:

  1. HasExtent,或HasExtent真正的MeasurementOrigin“中心”。在这两种情况下,

    • 如果HasAdditiveMeasurementNoise真正的使用这些语法,指定的函数:

      z = measurementfcn (x)
      z = measurementfcn (x,参数)
      在哪里P——- - - - - -N矩阵x估计高斯状态的时间吗kx(:,我)代表了th状态组件的混合物。的——- - - - - -N矩阵z相应的测量,z(:,我)代表产生的测量组件。参数MeasurementParameters提供的objectDetections中设置检测财产。

    • 如果HasAdditiveMeasurementNoise使用这些语法,指定的函数:

      z = measurementfcn (x, v)
      z = measurementfcn (x, v,参数)
      在哪里v是一个R维测量噪声向量。

  2. HasExtent真正的MeasurementOrigin“程度”。在这种情况下,预期的测量来自目标和依赖的程度的实际分布检测:

    • 如果HasAdditiveMeasurementNoise真正的指定函数使用:

      z = measurementfcn (x,检测)
      在哪里P——- - - - - -N矩阵x估计高斯状态的时间吗kx(:,我)代表了th状态组件的混合物。检测是一个单元阵列的objectDetection对象,z是预期的测量。请注意,z (:, i, j)必须返回预期的测量基于组件和th状态jthobjectDetection检测

    • 如果HasAdditiveMeasurementNoise指定函数使用:

      z = measurementfcn (x, v,检测)
      在哪里v是一个R维测量噪声向量。

HasExtent MeasurementOrigin 测量功能 请注意
NA

HasAdditiveMeasurementNoise 语法
真正的

z = measurementfcn (x)

z = measurementfcn (x, para)

z = measurementfcn (x, v)

z = measurementfcn (x, v, para)

x(:,我)代表了th状态组件的混合物。z(:,我)代表产生的测量组件。

真正的 “中心”
真正的 “程度”

HasAdditiveMeasurementNoise 语法
真正的 z = measurementfcn (x,检测)
z = measurementfcn (x, v,检测)

x(:,我)代表了th状态组件的混合物。z (:, i, j)必须返回预期的测量基于组件和th状态jthobjectDetection检测

数据类型:function_handle

雅可比矩阵的测量功能,指定为一个函数处理。根据HasExtentMeasurementOrigin需要指定属性,测量雅可比矩阵函数不同:

  1. HasExtent,或HasExtent真正的MeasurementOrigin“中心”。在这两种情况下:

    • 如果HasAdditiveMeasurmentNoise真正的,指定雅可比矩阵函数使用这些语法:

      Jmx = measjacobianfcn (x)
      Jmx = measjacobianfcn (x,参数)
      在哪里P元向量x是一个状态组件在时间吗kJmx——- - - - - -P雅可比矩阵的测量功能的状态。测量的尺寸。参数MeasurementParameters提供的objectDetections中设置检测财产。

    • 如果HasAdditiveMeasurmentNoise,指定雅可比矩阵函数使用这些语法:

      [Jmx, Jmv] = measjacobianfcn (x, v)
      [Jmx, Jmv] = measjacobianfcn (x, v,参数)
      在哪里v是一个R维测量噪声向量,Jmv——- - - - - -R雅可比矩阵的测量对测量噪声函数。

  2. HasExtent真正的MeasurementOrigin“程度”。在这种情况下,预期的测量来自目标和依赖的程度的实际分布检测。测量雅可比矩阵函数必须支持这两个语法之一:金宝app

    • 如果HasAdditiveMeasurmentNoise真正的,指定使用:雅可比矩阵的函数

      Jmx = measjacobianfcn (x,检测)
      在哪里x是一个状态估计组件在时间吗k检测是一组检测定义为一个单元阵列的objectDetection对象。Jmx表示——- - - - - -P——- - - - - -D雅可比矩阵的测量功能的状态。测量的尺寸,P是国家层面的,D的数量是objectDetection对象检测

    • 如果HasAdditiveMeasurmentNoise,指定使用:雅可比矩阵的函数

      [Jmx, Jmv] = measjacobianfcn (x, v,检测)
      在哪里v是一个R维测量噪声向量,Jmv——- - - - - -R——- - - - - -D雅可比矩阵的测量对测量噪声函数。

    请注意,Jmx (:,:, j)必须定义相对应的国家可比jthobjectDetection检测Jmv (:,:, j)定义相对应的雅可比矩阵测量噪声jthobjectDetection检测

HasExtent MeasurementOrigin 测量雅可比矩阵函数 请注意
NA

HasAdditiveMeasurementNoise 语法
真正的

Jmx = measjacobianfcn (x)

Jmx = measjacobianfcn (x, para)

[Jmx, Jmv] = measjacobianfcn (x, v)

[Jmx, Jmv] = measjacobianfcn (x, v, para)

x只有一个高斯组件的混合物。
真正的 “中心”
真正的 “程度”

HasAdditiveMeasurementNoise 语法
真正的 z = measurementfcn (x,检测)
z = measurementfcn (x, v,检测)

Jmx (:,:, j)定义了雅可比矩阵对应状态jthobjectDetection检测Jmv (:,:, j)定义相对应的雅可比矩阵测量噪声jthobjectDetection检测

数据类型:function_handle

选择模型测量噪声作为添加剂,指定为真正的。当这个属性真正的、测量噪声添加到状态向量。否则,噪音是纳入测量功能。

例子:真正的

最大数量的检测gmphd过滤器可以作为输入,指定为一个正整数。

例子:50

数据类型:|

最大数量的组件gmphd过滤器可以维护,指定为一个正整数。

数据类型:|

对象的功能

预测 预测概率假设密度博士过滤器
correctUndetected 正确博士过滤器没有检测假设
正确的 正确的博士筛选与检测
可能性 对数似协会检测电池和组件之间的密度
附加 添加两个博士过滤器对象
合并 合并组件的密度博士过滤器
规模 规模组件的重量密度
修剪 删除过滤器通过删除选定的组件
labeledDensity 保持与一个给定的组件标签ID
extractState 从博士过滤器中提取目标状态估计
克隆 创建复制博士过滤器对象

例子

全部折叠

用两个三维恒定速度组件创建一个过滤器。一个组件的初始状态是(0,0,0,0,0,0)。其他组件的初始状态[1,0,1,0;1;0]。每个组件初始化协方差与协方差等于1位置和速度等于100。

州= [0 (6,1)[1,0,1,0;1;0]];cov1 =诊断接头([1 100 1 100 1 100]);协方差=猫(3 cov1 cov1);博士= gmphd(协方差,“StateTransitionFcn”@constvel,“StateTransitionJacobianFcn”@constveljac,“MeasurementFcn”@cvmeas,“MeasurementJacobianFcn”@cvmeasjac,“ProcessNoise”眼睛(3),“HasAdditiveProcessNoise”、假);

0.1预测滤波器时间步。

预测(博士,0.1);

定义三个检测使用ojbectDetection

rng (2019);检测=细胞(3,1);检测{1}= objectDetection (0, 1, 1, 1) + randn (3,1));检测{2}= objectDetection (0, 0, 0, 0) + randn (3,1));检测{3}= objectDetection (0, 4, 5, 5] + randn (3,1));博士学位。Detections = detections;

计算每一个检测的可能性。点目标筛选,检测的分区是不必要的,每个检测占据了一个细胞。因此,detectionIndices是一个单位矩阵。结果发现1和2的可能性高于检测3,因为他们更接近的组件。

detectionIndices =逻辑(眼(3));detectionIndices logLikelihood =可能性(博士)
logLikelihood =2×3-5.2485 -4.7774 -22.8899 -4.5171 -5.0008 -17.3973

正确的按比例缩小的可能性的过滤器。

lhood = exp (logLikelihood);lhood = lhood. /笔(lhood 2);正确的(博士detectionIndices lhood);

将组件与合并阈值等于1。

合并(博士,1);

提取状态估计与提取阈值等于0.5。

minWeight = 0.5;minWeight targetStates = extractState(博士);(ts1, ts2) = targetStates.State;

可视化结果。

%提取测量。d =[检测{}):;测量= [d.Measurement];%绘制测量和估计。图()plot3(测量(1:),测量(2:),测量(3:)“x”,“MarkerSize”10“MarkerEdgeColor”,“b”);持有;plot3(壹空间(1),壹空间(3),壹空间(5),“罗”);持有;plot3 (ts2 (1), ts2 (3), ts2 (5),“罗”);包含(“x”)ylabel (“y”)zlabel (“z”)举行;传奇(“检测”,“组件”)

引用

[1]Vo, b . N。,W. K. Ma. "The Gaussian Mixture Probability Hypothesis Density Filter."IEEE信号处理卷,54岁,11号,第4104 - 4091页,2006年。

[2]Granstrom, K。,C. Lundquist, and O. Orguner. "Extended Target Tracking Using a Gaussian-mixture PHD filter."IEEE航空航天和电子系统48卷4号,第3286 - 3268页,2012年。

扩展功能

介绍了R2019b