Ideal Channel#
- class IdealChannelRealization(channel, impulse_response)#
Bases:
ChannelRealization
Realization of an ideal channel.
- Parameters:
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.
- Parameters:
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.- Parameters:
num_samples (int) – Number of samples \(N\) within the impulse response.
- Return type:
- Returns:
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\).