MATLAB Examples

# 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; ``` 