Skip to main content
. 2019 Mar 28;19(7):1512. doi: 10.3390/s19071512
Algorithm 1 : VB-SRF.

(1) Initialization: x¯0|0, P¯0|0, Qv, Qw, η0, α1,0, α2,0

(2) Prediction:

x^k|k1=Fk1x¯k1|k1+uk1s

Pk|k1=Fk1P¯k1|k1Fk1T+Qv

Sk=HkPk|k1HkT+Qkm

ηk|k1=ρηk1,α1,k|k1=ρα1,k1,α2,k|k1=ρα2,k1

where ρ is the scale factor and 0<ρ1.

(3) Update: the update of VB-SRF utilizes iterate filtering framework.

(3.a) First set: x¯k|k(0)=x^k|k1, P¯k|k(0)=Pk|k1, ηk(0)=ηk|k1, α1,k(0)=α1,k|k1, α2,k(0)=α2,k|k1

(3.b) Calculate state estimation and its covariance using SRF when the measurement is from the target:

Kk=Pk|k1HkTSk1

εk=(bkTSk1bk)1/2bkTSk1(HkX^k|k1+ukm)

γk=(bkTSk1bk)1/2ρn(εk)

δk=(bkTSk1bk)1/2[2+εkρ2(εk)ρ22εk]

ρ2(εk)=εkeεk2/2+2π(εk2+1)Fnormal(εk)eεk2/2+2π(εk)Fnormal(εk)

x^k|k=(IKkHk)x^k|k1Kkukm+γkKkbk

Pk|k=(IKkHk)Pk|k1+δkKkbkbkTKkT

(3.c) For j=1:N, iterate the following N (N denotes iterated times) steps:

Calculate the fused state estimation and its covariance:

x¯k|k(j)=12πcηk(j1)x^k|k1+1c(1ηk(j1))f(θk|z1:k1)x^k|k

P¯k|k(j)=12πcηk(j1)(Pk|k+(x^k|kx¯k|k)(x^k|kx¯k|k)T)

+1c(1ηk(j1))f(θk|z1:k1)(Pk|k1+(x^k|k1x¯k|k(j))(x^k|k1x¯k|k(j))T)

  where c=12πηk(j1)+f(θk)(1ηk(j1)) is a normalization term, and f(θk|z1:k1) can be obtained using (A6).

Update parameters:

ln(ηk(j)1ηk(j))=ψ(α1,k(j1))ψ(α2,k(j1))+ln(1/2π)lnf(θk|x¯k|k(j))

α1,k(j)=α1,k(j1)+ηk(j)

α2,k(j)=α2,k(j1)ηk(j)+1

End for and set x¯k|k=x¯k|k(N), P¯k|k=P¯k|k(N), ηk=ηk(N), α1,k=α1,k(N), α2,k=α2,k(N).