# radarvcd

## Syntax

## Description

`[`

calculates the vertical coverage pattern of a narrowband radar antenna. The
Vertical Coverage Pattern is the range of
the radar `vcp`

,`vcpangles`

] = radarvcd(`freq`

,`rfs`

,`anht`

)`vcp`

as a function of elevation angle
`vcpangles`

. The vertical coverage pattern depends on
three parameters: maximum free-space detection range of the radar
`rfs`

, the radar frequency `freq`

, and
the antenna height `anht`

.

`radarvcd(___)`

displays the vertical coverage
diagram for a radar system. The plot is the locus of points of maximum radar
range as a function of target elevation. This plot is also known as the
*Blake chart*. To create this chart,
`radarvcd`

invokes the function `blakechart`

using default
parameters. To produce a Blake chart with different parameters, first call
`radarvcd`

to obtain `vcp`

and
`vcpangles`

. Then, call `blakechart`

with user-specified parameters. This syntax can use any of the previous
syntaxes.

## Examples

### Plot Vertical Coverage Pattern Using Default Parameters

Set the frequency to 100 MHz, the antenna height to 10 m, and the free-space range to 200 km. The antenna pattern, surface roughness, antenna tilt angle, and field polarization assume their default values as specified in the `AntennaPattern`

, `SurfaceRoughness`

, `TiltAngle`

, and `Polarization`

properties.

Obtain an array of vertical coverage pattern values and angles.

freq = 100e6; ant_height = 10; rng_fs = 200; [vcp,vcpangles] = radarvcd(freq,rng_fs,ant_height);

To see the vertical coverage pattern, omit the output arguments.

radarvcd(freq,rng_fs,ant_height);

### Vertical Coverage Pattern with Specified Antenna Pattern

Set the frequency to 100 MHz, the antenna height to 10 m, and the free-space range to 200 km. The antenna pattern is a sinc function with 45° half-power width. The surface height standard deviation is set to $1/2\sqrt{2}$ m. The antenna tilt angle is set to 0°, and the field polarization is horizontal.

pat_angles = linspace(-90,90,361)'; freq = 100e6; ntn = phased.SincAntennaElement('Beamwidth',45); pat = ntn(freq,pat_angles'); ant_height = 10; rng_fs = 200; tilt_ang = 0; [vcp,vcpangles] = radarvcd(freq,rng_fs,ant_height,... 'RangeUnit','km','HeightUnit','m',... 'AntennaPattern',pat,... 'PatternAngles',pat_angles,... 'TiltAngle',tilt_ang,'SurfaceHeightStandardDeviation',1/(2*sqrt(2)));

Call `radarvcd`

with no output arguments to display the vertical coverage pattern.

radarvcd(freq,rng_fs,ant_height,... 'RangeUnit','km','HeightUnit','m',... 'AntennaPattern',pat,... 'PatternAngles',pat_angles,... 'TiltAngle',tilt_ang,'SurfaceHeightStandardDeviation',1/(2*sqrt(2)));

Alternatively, use the `radarvcd`

output arguments and the `blakechart`

function to display the vertical coverage pattern to a maximum range of 400 km and a maximum height of 50 km. Customize the Blake chart by changing the color.

blakechart(vcp,vcpangles,400,50, ... 'FaceColor',[0.8500 0.3250 0.0980],'EdgeColor',[0.8500 0.3250 0.0980])

### Plot Vertical Coverage Diagram For User-Specified Antenna

Plot the range-height-angle curve (Blake chart) for a radar with a user-specified antenna pattern.

Define a sinc-function antenna pattern with a half-power beamwidth of 90 degrees. The radar transmits at 100 MHz.

```
pat_angles = linspace(-90,90,361)';
freq = 100e6;
ntn = phased.SincAntennaElement('Beamwidth',90);
pat = ntn(freq,pat_angles');
```

Specify a free-space range of 200 km. The antenna height is 10 meters, the antenna tilt angle is zero degrees, and the surface roughness is one meter.

rng_fs = 200; ant_height = 10; tilt_ang = 0; surf_roughness = 1;

Create the radar range-height-angle plot.

radarvcd(freq,rng_fs,ant_height,... 'RangeUnit','km','HeightUnit','m',... 'AntennaPattern',pat,... 'PatternAngles',pat_angles,... 'TiltAngle',tilt_ang,... 'SurfaceHeightStandardDeviation',surf_roughness/(2*sqrt(2)));

## Input Arguments

`freq`

— Radar frequency

real-valued scalar less than 10 GHz

Radar frequency, specified as a real-valued scalar less than 10 GHz
(10^{10} Hz).

**Example: **100e6

**Data Types: **`double`

