Draw of envelope of the antenna radiation patterns for all available beams

4 visualizaciones (últimos 30 días)
Daniel
Daniel el 15 de Abr. de 2025
Editada: AR el 3 de Jun. de 2025
I am new to the matlab suite.
I have seen several examples of how to draw beams in 5G communications, with different configs.
I am interested to see how to draw the envelope of the antenna radiation patterns for all available beams.
How can I make this in matlab?
Is it possible with sensor array analyzer?

Respuestas (1)

AR
AR el 22 de Abr. de 2025
One way to plot the envelope of the antenna radiation patterns for all available beams, is by using the Phased Array System Toolbox in MATLAB.
Here is an example to draw the envelope of radiation patterns using an 8-element Uniform Linear Array (ULA) operating at 28 GHz:
% Parameters
N = 8; % Number of elements
fc = 28e9; % Frequency (28 GHz)
c = physconst('LightSpeed');
lambda = c/fc;
d = lambda/2; % Element spacing
array = phased.ULA('NumElements', N, 'ElementSpacing', d);
beamDirs = -60:20:60; % Beam steering directions
angles = -90:0.5:90; % Angle grid for plotting
allPatterns = zeros(length(beamDirs), length(angles));
for k = 1:length(beamDirs)
% Compute steering vector for this beam direction
w = phased.SteeringVector('SensorArray', array, 'IncludeElementResponse', true);
sv = w(fc, beamDirs(k));
% Array response object
arrayResp = phased.ArrayResponse('SensorArray', array, 'WeightsInputPort', true);
resp = arrayResp(fc, angles, sv); % [1 x numAngles], magnitude response
pat = 20*log10(abs(resp)); % Convert to dB
allPatterns(k, :) = pat;
plot(angles, pat, 'DisplayName', ['Beam at ' num2str(beamDirs(k)) '°']); hold on;
end
env = max(allPatterns, [], 1); % Envelope: max gain across all beams
plot(angles, env, 'k--', 'LineWidth', 2, 'DisplayName', 'Envelope');
xlabel('Angle (degrees)');
ylabel('Gain (dB)');
legend('show');
title('Radiation Patterns and Envelope for All Beams');
grid on; hold off;
The Phased Array Toolbox provides essential system objects such as “phased.ULA”,phased.SteeringVector”, and “phased.ArrayResponseused to model Uniform Linear Arrays, compute direction-dependent phase shifts and simulate array’s directional response respectively.
For interactive visualization and beam steering, you can use the Sensor Array Analyzer App. While this app is great for visualizing individual beam patterns, it does not compute the envelope across multiple beams directly. To do so, export the data and use a MATLAB script to calculate and plot the envelope.
Kindly refer to the documentation links below for more information on “phased.ULA”,phased.SteeringVector”, and “phased.ArrayResponse”:
I hope this answers your question.
  7 comentarios
AR
AR el 3 de Jun. de 2025
Editada: AR el 3 de Jun. de 2025
Glad to know that the solution helped and was useful!
AR
AR el 3 de Jun. de 2025
Editada: AR el 3 de Jun. de 2025
The graph now looks clear with proper cutoff values.

Iniciar sesión para comentar.

Categorías

Más información sobre Antennas, Microphones, and Sonar Transducers en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2024b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by