- Scilab Help
- Signal Processing
- Filters
- analpf
- buttmag
- casc
- cheb1mag
- cheb2mag
- convol
- ell1mag
- eqfir
- eqiir
- faurre
- ffilt
- filt_sinc
- filter
- find_freq
- frmag
- fsfirlin
- group
- hilbert
- iir
- iirgroup
- iirlp
- kalm
- lev
- levin
- lindquist
- remez
- remezb
- srfaur
- srkf
- sskf
- syredi
- system
- trans
- wfir
- wfir_gui
- wiener
- wigner
- window
- yulewalk
- zpbutt
- zpch1
- zpch2
- zpell
Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
srkf
square root Kalman filter
Syntax
[x1,p1]=srkf(y,x0,p0,f,h,q,r)
Arguments
- f, h
current system matrices
- q, r
covariance matrices of dynamics and observation noise
- x0, p0
state estimate and error variance at t=0 based on data up to t=-1
- y
current observation Output
- x1, p1
updated estimate and error covariance at t=1 based on data up to t=0
Description
This function is the square root form of Kalman filter. It is more efficient than the simple Kalman filter in term of numerical stability,
especially if dynamic noise covariance q
is small. In effect, that can provock an indefinite numerical representation
of the state covariance matrix p
, whereas p
is positive definite. So, the goal of srkf
is to propagate p
using a Cholesky factorization algorithm. These factors can be updated at each step of the algorithm, which
allows to keep p
in its basic form.
Example
f=[0 0 1; 0 1 0; 2 3 4]; //State matrix g=[1;-1;1]; //Input matrix h=[1 1 0; 0 1 0; 0 0 0]; //Output matrix Q=[3 2 1; 2 2 1; 1 1 1]; //Covariance matrix of dynamic noise R=[2 1 1; 1 1 1; 1 1 2]; //Covariance matrix of observation noise // Initialisation p0=[6 3 2; 3 5 2; 2 2 4]; x0=[1;1;1]; y=[2 8 7]'; // Current observation output matrix [x1,p1]=srkf(y,x0,p0,f,h,Q,R)
Report an issue | ||
<< srfaur | Filters | sskf >> |