phitheta2azelpat

Convert radiation pattern from phi-theta coordinates to azimuth-elevation coordinates

Description

example

pat_azel = phitheta2azelpat(pat_phitheta,phi,theta) converts the antenna radiation pattern, pat_phitheta, from phi and theta coordinates to the pattern pat_azel in azimuth and elevation coordinates. phi and theta are the phi and theta coordinates at which pat_phitheta values are defined. The pat_azel matrix covers azimuth values from –180 to 180 degrees and elevation values from –90 to 90 degrees in one degree increments. The function interpolates the pat_phitheta matrix to estimate the response of the antenna in a given direction.

example

pat_azel = phitheta2azelpat(pat_phitheta,phi,theta,az,el) uses vectors az and el to specify the grid at which to sample pat_azel. To avoid interpolation errors, az should cover the range [–180, 180] and el should cover the range [–90, 90].

example

pat_azel = phitheta2azelpat(___,'RotateZ2X',rotpatax) also specifies rotpatax to indicate the boresight direction of the pattern: x-axis or z-axis.

example

[pat_azel,az_pat,el_pat] = phitheta2azelpat(___) also returns vectors az_pat and el_pat containing the azimuth and elevation angles at which pat_azel is sampled.

Examples

collapse all

Convert a radiation pattern to azimuth/elevation form, with the azimuth and elevation angles spaced 1° apart.

Define the pattern in terms of φ and θ.

