Correlation#

Inheritance diagram of hermespy.modem.waveform_correlation_synchronization.CorrelationSynchronization

Correlation synchronization synchronizes the received signal frames by searching for a known preamble sequence in the time-domain of received base-band samples.

class CorrelationSynchronization(threshold=0.9, guard_ratio=0.8, peak_prominence=0.2, *args, **kwargs)[source]#

Bases: Generic[PGT], Synchronization[PGT], Serializable

Correlation-based clock synchronization for arbitrary communication waveforms.

The implemented algorithm is equivalent to [KC76] without pre-filtering.

Parameters:
  • threshold (float, optional) – Correlation threshold at which a pilot signal is detected.

  • guard_ratio (float, optional) – Guard ratio of frame duration.

  • peak_prominence (float, optional) – Minimum peak prominence for peak detection in the interval (0, 1]. \(0.2\) is a good default value for most applications.

  • *args (Any) – Synchronization base class initialization parameters.

synchronize(signal)[source]#

Simulates time-synchronization at the receiver-side.

Sorts base-band signal-sections into frames in time-domain.

Parameters:

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

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

property guard_ratio: float#

Correlation guard ratio at which a pilot signal is detected.

After the detection of a pilot section, guard_ratio prevents the detection of another pilot in the following samples for a span relative to the configured frame duration.

Returns:

Guard Ratio between zero and one.

Return type:

float

Raises:

ValueError – If guard ratio is smaller than zero or greater than one.

property threshold: float#

Correlation threshold at which a pilot signal is detected.

Returns:

Threshold between zero and one.

Return type:

float

Raises:

ValueError – If threshold is smaller than zero or greater than one.

yaml_tag: Optional[str] = 'PilotCorrelation'#

YAML serialization tag.