# phased.WidebandLOSChannel

Wideband LOS propagation channel

## Description

The `phased.WidebandLOSChannel`

System object™ models the propagation of wideband electromagnetic signals through a
line-of-sight (LOS) channel from a source to a destination. In an LOS channel,
propagation paths are straight lines from point to point. The propagation model in the
LOS channel includes free-space attenuation in addition to attenuation due to
atmospheric gases, rain, fog, and clouds. You can use `phased.WidebandLOSChannel`

to
model the propagation of signals between multiple points simultaneously. The System object works for all frequencies.

While the attenuation models for atmospheric gases and rain are valid for electromagnetic signals in the frequency range 1–1000 GHz only, the attenuation model for fog and clouds is valid for 10–1000 GHz. Outside these frequency ranges, the System object uses the nearest valid value.

The `phased.WidebandLOSChannel`

System object applies range-dependent time delays to the signals, as well as gains or
losses. When either the source or destination is moving, the System object applies Doppler shifts.

Like the `phased.WidebandFreeSpace`

System object, the `phased.WidebandLOSChannel`

System object supports two-way propagation.

To create and use a wideband LOS channel:

Create the

`phased.WidebandLOSChannel`

object and set its properties.Call the object with arguments, as if it were a function.

To learn more about how System objects work, see What Are System Objects?

## Creation

### Description

creates a Wideband LOS attenuating propagation channel System object, `channel`

= phased.WidebandLOSChannel`channel`

.

creates a System object, `channel`

= phased.WidebandLOSChannel(`Name`

=`Value`

)`channel`

, with each specified property
`Name`

set to the specified `Value`

. You can
specify additional name and value pair arguments in any order as
(`Name1=Value1`

,...,`Name=ValueN`

).

## Properties

Unless otherwise indicated, properties are *nontunable*, which means you cannot change their
values after calling the object. Objects lock when you call them, and the
`release`

function unlocks them.

If a property is *tunable*, you can change its value at
any time.

For more information on changing property values, see System Design in MATLAB Using System Objects.

`PropagationSpeed`

— Signal propagation speed

`physconst('LightSpeed')`

(default) | positive scalar

Signal propagation speed, specified as a positive scalar. Units are in meters per second. The
default propagation speed is the value returned by
`physconst('LightSpeed')`

. See `physconst`

for more information.

**Example: **`3e8`

**Data Types: **`double`

`OperatingFrequency`

— Operating frequency

`300e6`

(default) | positive scalar

Operating frequency, specified as a positive scalar. Units are in Hz.

**Example: **`1e9`

**Data Types: **`double`

`SpecifyAtmosphere`

— Enable atmospheric attenuation model

`false`

(default) | `true`

Option to enable the atmospheric attenuation model, specified
as a `false`

or `true`

. Set this
property to `true`

to add signal attenuation caused
by atmospheric gases, rain, fog, or clouds. Set this property to `false`

to
ignore atmospheric effects in propagation.

Setting `SpecifyAtmosphere`

to `true`

,
enables the `Temperature`

, `DryAirPressure`

, `WaterVapourDensity`

, `LiquidWaterDensity`

,
and `RainRate`

properties.

**Data Types: **`logical`

`Temperature`

— Ambient temperature

`15`

(default) | real-valued scalar

Ambient temperature, specified as a real-valued scalar. Units are in degrees Celsius.

**Example: **`20.0`

#### Dependencies

To enable this property, set `SpecifyAtmosphere`

to `true`

.

**Data Types: **`double`

`DryAirPressure`

— Atmospheric dry air pressure

`101.325e3`

(default) | positive real-valued scalar

Atmospheric dry air pressure, specified as a positive real-valued scalar. Units are in pascals (Pa). The default value of this property corresponds to one standard atmosphere.

**Example: **`101.0e3`

#### Dependencies

To enable this property, set `SpecifyAtmosphere`

to `true`

.

**Data Types: **`double`

`WaterVapourDensity`

— Atmospheric water vapor density

`7.5`

(default) | positive real-valued scalar

Atmospheric water vapor density, specified as a positive real-valued
scalar. Units are in g/m^{3}.

**Example: **`7.4`

#### Dependencies

To enable this property, set `SpecifyAtmosphere`

to `true`

.

**Data Types: **`double`

`LiquidWaterDensity`

— Liquid water density

`0.0`

(default) | nonnegative real-valued scalar

