Section

Inheritance diagram of hermespy.modem.waveforms.orthogonal.waveform.GridSection
class GridSection(num_repetitions=1, sample_offset=0, wave=None)[source]

Bases: Generic[OWT], Serializable

Description of a part of a grid’s time domain.

Parameters:
  • num_repetitions (int) – Number of times this section is repeated in time-domain.

  • sample_offset (int) – Offset in samples to the start of the section.

  • wave (TypeVar(OWT, bound= OrthogonalWaveform) | None) – Waveform this section is associated with. Defaults to None.

abstract num_samples(bandwidth, oversampling_factor)[source]

Number of samples within this OFDM time-section.

Parameters:
  • bandwidth (float) – Bandwidth of the OFDM waveform.

  • oversampling_factor (int) – Oversampling factor of resulting time-domain signal.

Return type:

int

Returns: Number of samples within this section.

abstract pick_samples(signal, bandwidth, oversampling_factor)[source]

Pick this section’s samples from the time-domain signal.

Parameters:
  • signal (ndarray) – Time-domain signal to be picked from. Numpy vector of size num_samples.

  • bandwidth (float) – Bandwidth of the OFDM waveform.

  • oversampling_factor (int) – Oversampling factor of resulting time-domain signal.

Return type:

ndarray

Returns: Time-domain signal with the section’s samples picked.

pick_symbols(grid)[source]

Pick this section’s data symbols from the resource grid.

Parameters:

grid (ndarray) – Resource grid. Two dimensional numpy array of size num_words`x`num_subcarriers.

Return type:

ndarray

Returns: Data symbols. Numpy vector of size num_symbols.

abstract place_samples(signal, bandwidth, oversampling_factor)[source]

Place this section’s samples into the time-domain signal.

Parameters:
  • signal (ndarray) – Time-domain signal to be placed. Numpy vector of size num_samples.

  • bandwidth (float) – Bandwidth of the OFDM waveform.

  • oversampling_factor (int) – Oversampling factor of resulting time-domain signal.

Return type:

ndarray

Returns: Time-domain signal with the section’s samples placed.

place_symbols(data_symbols, reference_symbols)[source]

Place this section’s symbols into the resource grid.

Parameters:
  • data_symbols (ndarray) – Data symbols to be placed. Numpy vector of size num_symbols.

  • reference_symbols (ndarray) – Reference symbols to be placed. Numpy vector of size num_references.

Return type:

ndarray

Returns: Two dimensional numpy array of size num_words`x`num_subcarriers.

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 the Factory and provides an interface to serialization methods supporting multiple backends.

Return type:

None

property num_references: int[source]

Number of data symbols this section can modulate.

property num_repetitions: int[source]

Number of section repetitions in the time-domain of an OFDM grid.

property num_subcarriers: int[source]

Number of subcarriers this section requires.

property num_symbols: int[source]

Number of data symbols this section can modulate.

property num_words: int[source]

Number of OFDM symbols, i.e. words of subcarrier symbols this section can modulate.

property resource_mask: ndarray[source]
property sample_offset: int[source]

Offset in samples to the start of the section.

This can be used to explot cyclic prefixes and suffixes in order to be more robust against timing offsets.

property wave: OWT | None[source]

Waveform this section is associated with.