Correlation-Based Waveform Synchronization#
- class PGT#
Type of pilot-generating waveforms.
alias of TypeVar(‘PGT’, bound=
PilotWaveformGenerator
)
- class CorrelationSynchronization(threshold=0.9, guard_ratio=0.8, *args, **kwargs)#
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.
*args (
Any
) – Synchronization base class initialization parameters.
- yaml_tag: Optional[str] = 'PilotCorrelation'#
YAML serialization tag.
- 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.
- 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.
- synchronize(signal)#
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