%%================================================================
%%Filename: stripmapSAR.m
%%Help file: stripmapSAR.doc条带式
%%Project: Stripmap SAR Simulation using point targets and Reconstrction 点目标
%% with Range-Doppler Algorithm
%%================================================================
clear;clc;close all;
%%================================================================
%% Parameter--constant 恒参
C=3e8; %propagation speed
%%Parameter--radar characteristics
Fc=1e9; %carrier frequency 1GHz载频
lambda=C/Fc; %wavelength
%% Parameter--target area
Xmin=0; %target area in azimuth is within[Xmin,Xmax] 方位向X=[Xmin,Xmax]=[0,50]m
Xmax=50;
Yc=10000; %center of imaged area
Y0=500; %target area in range is within[Yc-Y0,Yc+Y0]【500,1500】距离向Y=[Yc-Y0,Yc+Y0]=[9500,10500]m
%imaged width 2*Y0
%% Parameter--orbital information 航线轨道
V=100; %SAR velosity 100 m/s
H=5000; %height 5000 m
R0=sqrt(Yc^2+H^2); %range between radar and target
%% Parameter--antenna
D=4; %antenna length in azimuth direction天线孔径
Lsar=lambda*R0/D; %SAR integration length 雷达合成孔径大小 式3.8
Tsar=Lsar/V; %SAR integration time雷达合成孔径时间
%% Parameter--slow-time domain 慢时间域
Ka=-2*V^2/lambda/R0; %doppler frequency modulation rate调频率 式3.19
Ba=abs(Ka*Tsar); %doppler frequency modulation bandwidth多普勒带宽
PRF=Ba; %pulse repetition frequency脉冲重复频率
PRT=1/PRF; %pulse repetition time脉冲重复周期
ds=PRT; %sample spacing in slow-time domain( 方位向样本间隔????????????????????)
Nslow=ceil((Xmax-Xmin+Lsar)/V/ds); %sample number in slow-time domain 方位向离散个数 {ceil(x):大于x的最小整数}
Nslow=2^nextpow2(Nslow); %for fft{取最接近的较大2次幂 即nextpow(1023)=10}
sn=linspace((Xmin-Lsar/2)/V,(Xmax+Lsar/2)/V,Nslow); %discrete time array in slow-time domain 离散的时间行矩阵Nslow*1{linspace: 构造线性分布的向量 randn 产生正态分布矩阵}
PRT=(Xmax-Xmin+Lsar)/V/Nslow; %refresh(因为离散个数Nslow发生了些许调整,所以与之相关的参数都要更新)
PRF=1/PRT; %更新脉冲重复周期
ds=PRT; %更新样本间隔
%% Parameter--fast-time domain 快 时 间 域 (距 离 向)
Tr=5e-6; %pulse duration 10us脉冲宽度
Br=30e6; %chirp frequency modulation bandwidth 30MHz 脉冲宽带
Kr=Br/Tr; %chirp slope斜率
Fsr=3*Br; %sampling frequency in fast-time domain采样频率3倍带宽?????????????????????????
dt=1/Fsr; %sample spacing in fast-time domain采样间隔
Rmin=sqrt((Yc-Y0)^2+H^2); %侧视图可轻易看出
Rmax=sqrt((Yc+Y0)^2+H^2+(Lsar/2)^2); %与Lsar有什么关系?????????????????????????????????
Nfast=ceil(2*(Rmax-Rmin)/C/dt+Tr/dt); %sample number in fast-time domain 距离向离散个数 {ceil(x):大于x的最小整数}
Nfast=2^nextpow2(Nfast); %for fft {取最接近的较大2次幂 即nextpow(1023)=10}
tm=linspace(2*Rmin/C,2*Rmax/C+Tr,Nfast); %discrete time array in fast-time domain行矩阵Nfast*1
dt=(2*Rmax/C+Tr-2*Rmin/C)/Nfast; %refresh(因为方位向个数Nfast发生了些许调整,所以与之相关的参数都要更新)
Fsr=1/dt; %更新采样频率
%% Parameter--resolution 分 辨 率
DY=C/2/Br; %range resolution 距离分辨率
DX=D/2; %cross-range resolution方位分辨率
%% Parameter--point targets 点 目 标
Ntarget=3; %number of targets数目
%format [x, y, reflectivity] 模型【x,y,反射率】
Ptarget=[Xmin,Yc,1 %position of targets 第三个坐标是反射系数
Xmin,Yc+10*DY,1
Xmin+20*DX,Yc+50*DY,1]; %第三个目标备用吧
disp('Parameters:') %显示在command window
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) %目标的坐标
%% Generate the raw signal data %斜距为R的回波信号
K=Ntarget; % number of targets
N=Nslow; % number of vector in slow-time domain
M=Nfast; % number of vector in fast-time domain
T=Ptarget; % position of targetsT是指哪一段距离,方位向?????????????????????
Srnm=zeros(N,M); % N*M零矩阵
for k=1:1:K
sigma=T(k,3); %得到目标的反射系数
Dslow=sn*V-T(k,1); %??慢时间 范围向距离,投影倒方位向的距离 (x-x0)
R=sqrt(Dslow.^2+T(k,2)^2+H^2); %斜距 实际距离矩阵矩阵
tau=2*R/C; %双程时间
Dfast=ones(N,1)*tm-tau'*ones(1,M); %N*1 1*M - N*1 1*M tau'是转置为列向量 最终N*M diag(tm-tau,...,tm-tau) 式2.8(t-2R/c).^2 t有上标
phase=pi*Kr*Dfast.^2-(4*pi/lambda)*(R'*ones(1,M)); %回波相位 t=0????????????与式2.8 有所不同
Srnm=Srnm+sigma*exp(j*phase).*(0<Dfast&Dfast<Tr).*((abs(Dslow)<Lsar/2)'*ones(1,M));%后乘矩阵为 N*1 * 1*M
end
%check
% figure
% plot(tm,Srnm,'r.');hold on;
%
% set(gca,'xtick',[7.5,7.6,7.7,7.8,7.9,8.0]);
% %axis([Yc-Y0,Yc+Y0,Xmin-Lsar/2,Xmax+Lsar/2]); %控制轴刻度和风格的高层指令
% xlabel('\rightarrow\in itsec '),ylabel('\it幅度'),%\rightarrow\右指向表 \it..........\
% title('原始回拨信号'), %标题
%% Range compression % 距离向压缩
tr=tm-2*Rmin/C; % 目标散射时间
Refr=exp(j*pi*Kr*tr.^2).*(0<tr&tr<Tr);
% 上式:距离向LFM信号 距离作匹配滤波压缩的参考函数
Sr=ifty(fty(Srnm).*(ones(N,1)*conj(fty(Refr)))); % 傅里叶
Gr=abs(Sr); %绝对值
%%Azimuth compression % 方位向压缩
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); %绝对值
%%================================================================
%%draw the intensity image of signal %作图 信号的亮度图像
colormap(gray); %色图
%% figure
figure(1) %窗口1
subplot(211); %创建子窗口 2行1列第一幅
row=tm*C/2-2008;col=sn*V-26; % 强 度 啥意思?????????????????????????
imagesc(row,col,255-Gr); %intensity image of Sr 显示亮度图象:将矩阵Gr(黑底)(255-Gr白底)中的元素数值按大小转化为不同颜色 row col是X、Y坐标量程
axis([Yc-Y0,Yc+Y0,Xmin-Lsar/2,Xmax+Lsar/2]);
评论0