# LOS Channel

Narrowband line-of-sight propagation channel

**Libraries:**

Phased Array System Toolbox /
Environment and Target

## Description

The LOS Channel block propagates signals from a point in space to another point in space by line-of-sight (LOS) channels. The block can also propagate signals from one point to multiple points or from multiple points back to one point. The block models propagation time, free-space propagation loss, Doppler shift, and atmospheric as well as weather loss. The block assumes that the propagation speed is much greater than the object speed in which case the stop-and-hop model is valid.

When propagating a signal in an LOS channel to an object and back, you can use a single block to compute two-way LOS channel propagation delays or two blocks to perform two one-way propagation delays in each direction. Because the LOS channel propagation delay is not necessarily an integer multiple of the sampling interval, it can turn out that the total round trip delay in samples when you use a two-way propagation block differs from the delay in samples when you use two one-way propagation blocks. For this reason, it is recommended that, when possible, you use a single two-way propagation block.

## Ports

### Input

**X** — Narrowband signal

*M*-element complex-valued column vector,
*M*-by-*N* complex-valued
matrix.

Narrowband signal, specified as an *M*-element
complex-valued column vector or
*M*-by-*N* complex-valued matrix.
The quantity *M* is the number of sample values of the
signal and *N* is the number of signals to propagate.
When you specify *N* signals, you need to specify
*N* signal origins or *N* signal
destinations.

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.

**Pos1** — Signal origin

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

Signal origin, specified as a 3-by-1 real-valued column vector or
3-by-*N* real-valued matrix. The quantity
*N* is the number of propagated signals and equals
the dimension specified in the signal input port `X`

.
If `Pos1`

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

. If `Pos1`

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

. `Pos1`

and
`Pos2`

cannot both be specified as matrices
— at least one must be a 3-by-1 column vector. Position units are
meters.

**Data Types: **`double`

**Pos2** — Signal destination

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

Signal destination, specified as a 3-by-1 real-valued column vector or
3-by-*N* real-valued matrix. The quantity
*N* is the number of propagated signals and equals
the dimension specified in the signal in the input port
`X`

. If `Pos2`

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

. If
`Pos2`

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

.
`Pos2`

and `Pos1`

cannot both
be specified as matrices — at least one must be a 3-by-1 column
vector. Position units are meters.

**Data Types: **`double`

**Vel1** — Signal origin velocity

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

Signal origin velocity, specified as a 3-by-1 real-valued column vector or
3-by-*N* real-valued matrix. The quantity
*N* is the number of propagated signals and equals
the dimension specified in the signal into the port
`X`

. If `Vel1`

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

. If
`Vel1`

is a matrix, each column specifies a
different signal origin and has the form ```
[Vx; Vy;
Vz]
```

. The dimensions of `Vel1`

must agree
with the dimensions of `Pos1`

.
`Vel1`

and `Vel2`

cannot both
be specified as matrices — at least one must be a 3-by-1 column
vector. Position units are meters.

**Data Types: **`double`

**Vel2** — Signal destination velocity

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

Signal destination velocity, specified as a 3-by-1 real-valued column vector or
3-by-*N* real-valued matrix. The quantity
*N* is the number of propagated signals and equals
the dimension specified in the signal into the port
`X`

. If `Vel2`

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

. If
`Vel2`

is a matrix, each column specifies a
different signal origin and has the form ```
[Vx; Vy;
Vz]
```

. The dimensions of `Vel2`

must agree
with the dimensions of `Pos2`

.
`Vel2`

and `Vel1`

cannot both
be specified as matrices — at least one must be a 3-by-1 column
vector. Position units are meters.

**Data Types: **`double`

### Output

**Port_1** — Propagated narrowband signal

*M*-element complex-valued column vector,
*M*-by-*N* complex-valued
matrix.

Propagated signal, returned as a *M*-element complex-valued column
vector, *M*-by-*N* complex-valued
matrix. `Y`

will have the same dimensions as
`X`

.

The output `Y`

contains signal samples arriving at
the signal destination within the current time frame. The current time
frame is defined as the time spanned by the current input. Whenever it
takes longer than the current time frame for the signal to propagate
from the origin to the destination, the output contains no contribution
from the input of the current time frame.

## Parameters

**Propagation speed (m/s)** — Signal propagation speed

`physconst('LightSpeed')`

(default) | positive scalar

Signal propagation speed, specified as a real-valued positive scalar. The default
value of the speed of light is the value returned by
`physconst('LightSpeed')`

.

**Data Types: **`double`

**Signal carrier frequency (Hz)** — Signal carrier frequency

`3e8`

