Leakage Calibration

class SelectiveLeakageCalibration(leakage_response, sampling_rate, delay=0.0, physical_device=None)[source]

Bases: LeakageCalibrationBase, Serializable

Calibration of a frequency-selective leakage model.

Parameters:
  • leakage_response (np.ndarray) – The leakage impulse response matrix.

  • sampling_rate (float) – The sampling rate of the leakage model in Hz.

  • delay (float, optional) – The implicit delay of the leakage model in seconds. Defaults to zero.

static LeastSquaresEstimate(device, num_probes=7, num_wavelet_samples=4673, configure_device=True, filter_calibration=True)[source]

Estimate the transmit-receive leakage for a physical device using Leat-Squares estimation.

Parameters:
  • device (PhysicalDevice) – Physical device to estimate the covariance matrix for.

  • num_probes (int, optional) – Number of probings transmitted to estimate the covariance matrix. \(7\) by default.

  • num_wavelet_samples (int, optional) – Number of samples transmitted per probing to estimate the covariance matrix. \(4673\) by default.

  • configure_device (bool, optional) – Configure the specified device by the estimated leakage calibration. Enabled by default.

  • filter_calibration (bool, optional) – Filter the estimated calibration to consider only prominent peaks. Enabled by default.

Return type:

SelectiveLeakageCalibration

Returns: The initialized SelectiveLeakageCalibration instance.

Raises:
  • ValueError – If the number of probes is not strictly positive.

  • ValueError – If the number of samples is not strictly positive.

static MMSEEstimate(device, num_probes=7, num_wavelet_samples=127, noise_power=None, configure_device=True)[source]

Estimate the transmit receive leakage for a physical device using Minimum Mean Square Error (MMSE) estimation.

Parameters:
  • device (PhysicalDevice) – Physical device to estimate the covariance matrix for.

  • num_probes (int, optional) – Number of probings transmitted to estimate the covariance matrix. \(7\) by default.

  • num_wavelet_samples (int, optional) – Number of samples transmitted per probing to estimate the covariance matrix. \(127\) by default.

  • noise_power (np.ndarray, optional) – Noise power at the receiving antennas. If not specified, the device’s noise power configuration will be assumed or estimated on-the-fly.

  • configure_device (bool, optional) – Configure the specified device by the estimated leakage calibration. Enabled by default.

Return type:

SelectiveLeakageCalibration

Returns: The initialized SelectiveLeakageCalibration instance.

Raises:
  • ValueError – If the number of probes is not strictly positive.

  • ValueError – If the number of samples is not strictly positive.

  • ValueError – If the noise power is negative.

estimate_delay()[source]

Estimate the delay of the leakage model.

Return type:

DelayCalibration

Returns:

The delay of the leakage model in seconds.

plot()[source]

Plot the leakage response in the time and frequency domain.

Return type:

Tuple[FigureBase, NDArray[Shape[*, *], Any]]

remove_leakage(transmitted_signal, received_signal, delay_correction=0.0)[source]

Remove leakage from a received signal.

Parameters:
  • transmitted_signal (Signal) – The transmitted signal.

  • recveived_signal (Signal) – The received signal from which to remove the leakage.

  • delay_correction (float, optional) – Delay correction applied by the device during reception in seconds. Assumed zero by default.

Return type:

Signal

Returns:

The signal with removed leakage.

property delay: float

Implicit delay of the leakage model in seconds.

property leakage_response: ndarray

Leakage impulse response matrix.

Returns:

Numpy matrix of dimensions \(M \times N \times L\), where \(M\) is the number of receive streams and \(N\) is the number of transmit streams and \(L\) is the number of samples in the impulse response.

property sampling_rate: float

Sampling rate of the leakage model in Hz.