%%========================================================
%%RTPC方法:SAR原理的直观解释
%%========================================================
clear;clc;close all;
%%========================================================
%%参量--常数
C=3e8; %传播速度(光速)
%%参量--雷达特性
Fc=1e9; %载频
lambda=C/Fc; %波长
%%参数--目标区域
Xmin=0; %方位向坐标范围[Xmin,Xmax]
Xmax=50;
Yc=10000; %测绘带中心
Y0=500; %距离向坐标范围[Yc-Y0,Yc+Y0]
%测绘带宽2*Y0
%%参数--平台信息
V=100; %SAR 飞行速度 100 m/s
H=5000; %高度 5000 m
R0=sqrt(Yc^2+H^2); %SAR距测绘带中心距离
%%参数--天线
D=4; %天线孔径最大尺寸
Lsar=lambda*R0/D; %合成孔径长度:Lsar决定于天线运动过程中所能接收到的来自同一目标单元的回波信号的最大作用范围,
% 它等于真实天线所能覆盖的最大范围
Tsar=Lsar/V; %合成孔径时间
%%参数--慢时间域
Ka=-2*V^2/lambda/R0; %多普勒调频斜率
Ba=abs(Ka*Tsar); %多普勒调频带宽
PRF=Ba; %PRF:(PRF的取值范围:1.1Bd<PRF<1/1.1Tw ,此处可以调整)
PRT=1/PRF; %PRT
ds=PRT; %慢时间域抽样间隔
Nslow=ceil((Xmax-Xmin+Lsar)/V/ds); %慢时间域抽样数
Nslow=2^nextpow2(Nslow); %取2的阶乘数便于FFT计算
sn=linspace((Xmin-Lsar/2)/V,(Xmax+Lsar/2)/V,Nslow);%慢时间域离散时间阵(SAR对所有点有作用的时间)
PRT=(Xmax-Xmin+Lsar)/V/Nslow; %更新
PRF=1/PRT;
ds=PRT;
%%参数--快时间域
Tr=5e-6; %脉冲持续 10us
Br=30e6; %LFM信号带宽 30MHz
Kr=Br/Tr; %LFM斜率
Fsr=3*Br; %快时间抽样频率:理论上1.5倍以上的抽样频率即可,但是在matlab中,3倍Br时波形仍成锯齿状
dt=1/Fsr; %快时间抽样间隔
Rmin=sqrt((Yc-Y0)^2+H^2);
Rmax=sqrt((Yc+Y0)^2+H^2+(Lsar/2)^2);
Nfast=ceil(2*(Rmax-Rmin)/C/dt+Tr/dt);%快时间域抽样个数
Nfast=2^nextpow2(Nfast); %取2的阶乘便于FFT计算
tm=linspace(2*Rmin/C,2*Rmax/C+Tr,Nfast); %快时间域离散时间阵
dt=(2*Rmax/C+Tr-2*Rmin/C)/Nfast; %更新
Fsr=1/dt;
%%参数--分辨率
DY=C/2/Br; %距离分辨率
DX=D/2; %方向分辨率
%%参数--点目标个数
Ntarget=1; %点目标个数
%目标参数格式 [x, y, 散射系数]
Ptarget=[Xmin,Yc,1 %目标的坐标
Xmin,Yc+DY,1
Xmin,Yc+2*DY,1
Xmin,Yc+3*DY,1
Xmin,Yc+4*DY,1
Xmin,Yc+5*DY,1
Xmin,Yc+6*DY,1
Xmin,Yc+7*DY,1
Xmin,Yc+8*DY,1
Xmin,Yc+9*DY,1
Xmin,Yc+10*DY,1
Xmin,Yc+11*DY,1
Xmin,Yc+12*DY,1
Xmin,Yc+13*DY,1
Xmin,Yc+14*DY,1
Xmin,Yc+15*DY,1
Xmin+DX,Yc,1 %目标的坐标
Xmin+DX,Yc+DY,1
Xmin+DX,Yc+2*DY,1
Xmin+DX,Yc+3*DY,1
Xmin+DX,Yc+4*DY,1
Xmin+DX,Yc+5*DY,1
Xmin+DX,Yc+6*DY,1
Xmin+DX,Yc+7*DY,1
Xmin+DX,Yc+8*DY,1
Xmin+DX,Yc+9*DY,1
Xmin+DX,Yc+10*DY,1
Xmin+DX,Yc+11*DY,1
Xmin+DX,Yc+12*DY,1
Xmin+DX,Yc+13*DY,1
Xmin+DX,Yc+14*DY,1
Xmin+DX,Yc+15*DY,1
Xmin+2*DX,Yc,1 %目标的坐标
Xmin+2*DX,Yc+DY,1
Xmin+2*DX,Yc+2*DY,1
Xmin+2*DX,Yc+3*DY,1
Xmin+2*DX,Yc+4*DY,1
Xmin+2*DX,Yc+5*DY,1
Xmin+2*DX,Yc+6*DY,1
Xmin+2*DX,Yc+7*DY,1
Xmin+2*DX,Yc+8*DY,1
Xmin+2*DX,Yc+9*DY,1
Xmin+2*DX,Yc+10*DY,1
Xmin+2*DX,Yc+11*DY,1
Xmin+2*DX,Yc+12*DY,1
Xmin+2*DX,Yc+13*DY,1
Xmin+2*DX,Yc+14*DY,1
Xmin+2*DX,Yc+15*DY,1
Xmin+3*DX,Yc,1 %目标的坐标
Xmin+3*DX,Yc+DY,1
Xmin+3*DX,Yc+2*DY,1
Xmin+3*DX,Yc+3*DY,1
Xmin+3*DX,Yc+4*DY,1
Xmin+3*DX,Yc+5*DY,1
Xmin+3*DX,Yc+6*DY,1
Xmin+3*DX,Yc+7*DY,1
Xmin+3*DX,Yc+8*DY,1
Xmin+3*DX,Yc+9*DY,1
Xmin+3*DX,Yc+10*DY,1
Xmin+3*DX,Yc+11*DY,1
Xmin+3*DX,Yc+12*DY,1
Xmin+3*DX,Yc+13*DY,1
Xmin+3*DX,Yc+14*DY,1
Xmin+3*DX,Yc+15*DY,1
Xmin+4*DX,Yc,1 %目标的坐标
Xmin+4*DX,Yc+DY,1
Xmin+4*DX,Yc+2*DY,1
Xmin+4*DX,Yc+3*DY,1
Xmin+4*DX,Yc+4*DY,1
Xmin+4*DX,Yc+5*DY,1
Xmin+4*DX,Yc+6*DY,1
Xmin+4*DX,Yc+7*DY,1
Xmin+4*DX,Yc+8*DY,1
Xmin+4*DX,Yc+9*DY,1
Xmin+4*DX,Yc+10*DY,1
Xmin+4*DX,Yc+11*DY,1
Xmin+4*DX,Yc+12*DY,1
Xmin+4*DX,Yc+13*DY,1
Xmin+4*DX,Yc+14*DY,1
Xmin+4*DX,Yc+15*DY,1
]
%Xmin+20*DX,Yc+50*DY,1];
disp('Parameters:')
disp('Sampling Rate in fast-time domain');disp(Fsr/Br)
disp('Sampling Number in fast-time domain');disp(Nfast)
disp('Sampling Rate in slow-time domain');disp(PRF/Ba)
disp('Sampling Number in slow-time domain');disp(Nslow)
disp('Range Resolution');disp(DY)
disp('Cross-range Resolution');disp(DX)
disp('SAR integration length');disp(Lsar)
disp('Position of targets');disp(Ptarget)
%%========================================================
%%生成原始目标数据
K=Ntarget; % 目标个数
N=Nslow; % 慢时间向量个数
M=Nfast; % 快时间向量个数
T=Ptarget; % 目标坐标
Srnm=zeros(N,M);
%S=zeros(N,M);
for k=1:1:K
sigma=T(k,3);
Dslow=sn*V-T(k,1); % 每个方位向的间隔[1*512]
R=sqrt(Dslow.^2+T(k,2)^2+H^2); % 每个方位向到目标点的距离[1*512]
%Rc=sqrt(H^2+T(k,2)^2);
%R=Rc-2*V^2/lambda/Rc;
tau=2*R/C; % 延时[1*512]
Dfast=ones(N,1)*tm-tau'*ones(1,M); % Dfast=[512*1][1*1024]-[512*1][1*1024]=[512*1024]=tm-tau :距离向间隔-把距离延时放入每个方向单元的距离间隔内
phase=pi*Kr*Dfast.^2-(4*pi/lambda)*(R'*ones(1,M)); % R'*ones(1,M)=[1*512]'*[1*1024]=[512*1024] :方向向间隔-把方位向相移放入每个距离向单元间隔内
Srnm=Srnm+sigma*exp(j*phase).*(0<Dfast&Dfast<Tr).*((abs(Dslow)<Lsar/2)'*ones(1,M)); % 0<Dfast&Dfast<Tr :距离向在每个脉宽范围内的取值,其它不在脉宽范围内的置0
%S=S+sigma*sigma*exp(j*phase); % (abs(Dslow)<Lsar/2)'*ones(1,M) :每个点在合成孔径照射内的取值,其它不在的置0
end
%%========================================================
%%距离向压缩
tr=tm-2*Rmin/C;
Refr=exp(j*pi*Kr*tr.^2).*(0<tr&tr<Tr);
Sr=ifty(fty(Srnm).*(ones(N,1)*conj(fty(Refr))));
Gr=abs(Sr);
%%方位向压缩
ta=sn-Xmin/V;
Refa=exp(j*pi*Ka*ta.^2).*(abs(ta)<Tsar/2);
Sa=iftx(ftx(Sr).*(conj(ftx(Refa)).'*ones(1,M)));
Ga=abs(Sa);
%%========================================================
%%