# uv2azelpat

Convert radiation pattern from u/v form to azimuth/elevation form

## Syntax

## Description

expresses
the antenna radiation pattern `pat_azel`

= uv2azelpat(`pat_uv`

,`u`

,`v`

)`pat_azel`

in azimuth/elevation
angle coordinates instead of u/v space coordinates. `pat_uv`

samples
the pattern at *u* angles in `u`

and *v* angles
in `v`

. The `pat_azel`

matrix
uses a default grid that covers azimuth values from –90 to
90 degrees and elevation values from –90 to 90 degrees. In
this grid, `pat_azel`

is uniformly sampled with
a step size of 1 for azimuth and elevation. The function interpolates
to estimate the response of the antenna at a given direction.

## Examples

### Convert Radiation Pattern

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

Define the pattern in terms of *u* and *v*. Because *u* and *v* values outside the unit circle are not physical, set the pattern values in this region to zero.

u = -1:0.01:1; v = -1:0.01:1; [u_grid,v_grid] = meshgrid(u,v); pat_uv = sqrt(1 - u_grid.^2 - v_grid.^2); pat_uv(hypot(u_grid,v_grid) >= 1) = 0;

Convert the pattern to azimuth/elevation space.

pat_azel = uv2azelpat(pat_uv,u,v);

### Plot Converted Radiation Pattern

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

Define the pattern in terms of *u* and *v*. Because *u* and *v* values outside the unit circle are not physical, set the pattern values in this region to zero.

u = -1:0.01:1; v = -1:0.01:1; [u_grid,v_grid] = meshgrid(u,v); pat_uv = sqrt(1 - u_grid.^2 - v_grid.^2); pat_uv(hypot(u_grid,v_grid) >= 1) = 0;

Convert the pattern to azimuth/elevation space. Store the azimuth and elevation angles for plotting.

[pat_azel,az,el] = uv2azelpat(pat_uv,u,v);

Plot the pattern.

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

### Convert Radiation Pattern Using Specific Azimuth/Elevation Values

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

Define the pattern in terms of *u* and *v*. Because *u* and *v* values outside the unit circle are not physical, set the pattern values in this region to zero.

u = -1:0.01:1; v = -1:0.01:1; [u_grid,v_grid] = meshgrid(u,v); pat_uv = sqrt(1 - u_grid.^2 - v_grid.^2); pat_uv(hypot(u_grid,v_grid) >= 1) = 0;

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

az = -90:5:90; el = -90:5:90; pat_azel = uv2azelpat(pat_uv,u,v,az,el);

Plot the pattern.

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

## Input Arguments

`pat_uv`

— Antenna radiation pattern in *u*/*v* form

Q-by-P matrix

`u`

— *u* coordinates

vector of length P

*u* coordinates at which `pat_uv`

samples
the pattern, specified as a vector of length P. Each coordinate is
between –1 and 1.

**Data Types: **`double`

`v`

— *v* coordinates

vector of length Q

*v* coordinates at which `pat_uv`

samples
the pattern, specified as a vector of length Q. Each coordinate is
between –1 and 1.

**Data Types: **`double`

`az`

— Azimuth angles

`[-90:90]`

(default) | vector of length L

Azimuth angles at which `pat_azel`

samples
the pattern, specified as a vector of length L. Each azimuth angle
is in degrees, between –90 and 90. Such azimuth angles are
in the hemisphere for which *u* and *v* are
defined.

**Data Types: **`double`

`el`

— Elevation angles

`[-90:90]`

(default) | vector of length M

Elevation angles at which `pat_azel`

samples
the pattern, specified as a vector of length M. Each elevation angle
is in degrees, between –90 and 90.

**Data Types: **`double`

## Output Arguments

`pat_azel`

— Antenna radiation pattern in azimuth-elevation coordinates

real-valued *M*-by-*L* matrix

`az_pat`

— Azimuth angles

real-valued length-*L* vector

Azimuth angles at which the `pat_azel`

output pattern is sampled,
returned as a real-valued length-*L* vector. Units are in
degrees.

`el_pat`

— Elevation angles

real-valued length-*M* vector

Elevation angles at which the `pat_azel`

output pattern is
sampled, returned as a real-valued length-*M* vector. Units are in
degrees.

## More About

### U/V Space

The *u* and *v* coordinates
are the direction cosines of a vector with respect to the *y*-axis
and *z*-axis, respectively.

The *u*/*v* coordinates for
the hemisphere *x* ≥ 0 are derived from the phi and theta angles,
as follows:

$$\begin{array}{l}u=\mathrm{sin}\theta \mathrm{cos}\varphi \\ v=\mathrm{sin}\theta \mathrm{sin}\varphi \end{array}$$

In these expressions, φ and θ are the phi and theta angles, respectively.

To convert azimuth and elevation to *u* and *v* use the
transformation

$$\begin{array}{l}u=\mathrm{cos}el\mathrm{sin}az\\ v=\mathrm{sin}el\end{array}$$

which is valid only in the range *abs(az)≤=90*.

The values of *u* and *v* satisfy
the inequalities

$$\begin{array}{l}-1\le u\le 1\\ -1\le v\le 1\\ {u}^{2}+{v}^{2}\le 1\end{array}$$

Conversely, the phi and theta angles can be written in terms
of *u* and *v* using

$$\begin{array}{l}\mathrm{tan}\varphi =v/u\\ \mathrm{sin}\theta =\sqrt{{u}^{2}+{v}^{2}}\end{array}$$

The azimuth and elevation angles can also be written in terms of *u* and
*v*:

$$\begin{array}{l}\mathrm{sin}el=v\\ \mathrm{tan}az=\frac{u}{\sqrt{1-{u}^{2}-{v}^{2}}}\end{array}$$

### Phi Angle, Theta Angle

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}$$

### Azimuth Angle, Elevation Angle

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.

## Extended Capabilities

### C/C++ Code Generation

Generate C and C++ code using MATLAB® Coder™.

Usage notes and limitations:

Does not support variable-size inputs.

## Version History

**Introduced in R2012a**

## Open Example

You have a modified version of this example. Do you want to open this example with your edits?

## MATLAB Command

You clicked a link that corresponds to this MATLAB command:

Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.

Select a Web Site

Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .

You can also select a web site from the following list:

## How to Get Best Site Performance

Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.

### Americas

- América Latina (Español)
- Canada (English)
- United States (English)

### Europe

- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)

- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)