Channels#
- class AWGN(value: float = 1.0, unit: Literal['sigma2', 'snr', 'snr_dB', 'snr_dBm'] = 'sigma2', sigma2s: float = 1.0, sigma2s_method: Literal['fixed', 'measured'] = 'fixed', seed: int = None, name: str = 'awgn')#
A class representing an Additive White Gaussian Noise (AWGN) for MIMO channel.
This class models an AWGN channel, which adds complex Gaussian noise to a signal. It is characterized by a noise power specified by sigma squared (sigma2).
Signal Model#
\[y_u[n] = x_u[n] + b_u[n]\]where:
\(b[n]\sim \mathcal{N}(0, \sigma^2)\) is a Gaussian additive noise.
For complex signals, a circular Gaussian noise is applied to the signal. The value of \(\sigma^2\) is computed with respect to the method specified as input.
Attributes#
- valuefloat, optional
The value associated with the given method. Defaut is 1
- unitstr, optional
The unit to compute the noise power (“nat”, “dB”, “dBm”). Default is “var_nat”
- sigma2sfloat, optional
Signal power. default is 1
- seedint, optional
The seed for the noise generator.
- sigma2s_method: Literal[“fixed”, “measured”]
The method used to obtain the signal power
- namestr
Name of the channel instance.
- class BaseMIMOChannel(H: array | None = None, extend: bool = True, name: str = 'mimo_channel')#
A base class for modeling Multiple-Input Multiple-Output (MIMO) channels.
This class provides a framework for simulating MIMO communication channels, including methods for setting channel matrices, configuring signal-to-noise ratios (SNR), generating noise, and processing input signals.
Signal Model#
\[\mathbf{y}[n] = \sum_{l=0}^{L}\mathbf{H}[l]x[n-l] + \mathbf{b}[n]\]where
\(\mathbf{H}[l]\) is a channel matrix of size \(N_r \times N_t\) corresponding the \(l^{th}\) channel tap,
\(\mathbf{x}[n]\) is a \(N_t\) vector containing the transmitted data,
\(\mathbf{b}[n]\sim \mathcal{N}_c(\mathbf{0},\sigma^2\mathbf{I}_{N_r})\) is a \(N_r\) vector containing the additive white Gaussian noise.
Attributes#
- Pfloat
Transmit power.
- HOptional[np.array]
List of channel matrices for each tap. Each matrice should have equal dimension.
- extendbool
Flag to extend the input signal.
- namestr
Name of the processor.
- class FlatMIMOChannel(H: Optional[<built-in function array>] = None, extend: bool = True, name: str = 'mimo_channel')#
- class SelectiveMIMOChannel(H: Optional[<built-in function array>] = None, extend: bool = True, name: str = 'mimo_channel')#