Channel Model & Noise Model

Channel Model

class ChannelModel(Nt: int, Nr: int, K: int)[source]

The Channel Model Abstract Base Class (ABC).

A channel model is responsible for generating the channel matrix according to a specific channel model and applying the channel effects to the transmitted signals.

class NeutralChannelModel(Nt: int, Nr: int, K: int)[source]

Bases: ChannelModel

Neutral Channel Model.

This channel model acts as a ‘neutral element’ for the channel.In particular, it generates an identity channel matrix, which means that the symbols are transmitted to the receive antennas for which they are intended, and without any interference.

class IIDRayleighFadingChannelModel(Nt: int, Nr: int, K: int)[source]

Bases: ChannelModel

Independent and Identically Distributed (IID) Rayleigh Fading Channel Model.

This channel model generates a channel matrix with independent and identically distributed (IID) circularly-symmetric zero-mean unit-variance complex Gaussian entries.The Rayleigh fading aspect is captured by the fact that the channel coefficients change independently after M transmissions.

class RiceanFadingChannelModel(Nt: int, Nr: int, K: int, K_rice: float, fD: float, num_channel_realizations: int = 2000, NLoS_method: str = 'Cholesky-decomposition method')[source]

Bases: ChannelModel

The Ricean fading channel model.

The LoS component is modeled as a deterministic component independent of time and across users. The NLoS component follows Jake’s model.

\[H_k(t) = e^{j \theta_k} \left(\sqrt{\frac{K}{K+1}} + \sqrt{\frac{1}{K+1}} \mathbf{H}_{\text{NLoS},k}(t)\right)\]

The parameters are:

  • \(K \in [0, +\infty)\): The Rice factor. It quantifies the strength of the deterministic LoS component relative to the scattered multipath.

  • \(\theta_k\): The arbitrary channel phase, uniformly distributed over $[-pi, pi]$ and independent across users $k$.

  • \(\mathbf{H}_{\text{NLoS},k}(t)\): The NLoS components. Each entry is an i.i.d. zero-mean unit-variance complex Gaussian process correlated in time. The PSD is:

\[S(f) = \frac{1}{\pi f_D \sqrt{1 - \left( \frac{f}{f_D} \right)^2}}, \quad |f| < f_D\]

Noise Model

class NoiseModel(Nr: int, K: int)[source]

Noise Model Abstract Base Class (ABC).

A noise model is responsible for generating the noise vectors according to a specific noise model and applying the noise effects to the received signals.

class NeutralNoiseModel(Nr: int, K: int)[source]

Bases: NoiseModel

Neutral Noise Model.

This noise model acts as a ‘neutral element’ for noise.It does not add any noise to the received signals but simply lets the noiseless received signals pass through.

class CSAWGNNoiseModel(Nr: int, K: int)[source]

Bases: NoiseModel

Circularly-Symmetric Additive White Gaussian Noise (CSAWGN) Model.

This noise model generates complex proper, circularly-symmetric additive white Gaussian noise (AWGN) vectors based on the specified signal-to-noise ratio (SNR).

See Also