CA-CFAR代码实现

clear all;clc;close all;
%%%% 仿真数据 %%%%
T=0.25;M=100;tc=T/M;fc=1/tc;%%% 一个扫频周期T 为250ms ; M为每个周期采样点100 ; fc采样频率
N=256;n=1:N;%% 一个相关积累时间64
%%%
fw=10;%% 雷达工作频率10MHz
fb=0.102*sqrt(fw);%% bragg 频率
fs=1;%% 信号频率
a_db=-10;a=10^(a_db/20);%% 正Bragg峰幅值
b_db=-12;b=10^(b_db/20);%% 负Bragg峰幅值
c_db=-35;c=10^(c_db/20);%% 噪声基底

s_db=-30;s=10^(s_db/20);%% 信号幅度
bragg=a.*exp(j*2*pi*fb*T.*n)+b.*exp(-j*2*pi*fb*T*n);%%% 正弦序列产生 Bragg 峰
signal=s.*exp(-j*2*pi*fs*T*n);
nosic=c.*random(‘Normal’,0,1,1,N);
x=bragg+nosic+signal;
%%%
Fx=abs(fftshift(fft(x)));
freq=(-1/(2*T):1/(T*N):(1/(2*T)-1/(T*N)));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% CA-CFAR %%%%%%%%%%%%%%%%%%%%%%%%%
M=N;P_fa=10.^(-6);
R=16;%参考单元数
n=R/2;
L_slipper=R+1;%滑窗长度
L_move=1;%滑窗间隔
L_num=floor((M-L_slipper)/L_move)+1;%滑窗次数
Z=zeros(1,L_num);
for i=1:L_num
for j=1:L_slipper
Z(i)=Z(i)+Fx((i-1)*L_move+j);
end
Z(i)=Z(i)-Fx((i-1)*L_move+R/2+1);
end
T=P_fa.^(-1/R)-1
S=Z.*T;
figure;plot(freq,20.*log10(Fx/max(Fx)),’k’);
hold on;plot(freq(n+1:M-n),20.*log10(S/max(S)));
xlabel(‘频率’);ylabel(’ 归一化幅值/dB’);title(‘CA-CFAR’);set(gcf,’color’,’w’);grid on;这里写代码片

你可能感兴趣的:(CA-CFAR代码实现)