close all;
clc;clear;
%% =============系统参数========================
Tp = 100e-6;%脉冲宽度
B = 0.5e6;%带宽
Rmin=40e3;
Rmax=80e3;
R=60e3;
RCS=1;
c = 3e8;
lamda=0.03;
f0=c/lamda;%载频10GHz
PRF=10e3;
PRT=1/PRF;
v=100;
sumt=0.1;
Na=round(sumt/PRT);%相参积累的周期数
SNR=1;
R=R-Rmin;%%目标位置向量相对最近目标点(????????)
K = B/Tp; %调频斜率
Rrec=Rmax-Rmin;%接收门宽(距离)
Trec=2*Rrec/c;%接收门宽(时间)
Fs = 5*B;%采样率
Ts=1/Fs;
N0=round(Tp*Fs);%发射脉冲对应的采样点数
Nr=round(Trec*Fs);%接收门宽对应的采样点数
%回波,相对于输入信号有时延
% str(1:N+N0)=0;%N+N0是发射脉宽的采样数和接收门宽的采样数
t=linspace(-Tp/2,Tp/2,N0);
s=exp(1j*pi*K*t.^2);
reces(1:Nr)=0;%接收信号窗
tt=2*R/c;%%%%%%%%%%%延时
K0=ceil(tt/Ts);%取不小于它的最小整数???????
reces(K0+1:K0+N0)=RCS*s(1,:);
%匹配滤波
h=conj(s);
for i=1:1:Na
reces_noise=awgn(reces,SNR,'measured');%加入噪声
% reces_noise=zeros(1,667);%加入噪声
reces_n(i,:)=reces_noise;
%加入多普勒频移
fd=2*v/lamda;
reces_i=reces_noise.*exp(j*2*pi*fd*i*PRT);
reces_mf=conv(h,reces_i);
reces_mf1=reces_mf(N0:N0+Nr-1);
rece_echo_n(i,:)=reces_mf1;
end
x=linspace(Rmin/1000,Rmax/1000,size(reces,2));
y=0:Na-1;
figure
mesh(x,y,abs(reces_n));
title('匹配滤波前回波');
xlabel('距离');
ylabel('多普勒频率');
zlabel('幅度');
x=linspace(Rmin/1000,Rmax/1000,size(reces_mf1,2));
y=0:Na-1;
figure;
mesh(x,y,abs(rece_echo_n)); % 绘制图为有噪声情况下的回波信号
title('匹配滤波后回波');
xlabel('距离');
ylabel('多普勒频率');
zlabel('幅度');
for i=1:Nr
rece_echo_naf(:,i)=fft(rece_echo_n(:,i));%方位向fft%为什么不能直接用ftx,因为直接用ftx时存在fftshift移位
end
x=linspace(Rmin/1000,Rmax/1000,size(rece_echo_naf,2));
y=0:Na-1;
figure;
mesh(x,y,abs(rece_echo_naf)); % 绘制图为有噪声情况下的回波信号
title('相参积累后回波');
xlabel('距离');
ylabel('多普勒频率');
zlabel('幅度');
a=(max(max(abs(rece_echo_naf)))); % 找出最大值
b=find((abs(rece_echo_naf))==a); % 找出最大值的坐标
x=ceil(b/Na);
y=mod(b,Na);
评论4