Schmidl Cox Synchronization

Inheritance diagram of hermespy.modem.waveforms.orthogonal.ofdm.SchmidlCoxSynchronization
class SchmidlCoxSynchronization(waveform=None)[source]

Bases: OFDMSynchronization

Schmidl-Cox Algorithm for OFDM Waveform Time Synchronization and Carrier Frequency Offset Equzalization.

Applying the synchronization routine requires the respective waveform to have a SchmidlCoxPilotSection pilot symbol section configured.

Refer to Schmidl and Cox[1] for a detailed description.

Parameters:

waveform (TypeVar(CWT, bound= CommunicationWaveform) | None) – The waveform generator this synchronization routine is attached to.

synchronize(signal, bandwidth, oversampling_factor)[source]

Simulates time-synchronization at the receiver-side.

Sorts base-band signal-sections into frames in time-domain. Note that the overall sampling rate is defined as bandwidth * oversampling_factor.

Parameters:
  • signal (ndarray) – Vector of complex base-band samples of with num_streams`x`num_samples entries.

  • bandwidth (float) – Bandwidth of the communication waveform in Hz.

  • oversampling_factor (int) – Oversampling factor of the communication waveform.

Return type:

list[int]

Returns:

List of time indices indicating the first samples of frames detected in signal.

Raises:

RuntimeError – If the synchronization routine is floating