MATLAB Examples

Figure 26. SINR for the optimum and tapered fully adaptive STAP, including Doppler straddling losses.

Contents

Coded by Ilias Konsoulas, 16 Sept. 2018. Code provided for educational purposes only. All rights reserved.

clc; clear; close all;

Radar System Operational Parameters

radar_oper_params;

Thermal Noise Power Computation

thermal_noise_power;

Thermal Noise Covariance Matrix

Rn = sigma2*eye(M*N);

Clutter Patch RCS Computation

clutter_patch_rcs;

Calculate the Array Transmit and Element Receive Power Gains

Tx_Rx_power_gains;
Warning: The value of local variables may have been changed to match the
globals.  Future versions of MATLAB will require that you declare a
variable to be global before you use that variable. 

Calculate the Clutter to Noise Ratio (CNR) for each clutter patch

ksi = Pt*Gtgain.*Grec*lambda^2*sigma/((4*pi)^3*Pn*10^(Ls/10)*Rcik^4);   % Eq. (58)

Clutter Covariance Matrix Computations

beta = 1;   % beta parameter.
phia = 0;   % Velocity Misalignment Angle.

Rc = clutt_cov(ksi,beta);

Jamming Covariance Matrix Calculation

jamm_cov;

Total Interference Covariance Matrix

Ru = Rc + Rj + Rn;                                           % Eq. (98)

SINR calculation for Optimum and Tapered Fully Adaptive STAP

ta = chebwin(N,30);                                          % 30 dB Chebychev Spatial Tapper.
tb = chebwin(M,40);                                          % 40 dB Chebychev Doppler Taper.
phit = 0; thetat = 0;                                        % Target Azimuth and Elevation Angles.
fspt = d/lambda*cos(thetat*pi/180)*sin(phit*pi/180);         % Target Spatial Frequency.
a = exp(1i*2*pi*fspt*(0:N-1)).';                             % Target Spatial Steering Vector.
fd = 0:.5:300;   Lfd = length(fd);
omega = fd/fr;
dopplerfilterbank = linspace(0,300,M+1);                     % Doppler Filterbank frequencies.
omegadopplerbank = dopplerfilterbank/fr;
SINRopt_mat = zeros(length(dopplerfilterbank),Lfd);
SINRtap_mat = zeros(length(dopplerfilterbank),Lfd);
InvRu = inv(Ru);

for m=1:length(dopplerfilterbank)
     bm = exp(1i*2*pi*omegadopplerbank(m)*(0:M-1)).';        % Doppler Filter Steering Vector
     vm = kron(bm,a);
     gt = kron(tb.*bm,ta.*a);
     wm = InvRu*vm; %#ok<*MINV>                              % Eq. (116)
     wmtap = InvRu*gt;

     for n=1:Lfd
         b = exp(1i*2*pi*omega(n)*(0:M-1)).';                % Dummy Target Doppler Steering Vector
         v = kron(b,a);
         SINRopt_mat(m,n) = wm'*v;                           % Eq. (114)
         SINRtap_mat(m,n) = abs(wmtap'*v)^2/real(wmtap'*gt); % Eq. (115)
     end
end

SINRopt = max(abs(SINRopt_mat));                             % Eq. (117) for Optimum Fully Adaptive Case
SINRtap = max(abs(SINRtap_mat));                             % Eq. (117) for Tapered Fully Adaptive Case

Plot the SINRs

figure('NumberTitle', 'off','Name', ...
       'Figure 26. SINR for the optimum and tapered fully adaptive STAPs, including Doppler straddling losses.',...
       'Position', [1 1 600 500]);
plot(fd,10*log10(SINRopt),'LineWidth',1.5)
hold on;
plot(fd,10*log10(SINRtap),'r','LineWidth',1.5)
ylabel('SINR (dB)');
xlabel('Target Doppler Frequency (Hz)');
ylim([-5 26]);
xlim([-5 305]);
legend('Optimum Fully Adaptive', 'Tapered Fully Adaptive', 'Location','South')
grid on;