Analog Beamforming

Demapper class is used for demodulating the estimated “qam”, “bpsk” or “\(\frac{\pi}{2}\)-bpsk” symbols. The demapper supports two implementations

  1. Max-log-MAP: Sub-optimal (3dB performance loss for AWGN channel) but has an order lower complexity than Log-MAP. It is configured using demapping_method = “maxlog”

  2. Log-MAP: Optimal performance for AWGN channels. It is configured using demapping_method = “app”

The decoder can be configured to return soft or hard output by using hard_out flag. The demapper for “qam” methods is imported from Sionna-demapper.

Important

  • When the output of demapper is passed to a channel coder or descrambler, the channel coder should be configured to either accept the hard inputs or the hard inputs must be converted to bipolar \(\{-1, 1\}\) format.

The demapping is performed as follows:

Log-MAP bpsk Demapper generating soft output:

demapMethod = "app" # Demapping method
constType = "bpsk"  # Symbol mapping type
modOrder  = 1       # Mordulation order or number of bits per symbol
hard_out  = False   # Whether to return hard output or soft output

# Symbol demapping object
demapper  = Demapper(demapMethod, constType, modOrder, hard_out = hard_out)
llr       = demapper([symbols, 1/snr]) # LLR Computation

Max-Log-MAP QAM Demapping generating hard output:

demapMethod = "maxlog" # Demapping method
constType = "qam"  # Symbol mapping type
modOrder  = 4       # Mordulation order or number of bits per symbol
hard_out  = True   # Whether to return hard output or soft output

# Symbol demapping object
demapper  = Demapper(demapMethod, constType, modOrder, hard_out = hard_out)
bitEst    = demapper([symbols, 1/snr]) # LLR Computation

The details about the input-output interface of the Symbol demapper detailed below.

class toolkit5G.MIMOProcessing.AnalogBeamforming(carrierFrequency, isCustomBeamformer=True)[source]

The module implements the analog beamforming.

Parameters:
  • carrierFrequency (float) – Defines the carrier frequency.

  • isCustomBeamformer (bool) – Flag to indicate whether the custom beamformer is passed.

Input:
  • x_time ((…,)) – Defines the signal to be beamformed.

  • Pt_dBm (float) – Defines the power in dBm.

  • args (list) – Defines the parameters related beamforming. * If isCustomBeamformer is True:

    • args[0]: () Defines the beamformer.

    • Else
Output:

() – Define the beam-formed signal.