3-D radiation pattern

2 views (last 30 days)
Mike Lee
Mike Lee on 8 Mar 2017
Answered: Samayochita on 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

Answers (1)

Samayochita
Samayochita on 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!

Categories

Find more on Phased Array Design and Analysis in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!