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

Additive White Gaussian Noise (AWGN) 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. Default is 1.

unitLiteral[“sigma2”, “snr”, “snr_dB”, “snr_dBm”], optional

The unit to compute the noise power. Default is "sigma2".

sigma2sfloat, optional

Signal power. Default is 1.

sigma2s_methodLiteral[“fixed”, “measured”], optional

Method used to obtain the signal power. If "measured", the signal power is estimated from the input signal. Default is "fixed".

seedint, optional

The seed for the noise generator. Default is None.

namestr, optional

Name of the channel instance. Default is "awgn".

class FIRChannel(h: array, mode: Literal['full', 'same', 'valid'] = 'full', is_mimo: bool = False, name: str = 'fir')#

Finite Impulse Response (FIR) channel with given impulse response.

Signal Model#

The output signal \(y[n]\) is computed as the convolution of the input signal \(x[n]\) with the impulse response \(h[l]\):

\[y[n] = \sum_{l=0}^{L-1} h[l] x[n-l]\]

where:

  • \(h[l]\) is the impulse response of the channel.

  • \(L\) is the length of the impulse response.

Attributes#

hnp.ndarray

The impulse response of the FIR channel. Should be a 1-dimensional numpy array.

modeLiteral[“full”, “same”, “valid”], optional

Convolution mode passed to scipy.signal.convolve. Default is "full".

is_mimobool, optional

Whether the channel supports MIMO input. Default is False.

namestr, optional

The name of the channel instance. Default is "fir".