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

estimate_sigma2sbool

Whether to estimate the signal power.

namestr

Name of the channel instance.

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. This should be a 1-dimensional numpy array.

namestr, optional

The name of the channel instance (default is “fir”).