qblox_scheduler.backends.qblox.crosstalk_compensation#

Module containing logic to handle crosstalk compensation.

Functions#

crosstalk_compensation(...)

Apply crosstalk compensation to the given schedule based on the provided configuration.

_get_unique_port_clocks(→ list[str])

_calculate_compensation_matrix(→ numpy.ndarray)

_construct_crosstalk_matrix(→ numpy.ndarray)

_apply_compensation_to_operation(→ None)

_add_compensation_operation(→ None)

Module Contents#

crosstalk_compensation(schedule: qblox_scheduler.schedules.TimeableSchedule, config: qblox_scheduler.backends.graph_compilation.CompilationConfig) qblox_scheduler.schedules.TimeableSchedule[source]#

Apply crosstalk compensation to the given schedule based on the provided configuration. It adds compensation operations to port clocks affected by crosstalk. It also adjusts the amplitude of the original operation.

Parameters:
  • schedule – The schedule to which cross-talk compensation will be applied.

  • config – The configuration containing hardware options.

Returns:

TimeableSchedule: The schedule with crosstalk compensation applied.

_get_unique_port_clocks(crosstalk: dict[str, dict[str, float]]) list[str][source]#
_calculate_compensation_matrix(crosstalk: dict[str, dict[str, complex]], port_clock_list: list[str]) numpy.ndarray[source]#
_construct_crosstalk_matrix(crosstalk: dict[str, dict[str, complex]], port_clock_list: list[str]) numpy.ndarray[source]#
_apply_compensation_to_operation(schedule: qblox_scheduler.schedules.TimeableSchedule, operation: qblox_scheduler.operations.Operation, schedulable: qblox_scheduler.schedules.Schedulable, port_clock_list: list[str], compensation_matrix: numpy.ndarray) None[source]#
_add_compensation_operation(schedule: qblox_scheduler.schedules.TimeableSchedule, original_operation: qblox_scheduler.operations.Operation, original_schedulable: qblox_scheduler.schedules.Schedulable, target_port_clock: str, compensation_value: float, index: int) None[source]#