MATLAB Examples

# Example 11.3.2.

We revisit the problem from Example 11.2.2 with a jammer at except that the jammer power is now 70 dB. Clearly, the -50dB tapered beamformer is no longer capable of sufficiently suppressing this jammer. Rather, we compute the optimum beamformer using (11.3.15), where . First, we examine the beampattern of the optimum beamformer steered to in Figure 11.17(a). Notice the null on the jammer at with a depth of greater than -150 dB. We also plot the SINR loss in Figure 11.17(b) as we scan the look direction from -90 to 90 deg.

## Workspace Initialization.

clc; clear; close all; 

## Signal Definitions.

M = 20; % Number of Array Elements. N = 200; % Number of Signal Samples. n = 1:N; % Time Sample Index Vector. lambda = 1; % Incoming Signal Wavelength in (m). d = lambda/2; % Interelement Distance in (m). SNR = 20; % Target Array SNR in dBs phi_s = 0; % target azimuth angle in degrees phi_i = 20; % interference angle in degrees INR = 70; % Interference #1 Power in dBs u_s = (d/lambda)*sin(phi_s*pi/180); % Target Normalized Spatial Frequency. u_i1 = (d/lambda)*sin(phi_i*pi/180); % Interferer Normalized Spatial Frequency. s = zeros(M,N); v_s = exp(-1i*2*pi*u_s*(0:M-1).')/sqrt(M); % Target Steering Vector. s(:,100) = (10^(SNR/20))*v_s; % Target Voltage Signal Generation. % Uncorrelated unit power thermal noise samples with a complex Gaussian distribution: w = (randn(M,N)+1i*randn(M,N))/sqrt(2); % The interference signal vector is generated by: v_i = exp(-1i*2*pi*u_i1*(0:M-1).')/sqrt(M); % Interferer Steering Vector. i_x = 10^(INR/20)*v_i*(randn(1,N)+1i*randn(1,N))/sqrt(2); %The three signals are added to produce the overall array signal: x = s + i_x + w; iplusn = i_x + w; % Calculation of the Interference + Noise autocorrelation matrix. R_ipn = 10^(INR/10)*(v_i*v_i') + eye(M); InvR = inv(R_ipn); % Optimum Beamformer computed for a phi_s = 0 deg using (11.3.15). c_opt = InvR*v_s/(v_s'*InvR*v_s); %#ok<MINV> % Spatial Matched Filter or Steering Vector Beamformer Eq. (11.2.16). c_mf = v_s; % Array Output Signal Calculation: y1 = c_mf'*x; y2 = c_opt'*x; 

## Plot the Results.

figure('NumberTitle', 'off','Name','Figure 11.17 (c) and (d)') subplot(2,1,1); plot(n,10*log10(abs(y1).^2)); title('Instantaneous Signal Power at the Untapered Spatial Matched Filter Output'); xlabel('Range Cell'); ylabel('Power (dB)'); grid on; subplot(2,1,2); plot(n,10*log10(abs(y2).^2)); ylim([0 30]); title('Instantaneous Signal Power at the MVDR Optimum Beamformer Output'); xlabel('Range Cell'); ylabel('Power (dB)'); grid on; % max(10*log10(abs(y2).^2)) Nsamples = 6e4; angle = -35:70/Nsamples:35-70/Nsamples; Opt_Beam_Pat = zeros(Nsamples,1); Conv_Beam_Pat = zeros(Nsamples,1); for k=1:Nsamples u = (d/lambda)*sin(angle(k)*pi/180); v = exp(-1i*2*pi*u*(0:M-1)')/sqrt(M); % Azimuth Scanning Steering Vector. Opt_Beam_Pat(k) = c_opt'*v; Conv_Beam_Pat(k) = c_mf'*v; end 

## Plot the corresponding Beampatterns.

figure('NumberTitle', 'off','Name','Figure 11.17 (a)'); plot(angle,10*log10(abs(Conv_Beam_Pat).^2),angle,10*log10(abs(Opt_Beam_Pat).^2),'r--', 'LineWidth',1.5) title([' Beamformer Design with d = \lambda/2 and M = 20. '; 'Conventional Beamformer (blue), and MVDR Optimum Beamformer (red).';]); xlim([-35 35]); ylim([-160 5]); grid on; xlabel('Angle (deg)'); ylabel('Power (dB)'); 

## Calculate the SINR loss factor for the optimum beamformer:

Lsinr_opt = zeros(Nsamples,1); Lsinr_mf = zeros(Nsamples,1); SNR0 = M*10^(SNR/10); angle = -35:70/Nsamples:35-70/Nsamples; for k=1:Nsamples u = (d/lambda)*sin(angle(k)*pi/180); v = exp(-1i*2*pi*u*(0:M-1)')/sqrt(M); % Azimuth Scanning Steering Vector. c_mf = v; % This is the spatial matched filter beamformer. Lsinr_opt(k) = v'*InvR*v; %#ok<MINV> SINRout_mf = real(M*(10^(SNR/10))*(abs(c_mf'*v)^2)/(c_mf'*R_ipn*c_mf)); Lsinr_mf(k) = SINRout_mf/SNR0; end 

## Plot SINR Loss Factor.

figure('NumberTitle', 'off','Name','Figure 11.17 (b)'); plot(angle,10*log10(abs(Lsinr_opt)),angle,10*log10(abs(Lsinr_mf)),'r', 'LineWidth',1.5); ylim([-75 5]); xlim([-35 35]); xlabel('Angle (deg)'); ylabel('SINR Loss (dB)'); title('SINR Loss for the MVDR Optimum Beamformer (blue) and the Conventional Beamformer (Red)'); grid on;