image thumbnail
rad_pat.m
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        %          RADAR RADIATION PATTERN          %
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


cj=sqrt(-1);
pi2=2*pi;

c=3e8;                   % propagation speed
w=pi2*1e9;               % radar frequency (1GHz)
% w=pi2*2e9;               % radar frequency (2GHz)
k=w/c;                   % wavenumber
lambda=pi2/k;            % wavelength
x=100;                   % range
D=1;                     % radar diameter
guard=4;                 % guard band factor in y and ky domains
%
dell=lambda/4;           % sample spacing on surface of radar for
                         % evaluating ell surface integral
nell2=ceil(D/(2*dell));
nell=2*nell2+1;          % number of surface elements on radar
ell=dell*(-nell2:nell2); % cross-range of surface elements on radar

% OPTIONS: option=1 is for a planar radar
%          option=2 is for a parabolic radar (without a feed)

option=1;

if option == 1,          % Planar Radar

 xell=zeros(1,nell);     % range of surface elements on radar
 B=(x*lambda)/D;         % beamwidth (y domain support)
 kumax=(pi2/D);          % ky (slow-time Doppler) domain support
 jac=ones(1,nell);       % radar surface jacobian

elseif option == 2,            % Parabolic Radar
 
 xf=2;                         % focal range
 xell=(ell.^2)/(2*xf);         % range of surface elements on radar
 phd=atan(D/(2*xf));           % divergence angle
 B=x*sin(phd);                 % beamwidth (y domain support)
 kumax=k*sin(phd);             % ky (slow-time Doppler) domain support
 jac=sqrt(1+(ell/xf).^2);      % radar surface jacobian

end;

dy=pi/(guard*kumax);     % sample spacing in y domain for h(x,y,omega)
ny=guard*2*ceil(B/dy);   % number of y samples
y=dy*(-ny/2:ny/2-1);     % y array
dky=pi2/(ny*dy);         % sample spacing in ky (Doppler) domain
ky=dky*(-ny/2:ny/2-1);   % ky (Doppler) array

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Transmit-mode Radiation Pattern  %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

dis=sqrt(((x-xell(:)).^2) ...
  *ones(1,ny)+(ones(nell,1)*y-ell(:)*ones(1,ny)).^2);
ht=sum(((jac(:)*ones(1,ny)).*exp(-cj*k*dis))./dis);

plot(y,real(ht),'-',y,abs(ht),'--');axis('square')
xlabel('Cross-range Y, meters')
ylabel('Real Part & Magnitude')
title('Transmit-mode Radiation Pattern')
print P3.1a.ps
pause(1)

dis=sqrt(x^2+y.^2);
h0t=exp(-cj*k*dis)./dis;        % ideal (omni-directional) source
                                % spatial radiation pattern
%
hd=ht.*conj(h0t);      % radiation pattern deviation from ideal source
phd=angle(hd);          % and its phase
I=ny/2+1:-1:1;
temp=unwrap(angle(hd(I)));
uphd=zeros(1,ny);
uphd(I)=temp;
uphd(ny/2+2:ny)=temp(2:ny/2);       % and its unwrapped phase
%
plot(y,uphd);
axis('square')
xlabel('Cross-range Y, meters')
ylabel('Phase, radians')
title('Unwrapped Phase Deviation form Ideal Source')
axis([y(1) y(ny) -4 4])
print P3.2a.ps
pause(1)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Doppler Spectrum of Transmit-mode Radiation Pattern  %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

fht=fty(ht);
plot(ky,real(fht),'-',ky,abs(fht),'--');axis('square')
xlabel('Spatial (Doppler) Frequency K_y, radians/m')
ylabel('Real Part & Magnitude')
title('Transmit-mode Radiation Pattern Doppler Spectrum')
print P3.3a.ps
pause(1)

kxt=k^2-ky.^2;
kxt=sqrt((kxt > 0).*kxt);
fh0t=exp(-cj*kxt*x-cj*.25*pi);    % ideal (omni-directional) source
                                  % Doppler spectrum
%
fhd=fht.*conj(fh0t);               % deviation from ideal source
pfhd=angle(fhd);                   % and its phase
I=ny/2+1:-1:1;
temp=unwrap(angle(fhd(I)));
upfhd=zeros(1,ny);
upfhd(I)=temp;
upfhd(ny/2+2:ny)=temp(2:ny/2);       % and its unwrapped phase

%
plot(ky,upfhd);
axis('square')
xlabel('Spatial (Doppler) Frequency K_y, radians/m')
ylabel('Phase, radians')
title('Doppler Domain Unwrapped Phase Deviation form Ideal Source')
axis([ky(1) ky(ny) -4 4])
print P3.4a.ps
pause(1)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%       T&R Radiation Pattern      %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

h=ht.^2;

plot(y,real(h),'-',y,abs(h),'--');axis('square')
xlabel('Cross-range Y, meters')
ylabel('Real Part & Magnitude')
title('T&R Radiation Pattern')
print P3.5a.ps
pause(1)

h0=exp(-cj*2*k*sqrt(x^2+y.^2));    % ideal T&R radiation pattern
%
hd=h.*conj(h0);         % radiation pattern deviation from ideal T&R
phd=angle(hd);          % and its phase
I=ny/2+1:-1:1;
temp=unwrap(angle(hd(I)));
uphd=zeros(1,ny);
uphd(I)=temp;
uphd(ny/2+2:ny)=temp(2:ny/2);       % and its unwrapped phase
%
plot(y,uphd);
axis('square')
xlabel('Cross-range Y, meters')
ylabel('Phase, radians')
title('Unwrapped Phase Deviation form Ideal T&R')
axis([y(1) y(ny) -4 4])
print P3.6a.ps
pause(1)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Doppler Spectrum of Transmit-Receive Mode Radiation Pattern %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fh=fty(h);
plot(ky,real(fh),'-',ky,abs(fh),'--');axis('square')
xlabel('Spatial (Doppler) Frequency K_y, radians/m')
ylabel('Real Part & Magnitude')
title('T&R Radiation Pattern Doppler Spectrum')
print P3.7a.ps
pause(1)

kx=(2*k)^2-ky.^2;
kx=sqrt((kx > 0).*kx);
fh0=exp(-cj*kx*x-cj*.25*pi);    % ideal Transmitter-Receiver
                                % Doppler spectrum
%
fhd=fh.*conj(fh0);               % deviation from ideal T&R
pfhd=angle(fhd);                 % and its phase
I=ny/2+1:-1:1;
temp=unwrap(angle(fhd(I)));
upfhd=zeros(1,ny);
upfhd(I)=temp;
upfhd(ny/2+2:ny)=temp(2:ny/2);       % and its unwrapped phase

%
plot(ky,upfhd);
axis('square')
xlabel('Spatial (Doppler) Frequency K_y, radians/m')
ylabel('Phase, radians')
title('Doppler Domain Unwrapped Phase Deviation form Ideal T&R')
axis([ky(1) ky(ny) -4 4])
print P3.8a.ps
pause(1)

Contact us at files@mathworks.com