1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| %% Adaptive Kalman filter
clear all;
%% Voltage values
A=[0.39, 0.5, 0.48, 0.29, 0.25, 0.32, 0.34, 0.48, 0.41, 0.45,0.39, 0.5, 0.48, 0.29, 0.25, 0.32, 0.34, 0.48, 0.41, 0.45];
%% First Order Adaptive Kalman Filter
x_inter=zeros(1,20);
P_inter=1;
Q=0.382;
zk=0.39+0.11122.* randn(1,20)
R=0.1;
for t=1:20
% **************Update**************
K=P_inter/((P_inter+R));
x_current(t)=x_inter(t)+K*(zk(t)-x_inter(t));
P_current=(1-K)*P_inter;
% **************Predict**************
x_inter(t)=x_current(t);
P_inter=P_current+Q;
end
real_value=A
estimated=x_current
mse = (sum(x_current.^2))/20
hold on;
plot(A,'b');
plot(x_inter,'r');
plot(x_current,'g'); |
Partager