phi = 0:360;
theta = 0:180;
pat_phitheta = mag2db(repmat(cosd(theta)',1,numel(phi)));

Convert the pattern to azimuth/elevation space.

pat_azel = phitheta2azelpat(pat_phitheta,phi,theta);

Convert a radiation pattern from theta/phi coordinates to azimuth/elevation coordinates, with azimuth and elevation angles spaced ${1}^{\circ }$ apart.

Define the pattern in terms of phi, $\varphi$, and theta, $\theta$, coordinates.

phi = 0:360;
theta = 0:180;
pat_phitheta = mag2db(repmat(cosd(theta)',1,numel(phi)));

Convert the pattern to azimuth/elevation coordinates. Get the azimuth and elevation angles for use in plotting.

[pat_azel,az,el] = phitheta2azelpat(pat_phitheta,phi,theta);

H = surf(az,el,pat_azel);
H.LineStyle = 'none';
xlabel('Azimuth (degrees)');
ylabel('Elevation (degrees)');
zlabel('Pattern'); Convert a radiation pattern to the azimuth-elevation coordinates from alternative phi-theta coordinates, with the phi and theta angles spaced one degree apart.

Create a simple radiation pattern in terms of phi and theta. Add an offset to the pattern to suppress taking the logarithm of zero in mag2db.

phi = 0:360;
theta = 0:180;
pat_phitheta = mag2db(10*sind(theta').^2*cosd(phi).^4 + 1);
imagesc(phi,theta,pat_phitheta)
xlabel('Phi (deg)')
ylabel('Theta (deg)')
colorbar [pat_azel,az_pat,el_pat] = phitheta2azelpat(pat_phitheta,phi,theta,'RotateZ2X',false);
imagesc(az_pat,el_pat,pat_azel)
xlabel('Azimuth (deg)')
ylabel('Elevation (deg)')
colorbar Convert a radiation pattern from phi/theta coordinates to azimuth/elevation coordinates, with the azimuth and elevation angles spaced ${5}^{\circ }$ apart.

Define the pattern in terms of phi and theta.

phi = 0:360;
theta = 0:180;
pat_phitheta = mag2db(repmat(cosd(theta)',1,numel(phi)));

Define the set of azimuth and elevation angles at which to sample the pattern. Then, convert the pattern.

az = -180:5:180;
el = -90:5:90;
pat_azel = phitheta2azelpat(pat_phitheta,phi,theta,az,el);

H = surf(az,el,pat_azel);
H.LineStyle = 'none';
xlabel('Azimuth (degrees)');
ylabel('Elevation (degrees)');
zlabel('Pattern'); Input Arguments

collapse all

Antenna radiation pattern in phi-theta coordinates, specified as a real-valued Q-by-P matrix. pat_phitheta contains the magnitude pattern. P is the length of the phi vector, and Q is the length of the theta vector. Units are in dB.

Data Types: double

Phi angles at which pat_phitheta is sampled, specified as a vector of real-valued length-P vector. Phi angles lie between 0 and 360, inclusive. Units are in degrees.

Data Types: double

Theta angles at which pat_phitheta is sampled, specified as a vector of real-valued length-Q vector. Theta angles lie between 0 and 180, inclusive. Units are in degrees.

Data Types: double

Azimuth angles at which pat_azel samples the pattern, specified as a vector of real-valued length-L vector. Azimuth angles lie between –180 and 180, inclusive. Units are in degrees.

Data Types: double

Elevation angles at which pat_azel samples the pattern, specified as a real-valued length-M vector. Elevation angle lie between –90 and 90, inclusive. Units are in degrees.

Data Types: double

Pattern boresight direction selector, specified as true or false.

• If rotpatax is true, the pattern boresight is along the x-axis. In this case, the z-axis of phi-theta space is aligned with the x-axis of azimuth and elevation space. The phi angle is defined from the y-axis to the z-axis and the theta angle is defined from the x-axis toward the yz-plane. (See Phi and Theta Angles).

• If rotpatax is false, the phi angle is defined from the x-axis to the y-axis and the theta angle is defined from the z-axis toward the xy-plane. (See Alternative Definition of Phi and Theta).

Data Types: logical

Output Arguments

collapse all

Antenna radiation pattern in azimuth-elevation coordinates, returned as a real-valued M-by-L matrix. pat_azel represents the magnitude pattern. L is the length of the az_pat vector, and M is the length of the el_pat vector. Units are in dB.

Azimuth angles at which the pat_azel output pattern is sampled, returned as a real-valued length-L vector. Units are in degrees.

Elevation angles at which the pat_azel output pattern is sampled, returned as a real-valued length-M vector. Units are in degrees.

collapse all

Azimuth and Elevation Angles

The azimuth angle of a vector is the angle between the x-axis and the orthogonal projection of the vector onto the xy plane. The angle is positive in going from the x axis toward the y axis. Azimuth angles lie between –180 and 180 degrees. The elevation angle is the angle between the vector and its orthogonal projection onto the xy-plane. The angle is positive when going toward the positive z-axis from the xy plane. By default, the boresight direction of an element or array is aligned with the positive x-axis. The boresight direction is the direction of the main lobe of an element or array.

Note

The elevation angle is sometimes defined in the literature as the angle a vector makes with the positive z-axis. The MATLAB® and Phased Array System Toolbox™ products do not use this definition.

This figure illustrates the azimuth angle and elevation angle for a vector shown as a green solid line. Phi and Theta Angles

The phi angle (φ) is the angle from the positive y-axis to the vector’s orthogonal projection onto the yz plane. The angle is positive toward the positive z-axis. The phi angle is between 0 and 360 degrees. The theta angle (θ) is the angle from the x-axis to the vector itself. The angle is positive toward the yz plane. The theta angle is between 0 and 180 degrees.

The figure illustrates phi and theta for a vector that appears as a green solid line. The coordinate transformations between φ/θ and az/el are described by the following equations

$\begin{array}{l}\mathrm{sin}el=\mathrm{sin}\varphi \mathrm{sin}\theta \\ \mathrm{tan}az=\mathrm{cos}\varphi \mathrm{tan}\theta \\ \mathrm{cos}\theta =\mathrm{cos}el\mathrm{cos}az\\ \mathrm{tan}\varphi =\mathrm{tan}el/\mathrm{sin}az\end{array}$

Alternative Definition of Phi and Theta

The phi angle (φ) is the angle from the positive x-axis to the vector’s orthogonal projection onto the xy plane. The angle is positive toward the positive y-axis. The phi angle is between 0 and 360 degrees. The theta angle (θ) is the angle from the z-axis to the vector itself. The angle is positive toward the xy plane. The theta angle is between 0 and 180 degrees.

The figure illustrates φ and θ for a vector that appears as a green solid line. $\begin{array}{l}\varphi =az\\ \theta =90-el\\ az=\varphi \\ el=90-\theta \end{array}$

Extended Capabilities

Introduced in R2012a