Channel Models

Additional channel models that were implemented to further explore jammer properties.

class pyjama.channel_models.MultiTapRayleighBlockFading(num_rx, num_rx_ant, num_tx, num_tx_ant, num_paths, dtype=tf.complex64)[source]

Generate channel impulse responses corresponding to a Rayleigh block fading channel model.

The channel impulse responses generated are formed of M paths with delays of \(\tau_m = \frac{m}{\mathtt{sampling\_frequency}}, 0 \leq m \leq M-1\), and a normally distributed fading coefficient. All time steps of a batch example share the same channel coefficient (block fading).

This class can be used in conjunction with the classes that simulate the channel response in time or frequency domain, i.e., OFDMChannel, TimeChannel, GenerateOFDMChannel, ApplyOFDMChannel, GenerateTimeChannel, ApplyTimeChannel.

Parameters
  • num_rx (int) – Number of receivers (\(N_R\))

  • num_rx_ant (int) – Number of antennas per receiver (\(N_{RA}\))

  • num_tx (int) – Number of transmitters (\(N_T\))

  • num_tx_ant (int) – Number of antennas per transmitter (\(N_{TA}\))

  • num_paths (int) – Number of paths (\(M\))

  • dtype (tf.DType) – Complex datatype to use for internal processing and output. Defaults to tf.complex64.

Input
  • batch_size (int) – Batch size

  • num_time_steps (int) – Number of time steps

  • sampling_frequency (float) – Sampling frequency [Hz]

Output
  • a ([batch size, num_rx, num_rx_ant, num_tx, num_tx_ant, num_paths], num_time_steps], tf.complex) – Path coefficients

  • tau ([batch size, num_rx, num_tx, num_paths], tf.float) – Path delays [s]