Liquid water density of fog or clouds, specified as a nonnegative
real-valued scalar. Units are in g/m^{3}.
Typical values for liquid water density are 0.05 for medium fog and
0.5 for thick fog.

**Example: **`0.1`

#### Dependencies

To enable this property, set `SpecifyAtmosphere`

to `true`

.

**Data Types: **`double`

`RainRate`

— Rainfall rate

`0.0`

(default) | non-negative real-valued scalar

Rainfall rate, specified as a nonnegative real-valued scalar. Units are in
mm/hr. This property applies only when you set
`SpecifyAtmosphere`

to
`true`

.

**Example: **`10.0`

**Data Types: **`double`

`TwoWayPropagation`

— Enable two-way propagation

`false`

(default) | `true`

Enable two-way propagation, specified as a `false`

or
`true`

. Set this property to `true`

to perform
round-trip propagation between the signal origin and the destination. Set this property
to `false`

to perform only one-way propagation from the origin to the
destination.

**Example: **`true`

**Data Types: **`logical`

`SampleRate`

— Sample rate of signal

`1e6`

(default) | positive scalar

Sample rate of signal, specified as a positive scalar. Units are in Hz. The System object uses this quantity to calculate the propagation delay in units of samples.

**Example: **`1e6`

**Data Types: **`double`

`NumSubbands`

— Number of processing subbands

`64`

(default) | positive integer

Number of processing subbands, specified as a positive integer.

**Example: **`128`

**Data Types: **`double`

`MaximumDistanceSource`

— Source of maximum one-way propagation distance

`'Auto'`

(default) | `'Property'`

Source of maximum one-way propagation distance, specified as `'Auto'`

or `'Property'`

.
The maximum one-way propagation distance is used to allocate sufficient
memory for signal delay computation. When you set this property to `'Auto'`

,
the System object automatically allocates memory. When you set
this property to `'Property'`

, you specify the maximum
one-way propagation distance using the value of the `MaximumDistance`

property.

**Data Types: **`char`

`MaximumDistance`

— Maximum one-way propagation distance

`10000`

(default) | positive real-valued scalar

Maximum one-way propagation distance, specified as a positive real-valued scalar. Units are in meters. Any signal that propagates more than the maximum one-way distance is ignored. The maximum distance must be greater than or equal to the largest position-to-position distance.

**Example: **`5000`

#### Dependencies

To enable this property, set the `MaximumDistanceSource`

property
to `'Property'`

.

**Data Types: **`double`

`MaximumNumInputSamplesSource`

— Source of maximum number of samples

`'Auto'`

(default) | `'Property'`

The source of the maximum number of samples of the input signal, specified as
`'Auto'`

or `'Property'`

. When you set this
property to `'Auto'`

, the propagation model automatically allocates
enough memory to buffer the input signal. When you set this property to
`'Property'`

, you specify the maximum number of samples in the
input signal using the `MaximumNumInputSamples`

property. Any input
signal longer than that value is truncated.

To use this object with variable-size signals in a MATLAB^{®} Function Block in Simulink^{®}, set the `MaximumNumInputSamplesSource`

property to
`'Property'`

and set a value for the
`MaximumNumInputSamples`

property.

**Example: **`'Property'`

#### Dependencies

To enable this property, set `MaximumDistanceSource`

to
`'Property'`

.

**Data Types: **`char`

`MaximumNumInputSamples`

— Maximum number of input signal samples

`100`

(default) | positive integer

Maximum number of input signal samples, specified as a positive integer. The input signal is the first argument of the object call. The size of the input signal is the number of rows in the input matrix. Any input signal longer than this number is truncated. To process signals completely, ensure that this property value is greater than any maximum input signal length.

The waveform-generating System objects determine the maximum signal size:

For any waveform, if the waveform

`OutputFormat`

property is set to`'Samples'`

, the maximum signal length is the value specified in the`NumSamples`

property.For pulse waveforms, if the

`OutputFormat`

is set to`'Pulses'`

, the signal length is the product of the smallest pulse repetition frequency, the number of pulses, and the sample rate.For continuous waveforms, if the

`OutputFormat`

is set to`'Sweeps'`

, the signal length is the product of the sweep time, the number of sweeps, and the sample rate.

**Example: **`2048`

#### Dependencies

To enable this property, set `MaximumNumInputSamplesSource`