`rfs`

— Free-space range

positive scalar | positive vector

Free-space range, specified as a positive scalar or vector.
`rfs`

is the calculated or assumed free-space range
for a target or for a one-way RF system at which the field strength would
have a specified value. Range units are set by the
`RangeUnit`

name-value argument.

**Example: **100e3

**Data Types: **`double`

`anht`

— Radar antenna height

real-valued scalar

Radar antenna height, specified as a real-valued scalar. The height is
referenced to the surface. Height units are set by the
`HeightUnit`

name-value argument.

**Example: **10

**Data Types: **`double`

### Name-Value Arguments

Specify optional pairs of arguments as
`Name1=Value1,...,NameN=ValueN`

, where `Name`

is
the argument name and `Value`

is the corresponding value.
Name-value arguments must appear after other arguments, but the order of the
pairs does not matter.

*
Before R2021a, use commas to separate each name and value, and enclose*
`Name`

*in quotes.*

**Example: **`'HeightUnit','km'`

`RangeUnit`

— Radar range units

`'km'`

(default) | `'nmi'`

| `'mi'`

| `'ft'`

| `'m'`

| `'kft'`

`HeightUnit`

— Antenna height units

`'m'`

(default) | `'nmi'`

| `'mi'`

| `'km'`

| `'ft'`

| `'kft'`

Antenna height units denoting meters, nautical miles, miles,
kilometers, feet, or kilofeet. This argument specifies the units for the
antenna height `anht`

and the
`'SurfaceRoughness'`

argument.

**Example: **`'m'`

**Data Types: **`char`

`Polarization`

— Transmitted wave polarization

`'H'`

(default) | `'V'`

Transmitted wave polarization, specified as `'H'`

for
horizontal polarization or `'V'`

for vertical
polarization.

**Example: **`'V'`

**Data Types: **`char`

`SurfaceRelativePermittivity`

— Complex permittivity of reflecting surface

frequency dependent model (default) | complex-valued scalar

Complex permittivity (dielectric constant) of the reflecting surface,
specified as a complex-valued scalar. The default value of this argument
depends on the value of `freq`

.
`radarvcd`

uses a seawater model that is valid
for frequencies up to 10 GHz.

**Example: **70

**Data Types: **`double`

**Complex Number Support: **Yes

`SurfaceHeightStandardDeviation`

— Standard deviation of surface height

`0`

(default) | real-valued scalar

Standard deviation of surface height, specified as a nonnegative
real-valued scalar. A value of `0`

indicates a smooth
surface. Use `'HeightUnit'`

to specify the units of
height.

The surface height standard deviation relates to the crest-to-trough
"*surface roughness*" height through

Surface roughness = 2 × √2 × Surface height standard deviation.

**Example: **2

**Data Types: **`double`

`SurfaceSlope`

— Surface slope

nonnegative scalar

Surface slope in degrees, specified as a nonnegative scalar. This value is expected to be 1.4 times the RMS surface slope. Given the condition that

