# lte3DChannel

Filter signal through 3-D MIMO fading channel

## Description

The `lte3DChannel`

System object™ filters an input signal through the TR 36.873 link-level
multiple-input/multiple-output (MIMO) fading channel to obtain the channel-impaired signal.
The object implements these channel processing steps defined in TR 36.873 [1], Section 7.3:

Step 7: Adding ray offset angles

Step 8: Coupling of rays

Step 9: Generating cross-polarization power ratios (XPRs)

Step 10: Drawing random initial phases

Step 11: Generating channel coefficients for each cluster

To filter an input signal using the TR 36.873 link-level MIMO fading channel:

Create the

`lte3DChannel`

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

### Syntax

### Description

creates a TR 36.873
link-level MIMO System object.`lte3d`

= lte3DChannel

creates the object with properties set by using one or more name-value pairs. Enclose
the property name inside quotes, followed by the specified value. Unspecified properties
take default values.`lte3d`

= lte3DChannel(`Name,Value`

)

**Example: **```
lte3d =
lte3DChannel('PathDelays',2e-6,'HasLOSCluster',true,'KFactorFirstCluster',12)
```

creates the channel object with a path delay of two microseconds, the LOS cluster of the
delay profile enabled, and a K-factor of 12 dB for the first cluster of the delay
profile.

creates the object with the specified CDL delay profile from TR 38.901 [2] Section 7.7.1, and a
delay spread of 30 ns.`lte3d`

= lte3DChannel.makeCDL(`DelayProfile`

)

creates the object with the specified CDL delay profile and delay spread.`lte3d`

= lte3DChannel.makeCDL(`DelayProfile`

,`DelaySpread`

)

creates the object with the specified CDL delay profile, delay spread, and K-factor
scaling.`lte3d`

= lte3DChannel.makeCDL(`DelayProfile`

,`DelaySpread`

,`KFactor`

)

### Input Arguments

`DelayProfile`

— Delay profile

`'CDL-A'`

| `'CDL-B'`

| `'CDL-C'`

| `'CDL-D'`

| `'CDL-E'`

Delay profile, specified as one of `'CDL-A'`

,
`'CDL-B'`

, `'CDL-C'`

, `'CDL-D'`

,
or `'CDL-E'`

.

`DelaySpread`

— Delay spread in ns

`30`

(default) | numeric scalar

Delay spread in ns, specified as a numeric scalar.

**Data Types: **`double`

`KFactor`

— K-factor scaling

numeric scalar

K-factor scaling, specified as a numeric scalar. K-factor scaling applies only
when you specify `DelayProfile`

as `'CDL-D'`

or `'CDL-E'`

.

**Data Types: **`double`

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

`PathDelays`

— Discrete path delays in seconds

`0`

(default) | numeric scalar | row vector

Discrete path delays in seconds, specified as a numeric scalar or row vector.
`AveragePathGains`

and `PathDelays`

must have the same
size.

**Data Types: **`double`

`AveragePathGains`

— Average path gains in dB

`0`

(default) | numeric scalar | row vector

Average path gains in dB, specified as a numeric scalar or row vector.
`AveragePathGains`

and `PathDelays`

must have the same size.

**Data Types: **`double`

`AnglesAoA`

— Azimuth of arrival angle in degrees

`0`

(default) | numeric scalar | row vector

Azimuth of arrival angle in degrees, specified as a numeric scalar or row vector. The vector elements specify the angles for each cluster.

**Data Types: **`double`

`AnglesAoD`

— Azimuth of departure angle

`0`

(default) | numeric scalar | row vector

Azimuth of departure angle in degrees, specified as a numeric scalar or row vector. The vector elements specify the angles for each cluster.

**Data Types: **`double`

`AnglesZoA`

— Zenith of arrival angle

`0`

(default) | numeric scalar | row vector

Zenith of arrival angle in degrees, specified as a numeric scalar or row vector. The vector elements specify the angles for each cluster.

**Data Types: **`double`

`AnglesZoD`

— Zenith of departure angle

`0`

(default) | numeric scalar | row vector