to `'Property'`

.

**Data Types: **`double`

## Usage

### Description

returns the resulting signal, `prop_sig`

= channel(`sig`

,`origin_pos`

,`dest_pos`

,`origin_vel`

,`dest_vel`

)`prop_sig`

, when a wideband
signal, `sig`

, propagates through a line-of-sight (LOS)
channel from a source located at the `origin_pos`

position to
a destination at the `dest_pos`

position. Only one of the
`origin_pos`

or `dest_pos`

arguments
can specify multiple positions. The other must contain a single position. The
velocity of the signal origin is specified in `origin_vel`

and the velocity of the signal destination is specified in
`dest_vel`

. The dimensions of
`origin_vel`

and `dest_vel`

must match
the dimensions of `origin_pos`

and
`dest_pos`

, respectively.

Electromagnetic fields propagating through an LOS channel can be polarized or
nonpolarized. For nonpolarized fields, the propagating signal field,
`sig`

, is a vector or matrix. For polarized fields,
`sig`

is an array of structures. The structure elements
represent an electric field vector in Cartesian form.

### Input Arguments

`sig`

— Wideband signal

*M*-by-*N* complex-valued
matrix | 1-by-*N*
`struct`

array containing complex-valued fields

Wideband signal, specified as a matrix or `struct`

array, depending on whether is signal or polarized or nonpolarized. The
quantity *M* is the number of samples in the signal,
and *N* is the number of wideband LOS channels. Each
channel corresponds to a source-destination pair.

Wideband nonpolarized scalar signal. Specify

`sig`

as an*M*-by-*N*complex-valued matrix. Each column contains one signal propagated along the line-of-sight path.Wideband polarized signal. Specify

`sig`

as a 1-by-*N*`struct`

array containing complex-valued fields. Each`struct`

represents a polarized signal propagated along the line-of-sight path. Each`struct`

element contains three*M*-by-1 complex-valued column vectors,`sig.X`

,`sig.Y`

, and`sig.Z`

. These vectors represent the*x*,*y*, and*z*Cartesian components of the polarized signal.

**Example: **`[1,1;j,1;0.5,0]`

**Data Types: **`double`

**Complex Number Support: **Yes

`origin_pos`

— Signal origins

3-by-1 real-valued column vector | 3-by-*N* real-valued matrix

Origin of signals, specified as a 3-by-1 real-valued column vector or
3-by-*N* real-valued matrix. The quantity
*N* is the number of LOS channels. If
`origin_pos`

is a column vector, it takes the
form `[x;y;z]`

. If `origin_pos`

is a
matrix, each column specifies a different signal origin and has the form
`[x;y;z]`

. Units are in meters.

You cannot specify both `origin_pos`

and
`dest_pos`

as matrices. At least one must be a
3-by-1 column vector.

**Example: **`[1000;100;500]`

**Data Types: **`double`

`dest_pos`

— Signal destinations

3-by-1 real-valued column vector | 3-by-*N* real-valued matrix

Destination position of the signal or signals, specified as a 3-by-1
real-valued column vector or 3-by-*N* real-valued
matrix. The quantity *N* is the number of LOS channels
propagating from or to *N* signal origins. If
`dest_pos`

is a 3-by-1 column vector, it takes
the form `[x;y;z]`

. If `dest_pos`

is
a matrix, each column specifies a different signal destination and takes
the form `[x;y;z]`

Position units are in meters.

You cannot specify both `origin_pos`

and
`dest_pos`

as matrices. At least one must be a
3-by-1 column vector.

**Example: **`[0;0;0]`

**Data Types: **`double`

`origin_vel`

— Velocities of signal origins

3-by-1 real-valued column vector | 3-by-*N* real-valued matrix

Velocity of signal origin, specified as a 3-by-1 real-valued column
vector or 3-by-*N* real-valued matrix. The dimensions
of `origin_vel`

must match the dimensions of
`origin_pos`

. If `origin_vel`

is a column vector, it takes the form `[Vx;Vy;Vz]`

. If
`origin_vel`

is a 3-by-*N*
matrix, each column specifies a different origin velocity and has the
form `[Vx;Vy;Vz]`

. Velocity units are in meters per
second.

**Example: **`[10;0;5]`

**Data Types: **`double`

`dest_vel`

— Velocities of signal destinations

3-by-1 real-valued column vector | 3-by-*N* real-valued matrix

