mokka.utils.generators

Module with data generators.

Data generators implemented in NumPy.

class mokka.utils.generators.numpy.PRBSGenerator(order, seed=None)

Bases: object

__init__(order, seed=None)

Construct PRBSGenerator.

Parameters:
  • order – Order of the PRBS generator

  • seed – Seed for the PRBS generator

mokka.utils.generators.numpy.generate_BPSK(N, P_in_dbm)

Generate BPSK symbols with a given power.

Parameters:
  • N – Number of BPSK symbols to generate

  • P_in_dbm – signal power [dBm]

Returns:

(pseudo-)randomly generated array of BPSK symbols

mokka.utils.generators.numpy.generate_all_bits(m)

Generate all possible bitstrings of length m.

Parameters:

m – length of the bitstring

Returns:

array with all possible bitstrings.

mokka.utils.generators.numpy.generate_bits(shape)

Generate uniform random bits.

Parameters:

shape – tuple with resulting shape

Returns:

array with uniform random bits in the requested shape

mokka.utils.generators.numpy.pnsequence(pn_order, pn_seed, pn_mask, seq_length)

Generate a PN (Pseudo-Noise) sequence using a Linear Feedback Shift Register (LFSR).

Seed and mask are ordered so that:
  • seed[-1] will be the first output

  • the new bit computed as \(sum(shift_register & mask) % 2\) is inserted in shift[0]

Parameters:
  • pn_order – Number of delay elements used in the LFSR

  • pn_seed – Seed for the initialization of the LFSR delay elements

  • pn_mask – Mask representing which delay elements contribute to the feedback in the LFSR

  • seq_length – Length of the PN sequence to be generated

Returns:

PN sequence generated and final state of the shift register

Raises:

ValueError – If the pn_order is not equal to the length of the strings pn_seed and pn_mask

Module for data generators in PyTorch.

mokka.utils.generators.torch.generate_bits(shape)

Generate uniform random bits.

Parameters:

shape – tuple with resulting shape

Returns:

array with uniform random bits in the requested shape