[Radar communication] based on matlab radar forward-looking imaging simulation [including Matlab source code 643]

1. Introduction

Insert picture description here
Insert picture description here
Insert picture description here
Insert picture description here
Insert picture description here
Insert picture description here
Insert picture description here
Insert picture description here
Insert picture description here

Second, the source code

clear all;clc; close all;
%  前视线阵
%% 参数
C=3e8;
fc=10e9;
lambda=C/fc;
v=100; 
Tp=1.5e-6;
N=60; %阵元个数
B=100e6;
Fs=120e6;
gama=B/Tp;
Da=0.2;
H=600;
PRF=1000; %阵元切换速度
phi=45/180*pi; %俯视角
theta=24/180*pi; %波束宽度
d=0.3;% 阵元间距
va=d*PRF; %方位速度
nrn=200;
nan=N;
Rs=H*sqrt(2);
%% point targets
% point=[600 0 0; 650 0 0; 600 50 0 ; 600 -50 0; 550 0 0 ];
point=[600 0 0];
point_num=size(point,1);
%% 
La=N*(Da+d);
ta=[-N/2:N/2-1]/PRF;
Tstart=2*Rs/C-nrn/2/Fs;  %起始时刻
Tend=2*Rs/C+(nrn/2-1)/Fs; %终止时刻
tr=[Tstart:1/Fs:Tend].';   %快时间 
%%
x_pos=ta.*v;
y_pos=ta.*va;
z_pos=H;
R0=sqrt(z_pos^2+(600-v.*ta).^2);
Rr=sqrt(R0.^2+(va.*ta).^2);
%% echo
x=zeros(nrn,nan,'single');
for m=1:N
    temp1=zeros(nrn,1);
    for num=1:point_num
        x_temp=abs(x_pos(m)-point(num,1));
        y_temp=y_pos(m)-point(num,2);
        z_temp=z_pos-point(num,3);
        Rt=sqrt(x_temp^2+y_temp^2+z_temp^2);
        alpha=atan(y_temp./sqrt(x_temp.^2+z_temp.^2));
        if (alpha>=-theta/2 && alpha<=theta/2)
            Rt=sqrt(x_temp^2+y_temp^2+z_temp^2);
            Wr=abs(tr-2*Rt/C)<=Tp/2;
            temp2=Wr.*exp(j*pi*gama*(tr-2*Rt/C).^2).*exp(-j*4*pi*Rt/lambda);
            temp1=temp1+temp2;
        end
    end
    x(:,m)=temp1;
end
figure;imagesc(abs(x));   
ka=(-2/lambda).*(va^2./R0);  %方位调频率
fr=[-nrn/2:nrn/2-1]'/nrn*Fs;
del_ran=Rr-Rs;

%% range compress
fr=[-nrn/2:nrn/2-1]'/nrn*Fs;
% length=(fr/abs(gama)/Tp);
Hp=exp(j*pi*(2*v/lambda+(fr.^2)/gama));
%%
x=fftshift(fft(fftshift(x)));
for m=1:N
    temp2=exp(j*4*pi*del_ran(m)/C*fr);
    temp1=x(:,m).*Hp.*temp2;
    x(:,m)=fftshift(fft(fftshift(temp1)));
end
figure;imagesc(abs(x));
%%
for n=1:nrn
    xa(n,:)=fftshift(fft(fftshift(x(n,:)))); 
end
delta_R=((va.*ta).^2)./(2*R0);
Curve=delta_R*2*Fs/C;
delta_RMC=Curve-floor(Curve);%小数部分
% sinc
P=4;
temp=zeros(nrn,nan);
for n=1:nan
    for m=P:nrn
        for i=-P/2:P/2
            if m+Curve(n)+i>nrn
                temp(m,n)=temp(m,n)+xa(nrn,n)*sinc((-i+Curve(n)));
            else
                temp(m,n)=temp(m,n)+xa(m+floor(Curve(n))+i,n)*sinc((-i+delta_RMC(n)));
            end
        end
    end
end

Three, running results

Insert picture description here
Insert picture description here
Insert picture description here
Insert picture description here
Insert picture description here

Four, remarks

Complete code or write on behalf of adding QQ 1564658423

Guess you like

Origin blog.csdn.net/TIQCmatlab/article/details/115292756