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

6 visualizzazioni (ultimi 30 giorni)
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?

Risposte (1)

AR
AR il 22 Apr 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 Commenti
AR
AR il 3 Giu 2025
Modificato: AR il 3 Giu 2025
Glad to know that the solution helped and was useful!
AR
AR il 3 Giu 2025
Modificato: AR il 3 Giu 2025
The graph now looks clear with proper cutoff values.

Accedi per commentare.

Prodotti


Release

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by