📄 chenmh_particle.m
字号:
function mean_val = Chenmh_Particle(x,A,H,Q,C);
N = 200; M = 5;
[xd,T] = size(x);
sd = size(A,1);
U = Chenmh_Gaussian(N,zeros(sd,1),10^2*eye(sd));
w = 1/N*ones(1,T);
mean_val = [];
for t = 1:T
U_temp = []; w_temp = [];
for i = 1:N
U_temp = [U_temp, Chenmh_Gaussian(M,Chenmh_Evolve(U(:,i),A),Q)];
end
for j = 1:size(U_temp,2)
w_temp = [w_temp, Chenmh_normpdf(x(:,t),Chenmh_Transfer(U_temp(:,j),H),C)];
end
w_temp = w_temp/sum(w_temp);
%% Resampling.
U = [];
w_cum = cumsum(w_temp);
for i = 1:N
value = rand(1);
k = 1;
while value>w_cum(k)
k = k + 1;
end
U = [U, U_temp(:,k)];
end
mean_val = [mean_val, U*ones(N,1)/N];
end
function s_new = Chenmh_Evolve(s_old,A);
s_new = A*s_old;
function x = Chenmh_Transfer(s,H);
x = H*s;
function pp = Chenmh_normpdf(x,mu,Sigma)
d = length(x);
pp = exp(-0.5*(x-mu)'*Sigma^-1*(x-mu))*((2*pi)^d*det(Sigma))^-0.5;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -