monte_carlo.m

来自「雷达数据处理的重要算法之一」· M 代码 · 共 91 行

M
91
字号
%Monte-Carlo仿真
clear,clc,close all
n=200;
%----------------
tic;
for kk=1:n
    
    cs;
    
   y(:,:,kk)=x;  
end
xx1=y;
time1=toc
%----------------
tic;
for kk=1:n
    
    ccs;
 
   y(:,:,kk)=x;  
end 
xx2=y;
time2=toc
%-------------------------------------------------------------
for i=1:length(z)
    ss1=0;
    ss2=0;
    ss3=0;
    ss4=0;
    for k=1:n
        ss1=ss1+(xx1(1,i,k)-X(1,i))^2;
        ss2=ss2+(xx1(4,i,k)-X(4,i))^2;
        ss3=ss3+(xx1(2,i,k)-X(2,i))^2;
        ss4=ss4+(xx1(5,i,k)-X(5,i))^2;
    end
    RMSE_x1(i)=sqrt(ss1/n);
    RMSE_y1(i)=sqrt(ss2/n);
    RMSE_vx1(i)=sqrt(ss3/n);
    RMSE_vy1(i)=sqrt(ss4/n);
end

%-------------------------------------------------------------
for i=1:length(z)
    ss1=0;
    ss2=0;
    ss3=0;
    ss4=0;
    for k=1:n
        ss1=ss1+(xx2(1,i,k)-X(1,i))^2;
        ss2=ss2+(xx2(4,i,k)-X(4,i))^2;
        ss3=ss3+(xx2(2,i,k)-X(2,i))^2;
        ss4=ss4+(xx2(5,i,k)-X(5,i))^2;
    end
    RMSE_x2(i)=sqrt(ss1/n);
    RMSE_y2(i)=sqrt(ss2/n);
    RMSE_vx2(i)=sqrt(ss3/n);
    RMSE_vy2(i)=sqrt(ss4/n);
end

clear ss1 ss2 ss3 ss4;
%-------------------------------------------------------------
t=1:length(z);

figure(1) ;
plot(t*T,RMSE_x1,'k*-',t*T,RMSE_x2,'ko-');
xlabel('跟踪时间(秒)');
ylabel('位移误差(米)');
title('x轴位移均方误差比较');
legend('CS','CCS');

figure(2);
plot(t*T,RMSE_vx1,'k*-',t*T,RMSE_vx2,'ko-');
ylabel('速度误差(米/秒)');
xlabel('跟踪时间(秒)');
title('X轴速度均方误差比较');
legend('CS','CCS');

figure(3) ;
plot(t*T,RMSE_y1,'k*-',t*T,RMSE_y2,'ko-');
xlabel('跟踪时间(秒)');
ylabel('位移误差(米)');
title('y轴位移均方误差比较');
legend('CS','CCS');

figure(4);
plot(t*T,RMSE_vy1,'k*-',t*T,RMSE_vy2,'ko-');
ylabel('速度误差(米/秒)');
xlabel('跟踪时间(秒)');
title('y轴速度均方误差比较');
legend('CS','CCS');

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?