# Random Delay Channel#

class RandomDelayChannel(delay, *args, **kwargs)[source]#

Delay channel assuming a uniformly distributed random propagation between the linked devices.

Its impulse response between two devices $$\alpha$$ and $$\beta$$ featuring $$N^{(\alpha)}$$ and $$N^{(\beta)}$$ antennas, respectively, is given by

$\mathbf{H}(t,\tau) = \frac{1}{4\pi f_\mathrm{c}^{(\alpha)}\overline{\tau}} \mathbf{A}^{(\alpha,\beta)} \delta(\tau - \overline{\tau})\ \text{.}$

The assumed propagation delay is drawn from the uniform distribution

$\overline{\tau} \sim \mathcal{U}(\tau_{\mathrm{Min}}, \tau_{\mathrm{Max}})$

and lies in the interval between $$\tau_\mathrm{Min}$$ and $$\tau_\mathrm{Max}$$. The sensor array response $$\mathbf{A}^{(\alpha,\beta)}$$ is always assumed to be the identity matrix.

The following minimal example outlines how to configure the channel model within the context of a Simulation:

 1# Initialize two devices to be linked by a channel
2simulation = Simulation()
3alpha_device = simulation.new_device(carrier_frequency=1e8)
4beta_device = simulation.new_device(carrier_frequency=1e8)
5
6# Create a channel between the two devices
7channel = RandomDelayChannel((1e-8, 10e-8))
8simulation.set_channel(alpha_device, beta_device, channel)
9
10# Configure communication link between the two devices
12
13# Specify the waveform and postprocessing to be used by the link
15    symbol_rate=1e8, oversampling_factor=2, num_data_symbols=1000,
16    num_preamble_symbols=10, pilot_rate=10)
20
21# Configure a simulation to evaluate the link's BER and sweep over the receive SNR
23simulation.new_dimension('snr', dB(20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40))
24
25# Run simulation and plot resulting SNR curve
26simulation.num_samples = 1000
27result = simulation.run()
28result.plot()

Parameters:
• delay (float | Tuple[float, float]) – Assumed propagation delay in seconds. If a scalar floating point, the delay is assumed to be constant. If a tuple of two floats, the tuple values indicate the mininum and maxium values of a uniform distribution, respectively.

• *argsChannel base class initialization parameters.

• **kwargsChannel base class initialization parameters.

recall_realization(group)[source]#

Recall a realization of this channel type from its HDF serialization.

Parameters:

group (h5py.Group) – HDF group to which the channel realization was serialized.

Return type:

RandomDelayChannelRealization

Returns: The recalled realization instance.

property delay: float | Tuple[float, float]#

Assumed propagation delay in seconds.

If set to a scalar floating point, the delay is assumed to be constant. If set to a tuple of two floats, the tuple values indicate the mininum and maxium values of a uniform distribution, respectively.

Raises:
• ValueError – If the delay is set to a negative value.

• ValueError – If the delay is set to a tuple of two values where the first value is greater than the second value.