# Free-Space Path Loss with Log-Normal Shadowing

*A free-space path loss model with log-normal shadowing.*

`obj/path_loss/path_loss_free_space_log_normal_shadowing.m`

Superclass: Path Loss

#### On This Page

- About
- Creating a Free-Space Path Loss with Log-Normal Shadowing Object
- Key Properties
- Setting the Log-Normal Shadowing Variance
- Example Setup
- Getting the Attenuation
- List of Properties
- List of Methods
- Methods Documentation

### About

The `path_loss_free_space_log_normal_shadowing`

object represents a free-space path loss model with log-normal shadowing. It is a subclass of the `path_loss_free_space`

object (and thus of the `path_loss`

object), supplying the deterministic loss of a free-space path loss model with a random shadowing term.

Recall that deterministic free-space path loss can be described entirely by three parameters:

- the carrier wavelength
- the distance
- the path loss exponent

The path loss (or attenuation) stemming from a free-space path loss * with log-normal shadowing* can be described as

where is the path * gain* and is the path

*; and is the shadowing parameter.*

**loss**Typically, except in rare settings with significant clutter. Most often, .

In log-normal shadowing, realizations of the random variable are distributed as

where is the variance of log-normal shadowing.

### Creating a Free-Space Path Loss with Log-Normal Shadowing Object

A free-space path loss with log-normal shadowing object `path_loss_free_space_log_normal_shadowing`

can be created via

```
p = path_loss.create('free-space-log-normal-shadowing')
```

### Key Properties

The `path_loss_free_space_log_normal_shadowing`

object inherits all properties of the `path_loss_free_space`

object, the key ones being

```
p.attenuation
p.carrier_frequency
p.carrier_wavelength
p.propagation_velocity
p.distance
p.path_loss_exponent
```

In addition, it also has the property

```
p.log_normal_shadowing_variance
```

which captures the log-normal shadowing variance (i.e., ).

### Setting the Log-Normal Shadowing Variance

To set the variance of log-normal shadowing of a free space path loss with log-normal shadowing object `p`

, use

```
p.set_log_normal_shadowing_variance(var)
```

where `var`

is the variance of log-normal shadowing (a non-negative number).

### Example Setup

A typical `path_loss_free_space_log_normal_shadowing`

object setup looks something similar to

```
p = path_loss.create()
p.set_carrier_frequency(fc)
p.set_propagation_velocity(vel)
p.set_distance(d)
p.set_path_loss_exponent(ple)
p.set_log_normal_shadowing_variance(var)
```

### Invoking a Realization

To realize the path loss, use

```
atten = p.realization()
```

which, when appropriately setup, will return the attenuation `atten`

for the given carrier wavelength, distance, path loss exponent, and log-normal shadowing variance.

Note that `atten`

is related to the large-scale gain by simply `atten`

.

### Getting the Attenuation

To get the realized attenuation of a `path_loss_free_space_log_normal_shadowing`

object `p`

, one can also use

```
atten = p.get_attenuation()
```

where `atten`

is the attenuation of the path loss (power loss, linear scale).

### List of Properties

The `path_loss_free_space_log_normal_shadowing`

object contains the following properties:

`path_loss_free_space_log_normal_shadowing.log_normal_shadowing_variance`

`path_loss_free_space_log_normal_shadowing.path_loss_exponent`

`path_loss_free_space_log_normal_shadowing.name`

`path_loss_free_space_log_normal_shadowing.type`

`path_loss_free_space_log_normal_shadowing.distance`

`path_loss_free_space_log_normal_shadowing.attenuation`

`path_loss_free_space_log_normal_shadowing.carrier_frequency`

`path_loss_free_space_log_normal_shadowing.carrier_wavelength`

`path_loss_free_space_log_normal_shadowing.propagation_velocity`

### List of Methods

The `path_loss_free_space_log_normal_shadowing`

object contains the following methods:

`path_loss_free_space_log_normal_shadowing.compute_path_loss_attenuation`

Computes the path attenuation (path loss) according to the free-space path loss (FSPL) formula.`path_loss_free_space_log_normal_shadowing.create`

Creates a path loss object of a specific type.`path_loss_free_space_log_normal_shadowing.get_attenuation`

Returns the realized attenuation of the path loss model.`path_loss_free_space_log_normal_shadowing.initialize`

Initializes a path loss object.`path_loss_free_space_log_normal_shadowing.initialize_free_space`

Initializes a free-space path loss object.`path_loss_free_space_log_normal_shadowing.initialize_free_space_log_normal_shadowing`

Initializes a free-space path loss with log-normal shadowing object.`path_loss_free_space_log_normal_shadowing.path_loss_free_space_log_normal_shadowing`

Creates a free-space path loss with log-normal shadowing object.`path_loss_free_space_log_normal_shadowing.realization`

Invokes a realization of the path loss.`path_loss_free_space_log_normal_shadowing.realization_log_normal_shadowing`

Realizes log-normal shadowing based on the current log-normal shadowing variance.`path_loss_free_space_log_normal_shadowing.set_carrier_frequency`

Sets the carrier frequency of the channel. Also updates the carrier wavelength accordingly.`path_loss_free_space_log_normal_shadowing.set_distance`