Velocity of signal destinations, specified as a 3-by-1 real-valued
column vector or 3-by-*N* real-valued matrix. The
dimensions of `dest_vel`

must match the dimensions of
`dest_pos`

. If `dest_vel`

is a
column vector, it takes the form `[Vx;Vy;Vz]`

. If
`dest_vel`

is a 3-by-*N* matrix,
each column specifies a different destination velocity and has the form
`[Vx;Vy;Vz]`

Velocity units are in meters per
second.

**Example: **`[0;0;0]`

**Data Types: **`double`

### Output Arguments

`prop_sig`

— Wideband propagated signal

*M*-by-*N* complex-valued
matrix | 1-by-*N*
`struct`

array containing complex-valued fields

Wideband signal, returned as a matrix or `struct`

array, depending on whether the signal is polarized or nonpolarized. The
quantity *M* is the number of samples in the signal and
*N* is the number of wideband LOS channels. Each
channel corresponds to a source-destination pair.

Wideband nonpolarized scalar signal.

`prop_sig`

is an*M*-by-*N*complex-valued matrix.The size of the first dimension of the input matrix can vary to simulate a changing signal length. A size change can occur, for example, in the case of a pulse waveform with variable pulse repetition frequency.

Wideband polarized scalar signal.

`prop_sig`

is a 1-by-*N*`struct`

array containing complex-valued fields. Each`struct`

element contains three*M*-by-1 complex-valued column vectors,`sig.X`

,`sig.Y`

, and`sig.Z`

. These vectors represent the*x*,*y*, and*z*Cartesian components of the polarized signal.The size of the first dimension of the matrix fields within the

`struct`

can vary to simulate a changing signal length such as a pulse waveform with variable pulse repetition frequency.

The `prop_sig`

output contains signal samples
arriving at the signal destination within the current time frame. The
current time frame is the time frame of the input signals to the object.
Whenever it takes longer than the current time frame for the signal to
propagate from the origin to the destination, the output might not
contain all contributions from the input of the current time frame. The
remaining output appears in the next call to the object.

## Object Functions

To use an object function, specify the
System object as the first input argument. For
example, to release system resources of a System object named `obj`

, use
this syntax:

release(obj)

## Examples

### Propagate Wideband Signal in LOS Channel

Propagate a wideband signal in a line-of-sight (LOS) channel from a radar at *(0,0,0)* meters to a target at *(60,0,0)* meters in medium fog. Set the fog liquid water density to 0.05 $$g/{m}^{3}$$. Assume rain is falling at 5 mm/hr. The signal carrier frequency is 20 GHz. The signal is a sum of four cw tones at 19.75, 19.875, 20.125, and 20.25 GHz. Set the signal duration to 0.5 microsecond and the sample rate to 2.0 GHz. Assume the radar is stationary and the target approaches the radar at 40 m/s. The atmospheric temperature is 12°C and the dry air pressure is 101.300 kPa.

Set the signal parameters and create the transmitted signal.

```
c = physconst('LightSpeed');
fs = 2e9;
freq = [-0.25,-.125,0.0,0.125,0.25]*1e9;
fc = 20.0e9;
dt = 1/fs;
t = [0:dt:.5e-6];
sig = sum(exp(1i*2*pi*t.'*freq),2);
```

Specify the atmosphere parameters and create the `phased.WidebandChannel`

System object™.

lwd = 0.05; rainrate = 5.0; dap = 101300.0; temp = 12.0; channel = phased.WidebandLOSChannel('SampleRate',fs,'PropagationSpeed',c,... 'SpecifyAtmosphere',true,'OperatingFrequency',fc,'RainRate',rainrate,... 'LiquidWaterDensity',lwd,'Temperature',temp,'DryAirPressure',dap);

Specify the radar and target positions and velocities.

xradar = [0,0,0].'; vradar = [0,0,0].'; xtgt = [60,0,0].'; vtgt = [-40,0,0].';

Propagate the signal.

prop_sig = channel(sig,xradar,xtgt,vradar,vtgt);

Plot the propagated signal. For a target range of 60 m, the propagation delay is 0.20 μs as shown in the plot.

plot(t*1e6,real(prop_sig)) grid xlabel('Time (\mu sec)') ylabel('Amplitude')

### Spectrum of Propagated Signal in Wideband LOS Channel

