MATLAB Examples

Blocking Matrix Construction for Generalized Sidelobe Canceler Demo.

Workspace Initialization.

clc; clear; close all;

Signal Definitions.

M = 10;          % Number of Array Elements.
m = 1:M-1;
lambda = 1;      % Incoming Signal Wavelength in (m).
d = lambda/2;    % Interelement Distance in (m).
phi_s = 10;      % target azimuth angle in degrees.

u_s = (d/lambda)*sin(phi_s*pi/180);   % Normalized Spatial Frequency of the Target signal.
v_s = exp(-1i*2*pi*u_s*(0:M-1).')/sqrt(M);  % Target Steering Vector.

u_m = u_s + m/M;
B = zeros(M,M-1);

Blocking Matrix Construction.

for m=1:M-1
B(:,m) = exp(-1i*2*pi*u_m(m)*(0:M-1).')/sqrt(M);
end

Test #1: Mutual Orthogonality - Orthonormality:

B'*B
ans =

Columns 1 through 4

1.0000 + 0.0000i  -0.0000 + 0.0000i   0.0000 - 0.0000i   0.0000 + 0.0000i
-0.0000 - 0.0000i   1.0000 + 0.0000i  -0.0000 - 0.0000i   0.0000 + 0.0000i
0.0000 + 0.0000i  -0.0000 + 0.0000i   1.0000 + 0.0000i   0.0000 + 0.0000i
0.0000 - 0.0000i   0.0000 - 0.0000i   0.0000 - 0.0000i   1.0000 + 0.0000i
-0.0000 + 0.0000i   0.0000 - 0.0000i   0.0000 + 0.0000i  -0.0000 + 0.0000i
-0.0000 + 0.0000i   0.0000 + 0.0000i  -0.0000 + 0.0000i  -0.0000 - 0.0000i
0.0000 + 0.0000i  -0.0000 + 0.0000i   0.0000 + 0.0000i  -0.0000 - 0.0000i
0.0000 + 0.0000i   0.0000 - 0.0000i   0.0000 + 0.0000i  -0.0000 + 0.0000i
-0.0000 + 0.0000i   0.0000 - 0.0000i  -0.0000 + 0.0000i   0.0000 - 0.0000i

Columns 5 through 8

-0.0000 - 0.0000i  -0.0000 - 0.0000i   0.0000 - 0.0000i   0.0000 - 0.0000i
0.0000 + 0.0000i   0.0000 - 0.0000i  -0.0000 + 0.0000i   0.0000 + 0.0000i
0.0000 - 0.0000i  -0.0000 - 0.0000i   0.0000 - 0.0000i   0.0000 - 0.0000i
-0.0000 - 0.0000i  -0.0000 + 0.0000i  -0.0000 + 0.0000i  -0.0000 - 0.0000i
1.0000 + 0.0000i   0.0000 + 0.0000i  -0.0000 - 0.0000i  -0.0000 - 0.0000i
0.0000 + 0.0000i   1.0000 + 0.0000i  -0.0000 - 0.0000i  -0.0000 + 0.0000i
-0.0000 + 0.0000i  -0.0000 + 0.0000i   1.0000 + 0.0000i   0.0000 + 0.0000i
-0.0000 + 0.0000i  -0.0000 - 0.0000i   0.0000 - 0.0000i   1.0000 + 0.0000i
0.0000 + 0.0000i   0.0000 - 0.0000i   0.0000 + 0.0000i  -0.0000 + 0.0000i

Column 9

-0.0000 - 0.0000i
0.0000 + 0.0000i
-0.0000 - 0.0000i
0.0000 + 0.0000i
0.0000 - 0.0000i
0.0000 + 0.0000i
0.0000 - 0.0000i
-0.0000 - 0.0000i
1.0000 + 0.0000i

Test #2: Orthogonality with target Steering Vector:

B'*v_s
ans =

1.0e-15 *

-0.0555 - 0.0416i
-0.0486 + 0.1041i
0.2220 - 0.1943i
-0.1249 - 0.2637i
-0.0833 - 0.0278i
0.0347 + 0.2047i
-0.1665 - 0.2151i
0.7772 - 0.1110i
0.7355 + 0.5551i