Figure 11. Illustrating Brennan's Rule: Clutter Eigenspectra eigenspectra for the example radar system with different platform velocities.

Contents

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

clc; clear; close all;

Load Radar System Operational Parameters

radar_oper_params;

Platform Parameters.

beta = [0.6 1 2 2.83 3];      % Beta Parameter Vector.
phia = 0;                     % Velocity Misalignment Angle.

Thermal Noise Power Computations

thermal_noise_power;

Clutter Patch Geometry Computations

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. 

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)

Create Clutter Covariance Matrix and and Plot the Sorted Eigenvalues

a = zeros(N,Nc);
b = zeros(M,Nc);
Vc = zeros(M*N,Nc);
Rc = zeros(M*N,M*N);
p = zeros(length(beta),1);
Ksic = diag(ksi);
colors = [0 0 1; 0 1 0; 1 0 0 ; 1 1 0; 0 1 1;];

figure('NumberTitle', 'off','Name', ...
       'Figure 11. Illustrating Brennan''s Rule: Clutter Eigenspectra for Different Platform Velocities',...
       'Position', [50 50 700 550]);

for i=1:length(beta)

    Rc = clutt_cov(ksi,beta(i));

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

va = round(beta*d*fr/2);

ylim([-60 80]); xlim([1 100]);
grid on;
xlabel('Eigenvalue Number');
ylabel('Relative Power (dB)');

for i=1:length(beta)
    X = [round(N+(M-1)*beta(i)), round(N+(M-1)*beta(i))];
    Y = [-60, 80];
    line(X,Y,'Color',colors(i,:),'LineWidth',2)
end

legend(p,['\beta = 0.6,  v_a = ',num2str(va(1))], ['\beta = 1,     v_a = ',num2str(va(2))], ...
         ['\beta = 2,    v_a = ',num2str(va(3))], ['\beta = 2.83, v_a = ',num2str(va(4))], ...
         ['\beta = 3,    v_a = ',num2str(va(5))]);