Vladislav Basimov Deleted File  almost 8 years ago

Commit id: fadc9f71514fdb01b8effe96e8e0ad4f3b49ce95

deletions | additions      

         

\text{Код на языке MATLAB:}  \begin{verbatim}  clear all;  N=250; % количество измерений  a = 0.5; % константа  b = 0.93; % константа  sigmaPsi=1; % некорр. помехи.  sigmaEta=50; %ошибка измерений // Для нее посчитаем сред значение  k=1:N;  x=k;  x(1)=0; %Начальное значение  y(1)=x(1) + normrnd(0,sigmaEta);% доб. шум через ген. псевдослуч. числа по норм. з-ну  %Фильтр калмана  xOpt(1) = y(1);  eOpt(1) = sigmaEta;  xShow(1)= xOpt(1);  Value = 100;  %minValue = -100;  for t=1:(N-1)  x(t+1)=(a*x(t)+sin(t)*t)+normrnd(0,sigmaPsi)  y(t+1)=b*x(t+1)+normrnd(0,sigmaEta) %накладываем ошибку на текущее измерение    eOpt(t+1)=sqrt((sigmaEta^2)*(eOpt(t)^2+sigmaPsi^2)/(sigmaEta^2+eOpt(t)^2+sigmaPsi^2));  K(t+1)=(eOpt(t+1))^2/sigmaEta^2;  xOpt(t+1)=(a*xOpt(t)+sin(t)*t)*(1-K(t+1))+K(t+1)*y(t+1)  if xOpt(t+1) >= Value  xShow(t+1) = Value  elseif xOpt(t+1) <= -Value  xShow(t+1) = -Value  else  xShow(t+1)= xOpt(t+1);  end  end;  plot(k,x,k,y,k,xShow)  \end{verbatim}