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:
ChannelModelNeutral 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:
ChannelModelIndependent 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:
ChannelModelThe 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:
NoiseModelNeutral 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:
NoiseModelCircularly-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).