主题:帮忙看下此程序错误。。。总运行不了。
function[ residual,estimate ]=ghk_tracker
(X0,smoocof,inp, npts, T, nvar)
rn = 1. ; % 状态向量赋初值
X = X0 ;
theta = smoocof ; % 计算αβγ的值
w1 = 1. - (theta^3) ;
w2 = 1. 5 * (1. + theta) * ( (1. - t heta)^2) /T ;
w3 = ( (1. - theta)^3) / ( T^2) ;
% 装入状态转移矩阵PHI
PHI = [ 1. T ( T^2) / 2. ;0. 1. T ;0. 0. 1. ] ;
while rn < npts ; % 用状态转移矩阵预测下一状
态
XN = PHI * X;
error = (inp ( rn) + normrnd (0 ,nvar) ) - XN
(1) ;
residual ( rn) = error ;
tmp1 = w1 * error ;
tmp2 = w2 * error ;
tmp3 = w3 * error ; % 预测下一状态
X(1) = XN (1) + tmp1 ;
X(2) = XN (2) + tmp2 ;
X(3) = XN (3) + tmp3 ;
estimate ( rn) = X(1) ;
rn = rn + 1. ;
end
return
X0 --初始状态向量 输入
smoocof --期望的平滑系数 输入
inp --测量的目标位置数据序列 输入
npts --测量的目标位置数据个数 输入
T --采样周期 输入
nvar --期望的噪声方差 输入
residual --残留误差 输出
estimate --预测的目标位置数据 输出
数据:
inp=1+t^3+5t^2+5cos(2πt)
smoocof=0.9
nvar=0
T和npts,自己设置,可以是T=60,npts=40
X0不知应该赋多少,程序里说X0=1.
每次运行,错误总在(X0,smoocof,inp, npts, T, nvar)
请大家帮帮忙。
(X0,smoocof,inp, npts, T, nvar)
rn = 1. ; % 状态向量赋初值
X = X0 ;
theta = smoocof ; % 计算αβγ的值
w1 = 1. - (theta^3) ;
w2 = 1. 5 * (1. + theta) * ( (1. - t heta)^2) /T ;
w3 = ( (1. - theta)^3) / ( T^2) ;
% 装入状态转移矩阵PHI
PHI = [ 1. T ( T^2) / 2. ;0. 1. T ;0. 0. 1. ] ;
while rn < npts ; % 用状态转移矩阵预测下一状
态
XN = PHI * X;
error = (inp ( rn) + normrnd (0 ,nvar) ) - XN
(1) ;
residual ( rn) = error ;
tmp1 = w1 * error ;
tmp2 = w2 * error ;
tmp3 = w3 * error ; % 预测下一状态
X(1) = XN (1) + tmp1 ;
X(2) = XN (2) + tmp2 ;
X(3) = XN (3) + tmp3 ;
estimate ( rn) = X(1) ;
rn = rn + 1. ;
end
return
X0 --初始状态向量 输入
smoocof --期望的平滑系数 输入
inp --测量的目标位置数据序列 输入
npts --测量的目标位置数据个数 输入
T --采样周期 输入
nvar --期望的噪声方差 输入
residual --残留误差 输出
estimate --预测的目标位置数据 输出
数据:
inp=1+t^3+5t^2+5cos(2πt)
smoocof=0.9
nvar=0
T和npts,自己设置,可以是T=60,npts=40
X0不知应该赋多少,程序里说X0=1.
每次运行,错误总在(X0,smoocof,inp, npts, T, nvar)
请大家帮帮忙。