Figure 29. Expected SINR Loss for SMI with matched steering vector.

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;

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, Vc] = clutt_cov(ksi,beta);

Jamming Covariance Matrix Calculation

jamm_cov;

Analytic Interference Covariance Matrix Calculation

Ru = Rc + Rj + Rn;

SINR Loss Calculations

fd = -150:.5:150;   Lfd = length(fd);
phit = 0; thetat = 0;                                     % Target Azimuth and Elevation Angles.
fspt = d/lambda*cos(thetat*pi/180)*sin(phit*pi/180);      % Target Spatial Frequency.
omegat = fd/fr;
at = exp(1i*2*pi*fspt*(0:N-1));                           % Target Spatial Steering Vector.
LSINRopt = zeros(1,Lfd);
InvRu = inv(Ru);
SNRo = M*N;                                               % Eq. (119)
Ndof = M*N;                                               % Number of adjustable weights (Degrees of Freedom)
Samples = [Ndof 2*Ndof 3*Ndof 4*Ndof 5*Ndof];             % Number of Samples(n3) used for SMI.
% Samples = 50*Ndof;             % Number of Samples(n3) used for SMI.
SINRopt = zeros(1,Lfd);

% Calculate LSINRopt:
for n1=1:Lfd
    bt = exp(1i*2*pi*omegat(n1)*(0:M-1));                 % Dummy Target Doppler Steering Vector
    vt = kron(bt,at).';
    wopt = InvRu*vt; %#ok<*MINV>
    SINRopt(n1) = real(wopt'*vt);                         % Eq. (112)
    LSINRopt(n1) = SINRopt(n1)/SNRo;                      % Eq. (120)
end

Calculate by Monte Carlo Experiments and Plot the Expected SINR Loss

figure('NumberTitle', 'off','Name', 'Figure 29. SINR Loss for SMI with matched steering vector',...
       'Position', [1 1 900 700]);
plot(fd,10*log10(abs(LSINRopt)),'LineWidth',1.5)
hold on;

% First Calculate LSINRest expected value using Monte Carlo method:
NRuns = 10;                         % Number of Monte Carlo runs.
rho = zeros(NRuns,Lfd);
SINRa = zeros(NRuns,Lfd);
time_loop = zeros(1,NRuns);
% Set the seed of the RNG.
LSINRest = zeros(Lfd,length(Samples));
colors = [0 1 0; 1 0 0 ; 1 1 0; 0 1 1; 1 0 1;];
rng(131);
warning('off', 'all');

for n3=1:length(Samples)

    for n2=1:NRuns
        n2; %#ok<*NOPTS>
        X   = zeros(M*N,Samples(n3));
        Rest = zeros(M*N,M*N);
        for n4=1:Samples(n3)

            % Create Thermal Noise Measurement space-time vector:
            chi_n = sqrt(sigma2/2)*(randn(M*N,1) + 1i*randn(M*N,1));

            % Create #1 Jammer Interference Measurement temporal vector:
            alphaj1 = sqrt(sigma2*ksi_j(1,1)/2)*(randn(M,1) + 1i*randn(M,1));
            % Create #2 Jammer Interference Measurement temporal vector:
            alphaj2 = sqrt(sigma2*ksi_j(1,2)/2)*(randn(M,1) + 1i*randn(M,1));
            % Create #1 Jammer Interference Measurement space-time vector:
            chi_j1 = kron(alphaj1, Aj(:,1));
            % Create #2 Jammer Interference Measurement space-time vector:
            chi_j2 = kron(alphaj2, Aj(:,2));

            % Create Total Jamming Interference Measurement space-time vector:
            chi_j = chi_j1 + chi_j2;

            % Create Total Clutter Interference Measurement space-time vector:
            R = rand(1,Nc);  I = randn(1,Nc);
            Ksi1 = repmat(sqrt(sigma2*ksi/2).*(R + 1i*I),[M*N 1]);
            chi_ik = sum(Ksi1.*Vc,2);
            % Add the interference component vectors to get the total
            % (target free) measured interference space-time snapshot:
            X(:,n4) = chi_ik + chi_j + chi_n;

        end

        % Interference Sample Covariance Matrix Computation:
        meanX = 1/Samples(n3)*sum(X,2);
        Ruest = 1/Samples(n3)*(X*X') - (meanX*meanX');                         % Eq. (129)
        InvRuest = inv(Ruest);

        for n1=1:Lfd
            bt = exp(1i*2*pi*omegat(n1)*(0:M-1)); % Dummy Target Doppler Steering Vector
            vt = kron(bt,at).';
            w = InvRu*vt;
            west = InvRuest*vt;                                                % Eq. (130)
            rho(n2,n1) = abs(west'*vt)^2/real(west'*Ru*west)/real(w'*vt);      % Eq. (132)
        end
    end

    % Average the Estimated SINR Loss Factor ρ (rho) and apply it to the Optimal SINR Loss
    % LSINTopt to calculate the estimated SMI SINR Loss:
    LSINRest(:,n3) = 1/NRuns*sum(rho).*LSINRopt;                               % Eq. (136)

    plot(fd,10*log10(abs(LSINRest(:,n3))),'LineWidth',1.5,'Color', colors(n3,:))

end

ylabel('Expected SINR Loss (dB)');
xlabel('Target Doppler Frequency (Hz)');
% ylim([-30 1]);
legend('Known Covariance Matrix', 'SMI using Ke = N_{dof} samples', ...
       'SMI using Ke = 2N_{dof} samples', 'SMI using Ke = 3N_{dof} samples', ...
       'SMI using Ke = 4N_{dof} samples','SMI using Ke = 5N_{dof} samples', ...
       'Location','East');
ylim([-40,5]);
grid on;