(default) | positive real-valued scalar

Signal carrier frequency, specified as a positive real-valued scalar. Units are in hertz.

**Data Types: **`double`

**Specify atmospheric parameters** — Enable atmospheric attenuation model

off (default) | on

Select this parameter to enable to add signal attenuation caused by atmospheric gases,
rain, fog, or clouds. When you select this parameter, the **Temperature (degrees
Celsius)**, **Dry air pressure (Pa)**, **Water
vapour density (g/m^3)**, **Liquid water density
(g/m^3)**, and **Rain rate (mm/hr)** parameters appear in the
dialog box.

**Data Types: **`Boolean`

**Temperature (degrees Celsius)** — Ambient temperature

`15`

(default) | real-valued scalar

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

#### Dependencies

To enable this parameter, select the **Specify atmospheric
parameters** checkbox.

**Data Types: **`double`

**Dry air pressure (Pa)** — 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 parameter corresponds to one standard atmosphere.

#### Dependencies

To enable this parameter, select the **Specify atmospheric
parameters** checkbox.

**Data Types: **`double`

**Water vapour density (g/m^3)** — 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}.

#### Dependencies

To enable this parameter, select the **Specify atmospheric
parameters** checkbox.

**Data Types: **`datetime`

**Liquid water density (g/m^3)** — 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.

#### Dependencies

To enable this parameter, select the **Specify atmospheric
parameters** checkbox.

**Data Types: **`double`

**Rain rate (mm/hr)** — Rainfall rate

`0.0`

(default) | non-negative real-valued scalar

Rainfall rate, specified as a nonnegative real-valued scalar. Units are in mm/hr.

#### Dependencies

To enable this parameter, select the **Specify atmospheric
parameters** checkbox.

**Data Types: **`double`

**Perform two-way propagation** — Enable two-way propagation

`off`

(default) | `on`

Select this check box to perform round-trip propagation between the origin and destination. Otherwise the block performs one-way propagation from the origin to the destination.

**Inherit sample rate** — Inherit sample rate from upstream blocks

on (default) | off

Select this parameter to inherit the sample rate from upstream blocks. Otherwise,
specify the sample rate using the **Sample rate (Hz)**
parameter.

**Data Types: **`Boolean`

**Sample rate (Hz)** — Sampling rate of signal

`1e6`

(default) | positive real-valued scalar

Specify the signal sampling rate as a positive scalar. Units are in Hz.

#### Dependencies

To enable this parameter, clear the **Inherit sample rate** check
box.

**Data Types: **`double`

**Maximum one-way propagation distance (m)** — Maximum one-way propagation distance

`10e3`

(default) | positive real-valued scalar

Specify the maximum distance between the signal origin and the destination as a positive scalar. Units are in meters. Amplitudes of any signals that propagate beyond this distance will be set to zero.

**Simulate using** — Block simulation method

`Interpreted Execution`

(default) | `Code Generation`

Block simulation, specified as `Interpreted Execution`

or
`Code Generation`

. If you want your block to use the
MATLAB^{®} interpreter, choose `Interpreted Execution`

. If
you want your block to run as compiled code, choose ```
Code
Generation
```

. Compiled code requires time to compile but usually runs
faster.

Interpreted execution is useful when you are developing and tuning a model. The block
runs the underlying System object™ in MATLAB. You can change and execute your model quickly. When you are satisfied
with your results, you can then run the block using ```
Code
Generation
```

. Long simulations run faster with generated code than in
interpreted execution. You can run repeated executions without recompiling, but if you
change any block parameters, then the block automatically recompiles before
execution.

This table shows how the **Simulate using** parameter affects the
overall simulation behavior.

When the Simulink^{®} model is in `Accelerator`

mode, the block mode specified
using **Simulate using** overrides the simulation mode.

**Acceleration Modes**

Block Simulation | Simulation Behavior | ||

`Normal` | `Accelerator` | `Rapid Accelerator` | |

`Interpreted Execution` | The block executes using the MATLAB interpreter. | The block executes using the MATLAB interpreter. | Creates a standalone executable from the model. |

`Code Generation` | The block is compiled. | All blocks in the model are compiled. |

For more information, see Choosing a Simulation Mode (Simulink).

#### Programmatic Use

Block
Parameter:`SimulateUsing` |

Type:enum |

Values:```
Interpreted
Execution
``` , `Code Generation` |

Default:```
Interpreted
Execution
``` |

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

### Propagation Delay, Doppler, and Free-Space Path 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.

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

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})*.

You can 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 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 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 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.

## Version History

**Introduced in R2016a**

## See Also

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