Figure 17. Clutter Eigenspectra for Different Levels of ICM.

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 Computations

thermal_noise_power;

Clutter RCS Computation

clutter_patch_rcs;

Compute 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. 

Intrinsic Clutter Motion Standard Deviations vector in meters/sec

sigma_icm = [0 0.01 0.05 0.1 0.5];
kc = 4*pi*sigma_icm/lambda;

colors = [0 0 1; 0 1 0; 1 0 0 ; 1 1 0; 0 1 1; 1 0 1;];

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

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

Platform Velocity for beta parameter value:

phia = 0;                  % Velocity Misalignment angle in degrees.
beta = 1;
Ita = d/lambda*cos(theta);

Calculate Spatial and Doppler Frequencies.

Spatial frequency of the k-th clutter patch.

fsp = Ita*sin(phi*pi/180);
% Normalized Doppler Frequency:
omegac = beta*Ita*sin(phi*pi/180 + phia*pi/180);
Gammac = zeros(M,Nc);

Calculate and Plot the Clutter Eigenspectrum for Different Levels of ICM.

figure('NumberTitle', 'off','Name','Figure 17. Clutter Eigenspectra for Different Levels of ICM', ...
       'Position',[1 1 750 600]);

for i=1:length(sigma_icm)

    % Steering Vector Pre-allocation:
    a = zeros(N,Nc);
    b = zeros(M,Nc);
    Rc = zeros(M*N,M*N);

    % Temporal autocorrelation of the fluctuations is also Gaussian.
    gammac = exp(-(kc(i)^2*Tr^2*(0:M-1).^2)/2);                                           % Eq. (91)
    Gammac = toeplitz(gammac);                                                            % Eq. (94)

    for k=1:Nc
        a(:,k) = exp(1i*2*pi*fsp(k)*(0:N-1));    % Spatial Steering Vector.
        b(:,k) = exp(1i*2*pi*omegac(k)*(0:M-1)); % Temporal Steering Vector
        Rc = Rc + ksi(k)*kron(Gammac.*(b(:,k)*b(:,k)'),a(:,k)*a(:,k)');                   % Eq. (95)
    end

    plot(10*log10(sort(abs(eig(Rc)),'descend')),'--s','LineWidth',1,'Color', colors(i,:), ...
         'MarkerEdgeColor','k','MarkerFaceColor',colors(i,:), 'MarkerSize',5);
    hold on;

end

% Plot the Clutter Eigenspectra.
ylim([-70 80]); xlim([0 120]);
grid on;
legend('\sigma_v = 0     m/sec', '\sigma_v = 0.01 m/sec', '\sigma_v = 0.05 m/sec', ...
       '\sigma_v = 0.1   m/sec', '\sigma_v = 0.5   m/sec');
ylabel('Relative Power (dB)'); xlabel('Eigenvalue Number');