Zenith of departure angle in degrees, specified as a numeric scalar or row vector. The vector elements specify the angles for each cluster.

**Data Types: **`double`

`HasLOSCluster`

— Line of sight cluster of the delay profile

`false`

(default) | `true`

Line of sight (LOS) cluster of the delay profile, specified as
`false`

or `true`

. The `PathDelays`

,
`AveragePathGains`

, `AnglesAoA`

,
`AnglesAoD`

,
`AnglesZoA`

, and
`AnglesZoD`

properties define the delay profile. To enable the LOS cluster of the delay profile, set
this property to `true`

.

**Data Types: **`logical`

`KFactorFirstCluster`

— K-factor of first cluster of delay profile in dB

`13.3`

(default) | numeric scalar

K-factor of the first cluster of the delay profile in dB, specified as a numeric scalar.

#### Dependencies

To enable this property, set `HasLOSCluster`

to `true`

.

**Data Types: **`double`

`AngleSpreads`

— Cluster-wise RMS angle spreads

`[5.0 11.0 3.0 3.0]`

(default) | row vector

Cluster-wise root mean square (RMS) angle spreads, in degrees, for scaling ray
offset angles within a cluster. Specify this property as a row vector of the form
[*C*_{AoD}
*C*_{AoA}
*C*_{ZoD}
*C*_{ZoA}], where:

*C*_{AoD}is the cluster-wise RMS azimuth spread of departure angles within a cluster*C*_{AoA}is the cluster-wise RMS azimuth spread of arrival angles within a cluster*C*_{ZoD}is the cluster-wise RMS zenith spread of departure angles within a cluster*C*_{ZoA}is the cluster-wise RMS zenith spread of arrival angles within a cluster

**Data Types: **`double`

`XPR`

— Cross-polarization power ratio in dB

`10`

(default) | numeric scalar

Cross-polarization power ratio, in dB, specified as a numeric scalar.

#### Dependencies

To enable this property, set `HasLOSCluster`

to `true`

.

**Data Types: **`double`

`CarrierFrequency`

— Carrier frequency in Hz

`4e9`

(default) | numeric scalar

Carrier frequency in Hz, specified as a numeric scalar.

**Data Types: **`double`

`MaximumDopplerShift `

— Maximum Doppler shift in Hz

`5`

(default) | nonnegative numeric scalar

Maximum Doppler shift in Hz, specified as a nonnegative numeric scalar. This
property applies to all channel paths. When the maximum Doppler shift is set to 0, the
channel remains static for the entire input. To generate a new channel realization,
reset the object by calling the `reset`

function.

**Data Types: **`double`

`UTDirectionOfTravel `

— User terminal direction of travel in degrees

`[0; 90]`

(default) | two-element column vector

User terminal (UT) direction of travel in degrees, specified as a two-element column
vector. The vector elements specify the azimuth and the elevation components:
`[azimuth; elevation]`

.

**Data Types: **`double`

`SampleRate`

— Sample rate of input signal in Hz

`30.72e6`

(default) | positive numeric scalar

Sample rate of input signal in Hz, specified as a positive numeric scalar.

**Data Types: **`double`

`TransmitAntennaArray`

— Transmit antenna array characteristics

structure

Transmit antenna array characteristics, specified as a structure that contains the following fields:

Parameter Field | Values | Description |
---|---|---|

`Size` |
row vector | Size of antenna array, specified as a row vector of the form [M N P]. M and N are the number of rows and columns in the antenna array, respectively. P is the number of polarizations (1 or 2).
The antenna array elements are mapped to the input waveform channels (columns) in the order that a 3-D array of size M-by-N-by-P is linearly indexed across the first dimension to the last. For
example, an antenna array of size |

