For practical 5G phased arrays, the beamforming effect is generated primarily by antenna spacing.
1. How 5G phased arrays work
- 5G base stations use multi-element antenna arrays (often 8×8, 16×16, or even more elements for Massive MIMO).
- Each antenna element transmits the same signal, but the phase of each element is controlled electronically.
- The physical spacing between antennas—usually ~0.5位 (half-wavelength) to 位—creates inherent phase differences when the signal reaches a user at an angle.
蠁total,n = 蠁steering,n - (2蟺/位) n d sin(胃)
Where:
n= antenna indexd= antenna spacing胃= angle of the target蠁steering,n= electronic phase shift applied to steer the beam
The steering phase compensates for the inherent phase from spacing to direct the beam toward the desired angle.
2. Why not use a single antenna with time delays?
- Software time delays can emulate phased arrays in simulations.
- But in real hardware:
- You need separate RF paths for each antenna element.
- Phase shifts are applied electronically using phase shifters at GHz frequencies.
- Physically shifting time on a single antenna would require ultra-fast RF switches—impractical at mmWave frequencies.
So, antenna spacing + electronic phase shifts is the standard method in 5G hardware.
3. Practical Summary for 5G
| Aspect | How It’s Done |
|---|---|
| Beamforming | Electronic phase shifts per antenna element |
| Direction control | Steering phases compensate for inherent spacing phase |
| Physical array | Required; spacing usually 0.5位 or 位 |
| Simulation | Can use single antenna + time delays, but only for modeling |
In real 5G phased arrays, the array spacing is the fundamental cause of phase differences, and beam steering is done by applying phase shifts per element, not by artificially delaying a single signal.
MATLAB Code
clc; clear; close all;
%% Parameters
N = 8; % Number of antenna elements
lambda = 1; % Wavelength (normalized)
d = 0.5*lambda; % Antenna spacing (half wavelength)
theta = -90:0.1:90; % Angle range in degrees
%% 1. Inherent Phase Only (No Steering)
theta_rad = deg2rad(theta);
inherent_phase = 2*pi*d/lambda * (0:N-1)' * sin(theta_rad);
AF_inherent = sum(exp(1j*inherent_phase),1); % Array factor
AF_inherent_dB = 20*log10(abs(AF_inherent)/N);
%% 2. Apply Phase Shifts to steer to 30 degrees
theta_s = 30; % Steering angle
steering_phase = -2*pi*d/lambda * (0:N-1)' * sin(deg2rad(theta_s));
AF_steered = sum(exp(1j*(inherent_phase + steering_phase)),1);
AF_steered_dB = 20*log10(abs(AF_steered)/N);
%% Plot
figure('Color','w','Position',[100 100 800 400]);
plot(theta, AF_inherent_dB,'b','LineWidth',2); hold on;
plot(theta, AF_steered_dB,'r','LineWidth',2);
grid on; xlabel('Angle (degrees)'); ylabel('Normalized Array Factor (dB)');
title('Linear Phased Array: Inherent vs Steered Phase');
legend('Inherent Phase (spacing only)','Applied Phase Shift (beam steering)');
ylim([-40 0]);