%% 杂波图恒虚警算法实现
% 优点:通过提高累积帧数,杂波背景噪声功率趋近于理论值
% 缺点:对于慢移动目标有自遮掩效果
%% 程序初始化
clc;clear all;close all;
%% 均匀背景噪声(单目标&多目标)
% shape=[200];
% variance=200;
% noise_db=20;
% noise_p=10.^(noise_db./10);
% show_out=0;
% [ xc ] = env_uniform(variance, shape, noise_db,show_out);
% 单目标
% SNR1=15; signal1_p=10.^(SNR1./10).*noise_p;
% xc(1,90)=signal1_p;
%
% 多目标
% SNR1=20;signal1_p=10.^(SNR1./10).*noise_p;
% xc(1,90)=signal1_p;
% SNR2=15;signal2_p=10.^(SNR2./10).*noise_p;
% xc(1,102)=signal2_p;
%% 杂波边缘背景噪声(单目标&多目标)
shape=[100,200];
variance=200;
noise_db=[20,30];
noise_p=10.^(noise_db./10);
show_out=0;
% [ xc ] = env_edge(variance, shape, noise_db, show_out);
% 多目标
SNR1=15;signal1_p=10.^(SNR1./10).*noise_p(1,end);
SNR2=12;signal2_p=10.^(SNR2./10).*noise_p(1,end);
SNR3=8;signal3_p=10.^(SNR3./10).*noise_p(1,end);
SNR4=5;signal4_p=10.^(SNR4./10).*noise_p(1,end);
% loc1=randi([43,44],1,1);
% xc(1,loc1)=signal1_p;
% loc2=randi([46,48],1,1);
% xc(1,loc2)=signal3_p;
% loc3=randi([50,53],1,1);
% xc(1,loc3)=signal2_p;
% loc4=randi([55,58],1,1);
% xc(1,loc4)=signal1_p;
% loc5=randi([90,93],1,1); %接近杂波区,但是依然在
% xc(1,loc5)=signal1_p;
% xc(1,loc5)=signal2_p; %这种杂波边缘有目标的情况,还需要优化
% xc(1,loc5)=signal3_p;
% loc6=randi([102,108],1,1);
% xc(1,loc6)=signal3_p;
%% 迭代算法实现(杂波图)
N=36;
u=0.001;
PAD=10^(-4);
alpha=N.*(PAD.^(-1./N)-1);
xtp=zeros(1,shape(end));
d0=0;
d1=[0];
for i=1:1:4000
[ xc ] = env_edge(variance, shape, noise_db,show_out);
loc1=randi([43,44],1,1);
xc(1,loc1)=signal1_p;
loc2=randi([46,48],1,1);
xc(1,loc2)=signal3_p;
loc3=randi([50,53],1,1);
xc(1,loc3)=signal2_p;
loc4=randi([55,58],1,1);
xc(1,loc4)=signal1_p;
loc6=randi([102,108],1,1);
xc(1,loc6)=signal3_p;
xtp=xtp.*(1-u)+xc.*u;
d0=d0.*(1-u)+u;
d1=cat(2,d1,d0);
if mod(i,100)==0
%% 图谱显示
figure;
plot(10.*log(abs(xc))./log(10)),hold on;
plot(10.*log(abs(xtp.*alpha./d0))./log(10)),hold on;
end
end