Propagate a wideband signal in a line-of-sight (LOS) channel from a radar at *(0,0,0)* meters to a target at *(35,0,0)* meters in medium fog. Set the fog liquid water density to 0.05 gm/m3. Assume rain is falling at 5 mm/hr. The signal carrier frequency is 20 GHz. The signal is a sum of four cw tones at 19.75, 19.875, 20.125, and 20.25 GHz. Set the signal duration to 0.5 μs and the sample rate to 2.0 GHz. Assume the radar is stationary and the target approaches the radar at 40 m/s. The atmospheric temperature is 12°C.

Set the signal parameters and create the transmitted signal.

```
c = physconst('LightSpeed');
fs = 2e9;
freq = [-0.25,-.125,0.125,0.25]*1e9;
fc = 20.0e9;
dt = 1/fs;
t = [0:dt:.5e-6];
sig = sum(exp(1i*2*pi*t.'*freq),2);
```

Specify the atmosphere parameters and create the `phased.WidebandChannel`

System object™.

lwd = 0.05; rainrate = 5.0; temp = 12.0; channel = phased.WidebandLOSChannel('SampleRate',fs,'PropagationSpeed',c,... 'SpecifyAtmosphere',true,'OperatingFrequency',fc,'RainRate',rainrate,... 'LiquidWaterDensity',lwd,'Temperature',temp);

Specify the radar and target positions and velocities.

xradar = [0,0,0].'; vradar = [0,0,0].'; xtgt = [35,0,0].'; vtgt = [-40,0,0].';

Propagate the signal.

prop_sig = channel(sig,xradar,xtgt,vradar,vtgt);

Plot the propagated signal. For a target range of 35 m, the propagation delay is 0.11 μs as seen in the plot.

plot(t*1e6,real(prop_sig)) grid xlabel('Time ({\mu}s)') ylabel('Amplitude')

Using the `periodogram`

function with a Taylor window, plot the spectra of the original and propagated signals.

nfft = 1024; nsamp = size(sig,1); periodogram([sig prop_sig],taylorwin(nsamp),nfft,fs,'centered') ylim([-200 0]) legend('transmitted','propagated')

## More About

### Attenuation and Loss Factors

Attenuation or path loss in the Wideband LOS channel consists of four components.
*L =
L _{fsp}L_{g}L_{c}L_{r}*, where

*L*is the free-space path attenuation_{fsp}*L*is the atmospheric path attenuation_{g}*L*is the fog and cloud path attenuation_{c}*L*is the rain path attenuation_{r}

Each component is in magnitude units, not in dB.

### Free-space Time Delay and Loss

When the origin and destination are stationary relative to each
other, you can write the output signal of a free-space channel as *Y(t)
= x(t-τ)/L _{fsp}*.
The quantity

*τ*is the signal delay and

*L*is the free-space path loss. The delay

_{fsp}*τ*is given by

*R/c*, where

*R*is the propagation distance and

*c*is the propagation speed. The free-space path loss is given by

$${L}_{fsp}=\frac{{(4\pi R)}^{2}}{{\lambda}^{2}},$$

where λ is the signal wavelength.

This formula assumes that the target is in the far field of
the transmitting element or array. In the near field, the free-space
path loss formula is not valid and can result in a loss smaller than
one, equivalent to a signal gain. Therefore, the loss is set to unity
for range values, *R ≤ λ/4π*.

When the origin and destination have relative motion, the processing
also introduces a Doppler frequency shift. The frequency shift is *v/λ* for
one-way propagation and *2v/λ* for two-way
propagation. The quantity *v* is the relative speed
of the destination with respect to the origin.

For more details on free space channel propagation, see [5].

### Atmospheric Gas Attenuation Model

This model calculates the attenuation of signals that propagate through atmospheric gases.

Electromagnetic signals attenuate when they propagate through the atmosphere. This effect is
due primarily to the absorption resonance lines of oxygen and water vapor, with smaller
contributions coming from nitrogen gas. The model also includes a continuous absorption
spectrum below 10 GHz. The ITU model *Recommendation ITU-R P.676-10: Attenuation by
atmospheric gases* is used. The model computes the specific attenuation
(attenuation per kilometer) as a function of temperature, pressure, water vapor density, and
signal frequency. The atmospheric gas model is valid for frequencies from 1–1000 GHz and
applies to polarized and nonpolarized fields.

The formula for specific attenuation at each frequency is

