【雷达图像】SAR合成孔径雷达成像及处理matlab源码
作者:互联网
一、简介
二、源代码
clear all;
%======================================================================
%%% (I) parameters' definition
%======================================================================
c=3e+8; % speed of light
pi=3.1415926; % pi
j00=sqrt(-1); % square root of -1
res_a=2; % required azimuth resolution
k_r=1.2; % range factor
Ra=4000.; % radar working distance
va=70.; % radar/platform forward velocity
fc=3.e+9; % carrier frequency
FsFactor = 1.0;
theta=90*pi/180; % squint angle
%======================================================================
lamda=c/fc; % wavelength
Br=k_r*c/2./res_r; % required transmitted bandwidth
Fs=Br*FsFactor; % A/D sampling rate
bin_r=c/2./Fs; % range bin
Kr=Br/Tp; % range chirp rate
La=Ra*k_a*lamda/2/res_a; % required synthetic aperture length
Ta=La/va; % required synthetic aperture time
fdc=2*va*cos(theta)/lamda; % doppler centriod
fdr=-2*(va*sin(theta)).^2/lamda/Ra; % doppler rate
Bd=abs(fdr)*Ta; % doppler bandwidth
prf=round(Bd*2); % PRF
%======================================================================
%%%(II) echo return modelling (point target)
%======================================================================
na=fix(Ta*prf/2); % azimuth sampling number
ta=-na:na;
ta=ta/prf; % slow time along azimuth
xa=va*ta-Ra*cos(theta); % azimuth location along flight track
Na=2*fix(na);
%x0=[ 0 0 0 0 0 ]; % define multi points if you want
%R0=[-20 -10 0 10 20 ]; % x0: azimuth location (positive towards forward velocity)
% R0: slant range location (positive towards far range)
x0=[ 0 0 ]; R0=[ 0 10 ]; % only one point
Npt_num = length(x0);
ra=zeros(Npt_num, length(xa)); % calculate every point target's slant range history
for i=1:Npt_num
ra(i,:)=sqrt((Ra*sin(theta)+R0(i)).^2+(xa+x0(i)).^2);
end
rmax=max(max(ra)); % max. slant range
rmin=min(min(ra)); % min. slant range
rmc=fix((rmax-rmin)/bin_r); % range migration, number
rg=0*ra; % initialize
rg=fix((ra-rmin)/bin_r+1); % range gate index caused by range migration
rgmax=max(max(rg));
rgmin=min(min(rg));
nr=round(Tp*Fs); % samples of a pluse
tr=1:fix(nr)+1;
tr=tr/Fs-Tp/2; % fast time within a pluse duration
Nr=nr+rgmax;
%======================================================================
%%%(II) echo return modelling (point target)
%======================================================================
sig=zeros(Na,Nr);
for i=1:Na
for k=1:Npt_num
sig(i,rg(k,i):rg(k,i)+nr)=sig(i,rg(k,i):rg(k,i)+nr)+exp(-j00*4*pi/lamda*ra(k,i))*exp(-j00*pi*Kr*(tr).^2);
end
end
%%% parameters' definition
c=3e+8; % speed of light
pi=3.1415926;
j=sqrt(-1);
Tp=1.e-6; % transmitted pulse width
fc=1.e+9; % carrier frequency
Br=50.e+6; % transmitted bandwidth
Fs=200.e+6; % A/D sample rate
kr=Br/Tp; % range chirp rate
Nr=Tp*Fs;
Ni=1:Nr;
tr=(Ni-Nr/2)*Tp/Nr;
%===============================
%Chirp pulse echo from point A
%===============================
sig_point0 = exp(j*pi*kr*(tr).^2);
%===============================
%Chirp pulse echo from point B
%===============================
dr=3; dr_t=2*dr/c; dN=dr_t*Fs;
sig_point1 = exp(j*pi*kr*(tr-dr_t).^2);
sig_0 = zeros(1, 3*Nr); sig_1 = sig_0; sum_sig = sig_0;
sig_0(Nr+1:2*Nr)=sig_point0;
sig_1(Nr+dN+1:2*Nr+dN)=sig_point1;
%===============================
% Summary echo signal of A and B
%===============================
sum_sig = sig_0 + sig_1;
figure;
subplot(4,1,1); plot(real(sig_0));
subplot(4,1,2); plot(real(sig_1));
subplot(4,1,3); plot(real(sum_sig));
三、运行结果
标签:rg,tr,range,源码,sig,matlab,SAR,Nr,pi 来源: https://blog.51cto.com/u_15287693/3023758