For an antenna array with multiple panels, specify the size as a
row vector of the form [M N P M The antenna array elements are mapped panel-wise
to the waveform channels in the order that a 5-D array of size
M-by-N-by-P-by-M | ||

`ElementSpacing` |
row vector | Element spacing in wavelengths, specified as a row vector of the
form [λ |

For an antenna array with multiple panels, specify the spacing as a
row vector of the form [λ | ||

`PolarizationAngles` |
row vector | Polarization angles in degrees, specified as a row vector of the form [θ ρ]. Polarization angles apply only when the number of polarizations is 2. |

`Orientation` |
column vector | Mechanical orientation of the array, in degrees, specified as a column
vector of the form [α; β; γ] describing bearing, downtilt,
and slant. The default value indicates that the broadside direction of the
array points to the positive x-axis. |

`Element` |
| Antenna element radiation pattern. See TR 36.873 [1], Section 7.1.1. |

`PolarizationModel` |
| Model that determines the radiation field patterns based on a defined radiation power pattern. See TR 36.873 [1], Section 7.1.1. |

**Data Types: **`struct`

`ReceiveAntennaArray`

— Receive antenna array characteristics

structure

Receive antenna array characteristics, specified as a structure that contains the following fields:

Parameter Field | Values | Description |
---|---|---|

`Size` |
row vector | Size of antenna array, specified as a row vector of the form [M N P]. M and N are the number of rows and columns in the antenna array. P is the number of polarizations (1 or 2).
The antenna array elements are mapped to the input waveform channels (columns) in the order that a 3-D array of size M-by-N-by-P is linearly indexed across the first dimension to the last. For
example, an antenna array of size |

For an antenna array with multiple panels, you can specify the size
as a row vector of the form [M N P M The antenna array elements are mapped panel-wise
to the waveform channels in the order that a 5-D array of size
M-by-N-by-P-by-M | ||

`ElementSpacing` |
row vector | Element spacing in wavelengths, specified as a a row vector of the
form [λ |

For an antenna array with multiple panels, you can specify the
spacing as a row vector of the form [λ | ||

`PolarizationAngles` |
row vector | Polarization angles in degrees, specified as a row vector of the form [θ ρ]. Polarization angles apply only when the number of polarizations is 2. |

`Orientation` |
column vector | Mechanical orientation of the array, in degrees, specified as a column vector of the form [α; β; γ] describing bearing, downtilt, and slant, respectively. The default value indicates that the broadside direction of the array points to the positive x-axis. |

`Element` |
| Antenna element radiation pattern. See TR 36.873 [1], Section 7.1.1. |

`PolarizationModel` |
| Model that determines the radiation field patterns based on a defined radiation power pattern. See TR 36.873 [1], Section 7.1.1. |

**Data Types: **`structure`

`SampleDensity`

— Number of time samples per half wavelength

`64`

(default) | `Inf`

| numeric scalar

Number of time samples per half wavelength, specified as a numeric scalar. The
`SampleDensity`

and `MaximumDopplerShift`

properties control the coefficient generation sampling
rate, *Fcg*:

*Fcg* = `MaximumDopplerShift`

× 2 ×
`SampleDensity`

.

Setting `SampleDensity`

to `Inf`

assigns
*Fcg* the value of the `SampleRate`

property.

**Data Types: **`double`

`NormalizePathGains`

— Normalize path gains

`true`

(default) | `false`

Normalize path gains, specified as `true`

or
`false`

. Use this property to normalize the fading processes. When
this property is set to `true`

, the total power of the path gains,
averaged over time, is 0 dB. When this property is set to `false`

, the
path gains are not normalized. The `AveragePathGains`

property specifies the average powers of the path
gains.

**Data Types: **`logical`

`InitialTime`

— Start time of fading process in seconds

`0.0`

(default) | numeric scalar

Start time of fading process in seconds, specified as a numeric scalar.

**Tunable: **Yes

**Data Types: **`double`

`NumStrongestClusters`

— Number of strongest clusters to split into subclusters

`0`

(default) | numeric scalar

Number of strongest clusters to split into subclusters, specified as a numeric scalar. See TR 36.873 [1], Section 7.3, Step 11.

**Data Types: **`double`

`ClusterDelaySpread`

— Cluster delay spread in seconds

`3.90625e-9`

(default) | nonnegative scalar

Cluster delay spread in seconds, specified as a nonnegative scalar. Use this property to specify the delay offset between subclusters for clusters split into subclusters. See TR 36.873 [1], Section 7.3, Step 11.

#### Dependencies

To enable this property, set `NumStrongestClusters`

to a value greater than zero.

**Data Types: **`double`

`RandomStream`

— Source of random number stream

`'mt19937ar with seed'`

(default) | `'Global stream'`

Source of random number stream, specified as one of the following:

`'mt19937ar with seed'`

— The object uses the mt19937ar algorithm for normally distributed random number generation. Calling the`reset`

function resets the filters and reinitializes the random number stream to the value of the`Seed`

property.`'Global stream'`

— The object uses the current global random number stream for normally distributed random number generation. Calling the`reset`

function resets only the filters.

`Seed`

— Initial seed of mt19937ar random number stream

`73`

(default) | nonnegative numeric scalar

Initial seed of mt19937ar random number stream, specified as a nonnegative numeric scalar.

#### Dependencies

To enable this property, set `RandomStream`

to `'mt19937ar with seed'`

. When calling the `reset`

function, the seed reinitializes the mt19937ar random number
stream.

**Data Types: **`double`

`ChannelFiltering`

— Filter input signal

`true`

(default) | `false`

Filter input signal, specified as `true`

or
`false`

. When this property is set to `false`

, the
object takes no input signal, and the path gains and sample times are the only outputs.
In this case, the `NumTimeSamples`

property controls the duration of the fading process realization at a sampling rate
given by the `SampleRate`

property.

**Data Types: **`logical`

`NumTimeSamples`

— Number of time samples

`30720`

(default) | positive integer

Number of time samples, specified as a positive integer. Use this property to set the duration of the fading process realization.

**Tunable: **Yes

#### Dependencies

To enable this property, set `ChannelFiltering`

to `false`

.

**Data Types: **`double`

`NormalizeChannelOutputs`

— Normalize channel outputs by the number of receive antennas

`true`

(default) | `false`

Normalize channel outputs by the number of receive antennas, specified as
`true`

or `false`

.

#### Dependencies

To enable this property, set `ChannelFiltering`

to `true`

.

**Data Types: **`double`

## Usage

### Syntax

### Description

`[`

also returns the sample times of the channel snapshots of `signalOut`

,`pathGains`

,`sampleTimes`

] = lte3d(`signalIn`

)`pathGains`

(first-dimension elements).

returns only the path
gains. In this case, the `pathGains`

= lte3d()`NumTimeSamples`

property determines the duration of the fading process. The object acts as a source of
path gains without filtering an input signal.

To use this syntax, you must set the `ChannelFiltering`

property of `lte3d`

to
`false`

.

`[`

also returns the sample times. The object acts as a source of the path gains and sample
times without filtering an input signal. `pathGains`

,`sampleTimes`

] = lte3d()

To use this syntax, you must set the `ChannelFiltering`

property of `lte3d`

to
`false`

.

### Input Arguments

`signalIn`

— Input signal

complex scalar | vector | *N*_{S}-by-*N*_{T}
matrix

Input signal, specified as a complex scalar, vector, or
*N*_{S}-by-*N*_{T}
matrix, where:

*N*_{S}is the number of samples.*N*_{T}is the number of transmit antennas.

**Data Types: **`single`

| `double`

**Complex Number Support: **Yes

### Output Arguments

`signalOut`

— Output signal

complex scalar | vector | *N*_{S}-by-*N*_{R}
matrix

Output signal, returned as a complex scalar, vector, or
*N*_{S}-by-*N*_{R}
matrix, where:

*N*_{S}is the number of samples.*N*_{R}is the number of receive antennas.

The output signal data type is of the same precision as the input signal data type.

**Data Types: **`single`

| `double`

**Complex Number Support: **Yes

`pathGains`

— MIMO channel path gains of fading process

*N*_{CS}-by-*N*_{P}-by-*N*_{T}-by-*N*_{R}
complex matrix

MIMO channel path gains of the fading process, returned as a
*N*_{CS}-by-*N*_{P}-by-*N*_{T}-by-*N*_{R}
complex matrix, where:

*N*_{CS}is the number of channel snapshots, controlled by the`SampleDensity`

property.*N*_{P}is the number of paths, given by the size of the`PathDelays`

property.*N*_{T}is the number of transmit antennas.*N*_{R}is the number of receive antennas.

The path gains data type is of the same precision as the input signal data type.

**Data Types: **`single`

| `double`

**Complex Number Support: **Yes

`sampleTimes`

— Sample times of channel snapshots

*N*_{CS}-by-1 column vector

Sample times of channel snapshots, returned as an
*N*_{CS}-by-1 column vector, where
*N*_{CS} is the number of channel snapshots,
controlled by the `SampleDensity`

property.

**Data Types: **`double`

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

### Specific to `lte3DChannel`

`displayChannel` | Visualize and explore 3-D MIMO fading channel model characteristics |

`getPathFilters` | Get path filter impulse response for 3-D MIMO fading channel |

`info` | Get characteristic information about 3-D MIMO fading channel |

## Examples

### Transmission over 3-D Channel with Delay Profile CDL-D

Transmit an LTE waveform through a 3-D channel with delay profile CDL-D from TR 38.901 Section 7.7.1.

Define the transmission waveform configuration structure, initialized to reference measurement channel (RMC) R.50, TDD (10MHz, QPSK, R=1/3, 1 layer, 8 CSI-RS ports), and one subframe.

rmc = lteRMCDL('R.50','TDD'); rmc.TotSubframes = 1; data = [1; 0; 0; 1]; [txWaveform,~,txInfo] = lteRMCDLTool(rmc,data);

Define the channel configuration structure using an `lte3DChannel`

System object. Use delay profile CDL-D from TR 38.901 Section 7.7.1, a delay spread of 10 ns, and UT velocity of 15 km/h:

v = 15.0; % UT velocity in km/h fc = 4e9; % carrier frequency in Hz c = physconst('lightspeed'); % speed of light in m/s fd = (v*1000/3600)/c*fc; % UT max Doppler frequency in Hz lte3d = lte3DChannel.makeCDL('CDL-D',10e-9); lte3d.CarrierFrequency = fc; lte3d.MaximumDopplerShift = fd; lte3d.SampleRate = txInfo.SamplingRate;

Configure the transmit array as [M N P] = [2 2 2], representing a 2-by-2 antenna array (M=2, N=2) and P=2 polarization angles. Configure the receive antenna array as [M N P] = [1 1 2], representing a single pair of cross-polarized co-located antennas.

lte3d.TransmitAntennaArray.Size = [2 2 2]; lte3d.ReceiveAntennaArray.Size = [1 1 2];

Call the 3-D channel object on the input waveform.

rxWaveform = lte3d(txWaveform);

### Explore Effect of `SampleDensity`

Property on Channel Output

Plot channel output and path gain snapshots for various sample density values while using an `lte3DChannel`

System object.

Configure a 3-D channel for SISO operation and delay profile CDL-B from TR 38.901 Section 7.7.1. Set the maximum Doppler shift to 300 Hz and the channel sampling rate to 10 kHz.

```
lte3d = lte3DChannel.makeCDL('CDL-B');
lte3d.MaximumDopplerShift = 300.0;
lte3d.SampleRate = 10e3;
lte3d.Seed = 19;
```

Configure transmit and receive antenna arrays.

lte3d.TransmitAntennaArray.Size = [1 1 1]; lte3d.ReceiveAntennaArray.Size = [1 1 1];

Create an input waveform with a length of 40 samples.

T = 40; in = ones(T,1);

Plot the step response of the channel (displayed as lines) and the corresponding path gain snapshots (displayed circles) for various values of the `SampleDensity`

property. The sample density property controls how often the channel snapshots are taken relative to the Doppler frequency.

When

`SampleDensity = Inf`

, a channel snapshot is taken for every input sample.When

`SampleDensity = X`

, a channel snapshot is taken at a rate of`Fcs = 2*X*MaximumDopplerShift`

.

The `lte3DChannel`

object applies the channel snapshots to the input waveform by means of zero-order hold interpolation. The object takes an extra snapshot beyond the end of the input. Some of the final output samples use this extra value to minimize the interpolation error. The channel output contains a transient (and a delay) due to the filters that implement the path delays.

s = [Inf 5 2]; % sample densities legends = {}; figure; hold on; SR = lte3d.SampleRate; for i = 1:length(s) % call channel with chosen sample density release(lte3d); lte3d.SampleDensity = s(i); [out,pathgains,sampletimes] = lte3d(in); chInfo = info(lte3d); tau = chInfo.ChannelFilterDelay; % plot channel output against time t = lte3d.InitialTime + ((0:(T-1)) - tau).' / SR; h = plot(t,abs(out),'o-'); h.MarkerSize = 2; h.LineWidth = 1.5; desc = ['Sample Density=' num2str(s(i))]; legends = [legends ['Output, ' desc]]; disp([desc ', Ncs=' num2str(length(sampletimes))]); % plot path gains against sample times h2 = plot(sampletimes - tau/SR,abs(sum(pathgains,2)),'o'); h2.Color = h.Color; h2.MarkerFaceColor = h.Color; legends = [legends ['Path Gains, ' desc]]; end

Sample Density=Inf, Ncs=40 Sample Density=5, Ncs=13 Sample Density=2, Ncs=6

xlabel('Time (s)'); title('Channel Output and Path Gains versus Sample Density'); ylabel('Channel Magnitude'); legend(legends,'Location','NorthWest');

### Waveform Spectrum of 3-D Channel Filtered LTE OFDM Modulation

Display waveform spectrum of an LTE OFDM modulation waveform passed through a 40-by-2 channel using the `lte3DChannel`

System object.

Create a resource grid for 40 antennas.

```
enb.NDLRB = 25;
enb.CyclicPrefix = 'Normal';
grid = lteDLResourceGrid(enb,40);
```

Fill the grid with QPSK symbols and perform LTE OFDM modulation.

```
grid(:) = lteSymbolModulate(randi([0 1],numel(grid)*2,1),'QPSK');
[txWaveform,txInfo] = lteOFDMModulate(enb,grid);
```

Create an `lte3DChannel`

System object with specific properties.

lte3d = lte3DChannel('PathDelays',[0 500e-9], ... 'AveragePathGains',[-13.4 3.0], ... 'AnglesAoD',[-178.1 -4.2], ... 'AnglesAoA',[51.3 -152.7], ... 'AnglesZoD',[50.2 93.2], ... 'AnglesZoA',[125.4 91.3], ... 'NumStrongestClusters',1, ... 'SampleRate',txInfo.SamplingRate);

Configure transmit and receive antenna arrays.

lte3d.TransmitAntennaArray.Size = [10 2 2]; lte3d.ReceiveAntennaArray.Size = [1 1 2];

The antenna array elements are mapped to the waveform channels (columns) using linear indexing of `TransmitAntennaArray.Size`

or `ReceiveAntennaArray.Size`

across the first dimension to the last. See the `TransmitAntennaArray`

or `ReceiveAntennaArray`

properties of the `lte3DChannel`

System object for more details.

Pass the LTE OFDM modulation waveform through the 40-by-2 3-D channel.

rxWaveform = lte3d(txWaveform);

Plot the received waveform spectrum.

analyzer = dsp.SpectrumAnalyzer('SampleRate',lte3d.SampleRate); analyzer.Title = 'Received Signal Spectrum'; analyzer(rxWaveform);

## References

[1] 3GPP TR 36.873. “Study on
3D channel model for LTE.” *3rd Generation Partnership Project; Technical
Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access
(E-UTRA)*. URL: https://www.3gpp.org.

[2] 3GPP TR 38.901. “Study on
channel model for frequencies from 0.5 to 100 GHz.” *3rd Generation
Partnership Project; Technical Specification Group Radio Access Network*. URL:
https://www.3gpp.org.

## Version History

**Introduced in R2018a**

## See Also

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