$$\gamma ={\gamma}_{o}(f)+{\gamma}_{w}(f)=0.1820f{N}^{\u2033}(f).$$

The quantity *N"()* is the imaginary part of the complex
atmospheric refractivity and consists of a spectral line component and a continuous component:

$${N}^{\u2033}(f)={\displaystyle \sum _{i}{S}_{i}{F}_{i}+{{N}^{\u2033}}_{D}^{}(f)}$$

The spectral component consists of a sum of discrete spectrum terms
composed of a localized frequency bandwidth function,
*F(f)*_{i}, multiplied by a spectral line strength,
*S*_{i}. For atmospheric oxygen, each spectral line
strength is

$${S}_{i}={a}_{1}\times {10}^{-7}{\left(\frac{300}{T}\right)}^{3}\mathrm{exp}\left[{a}_{2}(1-\left(\frac{300}{T}\right)\right]P.$$

For atmospheric water vapor, each spectral line strength is

$${S}_{i}={b}_{1}\times {10}^{-1}{\left(\frac{300}{T}\right)}^{3.5}\mathrm{exp}\left[{b}_{2}(1-\left(\frac{300}{T}\right)\right]W.$$

*P* is the dry air pressure, *W* is the
water vapor partial pressure, and *T* is the ambient temperature. Pressure
units are in hectoPascals (hPa) and temperature is in degrees Kelvin. The water vapor
partial pressure, *W*, is related to the water vapor density, ρ, by

$$W=\frac{\rho T}{216.7}.$$

The total atmospheric pressure is *P* +
*W*.

For each oxygen line, *S _{i}* depends on two parameters,

*a*and

_{1}*a*. Similarly, each water vapor line depends on two parameters,

_{2}*b*and

_{1}*b*. The ITU documentation cited at the end of this section contains tabulations of these parameters as functions of frequency.

_{2}The localized frequency bandwidth functions *F _{i}(f)* are
complicated functions of frequency described in the ITU references
cited below. The functions depend on empirical model parameters that
are also tabulated in the reference.

This model applies to both narrowband and wideband atmospheric attenuation. To compute the
total attenuation for narrowband signals along a path, the function multiplies the specific
attenuation by the path length, *R*. Then, the total attenuation is
*L _{g}= R(γ_{o} +
γ_{w})*. To apply the attenuation model to wideband
signals, first, divide the wideband signal into frequency subbands, and apply attenuation to
each subband. Then, sum all attenuated subband signals into the total attenuated
signal.

### Fog and Cloud Attenuation Model

This model calculates the attenuation of signals that propagate through fog or clouds.

Fog and cloud attenuation are due to the same atmospheric phenomenon. The ITU model,
*Recommendation ITU-R P.840-6: Attenuation due to clouds and fog* is
used. The model computes the specific attenuation (attenuation per kilometer), of a signal
as a function of liquid water density, signal frequency, and temperature. The model applies
to polarized and nonpolarized fields. The formula for specific attenuation at each frequency is

$${\gamma}_{c}={K}_{l}\left(f\right)M,$$

where *M* is the liquid water density in
gm/m^{3}. The quantity
*K _{l}(f)* is the specific attenuation coefficient
and depends on frequency. The cloud and fog attenuation model is valid for frequencies
10–1000 GHz. Units for the specific attenuation coefficient are
(dB/km)/(g/m

^{3}).

To compute the total attenuation for narrowband signals along a path, the function multiplies
the specific attenuation by the path length *R*. Total attenuation is
*L _{c} = Rγ_{c}*. You can
also apply the attenuation model to wideband signals. First, divide the wideband signal into
frequency subbands, and apply narrowband attenuation to each subband. Then, sum all
attenuated subband signals into the total attenuated signal.

### Rainfall Attenuation Model

This model calculates the attenuation of signals that propagate through regions of rainfall. Rain attenuation is a dominant fading mechanism and can vary from location-to-location and from year-to-year.

Electromagnetic signals are attenuated when propagating through a region of rainfall. Rainfall
attenuation is computed according to the ITU rainfall model *Recommendation
ITU-R P.838-3: Specific attenuation model for rain for use in prediction
methods*. The model computes the specific attenuation (attenuation
per kilometer) of a signal as a function of rainfall rate, signal frequency,
polarization, and path elevation angle. The specific attenuation,
*ɣ*_{R}, is modeled as a power law with
respect to rain rate

$${\gamma}_{R}=k{R}^{\alpha},$$

where *R* is rain rate. Units are in mm/hr. The
parameter *k* and exponent *α* depend on the
frequency, the polarization state, and the elevation angle of the signal path. The
specific attenuation model is valid for frequencies from 1–1000 GHz.

To compute the total attenuation for narrowband signals along a path, the function multiplies
the specific attenuation by the an effective propagation distance,
*d*_{eff}. Then, the total attenuation
is *L =
d*_{eff}*γ*_{R}.

The effective distance is the geometric distance, *d*, multiplied by
a scale factor

$$r=\frac{1}{0.477{d}^{0.633}{R}_{0.01}^{0.073\alpha}{f}^{0.123}-10.579\left(1-\mathrm{exp}\left(-0.024d\right)\right)}$$

where *f* is the frequency. The article
*Recommendation ITU-R P.530-17 (12/2017): Propagation data and
prediction methods required for the design of terrestrial line-of-sight
systems* presents a complete discussion for computing
attenuation.

The rain rate, *R*, used in these computations is the long-term
statistical rain rate, *R*_{0.01}. This is the
rain rate that is exceeded 0.01% of the time. The calculation of the statistical
rain rate is discussed in *Recommendation ITU-R P.837-7 (06/2017):
Characteristics of precipitation for propagation modelling*. This
article also explains how to compute the attenuation for other percentages from the
0.01% value.

You can also apply the attenuation model to wideband signals. First, divide the wideband signal into frequency subbands and apply attenuation to each subband. Then, sum all attenuated subband signals into the total attenuated signal.

### Subband Frequency Processing

Subband processing decomposes a wideband signal into multiple subbands and applies narrowband processing to the signal in each subband. The signals for all subbands are summed to form the output signal.

When using wideband frequency System objects or blocks, you specify the number of subbands,
*N*_{B}, in which to decompose the wideband signal.
Subband center frequencies and widths are automatically computed from the total bandwidth
and number of subbands. The total frequency band is centered on the carrier or operating
frequency, *f _{c}*. The overall bandwidth is given by
the sample rate,

*f*. Frequency subband widths are

_{s}*Δf = f*

_{s}/

*N*

_{B}. The center frequencies of the subbands are

$${f}_{m}=\{\begin{array}{c}{f}_{c}-\frac{{f}_{s}}{2}+\left(m-1\right)\Delta f\text{,}{N}_{B}\text{even}\\ {f}_{c}-\frac{\left({N}_{B}-1\right){f}_{s}}{2{N}_{B}}+\left(m-1\right)\Delta f\text{,}{N}_{B}\text{odd}\end{array},\text{}m=1,\dots ,{N}_{B}$$

Some System objects let you obtain the subband center frequencies as output when you run the object. The returned subband frequencies are ordered consistently with the ordering of the discrete Fourier transform. Frequencies above the carrier appear first, followed by frequencies below the carrier.

The `phased.WidebandLOSChannel`

System object uses narrowband time delay and attenuation algorithms for each
subband.

## References

[1] Radiocommunication Sector of
the International Telecommunication Union. *Recommendation ITU-R P.676-10:
Attenuation by atmospheric gases*. 2013.

[2] Radiocommunication Sector of
the International Telecommunication Union. *Recommendation ITU-R P.840-6:
Attenuation due to clouds and fog*. 2013.

[3] Radiocommunication Sector of
the International Telecommunication Union. *Recommendation ITU-R P.838-3:
Specific attenuation model for rain for use in prediction methods*.
2005.

[4] Seybold, J.
*Introduction to RF Propagation*. New York: Wiley & Sons,
2005.

[5] Skolnik, M. *Introduction to Radar
Systems*, 3rd Ed. New York: McGraw-Hill, 2001.

## Extended Capabilities

### C/C++ Code Generation

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

Usage notes and limitations:

See System Objects in MATLAB Code Generation (MATLAB Coder).

## Version History

**Introduced in R2016a**

## See Also

### Functions

`rangeangle`

|`fogpl`

|`gaspl`

|`rainpl`

|`fspl`

### Objects

`phased.FreeSpace`

|`phased.RadarTarget`

|`phased.BackscatterRadarTarget`

|`twoRayChannel`

(Radar Toolbox) |`phased.WidebandFreeSpace`

|`phased.LOSChannel`

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