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
|
QuantumElement
|
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, temporary_parameters=None, options=None)
¶
The Signal Propagation Delay Workflow.
The workflow consists of the following steps:
Changed in version 26.1.0.
The temporary_parameters positional argument was added in the
penultimate position. Note that this is a breaking change if
calling the experiment workflow with the options positional argument.
Deprecated in version 26.1.0.
The qubit argument of type QuantumElement is deprecated.
Please pass qubit of type str instead, i.e., the quantum
element UID instead of the quantum element instance.
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
|
QuantumElement | str
|
The qubit to run the experiment on, passed by UID. 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
|
temporary_parameters
|
dict[str, dict | QuantumParameters] | None
|
The temporary parameters to update the qubit with. |
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,
)