Добавил:
Студент, если у тебя есть завалявшиеся работы, то не стесняйся, загрузи их на СтудентФайлс! Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Курсач / Kursach_rabochiy_1

.m
Скачиваний:
20
Добавлен:
16.07.2022
Размер:
2 Кб
Скачать
% Фильтр Калмана.
% СП - процесс авторегрессии первого порядка.
% Параметры процесса АР-1.
clc
PN=10000; % число отсчетов СП
mid=200.; % постоянная составляющая сообщения (СП)
sig=50.; % СКО сообщения (СП)
ro =0.9999; % коэффициент корреляции
sig_1=20.; % СКО погрешности наблюдений
Nro=50; % число отсчетов корреляционной функции
     % формирование начальных условий
K=zeros(1,PN);
X=zeros(1,PN);
Y1=zeros(1,PN);
Y2=zeros(1,PN);
Y3=zeros(1,PN);
y=0.;
   %НАЧАЛЬНЫЕ УСЛОВИЯ
y=ro*y+sig*sqrt(1.-ro^2.)*randn();
y1=mid+y;
y2=y1+sig_1*rand();
x=y2;
Disp1=0.;
AD=0.;
for k=1:1:PN;
    % модель СП и наблюдений
 %   if k >= 50000 mid=1000.;
 %   end;
 %   if k >= 5000 sig=150.;
 %   end;
 %   if k >= 5000 sig_1=100.;
 %   end;
 %   if k >= 50000 ro =0.999;
 %   end;
y=ro*y+sig*sqrt(1.-ro^2.)*randn();
y1=mid+y;
y2=y1+sig_1*randn();
a=(sig.^2.*(1.+(1.-ro.^2.)*(sig.^2/sig_1.^2.)-ro.^2.))/(ro.^2.);
b=((1.-ro.^2.)*(sig.^2.*sig_1.^2.))/(ro.^2.);
d=((-1.)*a/2.)+0.5*sqrt(a.^2.+4.*b);
kv=d/(sig_1.^2.);
    
    % ЗАПИСЬ МАССИВОВ НАБЛЮДЕНИЙ
 K(k)=k;
 Y1(k)=y1;
 Y2(k)=y2;
 
 % АЛГОРИТМ КАЛМАНОВСКОЙ ФИЛЬТРАЦИИ
 x=ro*x+kv*(y2-ro*x);
 y3=abs(y1-x);
 X(k)=x;
 Y3(k)=y3;
 if k>=1000
 Disp1=Disp1+(y1-x).^2.;
 AD=AD+y3/y1;
 end;
 end;
  OTN_1=(sig)/(sig_1)
  CKO=sqrt(Disp1)
 otn=(AD/double(PN-1000))*100.
 figure(1); grid on;hold on;
  plot(K,Y2,'g');
   title('СП','FontName','Courier','FontSize',14)
   xlabel('отсчеты СП','FontName','Courier','FontSize',14)
   ylabel('СП','FontName','Courier','FontSize',14) 
  figure(2); grid on;hold on;
 plot(K,X,'b',K,Y1,'r',K,Y3,'k');
  title('матожидание СП и его оценка ','FontName','Courier','FontSize',14)
   xlabel('отсчеты СП','FontName','Courier','FontSize',14)
   ylabel('m(i)','FontName','Courier','FontSize',14)
   legend ('оценка m(i)','m(i)','погрешность');
 figure(3); grid on;hold on;
  plot(K,Y3,'k');
  title('модуль абсолютной погрешности оценки ','FontName','Courier','FontSize',14)
  xlabel('отсчеты СП','FontName','Courier','FontSize',14)
  ylabel('Dl','FontName','Courier','FontSize',14)
  k=0:1:Nro;
  y=exp(log(ro)*k);
  figure(4); grid on;hold on;
  stem(k,y,'r');
 % plot(k,y,'k');
  title('КФ ','FontName','Courier','FontSize',14)
  xlabel('отсчеты СП','FontName','Courier','FontSize',14)
  ylabel('КФ','FontName','Courier','FontSize',14)
Соседние файлы в папке Курсач