torchsig.utils.dsp.sampling_clock_impairments

torchsig.utils.dsp.sampling_clock_impairments(h: ndarray, x: ndarray, uprate: int, drate: float, jitter_ppm: float, drift_ppm: float, rng: Generator | None = None) ndarray[source]

Implements sampling clock impairments (jitter and drift) using polyphase filtering.

This function applies clock jitter and drift to a signal by introducing random variations in the sampling rate during resampling. It uses a polyphase filter bank approach for efficient implementation.

Parameters:
  • h – Filter coefficients (1D array of floats)

  • x – Input signal (1D array of complex numbers)

  • uprate – Upsampling factor (integer)

  • drate – Downsampling factor (float)

  • jitter_ppm – Jitter in parts per million (float)

  • drift_ppm – Drift in parts per million (float)

  • seed – Random seed (optional)

Returns:

Output signal with clock impairments (1D array of complex numbers)