Skip to content

laboneq_applications.contrib.experiments.signal_propagation_delay

This module defines the signal propagation delay experiment.

In this experiment, we sweep the readout integration delay of a measurement to optimize the time delay between measure and acquire.

The signal propagation delay experiment has the following pulse sequence:

[ measure ] --- [ readout integration delay ] --- [acquire]

This experiment only supports 1 qubit at the time.

create_experiment(qpu, qubit, delays, measure_delay=None, options=None)

Creates an Signal Propagation Delay Experiment.

Parameters:

Name Type Description Default
qpu QPU

The qpu consisting of the original qubits and quantum operations.

required
qubit Qubit

The qubit to run the experiments on.

required
delays QubitSweepPoints

The readout integration delays to sweep over for the readout pulse. Must be a list of numbers or an array.

required
measure_delay float | None

Delay between subsequent measurements.

None
options TuneupExperimentOptions | None

The options for building the experiment. See [TuneupExperimentOptions] and [BaseExperimentOptions] for accepted options. Overwrites the options from [TuneupExperimentOptions] and [BaseExperimentOptions].

None

Returns:

Name Type Description
experiment Experiment

The generated LabOne Q experiment instance to be compiled and executed.

Example
options = {
    "count": 10,
}
options = TuneupExperimentOptions(**options)
setup = DeviceSetup()
qpu = QPU(
    qubits=[TunableTransmonQubit("q0"), TunableTransmonQubit("q1")],
    quantum_operations=TunableTransmonOperations(),
)
temp_qubits = qpu.copy_qubits()
create_experiment(
    qpu=qpu,
    qubit=temp_qubits[0],
    delays=np.linspace(0e9, 100e9, 51),
    options=options,
)

experiment_workflow(session, qpu, qubit, delays, measure_delay=None, options=None)

The Signal Propagation Delay Workflow.

The workflow consists of the following steps:

Parameters:

Name Type Description Default
session Session

The connected session to use for running the experiment.

required
qpu QPU

The qpu consisting of the original qubits and quantum operations.

required
qubit Qubit

The qubit to run the experiment on. It can be only a single qubit coupled to a resonator.

required
delays QubitSweepPoints

The readout integration delays to sweep over for the readout pulse. Must be a list of numbers or an array.

required
measure_delay float | None

Delay between subsequent measurements.

None
options TuneUpWorkflowOptions | None

The options for building the workflow. In addition to options from [WorkflowOptions], the following custom options are supported: - create_experiment: The options for creating the experiment.

None

Returns:

Name Type Description
result None

The result of the workflow.

Example
options = SpectroscopyWorkflowOptions()
options.create_experiment.count = 10
qpu = QPU(
    qubit=[TunableTransmonQubit("q0"), TunableTransmonQubit("q1")],
    quantum_operations=TunableTransmonOperations(),
)
temp_qubits = qpu.copy_qubits()
result = run(
    session=session,
    qpu=qpu,
    qubit=temp_qubits[0],
    delays=np.linspace(0e-9, 100e-9, 51),
    options=options,
)