Exponential¶

Exponentially decaying channel model.
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 = Exponential(1e-8, 1e-7)
8simulation.set_channel(alpha_device, beta_device, channel)
9
10# Configure communication link between the two devices
11link = SimplexLink()
12alpha_device.transmitters.add(link)
13beta_device.receivers.add(link)
14
15# Specify the waveform and postprocessing to be used by the link
16link.waveform = RRCWaveform(
17 symbol_rate=1e8, oversampling_factor=2, num_data_symbols=1000,
18 num_preamble_symbols=10, pilot_rate=10)
19link.waveform.channel_estimation = SCLeastSquaresChannelEstimation()
20link.waveform.channel_equalization = SCZeroForcingChannelEqualization()
21
22# Configure a simulation to evaluate the link's BER and sweep over the receive SNR
23simulation.add_evaluator(BitErrorEvaluator(link, link))
24simulation.new_dimension('noise_level', dB(0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20), beta_device)
25
26# Run simulation and plot resulting SNR curve
- class Exponential(tap_interval, rms_delay, correlation_distance=inf, num_sinusoids=20, los_angle=None, doppler_frequency=0.0, los_doppler_frequency=None, antenna_correlation=None, gain=1.0, seed=None)[source]¶
Bases:
MultipathFadingChannel
Exponential multipath fading channel model.
- Parameters:
tap_interval (
float
) – Tap interval in seconds.rms_delay (
float
) – Root-Mean-Squared delay in seconds.correlation_distance (
float
) – Distance at which channel samples are considered to be uncorrelated. \(\infty\) by default, i.e. the channel is considered to be fully correlated in space.num_sinusoids (
int
) – Number of sinusoids used to sample the statistical distribution. Denoted by \(N\) within the respective equations.los_angle (
float
|None
) – Angle phase of the line of sight component within the statistical distribution.doppler_frequency (
float
) – Doppler frequency shift of the statistical distribution. Denoted by \(\omega_{\ell}\) within the respective equations.antenna_correlation (
AntennaCorrelation
|None
) – Antenna correlation model. By default, the channel assumes ideal correlation, i.e. no cross correlations.gain (
float
) – Linear power gain factor a signal experiences when being propagated over this realization. \(1.0\) by default.seed (
int
|None
) – Seed used to initialize the pseudo-random number generator.
- Raises:
ValueError – On invalid arguments.
- classmethod Deserialize(process)[source]¶
Deserialize an object’s state.
Objects cannot be deserialized directly, instead a
Factory
must be instructed to carry out the deserialization process.- Parameters:
process (
DeserializationProcess
) – The current stage of the deserialization process. This object is generated by theFactory
and provides an interface to deserialization methods supporting multiple backends.- Return type:
- Returns:
The deserialized object.
- serialize(process)[source]¶
Serialize this object’s state.
Objects cannot be serialized directly, instead a
Factory
must be instructed to carry out the serialization process.- Parameters:
process (
SerializationProcess
) – The current stage of the serialization process. This object is generated by theFactory
and provides an interface to serialization methods supporting multiple backends.- Return type: