Correlation¶
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:
- 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:
- 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:
- Raises:
ValueError – If threshold is smaller than zero or greater than one.
- yaml_tag: Optional[str] = 'PilotCorrelation'¶
YAML serialization tag.