Symbol Section#

class FrameSymbolSection(num_repetitions=1, pattern=None, frame=None, prefix_offset=0)[source]#

Bases: FrameSection, Serializable

demodulate(signal)[source]#

Demodulate a time section of a complex OFDM base-band signal into data symbols.

Parameters:

signal (np.ndarray) – Vector of complex-valued base-band samples.

Return type:

ndarray

Returns: Sequence of demodulated data and reference symbols.

extract_channel(csi, reference_position)[source]#

Extract the channel state information relevant to this section given perfect CSI. :type csi: ndarray :param csi: Channel state information. :type csi: np.ndarray :type reference_position: ReferencePosition :param reference_position: Position of the reference within the OFDM grid. :type reference_position: ReferencePosition

Returns: Extracted channel state information.

Return type:

ndarray

modulate(symbols)[source]#

Modulate this section into a complex base-band signal.

Parameters:

symbols (np.ndarray) – The palced complex symbols encoded in this OFDM section. This includes both reference and data symbols to be transmitted.

Returns:

The modulated signal vector.

Return type:

np.ndarray

property num_references: int#

Number of data symbols this section can modulate.

Returns:

The number of symbols

Return type:

int

property num_samples: int#

Number of samples within this OFDM time-section.

Returns:

Number of samples

Return type:

int

property num_subcarriers: int#

Number of subcarriers this section requires.

Returns:

The number of subcarriers.

Return type:

int

property num_symbols: int#

Number of data symbols this section can modulate.

Returns:

The number of symbols

Return type:

int

property num_words: int#

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

Returns:

The number of words.

Return type:

int

pattern: List[int]#
property prefix_offset: int#

Number of samples to skip the prefix.

property resource_mask: ndarray#