主要内容

initcvekf

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

描述

例子

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

该函数初始化一个恒定速度状态相同的约定constvelcvmeas,(x;vx;y;vy;z;vz]。

例子

全部折叠

创建并初始化一个三维常速扩展卡尔曼滤波对象从最初的检测报告。

创建初始三维测量、检测报告(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 MaxNumOOSMSteps: 0 EnableSmoothing: 0

显示过滤器的状态。

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

显示状态协方差。

filter.StateCovariance
ans =6×61.5000 0 0 0 0 0 0 0 0 0 0 0 0 1.5000 100.0000 100.0000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100.0000 1.5000

初始化一个3 d常速扩展卡尔曼滤波器从最初检测报告由球坐标的三维测量。如果你想使用球坐标,那么您必须提供一个测量参数结构的检测报告框架字段设置为“球”。设定目标的方位角45度,-10度的仰角,范围1000米,速度范围为-4.0 m / s。

帧=“球”;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)
检测与属性= objectDetection:时间:0测量:x1双[4]MeasurementNoise: [4 x4双]SensorIndex: 1 ObjectClassID: 0 MeasurementParameters: [1 x1 struct] ObjectAttributes: {}
过滤器= 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;2.0 0 0;0 0 1.5])

输出参数

全部折叠

扩展卡尔曼滤波器,作为一个返回trackingEKF对象。

算法

  • 函数计算过程噪声矩阵假设一秒钟时间步和加速1 m / s的标准差2

  • 你可以使用这个函数FilterInitializationFcn财产的multiObjectTracker对象。

扩展功能

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

介绍了R2017a