文件

alphabetafilter.

用于对象跟踪的Alpha-Beta过滤器

描述

alphabetafilter.对象表示设计用于对象跟踪的alpha-beta滤波器。使用此跟踪器用于跟随线性运动模型并具有线性测量模型的平台。线性运动由恒定速度或恒定加速度限定。使用过滤器预测对象的未来位置,以减少检测到的位置的噪声,或者帮助将多个对象与其轨道相关联。

创建

描述

ABF.= alphabetafilter.为离散时间,2-D恒流系统创建一个alpha-beta滤波器。过滤器的运动模型对应于设置MotionModel.财产'2d恒定速度'.在本例中,过滤器状态采用该表单[x;vx;y;vy]

例子

ABF.= AlphaBetaFilter(名称、值、…)使用一个或多个指定过滤器的属性名称,价值对论点。任何未指定的属性都占用默认值。

特性

展开全部

目标运动模型,指定为字符向量或字符串。指定1D2D3d设置目标运动的尺寸。指定恒定的速度假设目标运动在每个模拟步骤中具有恒定速度。指定恒定的加速度假设目标运动在每个模拟步骤中具有恒定的加速度。

数据类型:字符|细绳

过滤状态,指定为标量或真实值m元向量。标量输入扩展到m元向量。状态向量是每个维度的连接状态。

每个运动模型的状态向量是列向量:

MotionModel财产 状态向量
'1d恒定速度' [x;vx]
'2d恒定速度' [x;vx;y;vy]
'3D恒定速度' [x;vx;y;v;Z;vz]
'1D常量加速' [x;vx;ax)
“二维恒定加速度” [x;vx;斧头;y;v;ay]
'3D不断加速' [x;vx;斧头;y;v;ay;Z;vz;AZ]

,例如,VX.表示速度X- 一个和斧头的加速度X方向。

例子:(200; 0.2; 150; 0.1; 0; 0.25]

数据类型:双倍的

状态错误协方差,指定为一个m——- - - - - -m矩阵在哪里m是过滤状态的大小。标量输入扩展到m——- - - - - -m矩阵。协方差矩阵表示过滤状态的不确定性。

例子:眼睛(6)

处理噪声协方差,指定为标量或D.——- - - - - -D.矩阵在哪里D.是运动的维度。例如,如果MotionModel.'2D恒定速度, 然后D.= 2.标量输入扩展到D.——- - - - - -D.矩阵。

例子:[20 0.1;0.1 1]

测量噪声协方差,指定为标量或D.——- - - - - -D.矩阵在哪里D.是运动的维度。例如,如果MotionModel.'2D恒定速度, 然后D.= 2.标量输入扩展到m——- - - - - -m矩阵。

例子:[20 0.1;0.1 1]

过滤器系数,指定为实值的标量或行向量。将任意标量输入扩展为行向量。如果你指定匀速MotionModel.属性,系数是(αβ).如果指定常量加速度MotionModel.属性,系数是[alpha beta gamma]

例子:0.1 [20]

对象功能

预测 预测状态和状态估计误差协方差
正确的 纠正状态和状态估计错误协方差
距离 测量和预测测量之间的距离
可能性 测量的可能性
克隆 创建相同的对象

例子

全部折叠

应用alpha-beta滤波器跟踪沿着x轴匀速移动的目标。

T = 0.1;= 100;N = 100;平台=分阶段。平台('motionmodel''速度'......'velocitysource''输入端口'“InitialPosition”,[100; 0; 0]);abfilt = phased.alphabetafilter('motionmodel''1d恒定速度');z =零(1,n);ZP =零(1,n);zc =零(1,n);为了m = 1:n pos = plat(t,[100 + 20 * randn; 0; 0]);Z(m)= POS(1);[〜,〜,ZP(m)] =预测(Abfilt,T);[〜,〜,zc(m)] =正确(Abfilt,Z(m));结尾t = t (0: n - 1) *;图(t,z,t,zp,t,zc)xlabel(“时间(s)”) ylabel ('位置(m)') 传奇(“真正的跟踪”“预测跟踪”'纠正轨道'......“位置”'最好'

应用alpha-beta滤波器以跟踪沿x轴恒定加速度移动的目标。

T = 0.1;a0 = 100;N = 100;平台=分阶段。平台('motionmodel''加速'......'AccelerationSource''输入端口'“InitialPosition”,[100; 0; 0]);abfilt = phased.alphabetafilter(......'motionmodel''1D常量加速'......'系数',[0.5 0.1]);z =零(1,n);ZP =零(1,n);zc =零(1,n);为了m = 1:n pos = plat(t,[100 + 20 * randn; 0; 0]);Z(m)= POS(1);[〜,〜,ZP(m)] =预测(Abfilt,T);[〜,〜,zc(m)] =正确(Abfilt,Z(m));结尾t = t (0: n - 1) *;图(t,z,t,zp,t,zc)xlabel(“时间(s)”) ylabel ('位置(m)');传奇(“真正的跟踪”“预测跟踪”'纠正轨道'......“位置”'最好');

应用alpha-beta滤波器来跟踪在三维空间中匀速移动的目标。

T = 0.1;= 100;N = 100;平台=分阶段。平台('motionmodel''速度'......'velocitysource''输入端口'“InitialPosition”,[100; 0; 0]);abfilt = phased.alphabetafilter('motionmodel'......'3D恒定速度'“状态”,零(6,1));z =零(3,n);ZP =零(3,n);ZC =零(3,n);为了m = 1:n z(:,m)=平台(t,[v0 + 20 * Randn; 0; 0]);[〜,〜,ZP(:,m)] =预测(Abfilt,T);[〜,〜,zc(:,m)] =正确(Abfilt,z(:,m));结尾t = t (0: n - 1) *;情节(t, Z (1:), t, Zp (1:), t,佐(1:))包含(“时间(s)”) ylabel ('沿x(m)'的位置') 传奇(“真正的跟踪”“预测跟踪”'纠正轨道'......“位置”'最好'

扩展能力

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

在R2018B中介绍