Sets the distance of the path (in meters).`path_loss_free_space_log_normal_shadowing.set_log_normal_shadowing_variance`

Sets the log-normal shadowing variance.`path_loss_free_space_log_normal_shadowing.set_name`

Sets the name of the path loss model.`path_loss_free_space_log_normal_shadowing.set_path_loss_attenuation`

Sets the attenuation of the path loss model.`path_loss_free_space_log_normal_shadowing.set_path_loss_exponent`

Sets the path loss exponent.`path_loss_free_space_log_normal_shadowing.set_propagation_velocity`

Sets the propagation velocity of the channel. Also updates the carrier wavelength accordingly.`path_loss_free_space_log_normal_shadowing.set_type`

Sets the type of path loss model.

### Methods Documentation

`compute_path_loss_attenuation()`

`compute_path_loss_attenuation()`

Computes the path attenuation (path loss) according to the free-space path loss (FSPL) formula.

- Usage:
`atten = compute_path_loss_attenuation()`

*Return Values*:`atten`

— the path attenuation (path loss) (a power loss)*Notes*:- The free-space path loss (FSPL) equation used is G = (lambda / (4*pi))^2 * (1/d)^ple, where G is the inverse path loss in terms of power.

`create(type)`

`create(type)`

Creates a path loss object of a specific type.

- Usage:
`obj = path_loss.create()`

`obj = path_loss.create(type)`

*Input Arguments*:`type`

— (optional) a string specifying which path loss model to create*Return Values*:`obj`

— a path loss object

`get_attenuation()`

`get_attenuation()`

Returns the realized attenuation of the path loss model.

- Usage:
`val = get_attenuation()`

*Return Values*:`val`

— the attenuation (power loss) of the path

`initialize()`

`initialize()`

Initializes a path loss object.

- Usage:
`initialize()`

`initialize_free_space()`

`initialize_free_space()`

Initializes a free-space path loss object.

- Usage:
`initialize_free_space()`

`initialize_free_space_log_normal_shadowing()`

`initialize_free_space_log_normal_shadowing()`

Initializes a free-space path loss with log-normal shadowing object.

- Usage:
`initialize_free_space_log_normal_shadowing()`

`path_loss_free_space_log_normal_shadowing(name)`

`path_loss_free_space_log_normal_shadowing(name)`

Creates a free-space path loss with log-normal shadowing object.

- Usage:
`obj = path_loss_free_space_log_normal_shadowing()`

`obj = path_loss_free_space_log_normal_shadowing(name)`

*Input Arguments*:`name`

— an optional name for the object*Return Values*:`obj`

— an object representing free-space path loss

`realization()`

`realization()`

Invokes a realization of the path loss.

- Usage:
`atten = realization()`

*Return Values*:`val`

— the realized path loss attenuation with shadowing

`realization_log_normal_shadowing()`

`realization_log_normal_shadowing()`

Realizes log-normal shadowing based on the current log-normal shadowing variance.

- Usage:
`val = realization_log_normal_shadowing()`

*Return Values*:`val`

— the realized shadowing factor

`set_carrier_frequency(fc)`

`set_carrier_frequency(fc)`

Sets the carrier frequency of the channel. Also updates the carrier wavelength accordingly.

- Usage:
`set_carrier_frequency(fc)`

*Input Arguments*:`fc`

— carrier frequency (Hz)*Notes*:- Also updates carrier wavelength.

`set_distance(d)`

`set_distance(d)`

Sets the distance of the path (in meters).

- Usage:
`set_distance(d) Sets the distance of the link to a specific`

`value.`

*Input Arguments*:`d`

— distance of the path (in meters)

`set_log_normal_shadowing_variance(var)`

`set_log_normal_shadowing_variance(var)`

Sets the log-normal shadowing variance.

- Usage:
`set_log_normal_shadowing_variance(var)`

*Input Arguments*:`var`

— log-normal shadowing variance (a quantity in dB)

`set_name(name)`

`set_name(name)`

Sets the name of the path loss model.

- Usage:
`set_name()`

`set_name(name)`

*Input Arguments*:`name`

— (optional) a string; if not passed, ‘path-loss’ is the default name used

`set_path_loss_attenuation(atten)`

`set_path_loss_attenuation(atten)`

Sets the attenuation of the path loss model.

- Usage:
`set_path_loss_attenuation(atten)`

*Input Arguments*:`atten`

— the attenuation (power loss) of the path

`set_path_loss_exponent(ple)`

`set_path_loss_exponent(ple)`

Sets the path loss exponent.

- Usage:
`set_path_loss_exponent(ple)`

*Input Arguments*:`ple`

— path loss exponent (a positive number)

`set_propagation_velocity(val)`

`set_propagation_velocity(val)`

Sets the propagation velocity of the channel. Also updates the carrier wavelength accordingly.

- Usage:
`set_propagation_velocity(val)`

*Input Arguments*:`val`

— propagation velocity (meters/sec)

`set_type(type)`

`set_type(type)`

Sets the type of path loss model.

- Usage:
`set_type()`

`set_type(type)`

*Input Arguments*:`type`

— (optional) a string; if not passed, ‘default’ is the default type used