MATLAB Examples

# Figure 17. Clutter Eigenspectra for Different Levels of ICM.

## Contents

Coded by Ilias Konsoulas, 16 Dec. 2014.
Code provided for educational purposes only. All rights reserved.
clc; clear; close all; 

fo = 450e6; % Operating Frequency in Hz. Pt = 200e3; % Peak Transmit Power 200 kW. Gt = 22; % Transmit Gain in dB. Gr = 10; % Column Receive Gain in dB. B = 4*1e6; % Receiver Instantaneous Bandwidth in Hz. Ls = 4; % System Losses in dB. fr = 300; % PRF in Hz. Tr = 1/fr; % PRI in sec. M = 18; % Number of Pulses per CPI. Tp = 200*1e-6; % Pulse Width in sec. N = 18; % Number of Array Antenna Elements Gel = 4; % Element Gain in dB. be = -30; % Element Backlobe Level in db. Nc = 361; % Number of clutter patches uniformly distributed in azimuth. c = 299792458; % Speed of Light in m/sec. lambda = c/fo; % Operating wavelength in meters. d = lambda/2; % Interelement Spacing % Azimuth angle in degrees: phi = -180:180; Lphi = length(phi); f = zeros(1,Lphi); AF = zeros(1,Lphi); % Array Factor pre-allocation. 

## Platform Parameters

beta = 1; % beta parameter. ha = 9e3; % Platform altitude in meters. Rcik = 13e4; % (clutter) range of interest in meters. 

## Thermal Noise Power Computations.

k = 1.3806488*1e-23; % Boltzmann Constant in J/K. To = 290; % Standard room Temperature in Kelvin. F = 3; % Receiver Noise Figure in dB; Te = To*(10^(F/10) - 1); % Effective Receiver Temperature in Kelvin. Nn = k*Te; % Receiver Noise PSD in Watts/Hz. Pn = Nn*B; % Receiver Noise Power in Watts. sigma2 = 1; % Normalized Noise Power. 

## Clutter Patch Geometry Parameters.

dphi = 2*pi/Nc; % Azimuth angle increment in rad. dR = c/2/B; % Radar Range Resolution in meters. Re = 6370000; % Earth Radius in meters. ae = 4/3*Re; % Effective Earth Radius in meters. psi = asin(ha/Rcik); % Grazing angle at the clutter patch in rad (flat earth model). theta = psi; % Elevation (look-down angle). Flat earth assumption. gamma = 10^(-3/10); % Terrain-dependent reflectivity factor. phia = 0; % Velocity Misalignment angle in degrees. sigma_icm = [0 0.01 0.05 0.1 0.5]; % Intrinsic Clutter Motion Standard Deviations vector in meters/sec. 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 Voltage Element Pattern

for i =1:Lphi if abs(phi(i))<=90 f(i) = cos(phi(i)*pi/180); else f(i) = 10^(be/10)*cos(phi(i)*pi/180); end end 

## Calculate the Array Factor (AF) (Voltage)

steering_angle = 0; % Angle of beam steering in degrees. for k=1:Lphi AF(k) = sum(exp(-1i*2*pi/lambda*d*(0:N-1)*(sin(phi(k)*pi/180) ... - sin(steering_angle*pi/180))).*cos(phi(k)*pi/180)); end 

## Calculate the Full Array Transmit Power Gain:

Gtgain = 10^(Gt/10)*abs(AF).^2; 

## Calculate the Element Receive Power Gain

grgain = 10^(Gel/10)*10^(Gr/10)*abs(f).^2; 

## Clutter Patch RCS Calculation

PatchArea = Rcik*dphi*dR*sec(psi); sigma0 = gamma*sin(psi); sigma = sigma0*PatchArea; 

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

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

## Platform Velocity for beta parameter value:

va = beta*d*fr/2; 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');