25 lines
765 B
Matlab
25 lines
765 B
Matlab
|
function observed_data = simul_state_space_model(T,R,Q,mf,nobs,H)
|
||
|
pp = length(mf);
|
||
|
mm = length(T);
|
||
|
rr = length(Q);
|
||
|
|
||
|
upper_cholesky_Q = chol(Q);
|
||
|
if nargin>5
|
||
|
upper_cholesky_H = chol(H);
|
||
|
end
|
||
|
|
||
|
state_data = zeros(mm,1);
|
||
|
|
||
|
if (nargin==5)
|
||
|
for t = 1:nobs
|
||
|
state_data = T*state_data + R* upper_cholesky_Q * randn(rr,1);
|
||
|
observed_data(:,t) = state_data(mf);
|
||
|
end
|
||
|
elseif (nargin==6)
|
||
|
for t = 1:nobs
|
||
|
state_data = T*state_data + R* upper_cholesky_Q * randn(rr,1);
|
||
|
observed_data(:,t) = state_data(mf) + upper_cholesky_H * randn(pp,1);
|
||
|
end
|
||
|
else
|
||
|
error('simul_state_space_model:: I don''t understand what you want!!!')
|
||
|
end
|