Ideal Channel#

class IdealChannelRealization(channel, impulse_response)#

Bases: ChannelRealization

Realization of an ideal channel.

  • channel (Channel) – Channel from which the impulse response was generated.

  • impulse_response (np.ndarray) – The channel impulse response.

class IdealChannel(transmitter=None, receiver=None, devices=None, active=True, gain=1.0, sync_offset_low=0.0, sync_offset_high=0.0, impulse_response_interpolation=True, seed=None)#

Bases: Channel[IdealChannelRealization]

An ideal distortion-less channel.

It also serves as a base class for all other channel models.

For MIMO systems, the received signal is the addition of the signal transmitted at all antennas. The channel will provide number_rx_antennas outputs to a signal consisting of number_tx_antennas inputs. Depending on the channel model, a random number generator, given by rnd may be needed. The sampling rate is the same at both input and output of the channel, and is given by sampling_rate samples/second.

  • transmitter (Transmitter, optional) – The device transmitting into this channel.

  • receiver (Receiver, optional) – The device receiving from this channel.

  • devices (Tuple[SimulatedDevice, SimulatedDevice], optional) – Tuple of devices connected by this channel model.

  • active (bool, optional) – Channel activity flag. Activated by default.

  • gain (float, optional) – Linear channel power gain factor. 1.0 by default.

  • sync_offset_low (float, optional) – Minimum synchronization error in seconds.

  • sync_offset_high (float, optional) – Maximum synchronization error in seconds.

  • impulse_response_interpolation (bool, optional) – Allow the impulse response to be interpolated during sampling.

  • seed (int, optional) – Seed used to initialize the pseudo-random number generator.

yaml_tag: str = 'Channel'#

YAML serialization tag.

realize(num_samples, _)#

Generate a new channel impulse response.

Note that this is the core routine from which Channel.propagate() will create the channel state.


num_samples (int) – Number of samples \(N\) within the impulse response.

Return type:



Numpy aray representing the impulse response for all propagation paths between antennas. 4-dimensional tensor of size \(M_\mathrm{Rx} \times M_\mathrm{Tx} \times N \times (L+1)\) where \(M_\mathrm{Rx}\) is the number of receiving antennas, \(M_\mathrm{Tx}\) is the number of transmitting antennas, \(N\) is the number of propagated samples and \(L\) is the maximum path delay (in samples). For the ideal channel in the base class \(L = 0\).