gmphd
高斯混合滤波器(GM)博士学位
描述
的gmphd
对象是一个滤波器实现的概率假设密度(博士)使用高斯成分的混合物。过滤器假定目标状态是高斯和代表这些国家使用高斯成分的混合物。您可以使用一个gmphd
滤波器跟踪扩展对象或目标点。在跟踪,一个点对象返回一个拘留/传感器扫描,和一个扩展的对象可以返回多个检测传感器扫描。
你可以直接创建一个gmphd
过滤器。你也可以初始化一个gmphd
过滤器使用trackerPHD
通过指定FilterInitializationFcn
的属性trackingSensorConfiguration
。您可以使用所提供的initcvgmphd
,initctgmphd
,initcagmphd
,initctrectgmphd
初始化函数。或者,您可以创建自己的初始化函数。
创建
描述
创建一个博士学位
= gmphdgmphd
过滤器使用默认属性值。
允许您指定状态和相应的状态协方差的高斯分布密度为每个组件。博士学位
= gmphd (stateCovariances)州
和stateCovariances
设置州
和StateCovariances
过滤器的属性。
还允许您指定过滤器使用一个或多个属性名称-值对。在报价附上每个属性的名字。博士学位
= gmphd (stateCovariances,名称,值
)
属性
州
- - - - - -每个组件的过滤器
P——- - - - - -N矩阵
每个组件的过滤器,指定为一个P——- - - - - -N矩阵,P国家和维数N是组件的数量。矩阵的每一列对应一个组件的状态。的默认值州
是一个6-by-2矩阵中,第一列的元素都是0,和第二列的元素都是1。
数据类型:单
|双
StateCovariances
- - - - - -状态估计误差协方差的每个组件过滤器
P——- - - - - -P——- - - - - -N数组
状态估计误差协方差滤波器,每个组件的指定为一个P——- - - - - -P——- - - - - -N数组,P国家和维数N是组件的数量。每一页(P——- - - - - -P数组的矩阵)对应于每个组件的协方差矩阵。的默认值StateCovariances
是6-by-6-by-2数组,其中每个页面(6-by-6矩阵)是一个单位矩阵。
数据类型:单
|双
StateTransitionFcn
- - - - - -状态转移函数
@constvel
(默认)|函数处理
状态转换函数,指定为一个函数处理。这个函数计算时间步的状态向量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
StateTransitionJacobianFcn
- - - - - -雅可比矩阵的状态转换函数
@constveljac
(默认)|函数处理
雅可比矩阵的状态转换函数,指定为一个函数处理。这个函数有相同的输入参数的状态转换函数。
如果
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
ProcessNoise
- - - - - -过程噪声协方差
(3)
(默认)|积极的实值标量|正定实值矩阵
过程噪声协方差:
当
HasAdditiveProcessNoise
是真正的
,指定过程噪声协方差作为一个实值标量或正定P——- - - - - -P矩阵。P状态向量的维数。当指定为一个标量,矩阵的多P——- - - - - -P单位矩阵。当
HasAdditiveProcessNoise
是假
,指定过程噪声协方差作为问——- - - - - -问矩阵。问过程噪声向量的大小。您必须指定ProcessNoise
在任何调用之前预测
对象的功能。
例子:[1.0 - 0.05;0.05 - 2)
HasAdditiveProcessNoise
- - - - - -模型添加剂过程噪声
假
(默认)|真正的
选择模型过程噪声作为添加剂,指定为真正的
或假
。当这个属性真正的
、过程噪声添加到状态向量。否则,噪音是纳入状态转换函数。
例子:真正的
HasExtent
- - - - - -表明如果组件
假
(默认)|真正的
表明如果组件有程度,指定为真正的
或假
。将此属性设置为真正的
如果过滤器是为了跟踪扩展对象。一个扩展的对象可以产生一个以上的每个传感器扫描测量。将此属性设置为假
如果过滤器只是为了跟踪点目标。
例子:真正的
MeasurementOrigin
- - - - - -从扩展测量对象的起源
“中心”
(默认)|“程度”
发放的测量扩展对象,指定为:
“中心”
——源自均值滤波器假设测量目标的状态。当国家不适用这种方法模型目标即使目标的程度可能会生成多个测量。“程度”
——不是集中在均值滤波器假设测量目标的状态。对于计算效率,计算预期的测量通常是作为指定的测量报告的函数度量模型的功能。
注意,函数的设置MeasurementFcn
和MeasurementJacobianFcn
是不同的“中心”
和“程度”
选项。看到的描述MeasurementFcn
和MeasurementJacobianFcn
为更多的细节。
依赖关系
要启用这个特性,设置HasExtent
财产“真正的”
。
数据类型:双
标签
- - - - - -标签中每个组件的混合物
[0 0]
(默认)|1 -N行向量的非负整数
标签中每个组件的混合物,指定为1×-N行向量的非负整数。N是混合组件的数量。每个组件可以只有一个标签,但是多个组件可以共享相同的标签。
例子:(1 2 3)
数据类型:单
|双
权重
- - - - - -重量每个组件的混合物
[1]
(默认)|1 -N行向量的积极的真正价值
每个组件的重量混合物,指定为1×-N行向量的积极的实际价值。N是混合组件的数量。每个组件的重量在相同的顺序标签
财产。
例子:(1.1 0.82 1.1)
数据类型:单
|双
检测
- - - - - -检测
D元胞数组的objectDetection
对象
检测,指定为一个D元胞数组的objectDetection
对象。您可以创建直接检测,或您可以获得检测传感器的输出对象,如radarSensor
,monostaticRadarSensor
,irSensor
,sonarSensor
。
数据类型:单
|双
MeasurementFcn
- - - - - -度量模型函数
@cvmeas
(默认)|函数处理
度量模型函数,指定为一个函数处理。这个函数指定了从状态过渡到测量。根据HasExtent
和MeasurementOrigin
需要指定属性,测量模型函数不同:
HasExtent
是假
,或HasExtent
是真正的
和MeasurementOrigin
是“中心”
。在这两种情况下,如果
HasAdditiveMeasurementNoise
是真正的
使用这些语法,指定的函数:z = measurementfcn (x)
z = measurementfcn (x,参数)
x
估计高斯状态的时间吗k
和x(:,我)
代表了我
th状态组件的混合物。的米——- - - - - -N矩阵z
相应的测量,z(:,我)
代表产生的测量我
组件。参数
是MeasurementParameters
提供的objectDetections
中设置检测
财产。如果
HasAdditiveMeasurementNoise
是假
使用这些语法,指定的函数:z = measurementfcn (x, v)
z = measurementfcn (x, v,参数)
v
是一个R维测量噪声向量。
HasExtent
是真正的
和MeasurementOrigin
是“程度”
。在这种情况下,预期的测量来自目标和依赖的程度的实际分布检测:如果
HasAdditiveMeasurementNoise
是真正的
指定函数使用:z = measurementfcn (x,检测)
x
估计高斯状态的时间吗k
和x(:,我)
代表了我
th状态组件的混合物。检测
是一个单元阵列的objectDetection
对象,z
是预期的测量。请注意,z (:, i, j)
必须返回预期的测量基于我
组件和th状态j
thobjectDetection
在检测
。如果
HasAdditiveMeasurementNoise
是假
指定函数使用:z = measurementfcn (x, v,检测)
v
是一个R维测量噪声向量。
HasExtent |
MeasurementOrigin |
测量功能 | 请注意 | ||||||
假 |
NA |
|
|
||||||
真正的 |
“中心” |
||||||||
真正的 |
“程度” |
|
|
数据类型:function_handle
MeasurementJacobianFcn
- - - - - -雅可比矩阵的测量功能
@cvmeasjac
(默认)|函数处理
雅可比矩阵的测量功能,指定为一个函数处理。根据HasExtent
和MeasurementOrigin
需要指定属性,测量雅可比矩阵函数不同:
HasExtent
是假
,或HasExtent
是真正的
和MeasurementOrigin
是“中心”
。在这两种情况下:如果
HasAdditiveMeasurmentNoise
是真正的
,指定雅可比矩阵函数使用这些语法:Jmx = measjacobianfcn (x)
Jmx = measjacobianfcn (x,参数)
x
是一个状态组件在时间吗k
和Jmx
是米——- - - - - -P雅可比矩阵的测量功能的状态。米测量的尺寸。参数
是MeasurementParameters
提供的objectDetections
中设置检测
财产。如果
HasAdditiveMeasurmentNoise
是假
,指定雅可比矩阵函数使用这些语法:[Jmx, Jmv] = measjacobianfcn (x, v)
[Jmx, Jmv] = measjacobianfcn (x, v,参数)
v
是一个R维测量噪声向量,Jmv
是米——- - - - - -R雅可比矩阵的测量对测量噪声函数。
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)
必须定义相对应的国家可比j
thobjectDetection
在检测
。Jmv (:,:, j)
定义相对应的雅可比矩阵测量噪声j
thobjectDetection
在检测
。
HasExtent |
MeasurementOrigin |
测量雅可比矩阵函数 | 请注意 | ||||||
假 |
NA |
|
x 只有一个高斯组件的混合物。 |
||||||
真正的 |
“中心” |
||||||||
真正的 |
“程度” |
|
|
数据类型:function_handle
HasAdditiveMeasurementNoise
- - - - - -模型添加剂测量噪声
假
(默认)|真正的
选择模型测量噪声作为添加剂,指定为真正的
或假
。当这个属性真正的
、测量噪声添加到状态向量。否则,噪音是纳入测量功能。
例子:真正的
MaxNumDetections
- - - - - -最大数量的检测
1000年
(默认)|正整数
最大数量的检测gmphd
过滤器可以作为输入,指定为一个正整数。
例子:50
数据类型:单
|双
MaxNumComponents
- - - - - -最大数量的组件
1000年
(默认)|正整数
最大数量的组件gmphd
过滤器可以维护,指定为一个正整数。
数据类型:单
|双
对象的功能
预测 |
预测概率假设密度博士过滤器 |
correctUndetected |
正确博士过滤器没有检测假设 |
正确的 |
正确的博士筛选与检测 |
可能性 |
对数似协会检测电池和组件之间的密度 |
附加 |
添加两个博士过滤器对象 |
合并 |
合并组件的密度博士过滤器 |
规模 |
规模组件的重量密度 |
修剪 |
删除过滤器通过删除选定的组件 |
labeledDensity |
保持与一个给定的组件标签ID |
extractState |
从博士过滤器中提取目标状态估计 |
克隆 |
创建复制博士过滤器对象 |
例子
运行gmphd过滤点对象
用两个三维恒定速度组件创建一个过滤器。一个组件的初始状态是(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年。
扩展功能
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
代码生成配置必须允许递归使用
合并
方法。
另请参阅
ggiwphd
|initcagmphd
|initctgmphd
|initctrectgmphd
|initcvgmphd
|partitionDetections
|trackerPHD
|trackingSensorConfiguration
介绍了R2019b
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。