3-D radiation pattern

2 visualizzazioni (ultimi 30 giorni)
Mike Lee
Mike Lee il 8 Mar 2017
Risposto: Samayochita il 14 Feb 2025
Hi,
I have do have a set of data including azimuth, elevation that are in degrees and amplitude. I am just trying to get a 3-D scatter plot with these data and this is what I am getting after converting into Cartesian form.
But I am supposed to get something similar like below,
Are there any useful functions I can use to generate 3-D radiation pattern? I am using Matlab R2013a
Thank you

Risposte (1)

Samayochita
Samayochita il 14 Feb 2025
Hi Mike,
To generate a 3D radiation pattern in MATLAB, you can use functions like meshgrid, “sph2cart”, surf etc. You can follow the below steps to do so:
  1. Convert azimuth, elevation, and amplitude into Cartesian coordinates.
  2. Use a visualization method such as surf, meshgrid, or sph2cart instead of scatter3.
  3. Normalize the amplitude if necessary.
I have written an example code for your reference:
%replace this with your actual data
az = linspace(0, 360, 50); % Azimuth angles
el = linspace(-90, 90, 50); % Elevation angles
[AZ, EL] = meshgrid(deg2rad(az), deg2rad(el)); % Convert to radians
% amplitude pattern
R = abs(cos(EL) .* cos(AZ));
% Convert to Cartesian coordinates
[X, Y, Z] = sph2cart(AZ, EL, R);
% Plot using surf
figure;
surf(X, Y, Z, R, 'EdgeColor', 'none');
colormap(jet);
colorbar; % Show amplitude scale
xlabel('X'); ylabel('Y'); zlabel('Z');
title('3D Radiation Pattern Example');
axis equal;
view(3);
grid on;
Documentation for reference:
Hope this helps!

Categorie

Scopri di più su Phased Array Design and Analysis in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by