Continue to Site

# Array factor phased array beam steering problem

#### yefj

Hello, I have created exactly the array factor formula in matlab .
But when i add the beam steering delta member it does nothing to the main lobe.
Why it stays the same?
Thanks.

Code:
theta_0=pi*((20)/180);
amplitude_norm_V=[0.05,0.3,0.75,1,0.75,0.3,0.05];
delta=k*d*cos(theta_0);
x=sqrt(1/(sum(amplitude_norm_V.^2)));
real_voltage=amplitude_norm_V.*x;
real_power=(real_voltage.^2);
sum(real_power);
phases=[0,0,0,0,0,0,0]
theta=linspace(0,pi,1000);

f=5.6;

N=6;

lambda=300/f;
k=(2*pi)/lambda;
d=0.8*lambda;
total=0;
tot=0;
for z=1:6
AF=real_voltage(z)*exp(1i*(phases(z)/180*pi))*exp(-1i*(z-1)*k*d*cos(theta)+delta);
total=total+AF;
tot=tot+AF.^2;
end
plot((theta/pi)*180,20*log10(total));

clear; clc;

% Antenna array parameters
f = 5.6; % Frequency in GHz
N = 6; % Number of array elements
lambda = 300 / f; % Wavelength in meters
k = (2 * pi) / lambda; % Wave number
d = 0.8 * lambda; % Inter-element spacing

% Desired angle and amplitude normalization
theta_0 = pi * (20 / 180); % Reference angle in radians
amplitude_norm_V = [0.05, 0.3, 0.75, 1, 0.75, 0.3]; % Normalized amplitudes
delta = k * d * cos(theta_0); % Phase shift based on the reference angle

% Normalize the amplitudes
x = sqrt(1 / sum(amplitude_norm_V .^ 2));
real_voltage = amplitude_norm_V .* x;
real_power = real_voltage .^ 2;

% Define phase angles for the elements
phases = [0, 0, 0, 0, 0, 0]; % Ensure there are 6 elements

% Theta range for plotting
theta = linspace(0, pi, 1000); % Angle in radians

% Initialize total array factor
total = zeros(1, length(theta));
tot = zeros(1, length(theta));

% Calculate the array factor
for z = 1:N
AF = real_voltage(z) * exp(1j * (phases(z) / 180 * pi)) * exp(-1j * (z - 1) * k * d * cos(theta) + delta);
total = total + AF;
tot = tot + AF .^ 2; % Power addition for each element
end

% Convert the array factor to dB and plot
total_dB = 20 * log10(abs(total)); % Convert to dB
plot((theta / pi) * 180, total_dB); % Plot against angle in degrees

% Set plot labels and grid
xlabel('Angle (degrees)');
ylabel('Array Factor (dB)');
title('Array Factor of a Uniform Linear Array');
grid on;