initcvekf

从检测报告中创建恒速扩展卡尔曼滤波器

描述

例子

过滤器= initcvekf(检测)创建并初始化一个恒速扩展卡尔曼过滤器从信息包含在检测报告。有关扩展卡尔曼滤波的更多信息,请参见trackingEKF

例子

全部折叠

从初始检测报告创建并初始化3-D恒速扩展卡尔曼滤波对象。

根据目标位置的初始三维测量(10、20、−5)创建检测报告。

检测= objectDetection (0 (10、20; 5)“MeasurementNoise”,1.5 *眼(3),“SensorIndex”,1“ObjectClassID”,1“ObjectAttributes”{“跑车”,5});

从检测报告创建新的过滤器。

过滤器= initcvekf(检测)
过滤器= trackingEKF属性:状态:x1双[6]StateCovariance: [6 x6双]StateTransitionFcn: @constvel StateTransitionJacobianFcn: @constveljac ProcessNoise: [3 x3双]HasAdditiveProcessNoise: 0 MeasurementFcn: @cvmeas MeasurementJacobianFcn: @cvmeasjac MeasurementNoise: [3 x3双]HasAdditiveMeasurementNoise: 1

显示筛选器状态。

filter.State
ans =6×110 0 20 0 -5 0

显示状态协方差。

filter.StateCovariance
ans =6×60000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000

从球坐标三维测量的初始检测报告初始化三维等速扩展卡尔曼滤波器。如果要使用球坐标,则必须提供一个测量参数结构作为检测报告的一部分框架字段设置为“球”。将目标方位角设置为45度,仰角设置为-10度,射程设置为1000米,射程设置为-4.0米/秒。

帧=“球”;sensorpos = (-40,0)。';sensorvel = (0; 5。0);宽松=眼(3);measparms =结构('帧',帧,“OriginPosition”sensorpos,“OriginVelocity”sensorvel,'取向'宽松的,'HasVelocity',真的,'HasElevation',真正的);量= (45;-10;1000;4);measnoise =诊断接头(3.0、2.5、2、1.0。^ 2);检测= objectDetection(0,量,“MeasurementNoise”,measnoise,“MeasurementParameters”measparms)
测量:[4x1双]Measurement: [4x4双]SensorIndex: 1 ObjectClassID: 0 MeasurementParameters: [1x1 struct] ObjectAttributes: {}
FILTER = initcvekf(检测);

过滤状态向量。

disp (filter.State)
721.3642 -2.7855 656.3642 2.2145 -173.6482 0.6946

输入参数

全部折叠

检测报告,指定为objectDetection宾语。

例子:检测= objectDetection(0,[1; 4.5; 3], 'MeasurementNoise',[1.0 0 0 0 2.0 0 0 0 1.5])

输出参数

全部折叠

扩展卡尔曼滤波,返回为trackingEKF宾语。

算法

  • 的函数计算过程噪声矩阵假设一第二时间步长,为1米/秒的加速度的标准偏差2

  • 你可以用这个函数FilterInitializationFcn财产的trackerGNN要么trackerTOMHT宾语。

扩展功能

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

介绍了R2018b