2 × GRAZ/*β*_{0}
< 1,

where GRAZ is the grazing angle of the geometry
specified in degrees and *β*_{0} is
the surface slope, the effective surface height standard deviation in
meters is calculated as

Effective HGTSD = HGTSD × (2 ×
GRAZ/*β*_{0})^{1/5}.

This calculation better accounts for shadowing.
Otherwise, the effective height standard deviation is equal to HGTSD.
This argument defaults to `0`

, indicating a smooth
surface.

**Data Types: **`double`

`VegetationType`

— Vegetation type

`'None'`

(default) | `'Trees'`

| `'Brush'`

| `'Weeds'`

| `'Grass'`

Surface vegetation type, specified as `'Trees'`

, `'Weeds'`

, and `'Brush'`

are assumed to be dense vegetation. `'Grass'`

is assumed to be thin grass. Use this argument when using the function on surfaces different from the sea.

`ElevationBeamwidth`

— Half-power elevation beamwidth

`10`

(default) | scalar between 0° and 90°

Half-power elevation beamwidth in degrees, specified as a scalar between 0° and 90°. The
elevation beamwidth is used in the calculation of a `sinc`

antenna
pattern. The default antenna pattern is symmetric with respect to the beam maximum and
is of the form sin(*u*)/*u*. The parameter *u* is given by *u* = *k*
sin(*θ*), where *θ* is the elevation angle in radians and
*k* is given by *k* = *x*_{0} /
sin(*π* × ELBW/360), where ELBW is the half-power elevation beamwidth and *x*_{0} ≈ 1.3915573 is a solution of sin(*x*) = x/√2.

**Data Types: **`double`

`AntennaPattern`

— Antenna elevation pattern

real-valued column vector

Antenna elevation pattern, specified as a real-valued column vector. Values for `'AntennaPattern'`

must be specified together with values for `'PatternAngles'`

. Both vectors must have the same size. If both an antenna pattern and an elevation beamwidth are specified, `radarvcd`

uses the antenna pattern and ignores the elevation beamwidth value. This argument defaults to a sinc antenna pattern.

**Example: **`cosd([–90:90])`

**Data Types: **`double`

`PatternAngles`

— Antenna pattern elevation angles

real-valued column vector

Antenna pattern elevation angles specified as a real-valued column vector. The size of the vector specified by `PatternAngles`

must be the same as that specified by `AntennaPattern`

. Angle units are expressed in degrees and must lie between –90° and 90°. In general, the antenna pattern should fill the whole range from –90° to 90° for the coverage to be computed properly.

**Example: **`[-90:90]`

**Data Types: **`double`

`TiltAngle`

— Antenna tilt angle

`0`

(default) | real-valued scalar

Antenna tilt angle, specified as a real-valued scalar. The tilt angle is the elevation angle of the antenna with respect to the surface. Angle units are expressed in degrees.

**Example: **`10`

**Data Types: **`double`

`EffectiveEarthRadius`

— Effective Earth radius

positive scalar

Effective Earth radius in meters, specified as a positive scalar. The effective Earth radius is an approximation used for modeling refraction effects in the troposphere. The default value calculates the effective Earth radius using a refraction gradient of `-39e-9`

, which results in approximately `4/3`

of the real Earth radius.

**Data Types: **`double`

`MaxElevation`

— Maximum elevation angle

`60`

(default) | real-valued scalar

Maximum elevation angle, specified as a real-valued scalar. The maximum elevation angle is the largest angle for which the vertical coverage pattern is calculated. Angle units are expressed in degrees.

**Example: **70

**Data Types: **`double`

`MinElevation`

— Minimum elevation angle

`0`

(default) | real-valued scalar

Minimum elevation angle, specified as a real-valued scalar. The minimum elevation angle is the smallest angle for which the vertical coverage pattern is calculated. Angle units are expressed in degrees.

**Example: **10

**Data Types: **`double`

`ElevationStepSize`

— Elevation angle increment

positive scalar

Elevation angle increment, specified as a positive scalar in degrees.
The elevation vector goes from the minimum value specified in
`MinElevation`

and the maximum value specified in
`MaxElevation`

in increments of
`ElevationStepSize`

. The default value of this
argument is given by

Δ = 885.6/(*π* ×
*f*_{MHz} ×
*h*_{a,ft}),

where *f*_{MHz}
is the frequency in MHz and
*h*_{a,ft}
is the antenna height in feet.

**Data Types: **`double`

## Output Arguments

`vcp`

— Vertical coverage pattern

real-valued vector | real-valued matrix

Vertical coverage pattern, returned as a real-valued column vector or
matrix. The vertical coverage pattern is the actual maximum range of the
radar. Each row of the vertical coverage pattern corresponds to one of the
angles returned in `vcpangles`

The columns of
`vcp`

correspond to the ranges specified in
`rfs`

.

`vcpangles`

— Vertical coverage pattern angles

real-valued vector

Vertical coverage pattern angles, returned as a column vector. The angles
range from –90° to 90°. Each entry of
`vcpangles`

specifies the elevation angle at which
the vertical coverage pattern is measured.

## More About

### Vertical Coverage Pattern

The maximum detection range of a radar antenna can differ depending on placement. Suppose you place a radar antenna near a reflecting surface, such as the earth's land or sea surface and computed maximum detection range. If you then move the same radar antenna to free space far from any boundaries, it results in a different maximum detection range. This is an effect of multipath interference that occurs when waves, reflected from the surface, constructively add to or nullify the direct path signal from the radar to a target. Multipath interference gives rise to a series of lobes in the vertical plane. The vertical coverage pattern is the plot of the actual maximum detection range of the radar versus target elevation and depends upon the maximum free-space detection range and target elevation angle. See Blake [1].

The vertical coverage pattern is generally considered to be valid for antenna heights that are within a few hundred feet of the surface and with targets at altitudes that are not too close to the radar horizon.

## References

[1] Blake, Lamont V. *Machine Plotting of Radar
Vertical-Plane Coverage Diagrams*. Naval Research Laboratory Report 7098,
1970.

[2] Barton, David K.
*Radar Equations for Modern Radar*. Norwood, MA: Artech House,
2013.

## Extended Capabilities

### C/C++ Code Generation

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

Usage notes and limitations:

Supported only when output arguments are specified.

## Version History

**Introduced in R2021a**

## 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)